4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.



Podobné dokumenty
4 Pojem grafu, ve zkratce

4 Stromy a les. Petr Hlin їn 0 5, FI MU Brno 1 FI: MA010: Stromy a les

Diskrétní matematika. DiM /01, zimní semestr 2015/2016

H {{u, v} : u,v U u v }

10 Přednáška ze

5 Orientované grafy, Toky v sítích

10 Podgrafy, isomorfismus grafů

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

Jan Březina. 7. března 2017

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

5 Minimální kostry, Hladový algoritmus

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Definice 5.1 Graf G = (V, E) je tvořen množinou vrcholů V a množinou hran, kde

Teorie grafů BR Solutions - Orličky Píta (Orličky 2010) Teorie grafů / 66

Matematika III 10. přednáška Stromy a kostry

které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole.

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

8 Rovinnost a kreslení grafů

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

SOUČIN MATIC A m n B n p = C m p, přičemž: a i1 b 1j +a i2 b 2j + +a in b nj = c ij, i=1 m, j=1 p. Např: (-2) = -3

Vrcholová barevnost grafu

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Základní datové struktury III: Stromy, haldy

Stromy, haldy, prioritní fronty

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

Výroková a predikátová logika - II

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

1 Linearní prostory nad komplexními čísly

Kreslení grafů na plochy Tomáš Novotný

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

TGH09 - Barvení grafů

Výroková a predikátová logika - II

1 Determinanty a inverzní matice

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Lineární algebra : Lineární prostor

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Hamiltonovské kružnice, stromy, rovinné grafy

Úvod do vybíravosti grafů, Nullstellensatz, polynomiální metoda

Teorie grafů Jirka Fink

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

Operace s maticemi. 19. února 2018

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Výroková a predikátová logika - II

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

Teorie grafů. zadání úloh. letní semestr 2008/2009. Poslední aktualizace: 19. května First Prev Next Last Go Back Full Screen Close Quit

Definice 1 eulerovský Definice 2 poloeulerovský

Operační výzkum. Síťová analýza. Metoda CPM.

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

TGH02 - teorie grafů, základní pojmy

Úvod do teorie grafů

8 Přednáška z

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Základy teorie množin

TGH05 - aplikace DFS, průchod do šířky

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

Základní pojmy teorie grafů [Graph theory]

Binární vyhledávací stromy pokročilé partie

TGH05 - aplikace DFS, průchod do šířky

Výroková a predikátová logika - IV

DEFINICE Z LINEÁRNÍ ALGEBRY

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

STROMY. v 7 v 8. v 5. v 2. v 3. Základní pojmy. Řešené příklady 1. příklad. Stromy

TGH02 - teorie grafů, základní pojmy

Vybíravost grafů, Nullstellensatz, jádra

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

TGH02 - teorie grafů, základní pojmy

Definice barevnosti grafu, základní vlastnosti. Varinaty problému barvení.

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016

0.1 Úvod do lineární algebry

Golayův kód 23,12,7 -kód G 23. rozšířený Golayův kód 24,12,8 -kód G 24. ternární Golayův kód 11,6,5 -kód G 11

Lineární algebra : Násobení matic a inverzní matice

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

GRAFY A GRAFOVÉ ALGORITMY

VLASTNOSTI GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 5

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím.

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Přijímací zkouška - matematika

Hledáme efektivní řešení úloh na grafu

Věta o dělení polynomů se zbytkem

Výroková a predikátová logika - III

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

Lineární algebra : Násobení matic a inverzní matice

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

10. DETERMINANTY " # $!

Funkce, elementární funkce.

Matice. a m1 a m2... a mn

10 Důkazové postupy pro algoritmy

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016

Kapitola 11: Vektory a matice:

Vzdálenost uzlů v neorientovaném grafu

Transkript:

