我是这个社区的新手,所以希望我能回答这个问题。我一直在尝试用 C++ 编写蚁群优化算法,但我不明白。这就是我对算法的了解:-首先,一只蚂蚁从图的原点(主要城市)开始,直到它到达目标。- 然后,另一只蚂蚁被发射。但那会发生什么呢?我的意思是,蚂蚁跟随踪迹还是蚂蚁不断地随机挑选边缘?我的意思是,我不知道如何编码,让蚂蚁更有可能选择一条边而不是另一条边。
有人可以帮我解决这个问题吗?我已经阅读了 wiki 链接一千遍,但仍然没有得到这个想法,而且因为我没有研究过概率,所以它不容易理解。
谢谢
我是这个社区的新手,所以希望我能回答这个问题。我一直在尝试用 C++ 编写蚁群优化算法,但我不明白。这就是我对算法的了解:-首先,一只蚂蚁从图的原点(主要城市)开始,直到它到达目标。- 然后,另一只蚂蚁被发射。但那会发生什么呢?我的意思是,蚂蚁跟随踪迹还是蚂蚁不断地随机挑选边缘?我的意思是,我不知道如何编码,让蚂蚁更有可能选择一条边而不是另一条边。
有人可以帮我解决这个问题吗?我已经阅读了 wiki 链接一千遍,但仍然没有得到这个想法,而且因为我没有研究过概率,所以它不容易理解。
谢谢
蚁群算法背后的思想是
1)所有边缘都开始时没有气味
2) 蚂蚁占据优势会给它一些额外的气味
3) 气味会随着时间而衰减
4)如果一只蚂蚁有多条路径可供选择,它会随机选择 - 但是 - 根据每条路径上的气味数量随机选择权重。
把它想象成这样。
假设没有气味的道路的权重为 1,而气味单位为 1 的道路的权重为 2。
一只蚂蚁看到四条路径,但第一条路径有一个气味单元。
权重为:2、1、1、1
总重量 = 5
选择路径一的机会 = 2/5 (40%)
选择路径二的机会 = 1/5(路径三、四和五相同)(20%、20%、20%)
显然,您可以使用任何您喜欢的函数来确定边缘添加了多少气味,这取决于它有多少气味,有多少气味衰减取决于它有多少气味,以及气味的重量(以及是否有其他因素会导致要加权的路径,例如静态评估函数)