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

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

Algoritmizace prostorových úloh

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

Úvod do teorie grafů

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

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

07 Základní pojmy teorie grafů

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

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

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

Grafové algoritmy. Programovací techniky

4EK311 Operační výzkum. 5. Teorie grafů

Grafové algoritmy. Programovací techniky

TGH02 - teorie grafů, základní pojmy

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

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

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

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

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

Vzdálenost uzlů v neorientovaném grafu

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

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

TGH02 - teorie grafů, základní pojmy

Metody síťové analýzy

TGH02 - teorie grafů, základní pojmy

Definice 1 eulerovský Definice 2 poloeulerovský

TEORIE GRAFŮ TEORIE GRAFŮ 1

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

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

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

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ů. zadání úloh. letní semestr 2008/2009. Poslední aktualizace: 19. května First Prev Next Last Go Back Full Screen Close Quit

Základy umělé inteligence

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

Jan Březina. 7. března 2017

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Hlavolamy a teorie grafů

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

3. Prohledávání grafů

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

bfs, dfs, fronta, zásobník, prioritní fronta, halda

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

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.

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

GRAFY A GRAFOVÉ ALGORITMY

Zajímavé aplikace teorie grafů

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

Matice sousednosti NG

Přijímací zkouška - matematika

bfs, dfs, fronta, zásobník, prioritní fronta, halda

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

Algoritmy na ohodnoceném grafu

10 Podgrafy, isomorfismus grafů

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

1 Teorie grafů. Základní informace

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

4 Pojem grafu, ve zkratce

TGH09 - Barvení grafů

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

bfs, dfs, fronta, zásobník

Kurz operačního výzkumu pro posluchače kombinovaného studia na FAST VUT v systému MOODLE

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

ALGORITMY A DATOVÉ STRUKTURY

Úvod do informatiky. Miroslav Kolařík

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

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

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 jara 2017

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

VYUŽITÍ NĚKTERÝCH METOD TEORIE GRAFŮ PŘI ŘEŠENÍ DOPRAVNÍCH PROBLÉMŮ

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

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

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

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

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

10 Přednáška ze

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

Vybíravost grafů, Nullstellensatz, jádra

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

Jan Březina. Technical University of Liberec. 21. dubna 2015

Metody analýzy dat I (Data Analysis I) Rozsáhlé struktury a vlastnosti sítí (Large-scale Structures and Properties of Networks) - pokračování

Algoritmy a datové struktury

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

Jan Březina. Technical University of Liberec. 30. dubna 2013

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

TGH04 - procházky po grafech

Algoritmy pro shlukování prostorových dat

MATEMATIKA A 3 Metodický list č. 1

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

TGH12 - Problém za milion dolarů

TGH06 - Hledání nejkratší cesty

State Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node

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

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

PROBLÉM ČTYŘ BAREV. Lze obarvit jakoukoliv mapu v rovině čtyřmi barvami tak, aby žádné dvě sousedící oblasti neměly stejnou barvu?

= 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

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

Binární vyhledávací stromy II

Transkript:

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

Obsah přednášky barvení mapy teorie grafů definice uzly a hrany typy grafů cesty, cykly, souvislost grafů

Barvení mapy Kolik barev je potřeba k obarvení mapy zobrazující jednotlivé státy? https://teorie-grafu.cz/vybrane-problemy/barveni-mapy.php

Barvení mapy https://teorie-grafu.cz/vybrane-problemy/barveni-mapy.php

Barvení mapy spojitost s grafy jeden stát = jeden uzel grafu hranice dvou států = jedna hrana grafu https://teorie-grafu.cz/vybrane-problemy/barveni-mapy.php

Barvení mapy spojitost s grafy praktické využití úlohy = sítě mobilních operátorů malé buňky, každá má svoji základnovou stanici (BTS), se kterou mobily komunikují na určité frekvenci snahou je eliminovat počet buněk s nutností splnit podmínku, kdy dvě sousední buňky nemohou používat stejnou frekvenci https://teorie-grafu.cz/vybrane-problemy/barveni-mapy.php

Teorie grafů Teorie grafů zkoumá vlastnosti struktur, zvaných grafy grafy umožňují jednoduše a přehledně popisovat reálné systémy: které jsou standardně reprezentovány pomocí sítí (počítačové sítě, silniční sítě, atd.) nebo které mohou být na grafovou reprezentaci převedeny Grafové algoritmy umožňují zpracovávat grafy, hledat nejkratší nebo nejrychlejší cesty, počítat propustnost sítě, atd.

Definice grafu Graf je definován jako dvojice e v G = (V, E) v kde: v 1 e 1 e 5 e 5 V je množina vrcholů E je množina hran e 12 v 2 e 2 e 6 e 56 v 5 v 6

