Processing math: 83%

Kolorowanie grafów

W tej części wykładu zajmiemy się problemami związanymi z kolorowaniem grafów. Intuicyjnie kolorowanie to przypisanie wierzchołkom grafu kolorów w taki sposób, by każde dwa sąsiednie wierzchołki miały różne kolory.

Kolorowanie grafu G=(V,E) to funkcja c:VN taka, że c(v)c(w) ilekroć vw jest krawędzią grafu G.

Kolorowanie grafu G na k kolorów wyznacza rozbicie zbioru V na sumę rozłączną V=V0V1Vk1 jednobarwnych zbiorów Vi, przy czym każdy graf indukowany postaci G|Vi jest antykliką. Na odwrót, rozbicie V=V0V1Vk1 pozwala na pokolorowanie grafu G na k kolorów.

Graf k-kolorowalny (k-barwny) to graf dający się pokolorować k barwami.

Liczba chromatyczna grafu, χ(G), to najmniejsza liczba barw, którymi można pokolorować graf G.

Optymalne kolorowanie grafu G to kolorowanie używające dokładnie χ(G) kolorów.

Twierdzenie 14.9

Graf, którego wszystkie wierzchołki mają stopień nie większy niż k jest (k+1)-kolorowalny.

Dowód

Dowód poprowadzimy indukcyjnie ze względu na liczbę wierzchołków w grafie G=(V,E). Jeśli graf ma jeden wierzchołek, to oczywiście wystarcza jeden kolor. Załóżmy więc, że |V|2. Wybierzmy dowolny wierzchołek vV i rozważmy graf G|V{v}. Na mocy założenia indukcyjnego da się go pokolorować k+1 barwami. Zauważmy, że v ma co najwyżej k sąsiadów. Wśród k+1 kolorów użytych w kolorowaniu grafu G|V{x} jest więc kolor nie przypisany żadnemu sąsiadowi wierzchołka v. Wybieramy więc ten kolor jako barwę dla v. Udało się pokolorować graf G zbiorem k+1 kolorów, co kończy dowód.

Ograniczenia górnego, na liczbę chromatyczną grafu, podanego w Twierdzeniu 14.9 nie można w ogólności wzmocnić. Istotnie, każde kolorowanie kliki Kk+1 wymaga dokładnie k+1 kolorów, mimo iż stopień każdego wierzchołka to k. Następne twierdzenie wzmacnia jednak znacznie Twierdzenia 14.9, ale podajemy je bez dowodu.

Twierdzenie 14.10 [Brooks 1941]

Niech G będzie spójnym grafem prostym, który nie jest kliką. Jeśli wszystkie wierzchołki grafu G mają stopień nie większy niż k i k3, to G jest ρ-kolorowalny.

Oczywiście nie powinno dziwić nas, że dla grafów specjalnego typu można na ogół powiedzieć więcej o ich liczbie chromatycznej.

Obserwacja 14.11

Graf jest dwudzielny wtedy i tylko wtedy, gdy jest 2-kolorowalny.

Dowód

Zauważmy najpierw, że w grafie dwudzielnym G=(V1V2,E), podgrafy indukowane G|V1 oraz G|V2 są antyklikami. Wystarczy więc pokolorować wierzchołki z V1 jednym kolorem, a wierzchołki z V2 drugim. Z drugiej strony wierzchołki grafu 2-kolorowalnego daje się oczywiście rozbić na dw zbiory indukujące antykliki, jak tego wymaga dwudzielność.

Twierdzenie 14.12

Każdy graf planarny jest 5-kolorowalny.

Dowód

