【问题标题】:Ant colony simulation - optimizing the path [closed]蚁群模拟 - 优化路径 [关闭]
【发布时间】:2013-01-31 07:13:38
【问题描述】:

我正在尝试构建一个简单的蚁群模拟。世界是方格;它们中的每一个都可以由某种程度的信息素和任意数量的蚂蚁组成。有两种类型的信息素:食物信息素和巢信息素。蚂蚁对环境一无所知,但返回巢穴的蚂蚁会跟随巢穴信息素(从某种意义上说,它们几乎总是选择移动到所有附近细胞中信息素水平最高的细胞)并留下食物信息素,反之亦然。

蚂蚁有时会随机移动,而不是朝着信息素最大的方向移动。蚂蚁在模拟的每一刻都会检查附近 8 个单元格中的信息素水平,如果当前单元格中的信息素水平低于所有附近单元格中的最大信息素水平,它会添加一些信息素。

当前的模拟运行良好,但找到的路径不是最佳路径。我有 2 个问题我不知道如何解决:

  1. 如何模拟对角线移动比非对角线移动更长的事实(上、左下或右)?

  1. 我应该如何模拟信息素的扩散?现在,信息素会随着时间的推移而蒸发,但没有扩散。我试图将一些信息素从每个细胞、模拟的每个滴答声转移到附近的 8 个细胞,但结果是一团糟——整个环境都充满了信息素——我认为这是因为机制蚂蚁用来调节信息素水平。

【问题讨论】:

  • 为什么对角线比非对角线长?什么意思?
  • 在我当前的模拟中,蚂蚁可以以相同的“速度”移动到 8 个相邻单元之一。在这种情况下,蚂蚁可以直线或曲折路径从巢穴移动到食物,并且距离(=它通过的细胞数,因此从巢穴到食物的每个周期的周期)将是相同的。当然,在现实中,曲折路径(东北、西北、东南、西南)比直线路径(北、南、东和西)更长。我添加了一个插图。
  • 在循环通过 8 个相邻单元时,您是否尝试过对角添加一些惩罚?这将防止在相等的情况下选择对角线移动。您可以尝试调整惩罚值。

标签: python simulation ant-colony artificial-life


【解决方案1】:

在方形网格上,假设蚂蚁总是每刻移动一格(或不移动),可能很难模拟对角线移动比水平和垂直移动更长。由于对角线距离更长,蚂蚁实际上必须比水平/垂直移动“跑得更快”。这可能不是你想要的。

因此,您可能需要考虑一个网格或节点网络,而不是正方形网格,所有节点的距离都相等,即六边形网格。这也会改变相邻单元格的数量,但这就是重点。

关于扩散:这是正确设置参数的问题。听起来每滴答声的扩散太高了。此外,它应该与蚂蚁产生的信息素成正确的比例。请注意,网格的类型也会影响扩散。

【讨论】:

    猜你喜欢
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 2012-02-03
    • 2015-04-07
    相关资源
    最近更新 更多