p. 10. Kolorowanie wierzchołków grafu 10.1 Definicje i twierdzenia Przez k-kolorowanie wierzchołków grafu G rozumiemy przyporzadkowanie każdemu wierzchołkowi grafu G jednego z k kolorów 1, 2,...,k.
p. 10. Kolorowanie wierzchołków grafu 10.1 Definicje i twierdzenia Przez k-kolorowanie wierzchołków grafu G rozumiemy przyporzadkowanie każdemu wierzchołkowi grafu G jednego z k kolorów 1, 2,...,k. Kolorowanie jest właściwe jeżeli żadne dwa różne i przyległe wierzchołki nie sa tego samego koloru. Zatem właściwe k-kolorowanie wierzchołków grafu G (bez pętel) jest to podział (V 1,...,V k ) zbioru V (G) na k (być może pustych) zbiorów niezależnych.
Graf G jest k-kolorowalny wierzchołkowo jeżeli posiada właściwe k-kolorowanie wierzchołków. Dla wygody zamiast właściwe kolorowanie wierzchołków będziemy mówili kolorowanie a zamiast właściwe k-kolorowanie wierzchołków k-kolorowanie; podobnie będziemy skracali k-kolorowalny wierzchołkowo do k-kolorowalny. p.
p. Graf G jest k-kolorowalny wierzchołkowo jeżeli posiada właściwe k-kolorowanie wierzchołków. Dla wygody zamiast właściwe kolorowanie wierzchołków będziemy mówili kolorowanie a zamiast właściwe k-kolorowanie wierzchołków k-kolorowanie; podobnie będziemy skracali k-kolorowalny wierzchołkowo do k-kolorowalny. Oczywiście, graf jest k-kolorowalny wtedy i tylko wtedy, gdy podległy mu graf prosty jest k-kolorowalny. Zatem w naszych rozważaniach ograniczymy się jedynie do grafów prostych.
p. Graf G jest k-kolorowalny wierzchołkowo jeżeli posiada właściwe k-kolorowanie wierzchołków. Dla wygody zamiast właściwe kolorowanie wierzchołków będziemy mówili kolorowanie a zamiast właściwe k-kolorowanie wierzchołków k-kolorowanie; podobnie będziemy skracali k-kolorowalny wierzchołkowo do k-kolorowalny. Oczywiście, graf jest k-kolorowalny wtedy i tylko wtedy, gdy podległy mu graf prosty jest k-kolorowalny. Zatem w naszych rozważaniach ograniczymy się jedynie do grafów prostych. Graf prosty jest 1-kolorowalny wtedy i tylko wtedy, gdy jest pusty a jest 2-kolorowalny wtedy i tylko wtedy, gdy jest dwudzielny.
p. Definicja. Liczba chromatyczna χ(g) grafu G jest to najmniejsze k dla którego G jest k-kolorowalny; jeżeli χ(g) = k to o G mówimy, że jest k-chromatyczny.
p. Definicja. Liczba chromatyczna χ(g) grafu G jest to najmniejsze k dla którego G jest k-kolorowalny; jeżeli χ(g) = k to o G mówimy, że jest k-chromatyczny. Twierdzenie. Dla dowolnego grafu G ω(g) χ(g) (G) + 1, gdzie ω(g) to rzad największej kliki a (G) to maksymalny stopień wierzchołka w G.
p. Definicja. Liczba chromatyczna χ(g) grafu G jest to najmniejsze k dla którego G jest k-kolorowalny; jeżeli χ(g) = k to o G mówimy, że jest k-chromatyczny. Twierdzenie. Dla dowolnego grafu G ω(g) χ(g) (G) + 1, gdzie ω(g) to rzad największej kliki a (G) to maksymalny stopień wierzchołka w G. Twierdzenie (Brooks, 1941). Jeżeli graf G nie jest ani grafem pełnym ani nieparzystym cyklem to χ(g) (G).
p. Twierdzenie. n 2 n 2 2m χ(g) 2m + 1
p. Twierdzenie. n 2 n 2 2m χ(g) 2m + 1 Definicja. Podzbiór U zbioru wierzchołków V grafu G nazywamy pokryciem jeżeli każda krawędź grafu G ma przynajmniej jeden koniec w U.
p. Twierdzenie. n 2 n 2 2m χ(g) 2m + 1 Definicja. Podzbiór U zbioru wierzchołków V grafu G nazywamy pokryciem jeżeli każda krawędź grafu G ma przynajmniej jeden koniec w U. Twierdzenie. Podzbiór U zbioru wierzchołków V grafu G jest pokryciem wtedy i tylko wtedy gdy V \ U jest zbiorem niezależnym w G.
p. Algorytm kolorowania wierzchołków 1. Znajdujemy wszystkie maksymalne zbiory niezależne (uzyskane jako dopełnienia minimalnych pokryć): W 1,W 2,...,W K, K j=1 W j = V (G) 2. Znajdujemy wszystkie minimalne pokrycia zbioru V (G) zbiorami W j. Niech takim pokryciem o minimalnej liczbie podzbiorów będzie W i1,w i2,...,w it 3. Znajdujemy rozbicie zbioru V (G) (na kolory K 1,K 2,...K t ): K 1 = W i1,k 2 = W i2 W i1,..., K t = W it (W i1... W it 1 )
p. 10.2 Wykorzystanie aparatu funkcji boolowskich w znajdowaniu optymalnych kolorowań grafu Przypomnijmy podstawowe wiadomości o dwuwartościowej algebrze Boole a. Algebra ta składa się z dwuelementowego zbioru B = {0, 1}, na którym określono działania: sumy logicznej (alternatywy): 0 + 0 = 0; 1 + 0 = 1; 0 + 1 = 1; 1 + 1 = 1; iloczynu logicznego (koniunkcji): 0 0 = 0; 1 0 = 0; 0 1 = 0; 1 1 = 1; negacji: 0 = 1; 1 = 0
p. Działania sumy i iloczynu logicznego sa łaczne, przemienne i rozdzielne jedno względem drugiego i dla dowolnego a B a + ( a) = 1; a ( a) = 0; a + 0 = a; a 1 = a Definicja. Funkcja boolowska n zmiennych nazywamy dowolna funkcję f : B n B, gdzie B n = B B... B. Oczywiście taka funkcja jest równocześnie działaniem n argumentowym określonym na B. Definicja. Wyrażeniem boolowskim (formuła boolowska) nazywamy ciag zmiennych i ewentualnie stałych boolowskich połaczonych znakami działań oraz nawiasami wskazujacymi kolejność wykonywania tych działań.
p. Każda funkcję boolowska można przedstawić za pomoca odpowiedniego wyrażenia boolowskiego. Funkcję boolowska można również określić za pomoca tabelki określajacej wartości dla wszystkich elementów dziedziny lub za pomoca wykresu - dwukolorowania wierzchołków n kostki. Wyrażenia boolowskie w których występuja tylko działania sumy, iloczynu logicznego i ewentualnie stałe boolowskie (w których nie używamy działania negacji) nazywamy wyrażeniami alternatywno koniunkcyjnymi.
p. Określmy dwie relacje dwuargumentowe (częściowego porzadku), jedna ( ) na B = {(0, 0), (0, 1), (1, 1)}; druga ( )na B n zdefiniowana: dla dowolnych x = (x 1,x 2,...,x n ) i y = (y 1,y 2,...,y n ) należacych do B n x y wtedy i tylko wtedy, gdy 1 s n x s y s. Funkcja boolowska f jest monotoniczna wtedy i tylko wtedy, gdy dla każdego x B n i dla każdego y B n prawdziwa jest implikacja x y = f(x) f(y)
p. 1 Twierdzenie. Funkcja boolowska f jest funkcja monotoniczna wtedy i tylko wtedy, gdy istnieje wyrażenie alternatywno koniunkcyjne określajace tę funkcję. Definicja. Wektorem minimalnym funkcji monotonicznej f( ) nazywamy, każdy wektor x taki, że f(x) = 1, a dla wszystkich wektorów y będacych poprzednikami x, ale różnymi od x, f(y) = 0. Definicja. Minimalna formuła alternatywna (mfa) boolowskiej funkcji monotonicznej nazywamy wyrażenie boolowskie określajace tę funkcję, o postaci sumoiloczynu logicznego, zawierajace najmniejsza ilość składników sumy.
p. 1 Twierdzenie. Każdemu składnikowi (iloczynowi) sumy logicznej, będacej minimalna formuła alternatywna boolowskiej funkcji monotonicznej odpowiada wzajemnie jednoznacznie wektor minimalny tej funkcji (zmiennym występujacym w tym iloczynie odpowiadaja jedynkowe składowe wektora minimalnego, a pozostałe składowe sa równe zero). Formułę określajac a funkcję boolowska przekształcamy (redukujemy) do postaci mfa korzystajac z własności algebry Boola. Szczególnie użyteczne sa równości a+a = a; a+a b = a; (a+b) (a+c)... (a+d) = a+b c... d; oraz dualne do nich a a = a; a (a+b) = a; a b+a c+...+a d = a (b+c+...+d)
p. 1 Algorytm kolorowania wierzchołków 1. Znajdujemy wszystkie maksymalne zbiory niezależne (uzyskane jako dopełnienia minimalnych pokryć): W 1,W 2,...,W K, K j=1 W j = V (G) 2. Znajdujemy wszystkie minimalne pokrycia zbioru V (G) zbiorami W j. Niech takim pokryciem o minimalnej liczbie podzbiorów będzie W i1,w i2,...,w it 3. Znajdujemy rozbicie zbioru V (G) (na kolory K 1,K 2,...K t ): K 1 = W i1,k 2 = W i2 W i1,..., K t = W it (W i1... W it 1 )
p. 1 Algorytm wyznaczania wszystkich minimalnych pokryć grafu 1. Tworzymy binarna macierz incydencji M(G) = [m ij ] n m (wiersze odpowiadaja wierzchołkom, a kolumny krawędziom) 2. Tworzymy wyrażenie boolowskie m j=1 n i=1 m ijx i 3. Przekształcamy powyższa formułę do mfa 4. Na podstawie mfa określamy wszystkie pokrycia minimalne grafu G.
p. 1 a b f c e d
(a + b)(a + d)(a + e)(b + c)(b + d)(c + d)(d + e)(e + f) = p. 1
p. 1 (a + b)(a + d)(a + e)(b + c)(b + d)(c + d)(d + e)(e + f) = = (a + bde)(b + c)(d + bce)(e + f) =
p. 1 (a + b)(a + d)(a + e)(b + c)(b + d)(c + d)(d + e)(e + f) = = (a + bde)(b + c)(d + bce)(e + f) = = (ab + bde + ac + bcde)(de + bce + df + bcef) =
p. 1 (a + b)(a + d)(a + e)(b + c)(b + d)(c + d)(d + e)(e + f) = = (a + bde)(b + c)(d + bce)(e + f) = = (ab + bde + ac + bcde)(de + bce + df + bcef) = = abde + bde + acde + bcde + abce + bcde + bcde + abce + bcde + abdf + bdef + acdf + bcdef + abcef + bcdef + abcef + bcdef =
p. 1 (a + b)(a + d)(a + e)(b + c)(b + d)(c + d)(d + e)(e + f) = = (a + bde)(b + c)(d + bce)(e + f) = = (ab + bde + ac + bcde)(de + bce + df + bcef) = = abde + bde + acde + bcde + abce + bcde + bcde + abce + bcde + abdf + bdef + acdf + bcdef + abcef + bcdef + abcef + bcdef = = bde + acde + abce + abdf + bdef + acdf =
p. 1 (a + b)(a + d)(a + e)(b + c)(b + d)(c + d)(d + e)(e + f) = = (a + bde)(b + c)(d + bce)(e + f) = = (ab + bde + ac + bcde)(de + bce + df + bcef) = = abde + bde + acde + bcde + abce + bcde + bcde + abce + bcde + abdf + bdef + acdf + bcdef + abcef + bcdef + abcef + bcdef = = bde + acde + abce + abdf + bdef + acdf = = bde + acde + abce + abdf + bdef + acdf =
p. 1 (a + b)(a + d)(a + e)(b + c)(b + d)(c + d)(d + e)(e + f) = = (a + bde)(b + c)(d + bce)(e + f) = = (ab + bde + ac + bcde)(de + bce + df + bcef) = = abde + bde + acde + bcde + abce + bcde + bcde + abce + bcde + abdf + bdef + acdf + bcdef + abcef + bcdef + abcef + bcdef = = bde + acde + abce + abdf + bdef + acdf = = bde + acde + abce + abdf + bdef + acdf = = bde + acde + abce + abdf + acdf
p. 1 (a + b)(a + d)(a + e)(b + c)(b + d)(c + d)(d + e)(e + f) = = (a + bde)(b + c)(d + bce)(e + f) = = (ab + bde + ac + bcde)(de + bce + df + bcef) = = abde + bde + acde + bcde + abce + bcde + bcde + abce + bcde + abdf + bdef + acdf + bcdef + abcef + bcdef + abcef + bcdef = = bde + acde + abce + abdf + bdef + acdf = = bde + acde + abce + abdf + bdef + acdf = = bde + acde + abce + abdf + acdf W 1 = {a,c,f}, W 2 = {b,f}, W 3 = {d,f}, W 4 = {c,e}, W 5 = {b,e}
p. 1 a b f c e d
p. 1 a b f c e d
p. 1 a b f c e d
p. 1 a b f c e d
p. 2 a b f c e d
p. 2 Algorytm wyznaczania pokryć minimalnych zbioru W Dane: W = n, W = {w 1,w 2,...,w n }; W = {W 1,W 2,...,W K }; v = (x 1,x 2,...,x K ); 1. Zapisujemy zbiór W i rodzinę W w postaci macierzy { 1 gdy w i W j B = [b ij ] = 0 w przeciwnym razie. 2. Tworzymy formułę funkcji boolowskiej: n i=1 K j=1 b ijx j 3. Przekształcamy powyższa formułę do mfa. 4. Iloczyny mfa określaja minimalne pokrycia zbiorów.
(x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = p. 2
p. 2 (x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )(x 1 + x 2 + x 3 ) =
p. 2 (x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )[(x 2 + x 5 )(x 2 + x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) =
p. 2 (x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )[(x 2 + x 5 )(x 2 + x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) =
p. 2 (x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )[(x 2 + x 5 )(x 2 + x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 x 4 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )] =
p. 2 (x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )[(x 2 + x 5 )(x 2 + x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 x 4 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )] = = x 1 x 3 x 5 +x 1 x 2 x 3 x 4 +x 1 x 2 x 3 x 4 +x 1 x 3 x 4 x 5 +x 1 x 2 x 3 x 5 +x 1 x 3 x 5
p. 2 (x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )[(x 2 + x 5 )(x 2 + x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 x 4 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )] = = x 1 x 3 x 5 +x 1 x 2 x 3 x 4 +x 1 x 2 x 3 x 4 +x 1 x 3 x 4 x 5 +x 1 x 2 x 3 x 5 +x 1 x 3 x 5 = x 1 x 3 x 5 + x 1 x 2 x 3 x 4
p. 2 (x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )[(x 2 + x 5 )(x 2 + x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 x 4 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )] = = x 1 x 3 x 5 +x 1 x 2 x 3 x 4 +x 1 x 2 x 3 x 4 +x 1 x 3 x 4 x 5 +x 1 x 2 x 3 x 5 +x 1 x 3 x 5 = x 1 x 3 x 5 + x 1 x 2 x 3 x 4 W 1 = {a,c,f},w 3 = {d,f},w 5 = {b,e}
p. 2 (x 1 )(x 2 + x 5 )(x 1 + x 4 )(x 3 )(x 4 + x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )(x 1 + x 2 + x 3 ) = = (x 1 x 3 )[(x 2 + x 5 )(x 2 + x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )](x 4 + x 1 x 5 ) = = (x 1 x 3 )[(x 2 x 4 + x 5 x 1 ) + (x 3 )(x 2 + x 5 )(x 4 + x 1 x 5 )] = = x 1 x 3 x 5 +x 1 x 2 x 3 x 4 +x 1 x 2 x 3 x 4 +x 1 x 3 x 4 x 5 +x 1 x 2 x 3 x 5 +x 1 x 3 x 5 = x 1 x 3 x 5 + x 1 x 2 x 3 x 4 W 1 = {a,c,f},w 3 = {d,f},w 5 = {b,e} K 1 = W 1 = {a,c,f}, K 2 = W 3 \ W 1 = {d,f} \ {a,c,f} = {d}, K 3 = W 5 \ (W 1 W 3 ) = {b,e} \ {a,c,d,f} = {b,e}
p. 2 a b f c e d
10.1 Algorytmy aproksymacyjne p. 2
10.1 Kolorowanie krawędzi grafu p. 2
p. 2
p. 2
p. 2
p. 2
p. 3
p. 3
p. 3