From: Jan 'Moskyt' Matejka Date: Sun, 19 Jun 2011 20:34:22 +0000 (+0200) Subject: 4: Nejdelsi cesta, definice komponent silne souvislosti X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=8d7745576cfd6aa7caf4d697fef3885cac013424;p=ads1.git 4: Nejdelsi cesta, definice komponent silne souvislosti --- diff --git a/4-dfs/4-dfs.tex b/4-dfs/4-dfs.tex index 0cb8e0a..20fc039 100644 --- a/4-dfs/4-dfs.tex +++ b/4-dfs/4-dfs.tex @@ -4,24 +4,31 @@ \h{Nejdel¹í cesta v DAG-u (v grafu bez orientovaných cyklù):} -\s{Definice:} Pro $w \in V$ bude $D(w)$ délka nejdel¹í cesty z $u$ do $w$. $D^R(w)$ bude délka nejdel¹í cesty v grafù s hranami opaène. +\s{Definice:} Pro $u,v \in V$ bude $D(u,v)$ délka nejdel¹í cesty z $u$ do $v$. +$D^R(u,v)$ bude délka nejdel¹í cesty v grafu s otoèenými hranami. + +Neexistuje-li cesta z $u$ do $v$, nech» $D(u,v) = -\inf$. Zvolme pak $D(u)$ +jako nejdel¹í cestu zaèínající v $u$. $$D(u) = \max_{v\in V} D(u,v)$$ \s{Algoritmus:} \algo -\algin Graf $G$ -\:Zvolíme topologické uspoøádání $w_1 \dots w_n$ na $G$ -\:Pro ka¾dé $w_i$ pøed $u$ nastavíme $D(w_i)=-\inf$ a $D(u)=0$ -\:Postupnì procházíme vrcholy $w_i \in V(G)$ v topologickém poøadí a pro $\forall w_i$ spoèítáme $D(w_i)$ -\::$D(w_i)=\max_{\forall w_j \mid (w_j, w_i) \in E} (D(w_j)) + 1$ -\algout Vrátime $D(v)$ +\algin Graf $G$, v nìm vrchol $u$. +\:Zvolíme topologické uspoøádání $w_1 \dots w_n$ na $G$. Nech» $w_k=u$. +\:Pøedpoèítáme si ke ka¾dému vrcholu v¹echny jeho pøedchùdce, tedy mno¾inu +$W_i = \{w_j\mid(w_j,w_i)\in E\}$, v èase i pamìti $\O(n+m)$. +\:Pro v¹echny vrcholy $w_i$ pøed $u$ ($\forall w_i\mid i{\I Pozorování:} $e = (x,y)$ kritická kdy¾ $D(x) + D^R(y) + e(x,y) = D(v)$ +%\>{\I Pozorování:} $e = (x,y)$ kritická kdy¾ $D(x) + D^R(y) + e(x,y) = D(v)$ +% MQ: Toto pozorování mì mate. Co tam má být doopravdy? %%%%%% % @@ -47,16 +54,14 @@ \h{Rozkládání orientovaných grafù na komponenty souvislosti} -\s{Definice:} $R$ bude relace na $V(G)$ tak, ¾e $uRv \Longleftrightarrow$ existuje orientovaná cesta v~$G$ z~$u$ do~$v$ a opaène. +\s{Definice:} $R$ bude relace na $V(G)$ tak, ¾e $uRv$ znamená, ¾e existuje orientovaná cesta v~$G$ z~$u$ do~$v$ a opaènì. -\>{\I Pozorování:} Ak $R$ je ekvivalence a $u...v$ $v...w$ je $u$-$w$ sled $\Rightarrow$ existuje $u$-$w$ cesta. +% WTF? +%\>{\I Pozorování:} Pokud $R$ je ekvivalence a $u...v$ $v...w$ je $u$-$w$ sled $\Rightarrow$ existuje $u$-$w$ cesta. -\s{Definice:} $G$ je silnì souvislý $\Longleftrightarrow \forall (u,v) \in V(G) : uRv$. +\s{Definice:} $G$ je silnì souvislý právì tehdy, kdy¾ $\forall (u,v) \in V(G): uRv$. -{\narrower -\s{Definice:} Komponenty silné souvislosti grafu $G \Longleftrightarrow$ ekvivalence tøídy relace $R$ je -DAG - ka¾dý vrchol ve své komponente. -} +\s{Definice:} Komponenty silné souvislosti grafu $G$ jsou tøídy ekvivalence relace $R$. \s{Definice:} Graf komponent $C(G)$ @@ -66,7 +71,7 @@ $(C_1,C_2) \in E(C(G)) \Longleftrightarrow \exists v_1 \in C_1, v_2 \in C_2 : ( \smallskip -\s{Lemma:} $\forall (G) : C(G)$ je DAG. +\s{Lemma:} Graf komponent $C(G)$ ka¾dého grafu $G$ je DAG. \proof Sporem: Nech» $C_1, C_2, \dots C_k$ tvoøí cyklus v~$C(G)$. Potom existují vrcholy $x_1 \dots x_k \in C_i$ a $y_1 \dots y_k \in C_{i+1}$ takové, ¾e $(x_i, y_i)$ jsou hrany grafu~$G$. V¹echny $C_i$ jsou silne souvislé, teda existuje cesta z~$y_{i-1}$ do~$x_i$ v~$C_i$. Slepením vznikne cyklus v~$G$, co¾ je spor.