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

Podobné dokumenty
Diskrétní matematika. DiM /01, zimní semestr 2016/2017

Hlavolamy a teorie grafů

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

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

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

Úvod do teorie grafů

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

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

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

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

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

4 Pojem grafu, ve zkratce

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

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

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

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

10 Podgrafy, isomorfismus grafů

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

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

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

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

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

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

Vzdálenost uzlů v neorientovaném grafu

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

10 Přednáška ze

Dijkstrův algoritmus

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

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

GRAFY A GRAFOVÉ ALGORITMY

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

Algoritmizace prostorových úloh

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

Teorie grafů Jirka Fink

Teorie grafů. Kostra grafu. Obsah. Radim Farana Podklady pro výuku pro akademický rok 2013/2014

TGH08 - Optimální kostry

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

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

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

Prohledávání do šířky = algoritmus vlny

Úvod do Teorie grafů Petr Kovář

Vrcholová barevnost grafu

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

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

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

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

Teorie grafů. Teoretická informatika Tomáš Foltýnek

Algoritmy a datové struktury

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

Algoritmus pro hledání nejkratší cesty orientovaným grafem

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 2014

Modely Herbrandovské interpretace

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

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

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.

TEORIE GRAFŮ TEORIE GRAFŮ 1

Množiny, relace, zobrazení

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

Úvod do Teorie grafů Petr Kovář

Cvičení 5 - Průchod stromem a grafem

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

2. přednáška 8. října 2007

8 Přednáška z

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Pojem relace patří mezi pojmy, které prostupují všemi částmi matematiky.

"Agent Hledač" (3. přednáška)

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.

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

Úvod do informatiky. Miroslav Kolařík

Definice 1 eulerovský Definice 2 poloeulerovský

Stromy, haldy, prioritní fronty

Úvod do informatiky. Miroslav Kolařík

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

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

1. Toky, řezy a Fordův-Fulkersonův algoritmus

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

Lineární algebra : Lineární (ne)závislost

Matematická analýza pro informatiky I. Limita funkce

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

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

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

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

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 2017

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

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

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

07 Základní pojmy teorie grafů

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

Učební texty k státní bakalářské zkoušce Matematika Teorie grafů. študenti MFF 15. augusta 2008

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

Minimalizace KA - Úvod

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

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

Transkript:

Diskrétní matematika Petr Kovář petr.kovar@vsb.cz Vysoká škola báňská Technická univerzita Ostrava DiM 470-2301/01, zimní semestr 2018/2019

O tomto souboru Tento soubor je zamýšlen především jako pomůcka pro přednášejícího. Řadu důležitých informací v souboru nenajdete, protože přednášející je říká, ukazuje, případně maluje na tabuli. Přednášky jsou na webu k dispozici, aby studenti mohli snadno dohledat probíraná témata z přednášek, které zameškali. Pro samostatné studium doporučuji skripta: M. Kubesa: Základy diskrétní matematiky, výukový text P. Kovář: Úvod do teorie grafů, výukový text Pro přípravu ke zkoušce a písemkám doporučuji cvičebnici: P. Kovář: Cvičení z diskrétní matematiky, sbírka příkladů Vše na http://homel.vsb.cz/~kov16/predmety dm.php

Přehled přednášky Kapitola Souvislost grafu motivace souvislost grafu, komponenty grafu prohledávání grafu vyšší stupně souvislosti

Motivace Pokud graf reprezentuje počítačovou, nebo dopravní sít je přirozené zjistit zda a jak je možno cestovat (vyslat signál) z vrcholu u do vrcholu v. Zavedeme pojem souvislost grafu. Podobně má smysl zkoumat odolnost sítě vůči lokálním výpadkům: redundance uzlů dosažitelnost cílového vrcholu i při přerušení některých hran Dostáváme se k pojmu stupeň vrcholové a hranové souvislosti. Souvislé a nesouvislé grafy.

Souvislost grafu, komponenty grafu Neformálně: Graf je souvislý, pokud existuje spojení mezi každými dvěma vrcholy (i nepřímé). Formálně: zavedeme pojmy sled, tah a cesta v grafu. Definice Sledem v 0 v n v grafu G rozumíme takovou posloupnost vrcholů a hran (v 0, e 1, v 1, e 2, v 2,..., e n, v n ), kde v i jsou vrcholy grafu G a e i jsou hrany grafu G, přičemž hrana e i má koncové vrcholy v i 1 a v i. Počet hran nazveme délkou sledu v 0 v n. Vrchol v 0 nazýváme počáteční a vrchol v n koncový vrchol sledu. Pokud nejsou násobné hrany, můžeme sled zadat jako posloupnost vrcholů. (v 0, v 1, v 2,..., v n ) Můžeme vynechat i závorky: v 0, v 1, v 2,..., v n.

