1

我是这个社区的新手,所以希望我能回答这个问题。我一直在尝试用 C++ 编写蚁群优化算法,但我不明白。这就是我对算法的了解:-首先,一只蚂蚁从图的原点(主要城市)开始,直到它到达目标。- 然后,另一只蚂蚁被发射。但那会发生什么呢?我的意思是,蚂蚁跟随踪迹还是蚂蚁不断地随机挑选边缘?我的意思是,我不知道如何编码,让蚂蚁更有可能选择一条边而不是另一条边。

有人可以帮我解决这个问题吗?我已经阅读了 wiki 链接一千遍,但仍然没有得到这个想法,而且因为我没有研究过概率,所以它不容易理解。

谢谢

4

1 回答 1

3

蚁群算法背后的思想是

1)所有边缘都开始时没有气味

2) 蚂蚁占据优势会给它一些额外的气味

3) 气味会随着时间而衰减

4)如果一只蚂蚁有多条路径可供选择,它会随机选择 - 但是 - 根据每条路径上的气味数量随机选择权重。

把它想象成这样。

假设没有气味的道路的权重为 1,而气味单位为 1 的道路的权重为 2。

一只蚂蚁看到四条路径,但第一条路径有一个气味单元。

权重为:2、1、1、1

总重量 = 5

选择路径一的机会 = 2/5 (40%)

选择路径二的机会 = 1/5(路径三、四和五相同)(20%、20%、20%)

显然,您可以使用任何您喜欢的函数来确定边缘添加了多少气味,这取决于它有多少气味,有多少气味衰减取决于它有多少气味,以及气味的重量(以及是否有其他因素会导致要加权的路径,例如静态评估函数)

于 2013-06-14T05:11:35.463 回答