Dowód przeprowadzimy indukcyjnie ze względu na liczbę wierzchołków w grafie G=(V,E). Dla |V|=1 teza jest oczywista. Niech więc |V|2. Z Wniosku 14.6 wiemy, że G ma jakiś wierzchołek v o stopniu niewiększym niż 5. Na mocy założenia indukcyjnego wiemy, że graf G|V{v} jest 5-kolorowalny. Jeżeli v ma mniej niż 5-ciu sąsiadów, to można go pokolorować kolorem niewystępującym u żadnego sąsiada, co kończyłoby dowód. Podobnie, gdyby jakiś kolor występował u co najmniej dwóch sąsiadów wierzchołka v, to także można byłoby zakończyć dowód, gdyż Wśród 5-ciu kolorów dostępnych do kolorowania grafu G jest kolor nie przypisany żadnemu sąsiadowi wierzchołka v i może być wobec tego użyty dla v. Możemy więc założyć, że v ma 5 sąsiadów v1,v2,v3,v4,v5 odpowiednio o kolorach: 1,2,3,4,5. Bez straty ogólności ich ułożenie może wyglądać jak na rysunku Grafy 5barw planar.

Niech Pi,j będzie restrykcją grafu G do zbioru wszystkich jego wierzchołków o barwach i oraz j. Jeśli v1 i v3 nie są w tej samej spójnej składowej grafu P1,3, to można zamienić kolory 1 i 3 w spójnej składowej wierzchołka v1. Tak więc, z racji, że teraz v1 otrzymał kolor 3, koloru 1 można użyć do pokolorowania wierzchołka v. Pozostał przypadek, gdy v1 oraz v3 są w tej samej spójnej składowej grafu P1,3. Oznaczy to, że istnieje ścieżka R zawarta w P1,3 i łącząca v1 z v3. W efekcie otrzymujemy cykl vv1Rv3v, który ogranicza obszar zawierający wierzchołek v2 i nie zawierający v4.

Z planarności dostajemy więc, że wierzchołki v2 oraz v4 nie mogą być w tej samej spójnej składowej grafu P2,4. W takim razie podobnie, jak powyżej możemy podmienić kolory w spójnej składowej wierzchołka v2 tak, że v2 otrzyma kolor 4. Ale teraz możemy pokolorować wierzchołek v na kolor 2, co kończy dowód.

Okazuje się że prawdziwe jest mocniejsze i słynne twierdzenie o czterech barwach. Jego długi i skomplikowany dowód został otrzymany przy użyciu specjalnie napisanego programu do rozważenia bardzo wielu przypadków. Dowód ten pomijamy.

Twierdzenie 14.13

Każdy graf planarny jest 4-kolorowalny.

Mapa to graf płaski nie zawierający mostów.

W mapach rozważa się kolorowanie ścian.

Mapa ma k-kolorowalne ściany jeśli jej ściany można pokolorować k kolorami w ten sposób, by żadne dwie graniczące ze sobą ściany nie miały tego samego koloru. Innymi słowy, mapa M ma k-kolorowalne ściany, jeśli jej geometrycznie dualny graf M jest k kolorowalny.

Twierdzenie 14.14

Mapa M ma 2-kolorowalne ściany wtedy i tylko wtedy, gdy graf M jest eulerowski.

Dowód

Załóżmy najpierw, że ściany są pomalowane dwoma kolorami. Wtedy każdy wierzchołek v musi być incydentny z parzystą liczbą ścian, a zatem musi mieć parzysty stopień. Na mocy Twierdzenia Eulera otrzymujemy więc, że M jest eulerowski.

Niech teraz M będzie grafem eulerowskim. Wtedy, na mocy wniosku z Twierdzenia Eulera, jego krawędzie można podzielić na rozłączne krawędziowo cykle C1,,Ck. Kolorowanie ścian mapy M zdefiniujmy poprzez przypisanie ścianie pierwszego koloru, jeśli jest otoczona nieparzystą liczbą cykli spośród C1,,Ck, albo poprzez przypisanie drugiego koloru, jeśli jest otoczona parzystą liczbą cykli. Kolorowanie to jest poprawne, gdyż jeśli dwie ściany graniczą ze sobą poprzez krawędź jakiegoś cyklu Ci, to jedna z tych ścian leży wewnątrz cyklu Ci, a druga na zewnątrz Ci. W stosunku do pozostałych cykli spośród C1,,Ck, albo obie ściany są wewnątrz, albo obie na zewnątrz. Tak więc różni je parzystość liczby cykli, we wnętrzu których leżą. Tym samym, w zdefiniowanym kolorowaniu, otrzymają różne kolory.