v 7 Sled v 1, v 1 v 2, v 2, v 2 v 5, v 5, v 5 v 7, v 7, v 7 v 6, v 6, Příklad v 4 v 5 v 6 v 1 v 2 v 3 v 6 v 3, v 3, v 3 v 2, v 2, v 2 v 5, v 5, v 5 v 4, v 4, v 4 v 5, v 5 je vyznačen modře. Stručně: v 1, v 2, v 5, v 7, v 6, v 3, v 2, v 5, v 4, v 5. Příklad v 1 v 2 v3 v 4 v 6 v 7 v 5 v 1, v 2, v 6, v 7, v 2, v 1, v 2, v 3 není sled sled v 1, v 2, v 6, v 7, v 2, v 1, v 2, v 4 sled v 1, v 2, v 7, v 5, v 6, v 4, v 3 (triviální) sled v 4

Pojem souvislosti je vybudován na pojmu sled. Definice Řekneme, že vrchol v je dosažitelný z vrcholu u, jestliže v grafu existuje sled z vrcholu u do vrcholu v. Graf nazveme souvislý, jestliže pro každé dva vrcholy u, v je vrchol v dosažitelný z vrcholu u. V opačném případě je graf nesouvislý. Příklad Jsou grafy na obrázku souvislé? v 1 v 8 v 1 v 8 v 2 v 7 v 2 v 7 v 3 v 6 v 3 v 6 v 4 v 5 v 4 v 5

Někdy však není žádoucí při popisu dosažitelnosti, aby se opakovaly hrany či vrcholy (potrubí, dopravní sítě, elektrické sítě, robotické svařování,... ). Definice Tah je sled, ve kterém se neopakují žádné hrany. Cesta je sled, ve kterém se neopakují žádné vrcholy, tedy ani hrany. Terminologie: kresĺıme jedním tahem. Vrcholy a hrany cesty v grafu tvoří podgraf, který je cestou. Příklad v 7 v 7 v 4 v 5 v6 v 4 v 5 v6 v 1 v 2 v 3 v 1 v 2 v 3 Tah v 1, v 2, v 5, v 7, v 6, v 5, v 4 a cesta v 1, v 2, v 5, v 7, v 6, v 3.

Věta Pokud mezi dvěma vrcholy grafu G existuje sled, pak mezi nimi existuje cesta. Důkaz Necht S u = v 0, e 1, v 1,..., e n, v n = v je sled délky n mezi vrcholy u a v v G. Hledáme sled P z vrcholu u do vrcholu v, který bude cestou (žádný vrchol se nebude opakovat). Pokud se v S žádný vrchol neopakuje, je P = S hledanou cestou. Pokud se některé vrcholy opakují vezmeme první takový vrchol v i. Vynecháme celý úsek sledu mezi prvním výskytem v i a jeho posledním opakováním v k. Získáme sled S, ve kterém se v i již neopakuje. Pokud se v S žádný vrchol neopakuje, je P = S. Jinak postup zopakujeme pro další vrchol. Postup je jistě konečný, nebot v G je konečně mnoho vrcholů. Jestliže v G existuje sled uv, tak můžeme postupem z důkazu vyrobit ze sledu uv cestu uv a říkáme, že vrcholy u a v jsou v G spojeny cestou.

Zavedeme relaci na množině vrcholů grafu G tak, že dva vrcholy u, v V (G) jsou v relaci (píšeme u v) právě tehdy, když v grafu G existuje sled uv. Relaci říkáme relace dosažitelnosti. Lemma Relace dosažitelnosti je relací ekvivalence. Důkaz Reflexivita plyne ihned z existence triviálního sledu uu délky 0. Pro každý vrchol u V (G) proto platí u u. Symetrie je zřejmá, nebot ke každému sledu uv v G sestavíme sled vu v G obrácením posloupnosti vrcholů a hran (neorientovaný graf). u, v V (G) platí u v v u. Tranzitivita plyne z faktu, že spojením sledu u,..., v a v,..., w dostaneme opět sled sled u,..., w. u, v, w V (G) platí u v v w u w.

