• Nie Znaleziono Wyników

Stopie wierzchołka

N/A
N/A
Protected

Academic year: 2021

Share "Stopie wierzchołka"

Copied!
174
0
0

Pełen tekst

(1)

Poj cie grafu

Def. Graf prosty G=(V,E) jest uporz dkowan par dwóch elementów:

zbioru wierzchołków V oraz zbioru kraw dzi E⊂V×V. Kraw d pomi dzy wierzchołkami u oraz v oznaczamy {u,v}. Graf prosty nie zawiera kraw dzi postaci {u,u} oraz pomi dzy ka d par wierzchołków istnieje co najwy ej jedna kraw d .

Def. Wierzchołki u i v s s siednie, gdy {u,v}∈E(G). Wierzchołek u oraz kraw d e s incydentne, gdy u ∈ e.

Przykład:

G = ( { v1, v2, v3, v4}, v1

v2

v4

v3 { {v1, v2}, {v2, v3}, {v3, v4}, {v4, v1},{v2, v4} } ) Uwaga. Rysunek grafu jest reprezentacj zbioru wierzchołków oraz

sposobu ich poł czenia, wi c jego własno ci metryczne nie s istotne.

(2)

Multigrafy oraz grafy skierowane

Def. Graf nazywamy digrafem (grafem skierowanym), gdy kraw d ł cz ca u oraz v jest uporz dkowan par postaci (u,v).

Def. Multigraf to graf, w którym pomi dzy dowoln par wierzchołków mo e wyst pi wi cej ni jedna kraw d oraz dopuszczalne s p tle, tzn.

kraw dzie postaci {v,v}, gdzie v∈V(G).

Przykład:

G = ( {u, v, w, x},

{{u,v}, {w,v}, {w,w}, {w,x}, {w,x}, {w,x}, {x,v}, {x,v}} )

u v

w x

D = ( {u, v, w, x},

{(u,v), (w,v), (v,x), (x,w)} )

u v

w x

(3)

Stopie wierzchołka

Def. Stopie wierzchołka v jest oznaczany symbolem deg(v) i jest to ilo wierzchołków s siednich z v. Dla danego grafu G

definiujemy parametry:

δ = min { deg(v) : v ∈V(G) }

∆ = max { deg(v) : v ∈V(G) }

Lemat o u ciskach dłoni. Niech G b dzie grafem prostym. Wówczas deg(v1) + ... + deg(vn) = 2m.

Dowód: (indukcja ze wzgl du na liczb kraw dzi grafu) 1. Je li m = 0, to równo jest prawdziwa.

2. Zakładamy, e lemat zachodzi dla pewnego m ≥ 0.

3. Udowodnimy równanie dla m + 1. Niech e∈E(G) b dzie dowoln kraw dzi . Z zało enia indukcyjnego wiadomo, e

deg(v1) + ... + deg(vn) = 2m(G – e),

gdzie deg(vi) jest stopniem vi w grafie G – e. Dla grafu G suma stopni wierzchołków jest o 2 wi ksza ni dla G – e oraz m(G) = m(G – e) + 1, co oznacza, e równanie zachodzi dla grafu G o m + 1 kraw dziach.

(4)

Twierdzenie Havla

Def. Ci g stopniowy jest graficzny, gdy jest on ci giem stopni pewnego grafu.

Tw. Havla Ci g stopniowy (k,d1,...,dl) jest graficzny wtedy i tylko wtedy, gdy po posortowaniu ci g (d1 – 1,d2 – 1,..., dk – 1,dk+1,dk+2,...,dl) jest graficzny.

Tw. Ilo wierzchołków nieparzystego stopnia w grafie prostym jest parzysta.

Dowód: Z lematu o u ciskach dłoni wiadomo, e

deg(v1) + ... + deg(vk) + deg(u1) + ... + deg(ul) = 2m,

gdzie vi jest wierzchołkiem o nieparzystym stopni, natomiast ui – parzystym.

Wiadomo, e suma liczb parzystych deg(u1) + ... + deg(ul) jest liczb parzyst , wi c suma deg(v1) + ... + deg(vk) ma równie parzyst warto , co jest

spełnione tylko wtedy, gdy ilo składników jest parzysta (k jest parzyste).

Def. Ci giem stopniowym grafu nazywamy uporz dkowany nierosn co ci g stopni jego wierzchołków.

(5)

Ci gi graficzne

Algorytm sprawdzaj cy, czy ci g stopni jest graficzny:

1. Je li d1 = ... = dl = 0, to ci g jest graficzny 2. Je li d1 < 0, to ci g nie jest graficzny

3. Uporz dkuj ci g nierosn co wg stopni

4. Usu z ci gu pierwsz (najwi ksz ) liczb d1 i odejmij 1 od kolejnych d1 liczb ci gu

5. Wró do punktu 1

Przykład: Sprawdzi , czy podany ci g jest graficzny:

( 4, 3, 3, 2, 2 ) ( 2, 2, 1, 1 )

( 0, 0 )

Odpowied : podany ci g stopniowy jest graficzny.

( 1, 0, 1 ) ( 1, 1, 0 )

(6)

Ci gi graficzne

Przykład

• Ci g (6,5,4,4,3,3,2) nie jest graficzny, poniewa suma stopni

odpowiedniego grafu wynosiłaby 27, co nie jest mo liwe na podstawie lematu o u ciskach dłoni.

• Ci g stopni (3,3,2,2,2) jest graficzny, poniewa jest on ci giem grafów prostych G1 i G2 pokazanych poni ej.

G1 = G2 =

(7)

Przykłady grafów

• Graf pusty Nn=({v1,...,vn},∅).

• Graf pełny Kn=({v1,...,vn},{{vi,vj}: i,j=1,...,n, i≠j}).

• Graf r-regularny jest grafem, dla którego zachodzi równo r = δ = ∆ (tzn. stopie ka dego

wierzchołka jest równy r). Wówczas m=(r·n)/2.

Graf 3-regularny nazywamy grafem kubicznym.

Zdefiniowany wcze niej graf pełny o n wierzchołkach jest (n – 1)-regularny.

Graf K4

Graf kubiczny (graf Petersena)

(8)

Operacje sumy i zespolenia

Def. (suma grafów)

G1 ∪ G2 = ( V(G1)∪V(G2), E(G1)∪E(G2) ) Def. (zespolenie grafów)

G1 + G2 = ( V(G1)∪V(G2),

E(G1)∪E(G2)∪{{v1,v2}:v1∈V(G1),v2 ∈V(G2)})

Przykład Zespolenie grafów K2 i N3

+ =

Tw. Je li G = G1+G2, to

n(G) = n(G1) + n(G2),

m(G) = m(G1) + m(G2) + n(G1) · n(G2).

(9)

Dopełnienie grafu

Def. Je li G jest grafem prostym, to jego dopełnieniem jest graf , o tym samym zbiorze wierzchołków oraz dwa wierzchołki s

s siednie w G’ wtedy i tylko wtedy, gdy nie s s siednie w G.

G

Uwaga Przykładowe zale no ci:

, , ,

,

1 ,

=

=

=

=

r n r

s s r

r

n n

G G

K K

K

N K

G G

gdzie Gr oznacza dowolny graf r–regularny.

G =

= G

(10)

Graf kraw dziowy

Def. Graf kraw dziowy L(G) grafu G to graf, którego wierzchołki

odpowiadaj kraw dziom G. Dwa wierzchołki s s siednie w L(G) wtedy i tylko wtedy, gdy odpowiadaj ce im kraw dzie s s siednie w G.

Uwaga Je li G jest grafem r-regularnym, to L(G) jest 2(r–1)-regularny.

Przykład

G = L(G) =

(11)

Poj cie podgrafu

Def. Podgrafem grafu G nazywamy dowolny graf H taki, e V(H) ⊂ V(G) oraz E(H) ⊂ E(G).

Uwaga Podgraf mo na otrzyma usuwaj c pewn liczb kraw dzi i (lub) wierzchołków z grafu G. Je li e ∈E(G), to przez G – e

rozumiemy podgraf powstały przez usuni cie kraw dzi e z grafu G.

Je li F ⊂ E(G) to G – F jest grafem utworzonym z G w wyniku usuni cia kraw dzi nale cych do zbioru F. Analogicznie, je li v, S s odpowiednio wierzchołkiem oraz zbiorem wierzchołków grafu G, to G – v oraz G – S definiujemy jako grafy powstałe poprzez

usuni cie odpowiednio v lub S z grafu G.

Def. Podgraf pełny dowolnego grafu G nazywamy klik . Rozmiar najwi kszej kliki oznaczamy przez ω(G).

(12)

Podgraf indukowany

Przykład (podgraf indukowany)

v1

v2

v3 v4

v5 v6

G =

v1

v3 v4

v6

G[{v

1

, v

3

, v

4

, v

6

}] =

Def. Podgraf indukowany G[S] grafu G, gdzie S ⊂ V(G), definiujemy nast puj co:

G[S] = ( S, {{u,v} : u,v∈S, {u,v}∈E(G)} ).

Podgraf G, który nie jest podgrafem

indukowanym:

v1

v6 v2

v3 v4

(13)

Drogi i cykle

Def.• Marszruta to taki ci g kraw dzi grafu G, e dwie kolejne kraw dzie tego ci gu s s siednie w G lub s identyczne.

• Ła cuch jest marszrut , w której adna kraw d nie wyst puje dwukrotnie.

• Droga to marszruta w której ka dy wierzchołek wyst puje co najwy ej raz.

• Cykl to droga, której wierzchołek pocz tkowy jest równy ko cowemu.

Przykład

G =

v1

v2

v3 v4

v5

v6 marszruta: v1, v6, v3, v6, v4, v5 ła cuch: v6, v1, v2, v3, v6, v4 droga: v1, v2, v3, v6, v4, v5

cykl: v1, v2, v3, v6, v1

(14)

Drogi i cykle

Tw. Je li δ = 2, to graf G zawiera cykl.

Dowód:

(a) Mamy m ≥ n, gdy z lematu o u ciskach dłoni wiadomo, e 2m = deg(v1) + ... + deg(vn) ≥ nδ = 2n.

(b) Udowodnimy indukcyjnie wzgl dem n, e je li m ≥ n, to G zawiera cykl.

- Je li n = 2, to G zawiera cykl.

- Zakładamy, e twierdzenie zachodzi dla wszystkich grafów, których rz d nie przekracza n.

- Rozwa my n + 1 wierzchołkowy graf G oraz niech e = {u,v} b dzie jego dowoln kraw dzi . Je li G – e jest spójny, to istnieje cie ka z u do v w G – e wi c ta cie ka w poł czeniu z e tworzy cykl w G. Je li G – e nie jest spójny to oznaczmy G – e = G1 ∪ G2. Gdyby zachodziło m(G1) ≤ n(G1) – 1 oraz m(G2) ≤ n(G2) – 1, to

m(G) = m(G1) + m(G2) + 1 ≤ n(G1) + n(G2) – 1 = n(G) – 1,

co daje sprzeczno z zało eniem. St d mo na przyj , e m(G1) ≥ n(G1) i z zało enia indukcyjnego G1 (wi c równie G) zawiera cykl.

(c) Z (a) oraz (b) wynika teza.

(15)

Grafy dwudzielne

• Graf dwudzielny G = (V1∪V2, E), gdzie G[V1] oraz G[V2] s grafami pustymi (istnieje podział V na podzbiory V1 i V2 takie, e ka da kraw d grafu ł czy wierzchołki z ró nych zbiorów Vi). Szczególnym przypadkiem s pełne grafy dwudzielne Ka,b= Na + Nb. W takim przypadku zachodz

wzory.

m(Ka,b) = a · b, n(Ka,b) = a + b.

K

2,3

=

Graf dwudzielny (2-regularny)

V

1

V

2

(16)

Grafy dwudzielne

Tw. Graf G jest dwudzielny wtedy i tylko wtedy, gdy ka dy cykl w G ma parzyst długo .

Dowód:

Załó my, e G=(V1 ∪V2,E) jest dwudzielny oraz v1,...,vk jest

dowolnym jego cyklem. Bez straty ogólno ci mo na zało y , e v1∈V1. St d, e v1 i v2 s s siednie wynika, e v2∈V2. Ogólnie, v2p∈V2 oraz

v2p+1∈V1, co oznacza, e wierzchołek vk∈V2 poniewa jest s siedni z v1. Załó my, e ka dy cykl w G ma parzyst długo . Definiujemy

podział V nast puj co: Av = {w∈V : d(v,w) jest parzyste}, Bv = V\Av, gdzie d(v,w) jest długo ci najkrótszej cie ki ł cz cej v z w. Wierzchołki w Av s parami nies siednie, gdy sytuacja x, y ∈Av oraz {x,y} ∈E oznacza, e w G wyst puje nieparzysty cykl o długo ci d(v,x) + d(v,y) + 1,

sprzeczno . Podobnie mo na uzasadni e kraw d pomi dzy elementami Bv implikuje istnienie nieparzystego cyklu w G.

(17)

Przykłady grafów

• Cykl Cn = ( {v1,...,vn} , {{v1,v2},...,{vn-1,vn}, {vn,v1}} )

C3 = C4 = C5 =

• Koło Wn= ( {v1,...,vn} , {{v1,v2},...,{vn-1,vn}, {vn,v1}} ) Wn = Cn – 1 + N1

W4 = W5 = W6 =

(18)

Hiperkostki

• hiperkostka Qnjest grafem, którego wierzchołki odpowiadaj

wszystkim ci gom zero-jedynkowym długo ci n. Dwa wierzchołki s s siednie, o ile odpowiadaj ce im ci gi ró ni si na jednej pozycji.

0

1

Q

1

00 10

01 11

Q

2

100 110

000 010

101 111

001 011

Q

3

(19)

Spójno kraw dziowa

Def. Graf jest spójny, gdy pomi dzy ka d par wierzchołków istnieje droga. Zbiór rozspajaj cy grafu to zbiór kraw dzi, których usuni cie rozspaja graf. Rozci cie to zbiór rozspajaj cy, którego aden

wła ciwy podzbiór nie rozspaja grafu. Spójno kraw dziowa jest moc najmniejszego rozci cia (oznaczenie: λ(G)). Składowa

spójno ci grafu G jest podgrafem H takim, e G = H ∪ G’, dla

pewnego G’. Kraw d e nazywamy mostem, gdy {e} jest rozci ciem.

Zbiór rozspajaj cy Rozci cie

Most

Składowe spójno ci grafu G – e e

Przykład

(20)

Spójno wierzchołkowa

Def. Zbiór separuj cy grafu to zbiór wierzchołków, których usuni cie rozspaja graf. Separator to zbiór separuj cy, którego aden wła ciwy podzbiór nie rozspaja grafu. Spójno wierzchołkowa jest moc

najmniejszego separatora (oznaczenie: χ(G)). Wierzchołek v nazywamy przegubem, gdy {v} jest separatorem.

Przykład

v

Zbiór separuj cy Separator

Przegub

Składowe spójno ci grafu G – v

(21)

Spójno grafu

Tw. Je li graf G posiada k składowych spójno ci, to n – k ≤ m.

Dowód: Dowodzimy twierdzenie indukcyjnie wzgl dem k.

1) Niech k = 1. Graf ma minimaln ilo kraw dzi wówczas, gdy usuni cie dowolnej z nich rozspaja graf. Wybierzmy dowolny wierzchołek b d cy li ciem i usu my go z grafu wraz z incydentn kraw dzi . W wyniku tej operacji liczba kraw dzi i wierzchołków malej o 1. Po pewnej liczbie kroków otrzymujemy graf K2.

2) Zakładamy, e twierdzenie zachodzi dla pewnego k.

3) Dowodzimy dla k + 1. Dodajemy do grafu kraw d e tak, aby

ł czyła dwie składowe spójno ci. Wówczas korzystaj c z zało enia indukcyjnego otrzymujemy:

n(G+e) – (k – 1) ≤ m(G+e).

Po uwzgl dnieniu, e n(G+e) = n(G) oraz m(G+e) = m(G) + 1 otrzymujemy tez .

(22)

Spójno grafu

Tw. Je li graf G posiada k składowych spójno ci, to m ≤ (n – k)(n – k + 1)/2.

Dowód: Rozwa my n-wierzchołkowy graf G, o najwi kszej mo liwej

liczbie kraw dzi, który posiada k składowych spójno ci G1,...,Gk takich, e |V(Gi+1)| ≤ |V(Gi)|. Załó my, e wierzchołek u nale y do

najliczniejszej składowej spójno ci , natomiast v nale y do składowej G2. Zauwa my, e je li |V(G2)| > 1, to przeniesienie wierzchołka v z G2 do G1 nie zmieni liczby składowych spójno ci, liczba kraw dzi

natomiast wzro nie, co daje sprzeczno . St d |V(Gi)| = 1 dla i > 1. St d, m(G) = m(Kn – k ) = (n – k)(n – k + 1)/2, co ko czy dowód.

Wniosek Dowolny n-wierzchołkowy graf posiadaj cy wi cej ni (n – 2)(n – 1)/2 kraw dzi jest spójny.

(23)

Sprawdzanie spójno ci grafu

Procedure Spójny(G) begin

S := { v }; (* gdzie v jest dowolnym wierzchołkiem grafu G *) while istnieje nieoznaczony

wierzchołek v ∈ S do begin S := S ∪ N(v);

oznacz wierzchołek v;

end;if S = V(G) then

return „graf G jest spójny”;

elsereturn „graf G nie jest spójny”;

end

Przykład Oznaczenia:

•oznaczone elementy S;

•nieoznaczone elementy S;

•bie cy wierzchołek v;

Odp: „graf G jest spójny”

(24)

Drzewa

• Drzewo – graf spójny, który nie zawiera podgrafu b d cego cyklem.

Dla tej klasy grafów zachodzi m = n – 1. Wierzchołek o stopniu równym 1 nazywamy li ciem.

- cie ki: Pn = ({v1,...,vn},{{v1,v2}, ...,{vn-1,vn}})

- gwiazdy: K1,n–1 = ({v1,...,vn},{{v1,v2}, ...,{v1,vn}}) = N1 + Nn-1

- kometa – graf powstały poprzez poł czenie pewnego wierzchołka gwiazdy z li ciem nale cym do cie ki

- g sienica – graf, w którym mo na wyró ni tak cie k , e ka dy li w grafie jest s siedni z pewnym wierzchołkiem cie ki

- dwugwiazda – wszystkie wierzchołki, z wyj tkiem dwóch maj stopie równy 1

- drzewo binarne – drzewo, w którym stopie ka dego wierzchołka jest równy co najwy ej 3

(25)

Drzewa

Tw. Niech T b dzie drzewem o n wierzchołkach. Wówczas nast puj ce warunki s równowa ne:

(1) T jest drzewem;

(2) T nie zawiera cykli i ma n – 1 kraw dzi;

(3) T jest grafem spójnym i ma n – 1 kraw dzi;

(4) T jest grafem spójnym i ka da kraw d jest mostem;

(5) ka de dwa wierzchołki T s poł czone dokładnie jedn drog ; (6) T nie zawiera cyklu, ale po dodaniu dowolnej kraw dzi

otrzymany graf ma dokładnie jeden cykl.

Dowód: Wyka emy twierdzenie indukcyjnie wzgl dem n. Je li n = 1, to twierdzenie jest prawdziwe. Załó my, e jest prawdziwe

równie dla wszystkich drzew T, których rz d jest mniejszy ni n. Nast pnie wyka emy równowa no warunków dla drzewa T o n wierzchołkach.

(26)

Drzewa

Dowód (cd.):

(1) (2) [T jest drzewem T nie zawiera cykli i ma n – 1 kraw dzi]

T jest drzewem, wi c nie zawiera cykli. Po usuni ciu dowolnej kraw dzi e otrzymujemy T – e = T1 ∪ T2. Z zało enia

indukcyjnego mamy m(Ti) = n(Ti) – 1, i = 1,2. St d m(T) = n(T1) – 1 + n(T2) – 1 + 1 = n(T) – 1.

(2) (3) [T nie zawiera cykli i ma n – 1 kraw dzi T jest grafem spójnym i ma n – 1 kraw dzi]

Załó my, e T nie jest grafem spójnym. Wtedy T = T1 ∪ T2. To oznacza, e m(T) = m(T1) + m(T2) = n(T1) + n(T2) – 2,

na mocy zało enia indukcyjnego. St d m(T) = n(T) – 2. Ale z warunku (2) wynika, e m(T) = n(T) – 1, co daje sprzeczno .

(27)

Drzewa

Dowód (cd.):

(3) (4) [T jest grafem spójnym i ma n – 1 kraw dzi T jest grafem spójnym i ka da kraw d jest mostem]

Graf T – e nie jest spójny, gdy podali my wcze niej twierdzenie mówi ce, i dla grafu o k składowych spójno ci zachodzi n – k ≤ m.

W przypadku grafu T – e mamy k = 1 oraz m = n – 2.

(4) (5) [T jest grafem spójnym i ka da kraw d jest mostem ka de dwa wierzchołki T s poł czone dokładnie jedn drog ]

Gdyby pomi dzy pewn par wierzchołków istniały dwie drogi, to tworzyłyby one cykl. Usuni cie dowolnej kraw dzi z tego cyklu nie spowoduje rozspojenia grafu, co przeczy zało eniu, i ka da kraw d jest mostem.

(28)

Drzewa

Dowód (cd.):

(5) (6) [ka de dwa wierzchołki T s poł czone dokładnie jedn drog T nie zawiera cyklu, ale po dodaniu dowolnej kraw dzi

otrzymany graf ma dokładnie jeden cykl]

Załó my, e graf T zawiera cykl. Wówczas pewne dwa

wierzchołki, nale ce do tego cyklu, s poł czone dwiema ró nymi drogami. Sprzeczno . Po operacji dodania kraw dzi graf T + {u,v}

zawiera cykl, poniewa wierzchołki u oraz v s poł czone w grafie T drog .

(6) (1) [T nie zawiera cyklu, ale po dodaniu dowolnej kraw dzi otrzymany graf ma dokładnie jeden cykl T jest drzewem]

Wystarczy wykaza , e graf T jest spójny. Gdyby tak nie było, to T graf T + {u,v} nie zawiera cyklu, gdzie T = T1 ∪ T2 oraz u ∈V(T1), v ∈V(T2). Sprzeczno .

(29)

k-drzewa

Def. (k-drzewo) k-drzewem jest graf pełny Kk. Je li G jest k-drzewem o n wierzchołkach, to (n+1)-wierzchołkowe k-drzewo powstaje z G poprzez dodanie wierzchołka s siedniego do wszystkich wierzchołków pewnej kliki w o k wierzchołkach w G. Cz ciowe k-drzewo to dowolny podgraf k-drzewa.

Przykład

2-drzewo 3-drzewo

Uwaga Ka de drzewo jest 1- drzewem

(30)

Macierz s siedztwa

Macierz s siedztwa jest struktur danych słu c do reprezentacji grafów w pami ci komputera. Dla danego grafu G okre lamy

kwadratow tablic M o wymiarach n×n tak , e

= ∉

) ( }

, { gdy ,

1

) ( }

, { gdy ,

] 0 ,

[ v v E G

G E v

j v i M

j i

j i

Przykład

v1

v2

v3 v4

v5 v6

0 0

1 1

0 1

0 0

1 0 0

0

1 1

0 0

0 0

1 0

0 0

1 0

0 0

0 1

0 1

1 0

0 0

1 0

G = M =

Wierzchołek v6 jest s siedni z:

Przykład: s siedztwo wierzchołka v6

v1, v3

i

v4

(31)

Macierz s siedztwa

Zalety:

• sprawdzenie, czy {v

i

,v

j

}∈E(G), dodanie oraz usuni cie kraw dzi to operacje dokonywane w stałym czasie

• struktura danych łatwa w implementacji Wady:

• przechowywanie macierzy wymaga O(n

2

) pami ci

• przejrzenie zbioru kraw dzi dokonywane w czasie

O(n

2

) zamiast O(m)

(32)

Lista s siedztwa

Lista s siedztwa jest struktur danych, w której wyst puje n- elementowy wektor N zwany nagłówkiem taki, e N[i] jest wska nikiem na list zawieraj c s siadów wierzchołka vi.

Przykład

v1

v2

v3 v4

v5 v6

G = N =

|

|

|

|

|

|

|

|

|

|

|

|

4 3

1 4

6 5

6 2

3 1

6 2

v v

v v

v v

v v

v v

v v

Przykład: lista s siadów

wierzchołka v6

Wierzchołek v6 jest s siedni z: v1, v3 oraz v4

(33)

Lista s siedztwa

Zalety:

• przejrzenie zbioru kraw dzi dokonywane w czasie O(m)

• oszcz dno pami ci – wymagana pami rz du O(m) Wady:

• sprawdzenie, czy {v

i

,v

j

}∈E(G) wymaga czasu proporcjonalnego do min{deg(v

i

), deg(v

j

)}

• usuni cie kraw dzi {u,v} wymaga czasu

proporcjonalnego do max{ deg(u), deg(v) }

(34)

Izomorfizm grafów

Def. Niech b d dane dwa grafy G1 i G2 o tej samej liczbie wierzchołków.

Powy sze grafy s izomorficzne o ile istnieje bijekcja f:V(G1)→ V(G2) taka, e wierzchołki u i v s s siednie w grafie G1 wtedy i tylko wtedy, gdy wierzchołki f(u) i f(v) s s siednie w G2.

Tw. Je li grafy G1 i G2 s izomorficzne, to 1. | V(G1)| = | V(G2)|

2. | E(G1)| = | E(G2)|

3. Ci gi stopniowe tych grafów s sobie równe Przykład Nast puj ce trzy

grafy s izomorficzne:

(35)

Izomorfizm grafów

Uwaga. Warunki podane w powy szym twierdzeniu nie s wystarczaj ce do tego, aby dwa grafy były izomorficzne.

Dla poni szych dwóch grafów G1, G2 mamy 1. | V(G1)| = | V(G2)|

2. | E(G1)| = | E(G2)|

3. Ci gi stopniowe tych grafów s sobie równe, lecz nie s one izomorficzne.

G1 = G2 =

Uwaga Nie wiadomo, czy istnieje wielomianowy algorytm, stwierdzaj cy, czy podane na wej ciu dwa grafy s izomorficzne.

(36)

Izomorfizm grafów

Przykład Sze postaci grafu Petersena

(37)

Szukanie najkrótszych dróg z

jednym ródłem

(38)

Algorytm Dijkstry

Zało enia:

• dany jest spójny graf prosty G z wagami na kraw dziach

• waga w(e) dla ka dej kraw dzi e jest nieujemna

• dany jest wyró niony wierzchołek s

Wyj cie: dla ka dego wierzchołka v algorytm znajduje d[v], długo najkrótszej drogi z wierzchołka s do v. Przez długo drogi rozumiemy sum wag kraw dzi nale cych do drogi.

Uwaga: Algorytm mo na łatwo zmodyfikowa tak, aby oprócz długo ci drogi wyznaczał kraw dzie do niej nale ce oraz tak, aby działał w przypadku grafów skierowanych.

(39)

Pseudokod

Procedure Dijkstra(G, s) begin

S := ∅; d[s] = 0; d[ v] = +∞ dla v ≠ s;

for i := 1 to n do begin

znajd v ∈ V\S, posiadaj cy minimaln etykiet d[ v];

S := S ∪ {v};

for ka dy s siad u ∈ V\S do begin

d[ u] := min{d[ u], d[ v] + w({u,v}) };

endend end

Uwaga S jest pomocniczym zbiorem wierzchołków (nazywany zbiorem pewno ci). O wierzchołku v nale cym do S wiadomo, e jego etykieta d[v]

jest równa długo ci najkrótszej drogi z s do v.

(40)

Przykład

Procedure Dijkstra(G, s) begin

S := ∅; d[s] = 0; d[ v] = +∞ dla v ≠ s;

for i := 1 to n do begin

znajd v ∈ V\S, o minimalnym d[ v];

S := S ∪ {v};

for ka dy s siad u ∈ V\S do begin

d[ u] := min{d[ u], d[ v] + w({u,v}) };

endend end

Szukamy długo ci najkrótszej drogi z s do t.

Elementy zbioru S oznaczamy kolorem czerwonym.

8 7

4

3 1

2

1 3

2

5 2

6 2

4 4

t 0

4 7 8

7

13

9

11 7

Odpowied : najkrótsza droga z s do t ma długo 16. 16

11

(41)

Uwagi o implementacji

• operacje „znajd v ∈ V\S, o minimalnym d[ v]; S := S ∪ {v};” s wykonywane O(n) razy

• operacja „ d[ u] := min{d[ u], d[ v] + w({u,v}) };” jest wykonywana O(m) razy

• do wydajnej implementacji wykorzystujemy kopiec binarny o tej własno ci, e klucz zapami tany w danym w le jest mniejszy od kluczy jego synów

• elementami kopca s wierzchołki V\S, a klucze to liczby d[v]

• w ogólnym przypadku czas budowy kopca to O(nlogn), lecz w algorytmie Dijkstry (wykorzystuj c fakt, e inicjalnie wszystkie klucze, z wyj tkiem d[s]

s identyczne) czas ten jest liniowy

• wyszukiwanie wierzchołka w zbiorze V\S o minimalnym kluczu, dzi ki własno ci kopca, mo e by wykonana w czasie stałym

• usuni cie elementu o minimalnym kluczu (czyli instrukcja „S := S ∪ {v};”) wymaga czasu O(log(|V\S|)) = O(logn)

• operacja „ d[ u] := min{d[ u], d[ v] + w({u,v}) };” wymaga czasu O(log(|V\S|))

• ostatecznie, czas działania algorytmu Dijkstry to O((n+m)logn)

(42)

Algorytm Bellmana-Forda

• Wej cie: obci ony spójny digraf G.

• Dozwolone ujemne wagi na kraw dziach.

• Algorytm stwierdza czy istnieje cykl o ujemnej sumie wag.

• Je li taki cykl istnieje, to algorytm zwraca informacj o bł dzie

• Je li powy szego cyklu nie ma, to algorytm znajduje długo ci najkrótszych dróg ze ródła s do wszystkich pozostałych

wierzchołków grafu

(43)

Szkic algorytmu

• algorytm szuka długo ci najkrótszych dróg z wyró nionego wierzchołka s do wszystkich pozostałych wierzchołków grafu

• długo znalezionej drogi z s do v jest zapami tana jako d[v]

• inicjalnie d[s] = 0 oraz d[v] = +∞ dla s v

• główna p tla algorytmu jest wykonywana n – 1 razy

• ka dy przebieg głównej p tli polega na wykonaniu relaksacji ka dej kraw dzi

• relaksacja kraw dzi (u,v) jest zmniejszeniem oszacowania d[v] je li warto dotychczas zapami tana jest wi ksza ni d[u] + w((u,v)), gdzie w((u,v)) to waga kraw dzi (u,v)

• po zako czeniu oblicze w głównej p tli algorytmu nast puje sprawdzenie czy w digrafie istnieje cykl o ujemnej sumie wag, co jest realizowane poprzez sprawdzenie czy mo na dokona relaksacji dowolnej kraw dzi

• je li relaksacja jest mo liwa, to graf zawiera cykl o ujemnej sumie wag, co oznacza, e najkrótszych dróg nie mo na obliczy

• je li relaksacja nie jest mo liwa, to zapami tane warto ci d[v] s szukanymi długo ciami najkrótszych dróg z s

(44)

procedure Bellman-Ford( G, w, s ) begin

d[s] = 0;

for each v ∈ V(G)\{s} do d[v] = +∝;

for i := 1 to n – 1 do

for each (u,v) ∈E(G) do

if d[u] + w((u,v)) < d[v] then d[v] := d[u] + w((u,v));

for each (u,v) ∈E(G) do

if d[u] + w((u,v)) < d[v] then return false;

return true;

end

Pseudokod

(45)

Przykład

8

6

3 –1

–2

–2 2

3 +∞

+∞

+∞

+∞

+∞

0 8

6

3 –1

–2

–2 2

3 +∞

+∞

+∞

8

6

0 8

6

3 –1

–2

–2 2

3 +∞

4 7 8

6 0

8

6

3 –1

–2

–2 2

3 6

4 7 8

5

0 8

6

3 –1

–2

–2 2

3 6

3 7 8

5

0 8

6

3 –1

–2

–2 2

3 5

3 7 8

5 0

Rys. 1: Sytuacja po inicjalizacji. Rys. 2: Sytuacja po

wykonaniu p tli dla i = 1 Rys. 3: Sytuacja po wykonaniu p tli dla i = 2

Rys. 4: Sytuacja po

wykonaniu p tli dla i = 3 Rys. 5: Sytuacja po

wykonaniu p tli dla i = 4 Rys. 6: Sytuacja po wykonaniu p tli dla i = 5

(46)

Poprawno

Tw Je li digraf G nie posiada ujemnych cykli osi galnych ze ródła s, to po zako czeniu algorytmu Bellmana-Forda d[v] jest równe długo ci

najkrótszej cie ki z s do v dla ka dego wierzchołka v osi galnego z s.

Dowód:

• niech s=v0,...,vk=v b dzie najkrótsz cie k z s do v

• mamy k < |V(G)|

• dowodzimy indukcyjnie, e d[vi] jest równe długo ci najkrótszej cie ki z s do vi po i-tym przebiegu „drugiej” p tli for

• je li i=0, to własno wynika z faktu, e w fazie inicjalizacji

algorytmu podstawiamy d[s]=0 i równo ta nie ulega zmianie podczas działania algorytmu

• niech i > 0. Po dokonaniu relaksacji kraw dzi (vi-1,vi) w i-tym

przebiegu p tli liczba d[vi] przyjmuje warto najkrótszej cie ki z s do vi.

(47)

Poprawno

Tw. Je li digraf G zawiera cykl o ujemnej wadze osi galny z s, to algorytm Bellmana-Forda zwraca warto false.

Dowód:

• niech v0,...,vk=v0 b dzie cyklem o ujemnej sumie wag, tzn.

• Gdyby algorytm zwrócił warto true, to dla ka dego wierzchołka cyklu mamy d[vi] ≤ d[vi-1] + w((vi-1,vi)).

• Sumuj c nierówno ci parami otrzymujemy

•Warto ci pierwszych dwóch sum w powy szym wyra eniu s sobie równe wi c

co prowadzi do sprzeczno ci.

= <

k i

i

i v

v w

1

1, )) 0 ((

=

=

=

+

k

i

i i

k i

i k

i

i d v w v v

v d

1

1 1

1 1

)) , ((

] [

] [

=

k i

i

i v

v w

1

1, )) 0 ((

(48)

Obliczanie najkrótszych cie ek pomi dzy wszystkimi parami

wierzchołków

(49)

metod mno enia macierzy

• problem: szukamy długo ci najkrótszych cie ek pomi dzy wszystkimi parami wierzchołków

• wykorzystanie metody programowania dynamicznego

• zwi zek z problemem mno enia macierzy

• pewne optymalizacje

(50)

rozwi zania

Lemat Je li v0,..., vl jest najkrótsz cie k ł cz c v0 z vl, to pod cie ka vs,...,vt, gdzie 0≤s≤t≤l jest najkrótszym poł czeniem pomi dzy wierzchołkami vs i vt.

Oznaczenie: - długo najkrótszej cie ki z i do j zawieraj cej co najwy ej m kraw dzi. Wówczas:

dla m < n oraz

ijm

d

=

=

= +

j i

j i n

k w d

dijm dijm ikm kj 0

}) ,..., 1 :

min{

,

min( 1 1

=

= +

j i

j dij i

0

0

(51)

Algorytm

Wej cie: macierz Dm współczynników oraz macierz W opisuj ca wagi wij Wyj cie: macierz Dm+1 współczynników

ijm

d m+1

dij

procedure SearchShortestPaths( Dm, W ) begin

for i := 1 to n do

for j := 1 to n do begin for k := 1 to n do return Dend m+1;

end

1 m;

ij m

ij d

d + =

);

,

min( 1

1 m kj

m ik m ij

ij d d w

d + = + +

(52)

Przykład

8

6

3 –1

–2

–2 2

3 4

5 3 2

6 1

=

0 2 3

0 2 0

2 3

0 1 0

6 8

0

W

=

0 2 0

2 3

0 2 0

2 4

3 0 1

3 2

1 0

6 4

7 8 0 D2

=

0 2 0

2 3

0 2

0

2 4

2 0

1

3 5

2 1 0

5 4

6 7

8 0 D3

=

0 2 0

2 3

0 2

0

2 4

2 0

1

3 5

3 1

0

5 3

6 7 8 0 D4

=

0 2 0

2 3

0 2

0

2 4

2 0

1

3 5

3 1 0

5 3

5 7 8 0 D5

(53)

Zwi zek z mno eniem macierzy

procedure SearchShortestPaths( Dm, W ) begin

for i := 1 to n do

for j := 1 to n do begin for k := 1 to n do return Dend m+1;

end

procedure MatrixMultiplication( A, B ) begin

for i := 1 to n do

for j := 1 to n do begin cij:= 0;

for k := 1 to n do cij:= cij + aik· bkj; return C;end

end

1 = +∞;

+ ijm

d

);

,

min( 1

1 m kj

m ik m ij

ij d d w

d + = + +

St d notacja: Dm+1 = Dm·W

(54)

Optymalizacje

Uwagi:

• (n – 1)-krotne wykonanie mno enia wg. schematu Dn – 1 = ( ... (((D0 ·W) · W) · W) ... ) · W

powoduje, e czas działania algorytmu wynosi O(n4)

• Z punktu widzenia ko cowego rozwi zania istotna jest tylko macierz Dn – 1

• Zwi kszenie wydajno ci algorytmu uzyskuje si poprzez rezygnacj z obliczania wi kszo ci macierzy po rednich Dk

Sposób post powania:

• zamierzamy obliczy macierz o numerze , która stanowi poprawne rozwi zanie, gdy Dk = Dn – 1 dla ka dego k > n – 1

• wykonujemy k razy podnoszenie macierzy do kwadratu obliczaj c tylko macierze o indeksach b d cych pot gami 2:

D1 = W, D2 = D1·D1, D4= D2·D2, ..., czas działania takiego algorytmu to O(n3logn)

) 1

2 log(

= n

k

1 1 2 2

2k =D kD k D

(55)

Algorytm Johnsona

• algorytm znajduje najkrótsze cie ki pomi dzy wszystkimi parami wierzchołków

• algorytmy Dijkstry oraz Bellmana-Forda s wykorzystywane jako podprogramy

• asymptotyczny czas działania to O(n2logn + nm), gdzie n i m to odpowiednio liczba wierzchołków oraz kraw dzi grafu

(56)

Zmiana funkcji wagowej

Uwaga Algorytm wywołuje algorytm Dijkstry dla ka dego wierzchołka.

Graf wej ciowy mo e zawiera kraw dzie o ujemnych wagach. Aby algorytm działał poprawnie modyfikowana jest funkcja wagowa w.

Nowa funkcja wagowa w’ musi spełnia poni sze własno ci:

1. cie ka P jest najkrótszym poł czeniem pomi dzy wierzchołkami u,v przy funkcji wagowej w wtedy i tylko wtedy, gdy P jest

najkrótsz cie k pomi dzy u i v z funkcj wagow w’

2. w’(e) ≥ 0 dla ka dej kraw dzi e Def. w’((u,v)) = w((u,v)) + h(u) – h(v)

Lemat Je li P jest cie k zło on z v0,...,vk, to w’(P) = w(P)+h(v0)–h(vk)

Dowód: = = + =

k

i i

i i

k

i

i v w v v h v h v

v w P

w

1 1 1

1 (' 1, ) ( ( , ) ( ) ( ))

) ('

− +

=

− +

= k w vi vi h v h vk w P h v h vk

1 ( 1, ) ( 0) ( ) ( ) ( 0) ( )

(57)

Zmiana funkcji wagowej

Lemat cie ka P zawieraj ca wierzchołki v0,...,vk, jest najkrótsz

drog z v0 do vk, przy funkcji wagowej w wtedy i tylko wtedy, gdy P jest najkrótsz cie k z v0 do vk, przy f-cji wagowej w’.

Dowód: ( ) (implikacj przeciwn dowodzi si analogicznie)

Dowodzimy implikacj metod nie wprost. Załó my, e istnieje inna cie ka P’ taka, e w’(P’) < w’(P). Korzystaj c z poprzedniego lematu

w(P’)+h(v0)–h(vk) = w’(P’) < w’(P) = w(P)+h(v0)–h(vk).

To oznacza, e w(P’) < w(P) i prowadzi do sprzeczno ci.

Lemat Graf G ma ujemny cykl przy funkcji wagowej w wtedy i tylko wtedy, gdy ma ujemny cykl przy funkcji w’.

Dowód:

Niech C b dzie dowolnym cyklem w G zawieraj cym wierzchołki v0,...,vk=v0. Wówczas:

w’(C) = w(C) + h(v0) – h(vk) = w (C), co ko czy dowód.

(58)

Konstrukcja funkcji h

Uwaga Celem jest dobranie takiej funkcji h, aby w’(e) ≥ 0 dla ka dej kraw dzi e. W tym celu tworzymy nowy graf G’ powstały z G poprzez dodanie wierzchołka s, z którego wychodzi łuk o wadze 0 do ka dego innego wierzchołka grafu G.

s

0 0 0

0

Uwagi:

• G nie ma cykli o ujemnych wagach ⇔ G’ nie ma cykli o ujemnych wagach

• definiujemy, dla ka dego wierzchołka v h(v) = d(v) – długo najkrótszej

cie ki z s do v

• Własno : h(v) ≤ h(u) + w((u,v)) dla wszystkich kraw dzi (u,v)

• Definiujemy: w’((u,v)) = w((u,v)) + h(u) – h(v) ≥ 0

(59)

Przykład

Rys. 1: Utworzenie grafu G’

poprzez dodanie wierzchołka s.

8

6 3

–1

–2

–2 2

3 d

e c b

f a

0 0

0 0 0

0

s

Rys. 2: Wyznaczenie długo ci najkrótszych cie ek z s do pozostałych wierzchołków za pomoc alg. Bellmana-Forda.

8

6 3

–1

–2

–2 2

3 –3

–5 –1 0

–3 0

0 0

0 0 0

0

0

Rys. 3: Utworzenie funkcji wagowej w’ dla grafu G’ wg wzoru:

w’((u,v)) = w((u,v)) + d(u) – d(v) . 8

9 0

0

0

0 0

5 –3

–5 –1 0

–3 0

0 3

0 1 5

3

0

(60)

Algorytm Johnsona

procedure Johnson( G ) begin

wyznacz graf G’;

if Bellamn-Ford( G’, w, s ) = false then return false;

else begin

for each v ∈ V(G’) do

h(v) := d(v); /* obliczone w algorytmie Bellmana-Forda */

for each (u,v) ∈ E(G’) do

w’((u,v)) := w((u,v)) + h(u) – h(v);

for each v ∈ V(G) do Dijkstra( G, w’, v );

for each u ∈ V(G) do

d[u,v] := [dł. najkr. cie ki z v do u w G’] + h(v) – h(u);

endend

(61)

Przykład c.d.

Skonstruujemy jeden wiersz tablicy wyj ciowej, mianowicie d[a,*], co odpowiada wykonaniu jednego obiegu odpowiedniej p tli alg. Johnsona:

• wierzchołek a – kolor czerwony

• niebieskie etykiety – najkrótsza droga z wierzchołka a

• obliczone warto ci dla grafu G’:

• po przekształceniu odwrotnym wynik dla G:

8

9 3

0

0

0 0

5 8

8 8 8

8 0

0 3

0 1 5

3

+∞ 8

f

8

8 8 8 0 a

s e

d c b a

5 f 3 5 7 8 0 a

e d c b –3 a

f

0 –5

–3 –1

0 0

h

s e

d c

b a

Wyznaczyli my wcze nie funkcj pomocnicz h:

(62)

Grafy hamiltonowskie, problem komiwoja era –

algorytm optymalny

(63)

Grafy hamiltonowskie

Def. Cykl (droga) Hamiltona jest to cykl (droga), w którym ka dy wierzchołek grafu wyst puje dokładnie raz. Graf jest hamiltonowski (półhamiltonowski), o ile posiada cykl (drog ) Hamiltona.

Przykład

Graf półhamiltonowski Graf nie jest ani hamiltonowski ani półhamiltonowski

Graf hamiltonowski

(64)

Grafy hamiltonowskie

Tw. (Ore, 1960) Je li G jest grafem prostym o n ≥ 3 wierzchołkach i deg(u) + deg(v) ≥ n dla ka dej pary nies siednich wierzchołków u i v, to graf G jest hamiltonowski.

Dowód: Załó my, e istnieje graf G o podanych zało eniach ale nie jest hamiltonowski. Mo emy zało y , e G posiada drog Hamiltona

v1→v2→...→vn oraz {v1,vn}∉E(G). St d wynika, e deg(v1) + deg(vn) ≥ n a to oznacza, e istnieje indeks i taki, e {v1,vi}∈E(G) oraz {vi-1,vn}∈E(G), co pokazano na rysunku. To prowadzi do sprzeczno ci, gdy

v1→v2→...→vi-1→vn→vn-1→... →vi→v1 jest cyklem Hamiltona.

v1

v2

v3

vi-1 vi vn-2 vn-1

vn

Cytaty

Powiązane dokumenty

stręcza się nam przytem naraz kilka pytań, z których każde zosobna rozpatrzyć wypada. Przedewszystkiem pragniemy się dowiedzieć, skąd się biorą te ogromne

Jedną z przyczyn egzogennego zatrucia witaminą D jest spożywanie suplementów diety, w których dawka w tabletce różni się od dawki dek- larowanej przez producenta.Celem pracy

Sprawdzenie czy dana kraw¦d¹ istnieje: czas staªy Sprawdzenie stopnia danego wierzchoªka: O(|V|) Usuni¦cie kraw¦dzi: czas staªy... Ka»dy wiersz tej macierzy odwzorowuje

[r]

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

U»ywaj¡c algorytmu Kruskala udowodni¢, »e ka»dy acykliczny zbiór kraw¦dzi spójnego grafu G zawarty jest w zbiorze kraw¦dzi pewnego drzewa rozpinaj¡cego

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

Exact values for the hull number of some special classes of strong product graphs are obtained... It is known that the distance is a metric on the vertex set