蚂蚁系统参数

时间:2021-01-18 21:24:37

标签: python optimization traveling-salesman ant-colony

您好,我有两个关于 AntSystem 优化的问题,

  1. 为什么当 beta(β) 比 aplha (α) 大时,我会在测试中获得最佳结果或非常好的结果,例如:gr17、gr21、ulysses16...但是当它们相等或 alpha 更大时,我不要得到这么好的结果。为什么会这样?

  2. 我在 github 存储库中看到,我也做了同样的事情,我得出结论,如果我随机选择下一个城镇,在查找概率时我会得到更好的结果:

我有一个列表“概率”,其中包含下一个选择哪个城镇的概率

这是我代码的一部分

r = random.uniform(0, 1)
        total = 0
        next_town = int()
        for i in range(0, number_of_towns):
            total += prob[i]
            if total >= r:
                next_town = i
                break
        prob.clear()
        ant.set_tour((ant.located_town, next_town))

这比从列表“prob”中选择更大的概率更好 为什么会这样? 谢谢!

更新: 再次问好: 这是我的代码:https://github.com/ArisKal/AntSystem-TSP-/tree/devel_2 我有一个问题让我发疯! 在第 301 行 我有蒸发率pheromone[i][j] = (evaporation_rate) * pheromone[i][j] + quantity[i][j] 像这样并且完美无缺,我有很好的结果! 但是如果:pheromone[i][j] = (1 - evaporation_rate) * pheromone[i][j] + quantity[i][j] (1-evaporation_rate) 我认为这是正确的我有错误我理解错误但我不明白为什么!我认为在某个地方我认为计算是错误的。 蒸发率 = 0.5 有效 请任何人都可以帮助我!

0 个答案:

没有答案