Relace z Lemmatu definuje rozklad na množině V (G). Nyní můžeme vyslovit následující definici. Definice Třídy rozkladu příslušného relaci ekvivalence jsou podmnožiny V (G) a podgrafy indukované na těchto podmnožinách se nazývají komponenty souvislosti grafu G. Příklad Příklad grafů s jednou a více komponentami souvislosti.

Následují alternativní definice souvislosti grafu. Definice Řekneme, že graf G je souvislý, pokud je graf G tvořený jedinou komponentou souvislosti. Definice Řekneme, že graf G je souvislý, jestliže relace na množině V (G) je úplná. Příklad Příklad souvislých grafů a nesouvislého grafu.

Tahy střelce. Příklad Mějme graf S, který bude popisovat možné tahy střelce na šachovnici. (Připomeňme, že střelec se pohybuje diagonálně o libovolný počet poĺı.) Vrcholy grafu budou poĺıčka šachovnice a hranou spojíme dvě poĺıčka, pokud mezi nimi bude možno táhnout střelcem. Graf S není souvislý.

Příklad Loydova patnáctka je známý hlavolam. Už jsme o něm mluvili v kapitole o relacích. Úkolem je přesouváním čtverečků s čísly 1 až 15 zajistit, aby čísla čtena po řádcích tvořila aritmetickou posloupnost 1, 2 až 15. Sestavíme stavový graf dané úlohy: vrcholy jsou možná rozmístění čtverečků, hrany spojí vrcholy, jestliže existuje přípustný tah mezi nimi. Dá se ukázat, že takový graf není souvislý, úloha nemá řešení!

Úloha hanojských věží Hanojské věže a Édouard Lucas (1842 1891) Je dána tři koĺıky a sadu osmi disků různých velikostí. Všechny disky jsou seřazeny podle velikosti na prvním kůlu. Úkolem je přemístit všechny disky na jiný kůl, přičemž vždy se přesunuje pouze jeden disk, nikdy nesmí ležet větší disk na menším. Je to možné? Jaký je nejmenší nutný počet kroků pro přemístění celé věže.

Grafová formulace stavový graf Při řešení sestavíme stavový graf: vrcholy každé rozmístění disků na kůly, hrany existuje regulérní tah mezi vrcholy. Úloha s jediným diskem a úloha se dvěma disky. Pro dva disky rozlišíme tři možnosti, kde leží největší disk. Pro každou z nich zkopírujeme stavový graf pro jeden disk. Přidáme hrany, pokud můžeme přesunout největší disk.

Grafová formulace úlohy Podobně pro tři disky...

Grafová formulace úlohy... a pro pět disků.

Interpretace výsledků Máme-li n disků, tak: existuje 3 n možných stavů = graf má 3 n možných vrcholů, všechny disky na jednom kůlu = rohové vrcholy grafu, každý legální stav lze dosáhnout, přemístění všech disků vždy nejméně 2 n 1 tahů, nejrychlejší řešení = nejkratší cesta (další kapitola).

Prohledávání grafu Pro vytvoření obecného schématu algoritmu pro procházení grafu vystačíme s několika málo datovými stavy a jednou pomocnou strukturou: Vrchol má stavy... iniciační na začátku, nalezený jakmile jej přes některou hranu najdeme, zpracovaný jakmile prozkoumáme všechny hrany z něj vycházející. Hrana má stavy... iniciační na začátku, zpracovaná jakmile je prozkoumána z jednoho koncového vrcholu. Úschovna je pomocná datová struktura (posloupnost/množina), ukládáme nalezené a zatím nezpracované vrcholy. Způsob, jak vybíráme vrcholy z úschovny, určuje variantu algoritmu procházení grafu (do hloubky/do šířky). Pro vrcholy a hrany se pak provádí konkrétní programové akce prohledání a zpracování grafu.

Na začátku: vybereme libovolný vrchol, vrcholům i hranám přiřadíme iniciační stav. Algoritmus procházení souvislých komponent (iniciace) Procházení souvislých komponent grafu zpracujeme všechny hrany a vrcholy. // na vstupu je graf G vstup < graf G; stav(všechny vrcholy a hrany G) = iniciační; uschovna U = { libovolný vrchol u grafu G }; stav(u) = nalezený; Dále prozkoumáme celý graf...

Algoritmus procházení souvislých komponent (pokračování... ) // zpracování vybrané komponenty G while (U je neprázdná) { vyber vrchol v a odeber jej z úschovny U: U = U - {v}; ZPRACUJ(v); for (hrany e vycházející z v) { // pro všechny hrany if (stav(e) == iniciační) ZPRACUJ(e); } w = druhý vrchol hrany e = vw; if (stav(w) == iniciační) { stav(w) = nalezený; přidej vrchol w do úschovny: U = U + {w}; } stav(e) = zpracovaná; // známe sousedy? } stav(v) = zpracovaný; // případný přechod na další komponentu G if (U je prázdná && G má další vrcholy) uschovna U = {vrchol u_1 z další komponenty G};

Různými implementacemi úschovny dostaneme různé algoritmy Příklad Procházení do hloubky úschovnu U implementujeme jako zásobník, tj. dále prohledáváme od posledních nalezených vrcholů. Procházení do šířky úschovna U implementujeme jako frontu, tj. dále prohledáváme od prvních nalezených vrcholů. Dijkstrův algoritmus pro nejkratší cestu z úschovny vybíráme vždy vrchol nejbližší k počátečnímu v_0; (jako prohledávání do šířky, kdy hrany mají stejné délky ). v 1 v 5 v 2 v 3 v 4 v 6 v 7 Prozkoumejte graf postupem do hloubky i do šířky (od vrcholu v 1 ).

v 1 v 5 v 2 v 3 v 4 1 2 5 7 4 v 6 v 7 3 6 Prohledávání do šířky (od vrcholu v 1 ). v 1 v 5 v 2 v 3 v 4 1 2 3 4 7 v 6 v 7 5 6 Prohledávání do hloubky (od vrcholu v 1 ).

Poznámka Symbolem O(g(n)) rozumíme takovou množinu funkcí f (n), pro které existují kladné konstanty c a n 0 tak, n > n 0 platí 0 f (n) c g(n). Uvedený algoritmus je přehledný a současně rychlý. Počet kroků algoritmu je úměrný počtu vrcholů a hran daného grafu, složitost algoritmu je O(n + m), kde n udává počet vrcholů a m počet hran daného grafu. Otázky Jak pomocí uvedeného algoritmu vypsat všechny hrany daného grafu? Jak pomocí uvedeného algoritmu zjistíme, zda je graf G souvislý? Jak pomocí uvedeného algoritmu najít a označit všechny komponenty grafu G?

Vyšší stupně souvislosti V praxi nás může zajímat nejen, jestli existuje spojení (cesta) mezi vrcholy grafu), ale také jestli bude existovat spojení v případě lokálních výpadků odolnost a redundance (datová sít, železniční a silniční sít ). Eisenhowerův systém dálnic v USA.

Definice Graf G je hranově k-souvislý, pokud k 1 a po odebrání libovolných k 1 hran z G zůstane výsledný faktor souvislý. Stupeň hranové souvislosti grafu G je takové největší číslo k, že graf G je hranově k-souvislý. Definice Graf G je vrcholově k-souvislý, pokud V (G) > k 1 a po odebrání libovolných k 1 vrcholů z grafu G zůstane výsledný indukovaný podgraf souvislý. Stupeň vrcholové souvislosti grafu G je takové největší číslo k, že graf G je vrcholově k-souvislý. Grafy s různými stupni souvislosti.

Řekneme, že cesty P a P jsou: hranově disjunktní, jestliže nemají společnou hranu, interně disjunktní, jestliže nemají společný vnitřní vrchol. Věta (Mengerovy věty) Graf G je hranově k-souvislý právě tehdy, když mezi libovolnými dvěma vrcholy existuje alespoň k po dvou hranově disjunktních cest (vrcholy mohou být sdílené). Graf G je vrcholově k-souvislý právě tehdy, když mezi libovolnými dvěma vrcholy existuje alespoň k po dvou interně disjunktních cest (koncové vrcholy jsou společné). Důkaz Důkaz uvedeme v poslední kapitole. Bez důkazu zmíníme ještě jedno důležité tvrzení: Věta V libovolném grafu G je vrcholový stupeň souvislosti nejvýše roven hranovému stupni souvislosti a ten je nejvýše roven nejmenšímu stupni δ(g).

Příklad Kompletní graf K n je hranově i vrcholově (n 1)-souvislý. x x x y y y x x x y y y Různé hranově/interně disjunktní cesty mezi vrcholy x a y v grafu K 7.

Příště Kapitola Eulerovské a hamiltonovské grafy motivace eulerovské grafy hamiltonovské grafy