Реализация алгоритма Дейкстры в Python
В книге <<Грокаем Алгоритмы>> представлен этот код, но в итоге ошибка на 29 и 40 строках NameError: name 'find_lowest_cost_node' is not defined.
graph = {}
graph['you'] = ['alice', 'bob', 'claire']
graph['start'] = {}
graph['start']['a'] = 6
graph['start']['b'] = 2
graph['a'] = {}
graph['a']['fin'] = 1
graph['b'] = {}
graph['b']['a'] = 3
graph['b']['fin'] = 5
graph['fin'] = {}
infinity = float('inf')
costs = {}
costs['a'] = 6
costs['b'] = 2
costs['fin'] = infinity
parents = {}
parents['a'] = 'start'
parents['b'] = 'start'
parents['in'] = None
processed = []
node = find_lowest_cost_node(costs)
while node != None:
cost = costs[node]
neightbors = graph[node]
for n in neightbors.keys():
new_cost = cost + neightbors[n]
if costs[n] > new_cost:
costs[n] = new_cost
parents[n] = node
processed.append(node)
node = find_lowest_cost_node(costs)
Представленное - это только ЧАСТЬ алгоритма.
В этой же книге в одном из соседних листингов должен быть код, содержащий:
def find_lowest_cost_node...
Если же такого листинга нет, значит реализовать функцию find_lowest_cost_node предлагают читателю самостоятельно.
P.S. "Грокаем алгоритмы" - это НЕ учебник, а попсовый научпоп. Хочешь нормальный учебник программирования - бери Вирта или Кормена ("Вводный курс").

А с чего бы ему быть defined? Такой функции нигде в коде не объявено.
и что?
если не понимаете что написано, начинайте с начала а не с середины