background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 1 / 13 

DROGI i CYKLE HAMILTONA w grafach skierowanych 

Dla grafu skierowanego 

 

= ( VA ) 

rozważmy zagadnienie istnienia cyklu elementarnego, który zawiera 

wszystkie wierzchołki grafu, czyli cyklu Hamiltona

Graf skierowany pełny bez pętli  D

n

  jest hamiltonowski 

dla każdego n 

 2  i zawiera  (n

−−−−

1)!  cykli Hamiltona. 

Przykład cykli Hamiltona w grafie D

3

 i D

4

 

D

3

:  (3

1)! = 2 

D

4

:  (4

1)! = 6 

1

2

3

1

2

3

 

1

2

3

4

1

2

3

4

1

2

3

4

1

2

3

4

1

2

3

4

1

2

3

4

 

Twierdzenie  (Meyniel, 1973) 

Jeśli D jest silnie spójnym grafem skierowanym bez pętli o  n 

 2 

wierzchołkach i dla dowolnej pary wierzchołków niezależnych 

zachodzi warunek  

1

2

)

(

)

(

+

n

w

d

v

d

, to graf 

D ma cykl Hamiltona. 

(odpowiednik tw. Ore) 

background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 2 / 13 

Wniosek

  (twierdzenie Nash-Williams, 1969) 

Je

ś

li D jest grafem skierowanym bez p

ę

tli, w którym  

2

)

(

n

v

d

+

  i  

2

)

(

n

v

d

  dla każdego wierzchołka v, to graf D ma cykl Hamiltona. 

(odpowiednik tw. Diraca) 

TURNIEJE 

Graf skierowany bez pętli nazywamy 

turniejem, jeśli dla każdej pary 

wierzchołków  u  i  v  zawiera on dokładnie jeden łuk:   

albo  (uv), albo (vu). 

 

turniej może reprezentować wyniki spotkań par uczestniczących w 

rozgrywkach sportowych typu „każdy z każdym” (bez remisów) 

Przykład turnieju 

c

a

b

d

 

Twierdzenie (Rédei, 1934) 

Każdy turniej zawiera drogę Hamiltona. 

Przykład dróg Hamiltona w turnieju: 

(dabc),  (dbca)  i  (dcab

c

a

b

d

 

background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 3 / 13 

Twierdzenie (Thomassen, 1982) 

Każdy turniej zawiera drogę Hamiltona, która zaczyna się 

w wierzchołku o najwyższym stopniu wyjściowym i kończy 

w wierzchołku o najwyższym stopniu wejściowym. 

Przykład turnieju bez cyklu Hamiltona 

c

a

b

d

 

Ten turniej nie jest silnie spójny. 

Twierdzenie (Camion, 1959) 

Każdy silnie spójny turniej zawiera cykl Hamiltona. 

Przykład cyklu Hamiltona w silnie spójnym turnieju 

c

a

b

d

 

cykl Hamiltona:  (abdca

background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 4 / 13 

DRZEWA i LASY 

Lasem nazywamy graf nieskierowany, który nie zawiera cykli 

elementarnych. 

Drzewem nazywamy graf spójny, który nie zawiera cykli elementarnych. 

Przykłady drzewa i lasu 

takie krawędzie
są wykluczone

drzewo

las

 

 

Twierdzenie 

Niech G będzie grafem nieskierowanym o  n  wierzchołkach. 

Wówczas następujące stwierdzenia są równoważne: 

1.

 

Graf G jest drzewem. 

2.

 

Graf G nie zawiera cykli elementarnych i ma  n

1  krawędzi. 

3.

 

Graf G jest spójny i ma  n

1  krawędzi. 

4.

 

Graf G jest spójny i każda krawędź jest mostem. 

5.

 

Dowolne dwa wierzchołki grafu G są połączone dokładnie jedną 

drogą. 

6.

 

Graf G nie zawiera cykli elementarnych, ale dołączenie dowolnej 

nowej krawędzi do G tworzy dokładnie jeden taki cykl. 

background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 5 / 13 

Dowód 

Dla  n = 1 równoważność stwierdzeń jest oczywista. 

Załóżmy zatem, że  n 

 2. 

(1. ⇒ 2.) Indukcja względem liczby wierzchołków; załóżmy, że implikacja 

zachodzi dla dowolnego drzewa o liczbie wierzchołków nie większej od  

1.  

Pokażemy, że zachodzi dla n. Usuńmy z G jedną krawędź. Ponieważ G nie 

zawiera cykli elementarnych, to usunięcie krawędzi prowadzi do rozpadu G na 

dwa drzewa, które na mocy założenia indukcyjnego mają razem (

2) 

krawędzi. Zatem G musi mieć (

1) krawędzi. 

(2. ⇒ 3.) Gdyby G nie był spójny, to łączna liczba krawędzi w jego składowych, 

będących drzewami, byłaby co najmniej o 2 mniejsza od liczby wierzchołków. 

Przeczy to założeniu, że G ma  n

1  krawędzi. 

(3. ⇒ 4.) Usunięcie dowolnej krawędzi daje graf o  n  wierzchołkach i  

2  

krawędziach, który nie jest spójny. 

(4. ⇒ 5.) Ponieważ G jest spójny, to każda para wierzchołków jest połączona co 

najmniej jedną drogą. Gdyby dla pewnej pary wierzchołków były dwie takie 

drogi, to powstałby cykl. Przeczy to założeniu, że każda krawędź jest mostem. 

(5. ⇒ 6.) Graf G nie może zawierać cyklu elementarnego, bo oznaczałoby to,  

ż

e istnieje para wierzchołków połączona dwiema drogami wierzchołkowo 

rozłącznymi. Dołączenie nowej krawędzi utworzy cykl elementarny. Może być 

tylko jeden taki cykl, bowiem istnienie dwóch takich cykli oznaczałoby, że w G 

istnieje cykl elementarny nie zawierający dołączanej krawędzi. 

(6. ⇒ 1.) Graf G musi być spójny. Gdyby tak nie było, to dodanie krawędzi 

łączącej składowe grafu nie powodowałoby powstania cyklu elementarnego.  

 

background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 6 / 13 

Wniosek 

W drzewie o  n 

 2  wierzchołkach co najmniej dwa z nich 

są stopnia 1 (są liśćmi). 

Dowód 

2

2

)

1

(

2

2

)

(

=

=

=

n

n

E

i

d

V

i

.  



 

Wniosek

 

Je

ś

li graf G o n wierzchołkach jest lasem zło

ż

onym z k drzew, to 

liczba jego kraw

ę

dzi  m = n – k

Dla grafu spójnego  G = (VE)  ka

ż

de drzewo  G

T

 = (VT)  takie, 

ż

T 

 E  nazywamy 

drzewem rozpinającym

 (dendrytem) grafu G

Przykład drzewa rozpinaj

ą

cego 

5

4

3

1

2

 

Twierdzenie

  (Cayley, 1889)

 

Graf  pełny K

n

  (dla n 

 2)  ma  n

 n

2   

ż

nych drzew rozpinaj

ą

cych. 

Przykład liczby drzew rozpinaj

ą

cych w grafie pełnym 

K

4

 : 

4

3

1

2

,  

n

 n

2

 = 4

2

 = 16 

background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 7 / 13 

Dowód

 (zarys dowodu – konstrukcja kodu Prüfera dla drzewa) 

Załó

ż

my, 

ż

e wierzchołki grafu s

ą

 ponumerowane liczbami 

naturalnymi  1, ..., n. Łatwo sprawdzi

ć

ż

e dla  n = 2  tw. zachodzi. 

Poka

ż

emy, 

ż

e dla  n 

 3  istnieje wzajemnie jednoznaczna 

odpowiednio

ść

 pomi

ę

dzy drzewami rozpinaj

ą

cymi graf pełny K

n

   

a  n

 n

2  

ci

ą

gami (a

1

a

2

, ..., a

n

2

), gdzie  a

i

  jest liczb

ą

 naturaln

ą

 

spełniaj

ą

c

ą

 nierówno

ść

  1 

 a

i

 

 n

Załó

ż

my, 

ż

T jest drzewem rozpinaj

ą

cym  K

n

 . Wybieramy 

wierzchołek  v  stopnia 1 o najmniejszym numerze i przyjmujemy 

jako a

1

 numer wierzchołka s

ą

siedniego z v w drzewie T. Usuwamy z 

T wierzchołek v wraz z incydentn

ą

 z nim kraw

ę

dzi

ą

. Powtarzamy 

powy

ż

sze post

ę

powanie kolejno dla  a

2

a

3

, ..., a

n

2

 . 

Aby ustali

ć

 odwrotn

ą

  odpowiednio

ść

 pomi

ę

dzy ci

ą

giem (a

1

a

2

, ..., 

a

n

2

)  a drzewem rozpinaj

ą

cym, we

ź

my dowolny ci

ą

g (a

1

a

2

, ..., a

n

2

), 

którego ka

ż

dy wyraz spełnia warunek 1 

 a

i

 

 n, i zbudujmy 

odpowiadaj

ą

ce mu drzewo T. Niech v b

ę

dzie najmniejsz

ą

 liczb

ą

 ze 

zbioru  N = {1, 2, ..., n}, która nie wyst

ę

puje w ci

ą

gu (a

1

a

2

, ..., a

n

2

). 

Dodajemy do T kraw

ę

d

ź

 {a

1

v}. Usuwamy a

1

 z ci

ą

gu i podstawiamy 

N 

 N \ {v}. Powtarzamy to post

ę

powanie kolejno dla  a

2

a

3

, ..., a

n

2

Na ko

ń

cu ł

ą

czymy kraw

ę

dzi

ą

 ostatnie dwa wierzchołki, które 

pozostały w N.  



 

background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 8 / 13 

Przykład kodowania drzew rozpinaj

ą

cych w grafie pełnym 

K

4

 : 

n

 n

2

 = 4

2

 = 16 

4

3

1

2

(1, 1)

(1, 2)

(1, 3)

(1, 4)

(2, 1)

(2, 2)

(2, 3)

(2, 4)

(3, 1)

(3, 2)

(3, 3)

(3, 4)

(4, 1)

(4, 2)

(4, 3)

(4, 4)

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

4

3

1

2

 

background image

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WIT 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 9 / 13 

Przykład u

ż

ycia kodu Prüfera 

kodowanie:

    

5

4

3

1

2

1

2

3

4

(1, 1, 4)

 

odkodowanie:

    

(3, 1, 5)

5

4

3

1

2

1

2

3

4

 

Drzewo przeglądu grafu w głą

Po zako

ń

czeniu przeszukiwania grafu G = (VE) metod

ą

 w gł

ą

uzyskujemy ci

ą

g jego ponumerowanych wierzchołków: (

1

i

v

, ..., 

n

i

v

). 

Wyznaczamy zbiór kraw

ę

dzi 

T

, który tworzy drzewo rozpinaj

ą

ce 

G

 

1.

 

rozpocznij od  

T

 = 

2.

 

dla ka

ż

dego  

j 

n

n 

1, ..., 2  wykonaj co nast

ę

puje: 

2.1.

 

wybierz z ci

ą

gu  (

1

i

, ..., 

n

i

)  wierzchołek 

v

, który jest 

s

ą

siedni z wierzchołkiem 

j

i

v

 i ma najwi

ę

kszy indeks 

spo

ś

ród wierzchołków poprzedzaj

ą

cych w ci

ą

gu 

j

i

v

2.2.

 

doł

ą

cz do zbioru  

T

  kraw

ę

d

ź

  {

j

i

v

v

}. 

 

background image

WY

Ż

SZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZ

Ą

DZANIA 

WIT

 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 10 / 13 

Przykład drzewa przeglądu grafu w głąb  

Ci

ą

g wyznaczony metod

ą

 przeszukania w gł

ą

b: (5, 6, 3, 2, 7, 1, 10, 4, 9, 8) 

7

1

5

4

6

2

3

8

9

10

 

Zbiór kraw

ę

dzi drzewa rozpinaj

ą

cego: 

{{8, 9}, {9, 10}, {4, 10}, {10, 1}, {1, 7}, {7, 2}, {2, 3}, {3, 6}, {6, 5}} 

Drzewo przeglądu grafu wszerz 

Po zako

ń

czeniu przeszukiwania grafu 

G

 = (

V

E

) metod

ą

 wszerz 

uzyskujemy ci

ą

g jego ponumerowanych wierzchołków: (

1

i

v

, ..., 

n

i

v

). 

Wyznaczamy zbiór kraw

ę

dzi 

T

, który tworzy drzewo rozpinaj

ą

ce 

G

 

1.

 

rozpocznij od  

T

 = 

2.

 

dla ka

ż

dego  

j 

n

n 

1, ..., 2  wykonaj co nast

ę

puje: 

2.1.

 

wybierz z ci

ą

gu  (

1

i

v

, ..., 

n

i

v

)  wierzchołek 

v

, który jest 

s

ą

siedni z wierzchołkiem 

j

i

v

 i ma najmniejszy indeks 

spo

ś

ród wierzchołków ci

ą

gu, 

2.2.

 

doł

ą

cz do zbioru  

T

  kraw

ę

d

ź

  {

j

i

v

v

}. 

 

background image

WY

Ż

SZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZ

Ą

DZANIA 

WIT

 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 11 / 13 

Przykład drzewa przeglądu grafu wszerz  

Ci

ą

g wyznaczony metod

ą

 przeszukania wszerz: (5, 6, 8, 3, 7, 9, 10, 2, 4, 1) 

7

1

5

4

6

2

3

8

9

10

 

Zbiór kraw

ę

dzi drzewa rozpinaj

ą

cego: 

{{1, 7}, {4, 3}, {2, 8}, {10, 6}, {9, 6}, {7, 6}, {3, 6}, {8, 5}, {6, 5}} 

Terminologia dla drzew rozpinających: 

Dla  

G

T

 = (

V

T

) , które jest drzewem rozpinaj

ą

cym grafu  

G

 = (

V

E

): 

gałęziami

 (drzewa) nazywamy elementy zbioru  

T

 , 

cięciwami

 (grafu) nazywamy elementy zbioru  

E

 \ 

T

 . 

Je

ś

li  

e

  jest ci

ę

ciw

ą

, to graf  (

V

T

{

e

}) zawiera dokładnie jeden cykl 

C

e

Zbiór  

 = { 

C

e

 : 

e

 

 

E

 \ 

T

 }  nazywamy 

zbiorem cykli fundamentalnych

 

grafu 

G

  (wzgl

ę

dem drzewa rozpinaj

ą

cego 

G

T

background image

WY

Ż

SZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZ

Ą

DZANIA 

WIT

 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 12 / 13 

Przykład gałęzi, cięciw i cykli fundamentalnych 

 

C

{2, 3}

C

{2, 4}

C

{4, 5}

5

4

3

1

2

3

1

2

4

3

1

2

5

4

3

 

T

 = {{1, 2}, {1, 3}, {3, 4}, {3, 5}},   

E

 \ 

T

  = {{2, 3}, {2, 4}, {4, 5}} 

 = { 

C

{2, 3}

,  

C

{2, 4}

,   

C

{4, 5}

Twierdzenie 

Niech 

G

 = (

V

E

)  b

ę

dzie grafem spójnym a  

G

T

 = (

V

T

)  jego 

dowolnym drzewem rozpinaj

ą

cym. Je

ż

eli ka

ż

dy cykl b

ę

dziemy 

traktowali jak zbiór kraw

ę

dzi, to ka

ż

dy cykl prosty 

C

 w grafie 

G

 

mo

ż

na jednoznacznie przedstawi

ć

 jako ró

ż

nic

ę

 symetryczn

ą

 cykli 

fundamentalnych: 

 

C

 = 

1

e

C

 

2

e

C

 ... 

 

k

e

C

gdzie  

{

}

k

e

...,

,

1

 = C \ T  jest zbiorem cięciw względem drzewa G

T

 . 

background image

WY

Ż

SZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZ

Ą

DZANIA 

WIT

 

GRAFY i SIECI (4) 

J.Sikorski 

Strona 13 / 13 

Przykład przedstawiania cyklu prostego jako różnicy symetrycznej 

C

{2, 3}

C

{2, 4}

C

{4, 5}

5

4

3

1

2

3

1

2

4

3

1

2

5

4

3

5

4

3

1

2

C

 

T = 

{

{1, 2}, {1, 3}, {3, 4}, {3, 5}

}

,   C \ T  = 

{

{2, 3}, {2, 4}, {4, 5}

}

 

 zbiór cykli fundamentalnych  

{

C

{2, 3}

C

{2, 4}

C

{4, 5}

}

 

C

{2, 3}

C

{2, 4}

C

{4, 5}

3

1

2

4

3

1

2

4

3

2

=

{{2, 3}, {3, 4}, {2, 4}}

4

3

2

5

4

3

=

5

4

3

2

C

{{2, 3}, {3, 4}, {2, 4}}

 

C = 

{

{2, 3}, {3, 5}, {4, 5}, {2, 4}

}

 

=

 (

C

{2, 3}

 

 C

{2, 4}

)

 

 C

{4, 5}