30.06.2013 Views

Základní pojmy teorie grafů a jejich uložení v počítači - Atrey

Základní pojmy teorie grafů a jejich uložení v počítači - Atrey

Základní pojmy teorie grafů a jejich uložení v počítači - Atrey

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Datové struktury pro ukládání graf˚u<br />

TGH02 - grafy, základní <strong>pojmy</strong><br />

Jan Bˇrezina<br />

Technical University of Liberec<br />

28. února 2012


Datové struktury pro ukládání graf˚u<br />

Definice grafu<br />

Definition<br />

Graf (obyčejn´y neorientovan´y) je uspoˇrádaná dvojice (V, E), kde V je<br />

mnoˇzina vrchol˚u a E ⊆ V<br />

V<br />

2 je mnoˇzina hran. Symbolem n značíme<br />

mnoˇzinu vˇsech n prvkov´ych podmnoˇzin mnoˇziny V .<br />

Tato definice neumoˇzňje smyčky (hrany začínající a končící ve stejném<br />

vrcholu), ani násobné hrany. Graf se smyčkami a násobn´ymi hranami se<br />

naz´yvá pseudograf nebo multigraf.<br />

Definition<br />

Graf (obyčejn´y orientovan´y) je uspoˇrádaná dvojice (V, E), kde V je<br />

mnoˇzina vrchol˚u a E ⊆ V × V je mnoˇzina hran.<br />

|V | - velikost mnoˇziny V , zde tedy počet vrchol˚u grafu


Datové struktury pro ukládání graf˚u<br />

Kreslení graf˚u:<br />

vrcholy - puntíky, hrany - oblouky<br />

pouze pom˚ucka<br />

Kreslení graf˚u


Datové struktury pro ukládání graf˚u<br />

Kruˇznice - Cn<br />

V = {1, 2, . . . , n}<br />

E = {{1, 2}, {2, 3}, . . . , {i, i + 1}, . . . , {n − 1, n}, {n, 1}}


Datové struktury pro ukládání graf˚u<br />

Cesta - Pn<br />

V = {1, 2, . . . , n}<br />

E = {{1, 2}, {2, 3}, . . . , {i, i + 1}, . . . , {n − 1, n}}


Datové struktury pro ukládání graf˚u<br />

Úpln´y graf - Kn


Datové struktury pro ukládání graf˚u<br />

Úpln´y bipartitní graf - Kn,m


Datové struktury pro ukládání graf˚u<br />

Grafy Platónsk´ych těles


Datové struktury pro ukládání graf˚u<br />

Fulereny


Datové struktury pro ukládání graf˚u<br />

Isomorfismus graf˚u<br />

Definition<br />

Dva grafy G a G ′ nazveme izomorfní jestliˇze existuje vzájemně<br />

jednoznačné zobrazení f : V ↔ V ′ , takové, ˇze<br />

{x, y} ∈ E právě kdyˇz {f(x), f(y)} ∈ E ′ .<br />

Zobrazení f naz´yváme izomorfismus graf˚u G a G ′ . Značíme G ∼ = G ′ .<br />

• pˇrejmenování vrchol˚u<br />

• pˇríklad K3,3<br />

• obecně těˇzká úloha rozhodnout zda jsou dva grafy isomorfní


Datové struktury pro ukládání graf˚u<br />

Podgrafy, cesta a kruˇznice jinak, sled<br />

Definition<br />

ˇRekneme, ˇze graf H je podgrafem grafu G, pokud V (H) ⊆ V (G) a<br />

E(H) ⊆ E(G). (maˇzu vrchuly i hrany) ˇRekneme, ˇze graf H je<br />

indukovan´ym podgrafem grafu G, pokud V (G) ⊆ V (G) a<br />

E(H) = E(G) ∩ V (H)<br />

2 . Tj. podgraf obsahuje právě vˇsechny hrany<br />

p˚uvodního grafu na podmnoˇzině vrchol˚u. (maˇzu jen vrcholy)<br />

Cesta v grafu G (z vrcholu A do vrcholu B délky t): Podgraf isomorfní s<br />

Pt. Vrcholy se nemohou opakovat.<br />

Kruˇznice v grafu G (délky t): Podgraf isomorfní s Ct. Vrcholy se<br />

nemohou opakovat.<br />

Sled v grafu G (z vrcholu A do vrcholu B délky t) je posloupnost<br />

(v0, e1, v1, e2, . . . , et, vt), kde platí ei = {vi−1, vi} ∈ E(G). Vrcholy se<br />

mohou opakovat.<br />

Lemma<br />

V grafu G existuje cesta z a do b právě tehdy pokud existuje sled z a do b.


Datové struktury pro ukládání graf˚u<br />

ekvivalence, tˇrídy ekvivalence<br />

Relace (vztah) na mnoˇzině X je podmnoˇzina X × X.<br />

(. . . těch dvojic, které jsou v relaci.) píˇseme: x ∼ y<br />

Relace se naz´yvá ekvivalence pokud platí:<br />

1) x ∼ x, 2) x ∼ y ⇒ y ∼ x, 3) x ∼ y ∧ y ∼ z ⇒ x ∼ z;<br />

reflexivita, symetrie, tranzitivita.<br />

Označme R[x] mnoˇzinu vˇsech y ∈ X ekvivalentních s x,<br />

tzv. tˇrídu ekvivalence prvku x. Platí:<br />

• R[x] je vˇzdy neprázdná<br />

• bud’ R[x] a R[y] jsou bud’ totoˇzné nebo disjunktní<br />

• Tˇrídy ekvivalence jednoznačně určují relaci ekvivalence.


Datové struktury pro ukládání graf˚u<br />

souvislost grafu, komponenty<br />

Definition<br />

