您好,我有两个关于 AntSystem 优化的问题,
为什么当 beta(β) 比 aplha (α) 大时,我会在测试中获得最佳结果或非常好的结果,例如:gr17、gr21、ulysses16...但是当它们相等或 alpha 更大时,我不要得到这么好的结果。为什么会这样?
我在 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 有效
请任何人都可以帮助我!