Kolorowanie wierzchołków grafu Niech G będzie grafem prostym. Przez k-kolorowanie właściwe wierzchołków grafu G rozumiemy takie przyporządkowanie wierzchołkom grafu liczb naturalnych ze zbioru {1,..., k} (kolorów), że sąsiednie wierzchołki otrzymują różne liczby (kolory). Najmniejszą liczbę k dla której graf G ma k-kolorowanie właściwe nazywamy liczba chromatyczna grafu, ozn. χ(g). Przykład: Optymalne (za pomocą minimalnej liczby kolorów) kolorowania grafów C 5, W 6 i K 5.
Kolorowanie wierzchołków grafu Uwaga. Problem wyznaczania liczby chromatycznej grafu jest w ogólności problemem NP-trudnym. Zatem, w praktyce użyteczne są oszacowania. Kliką grafu G nazywamy jego podgraf pełny. Liczba klikowa grafu, ozn. ω(g), to rząd (liczba wierzchołków) największej kliki grafu. Lemat Prawdziwe jest następujace oszacowanie dolne: χ(g) ω(g).
Kolorowanie wierzchołków grafu Uwaga. Problem wyznaczania liczby chromatycznej grafu jest w ogólności problemem NP-trudnym. Zatem, w praktyce użyteczne są oszacowania. Kliką grafu G nazywamy jego podgraf pełny. Liczba klikowa grafu, ozn. ω(g), to rząd (liczba wierzchołków) największej kliki grafu. Lemat Prawdziwe jest następujace oszacowanie dolne: χ(g) ω(g). Uwaga. Oszacowanie to ma dwie wady: parametr ω(g) jest trudny do wyznaczenia; ze związku n 2 ω(g) otrzymujemy oszacowanie mniej dokładne, lecz n 2 2m łatwe do obliczenia. różnica pomiędzy χ(g) a ω(g) może być dowolnie duża, przykładem są grafy Mycielskiego.
Oszacowania liczby chromatycznej Twierdzenie (Brooks, 1941) Niech G będzie grafem spójnym, który nie jest grafem pełnym ani cyklem długości nieparzystej. Wówczas χ(g) (G). Jeżeli G jest grafem pełnym lub cyklem nieparzystym, to χ(g) = (G) + 1. Uwaga. Oszacowanie χ(g) (G) może być bardzo niedokładne, zwłaszcza dla gwiazd, dla których χ(k 1,n ) = 2, a (K 1,n ) = n.
Oszacowania liczby chromatycznej Twierdzenie Dla grafu G o m krawędziach zachodzi χ(g) 2m + 1, χ(g) λ + 1, gdzie λ oznacza długość (liczbę krawędzi) najdłuższej drogi w grafie. Uwaga. Pierwsze oszacowanie może być bardzo niedokładne np. dla grafów pełnych dwudzielnych K n,n, których liczba krawędzi m = n 2, natomiast liczba chromatyczna jest równa 2; zatem różnica 2m + 1 χ(kn,n ) = 2n 2 + 1 χ(k n,n ) = 2n + 1 2 = 2n 1 może być dowolnie duża. Uwaga. Drugie z oszacowań jest niedokładne dla dróg P n, których liczba chromatyczna wynosi 2, natomiast λ jest równa n 1.
Algorytmy przybliżone Niech A będzie pewnym algorytmem kolorowania wierzchołków grafu. Przez A(G) oznaczmy liczbę kolorów, których algorytm A używa podczas kolorowania grafu G. Następujące parametry są uwzględniane podczas opisu algorytmu A: złożoność obliczeniowa; funkcja dobroci zdefiniowana jako A(n) = max{a(g)/χ(g) : graf G ma n wierzchołków}; najgorszą możliwą funkcją dobroci jest A(n) = n, najlepszą natomiast A(n) = 1; najmniejszy dość trudny graf najmniejszy (w sensie rzędu) graf G, dla którego algorytm może użyć więcej kolorów, niż χ(g); najmniejszy trudny graf najmniejszy (w sensie rzędu) graf G, dla którego algorytm musi użyć więcej kolorów, niż χ(g).
Algorytm sekwencyjny Sekwencyjnym algorytmem kolorowania grafu G nazywamy algorytm działający w dwóch następujących krokach: 1. ustal pewną kolejność kolorowania wierzchołków grafu G; 2. koloruj wierzchołki zachłannie zgodnie z przyjętym porządkiem. Dla grafu G i ustalonej kolejności wierzchołków K = (v 1,..., v n ) kolorowaniem zachłannym nazywamy następującą procedurę przydzielania kolorów: Algorytm KolorujZachłannie(G,K); begin for v:=v 1 to v n do przydziel wierzchołkowi v pierwszy wolny kolor; end;
Metoda RS Metoda RS, nazywana inaczej naiwną, jest metodą sekwencyjną, w której nie ma etapu porządkowania wierzchołków (wierzchołki są porządkowane w sposób losowy). Algorytm KolorujRS(G); begin K:=losowa sekwencja wierzchołków grafu G; KolorujZachłannie(G,K); end; Własności algorytmu RS: algorytm statyczny; złożoność: O(m + n); funkcja dobroci RS(n) = O(n); najmniejszy dość trudny graf: droga P 4 ; nie istnieje graf trudny.
Metoda RS Metoda RS, nazywana inaczej naiwną, jest metodą sekwencyjną, w której nie ma etapu porządkowania wierzchołków (wierzchołki są porządkowane w sposób losowy). Algorytm KolorujRS(G); begin K:=losowa sekwencja wierzchołków grafu G; KolorujZachłannie(G,K); end; Własności algorytmu RS: algorytm statyczny; złożoność: O(m + n); funkcja dobroci RS(n) = O(n); najmniejszy dość trudny graf: droga P 4 ; nie istnieje graf trudny. 1 4 3 2
Metoda RS Metoda RS, nazywana inaczej naiwną, jest metodą sekwencyjną, w której nie ma etapu porządkowania wierzchołków (wierzchołki są porządkowane w sposób losowy). Algorytm KolorujRS(G); begin K:=losowa sekwencja wierzchołków grafu G; KolorujZachłannie(G,K); end; Własności algorytmu RS: algorytm statyczny; złożoność: O(m + n); funkcja dobroci RS(n) = O(n); najmniejszy dość trudny graf: droga P 4 ; nie istnieje graf trudny. 1 4 3 2
Metoda RS Metoda RS, nazywana inaczej naiwną, jest metodą sekwencyjną, w której nie ma etapu porządkowania wierzchołków (wierzchołki są porządkowane w sposób losowy). Algorytm KolorujRS(G); begin K:=losowa sekwencja wierzchołków grafu G; KolorujZachłannie(G,K); end; Własności algorytmu RS: algorytm statyczny; złożoność: O(m + n); funkcja dobroci RS(n) = O(n); najmniejszy dość trudny graf: droga P 4 ; nie istnieje graf trudny. 1 4 3 2
Metoda RS Metoda RS, nazywana inaczej naiwną, jest metodą sekwencyjną, w której nie ma etapu porządkowania wierzchołków (wierzchołki są porządkowane w sposób losowy). Algorytm KolorujRS(G); begin K:=losowa sekwencja wierzchołków grafu G; KolorujZachłannie(G,K); end; Własności algorytmu RS: algorytm statyczny; złożoność: O(m + n); funkcja dobroci RS(n) = O(n); najmniejszy dość trudny graf: droga P 4 ; nie istnieje graf trudny. 1 4 3 2
Metoda RS Metoda RS, nazywana inaczej naiwną, jest metodą sekwencyjną, w której nie ma etapu porządkowania wierzchołków (wierzchołki są porządkowane w sposób losowy). Algorytm KolorujRS(G); begin K:=losowa sekwencja wierzchołków grafu G; KolorujZachłannie(G,K); end; Własności algorytmu RS: algorytm statyczny; złożoność: O(m + n); funkcja dobroci RS(n) = O(n); najmniejszy dość trudny graf: droga P 4 ; nie istnieje graf trudny. 1 4 3 2
Metoda RS Metoda RS, nazywana inaczej naiwną, jest metodą sekwencyjną, w której nie ma etapu porządkowania wierzchołków (wierzchołki są porządkowane w sposób losowy). Algorytm KolorujRS(G); begin K:=losowa sekwencja wierzchołków grafu G; KolorujZachłannie(G,K); end; Własności algorytmu RS: algorytm statyczny; złożoność: O(m + n); funkcja dobroci RS(n) = O(n); najmniejszy dość trudny graf: droga P 4 ; nie istnieje graf trudny. 1 4 3 2 χ(p 4 ) = 2, RS(P 4 ) = 3
Metoda LF (Largest First) Metoda LF (Largest First) (Welsha & Powell, 1967). Wynika ze spostrzeżenia, że dla wierzchołków o małym stopniu zwykle mamy pewną swobodę w wyborze koloru; zatem należy najpierw kolorować wierzchołki o dużym stopniu. Algorytm KolorujLF(G); begin K:=wierzchołki grafu G uporządkowane wg stopni nierosnąco; KolorujZachłannie(G,K); end; Własności algorytmu LF: algorytm statyczny (kolejność wierzchołków ustalona na początku nie zmienia się podczas realizacji algorytmu); złożoność: O(m + n);
Własności algorytmu LF (cd.) najmniejszy dość trudny graf: droga P 6 ; v 1 v 2 v 3 v 4 v 5 v 6 Kolejność wierzchołków: (v 2, v 5, v 3, v 4, v 1, v 6 ).
Własności algorytmu LF (cd.) najmniejszy dość trudny graf: droga P 6 ; v 1 v 2 v 3 v 4 v 5 v 6 Kolejność wierzchołków: (v 2, v 5, v 3, v 4, v 1, v 6 ). graf H 1 najmniejszy graf trudny.
Własności algorytmu LF (cd.) najmniejszy dość trudny graf: droga P 6 ; v 1 v 2 v 3 v 4 v 5 v 6 Kolejność wierzchołków: (v 2, v 5, v 3, v 4, v 1, v 6 ). v 7 graf H 1 najmniejszy graf trudny. (porządkujemy wierzchołki stopnia 4 i kolorujemy; wybór spośród wierzchołków stopnia 3 jest symetryczny - zawsze potrzebny jest czwarty kolor) v1 v6 v2 v3 v4 v5
Własności algorytmu LF (cd.) najmniejszy dość trudny graf: droga P 6 ; v 1 v 2 v 3 v 4 v 5 v 6 Kolejność wierzchołków: (v 2, v 5, v 3, v 4, v 1, v 6 ). v 7 graf H 1 najmniejszy graf trudny. (porządkujemy wierzchołki stopnia 4 i kolorujemy; wybór spośród wierzchołków stopnia 3 jest symetryczny - zawsze potrzebny jest czwarty kolor) v1 v6 v2 v3 v4 v5
Własności algorytmu LF (cd.) najmniejszy dość trudny graf: droga P 6 ; v 1 v 2 v 3 v 4 v 5 v 6 Kolejność wierzchołków: (v 2, v 5, v 3, v 4, v 1, v 6 ). v 7 graf H 1 najmniejszy graf trudny. (porządkujemy wierzchołki stopnia 4 i kolorujemy; wybór spośród wierzchołków stopnia 3 jest symetryczny - zawsze potrzebny jest czwarty kolor) v1 v6 v2 v3 v4 v5
Własności algorytmu LF (cd.) Funkcja dobroci LF(n) = O(n). Niech J k ozn. k-ty graf Johnsona, skonstruowany następująco: J k = K k,k M, gdzie M = {{u i, v i } : u i V 1, v i V 2 }, V(K k,k ) = (V 1, V 2 ). u 1 u 2 u 3 u 4 v 1 v 2 v 3 graf J oraz kolorowanie algorytmem LF 4 v 4 Grafy Johnsona są dwudzielne, więc χ(j k ) = 2, natomiast dla permutacji wierzchołków (u 1, v 1, u 2, v 2,..., u k, v k ) algorytm LF użyje k kolorów, stąd LF(J k ) χ(j k ) = n/2 2 = n 4.
Metoda SL (Smallest Last) Metoda SL (Smallest Last) (Matula, Marble & Isaacson, 1972). Podobnie jak LF, opiera się na obserwacji, że korzystnie jest kolorować wierzchołki o małym stopniu jako ostatnie. Algorytm SL składa się z dwóch etapów: faza redukcji grafu: znajdujemy wierzchołek o minimalnym stopniu i usuwamy go z grafu (powtarzamy dopóki graf nie jest pusty). kolorujemy wierzchołki zachłannie w kolejności ustalonej w poprzednim kroku, zaczynając od wierzchołków usuwanych najpóźniej.
Metoda SL (Smallest Last) Algorytm KolorujSL(G); begin K:= ; while V \ K do dopisz do K wierzchołek v o najmniejszym stopniu w podgrafie indukowanym przez V \ K; KolorujZachłannie(G,K); K ozn. odwrócenie kolejności K end; Własności algorytmu SL: algorytm statyczny; złożoność: O(m + n); funkcja dobroci SL(n) = O(n); algorytm optymalnie koloruje: drzewa, cykle, grafy jednocykliczne, koła, grafy Mycielskiego, grafy Johnsona;
Własności algorytmu SL (cd.) najmniejszy dość trudny graf: pryzma P; 1 2 4 3 χ(p) = 3, SL(P) = 4 6 5
Własności algorytmu SL (cd.) najmniejszy dość trudny graf: pryzma P; 1 2 4 3 χ(p) = 3, SL(P) = 4 6 5 graf Pd (pryzmatoid) najmniejszy graf trudny. χ(pd) = 4, SL(Pd) = 5