我使用Dorigo的论文从以下链接实现了Java中对称TSP的蚁群系统:http://people.idsia.ch/~luca/acs-bio97.pdf
我还采用了以下策略:
1.虽然并非所有蚂蚁都构建了一个解决方案,但每个蚂蚁都会向一个新城市移动一步并使用Dorigo的本地信息素更新更新使用边缘的信息素。
有没有办法可以改进算法以获得更好的结果?对于在TSPLIB中找到的TSP实例ch130的示例,最优解是6110并且我的算法返回答案6223。
到目前为止,我的ACS的参数设置为Dorigo论文中定义的参数
您可以采取一些措施来改善解决方案:
有关更多详细信息,请查看以下两篇论文。第一个将ACO与遗传算法相结合,以微调用于配置ACO的超参数。作者得出结论,该方法改善了ACO的收敛性。第二篇论文使用自适应过程在运行时设置这些参数。由于作者声称这些参数是特定于问题的并且取决于当前正在解决的问题,因此需要执行调整以改善算法的收敛时间。
我想改进性能的最直接的方法是与本地搜索方法集成,例如, 2-opt,3-opt和Lin-Ker启发式。在实践中,通过整合这些本地搜索方法,不是很大规模的TSP,例如ch130可以很容易地解决问题。