我开发了蚁群算法。目前它运行得很好。
在某些情况下,它不能显示最佳路径,而是接近最佳路径。
例如,我有一个图表:
矩阵是:
1 2 3 4 5 6 7
1 0 6 5 0 0 2 0
2 6 0 3 2 1 5 0
3 5 3 0 2 5 0 0
4 0 2 2 0 3 0 0
5 0 1 5 3 0 6 0
6 2 5 0 0 6 0 2
7 0 0 0 0 0 2 0
第一列和第一行是顶点名称。
因此,可能的路径为(path -path of the path):
1. 1-2-5 with length 7
2. 1-6-2-5 with length 8
3. 1-6-5 with length 8
我的程序在1/10开始时选择第一个路径,在7/10开始时选择第二个路径,在2/10开始时选择第三个路径。
它工作正常吗?
对此的解释是,蚂蚁有自己的眼睛(视觉,它们看边缘长度),而且它们还可以检测信息素水平。他们自己的眼睛显示,1-2边比1-6边更长更长,所以通常他们会选择1-6边而不是1-2边。6-5和6-2相同:6-2更吸引人,因为它更短。
我的假设是正确的吗?
发布于 2014-05-28 06:08:57
根据这个:http://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms#Summary,我可以看到你的方法中有两个问题:
回答问题:蚁群算法应该在100%的情况下显示最佳路径吗?不,它根本不需要显示最佳路径。
发布于 2014-05-28 22:15:19
在蚁群优化算法中,蚂蚁在遍历图时对每个可能的步骤都有概率。最重要的是,这个概率基于两个因素:质量的局部和全局度量。
全局度量通常与边中的信息素沉积有关,因为信息素被添加到蚂蚁遵循的路径中使用的每条边,并且添加的量以某种方式与这种蚂蚁创建的溶液的质量有关。
局部度量通常与特定步骤的质量有关:在所提供的示例中,边缘的成本。
因此,如果你的蚂蚁只采取贪婪的行动,你使用的概率函数可能对局部质量赋予了太多的权重。找到一个在局部搜索和全局搜索之间表现出良好折衷的概率函数是成功应用的蚁群优化策略的一个基本方面。
发布于 2014-05-29 17:07:17
为什么要使用蚁群来计算最短路径?如果要搜索最短路径,则不需要优化算法,使用A*算法(具有最优启发式函数)可以在多项式时间内获得最优解。蚁群算法在求解TSP问题时效果较好。
答案是:不-请记住,算法是概率的,因此它可能不会导致最优解,而是局部最小值
https://stackoverflow.com/questions/23899529
复制相似问题