matematyka dyskretna - kolos wikikolos.math.uni.lodz.pl/~archive/matematyka dyskretna/md09 -...

31
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku

Upload: doananh

Post on 28-Feb-2019

246 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

Matematyka Dyskretna

Andrzej Szepietowski

25 czerwca 2002 roku

Page 2: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział
Page 3: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

Rozdział 1

Grafy (nieskierowane)

Definicja 1.1 Graf (nieskierowany)����������� ���

jest to para składajaca sie ze skon-czonego zbioru wierzchołków

���oraz ze zbioru krawedzi

���, gdzie krawedzie to pary

wierzchołków. � ���������������������! "�#� $�&%�'�#�)(

O krawedzi * �+�,�-.�#�mówimy, ze łaczy wierzchołki

�i�, a o wierzchołkach

�i�,

ze sa koncami krawedzi * . Stopien wierzchołka�, oznaczany przez / �0�1� , jest to liczba

krawedzi wychodzacych z�

.Graf czesto przedstawiamy na rysunku jako zbiór punktów (lub kółek) połaczonych

odcinkami (lub łukami).

Rysunek 1.1: Przykład grafu

2 3 4

/

* 5 6

Przykład 1.2 Rysunek 1.1 przedstawia graf�87&�9���:7���;7��

ze zbiorem wierzchołków� 7 �<� 2 3 4 / * 5 6 � i zbiorem krawedzi� 7 �=��� 2 3 �>?� 2 / �>?� 2 * �)@� 2 6 ��?� 3 4 �>?� 4 6 �>?� 4 5 �>@� / 5 �)@� * 5 �)@� 5 6 �A� .3

Page 4: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

4 Rozdział 1. Grafy (nieskierowane)

Stopien wierzchołkw 2 i 5 wynosi 4, wierzchołki 4 i 6 sa stopnia 3, wierzchołki3, / i

* stopnia 2.

Lemat 1.3 Niech� � ����.� �

, bedzie dowolnym grafem z � � � � �krawedziami. Wtedy�

����� /� � ���� � (

Dowód: Jezeli policzymy wszystkie krawedzie wychodzace ze wszystkich wierzchołkówgrafu, to z jednej strony mamy sume ����� / � � � , a z drugiej

��� � �A�� � poniewaz kazdakrawedz * � ��������

jest liczona dwa razy, raz jak liczymy krawedzie wychodzace z�

idrugi raz jak liczymy krawedzie wychodzace z

�. �

Wniosek 1.4 Liczba wierzchołków o nieparzystych stopniach jest parzysta.

Graf � ������ .�� �nazywamy podgrafem grafu

� � ��� � .� � �, jezeli

�� � � �oraz

� � � �.

Przykład 1.5 Grafy przedstawione na rysunkach 1.5 i 1.6 sa podgrafami grafu z rysun-ku 1.1 . Graf

���;� ������������z rysuku 1.5 zawiera szesc wierzchołków

��� �<� 2 3 4 / * 6 �i trzy krawedzie

���;�<�>� 2 * �)@� 3 4 �)@� 4 6 ��� .Graf

����� � ���>.�����z rysuku 1.6 zawiera siedem wierzchołków

���;� � 2 3 4 / * 5 6 �i piec krawedzi

� � � ��� 2 3 �>?� 2 / �>?� 2 * �)@� 2 6 �)@� 3 4 ��?� / 5 ��� .Graf pełny o � wierzchołkach, oznaczany przez ��� , jest to graf z � wierzchołkami,

w którym kazde dwa wierzchołki połaczone sa krawedzia.

Rysunek 1.2: a) Graf pełny ��� . b) Graf pełny dwudzielny � ��� �a b

c d

e f

a b

c d

e fa) b)

Graf�+� � � ����

jest dwudzielny, jezeli zbiór jego wierzchołków mozna rozbic nadwie czesci

� � �:7 �&� �,�:7�! � � �#"

, tak, ze kazda krawedz * �ma konce w

obu zbiorach� 7

i� �

. Pełny graf dwudzielny ��$ � � ma zbiór wierzchołków rozbity nadwa podzbiory:

� 7 � ���>7��(?(�(?�� $ � i� � � �&%�7��(?(?(�'% � � , a krawedzie łacza kazdy

wierzchołek z� 7

z kazdym wierzchołkiem z���

, czyli� � �����)( *%,+A�8�.-�/102/ � �-�/3 / � � .

Page 5: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.1. Izomorfizm grafów 5

1.1 Izomorfizm grafów

Izomorfizmem grafu� � ��� � .� � �

na graf � � ���� ��� �nazywamy funkcje wza-

jemnie jednoznaczna ��� ����� � spełniajaca warunek:

�������� ���wtedy i tylko

wtedy, gdy� � �0� � � � � � � � . Jezeli taka funkcja istnieje, to mówimy, ze grafy

�i �

sa izomorficzne. Łatwo sprawdzic, ze izomorfizm grafów jest relacja równowaznosci.

Przykład 1.6 Rysunki 1.3a i 1.3b przedstawiaja ten sam graf��� � � ���).�����

ze zbioremwierzchołków

�� �<� 2 3 4 / � oraz zbiorem krawedzi� � �=��� 2 3 �>?� 2 4 �>@� 2 / �>@� 3 4 ���Graf

�� � � �>.��,�z rysunku 1.4a jest izomorficzny z grafem

� �. Izomorfizmem z

� na� �

jest funkcja ��� ���� � �okreslona nastepujaco: � � 2 ��� 4 , � � 3 ��� 3

, � � 4 �;� 2 ,� � / ��� / .

Graf� � z rysunku 1.4b nie jest izomorficzny z grafami

� �i��

. Graf� �

zawierawierzchołek / stopnia jeden, a w grafie

� � takiego wierzchołka nie ma.

Rysunek 1.3: Rysunki a) i b) przedstawiaja ten sam graf� �

a b

c d

a d

b c

a) b)

Rysunek 1.4: a) Graf�

izomorficzny z���

. b) Graf� � nieizomorficzny z

���

a b

c d

a b

c da) b)

Jezeli mamy izomorfizm grafu������� � .� � �

na graf � � � �� ��� �, to mozemy

powiedziec, ze � jest takim samym grafem co�

tylko ze zmienionymi nazwami wierz-chołków.

Twierdzenie 1.7 Jezeli grafy�=� ��� � .� � �

i � �=���� .�� �sa izomorficzne, to:

Page 6: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

6 Rozdział 1. Grafy (nieskierowane)

(a)�

i � maja tyle samo wierzchołków,� � � ��� � �� 8�

,

(b)�

i � maja tyle samo krawedzi,� � � ��� � �� 8�

,

(c) Dla kazdego � ,�

i � maja tyle samo wierzchołków stopnia � .

Dowód:(a) wynika bezposrednio z definicji.(b) Niech � bedzie izomorfizmem z

� �na��

. Ale � okresla takze wzajemna jednoznacz-nosc pomiedzy zbiorem krawedzi � � ���������� �<� � � �:�@ � �0�1� � .(c) Udowodnimy, ze jezeli

�" &� �jest stopnia � , to i � �0�1� &�� jest stopnia � . Wiec �

odwzorowuje wierzchołki stopnia � na wierzchołki stopnia � .Niech

� 7, ... ,

���beda wszystkimi wierzchołkami z

� �połaczonymi krawedziami z�

. Wtedy � �0�)7@� , ... , � � � � � sa wszystkimi wierzchołkami z�

połaczonymi krawedziamiz � �0�1� . �

1.2 Drogi i cykle