4 Stromy a les Jedním ze základních, a patrně nejjednodušším, typem grafů jsou takzvané stromy. Jedná se o souvislé grafy bez kružnic. Přes svou (zdánlivou) jednoduchost mají stromy bohatou strukturu a především množství vlastních aplikací, například v datových strukturách. Patrně nejstarší motivací pojmu stromu jsou rodokmeny ( po meči ), jejichž původ sahá daleko před vznik teorie grafů. Stručný přehled lekce Definice a základní vlastnosti stromů. Kořenové a uspořádané stromy, isomorfismus. Kostry grafů a jejich počet. Petr Hliněný, FI MU Brno 1 FI: MA010: Stromy a les

4.1 Základní vlastnosti stromů Definice 4.1. Strom je jednoduchý souvislý graf T bez kružnic. Lema 4.2. Strom s více než jedním vrcholem obsahuje vrchol stupně 1. Důkaz: Souvislý graf s více než jedním vrcholem nemůže mít vrchol stupně 0. Proto vezmeme strom T a v něm libovolný vrchol v. Sestrojíme nyní co nejdelší sled S v T začínající ve v: S začne libovolnou hranou vycházející z v. V každém dalším vrchole u, do kterého se dostaneme a má stupeň větší než 1, lze pak pokračovat sled S další novou hranou. Uvědomme si, že pokud by se ve sledu S poprvé zopakoval některý vrchol, získali bychom kružnici, což ve stromě nelze. Proto sled S musí jednou skončit v nějakém vrcholu stupně 1 v T. Věta 4.3. Strom na n vrcholech má přesně n 1 hran pro n 1. Důkaz: Toto tvrzení dokážeme indukcí podle n. Strom s jedním vrcholem má n 1 = 0 hran. Necht T je strom na n > 1 vrcholech. Podle Lematu 4.2 má T vrchol v stupně 1. Označme T = T v graf vzniklý z T odebráním vrcholu v. Pak T je také souvislý bez kružnic, tudíž strom na n 1 vrcholech. Dle indukčního předpokladu T má n 1 1 hran, a proto T má n 1 1 + 1 = n 1 hran. Petr Hliněný, FI MU Brno 2 FI: MA010: Stromy a les

Věta 4.4. Mezi každými dvěma vrcholy stromu vede právě jediná cesta. Důkaz: Jelikož strom T je souvislý dle definice, mezi libovolnými dvěma vrcholy u, v vede nějaká cesta. Pokud by existovaly dvě různé cesty P 1, P 2 mezi u, v, tak bychom vzali jejich symetrický rozdíl, podgraf H = P 1 P 2 s neprázdnou množinou hran, kde H zřejmě má všechny stupně sudé. Na druhou stranu se však podgraf stromu musí opět skládat z komponent stromů, a tudíž obsahovat vrchol stupně 1 podle Lematu 4.2, spor. Proto cesta mezi u a v existuje jen jedna. Důsledek 4.5. Přidáním jedné nové hrany do stromu vznikne právě jedna kružnice. Důkaz: Necht mezi vrcholy u, v ve stromu T není hrana. Přidáním hrany e = uv vznikne právě jedna kružnice z e a jediné cesty mezi u, v v T podle Věty 4.4. Věta 4.6. Strom je minimální souvislý graf (na daných vrcholech). Důkaz: Strom je souvislý podle definice. Pokud by ale vypuštěním hrany e = uv ze stromu T vznikl opět souvislý graf, pak by mezi u, v v T existovaly dvě cesty (dohromady kružnice) hrana e a jiná cesta v T e. To je ve sporu s Větou 4.4. Naopak, pokud by souvislý graf měl kružnici, zůstal by souvislý i po vypuštění některé hrany té kružnice. Proto každý minimální souvislý graf (na daných vrcholech) je stromem. Tudíž strom je právě minimálním souvislým grafem na daných vrcholech. Petr Hliněný, FI MU Brno 3 FI: MA010: Stromy a les

