[ ] 1
Transkrypt
[ ] 1
Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady O szukaniu drogi do celu oraz dobrej partii Twierdzenia Eulera i Halla Matematyczny czwartek na UJ Leszek Pieniążek http://www.im.uj.edu.pl/LeszekPieniazek 9 stycznia 2014 Literatura Spis treści Podstawowe pojęcia Drogi Eulera Podstawowe pojęcia Definicje Drogi Eulera Sformułowanie problemu i dowód Grafy dwudzielne. Skojarzenia Twierdzenie Halla i jego dowody Przykłady Zastosowanie twierdzenia Halla Literatura Grafy dwudzielne. Skojarzenia Przykłady Literatura Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Definicja 1.1 Grafem nazywać będziemy parę G = (V , E ), gdzie V jest zbiorem skończonym, zaś E skończonym zbiorem krawędzi. Rozważać będziemy tu wyłącznie grafy nieskierowane, w których nie wyróżniamy początku i końca krawędzi. Pętlą nazywamy krawędź łączącą wierzchołek z samym sobą. Uwaga Może być wiele krawędzi łączących te same wierzchołki. Najczęściej wizualizujemy grafy jako zbiór obiektów na płaszczyźnie reprezentujących wierzchołki oraz linie je łączące obrazujące krawędzie. f 1 g e 2 a 3 d 4 h b c 5 Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Definicja 1.2 Drogą lub ścieżką w grafie G nazywamy taki ciąg wierzchołków v1 , v2 , . . . , vn+1 ∈ V (G ) oraz takich krawędzi e1 , e2 , . . . , en ∈ E (G ), że każda z krawędzi ei łączy wierzchołki vi z vi+1 . Mówimy wtedy, że droga łączy wierzchołki v1 i vn+1 zaś n nazywamy długością drogi. Drogę łączącą v1 i vn+1 nazywamy zamkniętą, jeśli v1 = vn+1 . Graf nieskierowany nazywamy spójnym, jeśli istnieją drogi łączące każde dwa jego różne wierzchołki. f Przykład 1.1 1 g e 2 a 3 d 4 h b c 5 Pierwszy graf powyżej jest niespójny. Drugi, którego wierzchołki i krawędzie zostały opisane liczbami i literami, jest spójny. Przykładem drogi zamkniętej jest (1, 2, 3, 4, 1) oraz (a, f , g , b). Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Definicja 2.1 Stopniem wierzchołka v ∈ V (G ) grafu nazywamy deg(v ), liczbę krawędzi o końcu w v , przy czym pętle liczymy dwukrotnie. Drogą (cyklem) Eulera w grafie nieskierowanym G nazywamy taką drogę (zamkniętą), która zawiera wszystkie krawędzie z E (G ) dokładnie raz. Lemat 2.1 Suma stopni wszystkich wierzchołków równa jest podwojonej liczbie wszystkich krawędzi grafu. Przykład 2.1 Graf po lewej z poprzedniej strony ma wierzchołek najwyższego stopnia 6. Nie ma drogi Eulera ze względu na niespójność. Graf koperta ma jeden wierzchołek stopnia 2 oraz po 2 stopnia 3 i 4. Istnieje w nim cykl Eulera: (1, 2, 3, 4, 5, 1, 4, 2, 5) (pomijamy krawędzie). Przykład 2.2 (Mosty Królewca) Mapa Królewca (http://it.wikipedia.org/wiki/File:Koenigsberg,_Map_by_Bering_1613.jpg) Sformułowanie problemu (http://pl.wikipedia.org/wiki/Zagadnienie_mostów_królewieckich) Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Twierdzenie 2.2 Graf ma cykl Eulera wtedy i tylko wtedy, gdy jest spójny i ma każdy wierzchołek stopnia parzystego. Taki graf nazywamy grafem eulerowskim. Graf ma drogę Eulera wtedy i tylko wtedy, gdy jest spójny i ma nie więcej niż 2 wierzchołki stopnia nieparzystego. Takie grafy nazywane bywają grafami jednokreślnymi. e 2 a Przykład 2.3 1 d 3 f b c 4 Problem mostów królewieckich ilustruje pierwszy graf powyżej o 4 wierzchołkach i 7 krawędziach. Nie istnieje w nim droga Eulera, bo każdy z wierzchołków ma nieparzysty stopień. Zamknięta koperta obok jest jednym z najprostszych grafów niejednokreślnych. Pierwszy z grafów z Przykładu 1.1 spełnia założenia o stopniu wierzchołków z powyższego twierdzenia, ale ze względu na niespójność nie istnieje w nim droga Eulera. Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Twierdzenie 2.3 Drogę Eulera w grafie spełniającym założenia poprzedniego twierdzenie można znaleźć korzystając z poniższego Algorytmu Fleury’ego. (A) Wybieramy v dowolny wierzchołek stopnia nieparzystego, jeśli istnieje taki, lub dowolny, jeśli wszystkie mają stopień parzysty; v0 := v dodajemy do drogi. (B) Jeśli G nie ma krawędzi to procedura zakończona. (C) Jeśli z v0 wychodzi wiele krawędzi wybieramy taką krawędź e łączącą v0 z pewnym w , aby po usunięciu jej graf pozostał spójny; dodajemy w oraz e do drogi i usuwamy e z grafu G . v0 := w . Powrót do (B). (D) Jeśli z v0 wychodzi jedna krawędź e łącząca v0 z jakimś w , dodajemy w oraz e do drogi usuwając równocześnie v0 i e z grafu G . v0 := w . Powrót do (B). Poprawność algorytmu wynika z następujących faktów: 1. Każdy powrót do (B) oznacza zmniejszenie liczby krawędzi grafu G o 1, a więc algorytm zatrzyma się. 2. W (B) po każdym kroku liczba wierzchołków o nieparzystym stopniu jest równa 0 lub 2. Przy tym w tej drugiej sytuacji v0 jest jednym z nich. 3. W (C) usunięcie co najwyżej jednej krawędzi rozspójnia graf. 4. W (B) po każdym kroku graf jest spójny. Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Definicja 3.1 Graf G = (V , E ) nazywamy dwudzielnym, jeśli istnieją rozłączne zbiory V1 , V2 takie, że V = V1 ∪ V2 oraz jeśli e ∈ E łączy v i w , to należą one do różnych zbiorów Vi . Uwaga W grafie dwudzielnym podział V (G ) na podzbiory jest jednoznaczny wtedy i tylko wtedy, gdy graf jest spójny. Lemat 3.1 Graf jest dwudzielny wtedy i tylko wtedy, gdy każdy cykl (zamknięta droga, w której nie powtarzają się wierzchołki) w nim ma parzystą długość. Przykład 3.1 Poniższy rysunek przedstawia graf, w którym są cykle wyłącznie długości 2 i 4. c c 2 V2 2 3 V1 3 e d a 1 d b e 4 a 1 b 4 Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Definicja 3.2 Skojarzeniem w grafie dwudzielnym (V1 ∪ V2 , E ) nazywamy dowolny zbiór jego krawędzi F ⊂ E , które nie łączą tych samych wierzchołków. Pełnym skojarzeniem V1 z V2 nazywamy skojarzenie, w którym z każdego wierzchołka V1 wychodzi krawędź. Dla W ⊂ V1 oznaczmy przez ΦE (W ) zbiór wierzchołków z V2 połączonych w grafie z wierzchołkami z W . Formalnie, ΦE (W ) = {v ∈ V2 : ∃w ∈ W : wv ∈ E }. Przykład 3.2 W Przykładzie 3.1 pełnymi skojarzeniami są {a, e}, {b, c}, {b, d }. Jest też ΦE (∅)=∅, ΦE ({1})={2, 4}, ΦE ({3})={2, 4}, ΦE ({1, 3})={2, 4}. Twierdzenie 3.2 (P. Hall 1935) Niech G = (V1 ∪ V2 , E ) będzie grafem dwudzielnym. Wówczas pełne skojarzenie V1 z V2 istnieje wtedy i tylko wtedy, gdy |W | 6 |ΦE (W )| dla każdego podzbioru W ⊂ V1 . Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Uwaga Warunek |W | 6 |ΦE (W )| dla każdego podzbioru W ⊂ V1 nazywać będziemy warunkiem małżeńskim (WM). Istnienie pełnego skojarzenia w oczywisty sposób implikuje warunek małżeński. Będziemy jedynie pokazywać, że jest to również warunek wystarczający dla istnienia pełnego skojarzenia. Dowód 1. • Jeśli V1 = {v } jest jednoelementowy, (WM) implikuje istnienie co najmniej jednej krawędzi e ∈ E . {e} jest szukanym dopasowaniem. • Jeśli dla każdego niepustego zbioru W V1 jest |W | < |ΦE (W )| kojarzymy dowolny element v1 ∈ V1 z pewnym dozwolonym v2 ∈ V2 , a następnie procedurę stosujemy do grafu G 0 = (V1 \ {v1 } ∪ V2 \ {v2 }, E 0 ), gdzie E 0 składa się z tych krawędzi z E , które nie łączą żadnego z wierzchołków v1 , v2 . V1 V2 V1 V1 V2 V2 Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady • Jeśli dla pewnego niepustego W V1 zachodzi |W | = |ΦE (W )| osobno poszukamy skojarzeń dla zbiorów W ∪ ΦE (W ) oraz (V1 \ W ) ∪ (V2 \ ΦE (W )). V1 V2 V1 V2 W (WM) dla W ∪ ΦE (W ) jest oczywisty, istnieje więc pełne skojarzenie. Jeśli Z ⊂ (V1 \ W ) to |Z | + |W | = |Z ∪ W | 6 |ΦE (Z ∪ W )| = |ΦE (Z ) ∪ ΦE (W )| 6 |ΦE (Z )| + |ΦE (W )| = |ΦE (Z )| + |W |, a więc spełniony jest (WM) dla (V1 \ W ) ∪ (V2 \ ΦE (W )). Literatura Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Dowód 2. Graf dwudzielny (V1 ∪ V2 , E ) można opisać jako macierz (tablicę liczb) mającą tyle kolumn, ile elementów ma V1 oraz tyle wierszy, ile elementów ma V2 . Każdą kolumnę utożsamiamy z jednym z elementów V1 zaś wiersz z elementem V2 . Jeśli w grafie istnieje krawędź łącząca v1 ∈ V1 z v2 ∈ V2 , to w przecięciu kolumny odpowiadającej v1 i wiersza odpowiadającego v2 wpisujemy 1, w przeciwnym razie 0. Wyraz macierzy w i-tym wierszu i j-tej kolumnie będziemy oznaczać przez aij . Przekątną macierzy nazwiemy wyrazy aii dla wszystkich dopuszczalnych i. Zauważmy, że zamiana miejscami kolumn lub wierszy daje macierz opisującą ten sam graf ze zmienionym przyporządkowaniem wierzchołków do wierszy i kolumn. Ponadto pełne skojarzenie oznacza, że przy pewnym przypisaniu wierzchołkom kolumn i wierszy wyrazy aii = 1 dla wszystkich dopuszczalnych i. Pokażemy więc, że jeśli spełniony jest (WM), to można tak przemieszać wiersze i kolumny, aby na przekątnej nie było zer. Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Przykład 3.3 Przykładowo, dla grafu ze strony 12, w którym numerujemy kolejno wierzchołki w zbiorach z góry na dół, otrzymujemy macierz A1 , zaś po zamianie 2 pierwszych wierszy macierz A2 mającą na przekątnej wyłącznie jedynki. 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 A1 = A = 2 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 Oznacza to, że pełnym (choć nie jedynym możliwym) skojarzeniem jest 1 → 2, 2 → 1, 3 → 3, 4 → 4. Literatura Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Lemat 3.3 Jeśli aii = 1 dla i < m, amm = 0 oraz ajk = 1 dla pewnych j, k > m to zamiana miejscami kolumn o numerach m, k oraz wierszy o numerach m, j daje amm = 1. Lemat 3.4 Jeśli aii = 1 dla i < m, ajk = akl = 1 dla pewnego k < m oraz j, l > m, to zamiana miejscami kolumn k, m, a następnie procedury z lematu 3.3, dają aii = 1 dla i 6 m. [ ][ ] [ ][ ] ... ... ... (k) 1 (j) 1 0 1 1 ... (k) 1 (k) (m) (k) Lemat 3.5 Jeśli aii = ajj to zamiana miejscami kolumn i, j oraz wierszy i, j nie zmienia liczby i położenia jedynek na przekątnej. (k) ... (m) 1 ... (k) (j) ... (m) ... 0 ... 1 0 1 ... (j) (m) 1 ... ... 1 ... ... 1 ... (m) 1 ... ... 1 0 1 1 ... 1 (m) (j) Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Algorytm McWortera. 1. Używając Lematu 3.3 doprowadzamy do postaci aii = 1 dla i 6 m oraz ajk = 0 gdy j, k > m. (Rys. 1) 2. Używając Lematów 3.4 i 3.5 doprowadzamy do sytuacji jak na Rys. 2. W każdej z kolumn E1 jest co najmniej jedna 1. Gdyby E1 było puste lub G1 zawierałoby wyrazy wyłącznie zerowe, (WM) nie byłby spełniony i nie istniałoby pełne skojarzenie. 3. Jeśli ajk = 1 leży w F1 oraz akl = 1 leży w G1 , zamiana kolumn k, l powoduje, że spełnione są założenia Lematu 3.4, więc można zwiększyć liczbę jedynek na przekątnej. (Rys. 3). Powracamy do punktu 2. 4. Zamieniając parami wiersze i kolumny jak w Lemacie 3.5, doprowadzamy macierz do postaci jak na Rys. 4. Powtarzamy procedurę z punktu 3. dla macierzy F2 i G2 i dalej, dopóki w odpowiednich blokach nie otrzymamy konfiguracji pozwalającej zwiększyć liczby jedynek na przekątnej, lub nie dostaniemy sprzeczności z (WM). [ ][ ][ ][ ] Rys. 2 1 F1 1 1 0 E1 (k) 1 G2 0 0 E2 1 1 0 0 E1 0 G1 0 0 Rys. 3 1 F2 1 1 ... 0 1 ... 1 0 E1 G1 0 ... Rys. 1 F1 1 ... 0 1 ... F0 1 ... ... 1 G0 ... ... 1 (l) Rys. 4 Literatura Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Twierdzenie 3.6 Powyższy algorytm pozwala sprawdzić spełnianie warunku małżeńskiego oraz znaleźć pełne skojarzenie, jeśli istnieje. Procedura z punktu 4. nie może iterować się w nieskończoność, ze względu na malenie szerokości macierzy Fi w każdej iteracji. Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Przykład 4.1 Rozszerzenie twierdzenia Halla dostaniemy, jeśli zażądamy, aby każdy z elementów v ∈ V1 miał przypisaną pewną dodatnią liczbę kv skojarzeń z elementami zbioru V2 . Koniecznym i wystarczającym warunkiem zapewniającym, że to się da zrobić, jest, aby dla dowolnego W ⊂ V1 suma wartości P kv dla wszystkich v ∈ W była nie większa niż |ΦE (W )|. (Formalnie: v ∈W kv 6 |ΦE (W )|.) Każdy z wierzchołków v ∈ V1 zastępujemy jego kv kopiami z krawędziami prowadzącymi do tych samych wierzchołków z V2 . Przykład 4.2 Mamy daną macierz n × n wypełnioną 0 i 1 tak, że aij = 0 ⇐⇒ 2|i + j. Czy można zamieniając miejscami kolumny i wiersze przekształcić ją do postaci, w której przekątna wypełniona jest jedynkami? Jeśli n jest parzyste, łatwo uzyskać szukany układ zamieniając kolumny o numerach 2k i 2k + 1 parami. Dla n nieparzystego nie da się tego zrobić, bo graf reprezentowany przez daną macierz nie spełnia warunku (WM) dla zbioru W wierzchołków odpowiadających kolumnom nieparzystym i ΦE (W ) będącym zbiorem wierzchołków odpowiadających wierszom parzystym. Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Przykłady Literatura Przykład 4.3 Prostokątem łacińskim nazywamy macierz m × n wypełnioną liczbami naturalnymi od 1 do max{m, n} w ten sposób, że w żadnym wierszu i żadnej kolumnie nie powtarza się żadna z liczb. Można uzasadnić, że każdy prostokąt łaciński niebędący kwadratem można powiększyć do kwadratu łacińskiego przez dopisanie nowych wierszy lub kolumn. Możemy przyjąć, że prostokąt ma więcej kolumn niż wierszy. Niech V1 składa się z n kolumn macierzy zaś V2 z liczb {1, 2, . . . , n}. Prowadzimy krawędzie pomiędzy każdą z kolumn a liczbami, które nie znajdują się w niej. Z każdego wierzchołka V1 wychodzi dokładnie n − m krawędzi i do każdego wierzchołka V2 dochodzi n − m krawędzi. Zatem w każdy zbiór k kolumn musi być połączony z co najmniej k liczbami. Przykład 4.4 Talię 52 kart dzielimy na 13 kupek po 4 karty. Można wybrać wtedy po jednej karcie z każdej kupki w ten sposób, że każda z kart jest inna. Spis treści Podstawowe pojęcia Drogi Eulera Grafy dwudzielne. Skojarzenia Literatura 1. Cut the knot, http://www.cut-the-knot.org/ 2. Wikipedia, http://en.wikipedia.org/ 3. Wikipedia, http://pl.wikipedia.org/ Przykłady Literatura