改进机器人导航纸的蚁群优化

时间:2014-05-09 22:13:10

标签: algorithm ant-colony

我正在尝试理解本文并对improved ant colony optimization for robot navigation paper进行实时实施。在我试图实施的过程中,我遇到了一些问题:

  1. 作者介绍了负信息素沉积(在上文第2页第2栏中提到)。但我并不了解它是什么或它在哪里使用!在论文中,它并没有谈论它以及谷歌搜索它。它是什么,我们将在哪里使用它?我们已经在进行信息素沉积和蒸发。

  2. 在目标寻找算法(第2页)中,信息素沉积在所有蚂蚁移动到下一个位置之后以及在进行蒸发之后完成。那么,那时,信息素的沉积是通过遍历所有蚂蚁并更新当前位置的信息素浓度来进行的,不是吗?

  3. 在该目标搜索算法(第2页)中,作者讨论了Check if termination criteria met。那么,这是否意味着检查蚂蚁是否已达到目标(即目的地位置)?如果是,则应终止执行。不是吗?

  4. 除此之外,我还没有理解第2页中目标搜索算法中这三行的含义:

    • 控制与墙的距离

    • 防止回溯

    • 防止4方循环

  5. 我已经在上面的论文中包含了相关部分的屏幕截图:

    enter image description here

    如果你能清楚我的上述问题,我将非常感激。

    修改

    由于没有回应,我在这里提出了另一个问题:https://softwareengineering.stackexchange.com/questions/238639/ant-colony-optimization-movement-of-ants

1 个答案:

答案 0 :(得分:3)

  

作者介绍了负信息素沉积(在上文第2页第2栏中提到)。但我不明白是什么   它是或在哪里使用!在论文里面,它没有谈论它   用谷歌搜索它。它是什么,我们将在哪里使用它?我们是   已经在做信息素沉积和蒸发。

只浏览您提供的纸张我无法告诉您他们是如何实施负面信息素的。有几种方法,可能最常见的通用方法是选择产生的最差路径,并给它们所有的瓷砖一个负信息素而不是常规的信息素。选择一个根据两种不同信息素水平计算运动可能性的函数仍有设计选择...

在给定的论文中,听起来他们采取了类似的方法,从相应的瓷砖中减去信息素,而不是添加第二个负信息素。因此,他们不需要改变确定移动到相邻瓦片的可能性的函数。

  

在目标寻找算法(第2页)中,信息素沉积在所有蚂蚁移动到下一个位置后完成   以及蒸发后进行。所以,当时,   信息素的沉积是通过遍历所有信息素来进行的   蚂蚁和更新他们当前的信息素浓度   位置,不是吗?

     

在该目标搜索算法(第2页)中,作者讨论了检查是否符合终止标准。那么,这是否意味着检查是否   蚂蚁已达到目标(即目的地位置)?如果是这样的话   执行应该终止。不是吗?

所有蚂蚁都会被移动,直到它们全部达到目标 - 或者满足其他一些终止标准。例如。您可能决定只等到至少90%的蚂蚁达到目标,或者您可能包含最多步数。

根据(5)在每个瓷砖上蒸发信息素。

现在考虑所有蚂蚁为达到目标所采取的路径。根据给定的函数(3)或(4),将信息素添加到所有使用过的图块中,具体取决于您是否要鼓励这一特定路径(例如,所有未达到目标的蚂蚁都是负信息素的良好候选者)。 / p>

  

除此之外,我在第2页的目标寻找算法中并未理解这三行的含义:

    Control ant distance from wall
    Prevent backtracking
    Prevent 4 square looping

当选择要移动到的下一个图块时,它们会稍微限制选择。他们希望保持与所有墙壁之间的最小距离,因此他们忽略了直接邻近墙壁的选择(或者与它们相距一些距离,不知道为什么他们决定在算法的这一点上包含它...)。他们还禁止蚂蚁来回走动,所以前一个瓷砖是禁止的 - 以及4个方形的循环(即由四个瓷砖组成的循环)。

编辑该算法的一种可能的实现方式可以做到以下(我选择了停止标准并为您选择了负信息素)

initialize all cells pheromone levels to some constant > 0

repeat
    set all ants to start location and erase their history
    repeat
        for every ant do
            if this ant is at the goal skip it
            make list of all neighbouring cells that are
                1. not too close to a wall
                2. not equal to the previous cell
                3. not equal to the cell that was visited 3 moves before
            calculate probability for all cells in this list
            choose next cell according to these probabilities
            update current position and history
        end for
    until 80% of all ants have reached the goal

    evaporate pheromones

    for every ant do
        if it reached the goal
            add pheromones to all cells in this ants history according to (3)
        else
            substract pheromones accoring to (4)
    end for
until length of shortest path has not changed for M iterations
希望这会让事情变得清晰起来。我会改变条件2.和3.在邻居的选择中排除已经被这只蚂蚁访问过的任何细胞 - 但这是个人偏好....