Konvence V(G) E(G) G G G = (, ) množina vrcholů v grafu G množina hran v grafu G počet vrcholů v grafu G počet hran v grafu G prázdný graf v ϵ e vrchol v náleží hraně e (v je incidentní s hranou e) d v stupeň vrcholu (počet hran, se kterými je vrchol incidentní)

Typy grafů orientovaný jeho hrany jsou definovány uspořádanými dvojicemi bodů neorientovaný jeho hrany jsou dvouprvkové množiny bodů (nezáleží na orientaci). v v v 1 v 1 v 2 v 2

Ohodnocený graf ohodnocený graf jeho hrany jsou opatřeny číselnými nebo jinými hodnotami w ij (reprezentují délky úseků silnic, možnost různých časových průjezdů v opačných směrech w ij w ji ) v 6 v v 1 v 2 10 12 1 v 5 11 v 7 v 6 7 v

Sled sled (orientovaný, neorientovaný) je posloupnost vrcholů a hran, následující hrana začíná v uzlu, ve kterém předchozí hrana končí otevřený, uzavřený v 1 v v v 1 v v 2 v 5 v 2 v 5 v 6 v 6

Tah sled, v němž se žádná hrana neopakuje orientovaný, neorientovaný otevřený, uzavřený

Eulerovský tah https://popelka.ms.mff.cuni.cz/~lessner/mw/index.php/u%c%debnice/grafy/jednota%c5%beky

Eulerovský tah Sedm mostů města Královce Je možné všechny mosty přejít tak, aby ten, kdo se o to pokouší, vstoupil na každý most pouze jednou? http://cs.wikipedia.org/wiki/sedm_most%c5%af_m%c%9bsta_kr%c%a1lovce

Cesta sled, v němž se neopakuje ani žádná hrana, ani žádný uzel orientovaná, neorientovaná otevřená, uzavřená

Dosažitelnost vrcholů Vrchol B je dosažitelný z vrcholu A, pokud existuje alespoň jedna cesta z vrcholu A do vrcholu B v v 1 Příklad: vrchol v je dosažitelný z v 2 (naopak to neplatí) v 2

Cyklus sled, jehož první vrchol je totožný s posledním, se nazývá cyklus v v v 1 C = {v,v 5,v 6,v } v 2 v6 v 5 graf, který neobsahuje žádný cyklus, se nazývá acyklický cyklus se může nacházet i v neorientovaném grafu

Souvislost grafu každý neprázdný graf G se nazývá souvislý, pokud existuje sled mezi kteroukoliv dvojicí vrcholů u orientovaných grafů se při vyhodnocování souvislosti orientace nebere v úvahu v v v 1 v 5 v 2 v 6

Úloha krizový plán pro silné sněžení situace:... silné sněžení v oblasti severní Moravy předpoklad nesjízdnost vozovek; údržba cest musí být provedena tak, aby byla zaručena dostupnost všech obcí ze seznamu silnic vybereme takové, aby: všechny obce byly dostupné, a součet nákladů na udržování vybraných silnic byl co nejmenší potřebujeme vstupní data: mapu silnic náklady na údržbu jednotlivých silnic

Úloha krizový plán pro silné sněžení

Minimální kostra Výchozí graf se upraví tak, aby výsledný graf splňoval následující požadavky: stejný počet vrcholů souvislý acyklický s minimálním celkovým ohodnocením

Minimální kostra kostra u souvislého grafu vždy existuje a má n-1 hran (n je počet vrcholů grafu) Kruskalův algoritmus: přidáváme hranu s nejmenším ohodnocením tak, aby nevznikl cyklus http://homel.vsb.cz/~kov16/talks/algoritmy/

Stromy spojitý a acyklický graf se nazývá strom v v v 1 v 5 v 2 v 6

Úplný graf úplný graf je takový graf, ve kterém je každý vrchol propojen hranou se všemi ostatními vrcholy v grafu

Multigraf multigraf je takový graf, který obsahuje alespoň jednu násobnou hranu (dva vrcholy spojené dvěma nebo více hranami)

Bipartitní graf bipartitní graf je takový graf, ve kterém se množina vrcholů V skládá ze dvou disjunktních podmnožin X, Y zvaných parity X v 1 v Y množina hran E takového grafu obsahuje pouze hrany, jejichž jeden koncový vrchol leží v množině X a druhý koncový vrchol v množině Y v 2 v v 5 v 6 žádné dva vrcholy z parity X (resp. Y) nejsou spojeny hranou v 7

Bipartitní graf Příklad: výběr partnerů v tanečních http://homel.vsb.cz/~kov16/talks/algoritmy/obrazky/tanecni.gif

