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