Изменения
→Псевдокод
'''return''' d[i][mask]
'''function''' start: '''for''' i = 0 .. n - 1 '''for''' mask = 0 .. <tex>2^n</tex> - 1 d[i][mask] = <tex>\infty</tex> d[0][0] = 0 ans = findCheapest(0, <tex>2^n</tex> - 1) '''if''' ans == <tex>\infty</tex> exit '''return'''
Дальше ищем сам цикл:
'''function''' findWay: i = 0 mask = <tex>2^n</tex> - 1 path.push(0) '''while''' mask != 0 '''for''' j = 0 .. n - 1 '''if''' w(i, j) существует '''and''' j-ый бит mask == 1 '''and''' d[i][mask] == d[j][mask - <tex>2^n</tex>] + w(i, j) path.push(j) i = j mask = mask - <tex>2^n</tex> '''continue'''
==== Алгоритм нахождения гамильтонова цикла ====