Изменения

Перейти к: навигация, поиск

Гамильтоновы графы

48 байт добавлено, 00:52, 10 января 2016
Псевдокод
'''for''' j = 0 .. n - 1
'''if''' w(i, j) существует '''and''' j-ый бит mask == 1
d[i][mask] = '''min'''(d[i][mask], findCheapest(j, mask - <tex>2 ** j^n</tex>) + w(i, j))
'''return''' d[i][mask]
'''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
Дальше ищем сам цикл:
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 ** j^n</tex>] + w(i, j)
path.push(j)
i = j
mask = mask - <tex>2 ** j^n</tex>
'''continue'''
Анонимный участник

Навигация