我在哪里可以了解有关“蚁群”优化的更多信息?

Posted

技术标签:

【中文标题】我在哪里可以了解有关“蚁群”优化的更多信息?【英文标题】:Where can I learn more about "ant colony" optimizations? 【发布时间】:2010-10-01 11:23:50 【问题描述】:

一段时间以来,我一直在这里和那里阅读有关使用“蚁群”模型作为优化各种类型算法的启发式方法的文章。但是,我还没有找到一篇文章或书籍以介绍性的方式讨论蚁群优化,甚至是非常详细的讨论。谁能指出我可以了解更多关于这个想法的资源?

【问题讨论】:

【参考方案1】:

如果你懂德语(是的,对不起……),我和一个朋友就这个主题写了一封introduction with code,我自己觉得这个主题还算过得去。文和代码以TSP为例介绍概念。

即使如果您不懂德语,请查看代码和文本中的公式,这可能仍然有效。

【讨论】:

感谢您的链接!不幸的是,我的德语仅限于我在中学学到的东西(想讨论天气?),但谷歌翻译在这篇文章上做得很好。 我认为 XKCD 漫画的翻译还不错……其余的……没有那么多。 ;-) 注意:这不是我正常说的德语。【参考方案2】:

例如参见学术百科上的this article。

What is the most efficient way of finding a path through a small world graph?问题中也有讨论。

【讨论】:

【参考方案3】:

《国家地理》不久前写信给an interesting article,谈论了一些理论。

【讨论】:

【参考方案4】:

乍一看,这似乎与the Metropolis algorithm 密切相关(或者可能是一个特例)。所以这是另一个可能的搜索方向。

补充:This PDF file 包含对 1953 年 Metropolis 原始论文的引用。

【讨论】:

【参考方案5】:

这些主题的最佳资源是Google scholar。我一直在研究蚁群优化算法,这里有一些不错的论文:

Ant Colony Optimization - A New Metaheuristic Ant Colony Optimization - Artificial Ants as a Computational Intelligence Technique

只需search for "Ant Colony" on google scholar。

另外,搜索Marco Dorigo发表的论文。

【讨论】:

【参考方案6】:

好吧,我发现 Homepage of Eric Rollins 和他的 ACO 算法的不同实现(Haskell、Scala、Erlang...)很有帮助。 还有 Enrique Alba 的书,标题为“Parallel Metaheuristics: A New Class of Algorithms”,您可以在其中找到关于 ACO 算法及其不同用法的整章解释。

【讨论】:

【参考方案7】:

link Wikipedia 实际上让我开始了。我阅读了这篇文章并开始编码。我正在解决旅行商问题的一个邪恶变体。这是一个了不起的元启发式算法。基本上,任何可以放入图中的搜索问题(节点和边,对称与否)都可以通过 ACO 解决。

注意全局和本地信息素轨迹之间的差异。本地信息素阻止一代蚂蚁走同一条路。它们使模型无法收敛。全球信息素是吸引子,每代至少应该吸引一只蚂蚁。他们鼓励经过几代人的最佳路径。

我的最佳建议是简单地使用算法。设置一个基本的 TSP 求解器和一些基本的菌落可视化。然后找点乐子。从概念上讲,与蚂蚁一起工作非常酷。你对它们的基本行为进行编程,然后将它们放开。我什至越来越喜欢他们。 :)

ACO 是一种更贪婪的遗传算法。和他们一起玩。改变他们的交际行为和打包行为。您将很快开始以完全不同的方式看待网络/图形编程。这是他们最大的好处,而不是大多数人认为的秘诀。

你只需要玩弄它才能真正理解它。书籍和研究论文只能给出一般的天价理解。就像自行车一样,您只需开始骑行。 :)

到目前为止,ACO 是我最喜欢的图问题抽象。

【讨论】:

【参考方案8】:

我很惊讶没有人提到 ACO 的圣经:

Marco Dorigo & Thomas Stützle: Ant Colony Optimization

本书由ACO作者编写,可读性强。你可以把它带到海滩上,享受阅读的乐趣。但它也是所有资源中最完整的,非常适合作为实现事物时的参考。

你可以阅读一些excerpts on Google Books

另一个重要的智慧来源是ACO Homepage

【讨论】:

以上是关于我在哪里可以了解有关“蚁群”优化的更多信息?的主要内容,如果未能解决你的问题,请参考以下文章

在哪里可以了解有关 PHP 框架结构的更多信息?

在哪里可以了解有关 C++0x 的更多信息? [关闭]

在哪里可以找到有关 D_GLIBCXX_DEBUG 和 DNDEBUG 标志的更多信息?

什么是ORM?我在哪里可以了解更多信息? [关闭]

在哪里可以找到有关 Core Data 对象模型版本控制和迁移的更多详细信息?

Java EE:我在哪里可以阅读有关 dao、服务以及为啥使用它们的信息? [关闭]