返回

python——防止ant访问已经访问过的顶点

发布时间:2022-08-07 09:47:25 322
# node.js

我试图实现蚁群方法来解决TSP问题,但我在为ant创建路径时遇到了问题。ant需要访问所有顶点并返回到原始顶点,而不重复顶点。我试图验证蚂蚁是否访问了已经访问过的vertix,但它不起作用。

如何防止蚂蚁访问已访问的顶点?

如果需要,我的完整代码:https://pastebin.com/cDFB1JZL

我处理ant路径的代码部分:

current_position = draw_first_position
k = 1
k0 = 0
for j in range(vertice):
    sum += probability[current_position][j]
    
while(k != 3):

    draw = random.uniform(0, sum)
    
    accumulated = 0
    
    for j in range(vertice-1):
        prob = probability[current_position][j] / sum
        
        accumulated += prob
        
        if(draw <= accumulated):
            next_position = j
            break
        
    ant_path[k0][k] = next_position
    current_position = next_position
    sum = 0
    #skip the vertex already visited
    for j in range(vertice):
        for i in range(len(ant_path)):
            if(j != ant_path[k0][i]):
                sum += probability[current_position][j]
    
    k += 1
print(ant_path)

如果我的问题中缺少信息,请告诉我。提前感谢!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像