• Nie Znaleziono Wyników

[slajdy]

N/A
N/A
Protected

Academic year: 2021

Share "[slajdy]"

Copied!
66
0
0

Pełen tekst

(1)

Elementy teorii grafów,

sposoby reprezentacji grafów w komputerze

Autor projektu: dr Andrzej Mróz (UMK)

Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania 4.1.1 Programu Operacyjnego

(2)

Wst¦p

Graf, intuicyjnie rozumiany jako obiekt skªadaj¡cy si¦

z wierzchoªków i ª¡cz¡cych je kraw¦dzi (dokªadniejsza denicja za chwil¦): @ @ @ @ @ @ w g wg wg w g wg wg

jest prostym kombinatorycznym modelem opisuj¡cym rozmaite rzeczywiste sytuacje.

2 / 64

(3)

Modelowanie rzeczywisto±ci

Elementy danego zagadnienia modelowanego za pomoc¡ grafu na ogóª w naturalny sposób podzielone s¡ na dwie kategorie:

Miejsca na pªaszczy¹nie/w przestrzeni, zjawiska, procesy... = wierzchoªki;

Poª¡czenia, powi¡zania, zale»no±ci mi¦dzy obiektami reprezentowanymi przez wierzchoªki... = kraw¦dzie.

(4)

Zastosowania teorii grafów

Przykªady poª¡cze« zycznych:

sie¢ drogowa, kolejowa, lotnicza... (zagadnienia transportowe, GPS), pomieszczenia, korytarze w budynkach... (m.in. gry komputerowe),

sieci energetyczne, sieci komputerowe, itp.

4 / 64

(5)

Zastosowania teorii grafów

Przykªady poª¡cze« logicznych:

obrazowanie hierarchii  drzewa

(genealogia, rozwój populacji, zawody sportowe), nast¦pstwo czasowe procesów,

relacje (w sensie matematycznym), relacje mi¦dzy lud¹mi,

pracownicy  przepªyw zada«, struktura organizacji,

przydziaª zasobów, itp.

(6)

Zastosowania, cele

Mo»na ±miaªo zaryzykowa¢ stwierdzenie, »e wspóªcze±nie wªa±ciwie ka»dego dnia stykamy si¦ z urz¡dzeniami, aplikacjami, które w po±redni lub bezpo±redni sposób korzystaj¡ z poj¦¢ teorii grafów. Celem tej serii wykªadów jest omówienie szeregualgorytmów grafowych, czyli algorytmów do których wej±ciem s¡ dane

reprezentuj¡ce dany graf G, a które odpowiadaj¡ na pewne pytania natury kombinatorycznej zwi¡zane z G.

6 / 64

(7)

Cel wykªadu

Aby dobrze rozumie¢ zagadnienia zwi¡zane z grafami i algorytmy grafowe nale»y

sformalizowa¢ poj¦cie grafu i poj¦cia z nim zwi¡zane; opisa¢ pewne kombinatoryczne fakty dotycz¡ce grafów (tym zajmuje si¦teoria grafów);

ponadto, nale»y przedyskutowa¢ sposób reprezentowania grafów w komputerze.

Powy»szymi zagadnieniami zajmiemy si¦ na tym wykªadzie. Ograniczymy si¦ do poj¦¢ i faktów niezb¦dnych w wybranych algorytmach grafowych.

(8)

Wst¦p Grafy Podstawowe poj¦cia Wªasno±ci Drzewa Reprezentacje grafów

Graf niezorientowany

Denicja

Graf niezorientowany (nieskierowany) to para G = (V , E) zbiorów sko«czonych:

V nazywany zbioremwierzchoªków (w¦zªów) G, E ⊆ { {u, v} : u, v ∈ V , u 6= v} nazywany zbiorem

kraw¦dziG. @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6

Powy»szy diagram przedstawia graf G = (V , E), gdzie

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

E = { {1, 2}, {5, 1}, {1, 4}, {4, 5}, {2, 5}, {5, 3}, {6, 5} }.

8 / 64

(9)

Graf niezorientowany

Denicja

Graf niezorientowany (nieskierowany) to para G = (V , E) zbiorów sko«czonych:

V nazywany zbioremwierzchoªków (w¦zªów) G, E ⊆ { {u, v} : u, v ∈ V , u 6= v} nazywany zbiorem

kraw¦dziG. Przykªad. @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6

Powy»szy diagram przedstawia graf G = (V , E), gdzie

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

(10)

Graf niezorientowany

Denicja

