论文:An Empirical Study on Evolutionary Algorithms for Traveling Salesman Problem 2019
这篇文章讨论了Evolutionary computation (EC) 进化算法在组合优化问题中的应用,例如TSP。EC算法包括genetic algorithm (GA), ant colony optimization (ACO) , particle swarm optimization (PSO) , estimation of distribution algorithm (EDA)等,在组合优化中发挥了很好的作用。一些算法的设计是用于解决discrete problems 离散问题的,如ACO和GA,有些算法是用于解决连续空间中的问题,如PSO,不过PSO被改进后也可可以处理组合优化问题(COP)了,如set-based PSO(S-PSO)。而EDA既可以处理离散问题也可以处理连续问题,取决于建立的模型。
旅行商问题 Traveling Salesman Problem (TSP)是已经被证明的NP-hard问题。
1)GA for TSP
已经发现GA在解决TSP的组合优化问题具有很好的效果。而交叉crossover和变异mutation在解决TSP时非常重要,常用的交叉方法有:
这篇文章对11个对称的TSP进行了测试,对比了vanilla GA, CX2 和 inver-over算法的性能,在原始参数的设置下,所有TSP问题中,inver-over算法的结果更好。然后验证了inver-over算法不同参数设置对实验的影响。a)population size N,种群数量在大于100时结果更好,在200-250时最佳,但并不是越大越好,因为更大的种群导致更大的搜索空间,会让收敛更慢。b)inver-over operator p,表示以概率p进行变异操作,1-p进行交叉操作,当变异率小于0.1时可以防止陷入局部最优,同时也不会降低收敛速度,更大的变异率会使得算法具有多样性。实验中p从0.01-0.3,每次变化0.01,发现当p小于0.1时效果最好。
2)ACO for TSP
ACO应用于TSP问题最好的算法是ACS,实验测试了不同ants数量和distribution of pheromones accumulated的影响。参数β用于确定pheromones与distance之间的相对重要性, decay parameter α(0<Į<1)用于更新pheromone,随机参数 q0 (0<q0<1)作为greedy parameter,在选择下一个城市时,以q0概率exploration和1-p的概率 exploration. 这个参数可以防止算法陷入局部最优。根据原文的设置α=0.1,β=2,q0=0.9.
在GA中种群数量大的效果也好,但是ACO中蚂蚁数量多将导致运行时间增加效果下降,一般当蚂蚁数量在5-30时,结果较好。小数据集20是不错的选择,大的数据集,蚂蚁数量设置为10有好的结果。
3)PSO for TSP
S-PSO主要用于解决离散的组合优化问题,PSO中的positions和velocities被一组probabilities表示,文中对比了集中提出的S-PSO方法,如original PSO (S-PSO), global version PSO (S-GPSO) and comprehensive learning PSO (S-CLPSO)。
实验参数设置:c=c1=c2=2, rg=7,N=40,权重系数从0.9-0.4递减,20000次迭代
S-PSO由于没有有效的local search 效果最差
GPSO可以平衡global和local search,效果好一些
CLPSO效果最好,因为使用了historical best information更新速度,同时在exploration中采用锦标赛选择,可以避免过早收敛并保持良好的多样性。
对CLPSO参数的实验,设置particles数量20-300之间,当大于100时结果变得稳定,实验取为75.对于rg参数(refresh gap),决定了candidate set被重新计算的频率。实验中rg设置为2-20步长为2,结果表明rg对结果影响不大,CLPSO取原始取值rg=7.关于参数c,c是exploration and exploitation的平衡,c的值小于1时结果不好,大于1.5时没有改变,因此可以取为1-1.5.当数据集比较大时,可以取c=1.
4)三种算法的比较