• Nie Znaleziono Wyników

Rozdzial 09 - Grafy (nieskierowane)

N/A
N/A
Protected

Academic year: 2021

Share "Rozdzial 09 - Grafy (nieskierowane)"

Copied!
31
0
0

Pełen tekst

(1)Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku.

(2)

(3) Rozdział 1. Grafy (nieskierowane) 

(4)       !"# $&'% #)( +,- .# mówimy, z˙e ł¸aczy wierzchołki  i  , a o wierzchołkach  i  , O kraw¸edzi * 01 , jest to liczba  z˙ e s¸a ko´ncami kraw¸edzi * . Stopie´n wierzchołka , oznaczany przez / kraw¸edzi wychodz¸acych z .. Definicja 1.1 Graf (nieskierowany) jest to para składaj¸aca si¸e ze sko´nczonego zbioru wierzchołków oraz ze zbioru kraw¸edzi , gdzie kraw¸edzie to pary wierzchołków.. Graf cz¸esto przedstawiamy na rysunku jako zbiór punktów (lub kółek) poł¸aczonych odcinkami (lub łukami).. 2. Rysunek 1.1: Przykład grafu. 3. 4. / *. 5. 6. 87&9:7

(5) ;7 ze zbiorem wierzchołków  7 <  2 3 4 / * 5 6  7 =  2 3 > ? 2 / > ? 2 * ) @ 2 6  ? 3 4 > ? 4 6 > ? 4 5 > @ / 5 ) @ * 5 ) @ 5 6 A . 3. Przykład 1.2 Rysunek 1.1 przedstawia graf i zbiorem kraw¸edzi.

(6) 4. Rozdział 1. Grafy (nieskierowane). 2 i 5 wynosi 4, wierzchołki 4 i 6 s¸a stopnia 3, wierzchołki 3 , / i *   .  , b¸edzie dowolnym grafem z    kraw¸edziami. Wtedy Lemat 1.3 Niech /    ( Dowód: Je˙zeli policzymy wszystkie kraw¸edzie  wychodz¸ ace ze wierzchołków  , a z drugiej  wszystkich A poniewa˙ grafu, to z jednej strony mamy sum¸ e /    jest liczona dwa razy, raz jak liczymy kraw¸edzie wychodz¸acez ka˙z z dai kraw¸edz *  drugi raz jak liczymy kraw¸edzie wychodz¸ace z . Wniosek 1.4 Liczba wierzchołków o nieparzystych stopniach jest parzysta.   .  nazywamy podgrafem grafu    .   , je˙zeli     Graf. . oraz . Przykład 1.5 Grafy 1.5 i 1.6 s¸a podgrafami ;  przedstawione 

(7)  z rysukuna1.5rysunkach  <grafu 3 4 z rysun * 6  2 ku 1.1 . Graf zawiera sze´ s c ´ wierzchołków /. ; <  >  . )  @. . )  @. .    2 * 34 46 . i trzy kraw¸edzie    > ..    ;  2 3 4 / * 5 6  Graf z rysuku 1.6 zawiera siedem wierzchołków.    . >  ?. . >  ?. . )  @. . )  @. .   ?. .    2 3 2 / 2 * 2 6 34 / 5 . i pi¸ec´ kraw¸edzi Stopie´n wierzchołkw´ stopnia 2.. . .  . . . .  . .

(8). . . . .      . . . Graf pełny o  wierzchołkach, oznaczany przez  , jest to graf z  wierzchołkami, w którym ka˙zde dwa wierzchołki poł¸aczone s¸a kraw¸edzi¸a.  . Rysunek 1.2: a) Graf pełny  . b) Graf pełny dwudzielny  a. b. c. d. e. f a). a. b. c. d. e. f b). +  

(9)    :7 & :7   * 7   7  >7 (?((?      7 (?(?(  7     A8 . Graf jest  dwudzielny, je˙zeli zbiór jego wierzchołków mo˙zna rozbi´c na  !  #" dwie cz¸es´ci , , tak, z˙ e ka˙zda kraw¸ed´z ma kon´ ce w  $  ma zbiór wierzchołków rozbity na obu zbiorach i . Pełny graf dwudzielny &% '%  $ dwa podzbiory: i  , a kraw¸edzie ł¸acz¸a ka˙zdy  )( *%,+ .-/102/  -/ wierzchołek z z ka˙ z dym wierzchołkiem z , czyli 3 /  .. .

(10) 1.1. Izomorfizm grafów. 1.1 Izomorfizm grafów.       .     0       . 5.  

(11)     . . Izomorfizmem grafu na graf

(12) nazywamy funkcj¸e wza jemnie jednoznaczn¸a spełniaj¸ a c¸ a warunek: wtedy i tylko. wtedy, gdy . Je˙zeli taka funkcja istnieje, to mówimy, z˙ e grafy i

(13) s¸a izomorficzne. Łatwo sprawdzi´c, z˙ e izomorfizm grafów jest relacj¸a równowa˙zno´sci..    ) .  ze zbiorem  < 2 3 4 /    = 2 3 > ? 2 4 > @ 2 / > @ 3 4 .    > .

(14) , z rysunku 1.4a jest izomorficzny z grafem  . Izomorfizmem z . Graf     okre´slona nast¸epuj¸aco:  2  4 ,  3  3 ,  4 ; 2 ,  na  jest funkcja  / /.  i . Graf  zawiera Graf z rysunku 1.4b nie jest izomorficzny z grafami wierzchołek / stopnia jeden, a w grafie takiego wierzchołka nie ma. Przykład 1.6 Rysunki 1.3a i 1.3b przedstawiaj¸a ten sam graf wierzchołków oraz zbiorem kraw¸edzi. . . Rysunek 1.3: Rysunki a) i b) przedstawiaj¸a ten sam graf a. c. b. a. d. b. d. c. a). Rysunek 1.4: a) Graf. . b). izomorficzny z.  . b) Graf.  nieizomorficzny z. a. b. a. b. c. d. c. d. a). . b).   .   na graf   

(15)  , to mo˙zemy

(16). Je˙zeli mamy izomorfizm grafu powiedzie´c, z˙ e

(17) jest takim samym grafem co chołków. Twierdzenie 1.7 Je˙zeli grafy. . . tylko ze zmienionymi nazwami wierz-. =   .   i = .  s¸a izomorficzne, to:

(18). . .

(19) 6. Rozdział 1. Grafy (nieskierowane). (a). i

(20). (b). i

(21).       8 ,     8 , maj¸a tyle samo kraw¸edzi, . maj¸a tyle samo wierzchołków,. . (c) Dla ka˙zdego ,. i

(22). maj¸a tyle samo wierzchołków stopnia .. Dowód: (a) wynika bezpo´srednio z definicji.  (b) Niech b¸edzie izomorfizmem z na . Ale okre´sla tak˙ze wzajemn¸a jednoznaczno´sc´ pomi¸edzy zbiorem kraw¸edzi .  (c) Udowodnimy, z˙ e je˙zeli jest stopnia , to i jest stopnia . Wi¸ec odwzorowuje wierzchołki stopnia na wierzchołki stopnia .  Niech , ... , b¸ed¸ poł¸aczonymi kraw¸edziami z  a wszystkimi wierzchołkami z. . Wtedy , ... , s¸a wszystkimi wierzchołkami z poł¸aczonymi kraw¸edziami. . z. .      <  :@ 01  01 & "&   07 )7@      . 01. 1.2 Drogi i cykle.  > . 7 (?(?(  7 ,    7  )  ?(?((? .    7     .>7 ?((?(      7 (?(?(?  3 Przykład 1.8 W grafie z rysunku 1.1 ci¸ag * , 2 , / , 2 , , 4 , 6 jest drog¸a, a ci¸ag 2 , * , 5 , / , 2. 3 4 6 2 jest drog¸a zamkni¸et¸a, ale nie jest cyklem. jest cyklem. Ci¸ag 2 * 5 / 2   "  istnieje s´cie˙zka Graf jest spójny, je˙zeli dla ka˙zdych dwóch wierzchołków , ł¸acz¸aca i . Składowa spójno´sci to maksymalny spójny podgraf Zauwa˙zmy, z˙= e w  i  s¸agrafu. zbiorze wierzchołków grafu istnieje relacja osi¸ a galno´ s ci: w relacji je˙ z eli   lub jest osi¸agalny z . Relacja ta jest relacj¸a równowa˙zno´sci i dzieli zbiór wierzchołków  7 .

(23) .   Droga lub s´cie˙zka w grafie jest to ci¸ ag wierzchołków , taki, z˙ e ( dla ka˙zdego 0 - / 0/ )( ( )( , wierzchołki , s¸ a poł¸ a czone kraw¸ e dzi¸ a , czyli .O     drodze mówimy, z ˙ e ł¸ a czy wierzchołki i . Mówimy tak˙ z e, z ˙ e wierzcho   łek jest osi¸agalny z wierzchołka . Droga jest zamkni¸eta je˙zeli  . Droga jest prosta, je˙zeli wszystkie wyst¸ e puj¸ a ce w niej wierzchołki s¸ a ró˙ z ne. Drog¸ e    nazywamy cyklem je˙zeli ,

(24) oraz wszystkie wierzchołki s¸a ró˙zne.. grafu na składowe spójno´sci. Przykład 1.9 Graf z rysunku 1.1 jest spójny, zawiera jedn¸a składow¸a spójno´sci (cały graf). Graf z rysunku 1.5 nie jest spójny i zawiera trzy składowe spójno´sci:. 7 ze zbiorem wierzchołków  2 *  i jedn¸a kraw¸edzi¸a  2 *   3 4 6  i dwoma kraw¸edziami  3 4  i  4 6  ,  ze zbiorem wierzchołków    z jednym wierzchołkiem / i bez kraw¸edzi.     %  , to istnieje te˙z droga Lemat 1.10 Je˙ zeli istnieje droga ł¸acz¸aca wierzchołki i , prosta ł¸acz¸aca i . 

(25). .

(26).

(27). .

(28) 1.3. Drzewa. 7. Rysunek 1.5: Graf z trzema składowymi spójno´sci. 2. 3. 4. / * 6 < )  7 ?((?(? .   , b¸edzie najkrótsz¸a drog¸e ł¸acz¸ac¸a  i  . Droga Dowód: Niech     ; mieliby´smy wtedy ta jest prosta.  Przypu´ bowiem, z˙(?e(@ . ' , dla jakiego´ s 7    sc(?´ my ? (  ( .   .    ?.  (   , ł¸acz¸ac¸a i , wbrew zało˙zeniu. krótsz¸a drog¸e Dowolne dwa wierzchołki mog¸a by´c poł¸aczone dwoma drogami prostymi. 3 4 6 2 wnacyklu 3 4 oraz 2 Na przykład w cyklu rysunku 1.1, wierzchołki 2 i 4 ł¸aczy droga 2. 2 4 droga 6 . Tak, wi¸ec, je˙zeli w grafie s¸a cykle, to istniej¸a pary wierzchołkow, które s¸a poł¸aczone dwoma drogami prostymi. Ale i na odwrót.     %  które mo˙zna poł¸aczy´c Lemat 1.11 Je˙zeli w grafie istniej¸a dwa wierzchołki i , dwoma ró˙znymi drogami prostymi, to w grafie istnieje cykl.  +  >7A ?((?(@ .  + ,    7A ?((?(@ !+ , b¸ed¸a dwoma ro˙zDowód: Niech   >7  % 7 (w przeciwnymi prostymi drogami ł¸acz¸acymi i . Mo˙zemy zało˙zy´c, z˙ e  b¸edzie pierwnym przypadku mo˙zemy Niech 7   usun¸ac´ wspólny pocz¸atek obudróg).. . ? ( ? (  (.   szym wierzchołkiem po , i niech 7  ?.  ( ? (  ( .   7 , który wyst¸epuje w drodze > 7 ?((?(  ) ?((?(@ .  . Wierzchołki wyst¸epuj¸a w drodze i droga   7 (?(?(? 7    nie tworzy cykl (w drodze tej wyst¸ e puj¸ a conajmniej trzy ró˙zne 7    7 wierzchołki , oraz ). ( +. )(. +. 0. 3. %. '%. *%. %. (. % + '% +. '%. %. % *%. *%. *%. %. '%. $. '%. $. (. )(. (. %,+. Z tego lematu wynika, z˙ e graf jest acykliczny (nie ma cykli) wtedy i tylko wtedy, gdy ka˙zde dwa wierzchołki grafu mo˙zna poł¸aczy´c co najwy˙zej jedn¸a drog¸a prost¸a.. 1.3 Drzewa Definicja 1.12 Spójny i acykliczny (bez cykli) graf to drzewo. Z rozwa˙za´n z poprzedniego podrozdziału wynika: Lemat 1.13 Graf jest drzewem wtedy i tylko wtedy, gdy ka˙zde dwa jego wierzchołki mo˙zna poł¸aczy´c dokładnie jedn¸a prost¸a drog¸a..

(29) 8. Rozdział 1. Grafy (nieskierowane). Rysunek 1.6: Przykład drzewa. 2. 3. 4. / * 5. 6. Twierdzenie 1.14 Nast¸epuj¸ace trzy warunki s¸a równowa˙zne: (a) Graf. jest drzewem.. (b). jest acykliczny, ale dodanie dowolnej kraw¸edzi psuje acykliczno´sc´ ; dodana kraw¸ed´z wraz z innymi kraw¸edziami grafu tworzy cykl.. (c). jest spójny, ale usuni¸ecie dowolnej kraw¸edzi kraw¸edzi nie ma drogi ł¸acz¸acej i ..  .  .   psuje spójno´sc´; to znaczy bez.  2   3  Poniewa˙z jest drzewem, wi¸ec jest acykliczny, przypu´sc´my, z˙e dodanie ,- .# nie dodaje cyklu w grafie, ale to oznacza, z˙e w grafie nie ma drogi kraw¸edzi    ł¸acz¸acej i . W przeciwnym przypadku mieliby´smy dwie drogi proste z do : jedna,˛. Dowód:. która była w drzewie i druga˛ zło˙zona˛ tylko z dodanej kraw˛edzi, a wi˛ec na podstawie lematu 1.11 dodanie kraw¸edzi zamykałoby cykl. Mamy sprzeczno´sc´ , bo jako drzewo jest spójny. Trzeba pokaza´c, z˙ e jest spójny. Przypu´sc´ my, z˙ e nie jest, i z˙ e nie ma drogi ł¸acz¸acej wierzchołki i . Ale wtedy dodanie kraw¸edzi nie dodaje cyklu (gdyby taki cykl powstał, to po usuni¸eciu kraw¸edzi z cyklu mieliby´smy drog¸e prost¸a łacz¸ac¸a i ). jako drzewo jest spójny. Przypu´sc´ my, z˙ e odj¸ecie kraw¸edzi nie psuje spójno´sci. To znaczy, z˙ e w grafie istniały dwie drogi proste ł¸acz¸ace i , czyli na podstawie Lematu 1.11 w grafie jest cykl; sprzeczno´sc´ . Trzeba pokaza´c, z˙ e w nie ma cyklu. Gdyby w istniał cykl, to usuni¸ecie. dowolnej kraw¸edzi tego cyklu nie psuje spójno´sci; sprzeczno´sc´ ..  3   2 .    2   4 .  . ,- .#. ,- .#.  .  4   2 . . Lemat 1.15 W drzewie z  wierzchołkami mamy . -. kraw¸edzi.. Dowód: Przez indukcj¸e ze wzgl¸edu na liczb¸e wierzchołków. Je˙zeli drzewo ma jeden wierzchołek, to nie ma z˙ adnych kraw¸edzi..

(30) 1.4. Przeszukiwanie grafów. 9.   7   ?(?((? .. Załó˙zmy teraz, z˙ e twierdzenie zachodzi dla ka˙zdego drzewa maj¸acego mniej ni˙z  wierzchołków i niech drzewo ma  wierzchołków. W istnieje wierzchołek  stopnia  . Rzeczywi´scie, we´zmy drog¸e prost¸a w  o maksymalnej długo´sci . Wierzchołek jest w grafie poł¸aczony tylko z , bo inaczej mieliby´smy cykl lub dłu˙zsz¸a drog¸e prost¸a. Usu´nmy teraz z grafu wierzchołek i prowadz¸ac¸a do niego kraw¸ed´z. wierzchołków i z zało˙zenia indukcyjOtrzymany graf jest spójny i acykliczny ma . nego  kraw¸edzi, czyli w grafie było  kraw¸edzi.. / 01. )7. . . . Twierdzenie 1.16 Niech runki s¸a równowa˙zne: (a) Graf (b) (c). 3 . b¸edzie grafem z  wierzchołkami, wtedy nast¸epuj¸ace trzy wa-. jest drzewem.. . jest acykliczny i posiada  jest spójny i posiada . 2 . . . . -. -. kraw¸edzi.. kraw¸edzi.. Dowód: Na podstawie lematu 1.15 z (a) wynika (b) i (c). jest acykliczny, przypu´sc´ my, z˙ e nie jest drzewem. Wtedy na podstawie twierdzenia 1.14 mo˙zna do niego doda´c jak¸as´ kraw¸ed´z nie psuj¸ac acykliczno´sci. Je˙zeli tak powstały graf nie jest drzewem, to dodajemy kolejne kraw¸edzie, a˙z dojdziemy do acyklicznego grafu, w którym ju˙z z˙ adnej kraw¸edzi nie mo˙zna doda´c - bez dodania cyklu. Tak powstały graf jest drzewem, ma  wierzchołków i wi¸ecej ni˙z  kraw¸edzi. Doszlis´my wi¸ec do sprzeczno´sci z lematem 1.15. jest spójny, przypu´sc´ my, z˙ e nie jest drzewem. Wtedy na podstawie twierdzenia 1.14 mo˙zna z niego usun¸ac´ jak¸as´ kraw¸ed´z nie psuj¸ac spójno´sci. Je˙zeli tak powstały graf nie jest drzewem, to usuwamy kolejne kraw¸edzie, a˙z dojdziemy do spójnego grafu, z którego ju˙z z˙ adnej kraw¸edzi nie mo˙zna usun¸ac´ bez popsucia spójno´sci. Tak powstały graf jest drzewem, ma  wierzchołków i mniej ni˙z  kraw¸edzi. Doszli´smy wi¸ec do sprzeczno´sci z lematem 1.15.. .  4   2 . . Z powy˙zszego dowodu wynika, z˙ e spójny graf z  wierzchołkami nie mo˙ze mie c´ mniej ni˙z  kraw¸edzi, czyli drzewo to spójny graf z minimaln¸a liczb¸a kraw¸edzi. Podobnie, je˙zeli graf ma  wierzchołków i jest acykliczny, to nie mo˙ze mie´c wi¸ecej ni˙z  kraw¸edzi, czyli drzewa to grafy acykliczne z maksymaln¸a liczb¸a kraw¸edzi.. . . Przykład 1.17 W drzewie z rysunku 1.6 nie mo˙zna usun¸ac´ z˙adnej kraw¸edzi bez rospójnienia grafu. Nie mo˙zna te˙z doda´c z˙adnej kraw¸edzi tak, aby nie powstał cykl. W grafie z rysunku 1.1 mo˙zna usun¸ac´ kraw¸ed´z i graf nadal b¸edzie spójny. Do grafu z rysunku 1.5 mo˙zna doda´c kraw¸ed´z i nie powstanie z˙aden cykl..   2 3 2 3. 1.4 Przeszukiwanie grafów W rozdziale o strukturach danych zaprezentowano algorytmy przeszukiwania drzew w gł¸ab i wszerz. Po niewielkich modyfikacjach algorytmy te mo˙zna zastosowa´c do przeszukiwania grafów..

(31) 10. Rozdział 1. Grafy (nieskierowane). =  .  oraz wierzchołek pocz¸atkowy  . Algorytm przeszukiwania grafu w gł¸ab. Dane wej´sciowe: graf. .  odwiedzamy dzony,. i wkładamy go na STOS; zaznaczamy. . ;. jako wierzchołek odwie-.  dopóki STOS nie jest pusty, powtarzamy:. . . . je˙zeli jest wierzchołkiem na wierzchu STOSU, to sprawdzamy, czy istnieje wierzchołek , który jest poł¸aczony kraw¸edzi¸a z wierzchołkiem i nie był jeszcze odwiedzony,. . . je˙zeli takie si¸e znajdzie, to odwiedzamy , wkładamy go na wierzch STOSU i zaznaczamy jako wierzchołek odwiedzony,. . je˙zeli takiego nie ma, to zdejmujemy chołka b¸ed¸acego na STOSIE pod spodem.. . ze STOSU i cofamy si¸e do wierz-. Rysunek 1.7: Przykład grafu. 2. 3 * 5. 4 / 6. Przykład 1.18 Zastosujmy algorytm przeszukiwania w gł¸ab do grafu z rysunku 1.7. Poni˙zsza tabela pokazuje jaki wierzchołek jest odwiedzany i jaka jest zawarto´sc´ stosu po ka˙zdej kolejnej iteracji p¸etli algorytmu (przeszukanie zaczynamy od w¸ezła ). Przyj¸eto zasad¸e, z˙e je˙zeli jest kilka wierzchołków do wyboru, to wybieramy ten, którego nazwa stoi wcze´sniej w alfabecie.. 2.

(32) 1.4. Przeszukiwanie grafów Wierzchołek a b c d c g f g c b e b a. 11. STOS a ab abc abcd abc abcg abcgf abcg abc ab abe ab a. W metodzie przeszukiwania w gł¸ab po ka˙zdym kroku algorytmu wierzchołki znajduj¸ace si¸e na stosie tworz¸a drog¸e od wierzchołka wej´sciowego do wierzchołka aktualnie odwiedzanego. Udowodnimy teraz, z˙ e algorytm odwiedzi wszystkie wierzchołki osi¸agalne z wierz% chołka pocz¸atkowego . Przypu´sc´ my bowiem, z˙% e w grafie istnieje wierzchołek osi¸agalny z , ale nie odwiedzony przez algorytm. Skoro jest osi¸agalny z , to istnieje droga. . . .  '  >7A ?((?(@ .   (  odwiedzony, a  nie, to na tej drodze Poniewa˙ dwa s¸asiednie wierzchołki  oraz  z  7 był  był odwiedzony, a   7 nie. Wmamy takie, z ˙ e pewnym momencie algorytmu  wierzchołek był na stosie, a potem został z niego zdj¸ety, poniewa˙z algorytm ko n´ czy prac¸e dopiero po zdj¸eciu wszystkich stosu. Zastanówmy si¸e teraz nad  wierzchołkówzezestosu.  nie mógł by´ Ale c zdj¸ety ze krokiem algorytmu, w którym jest zdejmowany  7 , który nie był odwiedzony. stosu, poniewa˙z istnieje jego s¸asiad %. (. (. (. )(. )(. )(. )(. (. Aby udowodni´c, z˙ e algorytm zawsze si¸e zatrzyma wystarczy zauwa˙zy´c, z˙ e w ka˙zdej iteracji p¸etli albo jaki´s wierzchołek jest wkładany na stos, albo jaki´s jest zdejmowany ze stosu. Z drugiej strony ka˙zdy wierzchołek jest tylko raz wkładany na stos (bo wkładane   s¸a tylko wierzchołki nieodwiedzane). Mamy wi¸ec nie wi¸ecej ni˙z  iteracji p¸etli, a poniewa˙z w ka˙zdej p¸etli algorytm wykonuje tylko kilka kroków, wi¸ec czas działania algorytmu jest rz¸edu  ..    . 8 .   .  oraz wierzchołek pocz¸atkowy   ;   odwiedzamy , wkładamy go do KOLEJKI; zaznaczamy jako wierzchołek od-. Algorytm przeszukiwania wszerz. Dane wej´sciowe: graf. . wiedzony,.  dopóki KOLEJKA nie jest pusta, powtarzamy:. . bierzemy jeden wierzchołek z pocz¸atku KOLEJKI,.

(33) 12. Rozdział 1. Grafy (nieskierowane). . odwiedzamy wszystkie wierzchołki, które nie były jeszcze odwiedzane, a s¸a poł¸aczone kraw¸edzi¸a z wierzchołkiem , wkładamy je na koniec kolejki i zaznaczamy jako odwiedzone. Przykład 1.19 Poni˙zej przedstawiono odwiedzane wierzchołki oraz zawarto´sc´ kolejki po ka˙zdej kolejnej iteracji p¸etli algorytmu przeszukiwania wszerz dla grafu przedstawionego na rysunku 1.7 (przeszukanie zaczynamy od w¸ezła ):. 2. wierzchołki a b,c,d,e f g -. KOLEJKA a bcde cdef defg, efg, fg, g, ". W metodzie przeszukiwania wszerz wierzchołki s¸a przeszukiwane w kolejno´sci od wierzchołków b¸ed¸acych najbli˙zej wierzchołka pocz¸atkowego do wierzchołków b¸ed¸acych dalej.. 1.5 Liczenie składowych spójno´sci Algorytmu przeszukiwania grafów mo˙zna u˙zy´c do liczenia składowych spójno´sci..   .  .. Algorytm liczenia składowych spójno´sci grafu Dane wej´sciowe: graf. Dane wyj´sciowe: liczba składowych spójno´sci —  ..  lsp:=0;  Powtarzaj dopóki s¸a jeszcze nieodwiedzone wierzchołki w grafie:. . We´z jeden nieodwiedzony jeszcze wierzchołek ; lsp:=lsp+1;. . przeszukaj (za pomoc¸a algorytmu przeszukiwania grafu w gł¸ab) wszystkie wierzchołki osi¸agalne z i zaznacz je jako odwiedzone.. 1.6 Drzewa spinaj¸ace.   . -.  .   

(34)  , to dowolne drzewo. Definicja 1.20 Drzewo spinaj¸ace (rozpinaj¸ ace) grafu    spełniaj¸ace warunek (zauwa˙zmy, z˙e chołków co ).. . ma taki sam zbiór wierz-. Przykład 1.21 Drzewo z rysunku 1.6 jest drzewem spinaj¸acym dla grafu z rysunku 1.1..

(35) 1.6. Drzewa spinaj¸ace Je˙zeli graf. 13. nie jest spójny, to nie ma drzewa spinaj¸acego. Z drugiej strony.. Twierdzenie 1.22 Ka˙zdy graf spójny zawiera jako podgraf drzewo spinaj¸ace. Jako dowód przedstawimy algorytmy konstruowania drzewa spinaj¸acego. W tym celu lekko przerobimy algorytm przeszukiwania grafów w gł¸ab.. == . .    na pocz¸atku drzewo spinaj¸ace nie zawiera z˙ adnych kraw¸edzi:   odwiedzamy i wkładamy go na STOS; zaznaczamy jako wierzchołek odwie-. Algorytm konstruowania drzewa spinaj¸acego przy przeszukiwania grafu w gł¸ab.  oraz wierzchołek pocz¸atkowy ; Dane wej´sciowe: graf   Dane wyj´sciowe: drzewo spinaj¸ace .. .   . . ". . . dzony,.  dopóki STOS nie jest pusty, powtarzamy:. . . . je˙zeli jest wierzchołkiem na wierzchu STOSU, to sprawdzamy, czy istnieje wierzchołek , który jest poł¸aczony kraw¸edzi¸a z wierzchołkiem i nie był jeszcze odwiedzony,. . .  -. je˙zeli takie si¸e znajdzie, to odwiedzamy , wkładamy go na wierzch STOSU i zaznaczamy jako wierzchołek odwiedzony, kraw¸ed´z dodajemy do drzewa spinaj¸acego:. . je˙zeli takiego nie ma, to zdejmujemy chołka b¸ed¸acego pod spodem.. . ze STOSU i cofamy si¸e do wierz-. Rysunek 1.8: Drzewo spinaj¸ace dla grafu z rysunku 1.7. 2. 4 3. * 5. / 6. Przykład 1.23 Rysunek 1.8 przedstawia drzewo spinaj¸ace utworzone przez powy˙zszy algorytm dla grafu z rysunku 1.7.

(36) 14. Rozdział 1. Grafy (nieskierowane). . . Poka˙zemy teraz, z˙ e algorytm jest poprawny, czyli z˙ e tak utworzony graf jest drzewem. Zauwa˙zmy, z˙ e je˙zeli wierzchołek (poza pocz¸atkowym) jest wkładany na stos,  to do dokładana jest kraw¸ed´z ł¸acz¸aca z wierzchołkiem znajduj¸acym si¸e na stosie  pod nim. Dlatego w ka˙zdym momencie wierzchołki na stosie stanowi¸a drog¸e w , ł¸aczy ona wierzchołek pocz¸atkowy z aktualnie odwiedzanym wierzchołkiem. Poniewa˙z graf  jest spójny, to algorytm odwiedzi wszystkie wierzchołki grafu i jest grafem spój nym. Z ka˙zd¸a kraw¸edzi¸a z mo˙zemy zwi¸aza´c wierzchołek, który jest wkładany na stos w momencie  jej powstania. Poniewa˙z, ka˙zdy wierzchołek jest wkładany na stos tylko raz, mamy w  kraw¸edzi (z pocz¸atkowym wierzchołkiem nie jest zwi¸azana z˙ adna kraw¸ed´z). Tak wi¸ec jest spójny, zawiera wszystkie wierzchołki grafu i ma  kraw¸edzi, jest wi¸ec drzewem spinaj¸acym. Podobnie mo˙zna przerobi´c algorytm przeszukiwania grafu wszerz. Mówi¸ac w skrócie do drzewa nale˙za¸ te kraw¸edzie, którymi przeszedł algorytm przeszukuj¸ac graf.. . . . 1.7 Fundamentalny zbiór cykli . Niech b¸edzie spójnym grafem, a jego drzewem spinaj¸acym. Kraw¸edzie drzewa  b¸edziemy nazywali gał¸eziami, a kraw¸edzie nie nale˙za¸ ce do drzewa ci¸eciwami.  Z twierdzenia 1.14 wynika, z˙ e dodanie dowolnej ci¸eciwy do drzewa utworzy cykl.  ). Zbiór tak utworzonych cykli stanowi Oznaczmy ten cykl przez  (oczywi´scie fundamentalny zbiór cykli. Jak za chwil¸e poka˙zemy, ka˙zdy inny cykl w grafie jest ró˙znic¸a symetryczn¸a cykli fundamentalnych. W tym podrozdziale cykle b¸edziemy traktowa c´ jako zbiory kraw¸edzi.. *. *. 57  2 3 5   .  3 5 2  *  * * 5 7 5 5   2 3 4 / 2   *.  3 4  5 < *7  2 4 5 5  5 A!. 4 /  *  3465 3. Przykład 1.24 Rozpatrzmy graf z rysunku 1.7 i jego drzewo spinaj¸ace z rysunku 1.8.  , , , W tym przypadku gał¸eziami s¸a kraw¸edzie:  , , , a ci¸ e ciwami kraw¸ e dzie ,   ,  , . Fundamentalny zbiór cykli zawiera cykle:      ,  , . , 

(37) , . 5 '2    4 6   5  3 5   * 7, / 5 7 * 5 ! 2 3 4?2  * 57 5  .  5 6  *  23*2. edzi grafu nazywamy pseudocyklem, je˙zeli ka˙zdy wierzchołek grafu  Zbiór  jestkraw¸ parzystego stopnia. Przykładami pseudocykli s¸a cykle i zbiór pusty.. 7 <. 7. Lemat 1.25 Ró˙znica symetryczna dowolnej liczby pseudocykli jest pseudocyklem. . Dowód: Wystarczy pokaza´c, z˙ e ró˙znica symetryczna dwóch pseudocykli ,  jest pseudocyklem. Dla dowolnego wierzchołka zbiór kraw¸edzi przyległych  jest ró˙znic¸a symetryczn¸a kraw¸edzi przyległych do  do w w iw .A poniewa˙z s¸a to zbiory parzystej mocy, wi¸ec ich ró˙znica symetryczna te˙z jest parzystej mocy. Rzeczywi´scie dla dowolnych dwóch zbiorów  i  mamy. . 7. . . >  . . .   . !. .         #  . 7. !. . . (.

(38) 1.7. Fundamentalny zbiór cykli We´zmy teraz dowolny cykl (lub pseudocykl). .  .  . grafu. (. 15. i utwórzmy róznic¸e. Jest to ró˙znica symetryczna cykli fundamentalnych utworzonych z ci¸eciw wchodz¸acych do . Poka˙zemy, z˙ e. . W tym celu rozwa˙zmy zbiór.  .  . (. .  . .  . (.  . . *. Na podstawie lematu 1.25, zbiór ten jest pseudocyklem. Z drugiej strony nie zawie ra z˙ adnych ci¸eciw, poniewa˙z ka˙zda ci¸eciwa albo nie nale˙zy do z˙ adnego składnika tej ró˙znicy, je˙zeli  , albo nale˙zy do dokładnie dwóch: do i do  . Zatem zbiór   bo inaczej musiałby zawiera´c wierzchołki stopnia jest podzbiorem drzewa , i jest pusty, jeden, co jest sprzeczne z faktem, z˙ e jest pseudocyklem. Zatem. *. .  . .  . (. Udowodnili´smy zatem nast¸epuj¸ace: Twierdzenie 1.26 Ka˙zdy cykl (pseudocykl) jest ró˙znic¸a pewnej liczby cykli fundamentalnych..  * 7 *  5 A< 2 4 / 2 jest ró˙znic¸a  * 7, * 5 = * 7, 5 7 5  ' * 5 7 5 5 ;      7 > A  2 4 6 5 3 * 2 jest ró˙znic¸a symetryczn¸a cykli   ,  i 

(39) . Cykl * 5 5 * 5 * Rzeczywi´scie  * 7 5  5 * A 5 *   = * 7 5 7 5   * 5 A 5 A 5   * A 5 7 5 ;    

(40) ( . Przykład 1.27 (Kontynuacja przykładu 1.24) Cykl symetryczn¸a cykli   i   . Rzeczywi´scie . . . . . . . . . . . . . . . Lemat  1.28 Je˙zeli graf jest spójny oraz posiada  wierzchołków i   cykli fundamentalnych. . . . Dowód: Wynika, to z faktu, z˙ e drzewo spinaj¸ace ma . 7. -. kraw¸edzi, to ma. kraw¸edzi. Je˙zeli graf nie jest  spójny, to ka˙zd¸a składow¸a spójno´sci mo˙zemy traktow´c osobno. ( ( Niech , , ... ( , b¸ed¸a składowymi spójno´sci grafu i niech składowa ( ma(  (  wierzchołków i  kraw¸ e( dzi. ka˙zdej składowej mamy drzewo spinaj¸ace z  ( - Dla kraw¸edziami oraz   cykli fundamentalnych. Niech zbiór cykli fundamentalnych całego grafu b¸edzie sum¸a cykli fundamentalnych składowych. Ka˙zdy cykl w grafie nale˙zy. . .

(41) 16. Rozdział 1. Grafy (nieskierowane). w cało´sci do jednej składowej spójno´sci, bo sam jest spójny, i mo˙ze by´c przedstawiony jako ró˙znica symetryczna cykli fundamentalnych. W całym grafie mamy wi¸ec  . (. 7   (. ( . . ,   -. . . . .   . cykli fundamentalnych. Udowodnili´smy wi¸ec nast¸epuj¸ace.     cykli fundamentalnych, Twierdzenie 1.29 W dowolnym grafie mamy  gdzie  jest liczb¸a wierzchołków,  liczb¸a kraw¸edzi, a  liczb¸a składowych spójno´sci. Aby przekona´c si¸e, czy graf graf nie ma cykli.. ma cykl wystarczy policzy´c .   i je˙zeli   . 1.8 Minimalne drzewo spinaj¸ace.   

(42) . *. . , to. * . %. Wyobra´zmy sobie, z˙ e ka˙zda kraw¸ed´z w grafie ma długo´sc´ . Na przykład, wierzchołki grafu s¸a miejscowo´sciami i długo´sc´ kraw¸edzi jest odległo´sci¸a miejscowo´sci. Chcemy teraz skonstruowa´c minimalne drzewo spinaj¸ace, czyli drzewo spinaj¸ace   z minimaln¸a sum¸a długo´sci kraw¸edzi.   . . .  *  (. . % .   .  z funkcj¸a wagi   . = .  . Dane wyj´sciowe: minimalne drzewo spinaj¸ace    Posortuj kraw¸edzie grafu według długo´sci, od najkrótszej do najdłu˙zszej.  Dla ka˙zdej kraw¸edzi *  wstaw j¸a do . pod warunkiem, z˙e nie tworzy ona cyklu z kraw¸edziami, które ju˙z s¸a w Algorytm budowy minimalnego drzewa spinaj¸acego %. Dane wej´sciowe: graf . . . ". . . Przykład 1.30 Po zastosowaniu powy˙zszego algorytmu do grafu z rysunku 1.9a otrzymamy drzewo przedstawione na rysunku 1.9b . Najpierw poka˙zemy, z˙ e tak utworzony graf jest drzewem spinaj¸acym. Po ka˙zdej  iteracji p¸etli, graf nie zawiera cyklu, wi¸ec na kon´ cu te˙z jest acykliczny. Przypu´sc´ my,  z˙ e po zako´nczeniu algorytmu nie jest spójny.  Istniej¸a wi¸ec w dwa wierzchołki i

(43) ,.

(44) które s¸a poł¸aczone w drog¸a (bo jest spójny), ale które nie s¸a ( ( . poł¸aczone w  . Na drodze tej s¸a wi¸ec dwa s¸asiednie wierzchołki i , które nie s¸a ( (  poł¸aczone w drog¸a. Ale wtedy dodanie kraw˛edzi( ( do drzewa nie tworzy w  nim cyklu i algorytm powinien doda´c kraw¸ed´z do , sprzeczno´sc´ ..  7((?( .   7   7. . 7.

(45) 1.9. Cykle i drogi Eulera. 17. Rysunek 1.9: a) Graf z wagami, b) Jego minimalne drzewo spinaj¸ace 16. a. 6. 13. a. b 7. 6. 13. 9. c. 8. d 8. 11. 10. 19. e. e. f. f. a). . 7. c. d. 11. b.  

(46) :. b). . spinaj¸acym. Przypu´sc´ my, z˙ e nie Poka˙zemy teraz, z˙ e jest minimalnym  b¸edzie drzewem  jest minimalne. Niech takim minimalnym drzewem, które ma z najwi¸eksz¸a liczb¸e wspólnych kraw¸edzi. Niech b¸edzie kraw¸edzi¸a z minimaln¸a wag¸a,  która nale˙zy do , ale nie nale˙zy do . Je˙zeli dodamy do to otrzymamy cykl. Niech  b¸edzie kraw¸edzi¸a w tym cyklu, która nale˙zy do , ale nie nale˙zy do . Niech  b¸edzie drzewem, powstaje z po zamianie na .  powstaje przez   które usuni¸ecie z grafu . Jest to graf spójny z  kraw¸edziami, czyli drzewo. % % Je˙zeli , to drzewo  byłoby drzewem z mniejsz¸a od wag¸a, wbrew mi% % nimalno´sci . Je˙zeli , to drzewo  byłoby minimalnym drzewem a %  z% wi¸eksz¸  od liczb¸a wspólnych z kraw¸edzi, znowu sprzeczno´sc´ . Mamy wi¸ec .  Je˙zeli dodamy teraz kraw¸ed´z do , to otrzymamy cykl (to mo˙ze by´c inny cykl     ). W tym% cyklu istnieje kraw¸ed´z  , która nale˙zy do , ale nie ni˙z ten w % do . Przypu´sc´ my, z˙ e   . W takim przypadku algorytm powinien wstawi´c kraw¸ed´z do drzewa , bo w momencie rozpatrywania w drzewie nie ma jeszcze    i wstawienie nie zamyka cyklu. Wynika, to z faktu, z˙ e graf  jest  drzewem, wi¸ e c kraw¸ e d´ z nie tworzy cyklu z kraw¸ e dziami z . Mamy wi¸ ec  % %  co jest sprzeczne z faktem, z˙ e była najl˙zejsz¸a kraw¸edzi¸a z i  / % nienale˙za¸c¸a do .. 5.   .   5  *   5  *  *   5  5  .  *   5   *  5 5  *   5   *  5. *. *. 5 *. . *. *.  * . 5 . 5  

(47)     *   * 5  *. 1.9 Cykle i drogi Eulera Droga Eulera to droga, która przechodzi przez ka˙zd¸a kraw¸ed´z grafu dokładnie jeden raz. Cykl Eulera to taka droga zamkni¸eta, w której ka˙zda kraw¸ed´z grafu wyst¸epuje dokładnie raz. Euler w 18. wieku pokazał, z˙ e istnieje do´sc´ prosta charakteryzacja grafów z drog¸a lub cyklem Eulera. Mianowicie spójny graf posiada cykl Eulera, wtedy i tylko wtedy gdy ka˙zdy jego wierzchołek jest parzystego stopnia, a posiada drog¸e Eulera je˙zeli co najwy˙zej.

(48) 18. Rozdział 1. Grafy (nieskierowane). dwa jego wierzchołki s¸a stopnia nieparzystego. Pami¸etamy, wniosek 1.4, z˙ e w ka˙zdym grafie liczba wierzchołków nieparzystego stopnia jest parzysta. Tak wi¸ec graf z drog¸a Eulera ma dwa lub zero wierzchołków nieparzystego stopnia.. 4 3 2 * 5 4 6 2 / 5 6. Przykład 1.31 Graf na rysunku 1.1 ma dwa wierzchołki nieparzystego stopnia posiada drog¸e Eulera .. 4 i6. i. Wyobra´zmy sobie, z˙ e idziemy wzdłu˙z kraw¸edzi grafu, i po przej´sciu ka˙zdej kraw¸edzi usuwamy j¸a z grafu. Przechodz¸ac przez jaki´s wierzchołek usuwamy dwie kraw¸edzie, t¸a, któr¸a weszli´smy do wierzchołka, i t¸a, któr¸a go opu´scili´smy. Dlatego, je˙zeli po doj´sciu do jakiego´s wierzchołka, nie ma ju˙z kraw¸edzi z niego odchod´za¸cych, to albo doszli´smy do wierzchołka pocz¸atkowego, albo do wierzchołka nieparzystego stopnia. Z tego wynika, z˙ e je˙zeli w grafie istnieje droga Eulera, to mog¸a w nim by´c co najwy˙zej dwa wierzchołki nieparzystego stopnia, pocz¸atek i koniec drogi, a je˙zeli droga Eulera jest zamkni¸eta i stanowi cykl Eulera, to wszystkie wierzchołki w grafie s¸a parzystego stopnia. Poka˙zemy teraz, z˙ e s¸a to tak˙ze warunki wystarczaj¸ace. Zaczniemy od cyklu Eulera. Twierdzenie 1.32 Spójny graf posiada cykl Eulera wtedy i tylko wtedy, gdy ka˙zdy jego wierzchołek jest parzystego stopnia. Dowód: Konieczno´sc´ warunku udowodnili´smy wy˙zej. Teraz poka˙zemy, z˙ e jest to warunek wystarczaj¸acy. Załó˙zmy, z˙ e ka˙zdy wierzchołek jest parzystego stopnia. Niech b¸edzie najdłu˙zsz¸a pod wzgl¸edem liczby kraw¸edzi drog¸a w grafie bez powtarzania kraw¸edzi. Z rozwa˙za´n zrobionych wy˙zej wynika, z˙ e jest to droga zamkni¸eta. Przypu´sc´ my, z˙ e droga ta nie zawiera jeszcze wszystkich kraw¸edzi grafu. Poniewa˙z graf jest spójny, wi¸e c´ istnieje wierzchołek na tej drodze, od którego odchodzi kraw¸ed´z nie nale˙za¸ ca do . Mo˙zemy teraz utworzy´c dłu˙zsz¸a drog¸e bez powtarzania kraw¸edzi: zawiera ona i potem idzie. wzdłu˙z . Jest to sprzeczne z zało˙zeniem, z˙ e była najdłu˙zsz¸a drog¸a.. . *. *. Twierdzenie 1.33 Spójny graf posiada drog¸e Eulera wtedy i tylko wtedy, gdy posiada co najwy˙zej dwa wierzchołki nieparzystego stopnia. Dowód: Konieczno´sc´ warunku pokazano wy˙zej. Teraz poka˙zemy, z˙ e jest to warunek wystarczaj¸acy. Poniewa˙z graf nie mo˙ze posiada´c tylko jednego wierzchołka stopnia nieparzystego, to wystarczy rozwa˙zy´c graf z dwoma wierzchołkami i nieparzystego stopnia. Dodajmy do grafu nowy wierzchołek i poł¸aczmy go kraw¸edziami z i . Teraz ka˙zdy wierzchołek jest stopnia parzystego i posiada cykl Eulera. Po usuni¸eciu z niego nowych kraw¸edzi i wierzchołka otrzymamy drog¸e Eulera w pierwotnym grafie..  .  . Powy˙zszy dowód, chocia˙z krótki, ma t¸e wad¸e, z˙ e nie daje dobrego algorytmu znajdowania drogi Eulera. Nie sposób przegl¸ad¸ac´ wszystkich mo˙zliwych dróg, bo jest ich bardzo du˙zo. Poni˙zej poka˙zemy dwa znacznie szybkie algorytmy znajdowania cyklu Eulera. Algorytm wyszukiwania cyklu Eulera Dane wej´sciowe: spójny graf ze wszystkimi wierzchołkami parzystego stopnia.  Zaczynamy od dowolnego wierzchołka  .. .

(49) 1.9. Cykle i drogi Eulera. 19.  Powtarzamy, a˙z do wyczerpania kraw¸edzi: Je˙zeli z bierz¸acego wierzchołka algorytmu.. . . nie odchodzi z˙ adna kraw¸ed´z, to koniec. Je˙zeli z bierz¸acego wierzchołka odchodzi tylko jedna kraw¸ed´z, to przechodzimy wzdłu˙z tej kraw¸edzi do nast¸epnego wierzchołka, usuwamy t¸a kraw¸ed´z i wierzchołek z grafu.. . . Je˙zeli z odchodzi wi¸ecej ni˙z jedna kraw¸ed´z, to wybieramy t¸a kraw¸ed´z, której usuni¸ecie nie rozspójnia grafu; przechodzimy wzdłu˙z tej kraw¸edzi do nast¸epnego wierzchołka, usuwamy t¸a kraw¸ed´z z grafu.. Rysunek 1.10: Przykład grafu z cyklem Eulera. 2. 3. 4. / *. 0. 5. 6 2. Przykład 1.34 W grafie z rysunku 1.10 wszystkie wierzchołki s¸a parzystego stopnia. Przes´led´zmy, jak działa powy˙zszy algorytm. Zaczynamy od wierzchołka i przyjmijmy, z˙e w razie wyboru algorytm wybierze kraw¸ed´z do wierzchołka z wcze´sniejsz¸a (według alfabetu) liter¸a. Tak wi¸ec przejdzie do potem do i do . Rysunek 1.11 przedstawia nasz graf po tych trzech krokach, usuni¸eciu odwiedzanych kraw¸edzi i wierzchołka (z którego nie odchodz¸a ju˙z z˙adne kraw¸edzie). poniewa˙z usuni¸ecie tej kraw¸edzi rozTeraz algorytm nie mo˙ze wybra´c kraw¸edzi spójni graf. Zamiast tego algorytm powinien wybra´c kraw¸ed´z i przej´sc´ do wierzchołka , a potem do . Teraz znowu 0 nie powinien i´sc´ do tylko do , a potem ju˙z bez problemów do ko´nca cyklu Eulera: , , , , , .. 3. 2. /. / 2 . 5. *. 4. . 3 5 6 / 2. 6. 4. / * . Poka˙zemy teraz poprawno´sc´ tego algorytmu. Przypu´sc´ my, z˙ e po kilku krokach jeste´smy w wierzchołku , z którego odchodzi kilka kraw¸edzi. Poka˙zemy, z˙ e w´sród tych kraw¸edzi co najwy˙zej jedna jest zła (jej usuni¸ecie mo˙ze rozspójni´c graf). Z przebiegu algorytmu wynika, z˙ e graf w aktualnej postaci (po usuni¸eciu by´c mo˙ze jaki´s kraw¸edzi lub wierzchołków)  jest nadal spójny i co najwy˙  zej dwa wierzchołki w nim s¸a nieparzystego stopnia i (co zachodzi je˙zeli ). Wi¸ec posiada on drog¸e Eulera. Id´zmy.  .  % .

(50) 20. Rozdział 1. Grafy (nieskierowane). Rysunek 1.11: Graf po przej´sciu trzech kraw¸edzi. 2. 3. / * . . 0. 5. 6 . . .  t¸a drog¸a zaczynaj¸ac od . Droga ta kon´ czy si¸e w lub i przechodzi kilka razy przez ´ cz¸a w i by´c mo˙ze ko´ncowy odci. Mamy wi¸ec kilka p¸etli, które zaczynaj¸ a si¸ e i ko n  nek zaczynaj¸acy si¸e w i ko´ncz¸acy w . Otó˙z tylko pierwsza kraw¸ed´z tego ostatniego odcinka mo˙ze rozspójnia´c graf. Wszystkie inne kraw¸edzie wychodz¸ace z s¸a cz¸es´ciami cykli. Aby udowodni´c, z˙ e algorytm dobrze działa, trzeba pokaza´c, z˙ e wszystkie kraw¸edzie grafu b¸ed¸a odwiedzone. Po ka˙zdej iteracji algorytmu graf jest spójny, wi¸ec je˙zeli z wierzchołka nie odchodz¸a z˙ adne kraw¸edzie, to znaczy, z˙ e nie ma ju˙z z˙ adnych kraw¸edzi w grafie. Powy˙zszy algorytm mimo, z˙ e prosty i szybki wymaga sprawdzania, czy usuni¸ecie kraw¸edzi nie rozspójni grafu.. . . . . Drugi algorytm wyznaczania cyklu Eulera. Dane wej´sciowe: spójny graf, w którym wszystkie wierzchołki s¸a parzystego stopnia. Pomocniczy STOS. Dane wyj´sciowe: CE — cykl Eulera.. .  Zaczynamy od dowolnego wierzchołka  i wkładamy go na STOS,  Nat¸epnie powtarzamy dopóki STOS nie jest pusty. . b¸edzie wierzchołkiem z wierzchu STOSU  je˙zeli z odchodz¸a jakie´s nieodwiedzane kraw¸edzie, to wybieramy jedn¸a z. Niech. nich, przechodzimy na jej drugi koniec, zaznaczamy jako odwiedzon¸a i jej drugi koniec wkładamy na STOS..  Je˙zeli wszystkie kraw¸edzie odchodz¸ace z były ju˙z odwiedzone, to zdejmu jemy ze STOSU, przekładamy na wyj´scie CE oraz przechodzimy do wierzchołka  znajduj¸acego si¸e pod na STOSIE..

(51) 1.10. Drogi i cykle Hamiltona. 21. Przykład 1.35 Prze´sled´zmy działanie algorytmu na przykładzie z rysunku 1.10. Poni˙zsza tabela zawiera: odwiedzany wierzchołek, stan STOSU oraz stan pliku wyj´sciowego CE po ka˙zdym kroku z pierwszych szesnastu kroków. Krok 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16. wierzchołek a b c d a d e f g d g f h b i f. STOS a ab abc abcd abcda abcd abcde abcdef abcdefg abcdefgd abcdefg abcdef abcdefh abcdefhb abcdefhbi abcdefhbif. CE a a a a a ad adg adg adg adg adg. Po szesnastu krokach wszystkie kraw¸edzie zostały odwiedzone i teraz STOS krok po kroku zostanie przeło˙zony na wyj´scie CE. Otrzymamy nast¸epuj¸acy cykl Eulera:. 2 / 6 5 3 5 */ 4 3 2 ( 0. Z algorytmu wynika, z˙ e kolejne wierzchołki na obu stosach s¸a poł¸aczone kraw¸edziami i z˙ e ka˙zda kraw¸ed´z (jako para s¸asiednich wierzchołków) pojawia si¸e na STOSIE tylko raz. Nale˙zy wi¸ec tylko pokaza´c, z˙ e wszystkie kraw¸edzie znajd¸a sie na wyj´sciu. Je˙zeli pomini¸eto jakie´s kraw¸edzie, to poniewa˙z graf jest spójny jaka´s nieodwiedzona kraw¸ed´z musi przylega´c do wierzchołka , który jest w wynikowym cyklu, ale jest przekładany na wyj´scie tylko tedy, gdy nie odchodz¸a od niego ju˙z z˙ adne nieodwiedzane kraw¸edzie. W ka˙zdej iteracji algoryt przechodzi jak¸as´ kraw¸ed´z. Albo wkładaj¸ac jej koniec na STOS, albo przekładaj¸ac j¸a na wyj´scie CE. A poniewa˙z ka˙zda kraw¸ed´z jest odwiedzana dokładnie dwa razy, raz jak jest wkładana na STOS i drugi raz jak jest przekładana na CE, wi¸ec czas działania algorytmu jest proporcjonalny do liczby kraw¸edzi w grafie.. . . 1.10 Drogi i cykle Hamiltona Droga Hamiltona to taka droga w grafie, która przechodzi dokładnie raz przez ka˙zdy wierzchołek grafu. Cykl Hamiltona to zamkni¸eta droga Hamiltona.. / 2 3 4 6 5 *. Przykład 1.36 Graf z rysunku 1.1 posiada drog¸e Hamiltona , ale nie posiada cyklu Hamiltona. Ka˙zdy graf pełny  z 

(52) posiada cykl Hamiltona..

(53) 22. Rozdział 1. Grafy (nieskierowane). Inaczej ni˙z dla cyklu lub drogi Eulera nie jest znane z˙ adne proste kryterium rozstrzygania, czy dany graf posiada drog¸e lub cykl Hamiltona. Nie jest tak˙ze znany z˙ aden algorytm wyszukiwania drogi lub cyklu Hamiltona działaj¸acy w czasie wielomianowym. Naiwnym sposobem szukania drogi Hamiltona jest sprawdzanie wszystkich mo˙zliwych dróg w grafie, ale algorytm ten jest bardzo czasochłonny, bo mamy około  mo˙zliwych dróg w grafie z  wierzchołkami. Innym algorytmem szukania drogi Hamiltona jest tak zwane wyszukiwanie z nawrotami. Mówi¸ac w skrócie szukanie z nawrotami idzie pierwsz¸a mo˙zliw¸a s´cie˙zk¸a tak daleko jak to tylko mo˙zliwe okładaj¸ac kolejne odwiedzane w¸ezły na stos. W momencie, gdy algorytrm utknie w s´lepej uliczce, to cofa si¸e o jeden krok i próbuje innej drogi. Załó˙zmy, z˙ e wierzchołki grafu s¸a uporz¸ adkowane na przykład według alfabetu lub s¸a kolejnymi liczbami naturalnymi .  =  (?((@ . Algorytm z nawrotami wyszukiwania drogi Hamiltona.   .  oraz wierzchołek pocz¸atkowy  " .  Dane wyj´sciowe: droga Hamiltona zaczynaj¸aca si¸e od , lub informacja, z˙ e takiej drogi Dane wej´sciowe: graf. nie ma.. .  włó˙z na STOS.  powtarzaj a˙z do skutku:. . . je˙zeli jest wierzchołkiem na wierzchu STOSU, to szukamy wierzchołka o najni˙zszym mo˙zliwie numerze poł¸aczonego z kraw¸edzi¸a i nie wyst¸epuj¸acy % na STOSIE. Je˙zeli w poprzedniej iteracji zdj¸eto ze STOSU wierzchołek , to powinien by´c wi¸ekszy od . %. %. Je˙zeli takie znajdziemy, to wkładamy je na STOS. Je˙zeli wierzchołki na STOSIE tworz¸a ju˙z drog¸e Hamiltona, to koniec algorytmu. Je˙zeli takiego. %. nie znajdziemy, to zdejmujemy. . ze STOSU.. Przykład 1.37 Prze´sled´zmy działanie algorytmu na przykładzie grafu z rysunku 1.1. Poni˙zsza tabela zawiera: odwiedzany wierzchołek, oraz stan STOSU po ka˙zdym kolejnym kroku (szukanie rozpoczynamy od wierzchołka ).. /.

(54) 1.11. Kolorowanie grafów Krok 1 2 3 4 5 6 7 8 9 10 11 12 13. wierzchołek d a b c f e f g f c g f e. 23. STOS d da dab dabc dabcf dabcfe dabcf dabcfg dabcf dabc dabcg dabcgf dacgfe. Powy˙zszy algorytm mimo, z˙ e szybszy od naiwnego algorytmu sprawdzania wszystkich dróg, ma wykładnicz¸a zło˙zono´sc´ czasow¸a.. 1.11 Kolorowanie grafów Chodzi o takie pokolorowanie wierzchołków grafu, z˙ eby wierzchołki poł¸aczone kraw¸edzi¸a były pokolorowane innymi kolorami i z˙ eby liczba kolorów była jak najmniejsza.. 4 0 ; % 4 0 1.  > ?((?(@ .   

(55)  ,- .#  . 4  . Definicja 1.38 Pokolorowanie grafu kolorami jest to funkcja , taka z˙e je˙zeli . Najmniejsze takie , z˙e graf mo˙zna pokolorowa´c kolorami nazywamy liczb¸a chromatyczn¸a grafu i oznaczamy przez . W przypadku kolorowania grafów, podobnie jak dla dróg Hamiltona, nie s¸a znane dobre i szybkie algorytmy. Naiwny algorytm sprawdzaj¸acy wszystkie mo˙zliwe kolorowania działa zbyt długo. Tak˙ze tu mamy algorytm z nawrotami.. == . . Algorytm z nawrotami kolorowania wierzchołków grafu Dane wej´sciowe: graf oraz liczba naturalna . Dane wyj´sciowe: pokolorowanie wierzchołków grafu za pomoc¸a kolorów lub informacja, z˙ e takiego pokolorowania nie ma.    dla ka˙zdego podstaw ( oznacza, z˙ e nie ma jeszcze koloru).  włó˙z pierwszy wierzchołek na STOS,.  > ?((?(@ . .  .  powtarzaj a˙z do skutku:. 4 01   4 0   4 0 . . 4  . je˙zeli jest wierzchołkiem na wierzchu STOSU, to próbujemy przypisa´c mu kolor, wi¸ekszy od bie˙za¸ cego koloru , który nie koliduje z kolorami wierzchołków znajduj¸acych si¸e na STOSIE. Je˙zeli to si¸e uda, to wkładamy kolejny wierzcho łek na stos. Je˙zeli si¸e nie uda, to zdejmujemy ze stosu i podstawiamy .. . 4  :  .

(56) 24. Rozdział 1. Grafy (nieskierowane). W tym algorytmie próbujemy kolejnym wierzchołkom przypisa´c pierwszy z rz¸edu kolor i pokolorowane wierzchołki umieszczamy na stosie. Jak zabrniemy w s´lep¸a uliczk¸e, to cofamy si¸e do poprzedniego wierzchołka na stosie i próbujemy nast¸epnego koloru..   . Przykład 1.39 Zastosujmy powy˙ zwszy algorytm do grafu z rysunku 1.12, aby znale´ zc´ -   kolorowanie trzema kolorami

(57) . Najpierw ka˙zdy wierzchołek dostaje kolor , co oznacza, z˙e nie jest jeszcze pokolorowany. Rysunek 1.12: Przykład grafu. 2. 5 * 2 34/ *. 3. 4 /. 2. Zaczynamy od wierzchołka . W pierwszych pi¸eciu krokach algorytm pokoloruje wierzchołki , , , i w nast¸epuj¸acy sposób: u c(u). a 1. b 2. c 1. d 2. e 3. f 0.  2 3 4 )/ * 5 ( Teraz algorytm nie mo˙ze pokolorowa´c wierzchołka 5 , bo jest on poł¸aczony z 2 , / , * , które s¸a pokolorowane kolorami 1, 2, 3. Dlatego 5 jest zdj¸ete ze stosu:  2 3 4 />* ( Teraz zdejmujemy    . wierzchołek * , bo nie mo˙zna mu przypisa´c wy˙zszego koloru, i podstawiamy 4 *   234/ (  

(58) , a nast¸epnie kolorujemy 4  *    i wkładamy 5 na Teraz zmieniamy kolor / na 4 / a na stosie mamy wierzchołki. . . . . . stos.. u c(u). a 1. b 2. c 1. d 3. e 2. f 0.  2 3 4 )/ * 5 ( W tym momencie pokolorowanie 5 nie jest mo˙zliwe, wi¸ec zdejmujemy go ze stosu  2 3 4 />* ( . .

(59) 1.11. Kolorowanie grafów. 25. *.  234/ (  Wierzchołek / ma w tym momencie najwy˙zszy kolor 4 /. Wierzchołek te˙z nie mo˙ze by´c pokolorowany wy˙zszym kolorem, wi¸ec te˙z go zdejmujemy. .

(60) , wi˛ec zmiana koloru nie jest mo˙zliwa i zdejmujemy go ze stosu. Mamy teraz nast¸epuj¸ace kolorowanie u c(u). a 1. i stos. b 2. d 0. e 0. f 0.  234( . 4 4  4   4 *   4  5  . c 1. Teraz zmieniamy kolor na

(61) , a nast¸epnie ju˙z bez nawrotów kolorujemy  , ,

(62) . Ostateczne kolorowanie wygl¸ada tak: u c(u). a 1. b 2. c 3.   ,. d 1. e 2. 4  /  . f 3. . -.    Je˙zeli zastosujemy powy˙zszy algorytm do pokolorowania grafu pełnego kolorami, to wypróbuje on wszystkie  kolorowan´  dla pierwszych  wierzchołków.  Pesymistyczny czas działania algorytmu jest wi¸ec . Problem kolorowania grafów jest trywialny, je˙zeli mamy tylko jeden kolor . Jednym kolorem mo˙zna pokolorowa´c tylko grafy bez kraw¸edzi. Proste jest te˙z kolorowanie grafów dwoma kolorami. Grafy, które mo˙zna pokolorowa c´ dwoma kolorami, to grafy dwudzielne. Grafu nie mo˙zna pokolorowa´c dwoma kolorami, je˙zeli zawiera cykl nieparzystej długo´sci. Poni˙zej poka˙zemy, z˙ e i na odwrót: je˙zeli graf nie ma cyklu nieparzystej długo´sci, to mo˙zna go pokolorowa´c dwoma kolorami. Poni˙zej przedstawiamy algorytm kolorowania grafów dwoma kolorami. Dla prostoty zakładamy, z˙ e kolorowane grafy s¸a spójne. Algorytm mo˙zna łatwo przerobi c´ tak, aby kolorował wszystkie grafy..  . . . =  .  .. Algorytm kolorowania grafu dwoma kolorami Dane wej´sciowe: spójny graf.     1. Dane  wyj´ sciowe: pokolorowanie wierzchołków grafu za pomoc¸a dwóch kolorów -  lub informacja, z˙ e takiego pokolorowania nie ma.. .  we´z pierwszy wierzchołek , pokoloruj go pierwszym kolorem. 4    . -. 4. ..  powtarzaj a˙z do skutku: We´z wszystkie wierzchołki, które s¸a poł¸aczone kraw¸edzi¸a z jakim´s wierzchołkiem pokolorowanym w poprzedniej iteracji i nie maj¸a jeszcze koloru.. Je˙zeli w´sród nich z˙ adne dwa nie s¸a poł¸aczone kraw¸edzi¸a, to pokoloruj je jednym kolorem (innym ni˙z wierzchołki kolorowane w poprzedniej iteracji). Je˙zeli w´sród nich s¸a dwa poł¸aczone kraw¸edzi¸a, to pokolorowanie dwoma kolorami nie jest mo˙zliwe..

(63) 26. Rozdział 1. Grafy (nieskierowane).  . (. Kolorowanie otrzymywane w tym algorytmie jest prawidłowe. Niech oznacza 0  ( wierzchołki kolorowane w -tej iteracji, . Wierzchołki z s¸ a kolorowane na 0 pierwszy kolor, je˙zeli jest parzyste, i na drugi kolor, je˙ z eli jest nieparzyste. Zauwa˙ z my, ( z˙ e dowolny wierzchołek mo˙ze by´c poł¸aczony kraw¸edzi¸a tylko z wierzchołka( ( ( mi ze zbiorów i . zawiera wszystkie wierzchołki, które s¸a poł¸aczone z ( ( i nie miały koloru po pokolorowaniu , tak wi¸ ec z˙ aden ze zbiorów wierzchołkami z + 3  0  ( z nie zawiera wierzchołków poł¸aczonych z . % ( z˙ e je˙zeli dwa % wierzchołki i % nale˙za do + *,% to istniej¸ a drogi  *% (  Zauwa˙zmy, (  '% + + oraz takie, z ˙ e . Niech %  + , b¸edzie ostatnim wspólnym wierzchołkiem na obu drogach. Poniewa˙z zbiory  s¸ a rozł¸a*czne, to wspólne wierzchołki musz¸a mie´c te same indeksy. Droga %  % jest drog¸a z parzyst¸a liczb¸a kraw¸edzi. Dlatego, je˙zeli i s¸a poł¸aczone kraw¸edzi¸a, to w grafie mamy cykl nieparzystej długo´sci i pokolorowanie dwoma kolorami nie jest mo˙zliwe. Z powy˙zszych rozwa˙za´n wynika. 7.   7, ?((?(? .  . = 7. . 7.  7 ?(?((? . . 1 ?(?((?.    .  . - (?(?(?  .  . Lemat 1.40 Graf jest dwudzielny (mo˙ze by´c pokolorowany dwoma kolorami) wtedy i tylko wtedy, gdy nie zawiera cykli nieparzystej długo´sci. Wniosek 1.41 Ka˙zde drzewo mo˙zna pokolorowa´c dwoma kolorami. Nie jest znany algorytm koloruj¸acy grafy trzema kolorami (lub dowoln¸a wi¸eksz¸a liczb¸a kolorów) działaj¸acy w czasie wielomianowym. Poniewa˙z nie s¸a znane szybkie algorytmy kolorowania grafów stosuje si¸e heurystyki, czyli algorytmy niedokładne. Na przykład nast¸epuj¸aca heurystyka Heurystyka kolorowania grafu.  Posortuj wierzchołki grafu według ich stopni.  Dla ka˙zdego wierzchołka po kolei przypisz mu najni˙zszy mo˙zliwy kolor. W wielu przypadkach heurystyka ta da optymalne rozwi¸azanie, na przykład dla grafu z rysunku 1.12.. 1.12 Hiperkostka. 7. Hiperkostka

(64) wymiaru 1 jest przedstawiona na rysunku 1.13a. Składa si¸e ona z dwóch  wierzchołków 0 i 1 poł¸aczonych kraw¸edzi¸a. Hiperkostk¸e

(65) wymiaru 2 (rysunek 1.13b) budujemy z dwóch kostek

(66) . W pierwszej kostce numerujemy wierzchołki przez 00 i 01 (dopisujemy 0 na pocz¸atek nazwy ka˙zdego wierzchołka). W drugiej kostce numerujemy wierzchołki przez 10 i 11 (dopisujemy 1 na pocz¸atek). Nast¸epnie ł¸aczymy kraw¸edziami odpowiadaj¸ace sobie wierzchołki z obu kopii 00 z 10 i 01 z 11.    Podobnie budujemy hiperkostk¸e

(67) wymiaru z dwóch kostek

(68) . W pierwszej kostce numerujemy wierzchołki dopisuj¸ac 0 na pocz¸atku nazwy ka˙zdego wierzchołka. W drugiej kostce numerujemy wierzchołki dopisuj¸ac 1 na pocz¸atek. Nast¸epnie ł¸aczymy. 7. 7.

(69) 1.13. Rozgłaszanie wiadomo´sci. Rysunek 1.13: a) Hiperkostka

(70). 7 , b) Hiperkostka. 1. 01. 11. 0. 00. 10. a).

(71). 27 . b).  # A 7   .   = #     7. .   kraw¸edziami odpowiadaj¸ace- sobie wierzchołki z obu kopii, czyli wierzchołek jest  poł¸aczony z wierzchołkiem z dego . Rysunek 1.14 przedstawia. , dla ka˙   hiperkostk¸e

(72) .   W rezultacie hiperkostka to graf

(73) , gdzie zawiera wszystkie ci¸agi bitów długo´sci , a dwa wierzchołki , s¸a poł¸aczone kraw¸edzi¸a wtedy i tylko wtedy, gdy ró˙zni¸a si¸e dokładnie jednym bitem.   Jak łatwo wida´c w kostkach

(74) i

(75) s¸a cykle Hamiltona (w

(76) jest droga Hamiltona). Ogólniej mamy     Lemat  1.42 Ka˙zda hiperkostka

(77) zawiera drog¸e Hamiltona. zaczynaj¸ac¸a si¸e w wierz-  chołku i ko´ncz¸ac¸a w wierzchołku .. 7. 77. 7 7. # . -.     

(78) Dowód przez indukcj¸ e ze wzgl¸edu na wymiar kostki. zawiera drog¸ e Hamiltona  -    

(79) Załó˙zmy, z˙ e

(80)   zawiera drog¸ e Hamiltona z do . składa si¸e z dwóch      . W pierszej hiperkostce (tej  z hiperkostek

(81) . Droga w

(82) zaczyna si¸e w punkcie  -  - -  0 na pocz¸atku ka˙zdego wierzchołka) przechodzi do , potem kraw¸edzi¸a do   i w - drugiej hiperkostce (tej z 1 na pocz¸atku ka˙zdego wierzchołka) w odwrotnym kierunku  do ..  Cykl Hamiltona w

(83) tworzy tak zwany kod Graya. Jest to ci¸ag wszyskich elementowych ci¸agów bitów, ka˙zdy wyst¸epuje raz, ka˙zde dwa kolejne ró˙zni¸a si¸e jednym bitem oraz ostatni ciag ˛ ró˙zni si˛e jednym bitem od pierwszego.. 7. 1.13 Rozgłaszanie wiadomo´sci.   . . Graf mo˙ze przedstawia´c sie´c poł¸acze´n. Wierzchołki s¸a agentami, a kraw¸edzie to ł¸acza, którymi agenci mog¸a si¸e komunikowa´c. Wyobra´zmy sobie, z˙ e jeden agent posiada jak¸as´ wiadomo´sc´ , któr¸a chce przekaza´c wszystkim innym agentom w sieci. Reguły s¸a nast¸epuj¸ace. Komunikacja odbywa si¸e synchronicznie w taktach. W ka˙zdym takcie ka˙zdy agent mo˙ze przekaza´c wiadomo´sc´ jednemu swojemu s¸asiadowi. Powy˙zszy problem nazywa si¸e problemem rozgłaszania. Poni˙z ej poka˙zemy, z˙ e mo˙zna go bardzo efektywnie rozwi¸aza´c, je˙zeli graf jest hiperkostk¸a

(84) . B¸edziemy traktowa´c ci¸ag bitów jako przedstawienie dwójkowe liczby naturalnej..

(85) 28. Rozdział 1. Grafy (nieskierowane). Rysunek 1.14: Hiperkostka

(86)  . . -. -). -   -. -)- -. -. -)-.  . . -.  . . . . . Najpierw prze´sled´zmy działanie tego protokułu na hiperkostce

(87) (rysunek 1.14).   Załó˙zmy, z˙ e wierzchołek jest z ˙ ródłem wiadomo´ s ci. W pierwszym takcie przekazuje on j¸a do wierzchołka . Zauwa˙zmy, z˙ e po pierwszym takcie wiadomo´sc´ jest znana wierzchołkom o numerach mniejszych od 2 i, z˙ e te wierzchołki tworz¸a hiperkostk¸e    wymiaru 1. W drugim takcie wierzchołek przeka˙ze wiadomo´sc´ do wierzchoł  -   -)ka , a wierzchołek do

(88) . Po drugim takcie wiadomo´sc´ znaj¸a wierzchołki o numerach mniejszych od 4 i tworz¸a- one hiperkostk¸ e wymiaru 2. W trzecim       - -   -  ´ takcie-)-  przekazuje wiadomo´ s c do , do , do  - - -),a

(89) do . Tak wi¸ec po trzech taktach wszystkie wierzchołki w

(90) znaj¸a wiadomo´sc´ .  Protokół rozsyłania wiadomo´sci w hiperkostce 

(91)   Na pocz¸atku wiadomo´sc´ ma wierzchołek . 0 Powtarzaj dla (   w 0 -tym ( takcie ka˙zdy wierzchołek przekazuje wiadomo´sc´ do wierzchołka   .. . . . . . . ". .  > ?((?(@ 7. . . . . . . . . . 7. 0. ( Aby pokaza´c poprawno´sc´ tego protokołu, poka˙zemy przez indukcje, z˙ e po -tym  takcie wiadomo´sc´ jest znana wszystkim wierzchołkom o numerach mniejszych od .  pierwszym Przed taktem wiadomo´sc´ jest znana wierzchołkom o numerach mniejszych  0 od , czyli wierzchołkowi 0. Załó˙zmy, z˙ e przed -tym taktem wiadomo´sc´ jest znana. .

(92) 1.14. Zbieranie informacji. 7.  # A 7. 29. 7. (    (  ( wszystkim wierzchołkom o numerach mniejszych od . S¸a to dokładnie wierzchołki   0 ( pustym  (ci¸agiem). W postaci , gdzie (je˙ z eli to. 0  jest   ´ -tym takcie ka˙ z dy taki wierzchołek przeka˙ z e wiadomo´ s c do , czyli po. 0 0 -tym takcie wiadomo´sc´ b¸ed¸a znały wszystkie wierzchołki, które maj¸ a( na pierwszych bitach zera, czyli wszystkie wierzchołki o numerach mniejszych od . Protokół ten (po małych przeróbkach) mo˙zna tak˙ze stosowa´c do grafu pełnego lub do innego grafu, który zawiera hiperkostk¸e.. . . . 7. . 1.14 Zbieranie informacji Hiperkostka jest tak˙ze wygodn¸a struktur¸a do zbierania informacji, gdy chcemy do jednego wierzchołka zebra´c informacje od wszystkich wierzchołków. Informacje te nale˙zy przesył¸ac´ w odwrotnym kierunku ni˙z w protkóle rozsyłania. Zakładamy, z˙ e przesyłane informacje s¸a ł¸aczone w pakiety i wierzchołek mo˙ze przesła´c w jednym takcie cały pakiet zawieraj¸acy kilka informacji.  Protokół zbierania wiadomo´sci w hiperkostce

(93) Powtarzaj dla. 0.   (?(?(? -. 7.  w 0 -tym takcie ka˙zdy wierzchołek postaci (.   przesyła swój pakiet do wierzchołka ,.  . (. 7 -. , gdzie.  A   . &-. (. . 1.14). Przykład 1.43 Prze´sled´zmy działanie tego protokułu na hiperkostce

(94)  (rysunek -    W pierwszym takcie wierzchołek przekazuje swoj a ˛ wiadomo´ s c ´ do , wierzchołek -  - -   -  - -) - do , wierzchołek do , a wierzchołek do . -  W drugim takcie wierzchołek  przekazuje zebrane wiadomo´ sci (swoja˛ i te, kt.ore  -)  otrzymał w poprzednim takcie) do , a wierzchołek do .    W trzecim takcie wierzchołek przekazuje zebrane wiadomo´sci do . a wierz -   chołek do .. 1.15 Plotkowanie Plotkowanie polega na tym, z˙ e na pocz¸atku ka˙zdy wierzchołek ma jak¸as´ wiadomo´sc´ i chce j¸a rozesła´c do wszystkich innych wierzchołków w grafie. Znaj¸ac protokoły do zbierania i rozsyłania wiadomo´sci mo˙zemy zaprojektowa´c protokół plotkowania, który najpierw zbiera wszystkie informacje do jednego w¸ezła, a nast¸epnie rozsyła je do wszystkich wierzchołków.. 1.16 Zadania 1. Ile kraw˛edzi ma graf pełny   ? 2. Ile maksymalnie kraw˛edzi mo˙ze mie´c graf z  wierzchołkami?.

(95) 30. Rozdział 1. Grafy (nieskierowane) 3. Ile jest grafów ze zbiorem wierzchołków.  > ?(?((@  ? -. . . 4. Ile kraw˛edzi ma dwudzielny graf pełny  $  ?.    2 3 4  . Które z nich s¸a. 5. Udowodnij, z˙ e izomorfizm grafów jest relacj¸a równowa˙zno´sci. 6. Narysuj wszystkie grafy ze zbiorem wierzchołków izomorficzne?. 2 3 4 / . 7. Narysuj mo˙zliwie jak najwi¸ecej nieizomorficznych grafów z czterema wierzchołkami . 8. Narysuj dwa nieizomorficzne grafy z t¸a sam¸a (mo˙zliwie jak najmniejsz¸a) liczb¸a wierzchołków. 9. Narysuj dwa nieizomorficzne drzewa z t¸a sam¸a (mo˙zliwie jak najmniejsz¸a) liczb¸a wierzchołków. 10. Narysuj dwa nieizomorficzne grafy z t¸a sam¸a (mo˙zliwie jak najmniejsz¸a) liczb¸a wierzchołków i t¸a sam¸a liczb¸a kraw¸edzi. 11. Narysuj dwa nieizomorficzne grafy, które maj¸a t¸a sam¸a liczb¸a wierzchołków stopnia , dla ka˙zdego . 12. Zastosuj algorytm przeszukiwania grafu w gł¸ab (wszerz) do grafów z rysunków 1.1 i 1.10. 13. Zkonstruuj drzewa spinaj¸ace dla grafów z rysunków 1.1 i 1.10. 14. Korzystaj¸ac z drzew spinaj¸acych z poprzedniego zadania, znajd´z zbiór cykli fundamentalnych dla grafów. 15. Zmodyfikuj algorytm przeszukiwania grafu wszerz tak, aby wyznaczał on tak˙ze drzewo spinaj¸ace (zło˙zone z tych kraw¸edzi, którymi przeszedł algorytm). Zastosuj ten algorytm do grafów z rysunków 1.1, 1.7 i 1.10. 16. Sprawd´z, które grafy przedstawione na rysunkach w tym rozdziale posiadaj¸a cykl (lub drog¸e) Eulera. 17. Sprawd´z, które grafy przedstawione na rysunkach w tym rozdziale posiadaj¸a cykl lub drog¸e Hamiltona. 18. Zastosuj algorytm kolorowania z nawrotami do grafu z rysunku 1.7. 19. Znajd´z graf, dla którego heurystyka przedstawiona w podrozdziale o kolorowaniu grafów nie znajduje optymalnego kolorowania.. . 20. Narysuj hiperkostk¸e

(96) . Wska˙z w niej cykl Hamiltona. Prze´sled´z na niej protokół rozsyłania wiadomo´sci..

(97) 1.17. Problemy. 1.17 Problemy.  . . 31.   

(98)   . . . . Oto algorytm konstrukcji minimalnego drzewa spinaj¸acego dla grafu  : (1) zaczynamy od zbioru wszystkich kraw¸edzi grafu , (2) sortujemy kraw¸edzie według długo´sci, od najdłu˙zszej do najkrótszej (3) dla ka˙zdej kraw¸edzi   usuwamy j¸a z , je˙zeli jej usuni¸ecie nie rozspójnia grafu . Udowodnij poprawno´sc´ tego algorytmu. Zastosuj powy˙zszy algorytm do grafu z rysunku 1.9a..  

(99) . %. . *.  

(100)   5 " . b¸edzie dowolnym grafem z wagami kraw¸edzi , a Niech dowolnym minimalnym drzewem spinaj¸acym. Poka˙z, z˙ e dla dowolnego wierzchołka  do nale˙za¸ te kraw¸edzie wychodz¸acych z , które maja najkrótsze wagi, to znaczy,   je˙ z eli i s¸ a dwiema kraw¸ e dziami przyległymi do takimi, z ˙ e oraz  , to % / % ..   *  * 5  5 . . . * ".

(101)

Cytaty

Powiązane dokumenty

Asymptotyczna teoria testowania hipotez: graniczne rozk lady statystyk testowych, asympto- tyczna efektywno´s´c test´ow,

b) pierwsz¡ kart¡ nie byªa dama, a drug¡ byªa karta koloru tre, c) obie karty byªy tego samego koloru... Zad 3. Rzucamy po kolei trzy

Graf prosty, w którym istnieje otwarta ´scie· zka bez powtarzaj ¾ acych si ¾ e wierzcho÷ ków zawieraj ¾ aca wszystkie wierz- cho÷ ki i wszystkie kraw¾ edzie grafu

Graf dwudzielny to taki, którego wierzchołki da si e podzielić na dwa zbiory A i B takie, że , pomi edzy dwoma wierzchołkami z tego samego zbioru nie ma kraw , edzi.. Jeśli graf G

Grafem (grafem prostym, grafem niezorientowanym) nazywamy par¸e (V, E) gdzie V jest pewnym zbiorem zwanym zbiorem wierzcho lk´ow, natomiast E jest zbiorem pewnych par

Grafem zorientowanym (grafem skierowanym) nazywamy par¸e (V, E) gdzie V jest pewnym zbiorem zwanym zbiorem wierzchoÃlk´ow, natomiast E jest zbiorem pewnych par

Spo´sr´ od 30, kt´ orzy nie chodzili na zaj¸ecia 19 my´sla lo, ˙ze zaliczy a 2 spo´sr´ od tych co nie chodzili na zaj¸ecia faktycznie zaliczy lo Matematyk¸e Dyskretn¸ a.. Ilu by

Zbi´or warto´sci przyjmowanych przez zmienn¸a losow¸a typu skokowego mo˙ze by´c