Graf niezorientowany (nieskierowany) to para G = (V , E) zbiorów sko«czonych:

V nazywany zbioremwierzchoªków (w¦zªów) G, E ⊆ { {u, v} : u, v ∈ V , u 6= v} nazywany zbiorem

kraw¦dziG.

Przykªad. Czasem wygodnie jest nada¢ kraw¦dziom etykiety:

e1 e3 @ @ @ @ e2 e5 e4 e7 e6 w g wg wg w g wg wg 1 2 3 4 5 6 Wówczas G = (V , E), V = {1, 2, 3, 4, 5, 6}, E = { e1,e2,e3,e4,e5,e6,e7}, gdzie e1= {1, 2}, e2= {5, 1}, itp. 9 / 64

(11)

Graf niezorientowany

Uwagi.

Zwró¢my uwag¦, »e formalnie ka»da kraw¦d¹ to zbiór dwuelementowy, wi¦c zapis e1= {1, 2} jest równowa»ny e1= {2, 1}, gdy» w zbiorach kolejno±¢ jest nieistotna ({1, 2} = {2, 1}).

Graf G jest w peªni zakodowany przez zestaw danych (V , E). Rysunek grafu jest tylko wizualizacj¡ kombinatorycznego obiektu G. Nie nale»y zatem uto»samia¢ grafu G z jego wizualizacj¡, gdy» dany graf mo»e mie¢ wiele ró»nych gracznych prezentacji.

Za wierzchoªki zazwyczaj przyjmujemy kolejne liczby naturalne, ale denicja tego nie wymaga. Równie dobrze mo»emy wzi¡¢ litery alfabetu b¡d¹ dowolne symbole.

(12)

Graf niezorientowany

Przykªad. Poni»sze dwa rysunki

@ @ @ @ w g w g wg wg v w u x oraz     A A A A @ @ w g w g wg w g v w u x

s¡ ró»nymi wizualizacjami tego samego grafu G = (V , E), gdzie

V = {v, w, u, x},

E = { {v, w}, {v, u}, {u, w}, {x, u}}.

11 / 64

(13)

Graf niezorientowany

Kolejny przykªad. Rozwa»my graf G

    A A A A     A A A A w g w g wg w g w g w g w g 1 2 3 4 5 6 7

czyli G = (V , E), gdzie

V = {1, 2, 3, 4, 5, 6, 7},

E = { {1, 2}, {2, 3}, {1, 3}, {4, 5}, {6, 5} }.

Jak widzimy, graf nie musi by¢ w jednym kawaªku.

Doprecyzujemy t¦ nieformaln¡ obserwacj¦ w dalszej cz¦±ci (poj¦cia spójno±ci,spójnej skªadowej,...).

(14)

Orientacja kraw¦dzi

W grae niezorientowanym wierzchoªki deniuj¡ce kraw¦d¹ e = {v, w} s¡ nierozró»nialne.

Cz¦sto w modelowanym zjawisku zachodzi potrzeba wyró»nienia jednego z wierzchoªków, np. v, jakopocz¡tkui drugiego jako ko«cakraw¦dzi i traktowania kraw¦dzi jako pary uporz¡dkowanej (v, w).

Prowadzi to do denicjigrafu zorientowanego (in. skierowanego). W gracznych prezentacjach zamiast linii rysujemy zazwyczaj strzaªki (zwane ªukami) o zwrocie od wierzchoªka v do w.

Uwaga

Przypomnijmy, »e {v, w} = {w, v}, ale (v, w) 6= (w, v), o ile v 6= w.

13 / 64

(15)

Wst¦p Grafy Podstawowe poj¦cia Wªasno±ci Drzewa Reprezentacje grafów

Graf zorientowany

Denicja

Graf zorientowany (skierowany) to para G = (V , E) zbiorów sko«czonych:

V nazywany zbioremwierzchoªków (w¦zªów) G, E ⊆ { (u, v) : u, v ∈ V } = V × V nazywany zbiorem

kraw¦dzi(in. ªuków lubstrzaªek) G.

- ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6

Powy»szy diagram przedstawia graf G = (V , E), gdzie

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

(16)

Graf zorientowany

Denicja

Graf zorientowany (skierowany) to para G = (V , E) zbiorów sko«czonych:

V nazywany zbioremwierzchoªków (w¦zªów) G, E ⊆ { (u, v) : u, v ∈ V } = V × V nazywany zbiorem

kraw¦dzi(in. ªuków lubstrzaªek) G.

Przykªad. - ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6

