Graf hamiltonowski

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
Przykłady cykli Hamiltona w grafie siatki 8x8

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 G {\displaystyle G} oznacza graf, V ( G ) {\displaystyle V(G)} zbiór jego wierzchołków, E ( G ) {\displaystyle E(G)} zbiór krawędzi, | A | {\displaystyle |A|} moc zbioru, v i {\displaystyle v_{i}} pojedynczy (w tym przypadku i {\displaystyle i} -ty) wierzchołek grafu, a deg ( v ) {\displaystyle \deg(v)} stopień wierzchołka (liczbę kończących się w nim krawędzi). Tradycyjnie oznacza się | V ( G ) |   =   n {\displaystyle |V(G)|\ =\ n} oraz | E ( G ) |   =   m , {\displaystyle |E(G)|\ =\ m,} zapis { v , u } {\displaystyle \{v,u\}} będący zbiorem dwuelementowym wierzchołków, używa się do oznaczenia krawędzi między v {\displaystyle v} i u {\displaystyle u} (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 v 0 , v 1 , , v n , {\displaystyle v_{0},v_{1},\dots ,v_{n},} takich, że istnieje ścieżka Hamiltona przechodząca w takiej właśnie kolejności przez wierzchołki grafu.

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

Warunek konieczny

Jeżeli graf G {\displaystyle G} jest hamiltonowski to dla każdego niepustego podzbioru V {\displaystyle V'} zbioru wierzchołków V ( G ) {\displaystyle V(G)} zachodzi

ω ( V ( G )     V ) | V | , {\displaystyle \omega (V(G)\ -\ V')\leqslant |V'|,}

gdzie ω ( G ) {\displaystyle \omega (G)} oznacza liczbę spójnych składowych grafu G . {\displaystyle G.}

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 V {\displaystyle V} wierzchołkach zawiera V! cykli Hamiltona, gdyż dla każdej permutacji indeksów wierzchołków, v 1 , v 2 , , v V , v 1 {\displaystyle v_{1},v_{2},\dots ,v_{V},v_{1}} wyznacza istniejącą drogę, będącą cyklem Hamiltona. Każdy turniej ma ścieżkę Hamiltona.

Algorytmy znajdowania ścieżki Hamiltona

Zobacz też

Przypisy

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

Bibliografia

  • Kenneth Ross, Charles Wright, Matematyka dyskretna, PWN, 2003.
  • Robin Wilson, Wprowadzenie do teorii grafów, PWN, 2004.
  • Witold Lipski, Kombinatoryka dla programistów, WNT, 2004.
  • Karolina Sołtys, „Mrówki, czyli piękno metaheurystyk”.
Encyklopedia internetowa (graf):
  • DSDE: Hamiltongraf