22 Matematyka Dyskretna (Grafy)

background image

Matematyka Dyskretna

Andrzej Szepietowski

25 czerwca 2002 roku

background image
background image

Rozdział 1

Grafy skierowane

W tym rozdziale zajmiemy si¸e algorytmami wyszukiwania najkrótszej drogi w grafach
skierowanych. Ka˙zdej kraw¸edzi przypiszemy długo´s´c (wag¸e) i algorytmy b¸ed¸a szuka´c
drogi, dla której suma długo´sci kraw¸edzi jest najmniejsza.

1.1

Grafy skierowane

Definicja 1.1 Graf skierowany (zorientowany) to dowolna para

, ze sko´nczo-

nym zbiorem wierzchołków

i zbiorem kraw¸edzi

.

Rysunek 1.1: Graf skierowany

W grafie skierowanym kraw¸ed´z

jest skierowana od wierzchołka

do wierz-

chołka

. Wierzchołek

nazywamy pocz¸atkiem kraw¸edzi, a wierzchołek

ko ´ncem. Na

rysunkach kraw¸edzie skierowane b¸edziemy przedstawia ´c jako strzałki. Droga w grafie
skierowanym jest to ci¸ag wierzchołków

!"$#%#$#&'

, taki, ˙ze dla ka˙zdego

(

*),+

(

+.-

,

wierzchołki

/01!

,

"/

s¸a poł¸aczone kraw¸edzi¸a, czyli

2/01!" "/3546

. Drog¸e

78 !9%#$#%#$ '

nazywamy cyklem je˙zeli

":;'

, oraz wszystkie wierzchołki

8!"$#$#%#& '

s¸a ró˙zne. Na

przykład ci¸ag wierzchołków

jest cyklem w grafie z rysunku 1.1. Dla grafów

skierowanych dopuszczamy cykl zło˙zony z dwóch wierzchołków, na przykład ci¸ag

stanowi cykl w grafie z rysunku 1.1. Kraw¸ed´z typu

2< 1

, w której pocz¸atek i koniec

pokrywaj¸a si¸e, nazywamy p¸etl¸a. Mo˙zna przyj¸a´c, ˙ze p¸etla jest cyklem długo´sci jeden.

3

background image

4

Rozdział 1. Grafy skierowane

Definicja 1.2 Graf skierowany jest (silnie) spójny, je˙zeli dla ka˙zdych dwóch jego wierz-
chołków

i

istnieje droga z

do

.

Przykład 1.3 Graf z rysunku 1.1 nie jest spójny, bo nie ma w nim drogi z

do

.

1.2

Najkrótsze drogi w grafie

Przypu´s´cmy teraz, ˙ze ka˙zdej kraw¸edzi

przypisano długo´s´c (wag¸e)

. Dopuszczamy

przy tym ujemne długo´sci. Dla ka˙zdej drogi w grafie

7%#$#$#%

zdefiniujmy jej długo´s´c jako sum¸e długo´sci kraw¸edzi, czyli

/!

2"/01!" "/3

#

Je˙zeli

, droga składa si¸e z pojedynczego punktu, to przyjmujemy, ˙ze jej długo´s´c wy-

nosi 0. W tym rozdziale interesuj¸a nas algorytmy wyznaczania najkrótszej drogi ł¸acz¸acej
dwa wierzchołki

i

w grafie.

Przykład 1.4 Jako przykład zastosowania algorytmu wyszukiwania najkrótszej drogi w
grafie rozpatrzmy sie´c poł¸acze´n, czyli graf, w którym kraw¸edzie reprezentuj¸a ł¸acza pomi¸edzy
w¸ezłami. Z ka˙zd¸a kraw¸edzi¸a

zwi¸azane jest prawdopodobie´nstwo

, ˙ze kraw¸ed´z za-

działa bez awarii. Zakładamy, ˙ze awarie poszczególnych kraw¸edzi s¸a od siebie niezale˙zne.
Przyjmijmy teraz długo´s´c kraw¸edzi

jako

. Najkrótsza droga jest wtedy

drog¸a z najmniejszym prawdopodobie´nstwem awarii.

Łatwo zauwa˙zy´c, ˙ze je˙zeli w grafie s¸a cykle o ujemnej długo´sci, to dla pewnych par

wierzchołków nie istnieje najkrótsza droga mi¸edzy nimi. Powtarzaj¸ac przej´scie wzdłu˙z
cyklu mo˙zna wtedy otrzymywa´c drogi o długo´sci dowolnie małej. Dlatego w dalszej
cz¸e´sci b¸edziemy zakłada´c, ˙ze w grafie wszystkie cykle s¸a dodatniej długo´sci.

Problem znajdowania najkrótszej drogi w grafie nieskierowanym, je˙zeli wszystkie

kraw¸edzie maj¸a dodatnie długo´sci, mo˙zna sprowadzi´c do przypadku grafu skierowane-
go. Wystarczy ka˙zd¸a kraw¸ed´z

<

zast¸api´c przez dwie kraw¸edzie

2<

i

. Je˙zeli

w grafie s¸a kraw¸edzie o ujemnych długo´sciach, to sposób ten prowadzi do powstania cykli
ujemnej długo´sci.

Opisane tu algorytmy składaj¸a si¸e z dwóch etapów. W pierwszym etapie wyznaczamy

długo´sci najkrótszych dróg z

do wszystkich wierzchołków w grafie. A dopiero w drugim

etapie wyznaczymy najkrótsz¸a drog¸e z

do

.

Najpierw opiszemy drugi etap, czyli jak znale´z´c najkrótsz¸a drog¸e z

do

, je˙zeli znane

s¸a odległo´sci z

do wszystkich wierzchołków grafu. Algorytm ten b¸edziemy opisywa ´c

przy pomocy przykładu grafu z rysunku 1.2.

Dla prostoty algorytmu przyjmujemy

2<

,

, je˙zeli

4

. Załó˙zmy, ˙ze

macierz

zawiera odległo´sci od

do wszystkich pozostałych wierzchołków grafu.

background image

1.3. Algorytm Forda-Bellmana

5

Rysunek 1.2: Graf z długo´sciami kraw¸edzi

)

)

v

s

a

b

c

d

t

0

1

0

-1

1

2

zawiera odległo´s´c

od

, czyli długo´s´c najkrótszej drogi z

do

. Przyjmujemy

przy tym, ˙ze

oraz

, je˙zeli nie ma ˙zadnej drogi z

do

. Najkrótsz¸a

drog¸e od

do

wyznaczamy teraz od ko ´nca. Najpierw szukamy przedostatniego wierz-

chołka tej drogi, pó´zniej trzeciego od ko ´nca i tak dalej. Przedostatni wierzchołek

naj-

krótszej drogi spełnia równo´s´c

2

#

W naszym przykładzie tylko wierzchołek

spełnia t¸a równo´s´c. Zauwa˙zmy, ˙ze isnieje

droga długo´sci

z

do

. Je˙zeli przedłu˙zymy t¸e drog¸e o kraw¸ed´z

, to otrzymamy

drog¸e z

do

długo´sci

,

, czyli najkrótsz¸a drog¸e z

do

. Jest te˙z

jasne, ˙ze taki wierzchołek

istnieje. Jest to przedostatni wierzchołek dowolnej najkrótszej

drogi z

do

. Trzeci od ko ´nca wierzchołek

spełnia równo´s´c

2<

W naszym przykładzie jest to

i tak dalej, a˙z odtworzymy cał¸a drog¸e

.

Algorytm ten musi zako ´nczy´c prac¸e, poniewa˙z kolejne wierzchołki odsłanianej drogi s¸a
ró˙zne. Inaczej mieliby´smy cykl, co nie jest mo˙zliwe, je˙zeli w grafie wszystkie cykle s¸a
dodatniej długo´sci.

1.3

Algorytm Forda-Bellmana

W tym podrozdziale opiszemy pierwszy z algorytmów obliczania warto´sci macierzy

.

Mówi¸ac z grubsza polega on na przyj¸eciu najpierw pewnych górnych oszacowa ´n na war-
to´sci

i poprawianiu ich potem. Je˙zeli na jakim´s etapie pracy algorytmu mamy war-

to´s´c

, to znaczy, ˙ze znaleziono ju˙z drog¸e od

do

długo´sci

. Je˙zeli pó´zniej algo-

rytm znajdzie krótsz¸a drog¸e, to warto´s´c

zostanie poprawiona. Znajdowanie krotszej

drogi polega na szukaniu wierzchołka

spełniaj¸acego warunek

3#

background image

6

Rozdział 1. Grafy skierowane

Algorytm [Forda-Bellmana]

Dane wej´sciowe: Graf skierowany

, długo´sci kraw¸edzi

.

Dane wyj´sciowe: Macierz

odległo´sci z

do wszystkich wierzchołków.

dla ka˙zdego

4

podstaw

;

dla ka˙zdego

-

od 1 do

zrób:

dla ka˙zdego

zrób:

dla ka˙zdego

4

zrób:

(

2<

Algorytm Forda-Bellmana najpierw podstawia

. Jest to pierwsze

przybli˙zenie. Potem w

rundach, dla ka˙zdego wierzchołka

4

algorytm sprawdza,

czy istnieje wierzchołek

, który wyznacza krótsz¸a drog¸e do

.

Przykład 1.5 Algorytm Forda-Bellmana zastosowany do grafu z rysunku 1.2 działa w
nast¸epuj¸acy sposób: Na pocz¸atku macierz

przedstawia si¸e nast¸epuj¸aco:

v

s

a

b

c

d

t

0

2

2

1

W pierwszej iteracji zewn¸etrznej p¸etli, dla

-

)

, algorytm dla ka˙zdego wierzchołka

sprawdza, czy istnieje wierzchołek

, przez który wiedzie krótsza droga do

. I

tak dla

, stwierdza,

6

)

. Oznacza, to, ˙ze

droga z

do

a potem kraw¸edzi¸a do

jest krótsza od dotychczasowego oszacowania

.

Dlatego algorytm podstawia 3 na

. Dla

warto´s´c

,

nie zmienia si¸e

poniewa˙z droga przez

)5

nie jest krótsza od dotychczasowego

oszacowania. Dla

algorytm znajduje krótsz¸a drog¸e przez

;

)

)

i zmienia

na

)

. Dla

:

warto´s´c macierzy

nie jest

korygowana, a dla

algorytm odnajduje drog¸e przez

,

5

)

i posyła

. Tak wi¸ec po pierwszej iteracji p¸etli macierz

ma nast¸epuj¸ace

warto´sci:

v

s

a

b

c

d

t

0

3

2

-1

1

4

W drugiej iteracji dla

-

tylko warto´s´c

zostaje poprawiona, gdy˙z

)

)

. Nowa warto´s´c

. Pozostałe warto´sci nie zmieniaj¸a si¸e i

po drugiej iteracji macierz

wygl¸ada tak

v

s

a

b

c

d

t

0

3

0

-1

1

4

W trzeciej iteracji p¸etli dla

-

algorytm najpierw znajduje krótsz¸a drog¸e do

(przez

)

i poprawia

)

, a potem znajduje krótsz¸a drog¸e do

(przez

) i poprawia

.

Po trzeciej iteracji macierz

wygl¸ada tak

v

s

a

b

c

d

t

0

1

0

-1

1

2

background image

1.4. Dodatnie długo´sci, algorytm Dijsktry

7

Jest to ostateczna posta´c macierzy, gdy˙z w czwartej iteracji jej warto´sci nie s¸a ju˙z popra-
wione.

Aby udowodni´c, ˙ze algorytm działa poprawnie poka˙zemy przez indukcj¸e, ˙ze po

(

-tej ite-

racji zewn¸etrznej p¸etli

zawiera długo´s´c najkrótszej drogi z

do

zawieraj¸acej co

najwy˙zej

(

)

kraw¸edzi. Przed pierwsz¸a iteracj¸a

zawiera długo´s´c drogi zło˙zonej z

jednej lub zero kraw¸edzi. Załó˙zmy, ˙ze po

(

iteracjach

zawiera długo´s´c najkrótszej drogi

z

(

)

lub mniej kraw¸edziami.

Przypu´s´cmy, ˙ze

%#$#$#%

!

jest najkrótsz¸a spo´sród dróg z

do

z

(

lub mniej kraw¸edziami. Droga

$#%#$#$

!

jest najkrótsz¸a drog¸a do

!

z

(

)

lub mniej kraw¸edziami. Gdyby istniała krótsza droga

do

!

z co najwy˙zej

(

)

kraw¸edziami, to mieliby´smy krótsz¸a drog¸e do

z co najwy˙zej

(

kraw¸edziami; sprzeczno´s´c. Czyli długo´s´c drogi

%#$#$#$

!

jest równa

!

po

(

tej iteracji. Dlatego po

(

)

iteracji

b¸edzie zawiera´c długo´s´c najkrótszej drogi

do

z

(

kraw¸edziami.

Po zako´nczeniu pracy algorytmu

zawiera długo´s´c najkrótszej drogi z

do

,

poniewa˙z, je˙zeli w grafie wszystkie cykle s¸a dodatniej długo´sci, to w minimalnej drodze

˙zaden wierzchołek nie powtarza si¸e i droga nie zawiera wi¸ecej ni˙z

)

kraw¸edzi.

Algorytm zawiera trzy p¸etle zagnie˙zd˙zone jedna w drug¸a. Zewn¸etrzna p¸etla wykonuje

si¸e

razy. Dla ka˙zdego

-

wewn¸etrzna p¸etla wykonuje si¸e

)

razy, raz dla ka˙zdego

4

, a dla ka˙zdego

mamy

wykona ´n najbardziej wewn¸etrznej p¸etli, czyli czas

działania algorytmu mo˙zna oszacowa´c przez

$

)9

+

, gdzie

i

to

stałe. Tak wi¸ec zło˙zono´s´c czasowa algorytmu wynosi

.

1.4

Dodatnie długo´sci, algorytm Dijsktry

W tym podrozdziale podamy algorytm znajdowania odległo´sci od ´zródła do wszystkich
wierzchołków grafu dla przypadku, gdy długo´sci wszystkich kraw¸edzi s¸a dodatnie.

Algorytm Dijkstry

Dane wej´sciowe: Graf skierowany

, dodatnie długo´sci kraw¸edzi

.

Dane wyj´sciowe: Macierz

odległo´sci z

do wszystkich wierzchołków.

dla ka˙zdego

4

podstaw

;

dopóki

powtarzaj:

wybierz wierzchołek

4

taki, ˙ze

4

;

dla ka˙zdego

4

podstaw

3

2<

background image

8

Rozdział 1. Grafy skierowane

Podobnie jak w poprzednim algorytmie na pocz¸atku macierz

zawiera długo´s´c

kraw¸edzi

1

, a je˙zeli takiej kraw¸edzi nie ma, to

. Zbiór

zawiera wierz-

chołki, dla których nie jest jeszcze wyliczona dokładna odległo´s´c od

. Poni˙zej poka˙ze-

my, ˙ze dla

4

,

zawiera długo´s´c najkrótszej spo´sród dróg, której przedostatni

wierzchołek nale˙zy do

. Nast¸epnie w ka˙zdej iteracji zewn¸etrznej p¸etli bierzemy

wierzchołek

4

, który le˙zy najbli˙zej od

. Jak si¸e za chwile oka˙ze ten wierzchołek ma

ju˙z prawidłow¸a warto´s´c

i dlatego jest on usuwany z

. Teraz korygujemy warto´sci

dla pozostałych wierzchołków z

uwzgl¸edniaj¸ac drogi, w których wierzchołek

jest przedostatni.

Przykład 1.6 Rysunek 1.3 przedstawia graf z dodatnimi długo´sciami kraw¸edzi. Poni˙z-
sza tabela ilustruje działanie algorytmu Dijkstry. Pokazuje jak w kolejnych iteracjach
zewn¸etrznej p¸etli wybrano wierzchołek

oraz jak przedstawiaj¸a si¸e zbiór

i macierz

.

iteracja

0

0

1

5

1

0

1

2

4

2

0

1

2

3

6

3

0

1

2

3

4

6

4

0

1

2

3

4

5

5

0

1

2

3

4

5

Rysunek 1.3: Graf z dodatnimi długo´sciami kraw¸edzi

)

)

)

)

)

)

Aby udowodni´c poprawno´s´c tego algorytmu, poka˙zemy przez indukcj¸e, ˙ze po ka˙zdej ite-
racji p¸etli mamy

(a) dla ka˙zdego wierzchołka

4

,

zawiera ostateczn¸a długo´s´c minimalnej

drogi z

do

.

(b) dla ka˙zdego wierzchołka

4

,

zawiera długo´s´c minimalnej spo´sród wszyst-

kich dróg z

do

, w których przedostatni wierzchołek nale˙zy do

Przed pierwsz¸a p¸etl¸a tylko

4

, a dla ka˙zdego innego wierzchołka

4

,

. Warunki (a) i (b) s¸a wi¸ec spełnione, Poniewa˙z w najkrótszej drodze do

nie ma p¸etli, wi¸ec drogi, w których

jest przedostatni składaj¸a si¸e tylko z jednej kraw¸edzi.

background image

1.5. Najkrótsza droga w grafach acyklicznych

9

W kolejnej iteracji wybieramy wierzchołek

4

, dla którego

jest najmniejsza. Po-

ka˙zemy, ˙ze warto´s´c

jest ju˙z ostateczna, czyli jest równa długo´sci najkrótszej spo´sród

wszystkich dróg z

do

. Przypu´s´cmy, ˙ze istnieje krótsza droga i niech

b¸edzie takim

wierzchołkiem, ˙ze droga z

do

zawiera tylko wierzchołki z

i wierzchołek przed

nie nale˙zy do

. Mamy

, bo inaczej mieliby´smy sprzeczno´s´c z zało˙zeniem induk-

cyjnym, ˙ze

zawiera długo´s´c najkrótszej spo´sród dróg, z których przedostatni wierz-

chołek nie jest z

. Zauwa˙zmy, ˙ze droga z

do

ma długo´s´c równ¸a aktualnej warto´sci

. Z drugiej strony poniewa˙z długo´sci s¸a nieujemne mamy

+

sprzeczno´s´c z zasad¸a wyboru

.

Dlatego

mo˙ze by´c usuni¸ety z

. Nast¸epnie algorytm sprawdza dla ka˙zdego

4

,

czy istnieje jaka´s droga z

do

, w której wierzchołek

jest przedostani i która jest krót-

sza od aktualnej warto´sci

. Zauwa˙zmy, ˙ze dotychczasowa warto´s´c

zawierała

długo´s´c najkrótszej drogi do

, w których przedostatnim wierzchołkiem był jaki´s wierz-

chołek z

ró˙zny od

. Dlatego po tym sprawdzeniu b¸edzie spełniony warunek (b).

Czas działania algorytmu Dijkstry jest

, poniewa˙z mamy tylko podwójne za-

gnie˙zd˙zenie p¸etli i liczba iteracji obu jest ograniczona przez

.

1.5

Najkrótsza droga w grafach acyklicznych

Inny przypadek, kiedy mo˙zna szybciej ni˙z w czasie

policzy´c długo´sci najkrótszych

dróg do wszystkich wierzchołków w grafie, zachodzi wtedy, gdy w grafie nie ma cykli.
Najpierw poka˙zemy, ˙ze w grafie acyklicznym mo˙zna tak ponumerowa ´c wierzchołki tak,
ka˙zda kraw¸ed´z prowadziła od wierzchołka z ni˙zszym numerem do wierzchołka z wy˙z-
szym numerem.

Lemat 1.7 W ka˙zdym skierowanym grafie

bez cykli istnieje wierzchołek, do

którego nie wchodz¸a ˙zadne kraw¸edzie.

Dowód: We´zmy dowolny wierzchołek

!

. Je˙zeli nie wchodzi do niego, ˙zadna kraw¸ed´z,

to koniec, znale´zli´smy. Je˙zeli wchodzi, to niech

b¸edzie wierzchołkiem, z którego pro-

wadzi kraw¸ed´z do

8!

. Albo

jest dobry, albo prowadzi do niego kraw¸ed´z od jakiego´s

wierzchołka

itd. Poniewa˙z zbiór wierzchołków jest sko ´nczony i nie ma w nim cy-

klu, wi¸ec ten ci¸ag musi si¸e kiedy´s sko´nczy´c i dojdziemy do wierzchołka, do którego nie
prowadz¸a ˙zadne kraw¸edzie.

Lemat 1.8 W skierowanym grafie acyklicznym

mo˙zna tak ponumerowa´c

wierzchołki, aby ka˙zda kraw¸ed´z prowadziła od wierzchołka z ni˙zszym numerem do wierz-
chołka z wy˙zszym numerem, czyli istnieje wzajemnie jednoznaczna funkcja

)$#%#$#&

taka, ˙ze je˙zeli

2<

4

, to

21

2

.

Dowód:

background image

10

Rozdział 1. Grafy skierowane

Jako dowód przedstawimy algorytm, który odpowiednio numeruje wierzchołki gra-

fu kolejnymi liczbami naturalnymi. Najpierw s¸a numerowane i usuwane z grafu wierz-
chołki, do których nie wchodz¸a ˙zadne kraw¸edzie. Po usuni¸eciu tych wierzchołków i
wychodz¸acych z nich kraw¸edzi znowu otrzymamy graf bez cykli, który zawiera wierz-
chołki bez wchodz¸acych kraw¸edzi. Teraz te z koleji wierzchołki s¸a numerowane kolejny-
mi numerami i usuwane z grafu, i tak dalej a˙z do ponumerowania wszystkich wierzchoł-
ków.

Rysunek 1.4: Graf acykliczny

)

)

)

)

Przykład 1.9 Zastosujmy powy˙zszy algorytm do grafu z rysunku 1.4. Wierzchołkami bez
wchodz¸acych kraw¸edzi s¸a

i

. Przypisujemy wi¸ec

)

i

oraz usuwa-

my

i

z grafu wraz z wychodz¸acymi z nich kraw¸edziami. Teraz wierzchołek

nie ma

wchodz¸acych kraw¸edzi, przypisujemy mu

i usuwamy z grafu. W dalszych kro-

kach algorytm przypisze warto´sci

,

oraz

. Ostatecznie hunkcja

ma posta´c:

v

s

a

b

c

d

t

1

4

2

3

5

6

Przedstawimy teraz algorytm wyliczaj¸acy odległo´sci z

do wszystkich wierzchołków w

grafie acyklicznym. Zakładamy przy tym, ˙ze w grafie

wierzchołki s¸a ponumerowane

tak, jak opisano to w lemacie 1.8. Bez straty ogólno´sci mo˙zna zało˙zy´c, ˙ze

jest pierwszy,

poniewa˙z nie ma ´scie˙zek z

do wierzchołków o ni˙zszych numerach.

Algorytm wyliczaj¸acy odległo´sci wszystkich wierzchołków w grafie acyklicznym

Dane wej´sciowe: acykliczny graf skierowany

;

, długo´sci kraw¸edzi

.

Dane wyj´sciowe: Macierz

odległo´sci z

do wszystkich wierzchołków.

dla ka˙zdego

4

podstaw

;

dla ka˙zdego

4

po kolei według numerów zrób:

dla ka˙zdego

,

<

2<

background image

1.6. Zadania

11

Udowodnimy przez indukcj¸e, ˙ze po

(

-tej iteracji zewn¸etrznej p¸etli wierzchołki o nu-

merch od 1 do

(

maj¸a ju˙z prawidłowe warto´sci w macierzy

. Po pierwszej iteracji

ma prawidłow¸a warto´s´c

. W

(

tej iteracji p¸etli (zakładamy, ˙ze wierzchołki o

numerach od 1 do

(

)

maj¸a ju˙z prawidłowe warto´sci w macierzy

) obliczamy

(

.

Zauwa˙zmy, ˙ze najkrótsza droga z

do

/

przebiega przez wierzchołki o mniejszych od

(

numerach. Niech

b¸edzie przedostatnim wierzchołkiem na tej drodze. Długo´s´c tej drogi

wynosi

1

"/3

2< "/3

i zostanie odnaleziona w p¸etli.

Poniewa˙z mamy podwójne zagnie˙zd˙zenie p¸etli i w obu liczba iteracji jest ograniczona

przez

, czas działania algorytmu jest

.

Przykład 1.10 (kontynuacja przykładu 1.9) Je˙zeli zastosujemy ten algorytm do grafu z
rysunku 1.4, to w kolejnych iteracjach zewn¸etrznej p¸etli obliczy on

,

,

)

,

,

oraz

.

1.6

Zadania

1. Narysuj wszystkie grafy skierowane ze zbiorem wierzchołków

. Które

z nich s¸a spójne? Które z nich s¸a izomorficzne?

Wskazówka: Definicja izomorfizmu grafów skierowanych jest taka sama jak dla
grafów nieskierowanych.

2. Które z grafów przedstawionych na rysunkach w tym rozdziale s¸a spójne?

3. Narysuj mo˙zliwie jak najwi¸ecej nieizomorficznych grafów skierowanych z trzema

wierzchołkami

.

4. Narysuj par¸e ró˙znych i izomorficznych grafów skierowanych z mo˙zliwie najmniejsz¸a

liczb¸a wierzchołków.

Rysunek 1.5: Graf skierowany

)

)

)

)

)

5. Zastosuj algorytm Dijkstry i znajd´z najkrótsz¸a drog¸e z

do

w grafie z rysunku 1.5.

6. Zastosuj algorytm Forda-Bellmana do grafu z rysunku 1.5.

7. Znajd´z najkrótsz¸a drog¸e z

do

w grafach z rysunków 1.3 i 1.4.

8. Zastosuj algorytm Forda-Bellmana do grafów z rysunków 1.3 i 1.4.

background image

12

Rozdział 1. Grafy skierowane

1.7

Problemy

1.7.1

Cykl Eulera w grafie skierowanym

Cykl Eulera w grafie skierowanym jest to droga zamkni˛eta przechodz ˛

aca przez ka˙zd ˛

a

kraw˛ed´z grafu dokładnie jeden raz. Udowodnij, ˙ze je˙zeli graf skierowany jest spójny jako
graf nieskierowany, to ma cykl Eulera wtedy i tylko wtedy, gdy w ka˙zdym jego wierz-
chołku liczba kraw˛edzi wchodz ˛

acych jest równa liczbie kraw˛edzi wychodz ˛

acych. Je˙zeli

w grafie jest p˛etla

, to liczymy j ˛

a jako kraw˛ed´z wchodz ˛

ac ˛

a do

i jako wychodz ˛

ac ˛

a

z

.

Zaproponuj algorytm wynajdywania cyklu Eulera w grafie skierowanym.
Które z grafów przedstawionych na rysunkach w tym rozdziale maj¸a cykle Eulera?

1.7.2

Ci ˛

ag de Bruijna

Ci ˛

ag de Bruijna rz˛edu

to cykliczne ustawienie

bitów takie, ˙ze ka˙zdy ci ˛

ag

bitów

wyst˛epuje w tym cyklu dokładnie jeden raz jako

kolejnych bitów.

Na przykład ci ˛

ag

))

jest ci ˛

agiem de Bruijna rz˛edu 2 (

)

wyst˛epuje na pozycjach 4

i 1), a ci ˛

ag

)

)))

jest ci ˛

agiem de Bruijna rz˛edu 3 (

))

wyst˛epuje na pozycjach 7, 8 i

1, a

)

na pozycjach 8, 1 i 2).

Aby otrzyma˙z ci ˛

ag de Bruijna rz˛edu

rozwa˙zmy nast˛epuj ˛

acy graf skierowany G=(V,E).

Wierzchołki grafu

%)

0

!

to zbiór wszystkich ci ˛

agów bitów długosci

:)

. Dwa

wierzchołki

,

4

tworz ˛

a kraw˛ed´z,

4

wtedy i tylko wtedy, gdy ostatnich

bitów

jest takie samo jak pierwsze

bitów

. Kraw˛ed´z ta jest etykietowana

ostatnim bitem

.

Narysuj graf

dla

,

i

.

Udowodnij, ˙ze:

Graf jest spójny (jako graf nieskierowany) i posiada cykl Eulera.

Etykiety ka˙zdej drogi długo´sci

)

tworz ˛

a nazw˛e ostatniego wierzchołka tej drogi.

Cykl Eulera ma

kraw˛edzi i przechodzi przez ka˙zdy wierzchołek dwa razy.

Etykiety cyklu Eulera tworz ˛

a ci ˛

ag de Bruijna rz˛edu

.

Wyznacz ci ˛

ag de Bruijna rz˛edu

.


Wyszukiwarka

Podobne podstrony:
Matematyka dyskretna grafy zadania
Egz1 - grafy, Studia informatyczne, Matematyka, Matematyka Dyskretna, Matematyka Dyskretna, Egzaminy
grafy, szkola, matematyka dyskretna
Matematyka dyskretna 2002 10 Grafy skierowane
matematyka dyskretna w 2 id 283 Nieznany
Denisjuk A Matematyka Dyskretna
C2, Matematyka studia, Matematyka dyskretna
Matematyka Dyskretna Test#1
Matematyka dyskretna Zadania(1)
Matematyka dyskretna id 283281 Nieznany
Kolo 3, Politechnika, Matematyka Dyskretna
Matematyka dyskretna opracowani Nieznany
Matematyka dyskretna 2004 01 Podstawowe pojęcia, oznaczenia
Wykład z dnia 10.05.2008, Zajęcia, II semestr 2008, Matematyka dyskretna i logika
Matematyka Dyskretna Test 2a
Matematyka dyskretna prawd id 7 Nieznany
Matematyka Dyskretna Test 2d

więcej podobnych podstron