Witam,
potrzebuję algorytmu o złożoności \(\displaystyle{ n!}\) (więc najprostsza wersja) do wyszukiwania cykli Hamiltona w grafie skierowanym. Najlepiej w postaci pseudokodu. Pomoże ktoś ?
[Algorytmy] Cykle hamiltona w grafie skierowanym
-
- Użytkownik
- Posty: 15
- Rejestracja: 24 sty 2012, o 13:54
- Płeć: Mężczyzna
- Lokalizacja: Katowice
- Podziękował: 3 razy
[Algorytmy] Cykle hamiltona w grafie skierowanym
Odświeżam. Może ktoś podrzuci jakiś uproszczony pseudokod chociaż?
Pozdrawiam
Pozdrawiam
-
- Użytkownik
- Posty: 5974
- Rejestracja: 28 lut 2010, o 19:45
- Płeć: Mężczyzna
- Lokalizacja: Toruń
- Podziękował: 15 razy
- Pomógł: 1251 razy
[Algorytmy] Cykle hamiltona w grafie skierowanym
W czym problem? Permutacje generuje się rekurencyjnie:
Wywołanie
Teraz sprawdzamy każdą, czy jest po kolei czy jest cyklem Hamiltona; trywialny hint: wystarczy sprawdzić, że kolejne wygenerowane krawędzie istnieją.
Kod: Zaznacz cały
perm(k)
if k==1
print P
else
for i=1 to k do
swap (P[i], P[k])
perm(k-1)
swap (P[i], P[k])
perm(n)
wypisze wszystkie \(\displaystyle{ n}\)-elementowe permutacje.Teraz sprawdzamy każdą, czy jest po kolei czy jest cyklem Hamiltona; trywialny hint: wystarczy sprawdzić, że kolejne wygenerowane krawędzie istnieją.