Grafy skierowane

by Jerry Sky

2020-05-06



Def\text {Def} Graf skierowany

Graf skierowany (digraf   ⟸  \impliedby directed graph):
G=(V,E,φ)G = (V,E,\varphi), gdzie φ:E→V×V\varphi: E\to V\times V.
Zbiór VV nazywamy zbiorem wierzchołków, zbiór EE nazywamy zbiorem krawędzi skierowanych.

  1. Oznaczenia: jeśli e∈Ee \in E oraz φ(e)=(x,y)\varphi(e) = (x,y), to fst(e)=x\mathrm{fst}(e) = x (ogon ee) oraz snd(e)=y\mathrm{snd}(e) = y (głowa ee)
  2. (stopień wyjściowy, outdegree) deg⁡+(v)=∣{e∈E:fst(e)=x}∣\deg^+(v) = |\{e\in E: \mathrm{fst}(e) = x\}|
  3. (stopień wejściowy, indegree) deg⁡−(v)=∣{e∈E:snd(e)=x}∣\deg^-(v) = |\{e\in E: \mathrm{snd}(e) = x\}|
  4. Ścieżką w grafie skierowanym nazywamy ciąg x0,e1,x1,e2,…,en,xnx_0,e_1,x_1,e_2,\dots,e_n,x_n taki, że x0,…,xnx_0,\dots,x_n są wierzchołkami, e1,…,ene_1,\dots,e_n są krawędziami oraz dla każdego i∈{1,…,n}i \in \{1,\dots,n\} mamy fst(ei)=xi−1\mathrm{fst}(e_i) = x_{i-1} i snd(ei)=xi\mathrm{snd}(e_i) = x_i

Twierdzenie\text {Twierdzenie} #1

∑v∈Vdeg⁡+(v)=∣E∣∑v∈Vdeg⁡−(v)=∣E∣ \sum_{v\in V}\deg^+(v) = |E| \\ \sum_{v\in V}\deg^-(v) = |E|

D-d Twierdzenia\text {Twierdzenia} #1

∣E∣=∑v∈V∣{e∈E:fst(e)=v}∣=∑v∈Vdeg⁡+(v). |E| = \sum_{v\in V}|\{e\in E: \mathrm{fst}(e) = v\}| = \sum_{v\in V}\deg^+(v).

Def\text {Def} Szkielet

Szkieletem (underlying graph) grafu skierowanego GG nazywamy graf G∗=(V,E,φ∗)G^* = (V,E,\varphi^*), gdzie φ∗(e)={x,y}\varphi^*(e) = \{x,y\} jeśli φ(e)=(x,y)∨φ(e)=(y,x)\varphi(e) = (x,y) \lor \varphi(e) = (y,x).

Fakt\text {Fakt} #1

Jeśli G∗G^* jest szkieletem digrafu GG i x∈V(G)x \in V(G) to: deg⁡G∗(x)=deg⁡G+(x)+deg⁡G−(x) \deg_{G^*}(x) = \deg^+_G(x) + \deg^-_G(x)

Fakt\text {Fakt} #2

Graf skierowany nazywamy spójnym jeśli jego szkielet jest spójny.

Def\text {Def} Skierowany graf eulerowski

Skierowanym grafem eulerowskim nazywamy taki graf, w którym istnieje ścieżka zamknięta (początek równa się końcowi) która przechodzi przez wszystkie krawędzie.
Klasyczne twierdzenie Eulera bez trudu przenosi się na grafy skierowane: są to grafy spójne takie, że (∀v∈V)(deg⁡−(v)=deg⁡+(v))(\forall v\in V)(\deg^-(v) = \deg^+(v)). Wynika to z faktu, że do z każdego wierzchołka chcemy wyjść tyle samo razy jak i do niego wejść. Jeśli deg⁡−(v)≠deg⁡+(v)\deg^-(v) \neq \deg^+(v) wówczas w wierzchołku vv możemy utknąć lub też pominąć jedną z krawędzi.

//TODO: Sformułuj pojęcie grafu pół-eulerowskiego, sformułuj twierdzenie charakteryzujące grafy pół-eulerowskie i udowodnij je.

Def\text {Def} Silnie spójny graf

Graf jest silnie spójny, jeśli dla każdej pary wierzchołków x,yx,y istnieje ścieżka od xx do yy. Podzbiór XX ⊆E\subseteq E jest silnie spójny jeśli obcięcie grafu GG do XX jest grafem silnie spójnym. Silnie spójną składową nazywamy maksymalny w sensie inkluzji silnie spójny podzbiór zbioru wierzchołków.

Def\text {Def} Kondensacja

Kondensacja grafu skierowanego: ustalamy digraf G=(V,E,φ)G=(V,E,\varphi)

  1. Definiujemy x≫y≡x\gg y \equiv istnieje (skierowana) ścieżka od xx do yy
  2. Definiujemy (x≡y)↔((x≫y)∧(y≫x))(x \equiv y) \leftrightarrow \big((x\gg y) \land (y\gg x)\big)
  3. Pokazujemy, że relacja ≡\equiv jest relacją równoważności na VV
  4. Pokazujemy, że klasy abstrakcji relacji ≡\equiv pokrywają się z silnie spójnymi składowymi
  5. Na V/≡V_{/\equiv} definiujemy: E′={(C1,C2):(∃e∈E)(fst(e)∈C1∧snd(e)∈C2)} E' = \{(C_1, C_2): (\exists e\in E)(\mathrm{fst}(e) \in C_1 \land \mathrm{snd}(e) \in C_2)\}

Graf (V/≡,E′)(V_{/\equiv}, E') nazywamy kondensacją grafu GG.

example

Do znajdowania silnie spójnych składowych można się posłużyć algorytmem Kosaraju lub algorytmem Tarjana.

Twierdzenie\text {Twierdzenie} #2

Kondensacja grafu GG jest skierowanym grafem acyklicznym (DAG).

Def\text {Def} Źródło/ Odpływ

Źródło to taki wierzchołek vv, że deg⁡−(v)=0\deg^-(v) = 0.

Odpływ to taki wierzchołek vv, że deg⁡+(v)=0\deg^+(v) = 0.

Twierdzenie\text {Twierdzenie} #3

W każdym skończonym DAGu istnieje źródło i istnieje odpływ.

D-d Twierdzenia\text {Twierdzenia} #3

Bierzemy skierowaną drogę o największej długości; pokazujemy, że jej początek jest źródłem a końcowy wierzchołek jest odpływem.

Def\text {Def} Graf orientowalny

Graf GG jest orientowalny jeśli istnieje graf skierowany o zbiorze wierzchołków V(G)V(G) którego szkieletem jest GG.

Twierdzenie\text {Twierdzenie} #4

Graf GG jest orientowalny iff, gdy jest spójny i nie zawiera mostu (czyli jest spójny i każda krawędź leży na cyklu).