Úplné párování párování P nazývá úplné, jestliže každý vrchol je koncovým vrcholem právě jedné hrany v P http://homel.vsb.cz/~kov16/talks/algoritmy/obrazky/tanecnireseni.gif

Disktrétní graf diskrétní graf je takový graf, který nemá žádnou hranu ( G = 0) v 2 v 1 v v 5 v

Reprezentace grafu nakreslení grafu (obrázek) v v 1 matice sousednosti (popř. matice incidence) v 2 A = 0 1 1 1 0 0 1 0 0

Reprezentace grafu seznam vrcholů a jejich sousedů v 1 -> v 2 v 1 -> v seznam hran G = {(v 1,v ), (v 1,v 2 )}

Nakreslení grafu vrcholy grafu jsou nakresleny jako body (kroužky), hrany jako čáry orientovanou hranu znázorňujeme šipkou od počátečního vrcholu ke koncovému existuje mnoho různých nakreslení stejného grafu výhodou je přehlednost nakreslení je nevýhodné v případě rozsáhlého grafu, nebo pokud vyžadujeme automatické zpracování grafu v 1 v v 1 v v 2 v 2

Seznam hran graf je dán seznamem hran neorientovaný graf: v h 2 v 1 v 2 G = {(v 1, v 2 ), (v 2,v ), (v 2,v )} h 1 h v

Seznam hran graf je dán seznamem hran orientovaný graf: v h 2 v 1 v 2 G = {(v 1, v 2 ), (v,v 2 ), (v 2,v )} h 1 h v

Matice sousednosti Postup pro vytvoření: očíslujeme vrcholy (v 1... v n ) matici sousednosti A pak vytvoříme takto: A i,j = ቊ 1... pokud v i je incidentní s v j 0... v opačném případě v případě ohodnocených hran může být A i,j = w i,j, kde w i,j je hodnota hrany matice sousednosti neorientovaného grafu bude vždy symetrická (u orientovaného grafu tomu tak být nemusí)

Matice sousednosti v v 2 v 1 v 1 v 2 v v v 1 0 1 0 0 v 2 1 0 1 1 v 0 1 0 0 v 0 1 0 0 v

Matice incidence tato reprezentace je vhodná pro automatické zpracování počítačem nevýhodou je nepřehlednost pro člověka Postup pro vytvoření: očíslujeme vrcholy (v 1... v n ) a hrany (h 1, h m ) matici incidence A pak vytvoříme takto: A i,j = ቊ 1... pokud v i je incidentní s h j 0... v opačném případě v případě ohodnocených hran může být A i,j = w i,j, kde w i,j je hodnota hrany

Matice incidence v h 2 v 1 h 1 v 2 h v h 1 h 2 h v 1 1 0 0 v 2 1 1 1 v 0 1 0 v 0 0 1

Seznam sousedů graf je dán seznamem vrcholů a jejich sousedů neorientovaný graf: v h 2 v 1 v 2 v 1 v 2 v 2 v 1, v, v h 1 h v v 2 v v 2 v

Seznam sousedů graf je dán seznamem vrcholů a jejich sousedů orientovaný graf: v v 1 v 2 h 2 v 1 v 2 v 2 v h 1 h v v 2 v v

Prohledávání grafu prohledávání grafu je systematický postup, kterým můžeme řešit například hledání nejkratší, nejdelší, nejlevnější cesty z jednoho vrcholu do druhého, popřípadě zjišťovat dostupnost vrcholů v grafu, vyhledávat uzel odpovídající zadanému kritériu apod. například při vyhledávání postupujeme takto: z výchozího uzlu se postupně přesouváme po hraně k dalšímu a zkoumáme, zda cílový uzel přesunu vyhovuje našemu kritériu úloha končí buď nalezením hledaného uzlu, nebo prohledáním celého grafu bez kladného výsledku

Prohledávání grafu Existují dvě základní strategie: prohledávání grafu do hloubky (angl. depth-first search DFS) prohledávání grafu do šířky (angl. breadth-first search BFS)

Prohledávání grafu do hloubky tento algoritmus si lze představit jako průchod bludištěm, kdy procházím z místnosti do místnosti po chodbách a v dosažené místnosti si vybíráme chodbu, po které jsme ještě nešli pokud taková chodba neexistuje, musíme se z této místnosti vrátit do předešlé místnosti algoritmus končí, pokud jsme prošli všechny uzly grafu nebo pokud jsme našli cílový uzel

Prohledávání grafu do hloubky Postup prohledávání do hloubky využívá zásobník: 1. do zásobníku zařadíme výchozí uzel 2. uzel odebereme ze zásobníku a porovnáme jej s hledanou hodnotou. je-li to hledaný uzel: a) pak ukončíme prohledávání a vrátíme uzel ve výsledku, b) jinak zařadíme do zásobníku následné uzly dostupné z tohoto uzlu, dosud neprozkoumané. je-li zásobník prázdný: a) pak všechny uzly byly porovnány; prohledávání je ukončeno, vracíme výsledek Hledaný uzel nebyl nalezen, b) jinak opakujeme bod 2.

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 2 1 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 2 5 6 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 9 10 11 12 1 5 6 10 6 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 9 10 11 12 1 10 6 10 6 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 10 6 6 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 1 6

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 1 7

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 11 12 1 7 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 11 12 1 12 1 1 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 1 12 12 1 1 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 1 12 1 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 1 1

Prohledávání grafu do hloubky 1 2 5 6 7 9 10 11 12 1 1 Hledaný je uzel č.

Prohledávání grafu do šířky Odlišnost tohoto algoritmu spočívá v tom, že se z dosaženého vrcholu rozhlédneme najednou do všech sousedních vrcholů. Postup prohledávání do šířky využívá frontu: 1. Do fronty zařadíme výchozí uzel 2. Uzel odebereme z fronty a porovnáme jej

Prohledávání grafu do šířky. je-li to hledaný uzel: a) pak ukončíme prohledávání a vrátíme jej ve výsledku b) jinak zařadíme do fronty dostupné uzly, které ještě nebyly porovnány. je-li fronta prázdná: a) pak byly porovnány všechny uzly. Prohledávání je ukončeno, vracíme výsledek Hledaný uzel nebyl nalezen b) jinak opakujeme bod 2

Prohledávání grafu do šířky 1 1 2 5 6 7 2 9 10 11 12 1 1

Prohledávání grafu do šířky 1 2 2 5 6 7 6 5 9 10 11 12 1 1

Prohledávání grafu do šířky 1 6 5 2 5 6 7 6 5 9 10 11 12 1 1

Prohledávání grafu do šířky 1 6 5 2 5 6 7 7 6 5 9 10 11 12 1 1

Prohledávání grafu do šířky 1 7 6 5 2 5 6 7 10 9 7 6 9 10 11 12 1 1

Prohledávání grafu do šířky 1 10 9 7 6 2 5 6 7 10 9 7 9 10 11 12 1 1

Prohledávání grafu do šířky 1 10 9 7 2 5 6 7 1 12 11 10 9 9 10 11 12 1 1

Prohledávání grafu do šířky 1 1 12 11 10 9 2 5 6 7 1 12 11 10 9 9 10 11 12 1 1

Prohledávání grafu do šířky 1 1 12 11 10 9 2 5 6 7 1 12 11 10 9 10 11 12 1 1

Prohledávání grafu do šířky 1 1 12 11 10 2 5 6 7 1 12 11 9 10 11 12 1 1

Prohledávání grafu do šířky 1 1 12 11 2 5 6 7 1 1 12 9 10 11 12 1 1

Prohledávání grafu do šířky 1 1 1 12 2 5 6 7 1 1 9 10 11 12 1 1

Prohledávání grafu do šířky 1 1 1 2 5 6 7 1 9 10 11 12 1 1

Prohledávání grafu do šířky Hledaný je uzel č. 1 1 1 2 5 6 7 9 10 11 12 1 1

Prohledávání grafu do šířky Hledaný je uzel č. 7 1 10 9 7 2 5 6 7 10 9 9 10 11 12 1 1

Další úlohy nad grafy Hledání nejkratší trasy úkolem je najít nejkratší/nejrychlejší/nejlevnější cestu grafem z uzlu A do uzlu B Úloha obchodního cestujícího existuje n měst, mezi nimi silnice o známých délkách úkolem je najít nejkratší možnou trasu, procházející všemi městy a vracející se nazpět do výchozího města

Další úlohy nad grafy Úloha čínského listonoše existuje poštovní doručovací obvod a v něm ulice, které musí listonoš všechny projít úkolem je najít nejkratší možnou trasu, procházející všemi ulicemi a vracející se nazpět do výchozího místa pošty

Další literatura Diestel, R.: Graph Theory. Electronic Edition 2000. Spronger-Verlag, New York 1997, 2000. 22 s. [on-line] http://www.esi2.us.es/~mbilbao/pdffiles/diestelgt.pdf (22..201) Kovář, P.: Grafové alegoritmy. Katedra matematiky a deskriptivní geometrie, VŠB-TU Ostrava. [on-line] http://homel.vsb.cz/~kov16/talks/algoritmy/ (22..201) Jirovský, L.: Teorie grafů ve výuce na střední škole. [on-line] http://teorie-grafu.cz/ (22..201) Fábry, J.: Diskrétní modely. Katedra ekonometrie, VŠE Praha, 2016. [on-line] https://nb.vse.cz/~fabry/ek1-prezentace.pdf (22..201)