Droga lub sciezka w grafie jest to ciag wierzchołków���>.� 7 �(?(?(�����

, taki, ze dla kazdego0� - / 0�/ � , wierzchołki�)(�� 7

,� (

sa połaczone krawedzia, czyli�,�)(�� 7 �� (�� � �

. Odrodze

���)�� 7 ?(?(�(?.���mówimy, ze łaczy wierzchołki

��i���

. Mówimy takze, ze wierzcho-łek

���jest osiagalny z wierzchołka

� 7. Droga jest zamknieta jezeli

�� � ���. Droga jest

prosta, jezeli wszystkie wystepujace w niej wierzchołki sa rózne. Droge� � .�>7�?(�(?(��� �

nazywamy cyklem jezeli� � � � �

, �� � oraz wszystkie wierzchołki� 7 �(?(?(?�� �

sa rózne.

Przykład 1.8 W grafie z rysunku 1.1 ciag * , 2 , / , 2 ,3, 4 , 6 jest droga, a ciag 2 , * , 5 , / , 2

jest cyklem. Ciag 2 * 5 / 2 3 4 6 2 jest droga zamknieta, ale nie jest cyklem.

Graf�

jest spójny, jezeli dla kazdych dwóch wierzchołków�

,� "� �

istnieje sciezkałaczaca

�i�. Składowa spójnosci to maksymalny spójny podgraf grafu. Zauwazmy, ze w

zbiorze wierzchołków grafu istnieje relacja osiagalnosci:�

i�

sa w relacji jezeli� �=�

lub�

jest osiagalny z�

. Relacja ta jest relacja równowaznosci i dzieli zbiór wierzchołkówgrafu na składowe spójnosci.

Przykład 1.9 Graf z rysunku 1.1 jest spójny, zawiera jedna składowa spójnosci (całygraf).

Graf z rysunku 1.5 nie jest spójny i zawiera trzy składowe spójnosci:

� � 7 ze zbiorem wierzchołków� 2 * � i jedna krawedzia

� 2 * �� � � ze zbiorem wierzchołków

� 3 4 6 � i dwoma krawedziami� 3 4 � i

� 4 6 � ,� � � z jednym wierzchołkiem

� / � i bez krawedzi.

Lemat 1.10 Jezeli istnieje droga łaczaca wierzchołki�

i�,� %� �

, to istnieje tez drogaprosta łaczaca

�i�.

Page 7: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.3. Drzewa 7

Rysunek 1.5: Graf z trzema składowymi spójnosci

2 3 4

/

* 6

Dowód: Niech�<�����)�� 7 ?(�(?(?.��� � �

, bedzie najkrótsza droge łaczaca�

i�

. Drogata jest prosta. Przypuscmy bowiem, ze

�)( � ��+, dla jakiegos

0�� 3; mielibysmy wtedy

krótsza droge� � ����(?(?(��� (����+�� 7 ?(�(?(@.��� �'�

, łaczaca�

i�, wbrew załozeniu. �

Dowolne dwa wierzchołki w cyklu moga byc połaczone dwoma drogami prostymi.Na przykład w cyklu 2 3 4 6 2 na rysunku 1.1, wierzchołki 2 i 4 łaczy droga 2 3 4 orazdroga 2 6 4 . Tak, wiec, jezeli w grafie sa cykle, to istnieja pary wierzchołkow, które sapołaczone dwoma drogami prostymi. Ale i na odwrót.

Lemat 1.11 Jezeli w grafie istnieja dwa wierzchołki�

i�,� %� �

które mozna połaczycdwoma róznymi drogami prostymi, to w grafie istnieje cykl.

Dowód: Niech� �+� � ��>7A?(�(?(@.� � �+�

,� � % � '%�7A?(�(?(@*%��!�+�

, beda dwoma roz-nymi prostymi drogami łaczacymi

�i�. Mozemy załozyc, ze

�>7 %� % 7(w przeciw-

nym przypadku mozemy usunac wspólny poczatek obu dróg). Niech� (

bedzie pierw-szym wierzchołkiem po

���, który wystepuje w drodze

% ��*% 7 �(?(?(�'% $ , i niech�)( � %,+

.Wierzchołki

� 7 ?(�(?(��� (�� 7nie wystepuja w drodze

% �>*% 7 ?(�(?(�'% $ i droga���)?(�(?(@.� (��% +�'% + � 7 �(?(?(?'% 7 *% � � ���

tworzy cykl (w drodze tej wystepuja conajmniej trzy róznewierzchołki

��,� 7

oraz% 7

). �Z tego lematu wynika, ze graf jest acykliczny (nie ma cykli) wtedy i tylko wtedy, gdy

kazde dwa wierzchołki grafu mozna połaczyc co najwyzej jedna droga prosta.

1.3 Drzewa

Definicja 1.12 Spójny i acykliczny (bez cykli) graf to drzewo.

Z rozwazan z poprzedniego podrozdziału wynika:

Lemat 1.13 Graf jest drzewem wtedy i tylko wtedy, gdy kazde dwa jego wierzchołki moz-na połaczyc dokładnie jedna prosta droga.

Page 8: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

8 Rozdział 1. Grafy (nieskierowane)

Rysunek 1.6: Przykład drzewa

2 3 4

/

* 5 6

Twierdzenie 1.14 Nastepujace trzy warunki sa równowazne:

(a) Graf�

jest drzewem.

(b)�

jest acykliczny, ale dodanie dowolnej krawedzi psuje acyklicznosc; dodana krawedzwraz z innymi krawedziami grafu

�tworzy cykl.

(c)�

jest spójny, ale usuniecie dowolnej krawedzi��������

psuje spójnosc; to znaczy bezkrawedzi

��������nie ma drogi łaczacej

�i�.

Dowód:� 2 ��� � 3 �Poniewaz

�jest drzewem, wiec jest acykliczny, przypuscmy, ze dodanie

krawedzi�,�-.�#�

nie dodaje cyklu w grafie, ale to oznacza, ze w grafie�

nie ma drogiłaczacej

�i�. W przeciwnym przypadku mielibysmy dwie drogi proste z

�do�: jedna,

która była w drzewie�

i druga złozona tylko z dodanej krawedzi, a wiec na podstawielematu 1.11 dodanie krawedzi zamykałoby cykl. Mamy sprzecznosc, bo

�jako drzewo

jest spójny.� 3 ��� � 2 � Trzeba pokazac, ze�

jest spójny. Przypuscmy, ze nie jest, i ze nie ma drogiłaczacej wierzchołki

�i�. Ale wtedy dodanie krawedzi

�,�-.�#�nie dodaje cyklu (gdy-

by taki cykl powstał, to po usunieciu krawedzi�,�-.�#�

z cyklu mielibysmy droge prostałaczaca

�i�).� 2 ��� � 4 ��� jako drzewo jest spójny. Przypuscmy, ze odjecie krawedzi nie psuje spój-

nosci. To znaczy, ze w grafie istniały dwie drogi proste łaczace�

i�, czyli na podstawie

Lematu 1.11 w grafie�

jest cykl; sprzecznosc.� 4 ��� � 2 � Trzeba pokazac, ze w�

nie ma cyklu. Gdyby w�

istniał cykl, to usunieciedowolnej krawedzi tego cyklu nie psuje spójnosci; sprzecznosc. �Lemat 1.15 W drzewie z � wierzchołkami mamy ��� - krawedzi.

Dowód: Przez indukcje ze wzgledu na liczbe wierzchołków. Jezeli drzewo ma jedenwierzchołek, to nie ma zadnych krawedzi.

Page 9: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.4. Przeszukiwanie grafów 9

Załózmy teraz, ze twierdzenie zachodzi dla kazdego drzewa majacego mniej niz �wierzchołków i niech drzewo

�ma � wierzchołków. W

�istnieje wierzchołek

�stopnia

/ �0�1��� - . Rzeczywiscie, wezmy droge prosta w�

o maksymalnej długosci� 7 �� ��?(?(�(?.���

.Wierzchołek

�)7jest w grafie połaczony tylko z

� �, bo inaczej mielibysmy cykl lub dłuzsza

droge prosta. Usunmy teraz z grafu�

wierzchołek�

i prowadzaca do niego krawedz.Otrzymany graf jest spójny i acykliczny ma � � - wierzchołków i z załozenia indukcyj-nego � � � krawedzi, czyli w grafie

�było ��� - krawedzi. �

Twierdzenie 1.16 Niech�

bedzie grafem z � wierzchołkami, wtedy nastepujace trzy wa-runki sa równowazne:

(a) Graf�

jest drzewem.

(b)�

jest acykliczny i posiada ��� - krawedzi.

(c)�

jest spójny i posiada � � - krawedzi.

Dowód: Na podstawie lematu 1.15 z (a) wynika (b) i (c).� 3 � � � 2 � � jest acykliczny, przypuscmy, ze nie jest drzewem. Wtedy na podstawietwierdzenia 1.14 mozna do niego dodac jakas krawedz nie psujac acyklicznosci. Jeze-li tak powstały graf nie jest drzewem, to dodajemy kolejne krawedzie, az dojdziemy doacyklicznego grafu, w którym juz zadnej krawedzi nie mozna dodac bez dodania cyklu.Tak powstały graf jest drzewem, ma � wierzchołków i wiecej niz � � - krawedzi. Doszli-smy wiec do sprzecznosci z lematem 1.15.� 4 ��� � 2 � � jest spójny, przypuscmy, ze nie jest drzewem. Wtedy na podstawie twier-dzenia 1.14 mozna z niego usunac jakas krawedz nie psujac spójnosci. Jezeli tak powstałygraf nie jest drzewem, to usuwamy kolejne krawedzie, az dojdziemy do spójnego grafu,z którego juz zadnej krawedzi nie mozna usunac bez popsucia spójnosci. Tak powstałygraf jest drzewem, ma � wierzchołków i mniej niz � � - krawedzi. Doszlismy wiec dosprzecznosci z lematem 1.15. �

Z powyzszego dowodu wynika, ze spójny graf z � wierzchołkami nie moze miecmniej niz � � - krawedzi, czyli drzewo to spójny graf z minimalna liczba krawedzi.Podobnie, jezeli graf ma � wierzchołków i jest acykliczny, to nie moze miec wiecej niz��� - krawedzi, czyli drzewa to grafy acykliczne z maksymalna liczba krawedzi.

Przykład 1.17 W drzewie z rysunku 1.6 nie mozna usunac zadnej krawedzi bez rospój-nienia grafu. Nie mozna tez dodac zadnej krawedzi tak, aby nie powstał cykl. W grafie zrysunku 1.1 mozna usunac krawedz

� 2 3 � i graf nadal bedzie spójny. Do grafu z rysun-ku 1.5 mozna dodac krawedz

� 2 3 � i nie powstanie zaden cykl.

1.4 Przeszukiwanie grafów

W rozdziale o strukturach danych zaprezentowano algorytmy przeszukiwania drzew wgłab i wszerz. Po niewielkich modyfikacjach algorytmy te mozna zastosowac do przeszu-kiwania grafów.

Page 10: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

10 Rozdział 1. Grafy (nieskierowane)

Algorytm przeszukiwania grafu w głab.

Dane wejsciowe: graf�=� ����.���

oraz wierzchołek poczatkowy� �

;

� odwiedzamy�

i wkładamy go na STOS; zaznaczamy�

jako wierzchołek odwie-dzony,

� dopóki STOS nie jest pusty, powtarzamy:

� jezeli�

jest wierzchołkiem na wierzchu STOSU, to sprawdzamy, czy istniejewierzchołek

�, który jest połaczony krawedzia z wierzchołkiem

�i nie był jeszcze

odwiedzony,

� jezeli takie�

sie znajdzie, to odwiedzamy�

, wkładamy go na wierzch STO-SU i zaznaczamy jako wierzchołek odwiedzony,

� jezeli takiego�

nie ma, to zdejmujemy�

ze STOSU i cofamy sie do wierz-chołka bedacego na STOSIE pod spodem.

Rysunek 1.7: Przykład grafu

2

3 4 /

* 5 6

Przykład 1.18 Zastosujmy algorytm przeszukiwania w głab do grafu z rysunku 1.7. Po-nizsza tabela pokazuje jaki wierzchołek jest odwiedzany i jaka jest zawartosc stosu pokazdej kolejnej iteracji petli algorytmu (przeszukanie zaczynamy od wezła 2 ). Przyjetozasade, ze jezeli jest kilka wierzchołków do wyboru, to wybieramy ten, którego nazwa stoiwczesniej w alfabecie.

Page 11: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.4. Przeszukiwanie grafów 11

Wierzchołek STOSa ab abc abcd abcdc abcg abcgf abcgfg abcgc abcb abe abeb aba a

W metodzie przeszukiwania w głab po kazdym kroku algorytmu wierzchołki znajdujacesie na stosie tworza droge od wierzchołka wejsciowego do wierzchołka aktualnie odwie-dzanego.

Udowodnimy teraz, ze algorytm odwiedzi wszystkie wierzchołki osiagalne z wierz-chołka poczatkowego

�. Przypuscmy bowiem, ze w grafie istnieje wierzchołek

%osiagalny

z�, ale nie odwiedzony przez algorytm. Skoro

%jest osiagalny z

�, to istnieje droga

� �'� � ��>7A?(�(?(@.� � � % (Poniewaz

���był odwiedzony, a

���nie, to na tej drodze mamy dwa sasiednie wierzchołki� (

oraz� ( � 7

takie, ze� (

był odwiedzony, a�)( � 7

nie. W pewnym momencie algorytmuwierzchołek

�)(był na stosie, a potem został z niego zdjety, poniewaz algorytm konczy

prace dopiero po zdjeciu wszystkich wierzchołków ze stosu. Zastanówmy sie teraz nadkrokiem algorytmu, w którym

�)(jest zdejmowany ze stosu. Ale

�)(nie mógł byc zdjety ze

stosu, poniewaz istnieje jego sasiad� ( � 7

, który nie był odwiedzony.Aby udowodnic, ze algorytm zawsze sie zatrzyma wystarczy zauwazyc, ze w kazdej

iteracji petli albo jakis wierzchołek jest wkładany na stos, albo jakis jest zdejmowany zestosu. Z drugiej strony kazdy wierzchołek jest tylko raz wkładany na stos (bo wkładanesa tylko wierzchołki nieodwiedzane). Mamy wiec nie wiecej niz

� � � ��� � � iteracji petli,a poniewaz w kazdej petli algorytm wykonuje tylko kilka kroków, wiec czas działaniaalgorytmu jest rzedu

�8� � � .Algorytm przeszukiwania wszerz.

Dane wejsciowe: graf� � ����.� �

oraz wierzchołek poczatkowy� �

;

� odwiedzamy�, wkładamy go do KOLEJKI; zaznaczamy

�jako wierzchołek od-

wiedzony,

� dopóki KOLEJKA nie jest pusta, powtarzamy:� bierzemy jeden wierzchołek

�z poczatku KOLEJKI,

Page 12: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

12 Rozdział 1. Grafy (nieskierowane)

� odwiedzamy wszystkie wierzchołki, które nie były jeszcze odwiedzane, a sapołaczone krawedzia z wierzchołkiem

�, wkładamy je na koniec kolejki i zazna-

czamy jako odwiedzone.

Przykład 1.19 Ponizej przedstawiono odwiedzane wierzchołki oraz zawartosc kolejki pokazdej kolejnej iteracji petli algorytmu przeszukiwania wszerz dla grafu przedstawionegona rysunku 1.7 (przeszukanie zaczynamy od wezła 2 ):

wierzchołki KOLEJKAa a

b,c,d,e bcdef cdefg defg,- efg,- fg,- g,-

"W metodzie przeszukiwania wszerz wierzchołki sa przeszukiwane w kolejnosci od wierz-chołków bedacych najblizej wierzchołka poczatkowego do wierzchołków bedacych dalej.

1.5 Liczenie składowych spójnosci

Algorytmu przeszukiwania grafów mozna uzyc do liczenia składowych spójnosci.

Algorytm liczenia składowych spójnosci grafu

Dane wejsciowe: graf� � ����.���

.

Dane wyjsciowe: liczba składowych spójnosci — ����� .

� lsp:=0;

� Powtarzaj dopóki sa jeszcze nieodwiedzone wierzchołki w grafie:� Wez jeden nieodwiedzony jeszcze wierzchołek

�; lsp:=lsp+1;

� przeszukaj (za pomoca algorytmu przeszukiwania grafu w głab) wszystkiewierzchołki osiagalne z

�i zaznacz je jako odwiedzone.

1.6 Drzewa spinajace

Definicja 1.20 Drzewo spinajace (rozpinajace) grafu� � � � ����

, to dowolne drzewo� � ����.���-�spełniajace warunek

����� �(zauwazmy, ze

�ma taki sam zbiór wierz-

chołków co�

).

Przykład 1.21 Drzewo z rysunku 1.6 jest drzewem spinajacym dla grafu z rysunku 1.1.

Page 13: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.6. Drzewa spinajace 13

Jezeli graf�

nie jest spójny, to nie ma drzewa spinajacego. Z drugiej strony.

Twierdzenie 1.22 Kazdy graf spójny zawiera jako podgraf drzewo spinajace.

Jako dowód przedstawimy algorytmy konstruowania drzewa spinajacego. W tym celulekko przerobimy algorytm przeszukiwania grafów w głab.

Algorytm konstruowania drzewa spinajacego przy przeszukiwania grafu w głab.Dane wejsciowe: graf

�=�=����.� �oraz wierzchołek poczatkowy

� � �;

Dane wyjsciowe: drzewo spinajace� � ����.� � �

.

� na poczatku drzewo spinajace nie zawiera zadnych krawedzi:� � � �"

� odwiedzamy� �

i wkładamy go na STOS; zaznaczamy� �

jako wierzchołek odwie-dzony,

� dopóki STOS nie jest pusty, powtarzamy:� jezeli

�jest wierzchołkiem na wierzchu STOSU, to sprawdzamy, czy istnieje

wierzchołek�

, który jest połaczony krawedzia z wierzchołkiem�

i nie był jeszczeodwiedzony,

� jezeli takie�

sie znajdzie, to odwiedzamy�

, wkładamy go na wierzch STO-SU i zaznaczamy jako wierzchołek odwiedzony, krawedz

������-�dodajemy do drze-

wa spinajacego:� jezeli takiego

�nie ma, to zdejmujemy

�ze STOSU i cofamy sie do wierz-

chołka bedacego pod spodem.

Rysunek 1.8: Drzewo spinajace dla grafu z rysunku 1.7

2

3 4 /

* 5 6

Przykład 1.23 Rysunek 1.8 przedstawia drzewo spinajace utworzone przez powyzszy al-gorytm dla grafu z rysunku 1.7

Page 14: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

14 Rozdział 1. Grafy (nieskierowane)

Pokazemy teraz, ze algorytm jest poprawny, czyli ze tak utworzony graf�

jest drze-wem. Zauwazmy, ze jezeli wierzchołek

�(poza poczatkowym) jest wkładany na stos,

to do�

dokładana jest krawedz łaczaca�

z wierzchołkiem znajdujacym sie na stosiepod nim. Dlatego w kazdym momencie wierzchołki na stosie stanowia droge w

�, łaczy

ona wierzchołek poczatkowy z aktualnie odwiedzanym wierzchołkiem. Poniewaz grafjest spójny, to algorytm odwiedzi wszystkie wierzchołki grafu

�i�

jest grafem spój-nym. Z kazda krawedzia z

�mozemy zwiazac wierzchołek, który jest wkładany na stos

w momencie jej powstania. Poniewaz, kazdy wierzchołek jest wkładany na stos tylkoraz, mamy w

� ��� - krawedzi (z poczatkowym wierzchołkiem nie jest zwiazana zadnakrawedz). Tak wiec

�jest spójny, zawiera wszystkie wierzchołki grafu

�i ma � � -

krawedzi, jest wiec drzewem spinajacym.Podobnie mozna przerobic algorytm przeszukiwania grafu wszerz. Mówiac w skrócie

do drzewa naleza te krawedzie, którymi przeszedł algorytm przeszukujac graf.

1.7 Fundamentalny zbiór cykli

Niech�

bedzie spójnym grafem, a�

jego drzewem spinajacym. Krawedzie drzewabedziemy nazywali gałeziami, a krawedzie nie nalezace do drzewa

�cieciwami.

Z twierdzenia 1.14 wynika, ze dodanie dowolnej cieciwy * do drzewa�

utworzy cykl.Oznaczmy ten cykl przez ��� (oczywiscie * ��� ). Zbiór tak utworzonych cykli stanowifundamentalny zbiór cykli. Jak za chwile pokazemy, kazdy inny cykl w grafie jest róznicasymetryczna cykli fundamentalnych. W tym podrozdziale cykle bedziemy traktowac jakozbiory krawedzi.

Przykład 1.24 Rozpatrzmy graf z rysunku 1.7 i jego drzewo spinajace z rysunku 1.8.W tym przypadku gałeziami sa krawedzie: 5 7 � � 2 3 � , 5 � � � 3 4 � , 5 �<� � 4 / � ,5 �'� � 4 6 � , 5 � � 5 6 � , 5 � � � 3 * � , a cieciwami krawedzie * 7 � � 2 4 � , * � �� 2 / � , * � � � 3 5 � , * � � � 2 * � . Fundamentalny zbiór cykli zawiera cykle: ����� �� * 7, 5 7� 5 � �!� 2 3 4?2 , ����� � � * � 5 7 5 � 5 � � � 2 3 4 / 2 , ��� � � * � 5 � 5 � 5 A�!� 3 4 6 5 3 ,���� � � * � 5 7 5 � � � 2 3 * 2 ,

Zbiór krawedzi � grafu nazywamy pseudocyklem, jezeli kazdy wierzchołek grafu���� � � jest parzystego stopnia. Przykładami pseudocykli sa cykle i zbiór pusty.

Lemat 1.25 Róznica symetryczna dowolnej liczby pseudocykli jest pseudocyklem.

Dowód: Wystarczy pokazac, ze róznica symetryczna � 7� � � dwóch pseudocykli � 7 ,� � jest pseudocyklem. Dla dowolnego wierzchołka

�� <�zbiór krawedzi przyległych

do�

w � 7 � � jest róznica symetryczna krawedzi przyległych do�

w � 7 i w � � . Aponiewaz sa to zbiory parzystej mocy, wiec ich róznica symetryczna tez jest parzystejmocy. Rzeczywiscie dla dowolnych dwóch zbiorów � i � mamy

� � � �>� � � � � � � � � ! � ��� � � ��� � � � � �#� � ! � � (�

Page 15: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.7. Fundamentalny zbiór cykli 15

Wezmy teraz dowolny cykl (lub pseudocykl) � grafu�

i utwórzmy róznice

�� ��� � � � �

(

Jest to róznica symetryczna cykli fundamentalnych utworzonych z cieciw wchodzacychdo � . Pokazemy, ze

� � �� ��� � � � �

(

W tym celu rozwazmy zbiór � � � �� ��� � � ���

(

Na podstawie lematu 1.25, zbiór ten jest pseudocyklem. Z drugiej strony

�nie zawie-

ra zadnych cieciw, poniewaz kazda cieciwa * albo nie nalezy do zadnego składnika tejróznicy, jezeli *�� � , albo nalezy do dokładnie dwóch: do � i do � � . Zatem zbiór

�jest podzbiorem drzewa

�, i jest pusty, bo inaczej musiałby zawierac wierzchołki stopnia

jeden, co jest sprzeczne z faktem, ze

�jest pseudocyklem. Zatem

� � �� ��� � � � �

(

Udowodnilismy zatem nastepujace:

Twierdzenie 1.26 Kazdy cykl (pseudocykl) jest róznica pewnej liczby cykli fundamental-nych.

Przykład 1.27 (Kontynuacja przykładu 1.24) Cykl� * 7 * �� 5 �A�<� 2 4 / 2 jest róznica

symetryczna cykli � � � i � � � . Rzeczywiscie

� * 7, * � 5 � ���=� * 7, 5 7� 5 � � '� * � 5 7� 5 � 5 � �;� ��� � ����

Cykl� * 7 5 �> 5 * �A 5 � * ����� 2 4 6 5 3 * 2 jest róznica symetryczna cykli � � � , � � i � � � .

Rzeczywiscie

� * 7 5 �� 5 * �A 5 � * � � �=� * 7 5 7 5 � � � * � 5 �A 5 �A 5 � � * �A 5 7 5 � �;� � � � � � � � � (

Lemat 1.28 Jezeli graf�

jest spójny oraz posiada � wierzchołków i � krawedzi, to ma�� � � - cykli fundamentalnych.

Dowód: Wynika, to z faktu, ze drzewo spinajace ma ��� - krawedzi �Jezeli graf nie jest spójny, to kazda składowa spójnosci mozemy traktowc osobno.

Niech��7

,� �

, ... ,���

beda składowymi spójnosci grafu�

i niech składowa� (

ma � (wierzchołków i � ( krawedzi. Dla kazdej składowej

� (mamy drzewo spinajace

� (z � ( � -

krawedziami oraz � ( � � ( ��- cykli fundamentalnych. Niech zbiór cykli fundamentalnychcałego grafu bedzie suma cykli fundamentalnych składowych. Kazdy cykl w grafie nalezy

Page 16: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

16 Rozdział 1. Grafy (nieskierowane)

w całosci do jednej składowej spójnosci, bo sam jest spójny, i moze byc przedstawionyjako róznica symetryczna cykli fundamentalnych. W całym grafie

�mamy wiec��

(�� 7 � � ( � � ( � -,� � � � � � �

cykli fundamentalnych. Udowodnilismy wiec nastepujace

Twierdzenie 1.29 W dowolnym grafie�

mamy � � � � � � � � � � cykli fundamentalnych,gdzie � jest liczba wierzchołków, � liczba krawedzi, a � liczba składowych spójnosci.

Aby przekonac sie, czy graf�

ma cykl wystarczy policzyc � ��� � i jezeli � ��� ����� , tograf nie ma cykli.

1.8 Minimalne drzewo spinajace

Wyobrazmy sobie, ze kazda krawedz * w grafie� � � � ����

ma długosc% � * � . Na przy-

kład, wierzchołki grafu sa miejscowosciami i długosc krawedzi jest odległoscia miejsco-wosci. Chcemy teraz skonstruowac minimalne drzewo spinajace, czyli drzewo spinajace� � ����.� ���

z minimalna suma długosci krawedzi

�� �����

%�� * � (

Algorytm budowy minimalnego drzewa spinajacego

Dane wejsciowe: graf� � ����.���

z funkcja wagi% � � �

.

Dane wyjsciowe: minimalne drzewo spinajace� �=����.��� �

.

� � � � �"� Posortuj krawedzie

�grafu

�według długosci, od najkrótszej do najdłuzszej.

� Dla kazdej krawedzi * �� wstaw ja do� �

pod warunkiem, ze nie tworzy onacyklu z krawedziami, które juz sa w

� �.

Przykład 1.30 Po zastosowaniu powyzszego algorytmu do grafu z rysunku 1.9a otrzyma-my drzewo przedstawione na rysunku 1.9b

Najpierw pokazemy, ze tak utworzony graf�

jest drzewem spinajacym. Po kazdejiteracji petli, graf

�nie zawiera cyklu, wiec na koncu tez jest acykliczny. Przypuscmy,

ze po zakonczeniu algorytmu�

nie jest spójny. Istnieja wiec w�

dwa wierzchołki � i � ,które sa połaczone w

�droga � � � 7�(�(?(� � � � � (bo

�jest spójny), ale które nie sa

połaczone w�

. Na drodze tej sa wiec dwa sasiednie wierzchołki � ( i � ( � 7 , które nie sapołaczone w

�droga. Ale wtedy dodanie krawedzi

� � ( � ( � 7 � do drzewa�

nie tworzy wnim cyklu i algorytm powinien dodac krawedz

� � ( � ( � 7 � do�

, sprzecznosc.

Page 17: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.9. Cykle i drogi Eulera 17

Rysunek 1.9: a) Graf z wagami, b) Jego minimalne drzewo spinajace

a b

c d

e f

16

136

9

118

19

7

10

a b

c d

e f

136

118

7

a) b)

Pokazemy teraz, ze�

jest minimalnym drzewem spinajacym. Przypuscmy, ze�

niejest minimalne. Niech � ��� � ����:�

bedzie takim minimalnym drzewem, które ma z�

najwieksza liczbe wspólnych krawedzi. Niech * bedzie krawedzia z minimalna waga,która nalezy do

�, ale nie nalezy do � . Jezeli dodamy * do � to otrzymamy cykl. Niech

5 bedzie krawedzia w tym cyklu, która nalezy do � , ale nie nalezy do�

.Niech ��� bedzie drzewem, które powstaje z � po zamianie 5 na * . ��� powstaje przez

usuniecie 5 z grafu����.��� � � * ��� . Jest to graf spójny z � � - krawedziami, czyli drzewo.

Jezeli%�� * � � % � 5 � , to drzewo � � byłoby drzewem z mniejsza od � waga, wbrew mi-

nimalnosci � . Jezeli%�� * ��� %�� 5 � , to drzewo � � byłoby minimalnym drzewem z wieksza

od � liczba wspólnych z�

krawedzi, znowu sprzecznosc. Mamy wiec%�� * ��� % � 5 � .

Jezeli dodamy teraz krawedz 5 do�

, to otrzymamy cykl (to moze byc inny cyklniz ten w

����.����� � * � ). W tym cyklu istnieje krawedz * � , która nalezy do�

, ale niedo � . Przypuscmy, ze

% � 5 � � %�� * � � . W takim przypadku algorytm powinien wstawickrawedz 5 do drzewa

�, bo w momencie rozpatrywania 5 w drzewie nie ma jeszcze * �

i wstawienie 5 nie zamyka cyklu. Wynika, to z faktu, ze graf� � �� � � � 5 � � � * � ��� jest

drzewem, wiec krawedz 5 nie tworzy cyklu z krawedziami z� �

�� * � � . Mamy wiec%�� * � � / %�� 5 � � %�� * � co jest sprzeczne z faktem, ze * była najlzejsza krawedzia z

�i

nienalezaca do � .

1.9 Cykle i drogi Eulera

Droga Eulera to droga, która przechodzi przez kazda krawedz grafu dokładnie jeden raz.Cykl Eulera to taka droga zamknieta, w której kazda krawedz grafu wystepuje dokładnieraz.

Euler w 18. wieku pokazał, ze istnieje dosc prosta charakteryzacja grafów z drogalub cyklem Eulera. Mianowicie spójny graf posiada cykl Eulera, wtedy i tylko wtedy gdykazdy jego wierzchołek jest parzystego stopnia, a posiada droge Eulera jezeli co najwyzej

Page 18: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

18 Rozdział 1. Grafy (nieskierowane)

dwa jego wierzchołki sa stopnia nieparzystego. Pamietamy, wniosek 1.4, ze w kazdymgrafie liczba wierzchołków nieparzystego stopnia jest parzysta. Tak wiec graf z drogaEulera ma dwa lub zero wierzchołków nieparzystego stopnia.

Przykład 1.31 Graf na rysunku 1.1 ma dwa wierzchołki nieparzystego stopnia 4 i 6 iposiada droge Eulera 4 3 2 * 5 4 6 2 / 5 6 .

Wyobrazmy sobie, ze idziemy wzdłuz krawedzi grafu, i po przejsciu kazdej krawedziusuwamy ja z grafu. Przechodzac przez jakis wierzchołek usuwamy dwie krawedzie, ta,która weszlismy do wierzchołka, i ta, która go opuscilismy. Dlatego, jezeli po dojsciu dojakiegos wierzchołka, nie ma juz krawedzi z niego odchodzacych, to albo doszlismy dowierzchołka poczatkowego, albo do wierzchołka nieparzystego stopnia.

Z tego wynika, ze jezeli w grafie istnieje droga Eulera, to moga w nim byc co najwyzejdwa wierzchołki nieparzystego stopnia, poczatek i koniec drogi, a jezeli droga Eulera jestzamknieta i stanowi cykl Eulera, to wszystkie wierzchołki w grafie sa parzystego stopnia.

Pokazemy teraz, ze sa to takze warunki wystarczajace. Zaczniemy od cyklu Eulera.

Twierdzenie 1.32 Spójny graf posiada cykl Eulera wtedy i tylko wtedy, gdy kazdy jegowierzchołek jest parzystego stopnia.

Dowód: Koniecznosc warunku udowodnilismy wyzej. Teraz pokazemy, ze jest to wa-runek wystarczajacy. Załózmy, ze kazdy wierzchołek jest parzystego stopnia. Niech �bedzie najdłuzsza pod wzgledem liczby krawedzi droga w grafie bez powtarzania krawedzi.Z rozwazan zrobionych wyzej wynika, ze jest to droga zamknieta. Przypuscmy, ze drogata nie zawiera jeszcze wszystkich krawedzi grafu. Poniewaz graf jest spójny, wiec istniejewierzchołek

�na tej drodze, od którego odchodzi krawedz * nie nalezaca do � . Moze-

my teraz utworzyc dłuzsza droge bez powtarzania krawedzi: zawiera ona * i potem idziewzdłuz � . Jest to sprzeczne z załozeniem, ze � była najdłuzsza droga. �Twierdzenie 1.33 Spójny graf posiada droge Eulera wtedy i tylko wtedy, gdy posiada conajwyzej dwa wierzchołki nieparzystego stopnia.

Dowód: Koniecznosc warunku pokazano wyzej. Teraz pokazemy, ze jest to warunekwystarczajacy. Poniewaz graf nie moze posiadac tylko jednego wierzchołka stopnia niepa-rzystego, to wystarczy rozwazyc graf z dwoma wierzchołkami

�i�

nieparzystego stopnia.Dodajmy do grafu nowy wierzchołek � i połaczmy go krawedziami z

�i�

. Teraz kazdywierzchołek jest stopnia parzystego i posiada cykl Eulera. Po usunieciu z niego nowychkrawedzi i wierzchołka � otrzymamy droge Eulera w pierwotnym grafie. �

Powyzszy dowód, chociaz krótki, ma te wade, ze nie daje dobrego algorytmu znaj-dowania drogi Eulera. Nie sposób przegladac wszystkich mozliwych dróg, bo jest ichbardzo duzo.

Ponizej pokazemy dwa znacznie szybkie algorytmy znajdowania cyklu Eulera.

Algorytm wyszukiwania cyklu EuleraDane wejsciowe: spójny graf

�ze wszystkimi wierzchołkami parzystego stopnia.

� Zaczynamy od dowolnego wierzchołka���

.

Page 19: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.9. Cykle i drogi Eulera 19

� Powtarzamy, az do wyczerpania krawedzi:� Jezeli z bierzacego wierzchołka

�nie odchodzi zadna krawedz, to koniec

algorytmu.� Jezeli z bierzacego wierzchołka

�odchodzi tylko jedna krawedz, to prze-

chodzimy wzdłuz tej krawedzi do nastepnego wierzchołka, usuwamy ta krawedz iwierzchołek

�z grafu.

� Jezeli z�

odchodzi wiecej niz jedna krawedz, to wybieramy ta krawedz, któ-rej usuniecie nie rozspójnia grafu; przechodzimy wzdłuz tej krawedzi do nastepnegowierzchołka, usuwamy ta krawedz z grafu.

Rysunek 1.10: Przykład grafu z cyklem Eulera

2 3 4

� / 0

* 5 6

Przykład 1.34 W grafie z rysunku 1.10 wszystkie wierzchołki sa parzystego stopnia. Prze-sledzmy, jak działa powyzszy algorytm. Zaczynamy od wierzchołka 2 i przyjmijmy, ze wrazie wyboru algorytm wybierze krawedz do wierzchołka z wczesniejsza (według alfabe-tu) litera. Tak wiec 2 przejdzie do

3potem do 4 i do / . Rysunek 1.11 przedstawia nasz graf

po tych trzech krokach, usunieciu odwiedzanych krawedzi i wierzchołka 4 (z którego nieodchodza juz zadne krawedzie).

Teraz algorytm nie moze wybrac krawedzi� / 2 � poniewaz usuniecie tej krawedzi roz-

spójni graf. Zamiast tego algorytm powinien wybrac krawedz� / * � i przejsc do wierz-

chołka * , a potem do 5 . Teraz znowu nie powinien isc do 6 tylko do � , a potem juz bezproblemów do konca cyklu Eulera:

3,0, 5 , 6 , / , 2 .

Pokazemy teraz poprawnosc tego algorytmu. Przypuscmy, ze po kilku krokach je-stesmy w wierzchołku

�, z którego odchodzi kilka krawedzi. Pokazemy, ze wsród tych

krawedzi co najwyzej jedna jest zła (jej usuniecie moze rozspójnic graf). Z przebiegualgorytmu wynika, ze graf w aktualnej postaci (po usunieciu byc moze jakis krawedzilub wierzchołków) jest nadal spójny i co najwyzej dwa wierzchołki w nim sa nieparzy-stego stopnia

�i��

(co zachodzi jezeli� %� ��

). Wiec posiada on droge Eulera. Idzmy

Page 20: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

20 Rozdział 1. Grafy (nieskierowane)

Rysunek 1.11: Graf po przejsciu trzech krawedzi

2 3

� / 0

* 5 6

ta droga zaczynajac od�. Droga ta konczy sie w

�lub

��i przechodzi kilka razy przez�

. Mamy wiec kilka petli, które zaczynaja sie i koncza w�

i byc moze koncowy odci-nek zaczynajacy sie w

�i konczacy w

��. Otóz tylko pierwsza krawedz tego ostatniego

odcinka moze rozspójniac graf. Wszystkie inne krawedzie wychodzace z�

sa czesciamicykli.

Aby udowodnic, ze algorytm dobrze działa, trzeba pokazac, ze wszystkie krawedziegrafu beda odwiedzone. Po kazdej iteracji algorytmu graf jest spójny, wiec jezeli z wierz-chołka

�nie odchodza zadne krawedzie, to znaczy, ze nie ma juz zadnych krawedzi w

grafie.Powyzszy algorytm mimo, ze prosty i szybki wymaga sprawdzania, czy usuniecie

krawedzi nie rozspójni grafu.

Drugi algorytm wyznaczania cyklu Eulera.Dane wejsciowe: spójny graf, w którym wszystkie wierzchołki sa parzystego stopnia.Pomocniczy STOS.Dane wyjsciowe: CE — cykl Eulera.

� Zaczynamy od dowolnego wierzchołka���

i wkładamy go na STOS,

� Natepnie powtarzamy dopóki STOS nie jest pusty� Niech

�bedzie wierzchołkiem z wierzchu STOSU

� jezeli z�

odchodza jakies nieodwiedzane krawedzie, to wybieramy jedna znich, przechodzimy na jej drugi koniec, zaznaczamy jako odwiedzona i jej drugikoniec wkładamy na STOS.

� Jezeli wszystkie krawedzie odchodzace z�

były juz odwiedzone, to zdejmu-jemy

�ze STOSU, przekładamy na wyjscie CE oraz przechodzimy do wierzchołka

znajdujacego sie pod�

na STOSIE.

Page 21: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.10. Drogi i cykle Hamiltona 21

Przykład 1.35 Przesledzmy działanie algorytmu na przykładzie z rysunku 1.10. Ponizszatabela zawiera: odwiedzany wierzchołek, stan STOSU oraz stan pliku wyjsciowego CE pokazdym kroku z pierwszych szesnastu kroków.

Krok wierzchołek STOS CE1 a a -2 b ab -3 c abc -4 d abcd -5 a abcda -6 d abcd a7 e abcde a8 f abcdef a9 g abcdefg a

10 d abcdefgd a11 g abcdefg ad12 f abcdef adg13 h abcdefh adg14 b abcdefhb adg15 i abcdefhbi adg16 f abcdefhbif adg

Po szesnastu krokach wszystkie krawedzie zostały odwiedzone i teraz STOS krok pokroku zostanie przełozony na wyjscie CE. Otrzymamy nastepujacy cykl Eulera:

2 / 6 5 0 3 � 5 *�/ 4 3 2 (Z algorytmu wynika, ze kolejne wierzchołki na obu stosach sa połaczone krawedziami

i ze kazda krawedz (jako para sasiednich wierzchołków) pojawia sie na STOSIE tylkoraz. Nalezy wiec tylko pokazac, ze wszystkie krawedzie znajda sie na wyjsciu. Jezelipominieto jakies krawedzie, to poniewaz graf jest spójny jakas nieodwiedzona krawedzmusi przylegac do wierzchołka

�, który jest w wynikowym cyklu, ale

�jest przekładany

na wyjscie tylko tedy, gdy nie odchodza od niego juz zadne nieodwiedzane krawedzie.W kazdej iteracji algoryt przechodzi jakas krawedz. Albo wkładajac jej koniec na

STOS, albo przekładajac ja na wyjscie CE. A poniewaz kazda krawedz jest odwiedzanadokładnie dwa razy, raz jak jest wkładana na STOS i drugi raz jak jest przekładana na CE,wiec czas działania algorytmu jest proporcjonalny do liczby krawedzi w grafie.

1.10 Drogi i cykle Hamiltona

Droga Hamiltona to taka droga w grafie, która przechodzi dokładnie raz przez kazdywierzchołek grafu. Cykl Hamiltona to zamknieta droga Hamiltona.

Przykład 1.36 Graf z rysunku 1.1 posiada droge Hamiltona / 2 3 4 6 5 * , ale nie po-siada cyklu Hamiltona. Kazdy graf pełny ��� z � � posiada cykl Hamiltona.

Page 22: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

22 Rozdział 1. Grafy (nieskierowane)

Inaczej niz dla cyklu lub drogi Eulera nie jest znane zadne proste kryterium rozstrzy-gania, czy dany graf posiada droge lub cykl Hamiltona. Nie jest takze znany zaden al-gorytm wyszukiwania drogi lub cyklu Hamiltona działajacy w czasie wielomianowym.Naiwnym sposobem szukania drogi Hamiltona jest sprawdzanie wszystkich mozliwychdróg w grafie, ale algorytm ten jest bardzo czasochłonny, bo mamy około � �

mozliwychdróg w grafie z � wierzchołkami.

Innym algorytmem szukania drogi Hamiltona jest tak zwane wyszukiwanie z nawro-tami. Mówiac w skrócie szukanie z nawrotami idzie pierwsza mozliwa sciezka tak dalekojak to tylko mozliwe okładajac kolejne odwiedzane wezły na stos. W momencie, gdy al-gorytrm utknie w slepej uliczce, to cofa sie o jeden krok i próbuje innej drogi. Załózmy,ze wierzchołki grafu sa uporzadkowane na przykład według alfabetu lub sa kolejnymiliczbami naturalnymi

� �=� -��(?(�(@ � �

Algorytm z nawrotami wyszukiwania drogi Hamiltona

Dane wejsciowe: graf� � ����.���

oraz wierzchołek poczatkowy� "�

.

Dane wyjsciowe: droga Hamiltona zaczynajaca sie od�, lub informacja, ze takiej drogi

nie ma.

� włóz�

na STOS

� powtarzaj az do skutku:

� jezeli�

jest wierzchołkiem na wierzchu STOSU, to szukamy wierzchołka%o najnizszym mozliwie numerze połaczonego z

�krawedzia i nie wystepujacy

na STOSIE. Jezeli w poprzedniej iteracji zdjeto ze STOSU wierzchołek � , to%

powinien byc wiekszy od � .

� Jezeli takie%

znajdziemy, to wkładamy je na STOS. Jezeli wierzchołki naSTOSIE tworza juz droge Hamiltona, to koniec algorytmu.

� Jezeli takiego%

nie znajdziemy, to zdejmujemy�

ze STOSU.

Przykład 1.37 Przesledzmy działanie algorytmu na przykładzie grafu z rysunku 1.1. Po-nizsza tabela zawiera: odwiedzany wierzchołek, oraz stan STOSU po kazdym kolejnymkroku (szukanie rozpoczynamy od wierzchołka / ).

Page 23: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.11. Kolorowanie grafów 23

Krok wierzchołek STOS1 d d2 a da3 b dab4 c dabc5 f dabcf6 e dabcfe7 f dabcf8 g dabcfg9 f dabcf

10 c dabc11 g dabcg12 f dabcgf13 e dacgfe

Powyzszy algorytm mimo, ze szybszy od naiwnego algorytmu sprawdzania wszyst-kich dróg, ma wykładnicza złozonosc czasowa.

1.11 Kolorowanie grafów

Chodzi o takie pokolorowanie wierzchołków grafu, zeby wierzchołki połaczone krawedziabyły pokolorowane innymi kolorami i zeby liczba kolorów była jak najmniejsza.

Definicja 1.38 Pokolorowanie grafu� � � � ���� � kolorami jest to funkcja 4 � � �

� ->?(�(?(@ � � , taka ze 4 �0� �;%� 4 �0�1� jezeli�,�-.�#� �

.Najmniejsze takie � , ze graf

�mozna pokolorowac � kolorami nazywamy liczba

chromatyczna grafu�

i oznaczamy przez �� � �

.

W przypadku kolorowania grafów, podobnie jak dla dróg Hamiltona, nie sa znane do-bre i szybkie algorytmy. Naiwny algorytm sprawdzajacy wszystkie mozliwe kolorowaniadziała zbyt długo. Takze tu mamy algorytm z nawrotami.

Algorytm z nawrotami kolorowania wierzchołków grafuDane wejsciowe: graf

�=�=����.� �oraz liczba naturalna � .

Dane wyjsciowe: pokolorowanie wierzchołków grafu�

za pomoca � kolorów 4 � � �� ->?(�(?(@ � � lub informacja, ze takiego pokolorowania nie ma.

� dla kazdego� �

podstaw 4 �0�1� � � �( 4 �0� � � �

oznacza, ze�

nie ma jeszczekoloru).

� włóz pierwszy wierzchołek na STOS,

� powtarzaj az do skutku:� jezeli

�jest wierzchołkiem na wierzchu STOSU, to próbujemy przypisac mu

kolor, wiekszy od biezacego koloru 4 �0� � , który nie koliduje z kolorami wierzchoł-ków znajdujacych sie na STOSIE. Jezeli to sie uda, to wkładamy kolejny wierzcho-łek na stos. Jezeli sie nie uda, to zdejmujemy

�ze stosu i podstawiamy 4 � �:� � � � .

Page 24: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

24 Rozdział 1. Grafy (nieskierowane)

W tym algorytmie próbujemy kolejnym wierzchołkom przypisac pierwszy z rzedukolor i pokolorowane wierzchołki umieszczamy na stosie. Jak zabrniemy w slepa uliczke,to cofamy sie do poprzedniego wierzchołka na stosie i próbujemy nastepnego koloru.

Przykład 1.39 Zastosujmy powyzwszy algorytm do grafu z rysunku 1.12, aby znalezckolorowanie trzema kolorami

��-� � � � . Najpierw kazdy wierzchołek dostaje kolor�, co

oznacza, ze nie jest jeszcze pokolorowany.

Rysunek 1.12: Przykład grafu

5 2 3

* / 4

Zaczynamy od wierzchołka 2 . W pierwszych pieciu krokach algorytm pokoloruje wierz-chołki 2 ,

3, 4 , / i * w nastepujacy sposób:

u a b c d e fc(u) 1 2 1 2 3 0

a na stosie mamy wierzchołki� � � � � 2 3 4 /)* 5 (

Teraz algorytm nie moze pokolorowac wierzchołka 5 , bo jest on połaczony z 2 , / , * , któresa pokolorowane kolorami 1, 2, 3. Dlatego 5 jest zdjete ze stosu:

� � � � � 2 3 4 />* (

Teraz zdejmujemy wierzchołek * , bo nie mozna mu przypisac wyzszego koloru, i podsta-wiamy 4 � * � � � � .

� � � � � 2 3 4 / (Teraz zmieniamy kolor / na 4 � / ��� � , a nastepnie kolorujemy 4 � * � � �� i wkładamy 5 nastos.

u a b c d e fc(u) 1 2 1 3 2 0

� � � � � 2 3 4 /)* 5 (W tym momencie pokolorowanie 5 nie jest mozliwe, wiec zdejmujemy go ze stosu

� � � � � 2 3 4 />* (

Page 25: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.11. Kolorowanie grafów 25

Wierzchołek * tez nie moze byc pokolorowany wyzszym kolorem, wiec tez go zdejmujemy.

� � � � � 2 3 4 / (

Wierzchołek / ma w tym momencie najwyzszy kolor 4 � / � � � , wiec zmiana koloru nie jestmozliwa i zdejmujemy go ze stosu. Mamy teraz nastepujace kolorowanie

u a b c d e fc(u) 1 2 1 0 0 0

i stos� � � � � 2 3 4 (

Teraz zmieniamy kolor 4 na 4 � 4 � � � � , a nastepnie juz bez nawrotów kolorujemy 4 � / � � �-, 4 � * � � � � , 4 � 5 � � � � . Ostateczne kolorowanie wyglada tak:

u a b c d e fc(u) 1 2 3 1 2 3

Jezeli zastosujemy powyzszy algorytm do pokolorowania grafu pełnego � � ��� - ko-lorami, to wypróbuje on wszystkie

� � � -,� �kolorowan dla pierwszych � � - wierzchołków.

Pesymistyczny czas działania algorytmu jest wiec � � � � � .Problem kolorowania grafów jest trywialny, jezeli mamy tylko jeden kolor � � -

.Jednym kolorem mozna pokolorowac tylko grafy bez krawedzi.

Proste jest tez kolorowanie grafów dwoma kolorami. Grafy, które mozna pokolorowacdwoma kolorami, to grafy dwudzielne. Grafu nie mozna pokolorowac dwoma kolorami,jezeli zawiera cykl nieparzystej długosci. Ponizej pokazemy, ze i na odwrót: jezeli grafnie ma cyklu nieparzystej długosci, to mozna go pokolorowac dwoma kolorami.

Ponizej przedstawiamy algorytm kolorowania grafów dwoma kolorami. Dla prostotyzakładamy, ze kolorowane grafy sa spójne. Algorytm mozna łatwo przerobic tak, abykolorował wszystkie grafy.

Algorytm kolorowania grafu dwoma kolorami

Dane wejsciowe: spójny graf�=� ����.���

.

Dane wyjsciowe: pokolorowanie wierzchołków grafu�

za pomoca dwóch kolorów 4 �� � ��-� �1�lub informacja, ze takiego pokolorowania nie ma.

� wez pierwszy wierzchołek�

, pokoloruj go pierwszym kolorem 4 � � � � � - .� powtarzaj az do skutku: Wez wszystkie wierzchołki, które sa połaczone krawedzia

z jakims wierzchołkiem pokolorowanym w poprzedniej iteracji i nie maja jeszczekoloru..

� Jezeli wsród nich zadne dwa nie sa połaczone krawedzia, to pokoloruj jejednym kolorem (innym niz wierzchołki kolorowane w poprzedniej iteracji).

� Jezeli wsród nich sa dwa połaczone krawedzia, to pokolorowanie dwomakolorami nie jest mozliwe.

Page 26: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

26 Rozdział 1. Grafy (nieskierowane)

Kolorowanie otrzymywane w tym algorytmie jest prawidłowe. Niech �(

oznaczawierzchołki kolorowane w

0-tej iteracji, �

� � �����. Wierzchołki z �

(sa kolorowane na

pierwszy kolor, jezeli0

jest parzyste, i na drugi kolor, jezeli jest nieparzyste. Zauwazmy,ze dowolny wierzchołek

�= � ( moze byc połaczony krawedzia tylko z wierzchołka-

mi ze zbiorów � (�� 7 i � ( � 7 . � ( � 7 zawiera wszystkie wierzchołki, które sa połaczone zwierzchołkami z � ( i nie miały koloru po pokolorowaniu � (

, tak wiec zaden ze zbiorów� + z

3 � 0 � -nie zawiera wierzchołków połaczonych z � ( .

Zauwazmy, ze jezeli dwa wierzchołki�

i%

naleza do � (, to istnieja drogi

� �� � �� 7,?(�(?(?.� ( � �

oraz� � % � '%�7 ?(?(�(?*% ( � %

takie, ze� + *% + � + . Niech

� � �% �, bedzie ostatnim wspólnym wierzchołkiem na obu drogach. Poniewaz zbiory � +

sa rozłaczne, to wspólne wierzchołki musza miec te same indeksy. Droga�-�(?(?(?�� � �% �1?(?(�(?*%

jest droga z parzysta liczba krawedzi. Dlatego, jezeli�

i�

sa połaczone krawedzia,to w grafie mamy cykl nieparzystej długosci i pokolorowanie dwoma kolorami nie jestmozliwe.

Z powyzszych rozwazan wynika

Lemat 1.40 Graf jest dwudzielny (moze byc pokolorowany dwoma kolorami) wtedy i tyl-ko wtedy, gdy nie zawiera cykli nieparzystej długosci.

Wniosek 1.41 Kazde drzewo mozna pokolorowac dwoma kolorami.

Nie jest znany algorytm kolorujacy grafy trzema kolorami (lub dowolna wiekszaliczba kolorów) działajacy w czasie wielomianowym.

Poniewaz nie sa znane szybkie algorytmy kolorowania grafów stosuje sie heurystyki,czyli algorytmy niedokładne. Na przykład nastepujaca heurystyka

Heurystyka kolorowania grafu

� Posortuj wierzchołki grafu według ich stopni.

� Dla kazdego wierzchołka po kolei przypisz mu najnizszy mozliwy kolor.

W wielu przypadkach heurystyka ta da optymalne rozwiazanie, na przykład dla grafuz rysunku 1.12.

1.12 Hiperkostka

Hiperkostka � 7 wymiaru 1 jest przedstawiona na rysunku 1.13a. Składa sie ona z dwóchwierzchołków 0 i 1 połaczonych krawedzia. Hiperkostke � � wymiaru 2 (rysunek 1.13b)budujemy z dwóch kostek � 7 . W pierwszej kostce numerujemy wierzchołki przez 00 i 01(dopisujemy 0 na poczatek nazwy kazdego wierzchołka). W drugiej kostce numerujemywierzchołki przez 10 i 11 (dopisujemy 1 na poczatek). Nastepnie łaczymy krawedziamiodpowiadajace sobie wierzchołki z obu kopii 00 z 10 i 01 z 11.

Podobnie budujemy hiperkostke � � wymiaru � z dwóch kostek � � � 7 . W pierwszejkostce numerujemy wierzchołki dopisujac 0 na poczatku nazwy kazdego wierzchołka.W drugiej kostce numerujemy wierzchołki dopisujac 1 na poczatek. Nastepnie łaczymy

Page 27: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.13. Rozgłaszanie wiadomosci 27

Rysunek 1.13: a) Hiperkostka � 7 , b) Hiperkostka � �

1

0

01 11

00 10

a) b)

krawedziami odpowiadajace sobie wierzchołki z obu kopii, czyli wierzchołek� � jest

połaczony z wierzchołkiem- � , dla kazdego � � �#�-A� � � 7

. Rysunek 1.14 przedstawiahiperkostke � � .

W rezultacie hiperkostka to graf � � � ����.���, gdzie

� �=� �#�-�� �zawiera wszystkie

ciagi bitów długosci � , a dwa wierzchołki�

,� �

sa połaczone krawedzia wtedy i tylkowtedy, gdy róznia sie dokładnie jednym bitem.

Jak łatwo widac w kostkach � � i � � sa cykle Hamiltona (w � 7 jest droga Hamiltona).Ogólniej mamy

Lemat 1.42 Kazda hiperkostka � � zawiera droge Hamiltona. zaczynajaca sie w wierz-chołku

� �i konczaca w wierzchołku

- � � � 7.

Dowód przez indukcje ze wzgledu na wymiar kostki. � 7 zawiera droge Hamiltona�#�-

Załózmy, ze � � � 7 zawiera droge Hamiltona z� � � 7

do- � � ���

. � �składa sie z dwóch

hiperkostek � � � 7. Droga w � � zaczyna sie w punkcie

� �. W pierszej hiperkostce (tej z

0 na poczatku kazdego wierzchołka) przechodzi do� - � � � �

, potem krawedzia do- - � � ���

i w drugiej hiperkostce (tej z 1 na poczatku kazdego wierzchołka) w odwrotnym kierunkudo- � � � 7

. �Cykl Hamiltona w � � tworzy tak zwany kod Graya. Jest to ciag wszyskich � elemen-

towych ciagów bitów, kazdy wystepuje raz, kazde dwa kolejne róznia sie jednym bitemoraz ostatni ciag rózni sie jednym bitem od pierwszego.

1.13 Rozgłaszanie wiadomosci

Graf� � ����.���

moze przedstawiac siec połaczen. Wierzchołki sa agentami, a krawedzieto łacza, którymi agenci moga sie komunikowac. Wyobrazmy sobie, ze jeden agent posia-da jakas wiadomosc, która chce przekazac wszystkim innym agentom w sieci. Reguły sanastepujace. Komunikacja odbywa sie synchronicznie w taktach. W kazdym takcie kazdyagent moze przekazac wiadomosc jednemu swojemu sasiadowi.

Powyzszy problem nazywa sie problemem rozgłaszania. Ponizej pokazemy, ze moznago bardzo efektywnie rozwiazac, jezeli graf jest hiperkostka � � . Bedziemy traktowacciag bitów jako przedstawienie dwójkowe liczby naturalnej.

Page 28: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

28 Rozdział 1. Grafy (nieskierowane)

Rysunek 1.14: Hiperkostka � �� � - ��-)-

- ��- -)- -

- � � -)- �

� ��� ��- �

Najpierw przesledzmy działanie tego protokułu na hiperkostce � � (rysunek 1.14).Załózmy, ze wierzchołek

� � ��� �jest zródłem wiadomosci. W pierwszym takcie przeka-

zuje on ja do wierzchołka- � ����-

. Zauwazmy, ze po pierwszym takcie wiadomosc jestznana wierzchołkom o numerach mniejszych od 2 i, ze te wierzchołki tworza hiperkostkewymiaru 1. W drugim takcie wierzchołek

� � ��� �przekaze wiadomosc do wierzchoł-

ka� � � - �

, a wierzchołek-"� ����-

do � � � -)-. Po drugim takcie wiadomosc znaja

wierzchołki o numerach mniejszych od 4 i tworza one hiperkostke wymiaru 2. W trzecimtakcie

� � ��� �przekazuje wiadomosc do �

� - ���,- � � � -

do �� - ��-

,� � � - �

do� � -)- �, a � � � - - do �

� - -)-. Tak wiec po trzech taktach wszystkie wierzchołki w � �

znaja wiadomosc.

Protokół rozsyłania wiadomosci w hiperkostce � �Na poczatku wiadomosc ma wierzchołek

� ��� �.

Powtarzaj dla0�� ->?(�(?(@ �

� w0

-tym takcie kazdy wierzchołek � � � (�� 7 przekazuje wiadomosc do wierzchołka� � � (�� 7 .

Aby pokazac poprawnosc tego protokołu, pokazemy przez indukcje, ze po0-tym

takcie wiadomosc jest znana wszystkim wierzchołkom o numerach mniejszych od� (

.Przed pierwszym taktem wiadomosc jest znana wierzchołkom o numerach mniejszychod� � � -

, czyli wierzchołkowi 0. Załózmy, ze przed0-tym taktem wiadomosc jest znana

Page 29: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.14. Zbieranie informacji 29

wszystkim wierzchołkom o numerach mniejszych od� (�� 7

. Sa to dokładnie wierzchołkipostaci � � � � � ( � 7��

, gdzie� � �#�-A� (�� 7

(jezeli0 � -

to�

jest pustym ciagiem). W0-tym takcie kazdy taki wierzchołek przekaze wiadomosc do � � � (�� 7 � � � ��( - � , czyli po0-tym takcie wiadomosc beda znały wszystkie wierzchołki, które maja na � � 0 pierwszych

bitach zera, czyli wszystkie wierzchołki o numerach mniejszych od� (

.Protokół ten (po małych przeróbkach) mozna takze stosowac do grafu pełnego lub do

innego grafu, który zawiera hiperkostke.

1.14 Zbieranie informacji

Hiperkostka jest takze wygodna struktura do zbierania informacji, gdy chcemy do jed-nego wierzchołka zebrac informacje od wszystkich wierzchołków. Informacje te nalezyprzesyłac w odwrotnym kierunku niz w protkóle rozsyłania. Zakładamy, ze przesyłaneinformacje sa łaczone w pakiety i wierzchołek moze przesłac w jednym takcie cały pakietzawierajacy kilka informacji.

Protokół zbierania wiadomosci w hiperkostce � �Powtarzaj dla

0 � -��(?(?(? �� w

0-tym takcie kazdy wierzchołek postaci � � � (�� 7 - �

, gdzie� � � &-A� � ��(

przesyła swój pakiet do wierzchołka� (�� 7 � �

,

Przykład 1.43 Przesledzmy działanie tego protokułu na hiperkostce � � (rysunek 1.14).W pierwszym takcie wierzchołek

- � �przekazuje swoja wiadomosc do

��� �, wierzchołek- ��-

do��� -

, wierzchołek- - �

do� - �

, a wierzchołek- -)-

do� - -

.W drugim takcie wierzchołek

��- �przekazuje zebrane wiadomosci (swoja i te, kt.ore

otrzymał w poprzednim takcie) do�����

, a wierzchołek� -)-

do� � -

.W trzecim takcie wierzchołek

� � -przekazuje zebrane wiadomosci do

�����. a wierz-

chołek� - -

do� � -

.

1.15 Plotkowanie

Plotkowanie polega na tym, ze na poczatku kazdy wierzchołek ma jakas wiadomosc ichce ja rozesłac do wszystkich innych wierzchołków w grafie.

Znajac protokoły do zbierania i rozsyłania wiadomosci mozemy zaprojektowac proto-kół plotkowania, który najpierw zbiera wszystkie informacje do jednego wezła, a nastepnierozsyła je do wszystkich wierzchołków.

1.16 Zadania

1. Ile krawedzi ma graf pełny � � ?

2. Ile maksymalnie krawedzi moze miec graf z � wierzchołkami?

Page 30: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

30 Rozdział 1. Grafy (nieskierowane)

3. Ile jest grafów ze zbiorem wierzchołków� ->?(?(�(@ � � ?

4. Ile krawedzi ma dwudzielny graf pełny � $ � � ?5. Udowodnij, ze izomorfizm grafów jest relacja równowaznosci.

6. Narysuj wszystkie grafy ze zbiorem wierzchołków� � � 2 3 4 � . Które z nich sa

izomorficzne?

7. Narysuj mozliwie jak najwiecej nieizomorficznych grafów z czterema wierzchoł-kami

� 2 3 4 / � .8. Narysuj dwa nieizomorficzne grafy z ta sama (mozliwie jak najmniejsza) liczba

wierzchołków.

9. Narysuj dwa nieizomorficzne drzewa z ta sama (mozliwie jak najmniejsza) liczbawierzchołków.

10. Narysuj dwa nieizomorficzne grafy z ta sama (mozliwie jak najmniejsza) liczbawierzchołków i ta sama liczba krawedzi.

11. Narysuj dwa nieizomorficzne grafy, które maja ta sama liczba wierzchołków stop-nia � , dla kazdego � .

12. Zastosuj algorytm przeszukiwania grafu w głab (wszerz) do grafów z rysunków 1.1i 1.10.

13. Zkonstruuj drzewa spinajace dla grafów z rysunków 1.1 i 1.10.

14. Korzystajac z drzew spinajacych z poprzedniego zadania, znajdz zbiór cykli funda-mentalnych dla grafów.

15. Zmodyfikuj algorytm przeszukiwania grafu wszerz tak, aby wyznaczał on takzedrzewo spinajace (złozone z tych krawedzi, którymi przeszedł algorytm). Zastosujten algorytm do grafów z rysunków 1.1, 1.7 i 1.10.

16. Sprawdz, które grafy przedstawione na rysunkach w tym rozdziale posiadaja cykl(lub droge) Eulera.

17. Sprawdz, które grafy przedstawione na rysunkach w tym rozdziale posiadaja cykllub droge Hamiltona.

18. Zastosuj algorytm kolorowania z nawrotami do grafu z rysunku 1.7.

19. Znajdz graf, dla którego heurystyka przedstawiona w podrozdziale o kolorowaniugrafów nie znajduje optymalnego kolorowania.

20. Narysuj hiperkostke � � . Wskaz w niej cykl Hamiltona. Przesledz na niej protokółrozsyłania wiadomosci.

Page 31: Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md09 - Grafy... · Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku. Rozdział

1.17. Problemy 31

1.17 Problemy

Oto algorytm konstrukcji minimalnego drzewa spinajacego� � � � �� ���

dla grafu� �

����.� �: (1) zaczynamy od zbioru wszystkich krawedzi

��� � � �grafu

�, (2) sortujemy

krawedzie�

według długosci, od najdłuzszej do najkrótszej (3) dla kazdej krawedzi * �usuwamy ja z

���, jezeli jej usuniecie nie rozspójnia grafu

�.

Udowodnij poprawnosc tego algorytmu.Zastosuj powyzszy algorytm do grafu z rysunku 1.9a.

Niech� ��� � ����

bedzie dowolnym grafem z wagami krawedzi%

, a� ��� � �� � �

dowolnym minimalnym drzewem spinajacym. Pokaz, ze dla dowolnego wierzchołka�

�do� �

naleza te krawedzie wychodzacych z�

, które maja najkrótsze wagi, to znaczy,jezeli * i 5 sa dwiema krawedziami przyległymi do

�takimi, ze * "� � oraz 5 � "��� , to%�� * � / %�� 5 � .