Z Twierdzenia 14.13, poprzez przejście od mapy M do grafu geometrycznie dualnego M dostajemy natychmiast następujący wniosek.

Wniosek 14.15

Każda mapa ma 4-kolorowalne ściany.

Z powodu dużego znaczenia kolorowania tak w samej teorii grafów, jak i w algorytmice, problemy kolorowania doczekały się bardzo rozbudowanych pojęć i narzędzi. Poznamy teraz jeszcze jedno z nich.

Liczba stopniowa grafu. Niech G=({v1,,vn},E) będzie grafem prostym. Przy każdej permutacji ρ:{1,,n}{1,,n} każdemu wierzchołkowi vρ(i) przypisana jest liczba sąsiadów nρρ(i) w zbiorze wierzchołków o indeksie mniejszym niż ρ(i). Liczba stopniowa jest równa

χs(G)=min

Przykład

Rozważmy graf \mathbf{G}_1=( \lbrace v_1,v_2,v_3,v_4,v_5 \rbrace,E ) przedstawiony na rysunku Grafy liczba stopniowa 1.

Dla permutacji \rho zadanej przez

\begin{array} {|c||c|c|c|c|c|} \hline n & 1 & 2 & 3 & 4 & 5 \\ \hline \rho( n ) & 5 & 2 & 3 & 1 & 4 \\ \hline \end{array}

mamy \max_{i=1,\ldots, n}{n_i^{\rho}}=2 i wartość ta jest realizowana przez wierzchołki v_3 i v_1 . Wierzchołki ułożone w porządku v_{\rho( 1 )},\ldots,v_{\rho( 5 )} przedstawione są na rysunku Graf G_1 z wierzchołkami....

Przeglądając z kolei wszystkie możliwe permutacje możemy stwierdzić, że nasza permutacja \rho realizuje minimum \displaystyle{\min_{\rho}\max_{i=1,\ldots, n}{n_i^{\rho}}} , a zatem \chi_s\!( \mathbf{G} )=2 .

Graf \mathbf{G}_1 można teraz pokolorować następującą procedurą. Wybierając kolejno wierzchołki v_{\rho( 1 )},v_{\rho( 2 )},\ldots,v_{\rho( 5 )} nadajemy im kolor niewykorzystany dla żadnego dotąd rozpatrywanego sąsiada. Otrzymujemy wtedy kolorowanie przedstawione na rysunku Kolorowanie grafu.

Waga wprowadzonej liczby stopniowej wynika z poniższej obserwacji.

Obserwacja 14.16

Jeżeli \mathbf{G} jest grafem prostym, to

\chi\!( \mathbf{G} )\leq\chi_s\!( \mathbf{G} )+1.

Dowód

Niech v_1,\ldots,v_n będzie ciągiem wierzchołków grafu \mathbf{G} w porządku realizującym wartość \chi_s\!( \mathbf{G} ) . Wskażemy kolorowanie za pomocą \chi_s\!( \mathbf{G} )+1 barw. Wierzchołki kolorowane są kolejno zgodnie z ich numeracją. Załóżmy, że pokolorowane zostały już wierzchołki v_1,\ldots,v_{i-1} . Wierzchołek v_i ma co najwyżej \chi_s\!( \mathbf{G} ) sąsiadów w zbiorze \lbrace v_1,\ldots,v_{i-1} \rbrace , tak więc w zbiorze \chi_s\!( \mathbf{G} )+1 kolorów jest jeszcze co najmniej jeden kolor nie wykorzystany dla tych wcześniejszych sąsiadów v_i . Przydzielamy go więc wierzchołkowi v_i . Czynność ta jest powtarzana, aż do momentu pokolorowania wszystkich wierzchołków w {\sf V}\!(\mathbf{G}) .