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