Powy»szy diagram przedstawia graf G = (V , E), gdzie

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

E = { (1, 2), (2, 1), (1, 5), (1, 4), (4, 5), (2, 5), (5, 3), (5, 6) }.

14 / 64

(17)

Graf zorientowany

Podobnie jak w przypadku niezorientowanym, mo»na etykietowa¢ ªuki.

Zauwa»my, »e denicja grafu zorientowanego dopuszcza sytuacj¦, gdy pomi¦dzy par¡ wierzchoªków s¡ dwa (przeciwnie skierowane) ªuki: - w g wg Ale sytuacja -w g wg

nie jest dopuszczona w przyj¦tej denicji!

W denicji grafu zorientowanego dopuszczamy ªuki postaci (v, v). Nazywamy jep¦tlami(zaczepionymi w wierzchoªku v).

(18)

Wierzchoªki i kraw¦dzie

Ustalmy graf niezorientowany G = (V , E) (dla grafu zorientowanego denicje analogiczne).

Denicja

wierzchoªki u, v ∈ V s¡s¡siednie, gdy {u, v} ∈ E, kraw¦dzie e1,e2∈E s¡s¡siednie, gdy e1∩e26= ∅(maj¡ wspólny wierzchoªek),

wierzchoªek v ∈ V jestincydentnyz kraw¦dzi¡ e ∈ E (lub: kraw¦d¹ e jestincydentnaz wierzchoªkiem v), gdy v ∈ e.

Ponadto

dla kraw¦dzi e = {u, v} ∈ E, u i v nazywamy ko«camie (czyli e jest incydentna z w ⇔ w jest jednym z ko«ców e), gdy G jest zorientowany, to dla kraw¦dzi e = (u, v) ∈ E (oznaczanej czasem e = u → v), u nazywamypocz¡tkiem, a v ko«ceme; mówimy wówczas, »e e jest kraw¦dzi¡

wychodz¡c¡ z u iwchodz¡c¡do v.

16 / 64

(19)

Wierzchoªki i kraw¦dzie

Denicja

Stopniemwierzchoªka v ∈ V nazywamy liczb¦ degG(v) := #{e ∈ E : v ∈ e} tj. liczb¦ kraw¦dzi incydentnych z wierzchoªkiem v. Gdy G jest grafem zorientowanym to rozró»nia si¦stopie« wyj±ciowywierzchoªka v ∈ V :

out.degG(v) = deg+G(v) := #{w ∈ V : v → w ∈ E} orazstopie« wej±ciowy wierzchoªka v ∈ V :

(20)

Drogi

Denicja

Droga w grae niezorientowanym G = (V , E)  ci¡g wierz-choªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈ V ,

ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}. Denicja

Drogaw grae zorientowanym G = (V , E)  ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈ V , ej ∈ E,

k ≥ 0, taki, »e ej = (vj−1,vj).

W obu przypadkach (zorientowanym lub nie)

dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,

liczb¦ k nazywamydªugo±ci¡drogi, v0 pocz¡tek, vk koniecdrogi P

(mówimy, »e P jest drog¡ z v0 do vk).

18 / 64

(21)

Drogi

Uwaga

Zauwa»my, »e w obu przypadkach (zorientowanym i nie), droga P = (v0,e1,v1,e2,v2, . . . ,ek,vk) jest jednoznacznie wyznaczona przez ci¡g swoich wierzchoªków, dlatego cz¦sto piszemy skrótowo P = (v0,v1, . . . ,vk).

Przykªad. Graf niezorientowany

@ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6

Na diagramie zaznaczyli±my drog¦

(22)

Drogi

Uwaga

Zauwa»my, »e w obu przypadkach (zorientowanym i nie), droga P = (v0,e1,v1,e2,v2, . . . ,ek,vk) jest jednoznacznie wyznaczona przez ci¡g swoich wierzchoªków, dlatego cz¦sto piszemy skrótowo P = (v0,v1, . . . ,vk).

Przykªad. Graf zorientowany - ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6 P = (1, (1, 2), 2, (2, 1), 1, (1, 5), 5, (5, 3), 3) (lub skrótowo P = (1, 2, 1, 5, 3)). 20 / 64

(23)

Cykle i drogi proste

Denicja

Niech P = (v0,e1,v1,e2,v2, . . . ,ek,vk) b¦dzie drog¡ w grae

(zorientowanym lub nie). Wówczas

je»eli vi6=vj dla ka»dych 0 ≤ i 6= j ≤ k, to P nazywamy

drog¡ prost¡,

je»eli v0=vk i k > 0 to P nazywamydrog¡ zamkni¦t¡lub

cyklem

gdy dodatkowo vi 6=vj oraz ei 6=ej dla ka»dych

1 ≤ i 6= j ≤ k, to cykl P nazywamycyklem prostym.

Uwaga

Cz¦sto w literaturze u»ywa si¦ nazwy cykl w znaczeniu cykl prosty.

(24)

Cykle i drogi proste

Przykªady. @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6

Droga P = (1, 2, 5, 6) jest drog¡ prost¡. @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6

Droga P = (1, 2, 5, 1) jest cyklem prostym.

22 / 64

(25)

Cykle i drogi proste

Przykªady. @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6

Droga P = (1, 2, 5, 1, 2, 5, 1) (nawini¦ta dwa razy) jest cyklem, ale nie jest cyklem prostym.

- ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6

(26)

Drogi niezorientowane

Niech G = (V , E) b¦dzie grafem zorientowanym.

Denicja

Droga niezorientowana w grae G = (V , E)  ci¡g W = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈ E, k ≥ 0, taki, »e ej = (vj−1,vj) lub ej = (vj,vj−1).

Uwaga

W grae zorientowanym ka»da droga jest drog¡ niezorientowan¡, ale nie na odwrót!

24 / 64

(27)

Drogi niezorientowane

Przykªad. - ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6 Droga niezorientowana W = (1, (1, 4), 4, (4, 5), 5, (2, 5), 2). Zauwa»my, »e ci¡g wierzchoªków nie zawsze wyznacza

jednoznacznie drog¦ niezorientowan¡! Na powy»szym grae mamy dwie ró»ne niezorientowane drogi: (1, (1, 2), 2) oraz (1, (2, 1), 2).

(28)

Spójno±¢

Denicja

Graf niezorientowany G = (V , E) jest spójny, o ile dla ka»dych u, v ∈ V istnieje droga P z u do v.

Denicja

Graf zorientowany G = (V , E) jest sªabo spójny, o ile dla ka»dych u, v ∈ V istnieje droga niezorientowana P z u do v. Denicja

Graf zorientowany G = (V , E) jest silnie spójny, o ile dla ka»dych u, v ∈ V istnieje droga P z u do v.

26 / 64

(29)

Spójno±¢

Przykªady. Graf spójny:

@ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 Graf niespójny:     A A A A     A A A A w g w g wg w g w g w g w g 1 2 3 4 5 6 7

(30)

Spójno±¢

Przykªady. Graf sªabo spójny ale nie silnie spójny:

- ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6

Graf silnie spójny:

   A A A K -w g w g wg 1 2 3 Uwaga

Graf zorientowany, który jest silnie spójny, jest te» sªabo spójny.

28 / 64

(31)

Podgraf

Denicja

Graf H = (V0,E0) nazywamy podgrafemgrafu G = (V , E),

o ile V0 V oraz E0 E.

Denicja

Podgraf H = (V0,E0) grafu G = (V , E) nazywamypeªnym,

o ile

u,v∈V0 {u, v} ∈ E ⇒ {u, v} ∈ E0

lub w wersji zorientowanej

(32)

Podgraf

Przykªad. Graf G: @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 Podgraf grafu G: w g wg w g wg 1 2 4 5

Podgraf peªny grafu G: @ @ @ @ w g wg w g wg 1 2 4 5 30 / 64

(33)

Podgraf

Zauwa»my, »e podgraf peªny H = (V0,E0) grafu G = (V , E) jest

w peªni wyznaczony przez zbiór swoich wierzchoªków V0.

Dlatego mówimy, »e H jest peªnym podgrafem grafu G indukowanymprzez wierzchoªki ze zbioru V0.

Zatem graf G ma tyle peªnych podgrafów, ile jest podzbiorów zbioru V , czyli 2|V | (wliczaj¡c podgraf pusty i caªy graf G, który

te» jest oczywi±cie swoim podgrafem peªnym). Dowolnych podgrafów jest na ogóª sporo wi¦cej.

(34)

Skªadowe spójno±ci

Ustalmy graf niezorientowany G = (V , E).

Denicja

Mówimy, »e v ∈ V jest osi¡galny z u ∈ V , gdy w G istnieje droga P z u do v.

Obserwacja

Jest osi¡galny jest relacj¡ zwrotn¡, symetryczn¡ i przechodni¡, czyli relacj¡ równowa»no±ci w V . Zatem relacja ta rozbija zbiór V na klasy abstrakcji. Denicja

Spójn¡ skªadow¡ (inaczej skªadow¡ spójno±ci) w grae G nazywamy peªny podgraf grafu G o wierzchoªkach z dowolnej klasy abstrakcji relacji jest osi¡galny.

32 / 64

(35)

Skªadowe spójno±ci

Innymi sªowy: spójna skªadowa jest maksymalnym spójnym podgrafem peªnym grafu G.

Wniosek

Graf G jest spójny ⇔ posiada tylko jedn¡ spójn¡ skªadow¡. W poni»szym grae mamy 3 spójne skªadowe (zaznaczone ró»nymi kolorami).     A A A A A A A A     w g w g wg w g w g w g w g 1 2 3 4 5 6 7

(36)

Silnie spójne skªadowe

Ustalmy graf zorientowany G = (V , E).

Relacja jest osi¡galny deniowana jak dla grafu niezorientowanego (v ∈ V jest osi¡galny z u ∈ V , gdy w G istnieje droga P z u do v), nie jest symetryczna! Nie mo»e wi¦c by¢ mowy o klasach abstrakcji. Ale mo»emy zdeniowa¢ poj¦cie silnej skªadowej spójno±ci

nast¦puj¡co: Denicja

Peªny podgraf H grafu G, który jest maksymalny i silnie spójny nazywamy silnie spójn¡ skªadow¡grafu G.

Czasem rozwa»a si¦ te» poj¦ciesªabo spójnej skªadowej, deniowanej przy pomocy osi¡galno±ci przez drogi

niezorientowane (lub równowa»nie, jako maksymalny peªny podgraf sªabo spójny).

34 / 64

(37)

Silnie spójne skªadowe

Przykªad. Graf -? @ ? @ @ I  w g wg w g wg 1 2 3 4

posiada dwie silnie spójne skªadowe:

-? @ @ @ I w g wg w g 1 2 4 oraz: w g 3

(38)

Graf peªny

Denicja

Graf peªny G = (V , E) to graf niezorientowany taki, »e dla ka»dych u, v ∈ V , {u, v} ∈ E (gdy V = {1, 2, . . . , n}, to G oznaczamy Kn). Przykªady. K1: 1wg K2: 1wg 2wg K3:     A A A A w g w g wg 1 2 3 K4: @ @ @ @ w g wg w g wg 1 2 3 4 36 / 64

(39)

Graf dwudzielny

Denicja

Graf niezorientowany G = (V , E) nazywamy dwudzielnym, je»eli istnieje podziaª V na dwa rozª¡czne niepuste podzbiory V1,V2 (tj. V1∪V2=V ) taki, »e

{u,v}∈E [(u ∈ V1 ∧ v ∈ V2) ∨ (v ∈ V1 ∧ u ∈ V2)].

Denicja

Graf G = (V , E) nazywamy peªnym dwudzielnym, je»eli ist-nieje podziaª V na dwa rozª¡czne niepuste podzbiory V1,V2 (tj. V1∪V2=V ) taki, »e

(40)

Graf dwudzielny

Przykªad. Graf dwudzielny:

@ @ @ @    w g wg w g wg w g 1 2 3 4 5 Podziaª V = V1∪V2, gdzie V1= {1, 3}, V2 = {2, 4, 5}. Powy»szy graf nie jest grafem peªnym dwudzielnym (przy tym podziale brakuje kraw¦dzi {1, 5} i {3, 2}).

Rozwa»a si¦ równie» grafy dwudzielne w przypadku zorientowanym, my jednak nie b¦dziemy potrzebowa¢ tego poj¦cia.

38 / 64

(41)

Drzewa

W tym rozdziale rozwa»amy tylko grafy niezorientowane. Denicja

Graf acykliczny= graf nie zawieraj¡cy cykli prostych. Denicja

Drzewo(drzewo wolne) = graf spójny i acykliczny. Denicja

Las = graf acykliczny.

Nazwa las wzi¦ªa si¦ z tego, »e spójne skªadowe grafu acyklicznego s¡ drzewami (tak wi¦c las skªada si¦ z drzew).

(42)

Drzewa

Przykªad. Poni»szy graf nie jest drzewem, gdy» zawiera cykl:

@ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6

Poni»szy graf nie jest drzewem, gdy» jest niespójny (ale jest lasem):

    A A A A     w g w g wg w g w g w g w g 1 2 3 4 5 6 7 40 / 64

(43)

Drzewa

Przykªad. Drzewo: @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6

(44)

Charakteryzacja drzew

Twierdzenie

G = (V , E)  graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:

G jest drzewem,

dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P z u do v,

G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny,

G jest spójny i |E| = |V | − 1, G jest acykliczny i |E| = |V | − 1,

G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.

42 / 64

(45)

Drzewa z korzeniem

Denicja

Drzewo z korzeniem= para (T , r), gdzie T = (V , E)

jest drzewem, a r ∈ V wyró»nionym wierzchoªkiem, zwanym korzeniem.

Przykªad. Drzewo z korzeniem (T , 5):

@ @ @ @ w g wg wg w g wg wg w g 1 2 3 4 5 6 7 Drzewo z korzeniem (T , 1): @ @ @ @ w g wg wg w g wg wg w g 1 2 3 4 5 6 7

(46)

Drzewa z korzeniem

Przyj¦ªo si¦ rysowa¢ korze« na górze a pozostaªe wierzchoªki poziomami. Drzewo (T , 1) z poprzedniego slajdu zgodnie z t¡ konwencj¡: @ @ @ @ @ @ @ @ w g w g wg w g wg wg w g 1 2 5 3 4 6 7

Na przykªadzie powy»szego grafu zilustrujemy szereg prostych poj¦¢ zwi¡zanych z drzewami z korzeniem, bez ich precyzyjnego

deniowania.

44 / 64

(47)

Drzewa z korzeniem

@ @ @ @ @ @ @ @ w g w g wg w g wg wg w g 1 2 5 3 4 6 7

Przodkami (in.poprzednikami) wierzchoªka 6 s¡ wierzchoªki 5 i 1.

Potomkami(in. nast¦pnikami) wierzchoªka 5 s¡ wierzchoªki 3, 4, 6, 7.

(48)

Drzewa z korzeniem

@ @ @ @ @ @ @ @ w g w g wg w g wg wg w g 1 2 5 3 4 6 7

Ojcem(in.bezpo±rednim poprzednikiem) wierzchoªka 6 jest wierzchoªek 5.

Synami(in. bezpo±rednimi nast¦pnikami) wierzchoªka 5 s¡ wierzchoªki 3, 4, 6.

46 / 64

(49)

Drzewa z korzeniem

@ @ @ @ @ @ @ @ w g w g wg w g wg wg w g 1 2 5 3 4 6 7

Bratemwierzchoªka 5 jest wierzchoªek 2.

Stopie«wierzchoªka = liczba synów,

Li±¢midrzewa (T , 1) s¡ wierzchoªki 2, 3, 4, 7 (wszystkie wierzchoªki o stopniu 0).

(50)

Drzewa z korzeniem

@ @ @ @ @ @ @ @ w g w g wg w g wg wg w g 1 2 5 3 4 6 7

Gª¦boko±¢(poziom) wierzchoªka v = dªugo±¢ drogi (jedynej! patrz twierdzenie) od r do v (ozn. h(v)),

np. h(1) = 0, h(7) = 3, h(5) = 1,

48 / 64

(51)

Drzewa z korzeniem

@ @ @ @ @ @ @ @ w g w g wg w g wg wg w g 1 2 5 3 4 6 7

Wysoko±¢drzewa = h(T ) = h(T , r) := max{h(v) : v ∈ V }. Zatem h(T ) = 3 dla powy»szego drzewa (T , 1).

(52)

Drzewa

Denicja

Drzewo binarne= drzewo z korzeniem (T , r), w którym ka»dy wierzchoªek ma stopie« ≤ 2 (wyró»nionylewy iprawy syn). W drzewie binarnym, je»eli dany wierzchoªek ma tylko jednego syna, trzeba ustali¢, czy jest lewy czy prawy.

Denicja

Poddrzewoo korzeniu x drzewa (T , r) = peªny podgraf grafu T indukowany przez wierzchoªek x i wszystkich potomków x.

Lewe(odp. prawe)poddrzewo drzewa binarnego (T , r) = poddrzewo drzewa T o korzeniu b¦d¡cym lewym (odp. prawym) synem korzenia r.

50 / 64

(53)

Reprezentacja grafu

Przezreprezentacj¦ grafu (w komputerze) rozumiemy sposób zakodowania kombinatorycznego obiektu, jakim jest graf w postaci zestawu danych w programie komputerowym.

Istnieje kilka ró»nych sposobów reprezentacji grafu, ka»da z nich ma swoje wady i zalety. Ró»ni¡ si¦ m.in.:

rozmiarem zajmowanej pami¦ci,

czasem wykonywania zapyta« i operacji modykuj¡cych, stopniem trudno±ci implementacji.

(54)

Reprezentacja grafu

Wybór odpowiedniego sposobu jest mocno uzale»niony m.in. od:

rozwa»anego algorytmu (jakie operacje na grae b¦dziemy wykonywa¢ najcz¦±ciej),

rodzaju grafów, które b¦d¡ analizowane przez algorytm.

Nale»y starannie przemy±le¢ wybór struktury, gdy» od niego b¦dzie zale»aªa zªo»ono±¢ obliczeniowa, pami¦ciowa algorytmu jak i ªatwo±¢ implementacji.

Zakªadamy, »e czytelnik zna elementarne (statyczne i dynamiczne) struktury danych wybranego j¦zyka programowania.

52 / 64

(55)

Macierz s¡siedztwa

Ustalmy graf G = (V , E), V = {1, 2, . . . , n}.

Macierz (tablica) s¡siedztwa: macierz A = A(G) ∈ Mn×n(Z)

o wspóªczynnikach:

Ai,j = 

0, {i, j} /∈ E, 1, {i, j} ∈ E, lub w wersji zorientowanej:

Ai,j = 

0, (i, j) /∈ E, 1, (i, j) ∈ E.

(56)

Macierz s¡siedztwa

Przykªad. @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 Ai,j 1 2 3 4 5 6 1 0 1 0 1 1 0 2 1 0 0 0 1 0 3 0 0 0 0 1 0 4 1 0 0 0 1 0 5 1 1 1 1 0 1 6 0 0 0 0 1 0

Dla grafu niezorientowanego jest to macierz symetryczna (ka»da kraw¦d¹ odpowiada dwóm 1-kom w macierzy) z zerami na przek¡tnej.

54 / 64

(57)

Macierz s¡siedztwa

Przykªad. - ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6 Ai,j 1 2 3 4 5 6 1 0 1 0 1 1 0 2 1 0 0 0 1 0 3 0 0 0 0 0 0 4 0 0 0 0 1 0 5 0 0 1 0 0 1 6 0 0 0 0 0 0

Dla grafu zorientowanego macierz s¡siedztwa na ogóª nie jest symetryczna (ka»da kraw¦d¹ odpowiada jednej 1-ce w macierzy). Niekoniecznie zawsze zera na przek¡tnej.

(58)

Macierz s¡siedztwa

Zalety:

operacja zapytania:

czy wierzchoªki i, j ∈ V s¡ s¡siednie (tj. czy istnieje kraw¦d¹ {i, j} ∈ E lub, w wersji zorientowanej, ªuk (i, j) ∈ E)? realizowana w czasie staªym (odczyt pozycji (i, j) z tablicy), ªatwo±¢ implementacji.

Wady:

du»e zu»ycie pami¦ci: O(|V |2),

trzymamy niepotrzebnie mnóstwo zer (zwªaszcza dla grafów rzadkich, tj. maj¡cych stosunkowo niewiele kraw¦dzi

w porównaniu do liczby wierzchoªków).

56 / 64

(59)

Listy s¡siedztwa

Ustalmy graf G = (V , E), V = {1, . . . , n}.

Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do (dynamicznej) listy s¡siadów wierzchoªka i.

Przypomnienie:

gdy G niezorientowany, j jest s¡siadem i ⇔ {i, j} ∈ E; gdy G zorientowany, j jest s¡siadem i ⇔ (i, j) ∈ E.

Dynamiczne listy mo»na zaimplementowa¢ r¦cznie, przy wyko-rzystaniu wska¹ników, lub skorzysta¢ z gotowych struktur, np. vector biblioteki STL j¦zyka C++:

(60)

Listy s¡siedztwa

Przykªad. @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 L[i] 1 → 2 → 5 → 4 2 → 1 → 5 3 → 5 4 → 1 → 5 5 → 4 → 1 → 2 → 3 → 6 6 → 5

Znak → powy»ej symbolizuje wska¹nik.

Kolejno±¢ s¡siadów w listach na ogóª nie jest istotna.

58 / 64

(61)

Listy s¡siedztwa

Przykªad. - ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6 L[i] 1 → 2 → 5 → 4 2 → 1 → 5 3 4 → 5 5 → 3 → 6 6

Znak → powy»ej symbolizuje wska¹nik.

(62)

Listy s¡siedztwa

Zalety:

wygodna i szybka realizacja zapytania:

zwró¢ list¦ wszystkich s¡siadów wierzchoªka i.

mniejsze zu»ycie pami¦ci (w porównaniu do macierzy s¡siedztwa)  trzymamy tylko istotne informacje.

Wady:

nieco bardziej kªopotliwa implementacja.

60 / 64

(63)

Sklejone listy s¡siedztwa

Ustalmy graf G = (V , E), V = {1, . . . , n}, |E| = m.

Sklejone listy s¡siedztwa: w peªni statyczna wersja list s¡siedztwa  struktura przechowywana w dwóch tablicach:

Tablica sklejonych list s¡siedztwa (TSLS)  skªada si¦ z 2m komórek w wersji nieskierowanej lub m komórek w wersji skierowanej i zawiera ustawione jedna za drug¡ listy s¡siadów kolejnych wierzchoªków.

Tablica podziaªów (TP)  skªada si¦ z n + 1 komórek. W jej i-tej komórce zapami¦tamy, pocz¡wszy od której komórki w TSLS zapisani s¡ s¡siedzi wierzchoªka o numerze i.

Dodatkowo kªadziemy TP[n + 1] := 2m + 1 (w wersji

nieskierowanej) lub TP[n + 1] := m + 1 (w wersji skierowanej).

⇒ s¡siedzi wierzchoªka i zapisani s¡ w komókach tablicy TSLS o indeksach mi¦dzy TP[i] a TP[i + 1] − 1.

(64)

Sklejone listy s¡siedztwa

Przykªad. @ @ @ @ w g wg wg w g wg wg 1 2 3 4 5 6 i 1 2 3 4 5 6 7 TP 1 4 6 7 9 14 15 i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 TSLS 2 5 4 1 5 5 1 5 4 1 2 3 6 5 62 / 64

(65)

Sklejone listy s¡siedztwa

Przykªad. - ? ? @ @ @ R - - w g wg wg w g wg wg 1 2 3 4 5 6 i 1 2 3 4 5 6 7 TP 1 4 6 6 7 9 9 i 1 2 3 4 5 6 7 8 TSLS 2 5 4 1 5 5 3 6

(66)

Inne reprezentacje

Uwaga

W obu wersjach list s¡siedztwa (dynamicznej i statycznej  skle-jonej), warto postortowa¢ wierzchoªki w listach s¡siadów dla poszczególnych wierzchoªków. Wówczas mo»na istotnie przyspieszy¢ sprawdzanie, czy dane dwa wierzchoªki s¡ s¡siednie. Istniej¡ jeszcze inne, bardziej specyczne sposoby reprezentowania grafu G = (V , E), V = {1, . . . , n}, E = {e1,e2, . . . ,em}:

Lista (tablica) kraw¦dzi: [[v1

1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j =  0, i /∈ ej, 1, i ∈ ej. 64 / 64

Cytaty

Powiązane dokumenty

Nazwa projektu: Spawanie, kopanie, kosztorysów pisanie – szansą rozwoju dla małopolskich MSP i ich pracowników Nr Projektu: WND-POKL.08.01.01-12-099/12.. 1 REGULAMIN UCZESTNICTWA

UP mogą ubiegać się o zwrot kosztów dojazdu, który przysługuje za udział w zajęciach z poradnictwa psychologicznego i szkoleniu zawodowym realizowanych w

Dotyczy zapytania ofertowego: Wynajem sal szkoleniowych i/lub zapewnienie usług cateringowych dla uczestników projektu „Akademia Profesjonalnego Wizerunku Firmy

a) Załączonych do oferty kserokopii certyfikatów, uprawnień, referencji. Za każdy dostarczony dokument przyznawany jest 1 punkt. Maksymalnie można uzyskać 4

Projekt Program stypendialny dla uczniów szczególnie uzdolnionych z terenu województwa podkarpackiego w roku szkolnym 2013/2014 jest skierowany do szczególnie

Po zakooczeniu oceny wszystkich wniosków utworzone zostaną dwie listy rankingowe (osobno dla uczniów szkół gimnazjalnych i ponadgimnazjalnych) w kolejności malejącej

3.7 Łączna liczba godzin zajęć integracji sensorycznej do zrealizowania w ramach projektu ( na dwie placówki) wynosi 360 godzin. Jedna godzina definiowana jest jako godzina

(imię/imiona i nazwisko dziecka) oraz wyrażam zgodę na uczestnictwo mojego dziecka w zajęciach organizowanych w ramach projektu „Innowacyjna i kreatywna edukacja –