13. Tétel elkészítés és 14. Állítások és Definíciók hozzáadása
13. A DFS algoritmus, DFS-erdő, az élek osztályozása, osztályzás az algoritmus futása közben. A DFS alkalmazása az aciklikusság eldöntésére, illetve topologikus sorrend meghatározására.
This commit is contained in:
parent
e4ed6470a4
commit
cd297e963d
1 changed files with 66 additions and 1 deletions
67
bsz2.org
67
bsz2.org
|
@ -324,7 +324,7 @@
|
|||
olyan zárt élsorozata $G\text{-nek}$,amelyben az előforduló élek száma
|
||||
maximális. Indirekt módon tegyük fel,hogy $H$ nem egy Euler-köre
|
||||
$G\text{-nek}$. Vizsgáljuk meg a $G'$ gráfot,amit úgy kapunk,hogy $G\text{-ből}$
|
||||
elhagyjuk a $H$ kört. $G'$ nem feltétlenül összefüggő,viszont összesen
|
||||
elhagyjuk a $H$ kör éleit. $G'$ nem feltétlenül összefüggő,viszont összesen
|
||||
$n\text{-nél}$ kevesebb pontja,van hiszen a kiinduló pont nincs benne. Az
|
||||
indukciós feltétel alapján, $G'$ minden komponensében van Euler-kör. Mivel $G$
|
||||
összefüggő , $G'$ valamelyik komponensének van olyan pontja,amelyik
|
||||
|
@ -1214,6 +1214,9 @@ a $G\text{-nek}$ egy tetszőleges éle. Ekkor
|
|||
-ből $u$ -ba nincs irányított út (vagyis $u$ és $v$ között nincs „egyenes ági
|
||||
leszármazási viszony”).
|
||||
** Tétel
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: dfs
|
||||
:END:
|
||||
Tegyük fel, hogy a $G$ irányított gráfra a DFS algoritmust futtatva az
|
||||
éppen az $e = (a, v)$ élen próbál továbblépni (így az aktív csúcs jelenleg $a$). Ekkor
|
||||
$e$ erre a DFS bejárásra vonatkozóan akkor és csak akkor lesz
|
||||
|
@ -1249,7 +1252,69 @@ indítva. $G$ akkor és csak akkor aciklikus, ha az eljárás során nem keletke
|
|||
visszaél és ebben az esetben a befejezési számozás szerinti fordított sorrendben
|
||||
felsorolva $G$ csúcsait topologikus rendezést kapunk.
|
||||
*** Bizonyítás
|
||||
- Ha keletkezik egy $e=(a,v)$ visszaél,akor $G$ nyilván tartalmaz irányított
|
||||
kört: $F$ DFS-erdő tartalmaz $v \rightarrow a$ utat,ha ezt kiegészítjük
|
||||
$e\text{-vel}$ akkor egy kört kapunk.
|
||||
- Tegyük fel, hogy nem keletkezett visszaél,így $G $minden $e=(a,v)$ éle
|
||||
faél,előreél vagy keresztél. Ekkor be kell látnunk,hogy $f(v)<f(a)$,mert ezzel
|
||||
a második állítás is igaz
|
||||
- Használjuk fel a [[#dfs]] tétel bizonyításában használt elveke.
|
||||
- Ha $e$ faél vagy előreél, akkor $kezd(v)$ $I(a)\text{-be}$ tartozik,így $F_a$
|
||||
részgráfja $F_$v\text{-nek}, azaz $f(a)<f(a)$
|
||||
- Ha $e$ keresztél, akkor $T$ pillanatban már $f(v) \ne *$,viszont $f(a)=*$, így
|
||||
valóban $f(v)<f(a)$
|
||||
* Legrövidebb utak meghatározása adott csúcsból
|
||||
** Definíció
|
||||
A $G = (V, E)$ irányított gráf élein a $w : E \rightarrow \mathbb{R}$ függvényt
|
||||
konzervatívnak nevezzük, ha $G$ minden (hurokéltől különböző, vagyis legalább két
|
||||
élű) irányított körének éleire a $w(e)$ értékek összege nemnegatív.
|
||||
** Állítás
|
||||
Legyen adott a $G = (V, E)$ irányított gráf, az $s, v \in V (G)$, $s \neq v$ csúcsok
|
||||
és $G$ élein a $w : E\rightarrow\mathbb{R}$ konzervatív hosszfüggvény. Ekkor ha létezik $s\text{-ből}$ $v\text{-be}$ egy
|
||||
$t$ összhosszúságú, $k$ élből álló $Q$ élsorozat, akkor létezik $s\text{-ből}$ $v\text{-be}$ egy legföljebb $t$
|
||||
összhosszúságú és legföljebb $k$ élű $P$ út is.
|
||||
*** Bizonyítás
|
||||
*** Következmény
|
||||
Legyen adott a $G = (V, E)$ irányított gráf, az $s, v \in V (G)$
|
||||
csúcsok és $G$ élein a $w : E \rightarrow\mathbb{R}$ konzervatív hosszfüggvény. Ha az $s\text{-ből}$ $v\text{-be}$ vezető
|
||||
$P$ legrövidebb út áthalad az $u$ csúcson, akkor $P\text{-nek}$ az $s\text{-től}$ $u\text{-ig}$ tartó $P$ $u$ szakasza
|
||||
egy $s\text{-ből}$ $u\text{-ba}$ vezető legrövidebb út.
|
||||
*** Következmény bizonyítása
|
||||
** A Bellman-Ford algoritmus
|
||||
*** Állítás
|
||||
Legyen adott a $G = (V, E)$ irányított gráf, az $s, v \in V (G)$, $v \neq s$ csúcsok
|
||||
és $G$ élein a $w : E \rightarrow \mathbb{R}$ konzervatív hosszfüggvény. Ekkor minden $k \geq 1$ esetén
|
||||
\begin{align}
|
||||
t_k (v) = \min{\{\{t_{k−1}(v)\} \cup \{t_{k−1} (u) + w(e) : e = (u, v), e \in E(G)\}\}}
|
||||
\end{align}
|
||||
**** Bizonyítás
|
||||
*** Az algoritmus
|
||||
|
||||
*** Állítás
|
||||
Tegyük fel, hogy lefuttattuk a Bellman-Ford algoritmust az $n$ csúcsú
|
||||
$G = (V, E)$ irányított gráfból, a $w : E \rightarrow \mathbb{R}$ hosszfüggvényből és az $s \in V$ csúcsból
|
||||
álló bemenetre. Jelölje $G_s$ az $s\text{-ből}$ $G\text{-beli}$ irányított úton
|
||||
elérhető csúcsok és a köztük vezető élek által alkotott részgráfot. Ekkor $w$
|
||||
akkor és csak akkor konzervatív $G_s\text{-en}$, ha $G_s$ minden $e = (u, v)$
|
||||
élére $t_{n−1} (v) \leq t_{n−1} (u) + w(e)$ teljesül.
|
||||
|
||||
**** Bizonyítás
|
||||
|
||||
** Dijkstra algoritmusa
|
||||
*** Állítás
|
||||
Legyen adott a $G = (V, E)$ irányított gráf, az $s \in V (G)$ csúcs és a
|
||||
$w : E \rightarrow \mathbb{R}^+ \cup \{0\}$ nemnegatív hosszfüggvény.
|
||||
- Jelölje továbbra is minden $v \in V (G)$ csúcsra $t(v)$ az $s\text{-ből}$ $v\text{-be}$ vezető
|
||||
legrövidebb út hosszát.
|
||||
- Legyen $K \subseteq V$ egy tetszőleges olyan csúcshalmaz, amire $s \in K$ és $K \neq V$
|
||||
- Minden olyan $v \notin K$ csúcsra, amibe vezet él $K\text{-beli}$ csúcsból,
|
||||
legyen $t'(v) = \min{\{t(u) + w(e) : e = (u, v), u \in K\}}$.
|
||||
- Ha a $v \notin K$ csúcsba nem vezet él $K\text{-beli}$ csúcsból, akkor legyen $t'(v) = \infty$.
|
||||
- Legyen $a \notin K$ olyan csúcs, amire $t'(a) = \min\{t'(v) : v \notin K\}$.
|
||||
|
||||
Ekkor $t\notin (a) = t(a)$.
|
||||
**** Bizonyítás
|
||||
*** Az algoritmus
|
||||
|
||||
* Hivatkozások
|
||||
\clearpage
|
||||
|
|
Loading…
Reference in a new issue