]> mj.ucw.cz Git - ads1.git/commitdiff
4: Nejdelsi cesta, definice komponent silne souvislosti
authorJan 'Moskyt' Matejka <moskyto@atrey.karlin.mff.cuni.cz>
Sun, 19 Jun 2011 20:34:22 +0000 (22:34 +0200)
committerJan 'Moskyt' Matejka <moskyto@atrey.karlin.mff.cuni.cz>
Mon, 20 Jun 2011 14:35:10 +0000 (16:35 +0200)
4-dfs/4-dfs.tex

index 0cb8e0a59ea2662ff80a3bfb39f1887796430426..20fc03973472805eae7496324415667c69966908 100644 (file)
@@ -4,24 +4,31 @@
 
 \h{Nejdel¹í cesta v DAG-u (v grafu bez orientovaných cyklù):}
 
 
 \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
 
 \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<k$) nastavíme délku cesty $D(u,w_i)=-\infty$, pro $u$ pak $D(u,u)=0$.
+\:Postupnì procházíme vrcholy $w_i \in V(G)$ v topologickém poøadí a pro ka¾dý z nich spoèítáme $D(w_i)$.
+$$D(u,w_i)=\max_{w_j \mid (w_j, w_i) \in E} (D(u,w_j)) + e(w_i,w_j)$$
+\:Nalezneme maximum z $D(u,w_i)$ pøes v¹echna $i$ a oznaèíme jej $D(u)$.
+\algout Vrátime $D(u)$.
 \endalgo
 \endalgo
+\s{Èasová slo¾itost:} Sestrojení topologického uspoøádání a pøedpoèet v $\O(n+m)$. Postupné poèítání $D(u,w)$ také v $\O(n+m)$, celkem $\O(n+m)$.
 
 
-\s{Èasová slo¾itost:} Sestrojení topologického uspoøádání v $O(n+m)$. Poèítání indukcí $D(w)$ také v $O(n+m)$.
-
-\s{Definice:} Hrana je kritická právì tehdy, kdy¾ $e$ le¾í na nìkteré z nejdel¹ích cest.
+\s{Definice:} Hrana je kritická právì tehdy, kdy¾ le¾í na nìkteré z nejdel¹ích cest.
 
 
-\>{\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?
 
 %%%%%%
 %
 
 %%%%%%
 %
 
 \h{Rozkládání orientovaných grafù na komponenty souvislosti}
 
 
 \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)$
 
 
 \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
 
 
 \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.
 
 \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.