TEORIA GRAFÓW I SIECI Temat nr : Kolorowanie grafów dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl tel.: -8-9-, p./ Zakład Badań Operacyjnych i Wspomagania Decyzji Instytut Systemów Informatycznych Wydział Cybernetyki, Wojskowa Akademia Techniczna
Kilka dalszych definicji Podgraf pusty: podgraf, który jest grafem pustym; G a d f g Podgraf pusty grafu G Zbiór wewnętrznie stabilny: W W taki, że G = W, U, P tworzy podgraf pusty grafu G; np. W ={,,}, {,}, {,}, {,}, {,}, {i} i=,.., dla grafu G powyżej; Maksymalny zbiór wewnętrznie stabilny: zbiór wewnętrznie stabilny, który nie jest podzbiorem właściwym żadnego zbioru wewnętrznie stabilnego; np. {,,}, {,,}, {,}, {,}, {,}. Najliczniejszy zbiór wewnętrznie stabilny: zbiór wewnętrznie stabilny o największej liczności, np. {,,}, {,,}.
G Kilka dalszych definicji Baza grafu G = W, U, P : każdy taki podgraf G = W, U, P, że każda gałąź u U jest incydentna z pewnym W ; a d f g d g g f f Baza grafu G Baza grafu G Baza grafu G d Baza minimalna: baza, której odpowiada maksymalny zbiór wewnętrznie stabilny, np. Baza, Baza; Baza najmniej liczna: baza, której odpowiada najliczniejszy zbiór wewnętrznie stabilny, np. Baza. TWIERDZENIE: G = W, U, P jest bazą grafu G = W, U, P W\W tworzy podgraf pusty (zbiór wewnętrznie stabilny) grafu G.
Przykład: bazy grafu i zbiory wewnętrznie stabilne Niech graf G opisuje następującą sytuację: wierzchołki grafu reprezentują radiowe punkty nadawczo odbiorcze, a gałęzie różnego rodzaju zakłócenia wynikające z pracy nadajników umieszczonych w tych punktach. Należy wybrać do jednoczesnej pracy takie odbiorniki (nadajniki), aby nie powodować zakłóceń i jednocześnie przesłać jak najwięcej informacji w krótkim czasie. G a b c e d f g ROZWIĄZANIEM jest wyznaczenie zbioru wewnętrznie stabilnego wierzchołków (brak zakłóceń) i dodatkowo takiego, który jest najliczniejszym maksymalnym zbiorem wewnętrznie stabilnym (przesyłanie jak największej ilości informacji). Np. W =,, - jeden z najliczniejszych zbiorów wewnętrznie stabilnych grafu G.
Algorytm wyznaczania wszystkich baz minimalnych w grafie G Y W, W n, W w,, w,, w, U u, u,, u s n m n,,, s, n - wektor określający podgraf grafu s gdy gdy w s w s Y Y n X - zbiór wszystkich wektorów n f G b n,, ij fg n, : X gdy Y odpowiadający nm w p.p. n tworzy bazę A G a - binarna macierz incydencji grafu G
Algorytm wyznaczania wszystkich baz minimalnych w grafie G UWAGA: w dalszych rozważaniach sumę logiczną () zastąpimy przez + a iloczyn logiczny () zastąpimy przez. Zauważmy:. Gałąź u j jest incydentna z pewnym wierzchołkiem zbioru Y reprezentowanym przez wektor. Zbiór Y tworzy bazę aij i, j, m i czyli m n j i a ij i, stąd f G n n m n i a ij n aij i n j i i WAK Wyrażenie Alternatywno Koniunkcyjne
Algorytm wyznaczania wszystkich baz minimalnych w grafie G Funkcja f G ( (n) ) jest tzw. monotoniczną funkcją boolowską (mfb). Oznacza to, że jeżeli jakiś wektor (n) reprezentuje bazę grafu (tzn. f G ( (n) ) = ), to wektory otrzymane z (n) w ten sposób, że niektóre składowe tego wektora mające wartość zamieniane są na składowe o wartości, też reprezentują bazy grafu G. Każdy wektor (n) X (n), gdzie X (n) = (n) : f G ( (n) )= reprezentuje odpowiednią bazę grafu G. Wśród nich są wektory reprezentujące bazy minimalne. Z własności monotonicznych funkcji boolowskich wynika, że każda mfb jest określona jednoznacznie przez zbiór tzw. wektorów minimalnych tej funkcji X n min X (n). Każdy z wektorów minimalnych ma z definicji tą własność, że zamiana wartości dowolnej jego składowej mającej wartość na wartość daje wektor nie należący już do zbioru X (n), tzn. że funkcja f G przyjmuje dla tego wektora wartość i wektor ten nie reprezentuje już bazy grafu. 7
Algorytm wyznaczania wszystkich baz minimalnych w grafie G Zatem, zgodnie z definicją bazy minimalnej, każdy wektor minimalny funkcji f G reprezentuje odpowiednią bazę minimalną rozpatrywanego grafu G. Aby otrzymać zbiór X n min wektorów minimalnych funkcji f G należy przekształcić formułę monotonicznej funkcji boolowskiej (WAK) do postaci tzw. minimalnej formuły alternatywnej (mfa): czyli: a a a a b a a b a c a a a a b a a b a c b f G n k n a a a WAK mfa c a b c dzialania algebry Boole'a k Postać nieredukowalna 8
Algorytm wyznaczania wszystkich baz minimalnych w grafie G Każdy składnik (iloczyn) sumoiloczynu mfa określa odpowiedni wektor minimalny w ten sposób, że zmienne boolowskie występujące w tym iloczynie odpowiadają tym składowym wektora minimalnego, które mają wartość. Pozostałe składowe są =. Otrzymamy zatem: k n f X n X G Wszystkie zmienne w iloczynie = Zmienne występujące w iloczynie odpowiadają wierzchołkom tworzącym bazę minimalną. 9
Algorytm wyznaczania wszystkich baz minimalnych w grafie G PROCEDURA (wyznaczania wszystkich baz minimalnych). utworzyć WAK. przekształcić WAK do postaci mfa. odczytać bazy minimalne lub. odczytać maksymalne zbiory wewnętrznie stabilne. Przykład: Dla grafu G jak poniżej wyznaczyć wszystkie bazy minimalne oraz maksymalne zbiory wewnętrznie stabilne. G a b c e d f g
Algorytm wyznaczania wszystkich baz minimalnych w grafie G Rozwiązanie: Mamy Wyrażenie boolowskie funkcji f G ma postać: a b d g f c e G g f e d c b a G A b 7 a f j i i ij G
Algorytm wyznaczania wszystkich baz minimalnych w grafie G Rozwiązanie, c.d.: d a G b e g c f Zatem graf G ma baz minimalnych tworzonych przez wierzchołki: b -,, ; b,, ; b,,, ; b,,, ; b,,,. Maksymalne zbiory wewnętrznie stabilne są następujące: W =,, ; W =,, ; W =, ; W =, ; W =,.
Zadanie kolorowania wierzchołków grafu Pokolorowanie: funkcja f : W N taka, że f() = f(y) y oraz y nie są przyległe (*) Zadanie kolorowania: dla danego grafu G = W, U wyznaczyć f * : W N tak, aby gdzie: ma f min ma f f F W F zbiór wszystkich funkcji przekształcających W w N o własności (*) Wierzchołki mają nadane numery kolorów: -,, - -,
Kolorowanie map historyczne zastosowanie problemu kolorowania grafu
Kolorowanie map historyczne zastosowanie problemu kolorowania grafu Problem tzw. czterech barw :
Kolorowanie map historyczne zastosowanie problemu kolorowania grafu Twierdzenie: Każdą mapę na płaszczyźnie można przy użyciu czterech barw pokolorować dobrze (czyli tak, aby graniczące (*) z sobą państwa były różnego koloru) (*) graniczące, czyli posiadające granicę (a nie punkt styczności, jak na rysunku poniżej z lewej) UWAGA!!!. Twierdzenie o czterech barwach dotyczy map planarnych (spłaszczalnych) lub sferycznych, nie zaś na przykład toroidalnych.. Pierwszy dowód twierdzenia wymagał godzin pracy (!!!) superkomputera Cray w 97 roku.
Kolorowanie map historyczne zastosowanie problemu kolorowania grafu Twierdzenie Jordana (udowodnione przez Legendre a): Jeśli G jest mapą powstałą z grafu o V wierzchołkach z E krawędziami i F trójkątnymi elementami, wówczas V + F - E =. W przykładzie z lewej: V=; F=; E=9 czyli V + F - E = Z formuły Eulera można wywnioskować, że dowolny graf na płaszczyźnie może mieć powierzchnię o co najwyżej bokach a zatem, skoro płaska mapa może mieć powierzchnię z co najwyżej pięcioma bokami, wynika stąd następujące Twierdzenie: Każda mapa płaska (graf planarny) może być pokolorowana pięcioma lub mniej kolorami. 7
Procedura kolorowania wierzchołków grafu. wyznaczenie wszystkich maksymalnych zbiorów wewnętrznie stabilnych W, W,..., W K ;. utworzenie macierzy gdzie: b ij, gdy wi, gdy w B bij nk i. dla zmiennych binarnych tworzymy WAK:, j-ty zbiór wewn. stab. należy do pokrycia j, w p.p. W j W j j j, K w i i-ty wierzchołek grafu n K i j b ij j. przekształcamy WAK do postaci mfa: POKRYCIE (elementów zbioru wierzchołków grafu G przez elementy zbiorów wewnętrznie stabilnych) r r K 8
Procedura kolorowania wierzchołków grafu. wybieramy z mfa najkrótszy iloczyn: i POKRYCIE i i P NAJMNIEJLICZNE. tworzymy rodzinę A, A,... A P podzbiorów: p A W, A W \, i p i A p p i i 7. optymalne pokolorowanie:, P PODZIAŁ NAJMNIEJLICZNY f p A p, p, P gdzie: P liczba chromatyczna grafu (minimalna liczba kolorów jaką można pokolorować graf). 9
Procedura kolorowania wierzchołków grafu Przykład: Pokolorować wierzchołki grafu G z rysunku obok. Rozwiązanie:. Wszystkie maksymalne zbiory wewnętrznie stabilne wyznaczyliśmy w przykładzie poprzednim (str.), tzn.: W =,, ; W =,, ; W =, ; W =, ; W =,.. tworzymy macierz B:.. tworzymy WAK i przekształcamy je do mfa: a b d g f c e G W W W W W B f G. wybieramy najkrótszy iloczyn, np.. Tworzymy rodzinę A, A, A : A = W =,, A = W \ A = A = W \ A A =,. 7. Kolor nr : wierzchołki,,, kolor nr : wierzchołek kolor nr : wierzchołki i. a b d g f c e G
Kolorowanie gałęzi grafu Procedura kolorowania gałęzi grafu G:. Utworzyć graf sprzężony (krawędziowy) G* do G: przy czym: G W, U, P G U, jeżeli G jest grafem nieskierowanym, to: u U krawędzie oraz są przyległe w, u G jeżeli G jest grafem skierowanym, to: u, U łuk u kończy się w wierzchołku, w którym rozpoczyna się łuk w G U G G*. Pokolorować wierzchołki w G*.
Szacowanie liczby chromatycznej grafu Problem optymalnego kolorowania grafu jest NP zupełny Szacowanie liczby chromatycznej, np.: G P S G Metody przybliżone kolorowania grafu: Wood a (tzw. macierzy podobieństw) redukcji grafu algorytmy LF, LS, SLF inne gdzie: (G) gęstość grafu (liczność zbioru wierzchołków najliczniejszego podgrafu pełnego); S(G) stopień grafu. G a b c e G P S G d f g
Przybliżone algorytmy kolorowania grafu Algorytm LF (Largest First). Uporządkuj wierzchołki grafu malejąco według ich stopni.. Koloruj wierzchołki zachłannie, zgodnie z ustaloną wcześniej kolejnością (zaczynając od wierzchołka o największym stopniu). Uwaga! Algorytm LF jest algorytmem statycznym, gdyż raz ustalona kolejność wierzchołków nie zmienia się w trakcie jego działania. Algorytm SL (Smallest Last). Znajdź wierzchołek o minimalnym stopniu i usuń go z grafu.. Powtarzaj krok pierwszy tak długo, aż graf będzie pusty (zapamiętaj kolejność usuwanych wierzchołków).. Koloruj wierzchołki zachłannie, zgodnie z ustaloną wcześniej kolejnością (zaczynając od wierzchołków usuniętych później). Uwaga! Algorytm SL jest statyczny, jego złożoność wynosi O(n + m), gdzie n - liczba wierzchołków, m - liczba krawędzi.
Przybliżone algorytmy kolorowania grafu Stopień nasycenia wierzchołka : liczba różnych kolorów sąsiednich z tym wierzchołkiem. Algorytm SLF (Saturated Largest First) dopóki istnieją nie pokolorowane wierzchołki wykonuj operacje: { }. znajdź wierzchołek o maksymalnym stopniu spośród wierzchołków o maksymalnym stopniu nasycenia;. pokoloruj znaleziony wierzchołek zachłannie. Uwaga! Złożoność algorytmu SLF wynosi O(m log n).
Wykorzystanie klasycznego kolorowania grafów Przykład (przechowywanie substancji chemicznych). Potrzeba przechować substancji chemicznych a, b, c, d, e. Niektóre z tych substancji reagują gwałtownie w przypadku zetknięcia powinny być przechowywane w odległych miejscach (tabelka). W ilu najmniej oddzielnych częściach magazynu możemy przechowywać te substancje i które, w których częściach? * pary substancji, które muszą być rozdzielone Rozwiązanie:
Wykorzystanie klasycznego kolorowania grafów Przykład (rozkład godzin wykładów). Dysponujemy listą wykładów (lekcji). Niektóre wykłady (lekcje) nie mogą się odbywać jednocześnie (bo np. dotyczą tej samej klasy/grupy lub tego samego nauczyciela). Jak ułożyć plan zajęć, aby wykłady (lekcje) kończyły się najwcześniej, jak się da i nie kolidowały ze sobą? Rozwiązanie:. Konstruujemy graf (tzw. graf konfliktów), w którym: wierzchołki wykłady, krawędzie łączą te pary wykładów, które nie mogą być zaplanowane w tym samym czasie, kolor wierzchołka godzina.. Pokolorowanie wierzchołków = zaplanowanie zajęć.
Nieklasyczne modele kolorowania Kolorowanie kontrastowe Zwane inaczej T-kolorowaniem jest jedną z odmian kolorowania wierzchołków w grafie; posiada ono dwie cechy które różnią je od klasycznego kolorowania:. inne ograniczenie dotyczące kolorowania wierzchołków sąsiadujących ze sobą;. minimalizowaną wartością. W T-kolorowaniu wierzchołki sąsiadujące u i są kolorowane kolorami A(u), A(), których różnica (odległość) nie należy do pewnego zadanego zbioru T (zbioru odległości zakazanych), tzn. Zastosowanie: problem przydziału częstotliwości, układanie rozkładów zajęć itd. 7
Nieklasyczne modele kolorowania Przykład kolorowania kontrastowego 8
Nieklasyczne modele kolorowania Kolorowanie sprawiedliwe krotności pokolorowania poszczególnych wierzchołków muszą się różnić nie więcej, jak o ; Definicja Jeśli wierzchołki grafu G można podzielić na k niezależnych klas V,...,V k oraz dla każdego i oraz j, różnego od i, z przedziału <,k> zachodzi nierówność V i - V j, to mówimy, że graf G został sprawiedliwie pokolorowany k kolorami. Zastosowanie: np. problem optymalnego podziału zbioru zawierającego konflikty na równoliczne podzbiory bezkonfliktowe. Przykład : Układanie planu lekcji w szkole Dwa wierzchołki są połączone wtedy i tylko wtedy, gdy dany nauczyciel ma zajęcia z daną klasą. Problem znalezienia prawidłowego rozwiązania sprowadza się do sprawiedliwego pokolorowania krawędzi grafu. 9
Nieklasyczne modele kolorowania Kolorowanie sprawiedliwe Przykład W problemie dostaw wierzchołki grafu reprezentują miejsca dostaw: Dwa wierzchołki są połączone krawędzią, gdy miejsca dostaw nie mogą być obsłużone tego samego dnia. Problem przydziału jednego z dni pracy każdemu miejscu pokolorowanie grafu sześcioma kolorami. Z uwagi na ograniczenie taboru w każdym dniu chcemy obsłużyć możliwie taką samą liczbę miejsc. Przykład Pokolorowanie sprawiedliwe grafu
Nieklasyczne modele kolorowania kontrastowe sprawiedliwe cyrkularne harmoniczne sumacyjne zwarte listowe inne
Porównanie różnych modeli kolorowania pewnego grafu klasyczne sumacyjne kontrastowe harmoniczne sprawiedliwe cyrkularne
Zakład Badań Operacyjnych i Wspomagania Decyzji Instytut Systemów Informatycznych Wydział Cybernetyki, Wojskowa Akademia Techniczna DZIĘKUJĘ ZA UWAGĘ dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl