Ukryte skojarzenia
Przedstawimy tu dwa zagadnienia, w których pojawia się problem znajdowania najliczniejszego skojarzenia w grafie dwudzielnym, jednak trochę ukryty.
W pierwszym problemie mamy znaleźć tzw. pokrycie cyklowe grafu skierowanego. Pokrycie cyklowe grafu jest to zbiór cykli skierowanych takich że każdy wierzchołek należy do dokładnie jednego cyklu z Chcielibyśmy szybko (tj. w czasie wielomianowym) odpowiadać na pytanie, czy dany graf ma pokrycie cyklowe, a jeśli tak, chcielibyśmy umieć wyznaczyć przykład takiego pokrycia.
Rozwiązanie jest zaskakująco proste. Stwórzmy nowy graf w następujący sposób: każdy wierzchołek oryginalnego grafu rozbijamy w na dwa wierzchołki, i i jeśli w istniała krawędź z do to w tworzymy krawędź z do
Okazuje się teraz, że jeśli najliczniejsze skojarzenie w jest doskonałe (każdy wierzchołek jest skojarzony), to graf ma pokrycie cyklowe. Formalne udowodnienie tego faktu jest dość proste: wystarczy pokazać bijekcję ze zbioru pokryć cyklowych w w zbiór skojarzeń doskonałych w Szczegóły tego dowodu pozostawiam Czytelnikowi. Rysunek na marginesie podpowiada, jak tej bijekcji szukać.
Kolejnym przykładem zastosowania skojarzeń w rozwiązywaniu problemów jest wypełnianie kwadratów łacińskich. Kwadratem łacińskim nazywamy macierz (tabelkę) w której każdy wiersz i każda kolumna jest permutacją ciągu Przykłady kwadratów łacińskich poniżej:
Rozważmy następujący problem: mamy kwadrat łaciński rozmiaru w którym pokazano nam tylko górnych wierszy (taki nie do końca wypełniony kwadrat nazywamy prostokątem łacińskim rozmiaru ). Chcemy zrekonstruować cały kwadrat łaciński, oczywiście możliwie najszybciej.
Zamiast próbować rozwiązać ten problem w pełnej ogólności, spróbujmy najpierw rozwiązać jego mniejszą część (informatycy tak lubią!). Taką częścią problemu mogłoby być poprawne uzupełnienie wiersza Jak to zrobić?
Konstruujemy graf dwudzielny w którym wierzchołki z jednej grupy będą reprezentować kolumny, natomiast wierzchołki z drugiej grupy reprezentować będą liczby ze zbioru które będziemy wpisywać do kolejnego wiersza. Jest już chyba jasne, że krawędź między -tą kolumną a liczbą należy stworzyć wtedy i tylko wtedy, gdy liczba nie wystąpiła w -tej kolumnie. W takim grafie szukamy najliczniejszego skojarzenia. Jeśli jest ono doskonałe, wyznacza ono pewien poprawny sposób wypełnienia wiersza :
A co, jeśli w nie znajdziemy skojarzenia doskonałego? Okazuje się, że taka sytuacja nigdy nie wystąpi! Zanim jednak udowodnimy ten fakt, zauważmy, że właśnie uzyskaliśmy algorytm uzupełniający prostokąt do kwadratu łacińskiego: wystarczy wypełniać kolejne wiersze poprzez znajdowanie kolejnych skojarzeń doskonałych, a użyte krawędzie wyrzucać z grafu. Po wyrzuceniu z grafu wszystkich krawędzi kwadrat łaciński będzie uzupełniony.
Nadszedł czas na dowód faktu, że w skonstruowanym zgodnie z powyższą metodą grafie zawsze istnieje skojarzenie doskonałe. Zauważmy, że graf jest grafem regularnym, czyli stopnie wszystkich wierzchołków są w nim takie same (są one równe ). Okazuje się, że w dwudzielnym grafie regularnym zawsze istnieje skojarzenie doskonałe.
Aby to wykazać, skorzystamy z twierdzenia Halla o małżeństwach. O twierdzeniu Halla pisaliśmy już w artykułach Kaskady i swaty oraz Skojarzenia w grafach kubicznych. Twierdzenie to głosi, że warunkiem koniecznym i dostatecznym na istnienie doskonałego skojarzenia w grafie dwudzielnym jest, aby każdy podzbiór wierzchołków z jednej grupy (załóżmy, że jest on mocy ) miał połączenie łącznie z co najmniej wierzchołkami z drugiej grupy (jest to tzw. warunek Halla). Dowód naszego faktu wykorzystujący twierdzenie Halla jest bardzo prosty: rozważmy dowolny podzbiór kolumn. Z każdego wierzchołka odpowiadającego tym kolumnom wychodzi krawędzi, a więc łącznie mamy krawędzi. Gdyby warunek Halla dla rozważanego podzbioru nie był prawdziwy, tzn. gdyby rozważany podzbiór był połączony krawędziami z mniej niż wierzchołkami z drugiej grupy, to na mocy zasady szufladkowej Dirichleta do pewnego z tych wierzchołków musiałoby prowadzić więcej niż krawędzi. To jednak jest niemożliwe, gdyż graf jest regularny. Stąd dla grafu warunek Halla jest rzeczywiście spełniony, więc ma skojarzenie doskonałe.
Warto jeszcze dodać, że gdybyśmy dostali do uzupełnienia prostokąt łaciński wymiaru nie tylko jego uzupełnienie do kwadratu mogłoby okazać się niemożliwe. Obrazuje to podany obok przykład.