ˇRekneme, ˇze graf G je souvisl´y pokud pro kaˇzdé dva vrcholy x a y<br />

existuje cesta z x do y.<br />

Komponenty grafu jsou jeho největˇsí souvislé indukované podgrafy.<br />

Zavedeme relaci pro vrcholy: x ∼ y, pokud existuje cesta z x do y.<br />

Lemma<br />

Relace ∼ je ekvivalence. (tj. reflexivní, symetrická a tranzitivní relace)<br />

Mnoˇzina vrchol˚u V se rozpadne na tˇrídy ekvivalence Vi. Tˇrídy<br />

ekvivalence Vi jsou komponenty grafu. Graf je souvisl´y pokud má jen<br />

jednu komponentu.


Datové struktury pro ukládání graf˚u<br />

vzdálenost v grafu<br />

Pro dva vrcholy x, y souvislého grafu G definujeme <strong>jejich</strong> vzdálenost<br />

dG(x, y) jako délku nejkratˇsí cesty v grafu G. Funkci dG : V × V → R<br />

naz´yváme metrika grafu. Metrika má vlastnosti:<br />

1. d(x, y) ≥ 0, pˇričemˇz d(x, y) = 0 pravě kdyˇz x = y<br />

2. (symetrie) d(x, y) = d(y, x)<br />

3. (trojúhelníková nerovnost) d(x, y) ≤ d(x, z) + d(z, y)<br />

Zobecnění pro grafy s hranami ohodnocen´ymi kladn´ymi čísly.


Datové struktury pro ukládání graf˚u<br />

Pojmy zaloˇzené na metrice<br />

• excentricita vrcholu je jeho vzdálenost k nejvzdálenějˇsímu vrcholu,<br />

ɛG(v) = max<br />

u∈V dG(v, u)<br />

• pr˚uměr grafu, diam G, je maximální excentricita<br />

• poloměr grafu, minimální excentricita<br />

• periferní vrcholy - ty co mají excentricitu rovnou pr˚umeru<br />

• centrální vrcholy - ty co mají excentricitu rovnu poloměru<br />

• matice vzdáleností


Datové struktury pro ukládání graf˚u<br />

Stupeň vrcholu<br />

Stupeň vrcholu deg(v) v neorientovaném grafu je počet hran<br />

vychazejících z v<br />

pro orientované grafy: indegree deg − (v), outdegree deg + (v)<br />

Lemma<br />

<br />

deg(v) = 2|E|<br />

v∈V<br />

Skóre grafu - neklesající posloupnost stupň˚u vˇsech vrchol˚u grafu, nemění<br />

se pˇri isomorfismu


Datové struktury pro ukládání graf˚u<br />

Matice sousednosti<br />

Vrcholy grafu očíslujeme 1, . . . , n = |V |, pak<br />

<br />

1 pokud existuje (orientovaná) hrana mezi vrcholy i, j<br />

A i,j<br />

G =<br />

• symetrická<br />

0 pokud hrana neexistuje<br />

• závisí na uspoˇrádání vrchol˚u<br />

• počet prvk˚u na ˇrádku roven stupni vrcholu<br />

deg(G) = deg + (G) + deg − (G)


Datové struktury pro ukládání graf˚u<br />

Incidenční matice<br />

Očíslujeme vrcholy 1, . . . , n = |V | a hrany 1, . . . , m = |E|. Neorientovaná<br />

incidenční matice C o rozměrech m × n pro neorientovan´y graf má prvek<br />

Ci,j = 1 pokud j je vrcholem hrany i, jinak je Ci,j = 0.<br />

Pro orientovan´y graf je Ci,j = −1 pokud hrana i opouˇstí vrchol j<br />

(ei = (j, x)) a Ci,j = 1 pokud hrana j pˇrichází do vrcholu i (ei = (x, j)).<br />

Orientovanou incidenční matici m˚uˇzeme sestavit i pro neorientovan´y graf.


Datové struktury pro ukládání graf˚u<br />

Vztah mezi maticemi (neorientované grafy)<br />

Lemma<br />

Necht’ C je neorientovaná incidenční matice a A je matice sousednosti<br />

grafu G. Pak<br />

C T C = A + D,<br />

kde D je diagonální matice stupň˚u D i,i = deg(i)


Datové struktury pro ukládání graf˚u<br />

Laplaceova/Kirchhoffova matice a vztah mezi maticemi<br />

(orientované grafy)<br />

Pokud A(G) je matice sousednosti (obecně) orientovaného grafu a D(G)<br />

je diagonální matice stupň˚u, Laplaceova matice je:<br />

L(G) = D(G) − L(G)<br />

Lemma<br />

Necht’ C je orientovaná incidenční matice a A je matice sousednosti<br />

grafu G. Pak<br />

C T C = L(G),<br />

Laplaceova matice je d˚uleˇzitá pro anal´yzu souvislosti graf˚u.


Datové struktury pro ukládání graf˚u<br />

Matice konektivity, ohodnocení a vzdáleností<br />

Matice konektivity, nesymetrická matice sousednosti, Mij = 1 pokud<br />

existuje hrana (i, j).<br />

Matice ohodnocení hran.<br />

Matice vzdálenosti, matice metriky grafu.


Datové struktury pro ukládání graf˚u<br />

ˇRídké grafy a matice<br />

• pole začátk˚u ˇrádk˚u, pole sloupc˚u, pole hodnot (alokace dohromady)<br />

• pro kaˇzd´y ˇrádek pole sloupc˚u nenulov´ych prvk˚u a pole <strong>jejich</strong> hodnot<br />

(alokace zvláˇst’)<br />

• místo polí lineární (spojov´y) seznam (kaˇzd´y prvek zvláˇst’)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!