最近我一直在阅读关于使用“蚂蚁群”模型作为启发式方法来优化各种类型的算法的文章。然而,我尚未找到一篇介绍性的文章或书籍来详细讨论蚂蚁群优化。是否有人能向我指出一些资源,让我更深入地了解这个想法?
最近我一直在阅读关于使用“蚂蚁群”模型作为启发式方法来优化各种类型的算法的文章。然而,我尚未找到一篇介绍性的文章或书籍来详细讨论蚂蚁群优化。是否有人能向我指出一些资源,让我更深入地了解这个想法?
维基百科链接 让我开始了解这个领域。我阅读了文章并开始编码。我正在解决旅行商问题的一个恶劣变体。这是一种惊人的元启发式算法。基本上,任何可以放入图形中(节点和边缘,对称或不对称)的搜索问题都可以通过蚁群算法来解决。
要注意全局和局部信息素痕迹之间的区别。局部信息素会阻止一代蚂蚁遍历同一路径。它们使模型不会收敛。全局信息素是吸引剂,并应该每一代至少吸引一只蚂蚁。它们在几代之内鼓励最佳路径。
我最好的建议就是简单地玩弄算法。设置一个基本的TSP求解器和一些基本的蚁群可视化。然后开心地玩耍。从概念上讲,与蚂蚁一起工作非常酷。您可以编程定义它们的基本行为,然后释放它们。我甚至喜欢它们。 :)
ACO是遗传算法的一种贪婪形式。玩弄它们。改变它们的交流行为和包装行为。您将迅速开始以全新的方式看待网络/图形编程。这是它们最大的好处,而不是大多数人所认为的配方。
你必须玩弄它才能真正理解它。书籍和研究论文只会给出一个一般性的高层次理解。就像骑自行车一样,你必须开始骑行。 :)
ACO是我最喜欢的图形问题抽象化方法。
Marco Dorigo&Thomas Stützle:蚂蚁群算法优化
这本书是ACO的作者写的,非常易读。你可以带着它去海滩,愉快地阅读它。但它也是最完整的资源,实现该算法时作为参考非常好。
你可以在Google Books上阅读一些摘录。
另一个伟大的智慧来源是ACO主页。