14. Tétel kész + LaTeX hibák javítása
14. Legrövidebb utak meghatározása adott csúcsból: a Dijkstra- és a Bellman-Ford algoritmus.
This commit is contained in:
parent
cd297e963d
commit
7c69817b8b
1 changed files with 104 additions and 19 deletions
123
bsz2.org
123
bsz2.org
|
@ -109,7 +109,7 @@
|
|||
$G'(V',G')$ gráf részgráfja $G(V,E)$ -nek,ha $V'\leq V$,$E'\leq E$ és minedn $E'$ -beli él végpontja $V'$ elemei.
|
||||
** Feszített részgráf
|
||||
$G'(V',E')$ feszített részgráfja $G(V,E)\text{-nek}$, ha $V'\leq V$ és $E'$ az
|
||||
összes $E\tex{-beli}$ él,ami a $V'\text{-beli}$ csúcsok között fut.
|
||||
összes $E\text{-beli}$ él,ami a $V'\text{-beli}$ csúcsok között fut.
|
||||
** Állítás
|
||||
A fokok összege az élek számának kétszerese.
|
||||
*** Bizonyítás
|
||||
|
@ -666,7 +666,7 @@
|
|||
Jelölje $M$ élszámát $|M|=k$. Megmutatjuk hogy $G\text{-ben}$ létezik $k$ pontú
|
||||
lefogó ponthalmaz,mert ebből következni fog, hogy $M$ maximális. Mivel létezik
|
||||
$k$ elemű párosítás,így $\nu(G)\geq k$. A $k$ pontú lefogó halmaz létezéséből
|
||||
$\tau(G)\leq k$. A kettőt összerakva: $\k\leq\nu(G)\leq\tau(G)\leq k \Rightarrow
|
||||
$\tau(G)\leq k$. A kettőt összerakva: $k \leq\nu(G)\leq\tau(G)\leq k \Rightarrow
|
||||
\nu(G)=k$,így $M$ tényleg maximális párosítás.
|
||||
|
||||
Azt állítjuk hogy a [[#lemma1]] jelölései szerint $X=A_3\cup B_2$ lefogó
|
||||
|
@ -682,7 +682,7 @@
|
|||
*** Következmény (Kőnig tétele)
|
||||
Minden $G$ páros gráfra $\nu(G) = \tau(G)$ teljesül.
|
||||
*** Kőnig tétel bizonyítása
|
||||
Az [[#t_biz1][előző bizonyításban]] már láttuk,hogy $\k\leq\nu(G)\leq\tau(G)\leq k$, ebből
|
||||
Az [[#t_biz1][előző bizonyításban]] már láttuk,hogy $k \leq\nu(G)\leq\tau(G)\leq k$, ebből
|
||||
valóban következik az állítás.
|
||||
*** Következmény
|
||||
Ha a $G$ páros gráf nem tartalmaz izolált pontot, akkor rá $\alpha(G) = \rho(G)$
|
||||
|
@ -989,9 +989,9 @@
|
|||
**** $\lambda_G (s,t):=$ $s$ és $t$ közötti éldiszjunkt utak maximális száma $G\text{-ben}$
|
||||
**** $\lambda_G' (s,t):=$ A $G\text{-ben}$ $s\rightarrow t$ utakat lefogó pontok minimális száma
|
||||
*** Következmény bizonyítása
|
||||
A tétel 1. pontjából következik,hogy $\lamda_G(s,t)\geq k$. A 2. pontjából pedig
|
||||
az következik hogy $\lamda_G'(s,t)\geq k$. Mivel a 1. és 2. ekvivalensek,így
|
||||
$\lamda_G(s,t)=\lamda_G'(s,t)$. Figyeljük meg,hogy ezzel nem vagyunk
|
||||
A tétel 1. pontjából következik,hogy $\lambda_G(s,t)\geq k$. A 2. pontjából pedig
|
||||
az következik hogy $\lambda_G'(s,t)\geq k$. Mivel a 1. és 2. ekvivalensek,így
|
||||
$\lambda_G(s,t)=\lambda_G'(s,t)$. Figyeljük meg,hogy ezzel nem vagyunk
|
||||
készen,hiszen attól hogy egy $P$ út éldiszjunkt $H\text{-ban}$,nem jelenti
|
||||
azt,hogy $G\text{-ben}$ is éldiszjunkt. Ez úgy oldható meg,hogy ha egy $e={u,v}$
|
||||
élből készült $e_1=(u,v)$ és $e_2=(v,u)$ élekre fennáll az,hogy
|
||||
|
@ -1104,7 +1104,7 @@ Az előző bekezdés és az [[#pdt][előző tétel]] bizonyításával beláthat
|
|||
- Ez definíció szerint azt jelenti,hogy $G'$ összefüggő, $G$ pedig
|
||||
$k\text{szorosan összefüggő}$, ezzel az elégségességet beláttuk
|
||||
**** 1. pont szükségessége
|
||||
- Tegyük fel hogy $G$ $k\text{-szorosan}$ összefüggő és legyen $s,t\inV(G),s
|
||||
- Tegyük fel hogy $G$ $k\text{-szorosan}$ összefüggő és legyen $s,t\in V(G),s
|
||||
\neq t$ tetszőleges csúcsok.
|
||||
- Ha nem létezne $k$ éldiszjunkt út, akkor a [[#eldis_tet]] tétel szerint az $s
|
||||
\rightarrow t$ utakat lefogó $Z$ élhalmaz legfeljebb $k-1$ élű.
|
||||
|
@ -1149,7 +1149,7 @@ Ha $G$ $k\text{-szorosan}$ összefüggő, akkor a [[*Tétel (Menger tétele töb
|
|||
éldiszjunkt út. Mivel a pontdiszjunkt utak éldiszjunktak is egyben,így a [[Tétel
|
||||
(Menger tétele többszörös összefüggőségre)]] tétel 1. állítása alapján $G$ tényleg
|
||||
$k\text{-szorosan}$ élösszefüggő.
|
||||
* Aciklikus irányított gráfok(DAG)
|
||||
* Aciklikus irányított gráfok(DAG) $\protect\footnote{\cite{hj} alapján.}$
|
||||
** Fogalma
|
||||
Egy irányított $G$ gráfot akkor nevezünk *aciklikusnak*,ha nem tartalmaz
|
||||
irányított kört. Angolul Directed Acyclic
|
||||
|
@ -1186,7 +1186,7 @@ Keressük meg a $s \rightarrow v$ legrövidebb utat!
|
|||
utak mennek bele,amelyek elérhetőek $s\text{-ből}$ és ezek közül kiválasztjuk
|
||||
a legkisebb súlyút.
|
||||
Ez az algoritmus leghosszabb út keresésére is alkalmazható.
|
||||
* Mélységi keresés
|
||||
* Mélységi keresés $\protect\footnote{\cite{hj} alapján.}$
|
||||
** Az algoritmus
|
||||
Vegyünk egy tetszőleges $G$ gráfot, és válasszunk ki egy tetszőleges $s$
|
||||
csúcsot. Az algoritmus futtatásakor három változót is fenntartunk: A mélységi
|
||||
|
@ -1220,10 +1220,10 @@ a $G\text{-nek}$ egy tetszőleges éle. Ekkor
|
|||
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
|
||||
1. Faél, ha $d(v) = ∗$;
|
||||
1. Faél, ha $d(v) = *$;
|
||||
2. Előreél, ha $d(v) > d(a)$;
|
||||
3. Visszaél, ha $d(v) < d(a)$ és $f(v) = ∗$;
|
||||
4. Keresztél, ha $d(v) < d(a)$ és $f(v) \neq ∗$.
|
||||
3. Visszaél, ha $d(v) < d(a)$ és $f(v) = *$;
|
||||
4. Keresztél, ha $d(v) < d(a)$ és $f(v) \neq *$.
|
||||
*** Bizonyítás
|
||||
- Ha $d(v)=*$,akkor $m(v)=a$,tehát $e$ valóban faél.
|
||||
- Egészítsük ki az algoritmust egy $T$ változóval, ami az eltelt időt
|
||||
|
@ -1263,43 +1263,119 @@ felsorolva $G$ csúcsait topologikus rendezést kapunk.
|
|||
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
|
||||
* Legrövidebb utak meghatározása adott csúcsból $\protect\footnote{\cite{hj} alapján.}$
|
||||
** 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
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: kort
|
||||
:END:
|
||||
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
|
||||
- Ha $Q$ nem irányított út,akkor van olyan csúcs,amit többször érint
|
||||
- Keressük meg az ilyen ismétlődő pontpárok közül azt,amelyik között a
|
||||
legkevesebb él van (Q-ban): legyen ez $u$
|
||||
- Ekkor létezik egy $C$ irányított élsorozat $u\text{-ból}$
|
||||
$u\text{-ba}$. $C\text{-nek}$ körnek kell lennie,hiszen $u$ választása
|
||||
miatt,nem létezhet benne ismétlődő csúcspár (mert akkor azok között kevesebb
|
||||
él lenne)
|
||||
- Vágjuk ki $Q\text{-ból}$ a $C$ irányított kört, a kapott élsorozat legyen
|
||||
$Q_1$.
|
||||
- Ekkor $Q_1$ is $s\text{-ből}$ $v\text{-be}$,aminek élszáma $k\text{-vál}$
|
||||
kisebb és összhossza legfeljebb $t$ (mivel $w$ konzervatív,így $C$ összhossza
|
||||
nemnegatív)
|
||||
- Ha $Q_1$ nem irányított út,akkor $Q_1$ is tartalmaz ismétlődő csúcsokat
|
||||
- A fentieket ismételjük,addig amíg van ismétlődő csúcs,akkor a kapott amíg
|
||||
$Q_n$ egy irányított út lesz.
|
||||
- Mivel az eljárás során az összhosz nem nőhet,így az állítást beláttuk
|
||||
*** 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
|
||||
- Tegyük fel indirekten,hogy $exists s \rightarrow u$ egy $P_u\text{-nál}$
|
||||
rövidebb $P'$ út.
|
||||
- Ekkor $P'$ mentén haladva eljutunk $s\text{-ből}$ $u\text{-ba}$,majd onnan $P$
|
||||
mentén eljutunk $u\text{-ból}$ $v\text{-be}$. Legyen ez a $Q$ élsorozat.
|
||||
- Ekkor azonban $Q$ rövidebb $s \rightarrow v$ út $P\text{-nél}$,ami ellentmond
|
||||
annak, hogy $P$ legrövidebb út
|
||||
** A Bellman-Ford algoritmus
|
||||
*** Definíció
|
||||
Jelölje $\forall v \in V (G)$ csúcsra és $k \geq 0$ egészre $t_k (v)$ a
|
||||
legrövidebb olyan $s\text{-ből}$ $v\text{-be}$ vezető irányított út hosszát, ami
|
||||
legföljebb $k$ élből áll; ha pedig ilyen út nincs, akkor legyen $t_k (v) = \infty$.
|
||||
*** Állítás
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: kupal
|
||||
:END:
|
||||
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)\}\}}
|
||||
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
|
||||
- Jelölje $H$ az egyenlet jobb oldalán lévő halmazt.Így azt kell belátnunk hogy
|
||||
$t_k(v)$ a $H$ minimuma
|
||||
- Ha $t_k(v) = \infty$,akkor persze $t_{k_1}(v) = \infty$ is igaz.
|
||||
- Továbbá $e=(u,v)$ élekre is $t_{k-1}(u)= \infty$, hiszen ha nem így volna,akkor
|
||||
létezne $s\text{-ből}$ $u\text{-ba}$ egy legföljebb $k-1$ élű út, és ezt
|
||||
$e\text{-vel}$ kiegészítve $v\text{-be}$ vezető,legfeljebb $k$ élű utat kapnánk.
|
||||
- Tegyük fel tehát,hogy $t_k \neq \infty$
|
||||
- Ekkor $t_k(v) \leq t_{k-1}(v)$ nyilván igaz,hiszen legföljebb $k-1$ élű utak
|
||||
egyben legföljebb $k$ élű utak
|
||||
- Legyen $e=(u,v)$ él. Ekkor $s\text{-ből}$ $u\text{-ba}$ vezető legföljebb $k-1$
|
||||
élű és $t_{k-1}(u)$ hosszúságú $P$ utat megtoldunk $e\text{-vel}$
|
||||
- Így egy legfeljebb $k$ élű és $t_{k-1}+w(e)$ hosszúságú $Q$ élsorozatot kapunk
|
||||
- $Q$, nemfeltétlen út,de [[#kort]] állítás alapján tudjuk,hogy $t_k\leq t_{k-1}+w(e)$
|
||||
- Beláttuk hogy $t_k\leq \min{H}$,most megmutatjuk,hogy $H\text{-nak}$ van
|
||||
$t_k\text{-val}$ egyenlő eleme
|
||||
- Legyen $P$ egy $s\text{-ből}$ $v\text{-be}$ vezető $t_k(v)$ hosszú és
|
||||
legfeljebb $k$ élű út.
|
||||
- Ha $P$ legfeljebb $k-1$ élű,akkor nyilván legrövidebb a legföljebb $k -
|
||||
1$ élű, v-be vezető utak között is, így $t_k= t_{k-1}$
|
||||
- Ha $P$ pontosan $k$ élű,akkor jelölje az utolsó élét $e=(u,v)$ és $P$
|
||||
$s\text{-től}$ $u\text{-ig}$ vett szakaszát $P_u$
|
||||
- Ekkor $P_u$ $t_{k-1}$ hosszú,mivel ha lenne rövidebb és legföljebb $k-1$ élű
|
||||
út $u\text{-ba}$ akkor, $e\text{-vel}$ kiegészítve egy $P\text{-nél}$ rövidebb
|
||||
utat kapnánk,ami lehetetlen.
|
||||
- Így ebben az esetben $t_k(v)=t_{k-1}+w(e)$ tényleg fennáll.
|
||||
*** Az algoritmus
|
||||
Tegyük fel,hogy $G$ gráf $s$ csúcsából akarunk legrövidebb utakat keresni. Az
|
||||
eljárás során mindenegyes csúcshoz hozzárendelhetünk egy számot,ami azt
|
||||
jelzi,hogy az eddig megtalált legrövidebb út összhossza mekkora. Ezt az értéket
|
||||
minden csúcsra inicializáljuk $\infty\text{-re}$ (kivéve $s\text{-hez}$,hozzá
|
||||
nullát rendelünk)
|
||||
|
||||
*** Állítás
|
||||
Az eljárás során minden ciklusban végigmegyünk $G$ összes csúcsán. Minden
|
||||
csúcsban megvizsgáljuk,hogy a belőle kivezető élek rövidebb utat alkotnak-e az
|
||||
él végpontjába, mint az eddig megtalált. Ezt ismétli $(n-1)\text{-szer}$.
|
||||
*** Á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.
|
||||
élére $t_{n-1} (v) \leq t_{n-1} (u) + w(e)$ teljesül.
|
||||
|
||||
**** Bizonyítás
|
||||
|
||||
1) Szükségesség:
|
||||
- Ha $w$ konzervatív,akkor a [[#kupal]] állításból következően minden $v \in
|
||||
V(G_s)$ csúcsra a $t_{n-1}$ értékek helyesek,másrészt $t_n(v)\leq
|
||||
t_{n-1}(u)+w(e)$ $G_s$ minden $e=(u,v)$ élére teljesül
|
||||
- Mivel $t_n(v)=t_{n-1}(v)$,így $t_{n-1}(v) \leq t_{n-1}(v) + w(e)$
|
||||
2) Elégségesség:
|
||||
- Tegyük fel,hogy $t_{n-1}(v) \leq t_{n-1}(v) + w(e)$ fennáll
|
||||
- Legyen $C$ egy tetszőleges irányított kör $G_s\text{-ben}$
|
||||
- Ekkor $C$ $\forall e=(u,v)$ élre a következő egyenlőtlenséget kapjuk:
|
||||
\begin{align}
|
||||
w(e) \geq t_{n-1}(v) - t_{n-1}(v)=0
|
||||
\end{align}
|
||||
** 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
|
||||
|
@ -1313,10 +1389,18 @@ $w : E \rightarrow \mathbb{R}^+ \cup \{0\}$ nemnegatív hosszfüggvény.
|
|||
- 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
|
||||
Tegyük fel,hogy $G$ gráf $s$ csúcsából akarunk legrövidebb utakat keresni. Az
|
||||
eljárás során mindenegyes csúcshoz hozzárendelhetünk egy számot,ami azt
|
||||
jelzi,hogy az eddig megtalált legrövidebb út összhossza mekkora. Ezt az értéket
|
||||
minden csúcsra inicializáljuk $\infty\text{-re}$ (kivéve $s\text{-hez}$,hozzá
|
||||
nullát rendelünk)
|
||||
|
||||
Induljunk ki tehát $s\text{-ből}$ és a belőle kiinduló élek alapján frissítsük
|
||||
az egyes csúcsokhoz tartozó legrövidebb utakat. Ezután zárjuk le $s$
|
||||
csúcsot,majd folytassuk az eljárást az $s\text{-ből}$ legrövidebb úttal elérhető
|
||||
csúccsal. Az eljárást addig futtatjuk,ameddig minden csúcsa le nem lesz zárva.
|
||||
|
||||
* Hivatkozások
|
||||
\clearpage
|
||||
\begin{thebibliography}{99}
|
||||
|
||||
|
@ -1328,3 +1412,4 @@ Ekkor $t\notin (a) = t(a)$.
|
|||
\end{thebibliography}
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue