Graf hamiltonowski

Niniejszy artykuł jest częścią cyklu teoria grafów.




Najważniejsze pojęcia
graf
drzewo
podgraf
cykl
klika
stopień wierzchołka
stopień grafu
dopełnienie grafu
obwód grafu
pokrycie wierzchołkowe
liczba chromatyczna
indeks chromatyczny
izomorfizm grafów
homeomorfizm grafów


Wybrane klasy grafów
graf pełny
graf spójny
drzewo
graf dwudzielny
graf regularny
graf eulerowski
graf hamiltonowski
graf planarny


Algorytmy grafowe
A*
Bellmana-Forda
Dijkstry
Fleury'ego
Floyda-Warshalla
Johnsona
Kruskala
Prima
przeszukiwanie grafu
wszerz
w głąb
najbliższego sąsiada


Zagadnienia przedstawiane jako problemy grafowe
problem komiwojażera
problem chińskiego listonosza
problem marszrutyzacji
problem kojarzenia małżeństw


Inne zagadnienia
kod Graya
diagram Hassego
kod Prüfera


Graf hamiltonowski – rodzaj grafu rozważany w teorii grafów i definiowany dwojako, w dwóch nieco innych znaczeniach:

  • szerszym: dowolny graf zawierający ścieżkę (drogę) przechodzącą przez każdy wierzchołek dokładnie jeden raz zwaną ścieżką Hamiltona;
  • węższym: grafem hamiltonowskim jest graf zawierający cykl Hamiltona, tj. zamkniętą ścieżkę Hamiltona[1].

W niektórych źródłach graf zawierający tylko ścieżkę Hamiltona nazywany jest grafem półhamiltonowskim[2].

Aby lepiej zrozumieć właściwości grafu hamiltonowskiego można się posłużyć przykładem komiwojażera, który chce odwiedzić wszystkich swoich klientów, ale tylko raz (problem komiwojażera). Klienci to wierzchołki grafu, a drogi między nimi są jego krawędziami. Jeżeli graf jest hamiltonowski, to znaczy, że komiwojażer może obejść wszystkich klientów bez mijania drugi raz żadnego z nich i wrócić do punktu wyjścia.

Przykłady grafów hamiltonowskich

Graf skierowany posiadający ścieżkę Hamiltona. Niebieskie kropki to wierzchołki grafu, strzałki to krawędzie grafu, a ścieżkę hamiltona oznaczono kolorem czerwonym.
Przykładowy cykl Hamiltona w grafie dwunastościanu foremnego

Grafem hamiltonowskim w szczególności jest każdy graf:

Złożoność czasowa

Nie są znane algorytmy umożliwiające jednoznaczne rozwiązanie problemu znajdowania najkrótszej możliwej ścieżki Hamiltona w czasie wielomianowym i działające dla wszystkich możliwych grafów (problem ścieżki Hamiltona jest NP zupełny). W praktyce najczęściej stosowane są algorytmy genetyczne, często wykorzystywane w połączeniu z heurystycznymi (np. heurystyka najbliższego sąsiada). Są to jednak metody dające w większości jedynie rozwiązania bliskie optymalnemu. Znalezienie najlepszego, możliwego rozwiązania, zależy głównie od liczby punktów oraz czasem szczęścia na skutek generacji populacji początkowej, krzyżowania oraz mutacji w algorytmach genetycznych.

Problem złożoności czasowej znajdowania rozwiązania problemu grafu hamiltonowskiego wiąże się z brakiem twierdzenia takiego jak twierdzenie Eulera dla grafów Eulera. Owo twierdzenie pozwala w czasie liniowym (tj. zależnym liniowo od, w tym przypadku, liczby wierzchołków) znaleźć odpowiedź na pytanie, czy graf jest eulerowski. W przypadku grafów Hamiltona twierdzenie takie prawdopodobnie nie istnieje.

Znalezienie algorytmu znajdowania drogi Hamiltona w czasie wielomianowym jest „Świętym Graalem” informatyki, i chociaż powstały już setki publikacji opisujących rzekomo taki właśnie algorytm, problem jest nadal otwarty. Według znakomitej części specjalistów taki algorytm nie istnieje („gdyż, zgodnie z rachunkiem prawdopodobieństwa, ktoś już by taki algorytm znalazł”), jednak do czasu udowodnienia, że takowy algorytm nie istnieje, lub udowodnienia, że taki dowód nie może zostać przeprowadzony, należy wstrzymać się z kategorycznymi osądami.

