Предмет: Информатика, автор: janekxzy

100 Баллов! Задача комиваяжера на 10 городов и сделать алгоритм который выводит все гамильтоновы циклы в графе. python

Ответы

Автор ответа: didkjdehh
0

def hamiltonian_cycles(graph, visited, path, start, length):

if length == len(graph) and start in graph[path[-1]]:
print(path + [start])
return

for v in graph:

if v in visited or v not in graph[path[-1]]:
continue

hamiltonian_cycles(graph, visited + [v], path + [v], start, length+1)

graph = {
1: [2, 3, 4],
2: [1, 3, 4],
3: [1, 2, 4],
4: [1, 2, 3, 5],
5: [4, 6, 7],
6: [5, 7, 8],
7: [5, 6, 8],
8: [6, 7, 9, 10],
9: [8, 10],
10: [8, 9]
}

Проверь у себя, сейчас не дома на телефоне писал

didkjdehh: Если что напиши перепишу
janekxzy: line 3
if length == len(graph) and start in graph[path[-1]]:
^
IndentationError: expected an indented block after function definition on line 1
Похожие вопросы
Предмет: Английский язык, автор: oljapilipenko10
Предмет: Русский язык, автор: maksimzinkevic152
Предмет: История, автор: sarsenbekovich1960