Z [L0.4] Strom, kostra, les, DAG znáš definici: tree (strom) = souvislý graf bez kružnice, a jako fakty jsme tam přijali „strom má $n-1$ hran“ a „mezi každou dvojicí vrcholů vede právě jedna cesta“. Dnes všechny tyhle tváře stromu dokážeme — je to méně častá, ale férová otázka k ústní (na slidech 61–62 je plný důkaz). Bonus: dva fakty z důkazu („hrana na kružnici jde smazat bez ztráty souvislosti“, „hrana uvnitř komponenty uzavře kružnici“) jsi už mlčky používal u MST i u [L3.9] double-tree.
Let $G$ be an undirected graph with $n$ nodes, then the following statements are equivalent:
Většinu tvrzení přečteš rovnou: (d) říká „minimálně souvislý“ (každá hrana je nepostradatelná), (f) říká „maximálně acyklický“ (žádná hrana se už nevejde). Jediný nový zápis je $\delta(X)$ v (e): zobecnění okolí vrcholu $\delta(v)$ z [L0.2] na množinu vrcholů — řez (cut) $$\delta(X) = \{\,\{u,v\} \in E(G) : u \in X,\ v \notin X\,\}$$ = hrany s právě jedním koncem v $X$.
„Každý řez je neprázdný“ je jen jiný způsob, jak říct souvislost: kdyby pro nějakou $X$ bylo $\delta(X) = \emptyset$, nevede z $X$ ven žádná hrana a vrcholy v $X$ se s těmi venku nikdy nepropojí. A naopak: je-li graf nesouvislý, vezmi za $X$ jednu komponentu — její řez je prázdný. Slovo minimal pak říká, že po smazání kterékoli hrany už tahle vlastnost neplatí. Takže (e) je vlastně (d) převlečené do jazyka řezů.
Prohlédni si všech sedm tváří na jednom stromě ($n = 6$):
V (b) i (c) má počet hran $n-1$ vždy parťáka (bez kružnice / souvislost). Není to zbytečná opatrnost?
Trojúhelník + oddělená cesta: $\{A,B,C\}$ spojené do kružnice (3 hrany) a vedle cesta $D$–$E$–$F$ (2 hrany). Celkem $m = 5 = n - 1$, ale graf je nesouvislý a zároveň obsahuje kružnici. „Hrana navíc“ promrhaná na kružnici přesně odpovídá „chybějící hraně“ mezi komponentami.
„Graf s $n-1$ hranami je strom“ — NE. Počet hran $n-1$ dělá strom až ve dvojici s jednou další vlastností: + bez kružnice = (b), nebo + souvislost = (c). Samotné $n-1$ hran připouští „kružnice tady, díra jinde“ (viz obrázek). U ústní na tohle zdůvodnění dojde.
Stačí 7 — uzavřený kruh $(a) \Rightarrow (g) \Rightarrow (e) \Rightarrow (d) \Rightarrow (f) \Rightarrow (b) \Rightarrow (c) \Rightarrow (a)$. Z libovolného tvrzení se pak do libovolného jiného „dojede po kruhu“ řetězením implikací. Přesně takhle je postavený slide 62.
Plán: nejdřív si pořídíme počítadlo $n = m + p$ (pohání tři implikace), pak kruh objedeme.
Slide 62 se dvakrát odvolává na fakt (znáš ho jako poznatek z [L0.4], teď ho dokážeme): „for a forest with $n$ nodes, $m$ edges and $p$ connected components $n = m + p$. (The proof is a trivial induction on $m$)“ (1:1).
Každý vrchol je sám svojí komponentou: $p = n$, tedy $n = 0 + n$. ✓
Kdyby $u, v$ ležely v téže komponentě, existuje mezi nimi cesta $P$ a $P + \{u,v\}$ uzavře kružnici — výsledek by nebyl les. Takže hrana lesa vždy spojuje dvě různé komponenty a slije je v jednu: $m$ vzroste o 1, $p$ klesne o 1, součet $m + p$ se nezmění. Z báze $m + p = n$ to platí pořád.
Důsledek pro náš protipříklad výše: les s $m = n - 1$ hranami má $p = n - m = 1$ komponentu, tedy je souvislý. Trojúhelník + cesta se z toho vykroutil jen tím, že není les.
Slide 62 (1:1): „(a) $\Rightarrow$ (g): follows from the fact that the union of two distinct paths with the same endpoints contains a circuit.“ Rozbalíme:
Sporem: nechť $P_1 \ne P_2$ jsou dvě různé cesty z $u$ do $v$. Jdi po obou současně od $u$: v nějakém vrcholu $r$ se poprvé rozvětví (existuje, jinak by byly stejné) a protože obě končí ve $v$, v nějakém prvním vrcholu $s$ se zase potkají. Úsek $P_1[r,s]$ + úsek $P_2[s,r]$ je uzavřený a vnitřně disjunktní — kružnice. Strom ale kružnici nemá (definice (a) z [L0.4]) → spor. Cesta je tedy právě jedna: (g).
Slide 62 tu důkaz nerozepisuje: „(g) $\Rightarrow$ (e) $\Rightarrow$ (d): see [1] page 17 Proposition 2.3.“ (odkaz na učebnici Korte–Vygen). Náčrt níže je vlastní doplněk (přiznáno) — pro ústní bohatě stačí.
$(g) \Rightarrow (e)$: Jednoznačné cesty ⟹ souvislost ⟹ každý řez neprázdný (cesta z $u \in X$ do $v \notin X$ musí někde řez překročit) — to je vlastnost z (e). Zbývá minimalita:
Hrana $e$ je cesta $u$–$v$; podle (g) je to jediná cesta mezi $u$ a $v$. V $G - e$ už tedy žádná $u$–$v$ cesta není. Vezmi $X$ = {vrcholy dosažitelné z $u$ v $G - e$}: platí $u \in X$, $v \notin X$ a žádná hrana $G - e$ z $X$ nevede ven (jinak by se dalo dosáhnout dál), takže $\delta_{G-e}(X) = \emptyset$. Žádná hrana se nedá postrádat → $G$ je minimální: (e).
$(e) \Rightarrow (d)$: už víme (try v sekci 1), že „všechny řezy neprázdné“ ⟺ souvislost. (e) tedy říká: $G$ je souvislý a po smazání kterékoli hrany souvislost padne — což je doslova (d).
Slide 62 (1:1): „(d) $\Rightarrow$ (f): trivial.“ (f) má dvě půlky — zkus obě:
Kdyby obsahoval kružnici $C$, smaž libovolnou její hranu $e \in C$: každá cesta, která $e$ používala, se vyhne po zbytku kružnice („objížďka“) — graf zůstane souvislý. To popírá (d) („while removing any edge it will not be connected anymore“). Takže kružnice není.
(d) garantuje souvislost, takže mezi $u$ a $v$ už nějaká cesta $P$ vede. $P + \{u,v\}$ je kružnice. Obě půlky (f) platí. ✓
Všimni si: objížďkový argument („hrana na kružnici jde smazat bez ztráty souvislosti“) za chvíli pohání i mašinu v $(c) \Rightarrow (a)$ — a znáš ho z důkazu, že MST je strom ([L0.5], [L3.8b]).
Slide 62 (1:1): „(f) $\Rightarrow$ (b) $\Rightarrow$ (c): follows from the fact that for a forest with $n$ nodes, $m$ edges and $p$ connected components $n = m + p$.“
Sporem: kdyby měl $G$ aspoň dvě komponenty, přidej hranu $\{u,v\}$ mezi nimi. Kružnice přes novou hranu by potřebovala jinou cestu $u$–$v$ — ta ale mezi komponentami neexistuje. Nová hrana tedy kružnici nevytvoří → spor s (f). Takže $p = 1$ a počítadlo dá $n = m + 1$, tj. $m = n - 1$. Spolu s „circuit-free“ je to přesně (b).
Bez kružnice = les → platí $n = m + p = (n-1) + p$, tedy $p = 1$: souvislý. Spolu s $m = n-1$ je to (c). ✓
Poslední šipka uzavírá kruh. Slide 62 (1:1): „(c) $\Rightarrow$ (a): $G$ is connected with $n - 1$. As long as there are any circuits in $G$, we destroy them by deleting any edge of the circuit. Suppose we have deleted $k$ circuits, the resulting graph $G'$ is a tree (contains no circuit and is connected) and has $m = n - 1 - k$ edges. So $n = m + p = n - 1 - k + 1$, implying $k = 0$.“
Maže se vždy hrana ležící na kružnici — objížďkový argument ze sekce $(d) \Rightarrow (f)$ říká, že souvislost přežije. Výsledek $G'$ je souvislý a bez kružnice = strom, a podle počítadla má $n - 1$ hran. Začínali jsme ale s $n-1$ hranami a každé zničení kružnice jednu hranu stálo: $n - 1 - k = n - 1 \Rightarrow k = 0$. Mašina tedy neměla co ničit — $G$ byl bez kružnice už na začátku, a protože je souvislý, je to strom: (a). Kruh je uzavřen. ∎
Mašina v akci (schválně na grafu s $m = n + 1$ hranami, ať je co ničit — poslední krok říká, proč s $m = n-1$ nezničí nic):
Let $G$ be an undirected graph with $n$ nodes, then the following statements are equivalent:
(a) $G$ is a tree. (b) $G$ has $n - 1$ edges and no circuit. (c) $G$ has $n - 1$ edges and is connected. (d) $G$ is connected and while removing any edge it will not be connected anymore. (e) $G$ is a minimal graph which has $\delta(X) \ne \emptyset$ for all $\emptyset \ne X \subset V(G)$. (f) $G$ is circuit-free and the addition of any edge creates a circuit. (g) $G$ contains a unique path between any pair of vertices.
(Vlastní pokyn k procvičení — přiznáno:) Prove that the statements are equivalent.
Věta ze slidu 61: sedm tvrzení o neorientovaném grafu, která jsou všechna ekvivalentní (každé z nich může sloužit jako definice stromu). Úkol: dokázat ekvivalenci — tj. zorganizovat implikace tak, aby se z každého tvrzení dalo dojít ke každému.
Nedokazuj 42 dvojic — postav uzavřený kruh $(a) \Rightarrow (g) \Rightarrow (e) \Rightarrow (d) \Rightarrow (f) \Rightarrow (b) \Rightarrow (c) \Rightarrow (a)$. Dopředu si připrav lemma $n = m + p$ pro lesy (indukce dle $m$) — pohání šipky $(f) \Rightarrow (b) \Rightarrow (c)$ i $(c) \Rightarrow (a)$. Dvě malá kopací kolečka: „dvě různé cesty se stejnými konci ⟹ kružnice“ a „hrana na kružnici jde smazat bez ztráty souvislosti“.
Lemma (slide 62, 1:1): for a forest with $n$ nodes, $m$ edges and $p$ connected components $n = m + p$. (The proof is a trivial induction on $m$.) — Indukce: $m=0$ dává $p=n$; přidávaná hrana lesa musí spojovat dvě různé komponenty (jinak by s cestou mezi svými konci uzavřela kružnici), takže $m \mathbin{+}{=} 1$, $p \mathbin{-}{=} 1$ a součet $m+p$ se zachovává.
$(a) \Rightarrow (g)$ (slide 62: „follows from the fact that the union of two distinct paths with the same endpoints contains a circuit“): Souvislost dává aspoň jednu cestu mezi každou dvojicí. Kdyby $P_1 \ne P_2$ vedly obě z $u$ do $v$, úsek mezi prvním rozvětvením $r$ a prvním opětovným setkáním $s$ tvoří kružnici — spor s acykličností stromu. Cesta je právě jedna.
$(g) \Rightarrow (e) \Rightarrow (d)$ (slide 62 odkazuje na [1] page 17 Proposition 2.3; náčrt vlastní — přiznáno): Z (g) plyne souvislost, a souvislost ⟺ $\delta(X) \ne \emptyset$ pro každou $\emptyset \ne X \subset V$ (cesta z $X$ ven musí řez překročit; obráceně prázdný řez = odříznutá množina). Minimalita: hrana $e=\{u,v\}$ je podle (g) jedinou $u$–$v$ cestou, takže v $G-e$ má množina vrcholů dosažitelných z $u$ prázdný řez → žádnou hranu nelze postrádat: (e). A (e) přeloženo z jazyka řezů: $G$ souvislý a $G - e$ nesouvislý pro každé $e$ — doslova (d).
$(d) \Rightarrow (f)$ (slide 62: „trivial“): Kružnice by dovolila smazat svou hranu bez ztráty souvislosti (objížďka po zbytku kružnice) — spor s (d); a přidání $\{u,v\}$ k existující $u$–$v$ cestě (souvislost) kružnici uzavře.
$(f) \Rightarrow (b) \Rightarrow (c)$ (slide 62: přes lemma): Z (f): kdyby $G$ měl dvě komponenty, hrana mezi nimi by žádnou kružnici nevytvořila (chybí druhá cesta) — spor; tedy $p=1$ a lemma dá $m = n-1$: to je (b). Z (b): les s $m = n-1$ má $p = n - m = 1$, tedy souvislý: (c).
$(c) \Rightarrow (a)$ (slide 62, 1:1): „$G$ is connected with $n-1$. As long as there are any circuits in $G$, we destroy them by deleting any edge of the circuit. Suppose we have deleted $k$ circuits, the resulting graph $G'$ is a tree (contains no circuit and is connected) and has $m = n - 1 - k$ edges. So $n = m + p = n - 1 - k + 1$, implying $k = 0$.“ — Mazání hrany kružnice souvislost zachová (objížďka), výsledek je souvislý a bez kružnice = strom, podle lemmatu má $n-1$ hran; protože jsme začali s $n-1$ hranami a každé smazání jednu stálo, je $k=0$: $G$ kružnici nikdy neměl a je to strom. Kruh je uzavřen, všech 7 tvrzení je ekvivalentních. ∎
Let $G$ be an undirected graph with $12$ nodes and $8$ edges. (i) Assume $G$ contains no circuit. How many connected components does $G$ have? (ii) Can a graph with $12$ nodes and $8$ edges be connected? (iii) A connected graph $H$ has $12$ nodes and $11$ edges. Prove that $H$ is a tree.
Tři rychlé otázky na vztah mezi počtem vrcholů, hran a komponent: (i) spočítat komponenty lesa, (ii) rozhodnout, zda málo hran dovolí souvislost, (iii) aplikovat implikaci $(c) \Rightarrow (a)$.
(i) Bez kružnice = les → dosaď do počítadla. (ii) Kolik hran souvislost minimálně potřebuje? Vyjdi z toho, že souvislý graf obsahuje kostru. (iii) Tohle je přesně premisa (c) — stačí citovat kruh, nebo zopakovat mašinu na ničení kružnic.
(i) Les: $n = m + p \Rightarrow p = 12 - 8 = 4$ komponenty.
(ii) Ne. Souvislý graf na $n$ vrcholech obsahuje kostru ([L0.4]), tedy aspoň $n - 1 = 11$ hran; $8 < 11$. (Alternativně: mašina z $(c)\Rightarrow(a)$ by z něj smazáním $k \ge 0$ hran udělala strom s $8 - k \le 8 < 11$ hranami — spor s lemmatem.)
(iii) $H$ je souvislý a má $n - 1 = 11$ hran → splňuje (c). Podle ekvivalence ze slidu 61 (implikace $(c) \Rightarrow (a)$, slide 62) je $H$ strom. Rozepsáno: ničíme-li kružnice mazáním jejich hran, souvislost se zachová a výsledný strom má podle lemmatu $11$ hran — takže jsme nesmazali nic ($k=0$) a $H$ byl bez kružnice od začátku. ∎