Przykładowy cykl hamiltonowski w grafie Mycielskiego

Oznaczenia

Niech oznacza graf, zbiór jego wierzchołków, zbiór krawędzi, moc zbioru, pojedynczy (w tym przypadku -ty) wierzchołek grafu, a stopień wierzchołka (liczbę kończących się w nim krawędzi). Tradycyjnie oznacza się oraz zapis będący zbiorem dwuelementowym wierzchołków, używa się do oznaczenia krawędzi między i (w przypadku digrafów jest to para uporządkowana, gdyż liczy się kolejność oznaczająca kierunek krawędzi).

Indeksowanie wierzchołków

Ścieżka/cykl Hamiltona może być jednoznacznie wyznaczona przez indeksowanie wierzchołków – tj. nadanie im indeksów, powiedzmy takich, że istnieje ścieżka Hamiltona przechodząca w takiej właśnie kolejności przez wierzchołki grafu.

Gdy znane jest indeksowanie wyznaczające ścieżkę Hamiltona, to znalezienie (lub potwierdzenie nieistnienia) cyklu Hamiltona jest trywialne i sprowadza się do sprawdzenia, czy istnieje krawędź – zajmuje to, w zależności od sposobu reprezentacji grafu, czas stały lub gdzie to liczba wierzchołków danego grafu (zobacz: Notacja dużego O).

Warunek konieczny

Jeżeli graf jest hamiltonowski to dla każdego niepustego podzbioru zbioru wierzchołków zachodzi

gdzie oznacza liczbę spójnych składowych grafu

Warunki wystarczające

Istnieją jednak twierdzenia pozwalające na podstawie cech grafu, dostępnych w czasie liniowym, stwierdzić jednoznacznie, że dany graf jest hamiltonowski. Należy pamiętać, że jest to implikacja jednostronna – istnieje nieskończenie wiele grafów hamiltonowskich, które nie mają poniższych cech.

Twierdzenia te są matematycznym obrazem dość naturalnej obserwacji dotyczącej własności grafów – jest logiczne, że im więcej jest krawędzi w grafie, tym „większe są szanse” na znalezienie wśród nich drogi Hamiltona. W skrócie (i nieformalnie), poniższe twierdzenia mówią, że graf jest hamiltonowski, jeżeli tylko ma on odpowiednio dużo krawędzi w stosunku do liczby wierzchołków.

Najważniejsze z nich to:

Szczególne przypadki

Oczywiste jest, że żaden graf niespójny nie jest hamiltonowski. Dodawanie krawędzi (w szczególności krawędzi wielokrotnych i pętli) do grafu Hamiltona w oczywisty sposób nie może uczynić z niego grafu niehamiltonowskiego. Każdy graf pełny o wierzchołkach zawiera V! cykli Hamiltona, gdyż dla każdej permutacji indeksów wierzchołków, wyznacza istniejącą drogę, będącą cyklem Hamiltona. Każdy turniej ma ścieżkę Hamiltona.

Algorytmy znajdowania ścieżki Hamiltona

  • algorytm Kernighana-Lina
  • algorytm mrówkowy
  • algorytm Robertsa-Floresa

Zobacz też

Przypisy

  1. graf Hamiltona, [w:] Encyklopedia PWN [online] [dostęp 2021-10-10].
  2. Reinhard Diestel: Graph Theory. Nowy Jork: 2000, s. 213. ISBN 0-387-95014-1.

Bibliografia

Media użyte na tej stronie

Mycielski graph k4 hamiltonian path.svg

Mycielski graph, with hamiltonian cycle.

Graf Mycielskiego z cyklem Hamiltona.
Hamilton path.svg
Autor: Autor nie został podany w rozpoznawalny automatycznie sposób. Założono, że to Superborsuk (w oparciu o szablon praw autorskich)., Licencja: CC BY-SA 2.5
Hamilton path in graph. Arrow: edge of graph, Blue dot: vertex of graph, red arrows show Hamilton Path.