обратный алгоритм Дейкстры - PullRequest
0 голосов
/ 21 апреля 2020

Я начал реализовывать обратный алгоритм Дейкстры в python:

def backwardsDijkstra(g: DoubleDictGraph, s, t):
    q = PriorityQueue()
    dist = {}
    next = {}
    q.add(t, 0)
    dist[t] = 0
    found = False
    while not q.isEmpty() and not found:
        x = q.pop()
        for y in g.parseNin(x):
            if y not in dist.keys() or dist[x] + g.Cost(x, y) < dist[y]:
                dist[y] = dist[x] + g.Cost(x, y)
                q.add(y, dist[y])
                next[y] = x
        if x == t:
            found = True
    return dist[s], next

И я не могу понять, почему он останавливается на второй итерации для следующего графа, например:

5 7
0 1 5
0 2 20
1 2 10
1 3 30
2 3 5
2 4 20
3 4 10
(number of vertices, number of edges, (start,end,cost)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...