Предмет: Информатика,
автор: janekxzy
100 Баллов! Задача комиваяжера на 10 городов и сделать алгоритм который выводит все гамильтоновы циклы в графе. python
Ответы
Автор ответа:
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:
Если что напиши перепишу
if length == len(graph) and start in graph[path[-1]]:
^
IndentationError: expected an indented block after function definition on line 1
Похожие вопросы
Предмет: Английский язык,
автор: oljapilipenko10
Предмет: Русский язык,
автор: maksimzinkevic152
Предмет: История,
автор: sarsenbekovich1960
Предмет: Қазақ тiлi,
автор: rustemzhansarbaev29