繁体   English   中英

最短路径算法的输入自动化(BFS 算法)

[英]Input Automation to Shortest Path Algorithm (BFS Algorithm)

我正在使用 BFS 算法来找到覆盖所有点并生成最短路径的点之间的最短路径。 我手动提供输入(最近的邻居),并发现难以自动输入 BFS 算法。 另外请建议您是否知道任何算法可以更好地生成覆盖所有点的最短路径。

示例:点 - [R59C36,R59C39,R59C52,R60C1,R60C20,R60C34,R62C2,R62C7,R63C8,R65C9,R66C11,R66C6,R67C11]

输入——给每个点最近的邻居

graph = {
    'R59C36':['R59C39','R59C52','R60C34','R60C20','R60C1'],
    'R59C39':['R59C52','R60C34','R60C20','R60C1'],
    'R60C1':['R60C20','R62C2','R62C7'],
    'R60C20':['R60C34','R62C2','R62C7'],
    'R60C34':['R62C2','R62C7'],
    'R59C52':['R60C34'],
    'R62C2':['R62C7','R63C8'],
    'R62C7':['R63C8'],
    'R63C8':['R65C9'],
    'R65C9':['R66C6','R66C11'],
    'R66C6':['R66C11','R67C11'],
    'R66C11':['R67C11'],
    'R67C11':[]
}

Output - R59C36, R59C39, R59C52, R60C34, R60C20, R60C1, R62C2, R62C7, R63C8, R65C9, R66C6, R66C11, R67C11

graph = {
    'R59C36':['R59C39','R59C52','R60C34','R60C20','R60C1'],
    'R59C39':['R59C52','R60C34','R60C20','R60C1'],
    'R60C1':['R60C20','R62C2','R62C7'],
    'R60C20':['R60C34','R62C2','R62C7'],
    'R60C34':['R62C2','R62C7'],
    'R59C52':['R60C34'],
    'R62C2':['R62C7','R63C8'],
    'R62C7':['R63C8'],
    'R63C8':['R65C9'],
    'R65C9':['R66C6','R66C11'],
    'R66C6':['R66C11','R67C11'],
    'R66C11':['R67C11'],
    'R67C11':[]
}
points = ['R59C36','R59C39','R59C52','R60C1','R60C20','R60C34','R62C2','R62C7','R63C8','R65C9','R66C11','R66C6','R67C11']


output = []
for point in points:
    if point not in output:
        output.append(point)
    
    _points = graph[point]
    for _point in _points:
        if _point not in output:
            output.append(_point)

print(output)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM