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
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’)