Kisebb hibák javítása

This commit is contained in:
Bazsalanszky 2020-06-16 18:27:19 +02:00
parent 0de896054e
commit 088b92198b
Signed by: Bazsalanszky
GPG key ID: 1B0B72C7139E2884

648
bsz2.org
View file

@ -118,7 +118,7 @@
** Teljes gráf
Bármely két különböző csúcs össze van kötve.
** Komplementer gráf
Ugyanazon pontokból áll, teljes gráf $ -$ gráf élei
Ugyanazon pontokból áll, teljes gráf $-$ gráf élei
** Izomorf gráf
Két gráfot akkor nevezünk izomorfnak, ha pontjaik és éleik kölcsönösen egyértelműen és illeszkedéstartóan megfeleltethetők egymásnak.
** Élsorozat
@ -260,7 +260,7 @@
előbbi jelölésekkel $e\leq3n-6$.
*** Bizonyítás
Vegyük $G$ egy tetszőleges síkbarajzolását, és a tartományokat határoló élek
számát jelöljük $c_1,c_2,c_3,\dotsc_t\text{-el}$. Mivel a gráf egyszerű így
számát jelöljük $c_1,c_2,c_3,\dotsc,c_t\text{-el}$. Mivel a gráf egyszerű így
minden $c_i\text{-re}$ teljesül,hogy $c_i\geq 3$. Nyilvánvaló, hogy egy él
legfeljebb két tartomání határához tartozik,tehát ha összegezzük a határoló élek
számát akkor legfeljebb egy élet kétszer számolunk. Így az alábbi egyenletet
@ -297,8 +297,12 @@
A $K_{3,3}$ nem tartalmaz 3 hosszú utat, így alkalmazható a [[*Becslés az élek
számára háromszögmentes gráfban]] tétel.A $K_{3,3}\text{-nak}$ 6 csúcsa és 9 éle
van: $9>2\cdot6-4=8$,ez ellentmondás,azaz a $K_{3,3}$ sem rajzolható síkba.
** TODO Síkbabarjzolható gráfok dualitása
** Síkbabarjzolható gráfok dualitása
Minden síkbarajzolható $G$ gráfból, létrehozhatunk egy $G^*$ gráfot a következő eljárás alapján:
- $G$ minden tartományához,rendelünk egy $G^*\text{-beli}$ csúcsot
- Két csúcsot akkor kötünk össze,ha a megfelelő tartományoknak,van közös
határéle
$G$ és $G^*$ egymás *duálisai*,hiszen ugyanezzel az eljárással egymásba alakíthatóak.
* Euler- és Hamilton körök $\protect \footnote{ \cite{kv} alapján.}$
** Definíció
A $G$ gráf Euler-körének nevezünk egy zárt élsorozatot, ha az élsorozat pontosan
@ -312,7 +316,7 @@
Először belátjuk,hogy ha egy gráfban van Euler-kör,akkor minden pont foka
páros. Induljunk ki először egy tetszőleges csúcsból és járjuk be az Euler-köre
mentén. Vegyük észre,hogy minden csúcsba, annyiszor ''megyünk be'', ahányszor
kimegyünk belőle,így a ''kilépések'' és a ''belépések'' számának összege éppen a
''kimegyünk'' belőle,így a ''kilépések'' és a ''belépések'' számának összege éppen a
csúcs fokszáma. Ez így pedig biztosan páros.
A másik irányt(ha minden csúcs foka páros,akkor van Euler-kör) indukcióval
@ -372,8 +376,8 @@
Hamilton-kör. Vegyünk hozzá a gráfhoz éleket,úgy hogy
továbbra se legyen benne Hamilton-kör. Ezt egészen addig csináljuk,amíg már nem
tudunk több ilyen élet hozzávenni. Az így kapott $G'$ gráfra továbbra is
teljesül a kezdeti feltétel. Biztosan van benne két olyan pont,hogy ${x,y}\notin
E(G')$. Ekkor $G'+{x,y}$ gráfban már van egy Hamilton-kör, és Hamilton-út
teljesül a kezdeti feltétel.Ekkor biztosan van benne két olyan pont,hogy ${x,y}\notin
E(G')$ és $G'+{x,y}$ gráfban már van egy Hamilton-kör, és Hamilton-út
is. Legyen ez $P=(z_1,z_2,\dots,z_n)$,ahol $z_1=x$ és $z_n=y$.
Ha $x$ szomszédos a $P$ út valamely $z_k$ csúcsával,akkor $y$ nem lehet
@ -411,8 +415,41 @@
** Tétel(Zykov konstrukciója)
Minden $k\geq2$ esetén létezik olyan $G_k$ gráf, amire $\omega(G_k ) = 2$ és
$\chi(G_k ) = k$.
*** TODO Bizonyítás
*NEM, KÖSZÖNÖM MÁR JÓLLAKTAM!*
*** Bizonyítás
- $G_2$,azaz $k=2\text{-re}$ elég a $K_2$ gráfot megvizsgálni
- A továbbiakban $G_k$ megadásához rekurziót használunk:
* Induljunk ki pl $G_3$ (egy 5 hosszú) ebből megkaphatjuk $G_$k\text{-t}$
tetszőleges $k\text{-ra}$ (természetesen $k \geq 3$)
* Tegyük fel,hogy $G_k=(V,E)$ gráfban már adott,hogy $\omega(G_k)=2$ és $\chi(G_k)=k$.
* Vegyük $G_k\text{-nak}$ $k$ darab diszjunkt példányát,azaz ''másoljuk le'' a
$V$ csúcshalmazt $k\text{-szor}$
* Az így kapott csúcshalmazokat $V_1,V_2,\ldots,V_k$ jelöli.
* Minden $V_i$ halmazban,azokat a csúcsokat kössük,össze mint amik eredetileg is
össze voltak kötve
* Ezen kívül $V_1,V_2,\ldots,V_k$ csúcshalmazok közül, válasszuk ki egyet-egyet
az összes lehetséges módon. Ezekhez vegyünk fel egy új csúcsot, és kössük
össze a kiválasztott csúcsokkal
* Az így kapott gráfot jelöljük $G_{k+1}\text{-el}$
- Jelölje a $V-i\text{-kből}$ kiválasztott $\text{csúcs-}k\text{-asokból}$
létrejött $G_{k+1}\text{-beli}$ csúcsok halmazát $Z$
- Megmutatjuk hogy $\omega(G_k)=2$
* Tudjuk hogy $\omega(G_k)=2$, és minden $V_i$ halmaz $G_k\text{-val}$
izomorfak. Ebben tehát biztosan nincs háromszög.
* $Z\text{-beli}$ csúcsok sem alkothatnak háromszöget,hiszen különböző
$V_i\text{-kbeli}$ csúcsokkal van összekötve
- Belátjuk,hogy $G_{k+1}$ kiszínezhető $k+1$ színnel
* Tudjuk,hogy $G_k$ legalább $k$ színnel színezhető csak ki és $\forall V_i$
izomorf $G_k\text{-val}$
* Színezzük ki tehát $V_i\text{-ket}$ ugyanazzal a $k$ színnel
* A $Z\text{-beli}$ csúcsokat színezzük ki $(k+1)\text{-edik}$ színnel.
* Mivel $Z$ csúcsai között nem futnak élek így ez egy helyes színezés
- Meg kell mutatnunk,hogy $G_{k+1}$ nem színezhető ki $k$ színnel
* Válasszuk $V_1\text{-ből}$ egy $1$. színű $v_1$ csúcsot, $V_2\text{-ből}$
egy $2$. színű csúcsot, stb.
* Most vegyük az ezekkel összekötött $z \in Z$ csúcsot. Ez nem színezhető ki
$k$ szín egyikével sem,hiszen minden $k$ színnel szomszédos
* Ekkor $z$ csak egy $(k+1)\text{-edik}$ színnel színezhető ki
** Állítás
Legyen $G$ (hurokélmentes) gráf és jelölje $\Delta(G)$ a $G$ -beli maximális
fokszámot (vagyis a $G$ -beli csúcsok fokszámai közül a legnagyobbat). Ekkor a
@ -594,11 +631,30 @@
A $G$ gráfban akkor és csak akkor létezik teljes párosítás, ha a csúcsok minden
$X\subseteq V(G)$ részhalmazára $c_p (G - X) \leq |X|$ teljesül.
Más szóval: pontosan akkor létezik teljes párosítás $G$ gráfban,ha
$G\text{-ből}$ bárhogyan $k$ darab csúcsot elhagyva a kapott gráfban páratlan
sok csúcsú komponenseinek száma legfeljebb $k$.
*** TODO Bizonyítás
*** Jelölések
**** $G-X$: Az a gráf,amelyet $G\text{-ből}$ az $X$ csúcsai és arra illeszkedő élei elhagyásával kapunk.
**** $c_p(H)$: $H$ páratlan sok csúcsot tartalmazó komponenseinek száma
*** Bizonyítás
- Tegyük fel,hogy $G\text{-ben}$ $\exists$ teljes párosítás.
- Megmutatjuk,hogy $c_p (G - X) \leq |X|$ ekkor teljesül
- Rögzítsünk $G\text{-ben}$ egy $M$ teljes párosítást
- Vegyünk egy tetszőleges $X \subseteq V(G)$ részhalmazt, és hagyjuk el $G\text{-ből}$
- Tegyük fel, hogy ez után $l$ darab páratlan komponens jön létre: $C_1,C_2,\ldots,C_l$
- Válasszunk ki egy $C_i$ páratlan komponenst $G\text{-ben}$
- Figyeljük meg,hogy $C_i$ minden csúcsához tartozik egy $M\text{-beli}$
él,hiszen $M$ teljes párosítás.
- Mivel $C_i$ páratlan kell legyen legalább egy $C_i\text{-n}$ beli csúcs,amit egy
$M\text{-beli}$ él $C_i\text{-n}$ kívüli ponttal köt össze
- Minden $C_i\text{-hez}$ válasszunk egy ilyet, és jelöljük $v_i\text{-vel}$
- Ekkor minden $v_i \in X$,hiszen $C_i$ külön komponenst alkot $X$ elhagyása
után, és mivel $M$ teljes párosítás, így minden $v_i$ különböző
- Ezzel beláttuk,hogy $X\text{-nek}$ legalább $c_p(G-X)=l$ csúcsa van.($|X|$
tartalmazhat ennél több pontot is,csak azok nem hoznak létre több páratlan
csúcsú komponenst)
* Párosítások $\protect\footnote{\cite{hj} alapján.}$
** Párosítások páros gráfokban
@ -896,9 +952,9 @@
Ebből már egyértelműen adódik,hogy $\max\{m_f:f\text{ folyam}\}= d =\min\{c(X):X\>st\text{ folyam}\}$
** Egészértékűségi lemma
:PROPERTIES:
:CUSTOM_ID: egér
:END:
:PROPERTIES:
:CUSTOM_ID: egér
:END:
Tegyük fel, hogy a $(G, s,t, c)$ hálózatban minden $e\in E(G)$ élre $c(e)\in\mathbb{Z}$. Ekkor
1. Létezik olyan $f$ maximális folyam a hálózatban, amelyre $f (e)\in\mathbb{Z}$ minden
@ -964,9 +1020,9 @@
- A [[#dilemma]] lemma miatt $d=k$
** Tétel
:PROPERTIES:
:CUSTOM_ID: eldis_tet
:END:
:PROPERTIES:
:CUSTOM_ID: eldis_tet
:END:
Legyen adott a $G$ irányítatlan gráf, annak az $s,t \in V (G)$ különböző
csúcsai és a $k \geq 1$ egész. Ekkor az alábbi állítások ekvivalensek:
1. Létezik $G$ -ben $k$ éldiszjunkt irányítatlan út $s$ -ből $t$ -be.
@ -1006,9 +1062,9 @@
-be vezető irányítatlan utakat, ha $s\notin Y, t\notin Y$ és minden $s$ és
$t$ végpontú, $G$ -beli irányítatlan út tartalmaz $Y$ -beli csúcsot.
** Tétel
:PROPERTIES:
:CUSTOM_ID: pdt
:END:
:PROPERTIES:
:CUSTOM_ID: pdt
:END:
Legyen adott a $G$ irányított gráf, az $s,t \in V (G)$ különböző csúcsok,
amelyekre $(s,t)\notin E(G)$ és a $k \geq 1$ egész. Ekkor az alábbi állítások ekvivalensek:
1. Létezik $G$ -ben $k$ pontdiszjunkt irányított út $s$ -ből $t$ -be.
@ -1042,14 +1098,14 @@
- [[*Ford-Fulkerson Tétel][Ford-Fulkerson tételből]] következik,hogy
$max\{m_f:f\>\text{folyam}\}\geq k$ teljesül, így a 3. pontot beláttuk
**** $3.\implies1$.
- A [[#egér]] lemma miatt következik, hogy $m_f=d\geq k$ értékű folyam
- Ebből [[#dilemma]] lemmát alkalmazva, azt kapjuk,hogy $\exists P_1,P_2,\ldots,P_d$
éldiszjunkt irányított utak $s \rightarrow t$
- Az előzőek szerint minden $P_i$ megfeleltethető egy $G\text{-beli}$ $P'_i$
éldiszjunkt útnak.
- $P'_1,P'_2,\ldots,P'_d$ utak pedig pontdiszjunktak,hiszen ha $P'_i$ és $P'_j$
is tartalmazná $v \neq s,t$ csúcsot $G\text{-ben}$, akkor $P_i$ és $P_j$ is
tartalmazná a $(v_1,v_2)$ élt $H\text{-ban}$.
- A [[#egér]] lemma miatt következik, hogy $m_f=d\geq k$ értékű folyam
- Ebből [[#dilemma]] lemmát alkalmazva, azt kapjuk,hogy $\exists P_1,P_2,\ldots,P_d$
éldiszjunkt irányított utak $s \rightarrow t$
- Az előzőek szerint minden $P_i$ megfeleltethető egy $G\text{-beli}$ $P'_i$
éldiszjunkt útnak.
- $P'_1,P'_2,\ldots,P'_d$ utak pedig pontdiszjunktak,hiszen ha $P'_i$ és $P'_j$
is tartalmazná $v \neq s,t$ csúcsot $G\text{-ben}$, akkor $P_i$ és $P_j$ is
tartalmazná a $(v_1,v_2)$ élt $H\text{-ban}$.
** Tétel
Legyen adott a $G$ *irányítatlan* gráf, az $s,t \in V (G)$ különböző csúcsok,
amelyekre ${s,t} \notin E(G)$ és a $k \geq 1$ egész. Ekkor az alábbi állítások ekvivalensek:
@ -1064,11 +1120,11 @@
*** Bizonyítás
**** $1.\implies2$.: azonos az [[#pdt][előző tétel]] bizonyításával
**** $2.\implies3$.:
- $G$ éleit helyettesítsük irányított élekkel, legyen ez a $G'$ gráf. Ekkor [[#pdt][az
előző tétel]] szerint legalább $k$ a maximális folyam értéke,abban a
gráfban,amit $G'$ széthúzásával kapunk. Ez éppen a 3. állítása.
- $G$ éleit helyettesítsük irányított élekkel, legyen ez a $G'$ gráf. Ekkor [[#pdt][az
előző tétel]] szerint legalább $k$ a maximális folyam értéke,abban a
gráfban,amit $G'$ széthúzásával kapunk. Ez éppen a 3. állítása.
**** $3.\implies1$.:
Az előző bekezdés és az [[#pdt][előző tétel]] bizonyításával belátható.
Az előző bekezdés és az [[#pdt][előző tétel]] bizonyításával belátható.
*** Következmény(Menger tétele pontdiszjunkt utakra)
Ha a $G$ (irányított vagy irányítatlan) gráfra és annak az $s,t \in V (G)$,
$s\neq t$ csúcsaira $(s,t)\notin E(G)$, illetve ${s,t} \notin E(G)$ teljesül (az
@ -1097,319 +1153,319 @@ Az előző bekezdés és az [[#pdt][előző tétel]] bizonyításával beláthat
csúcsú és bármely két különböző csúcsa között létezik $k$ pontdiszjunkt út.
*** Bizonyítás
**** 1. pont bizonyítása
- Tegyük fel,hogy $G$ bármely két különböző csúcsa között létezik $k$
éldiszjunkt út. Ezekből hagyjuk el legfeljebb $k-1$ darabot, és a kapott gráfot jelölje $G'$.
- Mivel nem hagytuk el az összes éldiszjunkt utat,így legalább egy $P_i$ út még
benne van $G'$ gráfban
- 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
- Tegyük fel,hogy $G$ bármely két különböző csúcsa között létezik $k$
éldiszjunkt út. Ezekből hagyjuk el legfeljebb $k-1$ darabot, és a kapott gráfot jelölje $G'$.
- Mivel nem hagytuk el az összes éldiszjunkt utat,így legalább egy $P_i$ út még
benne van $G'$ gráfban
- 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\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ű.
- Ez azonban ellentmondás,hisz a $Z$ elhagyásával a kapott $G'$ gráf nem lenne összefüggő, mert nem volna $s$
és $t$ között út.
- 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ű.
- Ez azonban ellentmondás,hisz a $Z$ elhagyásával a kapott $G'$ gráf nem lenne összefüggő, mert nem volna $s$
és $t$ között út.
**** 2. pont bizonyítása
- Tegyük fel,hogy $G$ bármely két csúcsa között létezik $k$ pontdiszjunkt
út. Ezek közül hagyjunk el legföljebb $k-1$ darabot és a kapott gráfot jelölje $G'$
- Mivel minden $s,t\in V(G'),s \neq t$ között létezik út.,így $G'$ definíció
szerint összefüggő,tehát $G$ $k\text{-szorosan}$ összefüggő
- Tegyük fel,hogy $G$ bármely két csúcsa között létezik $k$ pontdiszjunkt
út. Ezek közül hagyjunk el legföljebb $k-1$ darabot és a kapott gráfot jelölje $G'$
- Mivel minden $s,t\in V(G'),s \neq t$ között létezik út.,így $G'$ definíció
szerint összefüggő,tehát $G$ $k\text{-szorosan}$ összefüggő
**** 2. pont szükségessége
- Tegyük fel, hogy $G$ $k\text{-szorosan}$ összefüggő és legyen $s,t \in V(G), s
\neq t$
- Tegyük fel, hogy $G$ $k\text{-szorosan}$ összefüggő és legyen $s,t \in V(G), s
\neq t$
***** Ha $s$ és $t$ nem szomszédosak:
Ha nem létezne $k$ pontdiszjunkt út,akkor [[#pdt]]
tétel szerint létező, az $s$ és $t$ közötti utakat lefogó, legföljebb $k-1$
csúcs elhagyásával a kapott $G'$ gráf, nem volna összefüggő,ami ellentmondás
Ha nem létezne $k$ pontdiszjunkt út,akkor [[#pdt]]
tétel szerint létező, az $s$ és $t$ közötti utakat lefogó, legföljebb $k-1$
csúcs elhagyásával a kapott $G'$ gráf, nem volna összefüggő,ami ellentmondás
***** Ha szomszédosak
- Az előbb alkalmazott tétek itt nem használható fel
- Hagyjuk el az összes $s$ és $t$ közti élt, jelölje ezt a $H$ gráf
- Tegyük fel indirekt,hogy nem létezik $H\text{-ban}$ $k-1$ pontdiszjunkt $s
\rightarrow t$ út.
- Alkalmazhatjuk a [[#pdt]] tételt, eszerint létezik $k-2$ elemű $Y$
csúcshalmaz,aminek elhagyásával a kapott $H'$ gráf nem összefüggő
- Emiatt $s$ és $t$ különböző komponensekhez tartoznak.
- Mivel $G$ $k\text{-szorosan}$ összefüggő,így legföljebb $(k-2)$ csúcsot
hagytunk el
- Ekkor találhatunk egy $v \in V(H'),s \neq v \neq t$ csúcsot,ami nyilván csak
az egyik komponensébe tartozhat. Tegyük fel,hogy $v$ nincs az $s$ komponensében.
- Most hagyjuk el $G\text{-ből}$ $Y \cup {t}$ csúcshalmazt, és jelöljük a kapott gráfot $G'\text{-vel}$.
- Ezzel elhagyjuk az $s \rightarrow t$ éleket is,ezért $G'$ minden éle benne van
$H'\text{-gráfban}$. Így $v$ és $s$ $G'\text{-ben}$ ,vagyis $G'$ nem összefüggő
- Ez ellentmondás,hiszen $G$ $k\text{-szorosan}$ összefüggő.
- Az előbb alkalmazott tétek itt nem használható fel
- Hagyjuk el az összes $s$ és $t$ közti élt, jelölje ezt a $H$ gráf
- Tegyük fel indirekt,hogy nem létezik $H\text{-ban}$ $k-1$ pontdiszjunkt $s
\rightarrow t$ út.
- Alkalmazhatjuk a [[#pdt]] tételt, eszerint létezik $k-2$ elemű $Y$
csúcshalmaz,aminek elhagyásával a kapott $H'$ gráf nem összefüggő
- Emiatt $s$ és $t$ különböző komponensekhez tartoznak.
- Mivel $G$ $k\text{-szorosan}$ összefüggő,így legföljebb $(k-2)$ csúcsot
hagytunk el
- Ekkor találhatunk egy $v \in V(H'),s \neq v \neq t$ csúcsot,ami nyilván csak
az egyik komponensébe tartozhat. Tegyük fel,hogy $v$ nincs az $s$ komponensében.
- Most hagyjuk el $G\text{-ből}$ $Y \cup {t}$ csúcshalmazt, és jelöljük a kapott gráfot $G'\text{-vel}$.
- Ezzel elhagyjuk az $s \rightarrow t$ éleket is,ezért $G'$ minden éle benne van
$H'\text{-gráfban}$. Így $v$ és $s$ $G'\text{-ben}$ ,vagyis $G'$ nem összefüggő
- Ez ellentmondás,hiszen $G$ $k\text{-szorosan}$ összefüggő.
*** Következmény
Ha a G gráf $k\text{-szorosan}$ pontösszefüggő, akkor $k\text{-szorosan}$
élösszefüggő is.
Ha a G gráf $k\text{-szorosan}$ pontösszefüggő, akkor $k\text{-szorosan}$
élösszefüggő is.
*** Következmény bizonyítása
Ha $G$ $k\text{-szorosan}$ összefüggő, akkor a [[*Tétel (Menger tétele többszörös
összefüggőségre)]] 2. állítása szerint bármely két csúcsa között létezik $k$
é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ő.
Ha $G$ $k\text{-szorosan}$ összefüggő, akkor a [[*Tétel (Menger tétele többszörös
összefüggőségre)]] 2. állítása szerint bármely két csúcsa között létezik $k$
é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) $\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
Graph, röviden DAG.
Egy irányított $G$ gráfot akkor nevezünk *aciklikusnak*,ha nem tartalmaz
irányított kört. Angolul Directed Acyclic
Graph, röviden DAG.
** Definíció
Legyen $G = (V, E)$ irányított gráf és $(v_1, v_2,\dots, v_n)$ a $G$ csúcsainak
egy felsorolása. A $(v_1 , v_2 ,\ldots, v_n )$ sorozatot topologikus rendezésnek
(vagy topologikus sorrendnek) nevezzük, ha $G$ minden $(x, y)$ élére x előbb van
a sorozatban, mint $y$ (vagyis ha $x = v_i$ és $y = v_j$ , akkor $i < j$).
Legyen $G = (V, E)$ irányított gráf és $(v_1, v_2,\dots, v_n)$ a $G$ csúcsainak
egy felsorolása. A $(v_1 , v_2 ,\ldots, v_n )$ sorozatot topologikus rendezésnek
(vagy topologikus sorrendnek) nevezzük, ha $G$ minden $(x, y)$ élére x előbb van
a sorozatban, mint $y$ (vagyis ha $x = v_i$ és $y = v_j$ , akkor $i < j$).
** Tétel
A $G$ irányított gráfnak akkor és csak akkor van topologikus rendezése, ha
aciklikus.
A $G$ irányított gráfnak akkor és csak akkor van topologikus rendezése, ha
aciklikus.
*** Bizonyítás
- Az szükségessége magától értetődő.
- Az elégségesség bizonyításához először be kell látnunk,hogy tartalmaz /nyelőt/
(Olyan csúcsot,amelyből nem indul ki él). Ez szerencsére könnyen található:
vegyük a gráf leghosszabb $P$ útját, ekkor a $P$ út $v$ végpontja nyelő.
- Az szükségessége magától értetődő.
- Az elégségesség bizonyításához először be kell látnunk,hogy tartalmaz /nyelőt/
(Olyan csúcsot,amelyből nem indul ki él). Ez szerencsére könnyen található:
vegyük a gráf leghosszabb $P$ útját, ekkor a $P$ út $v$ végpontja nyelő.
- Válasszunk tehát egy nyelő,legyen ez $v_n$,majd hagyjuk el $G\text{-ből}$.
- A kapott $G'$ gráfban,szintén lesz egy $v_{n-1}$ nyelő, ezt is hagyjuk el.
- Folytassuk az eljárást amíg lehet
- A kapott $v_1,v_2,\ldots,v_n$ sorozat nyilván topologikus rendezés.
- Válasszunk tehát egy nyelő,legyen ez $v_n$,majd hagyjuk el $G\text{-ből}$.
- A kapott $G'$ gráfban,szintén lesz egy $v_{n-1}$ nyelő, ezt is hagyjuk el.
- Folytassuk az eljárást amíg lehet
- A kapott $v_1,v_2,\ldots,v_n$ sorozat nyilván topologikus rendezés.
** Algoritmus legrövidebb és leghosszabb utak meghatározására aciklikus irányított gráfban.
Irányított aciklikus gráfokban a legrövidebb és a leghosszabb utat lineáris
időben meg lehet találni egy egyszerű algoritmussal.
Irányított aciklikus gráfokban a legrövidebb és a leghosszabb utat lineáris
időben meg lehet találni egy egyszerű algoritmussal.
Fontos megjegyezni,hogy ebben az esetben minden él rendelkezik egy súllyal,ami
az út ''hosszát'' jelenit.
Fontos megjegyezni,hogy ebben az esetben minden él rendelkezik egy súllyal,ami
az út ''hosszát'' jelenit.
Keressük meg a $s \rightarrow v$ legrövidebb utat!
- Ha $s$ a topologikus sorrendben hátrébb szerepel,akkor $\nexists$ ilyen út
- Különben végig megyünk a csúcsokon $s\text{-től}$ $v\text{-ig}$ a topologikus
sorrendben. Minden csúcsra adok egy legrövidebb utat,úgy hogy megnézzük milyen
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ó.
Keressük meg a $s \rightarrow v$ legrövidebb utat!
- Ha $s$ a topologikus sorrendben hátrébb szerepel,akkor $\nexists$ ilyen út
- Különben végig megyünk a csúcsokon $s\text{-től}$ $v\text{-ig}$ a topologikus
sorrendben. Minden csúcsra adok egy legrövidebb utat,úgy hogy megnézzük milyen
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 $\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
számát(hány csúcsban járt már;Jele: $d(v)$), befejezési szám(hány csúcs lett
befejezve;Jele: $f(v)$) és az legutóbb bejárt csúcsot(Jele: $m(v)$). A
kiválasztott $s$ csúcsból kiindulva véletlenszerűen választunk a gráfból egy élt(ami olyan
csúcsba vezet,ahol még nem jártunk),amerre mehetünk. Ezt addig folytatjuk,amíg
lehetséges. Minden egyes csúcsbalépéskor növeljük a mélységi számot. Ha az
algoritmus eljut egy olyan csúcsig,amiből nem vezet több út,akkor egyel
visszalép,és növeli a befejezési számot. Ha a gráf nem összefüggő és az
algoritmus az adott komponensben már nem tud tovább lépni, akkor az eddig nem
bejárt csúcsok közül választ egy tetszőlegest.
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
számát(hány csúcsban járt már;Jele: $d(v)$), befejezési szám(hány csúcs lett
befejezve;Jele: $f(v)$) és az legutóbb bejárt csúcsot(Jele: $m(v)$). A
kiválasztott $s$ csúcsból kiindulva véletlenszerűen választunk a gráfból egy élt(ami olyan
csúcsba vezet,ahol még nem jártunk),amerre mehetünk. Ezt addig folytatjuk,amíg
lehetséges. Minden egyes csúcsbalépéskor növeljük a mélységi számot. Ha az
algoritmus eljut egy olyan csúcsig,amiből nem vezet több út,akkor egyel
visszalép,és növeli a befejezési számot. Ha a gráf nem összefüggő és az
algoritmus az adott komponensben már nem tud tovább lépni, akkor az eddig nem
bejárt csúcsok közül választ egy tetszőlegest.
** DFS erdő
A DFS által bejárt élek egy erdőt alkotnak.
A DFS által bejárt élek egy erdőt alkotnak.
** Definíció
Tegyük fel, hogy az $s$ csúcsból indítva lefuttattuk a DFS algoritmust
a $G$ irányított gráfban. Jelölje a futáshoz tartozó DFS-erdőt $F$. Legyen $e = (u, v)$
a $G\text{-nek}$ egy tetszőleges éle. Ekkor
1. $e\text{-t}$ faélnek nevezzük, ha $e \in E(F)$;
2. $e\text{-t}$ előreélnek nevezzük, ha nem faél, de $F$-ben van $u$ -ból $v$ -be irányított út
(vagyis $v$ „leszármazottja” $u$ -nak);
3. $e\text{-t}$ visszaélnek nevezzük, ha $F$ -ben van $v$ -ből $u$ -ba irányított út (vagyis $v$
„őse” $u$ -nak);
4. $e\text{-t}$ keresztélnek nevezzük, ha $F$ -ben sem $u$ -ból $v$ -be, sem $v$
-ből $u$ -ba nincs irányított út (vagyis $u$ és $v$ között nincs „egyenes ági
leszármazási viszony”).
Tegyük fel, hogy az $s$ csúcsból indítva lefuttattuk a DFS algoritmust
a $G$ irányított gráfban. Jelölje a futáshoz tartozó DFS-erdőt $F$. Legyen $e = (u, v)$
a $G\text{-nek}$ egy tetszőleges éle. Ekkor
1. $e\text{-t}$ faélnek nevezzük, ha $e \in E(F)$;
2. $e\text{-t}$ előreélnek nevezzük, ha nem faél, de $F$-ben van $u$ -ból $v$ -be irányított út
(vagyis $v$ „leszármazottja” $u$ -nak);
3. $e\text{-t}$ visszaélnek nevezzük, ha $F$ -ben van $v$ -ből $u$ -ba irányított út (vagyis $v$
„őse” $u$ -nak);
4. $e\text{-t}$ keresztélnek nevezzük, ha $F$ -ben sem $u$ -ból $v$ -be, sem $v$
-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
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 *$.
: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
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 *$.
*** 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
jelenti. Ezzel minden $v$ csúcshoz hozzárendelhetünk egy $kezd(v)$ kezdési
időt,és egy $bef(v)$ befejezési időt. A kettő közti intervallumot
$I(v)\text{-tel}$ jelöljük
- Az eljárás során, $T$ változót mindig növeljük meg, ha belépünk egy új csúcsba.
- Először vegyük észre,hogy ha veszünk egy $I(v)$ időintervallumot, akkor ehhez
megfeleltethetünk egy $F_v$ fát,amit ez alatt jár be. Ez egy részgráf lesz
$F\text{-nek}$.
- Tegyük fel hogy az $(a,v)$ élen a $T$ pillanatban próbál továbblépni. Ekkor
$kezd(a)\leq T \leq bef(a)$.
- Ha $d(v)>d(a)$, akkor $kezd(a)$ pillanatban $d(v)=*$ volt,így $v \in F_a$,azaz
$e$ egy előreél
- Ha $d(v)<d(a)$, akkor $kezd(v)$ pillanatban $d(a)=*$ volt. Ha emellett
$f(v)=*$ is igaz,akkor $kezd(v)<kezd(a)<\leq T < bef(v)$. Ezért $a \in F_v$,
így $e$ valóban visszaél.
- Ha $d(v)<d(a)$ és $f(v) \neq *$,akkor $kezd(a)$ pillanatban $I(v)$ már véget
ért. Így $a \notin F_v$ és $v \notin F_a$,így nincs irányított út
$F\text{-ben}$ $a \rightarrow v$ irányított út,vagyis $e$ keresztél
- 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
jelenti. Ezzel minden $v$ csúcshoz hozzárendelhetünk egy $kezd(v)$ kezdési
időt,és egy $bef(v)$ befejezési időt. A kettő közti intervallumot
$I(v)\text{-tel}$ jelöljük
- Az eljárás során, $T$ változót mindig növeljük meg, ha belépünk egy új csúcsba.
- Először vegyük észre,hogy ha veszünk egy $I(v)$ időintervallumot, akkor ehhez
megfeleltethetünk egy $F_v$ fát,amit ez alatt jár be. Ez egy részgráf lesz
$F\text{-nek}$.
- Tegyük fel hogy az $(a,v)$ élen a $T$ pillanatban próbál továbblépni. Ekkor
$kezd(a)\leq T \leq bef(a)$.
- Ha $d(v)>d(a)$, akkor $kezd(a)$ pillanatban $d(v)=*$ volt,így $v \in F_a$,azaz
$e$ egy előreél
- Ha $d(v)<d(a)$, akkor $kezd(v)$ pillanatban $d(a)=*$ volt. Ha emellett
$f(v)=*$ is igaz,akkor $kezd(v)<kezd(a)<\leq T < bef(v)$. Ezért $a \in F_v$,
így $e$ valóban visszaél.
- Ha $d(v)<d(a)$ és $f(v) \neq *$,akkor $kezd(a)$ pillanatban $I(v)$ már véget
ért. Így $a \notin F_v$ és $v \notin F_a$,így nincs irányított út
$F\text{-ben}$ $a \rightarrow v$ irányított út,vagyis $e$ keresztél
Mivel minden lehetőséget lefedtünk,így definíció szerint az állításokat beláttuk.
Mivel minden lehetőséget lefedtünk,így definíció szerint az állításokat beláttuk.
** Tétel
Futtassuk le a DFS algoritmust a $G$ irányított gráfban az $s$ csúcsból
indítva. $G$ akkor és csak akkor aciklikus, ha az eljárás során nem keletkezik
visszaél és ebben az esetben a befejezési számozás szerinti fordított sorrendben
felsorolva $G$ csúcsait topologikus rendezést kapunk.
Futtassuk le a DFS algoritmust a $G$ irányított gráfban az $s$ csúcsból
indítva. $G$ akkor és csak akkor aciklikus, ha az eljárás során nem keletkezik
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)$
- 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 $\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.
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.
: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
- 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.
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
- 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$.
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)\}\}}
\end{align}
: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)\}\}}
\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.
- 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)
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)
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}$.
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.
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
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}
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
$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\}$.
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)$.
Ekkor $t\notin (a) = t(a)$.
*** 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)
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.
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.
\clearpage
\begin{thebibliography}{99}
\clearpage
\begin{thebibliography}{99}
\bibitem[1]{kv}
\bibentry{Katona Gyula Recski András Szabó Csaba, }{(2002)}{A számítástudomány alapjai, }{Budapest, }{Typotex Kiadó}{}{}
\bibitem[1]{kv}
\bibentry{Katona Gyula Recski András Szabó Csaba, }{(2002)}{A számítástudomány alapjai, }{Budapest, }{Typotex Kiadó}{}{}
\bibitem[2]{hj}
\bibentry{Szeszlér Dávid, }{(2019)}{Bevezetés a Számításelméletbe 2 - Ideiglenes egyetemi jegyzet a koronavírus járvány idején zajló távoktatáshoz, }{Budapest, }{\url{http://cs.bme.hu/bsz2/bsz2_jegyzet.pdf}}{}{}
\end{thebibliography}
\bibitem[2]{hj}
\bibentry{Szeszlér Dávid, }{(2019)}{Bevezetés a Számításelméletbe 2 - Ideiglenes egyetemi jegyzet a koronavírus járvány idején zajló távoktatáshoz, }{Budapest, }{\url{http://cs.bme.hu/bsz2/bsz2_jegyzet.pdf}}{}{}
\end{thebibliography}