MD15 (grafy)

Transkrypt

MD15 (grafy)
Matematyka dyskretna
© Andrzej Łachwa, UJ, 2013
[email protected]
15/15
Twierdzenie
Dla grafu prostego
1)
jest drzewem,
2)
nie zawiera cykli i ma
3)
jest spójny i ma
następujące warunki są równoważne:
krawędzi,
krawędzi,
4) jest spójny, zaś usunięcie dowolnej krawędzi tworzy dokładnie dwie
spójne składowe,
5) dowolne dwa wierzchołki grafu
są połączone dokładnie jedną drogą,
6) nie zawiera cykli, lecz dodanie dowolnej nowej krawędzi tworzy
dokładnie jeden cykl.
Dowód (fragment)
1. 2.
Dowód przeprowadzimy indukcyjnie ze względu na liczbę wierzchołków
grafu . Oczywiście dla
drzewo nie ma krawędzi i tym samym
spełnia warunek (2).
Ponieważ nie posiada cykli, to usunięcie krawędzi rozspaja na dwa
drzewa: pierwsze o wierzchołkach oraz drugie o , przy czym
oraz
. Założenie indukcyjne gwarantuje, że
nowo powstałe drzewa mają odpowiednio
oraz
krawędzi.
Sumując te krawędzie wraz z usuniętą otrzymujemy
Wniosek
Każdy las
krawędzi.
o k składowych spójnych posiada
Grafy eulerowskie
Cykl Eulera to zamknięta marszruta
przechodząca przez każdą krawędź
grafu dokładnie raz.
Graf eulerowski
to graf
posiadający
cykl Eulera.
Twierdzenie
Graf
jest eulerowski wtedy i tylko wtedy, gdy jest spójny
i stopień każdego wierzchołka jest parzysty.
Twierdzenie to jest nie tylko
ładną charakterystyką grafów
eulerowskich, ale umożliwia
prostą i szybką weryfikację
omawianej własności.
Dowód
Załóżmy najpierw, że jest eulerowski i niech C będzie jakimś jego cyklem
Eulera. Poruszając się po wzdłuż cyklu C zliczajmy stopniowo używane
krawędzie incydentne do poszczególnych wierzchołków. Zawsze po
wejściu i wyjściu z danego wierzchołka liczba policzonych krawędzi
incydentnych z nim zwiększy się o 2. Tak więc, jeśli wierzchołek nie jest
początkiem cyklu, to zawsze będzie miał parzystą liczbę aktualnie
policzonych krawędzi incydentnych. Początek cyklu zaś, dopóki nie
przeszliśmy ostatnią krawędzią grafu (która oczywiście prowadzi do niego)
będzie miał nieparzystą liczbę policzonych krawędzi. Po użyciu jednak tej
ostatniej krawędzi i on ma parzysty stopień. Żadna krawędź nie zostanie
pominięta, ani policzona wielokrotnie, bo przeczyłoby to eulerowskości
cyklu C lub spójności grafu .
Dla dowodu implikacji odwrotnej, pokażmy najpierw, że jeżeli w skończonym grafie dowolny wierzchołek ma parzysty stopień, to posiada cykl.
Istnienie takiego cyklu pokażemy wskazując jego kolejne krawędzie.
Zaczynamy od dowolnie wybranej krawędzi
. Następnie przechodzimy
do jakiejkolwiek innej krawędzi wychodzącej z wierzchołka . Załóżmy, że
była to krawędź
. Wybieramy następnie dowolną różną od
krawędź wychodzącą z . Czynność tę powtarzamy tak długo, aż dojdziemy do jakiegoś wierzchołka , który został już wcześniej odwiedzony.
W ten sposób otrzymamy cykl
. Jedynym
problemem mógłby, w jakimś momencie, być brak możliwości
kontynuowania marszu zanim dojdziemy do odwiedzonego wcześniej
punktu . Sytuacja taka nie jest jednak możliwa, gdyż oznaczałoby to
istnienie wierzchołka incydentnego z jedną tylko krawędzią (wejściową),
co stoi w sprzeczności z parzystością jego stopnia.
Teraz dowiedziemy indukcyjnie (ze względu na liczbę krawędzi w grafie )
istnienie cyklu Eulera. Pokazaliśmy wyżej, że graf posiada jakiś cykl C.
Usuńmy z grafu krawędzie cyklu C otrzymując w ten sposób graf .
Graf może już nie być spójny, ale nadal będzie posiadał jedynie
wierzchołki parzystego stopnia. Jeżeli jest pusty, to cykl C jest cyklem
Eulera, co kończyłoby dowód. W przeciwnym razie, w każdej spójnej
składowej grafu , korzystając z założenia indukcyjnego, znajdujemy cykl
Eulera. Nazwijmy cykle tych spójnych składowych C1, C2, … Ci. Ponieważ
graf był spójny, to cykl C musi przechodzić przez jakiś wierzchołek
każdego z cykli C1, C2, … Ci. Tak więc cykl Eulera dla grafu możemy
wyznaczyć w ten sposób, że przechodząc przez cykl C, za każdym razem
gdy napotkamy nieodwiedzony jeszcze cykl Ci, zbaczamy z cyklu C i
przechodzimy w całości Ci, a później kontynuujemy wędrówkę po cyklu C.
W konsekwencji przejdziemy po wszystkich krawędziach, każdą
odwiedzając jedynie raz.
Wniosek
Graf spójny jest eulerowski wtedy i tylko wtedy, gdy rodzinę jego
krawędzi da się podzielić na rozłączne krawędziowo cykle.
Grafy jednokreślne
Graf jednokreślny (tzn. taki, który można narysować bez odrywania
ołówka i rysując każdą krawędź dokładnie raz) to graf posiadający
marszrutę przechodzącą dokładnie raz przez każdą krawędź.
Wniosek
Graf
jest jednokreślny wtedy i tylko wtedy, gdy jest spójny i
jego wszystkie wierzchołki, poza co najwyżej dwoma, mają parzysty
stopień.
Dowód
Jeśli jest jednokreślny i marszruta przechodząca przez każdą krawędź
jest cyklem, to jest eulerowski i wobec wcześniejszego twierdzenia ma
jedynie wierzchołki o parzystym stopniu. Jeśli zaś marszruta ta nie jest
cyklem, to oczywiście wszystkie wierzchołki poza początkowym i
końcowym mają parzysty stopień.
Na odwrót, jeśli w grafie wszystkie wierzchołki mają parzysty stopień, to
jest eulerowski, a zatem jednokreślny. Jeśli zaś ma wierzchołki o nieparzystym stopniu, to wobec naszego założenia, może ich mieć dokładnie
dwa. Łącząc teraz te dwa wierzchołki nową krawędzią, dostajemy graf ,
w którym już wszystkie wierzchołki mają parzysty stopień. A zatem
posiada cykl Eulera. Cykl ten przechodzi oczywiście przez nowo dodaną
krawędź. Usuwając ją z tego cyklu dostajemy marszrutę w grafie ,
świadcząca o jego jednokreślności.
Grafy hamiltonowskie
Inny, ciekawy problem można przedstawić na przykładzie firmy
rozwożącej przesyłki. Dotyczy on pracy kuriera mającego rozwieść
przesyłki do odbiorców, w ten sposób by odwiedzić każdego klienta
jedynie raz, a na końcu wrócić do siedziby firmy.
Cykl Hamiltona to marszruta zamknięta odwiedzająca każdy wierzchołek
dokładnie raz.
Graf hamiltonowski to graf posiadający cykl Hamiltona.
Ścieżka Hamiltona to marszruta przechodząca przez wszystkie
wierzchołki, każdy odwiedzając jedynie jeden raz.
www.ibspan.waw.pl/~sikorski/md/md_p06.pdf
W odróżnieniu od grafów eulerowskich, grafy hamiltonowskie nie
posiadają prostej i szybkiej w użyciu charakteryzacji. Nie znana jest żadna
metoda, pozwalająca szybko (tzn. w czasie wielomianowym) stwierdzić
czy dany graf jest hamiltonowski. Nie udowodniono również, że nie ma
takiego algorytmu. Problem jest więc otwarty!
Są natomiast znane pewne warunki wystarczające na to, by graf był
hamiltonowski, np.
Graf prosty
najmniej
, w którym każdy wierzchołek ma stopień co
jest hamiltonowski.
Jeśli w grafie prostym
o co najmniej 3 wierzchołkach
dowolne dwa niesąsiednie wierzchołki v i w spełniają nierówność
, to graf jest hamiltonowski.
www.ibspan.waw.pl/~sikorski/md/md_p06.pdf
Twierdzenie
Graf pełny Kn jest hamiltonowski dla każdego n>2 i zawiera
Hamiltona.
www.ibspan.waw.pl/~sikorski/md/md_p06.pdf
(n − 1)!
2
cykli
Grafy planarne
Graf płaski to para
, gdzie: jest jakimś zbiorem punktów
płaszczyzny , jest zbiorem nie przecinających się odcinków lub łuków
w o końcach w zbiorze .
Graf planarny to graf, który jest prezentowalny jako graf płaski.
Uwaga: graf płaski jest zbiorem punktów płaszczyzny i zbiorem nie
przecinających się odcinków lub łuków łączących te punkty. A zatem jest
to RYSUNEK! Natomiast graf planarny to graf, który jest prezentowalny
jako graf płaski.
Grafy
i
nie są planarne.
Homeomorfizm
Graf
jest homeomorficzny z grafem , jeśli jeden otrzymamy
z drugiego poprzez wykonanie skończenie wielu poniższych operacji:
•
•
Dodawanie wierzchołków stopnia dwa na krawędzi.
Jeśli
oraz
, to operacja ta zastępuje graf
grafem
Usuwanie wierzchołków stopnia dwa.
Jeśli
ma jedynie dwóch sąsiadów
grafem
zastępuje graf
.
, to operacja ta
.
Twierdzenie Kuratowskiego
Graf jest planarny wtedy i tylko wtedy, gdy żaden jego podgraf nie jest
homeomorficzny z ani z
.
Inna charakterystyka grafów planarnych odwołuje się do znanego nam już
pojęcia ściągalności, lub grafu ilorazowego:
Graf jest planarny wtedy i tylko wtedy, gdy nie zawiera podgrafu
ściągalnego do lub
.
Ściany
W grafach płaskich poza wierzchołkami oraz krawędziami można
rozważać również ściany, czyli obszary płaszczyzny otoczone krawędziami
i nie zawierające krawędzi. Formalnie ściana w grafie płaskim to zbiór
punktów płaszczyzny, które da się połączyć krzywą nieprzecinającą żadnej
krawędzi.
Wszystkie grafy płaskie mają dokładnie jedną ścianę nieskończoną.
Zauważmy, że las jest grafem planarnym, ale w żadnej reprezentacji
płaskiej nie posiada ścian ograniczonych. Tak więc posiada w ogóle tylko
jedną ścianę.
Twierdzenie
W grafie płaskim
zachodzi
o ścianach i
składowych spójnych
Kolorowanie grafów
Problem kolorowania polega na tym, by przypisać wierzchołkom grafu
różne kolory w taki sposób, by każde dwa sąsiednie wierzchołki miały inne
kolory.
Kolorowanie grafu
to funkcja
ilekroć
jest krawędzią grafu .
taka, że
Kolorowanie grafu na k kolorów wyznacza rozbicie zbioru na sumę
rozłączną
jednobarwnych zbiorów , przy czym
jest antykliką. Na odwrót, takie
każdy graf indukowany postaci
rozbicie
pozwala na pokolorowanie grafu na k
kolorów.
Graf k-kolorowalny (k-barwny) to graf dający się pokolorować k barwami.
Liczba chromatyczna grafu,
można pokolorować graf .
Optymalne kolorowanie grafu
kolorów.
, to najmniejsza liczba barw, którymi
to kolorowanie używające dokładnie
Oszacowania
ω ≤ χ(G) gdzie ω jest rozmiarem maksymalnego podgrafu pełnego (kliki)
χ(G) ≤ ∆+1 gdzie ∆ jest maksymalnym stopniem wierzchołka w G
Obserwacja
Graf jest dwudzielny wtedy i tylko wtedy, gdy jest -kolorowalny.
Twierdzenie (1890)
Każdy graf planarny jest 5-kolorowalny.
Twierdzenie (1976)
Każdy graf planarny jest 4-kolorowalny.
MAPY
Zbiór rozspajający wierzchołki u, v to zbiór krawędzi F⊆E taki, że każda
droga z u do v zawiera jakąś krawędź z F.
Rozcięcie wierzchołków u, v to zbiór rozspajający wierzchołki u, v, którego
żaden podzbiór właściwy nie rozspaja u z v.
Zbiór krawędzi F będziemy nazywać rozcięciem, jeśli F jest rozcięciem
jakichś dwu wierzchołków u, v.
Most to taka krawędź e, że zbiór { e } tworzy rozcięcie.
Mapa to graf płaski nie zawierający mostów.
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.
Twierdzenia
Mapa M ma 2-kolorowalne ściany wtedy i tylko wtedy, gdy graf M jest
eulerowski.
Każda mapa ma 4-kolorowalne ściany.
TWIERDZENIE HALLA
Twierdzenie o kojarzeniu małżeństw rozważa dwie grupy - dziewcząt i
chłopców, oraz podgrupy dziewczyn i podgrupy chłopców. Kiedy każdej
dziewczynie można przyporządkować jednego kandydata na męża?
Okazuje się, że warunkiem koniecznym i wystarczającym na to, by istniało
takie skojarzenie par, jest to, by każda podgrupa dziewcząt, licząca k
osób, znała co najmniej k chłopców.
Jedną z wersji tego twierdzenia jest wersja dla grafów dwudzielnych,
gdzie mężczyzn i kobiety interpretuje się jako zbiory wierzchołków grafu
dwudzielnego, a krawędzie łączą "mężczyznę" z "kobietą", jeśli się znają.
Skojarzenie w grafie dwudzielnym G(V1∪V2, E) to podzbiór krawędzi, w
którym żadne dwie krawędzie nie wychodzą z tego samego wierzchołka.
Powiemy, że wierzchołek v∈Vi jest skojarzony, jeśli istnieje w∈V3-i taki,
że krawędź vw należy do skojarzenia.
Pełne skojarzenie V1 z V2 w grafie dwudzielnym G(V1∪V2, E) to
skojarzenie, w którym każdy wierzchołek z V1 jest skojarzony.
Hall wprowadza funkcję Φ(A) zwracającą dla A⊆V1 zbiór tych
wierzchołków V2, które są sąsiednie z przynajmniej jednym wierzchołkiem
w zbiorze A.
Twierdzenie Halla (1935)
Niech G(V1∪V2, E) będzie grafem dwudzielnym. Wówczas pełne
skojarzenie V1 z V2 istnieje wtedy i tylko wtedy, gdy |A|≤|Φ(A)| dla
każdego podzbioru A zbioru V1.
Przeczytaj dowód ze strony z wykładami z matematyki dyskretnej
Algorytm Halla, wersja 1
Niech A i B będą zbiorami dziewcząt i chłopców, |A|≤|B|.
Warunek, że każde r dziewcząt zna w sumie co najmniej r chłopców, jest
warunkiem koniecznym i wystarczającym na to, by każda z dziewczyn z A
znalazła sobie męża wśród znanych jej chłopców z B.
Algorytm „znajdowania męża”
Niech Bi to zbiór chłopców, które zna dziewczyna ai. Dopóki jest to
możliwe dobieramy kolejnym dziewczynom a1, a2, a3 … aj chłopców b1, b2,
b3 … bj, przy czym b1∈B1 b2∈B2 \{b1}, b3∈B3 \{b1, b2} itd.
Jeżeli uda się to zrobić dla wszystkich dziewczyn, to algorytm znajdowania
mężów zakończy się.
Jeżeli jednak dla pewnej dziewczyny aj zbiór znanych jej chłopców
Bj \{b1, b2 … bj-1}
jest już pusty, to trzeba zerwać przynajmniej jedne zaręczyny. W tym celu
dziewczyna aj urządza przyjęcie, na które zaprasza wszystkich znanych jej
chłopców (Bj).
Chłopcy ci przychodzą ze swoimi narzeczonymi, ale te – na wszelki
wypadek – zabierają ze sobą swoich znajomych chłopców, a ci swoje
narzeczone itd, aż do momentu gdy na przyjęcie zostanie zaproszony
chłopiec, który nie jest jeszcze zaręczony. Musi się taki znaleźć, bo każda
grupa r dziewcząt zna w sumie co najmniej r chłopców, czyli dziewczyny
zaproszone na przyjęcie znają w sumie co najmniej tyle samo chłopców,
a ponadto dziewczyna aj nie jest zaręczona.
Ów niezaręczony chłopiec będzie tańczył z dziewczyną, która go zaprosiła,
jej narzeczony – z dziewczyną która go zaprosiła, itd. aż na parkiecie
znajdzie się chłopiec tańczący z gospodynią przyjęcia. Pary na parkiecie
będą to nowe pary narzeczonych, a te, które nie tańczą pozostaną
niezmienione.
Po przyjęciu wszystkie dziewczyny a1, a2, a3 … aj mają narzeczonych
i możemy kontynuować dobieranie narzeczonych dla kolejnych
dziewczyn.
Przykład
Niech A={a, b, c, d, e}, B={A, B, C, D, E, F, G, H} oraz
a zna A i B
b zna A, B, D
c zna A, B, C
d zna A i C
e zna D, E, F, G, H
Łączymy (a, A), (b, B), (c, C) i dla d brakuje narzeczonego. Na przyjęcie d
zaprasza chłopców A, C, ci swoje narzeczone a, c, te swoich znajomych A,
B, C. Chłopiec B zaprasza narzeczoną b, a ona swoich znajomych A, B, D,
z których tylko ostatni nie był jeszcze zaproszony (a ponadto nie ma
narzeczonej).
Pary na parkiecie: (D, b), (B, c), (C, d). Nie tańczą (A, a).
Na koniec dobieramy narzeczonego dla e, np. G.
Algorytm Halla, wersja 2
Niech rodzina (B1, B2, … Bk) składa się z niepustych podzbiorów
skończonego zbioru B.
Transwersalą rodziny (B1, B2, … Bk) nazywamy różnowartościowy ciąg
reprezentantów (b1, b2, … bk) taki, że bi∈Bi dla i=1, 2, … k.
Rodzina zbiorów skończonych (B1, B2, … Bk) ma transwersalę wtw gdy dla
Bi |.
dowolnego J⊆{1, 2, … k} zachodzi |J|≤| 
i∈J
Algorytm Halla, wersja 3
Niech G(V1∪V2, E) będzie grafem dwudzielnym, a funkcja Φ(A) zwraca dla
A⊆V1 zbiór tych wierzchołków z V2, które są sąsiednie z przynajmniej
jednym wierzchołkiem w zbiorze A.
Skojarzenie w grafie dwudzielnym G nazwiemy podzbiór krawędzi, w
którym żadne dwie krawędzie nie wychodzą z tego samego wierzchołka.
Powiemy, że wierzchołek v∈Vi jest skojarzony, jeśli istnieje w∈V3-i taki,
że krawędź vw należy do skojarzenia. Pełne skojarzenie V1 z V2 w grafie
dwudzielnym G to skojarzenie, w którym każdy wierzchołek z V1 jest
skojarzony.
Pełne skojarzenie V1 z V2 istnieje wtedy i tylko wtedy, gdy |A|≤
≤|Φ
Φ(A)|
dla każdego podzbioru A zbioru V1.
Algorytm „znajdowania męża” przedstawimy w wersji z losowym
doborem narzeczonych. Oznacza to zbudowanie dowolnego skojarzenia w
grafie G. Mamy wtedy podzbiór krawędzi M⊆E i podzbiór „dziewcząt”
(podzbiór V1) ze skojarzonymi narzeczonymi z V2.
Jeżeli wylosowane skojarzenie nie jest pełne (i nie da się rozszerzyć do
pełnego) to musimy znaleźć dla M tzw. ścieżkę alternującą i zastąpić M
skojarzeniem M’ opartym na tej ścieżce. Skojarzenie M’ ma moc większą
o 1 od mocy M.
Jeżeli M’ nie jest pełne to tworzymy ścieżkę alternującą dla M’ i
zastępujemy M’ skojarzeniem M” opartym na tej ostatniej ścieżce.
Postępujemy tak aż do otrzymania skojarzenia pełnego.
Pytania na egzamin licencjacki
z zakresu matematyki dyskretnej
Omów metody obliczania sum skończonych
Liczby Fibonacciego a "złoty podział"; wniosek Keplera
Twierdzenie Halla i algorytm łączenia w pary
Trójkąt Stirlinga (dla podziałów) i liczby Bella
Zasada szufladkowa Dirichleta