РЕДАКТИРОВАТЬ: нашел решение, это рабочий алгоритм, чтобы найти минимальное максимальное количество узких мест.
def dijkstra(g,s):
for i in g.vertices:
g.dist[i] = INF
g.pred[i] = 0
g.dist[s] = 0
queue = [i for i in g.vertices]
while len(queue) > 0:
minval = INF
u = 0
for vert in queue:
if g.dist[vert] < minval:
minval = g.dist[vert]
u = vert
queue.remove(u)
for edge in g.adj_list[u]:
v = edge.node
if g.dist[v] > max(g.dist[u], edge.weight):
g.dist[v] = max(g.dist[u], edge.weight)
g.pred[v] = u
Итак, это dijkstra, который я сейчас кодировал с Python, но я не не знаю, как мне изменить это, чтобы рассчитать маршрут с наименьшим возможным максимальным весом
def dijkstra(g,s):
for i in g.vertices:
g.dist[i] = INF
g.pred[i] = 0
g.dist[s] = 0
queue = [i for i in g.vertices]
while len(queue) > 0:
minval = INF
u = 0
for vert in queue:
if g.dist[vert] < minval:
minval = g.dist[vert]
u = vert
queue.remove(u)
for edge in g.adj_list[u]:
v = edge.node
if g.dist[v] > g.dist[u] + edge.weight:
g.dist[v] = g.dist[u] + edge.weight
g.pred[v] = u