Příklad 4.7. Kolik nejvýše kružnic vznikne v grafu, který vytvoříme ze stromu přidáním dvou hran? Přidáním jedné hrany do stromu T vznikne jedna kružnice dle Důsledku 4.5. Druhá hrana vytvoří nejméně ještě jednu kružnici ze stejných důvodů, ale může vytvořit i dvě další kružnice, jako třeba v následujícím grafu, kde strom T je vyznačen plnými čarami a dvě přidané hrany čárkovaně. Každá z přidaných dvou hran vytvoří vlastní trojúhelník a navíc ještě vznikne kružnice délky 4 procházející oběma z přidaných hran. Na druhou stranu chceme ukázat, že více než 3 kružnice vzniknout nemohou po přidání dvou hran e, f do stromu T: Podle Důsledku 4.5 vznikne jen jedna kružnice procházející hranou e a neobsahující f, stejně tak jedna kružnice procházející f a neobsahující e. Nakonec stačí nahlédnout, že je nejvýše jedna možná kružnice procházející oběma hranami e, f: Pokud by takové byly dvě různé C 1, C 2, podívali bychom se na jejich symetrický rozdíl, podgraf H = C 1 C 2, který má všechny stupně sudé, neprázdnou množinu hran a je navíc pografem stromu T. Takže stejně jako ve Větě 4.4 dostáváme spor s faktem, že podgrafy stromů s hranami musí obsahovat vrchol stupně 1. Petr Hliněný, FI MU Brno 4 FI: MA010: Stromy a les

4.2 Kořenové stromy Při mnoha aplikacích stromových struktur se ke stromu jako grafu samotnému ještě váží dodatečné informace, jako třeba vyznačený jeden vrchol, tzv. kořen stromu, ze kterého celý strom vyrůstá. Typickým příkladem jsou různé (acyklické) datové struktury, ve kterých je vyznačený vrchol kořen, referován jako začátek uložených dat. Kořenové stromy mají také tradiční motivaci v rodokmenech a z toho vychází jejich běžná terminologie. Definice 4.8. Kořenovým stromem je strom T spolu s vyznačeným kořenem r V (T), zkráceně dvojice T, r. Příklad kořenového stromu je na následujícím obrázku: r Zajímavostí je, že v informatice stromy většinou rostou od kořene směrem dolů. (Však také nejsme v biologii...) Petr Hliněný, FI MU Brno 5 FI: MA010: Stromy a les

Definice: Mějme kořenový strom T, r a v něm vrchol v. Označme u souseda v na cestě směrem ke kořeni r. Pak je u nazýván rodičem v a v je nazýván potomkem u. Kořen nemá žádného rodiče. kořen prarodič potomci rodič Často se také setkáte v kořenových stromech s označováním otec syn místo rodič potomek. My jsme takové označení nepoužili proto, že by (hlavně v zemích na západ od nás) mohlo být považováno za sexistické. Definice: Vrchol stupně 1 v libovolném stromu nazýváme listem. Pozor, i kořen stromu může být listem, pokud má stupeň 1, ale obvykle se to tak neříká. List kořenového stromu, který není kořenem, nemá potomky. Petr Hliněný, FI MU Brno 6 FI: MA010: Stromy a les

Definice: Centrem stromu T rozumíme bud vrchol nebo hranu nalezenou v T následujícím postupem: Pokud má strom T jeden vrchol, je to jeho centrum. Pokud má strom T dva vrcholy, je jeho centrem hrana spojující tyto dva vrcholy. Jinak vytvoříme menší strom T T vypuštěním všech listů T najednou. Je zřejmé, že T je neprázdný, a vracíme se na předchozí bod. Získané (rekurzivně) centrum T je zároveň centrem T. Příklad 4.9. Ilustrací definice centra jsou následující dva postupy nalezení: Fakt. Pokud chceme danému (abstraktnímu) stromu přiřadit jednoznačně kořen, je nejlepší jej přiřadit centru stromu. Speciálně, pokud je centrem hrana, bude kořenem nový vrchol rozdělující tuto hranu na dvě. Petr Hliněný, FI MU Brno 7 FI: MA010: Stromy a les

Definice: Kořenový strom T, r je uspořádaný, pokud je pro každý jeho vrchol jednoznačně dáno pořadí jeho potomků (zleva doprava). Uspořádaný kořenový strom se také nazývá pěstovaný strom. Uspořádaný kořenový strom si jinak také můžeme představit jako strom s vyznačeným kořenem a pevně zvoleným nakreslením v rovině bez křížení hran. Nakreslení hran potomků vzhledem k hraně rodiče pak udává (ve zvolené orientaci) pořadí potomků. kořen rodič potomci: 1 2 3 4 Uspořádání potomků vrcholu ve stromu je přirozeně požadováno v mnoha praktických situacích. Například ve stromových datových strukturách jsou často potomci explicitně seřazeni podle daného kĺıče, jako třeba ve vyhledávacích binárních stromech. I v případech, kdy uspořádání potomků ve stromě není dáno, je možné jej jednoznačně definovat, jak uvidíme v následující části. Petr Hliněný, FI MU Brno 8 FI: MA010: Stromy a les

4.3 Isomorfismus stromů Jelikož stromy jsou speciálním případem grafů, je isomorfismus stromů totéž co isomorfismus grafů. Avšak na rozdíl od obecných grafů, kdy je určení isomorfismu těžký problém, pro isomorfismus stromů existuje efektivní postup, který si ukážeme dále. Definice: Dva kořenové stromy T, r a T, r jsou isomorfní pokud existuje isomorfismus mezi stromy T a T, který kořen r zobrazuje na kořen r. r r Definice: Dva uspořádané kořenové stromy jsou isomorfní pokud je mezi nimi isomorfismus kořenových stromů, který navíc zachovává pořadí potomků všech vrcholů. r r Petr Hliněný, FI MU Brno 9 FI: MA010: Stromy a les

Kódování uspořádaných kořenových stromů ( závorkování stromů) Definice: ( ((()()())()) (()(())) ) ( (()()()) () ) ( () (()) ) ( ()()() ) (()) () () () () () () Kód uspořádaného kořenového stromu se spočítá rekurzivně z kódů všech podstromů kořene, seřazených v daném pořadí a uzavřených do páru závorek. Poznámka: Místo znaků ( a ) lze použít i jiné symboly, třeba 0 a 1. Lema 4.10. Dva uspořádané kořenové (pěstované) stromy jsou isomorfní právě když jejich kódy získané podle předchozího popisu jsou shodné řetězce. Petr Hliněný, FI MU Brno 10 FI: MA010: Stromy a les

Fakt. Je-li dán kód s uspořádaného kořenového stromu, příslušný strom nakresĺıme následujícím postupem: Při přečtení znaku ( na začátku spustíme pero na papír, do kořene. Při každém dalším přečtení znaku ( nakresĺıme hranu do následujícího potomka současného vrcholu. Při každém přečtení znaku ) se perem vrátíme do rodiče současného vrcholu, případně zvedneme pero, pokud už jsme v kořeni. Příklad 4.11. Nakreslete jako pěstovaný strom ten odpovídající závorkovému kódu ((()(()()()()))(()())). Petr Hliněný, FI MU Brno 11 FI: MA010: Stromy a les

Při určování isomorfismu obecných stromů použijeme závorkový kód, pro který kořen voĺıme v centru a potomky seřadíme podle jejich kódů vzestupně abecedně. Algoritmus 4.12. Určení isomorfismu dvou stromů. input: stromy T a U; if ( V (T)!= V (U) ) return Nejsou isomorfní. ; (T,r) = korenove centrum(t); (U,s) = korenove centrum(u); k = minimalni kod(t,r); m = minimalni kod(u,s); if (k==m jako řetězce) return Jsou isomorfní. ; else return Nejsou isomorfní. ; Funkce minimalni kod(strom X, vrchol r) { if ( V (X) ==1) return "()"; d = počet komponent grafu X-r, tj. podstromů kořene r; for (i=1,...,d) { Y[i] = i-tá souvislá komponenta grafu X-r; s[i] = i-tý soused r, tj. kořen podstromu Y[i]; k[i] = minimalni kod(y[i],s[i]); } sort k[1]<=k[2]<=...<=k[d] lexikograficky (abecedně); return "("+k[1]+...+k[d]+")"; } Petr Hliněný, FI MU Brno 12 FI: MA010: Stromy a les

Důkaz správnosti Algoritmu 4.12 je podán v následujícím tvrzení. Věta 4.13. Mějme dva stromy T, U o stejném počtu vrcholů a necht (T, r) a (U, s) jsou po řadě jejich kořenové stromy získané v první části Algoritmu 4.12 (kde r, s jsou centra T, U). Pak platí: a) T a U jsou isomorfní, právě když (T, r) je isomorfní (U, s). b) (T, r) je isomorfní (U, s), právě když minimalni kod(t,r) = minimalni kod(u,s). Důkaz (náznak): Tvrzení (a) ihned plyne z jednoznačnosti definice centra stromu. Za druhé (b) dokazujeme indukcí podle hloubky našich kořenových stromů T, r a U, s. (Zřejmě pokud mají různé hloubky, isomorfní nejsou.) Dva kořenové stromy hloubky 0 jsou vždy isomorfní a mají shodný kód (). Dále vezmeme T, r a U, s hloubky l > 0. Pokud jejich kódy vyjdou shodné, jsou isomorfní. Naopak pro isomorfní T, r a U, s existuje bijekce mezi vzájemně isomorfními podstromy jejich kořenů, tudíž podle indukčního předpokladu kódy těchto podstromů jsou po dvojicích shodné. Jelikož se v obou případech setřídí kódy podstromů stejně, vyjde minimalni kod(t,r) = minimalni kod(u,s). Petr Hliněný, FI MU Brno 13 FI: MA010: Stromy a les

4.4 Kostry grafů Definice 4.14. Kostrou souvislého grafu G je podgraf v G, který je sám stromem a obsahuje všechny vrcholy grafu G. Příklad 4.15. Kolik různých koster má tento graf? Podívejme se na kostru grafu takto jaké hrany z grafu vymažeme, aby zbyl strom? Zajisté musíme vymazat některou hranu z první kružnice (5 možností) a některou hranu z druhé kružnice (6 možností). Na druhou stranu to v tomto jednoduchém příkladě už stačí, vždy pak zbude strom. Výběr vymazané hrany z první kružnice je nezávislý na druhé kružnici (jsou disjunktní), a proto dle principu nezávislých výběrů máme 5 6 = 30 možností vybrat dvě hrany k vymazání. Celkem tedy vyjde 30 koster. Petr Hliněný, FI MU Brno 14 FI: MA010: Stromy a les

Následující výsledek patří ke krásným drahokamům teorie grafů. Věta 4.16. (Cayley) Úplný graf K n pro n > 0 má přesně n n 2 koster. Definice. Laplaceova matice Q = (q ij ) n i,j=1 grafu G o n vrcholech je definována: q ii = d G (i) (stupeň vrcholu), q ij = 0 pro vrcholy i j nespojené hranou, q ij = 1 pro vrcholy i j spojené hranou. Věta 4.17. Necht Q je Laplaceova matice grafu G a matice Q vznikne vyškrtnutím jejího prvního řádku a sloupce. Pak počet koster grafu G je roven determinantu Q. Důkaz této překvapivé věty je mimo dosah naši přednášky (využívá silné nástroje lineární algebry). Uvědomte si, proč samotná matice Q je singulární (determinantu 0) nebot součet prvků v každém řádku je 0. Je také možno vyškrtávat jiné řádky a sloupce, ale může se tím změnit znaménko determinantu. Petr Hliněný, FI MU Brno 15 FI: MA010: Stromy a les