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

Podobné dokumenty
Úvod do teorie grafů

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

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

Algoritmizace prostorových úloh

Grafové algoritmy. Programovací techniky

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

Vzdálenost uzlů v neorientovaném grafu

Grafové algoritmy. Programovací techniky

07 Základní pojmy teorie grafů

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

1 Teorie grafů. Základní informace

Metody síťové analýzy

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

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

Algoritmy na ohodnoceném grafu

TEORIE GRAFŮ TEORIE GRAFŮ 1

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

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

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

Matice sousednosti NG

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

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

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

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

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

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

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

Základy umělé inteligence

GRAFY A GRAFOVÉ ALGORITMY

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

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

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.

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

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

TGH02 - teorie grafů, základní pojmy

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

Ú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ů

Jan Březina. 7. března 2017

Dijkstrův algoritmus

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

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

Hlavolamy a teorie grafů

4 Pojem grafu, ve zkratce

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

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

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

3. Prohledávání grafů

Ohodnocené orientované grafy

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

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

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Převoditelnost problémů nezávislé množiny na problém hamiltonovského cyklu () IS HC 1/10

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

Přijímací zkouška - matematika

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

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

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

1. část: Základy teorie grafů. Ing. Michal Dorda, Ph.D.

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

Úvod do informatiky. Miroslav Kolařík

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

Drsná matematika III 10. demonstrovaná cvičení Kostry 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 jara 2014

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

TGH12 - Problém za milion dolarů

CLARKEOVA-WRIGHTOVA METODA ŘEŠENÍ ÚLOHY VRP

Stromy, haldy, prioritní fronty

VLASTNOSTI GRAFŮ. Vlastnosti grafů - kap. 3 TI 5 / 1

Teorie grafů Jirka Fink

TGH06 - Hledání nejkratší cesty

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

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

TGH06 - Hledání nejkratší cesty

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

Dynamické programování

prohled av an ı graf u Karel Hor ak, Petr Ryˇsav y 16. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

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

SÍŤOVÁ ANALÝZA. Kristýna Slabá, 1. července 2010

ALGORITMY A DATOVÉ STRUKTURY

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

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

Minimalizace KA - Úvod

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

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

6. Tahy / Kostry / Nejkratší cesty

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

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

Grafové algoritmy. Programovací techniky

Definice 1 eulerovský Definice 2 poloeulerovský

VYUŽITÍ FLOYDOVA ALGORITMU NA SITÍCH USE OF FLOYD ALGORITHM IN NETWORKS

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

popel, glum & nepil 16/28

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

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

Metody analýzy dat I. Míry a metriky - pokračování

Paralelní grafové algoritmy

3. Grafy a matice. Definice 3.2. Čtvercová matice A se nazývá rozložitelná, lze-li ji napsat ve tvaru A =

Zajímavé aplikace teorie grafů

Transkript:

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

Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem nebo bodem v grafu. Hrana grafu: {množina E} Reprezentuje spojení jednotlivých vrcholů. Toto spojení vyjadřuje nějaký vztah mezi vrcholy. : E 2 V 2

Základní pojmy Orientovaný a neorientovaný graf V orientovaném grafu jsou vždy orientované hrany, tj. hrany s definovaným počátečním a koncovým vrcholem. V neorientovaných grafech se lze pohybovat přes hrany oběma směry. G (V, E, ) Hrany i vrcholy jsou v četných aplikacích ohodnoceny Ohodnocený orientovaný (neorientovaný) graf 3

Základní pojmy Sled: e 3 e 2 e 3 e 2 Orientovaný v 2 v 3 v 2 v 3 v 1, e 1, v 2, e 2, v 3, e 5, v 4 Neorientovaný e 1 e 4 e 5 e 1 e 4 e 5 e 6 e 6 v 2, e 3, v 3, e 5, v 4, e 6, v 1 Není sledem v 1 v 4 v 1 v 4 v 1, e 2, v 3, e 5, v 2, e 1, v 4 Posloupnost vrcholů a hran jak jdou za sebou. 4

Základní pojmy Tah Sled, kde se neopakují hrany Cesta Sled, kde se neopakují vrcholy r Kořenový strom - orientovaný graf, kde existuje vrchol r (kořen), ze kterého jsou všechny vrcholy dostupné a nevede do něj žádná hrana. 5

Ukázka grafu základní pojmy 6

Speciální pojmy Hamiltonovská cesta: Cesta, která projde všemi vrcholy a každým pouze jedenkrát (turista). Eulerův tah: Tah, který projde všemi hranami a každou pouze jedenkrát (sedm mostů v Königsbergu). 7

Popis grafu Incidenční maticí orientace hran (+1, -1) Matice sousednosti počet hran mezi sousedy Spojové seznamy seznamy následníků Matice délek délka hrany mezi vrcholy (i,j) Matice vzdáleností 8

Incidenční matice 9

Matice sousednosti 10

Seznam následníků 11

Úlohy s grafy Grafické znázornění úlohy je názorné a v jednoduchých případech lze odhalit řešení i bez použití jakéhokoliv algoritmu. Úloha pro převozníka: Vlk, koza, zelí 1) v, k, z, p 2) 0 1) k, z 2) v, p 1) v, z 2) k, p 1) k, z, p 2) v 1) v, z, p 2) k 1) v 2) k, z, p 1) k 2) v, z, p 1) k, p 2) v, z 1) 0 2) v, k, z, p 1) v, k 2) z, p 1) v, k, p 2) z 1) z 2) v, k, p Nesmí nastat, nebudu kreslit 12

Vlk, koza, zelí 1) k, z, p 2) v 1) v 2) k, z, p 1) v, k, z, p 2) 0 1) v, z 2) k, p 1) v, z, p 2) k 1) k 2) v, z, p 1) k, p 2) v, z 1) 0 2) v, k, z, p 1) v, k, p 2) z 1) z 2) v, k, p 13

Vlk, koza, zelí 1) k, z, p 2) v 1) v 2) k, z, p 1) v, k, z, p 2) 0 1) v, z 2) k, p 1) v, z, p 2) k 1) k 2) v, z, p 1) k, p 2) v, z 1) 0 2) v, k, z, p 1) v, k, p 2) z 1) z 2) v, k, p 14

Vlk, koza, zelí 1) k, z, p 2) v 1) v 2) k, z, p 1) v, k, z, p 2) 0 1) v, z 2) k, p 1) v, z, p 2) k 1) k 2) v, z, p 1) k, p 2) v, z 1) 0 2) v, k, z, p 1) v, k, p 2) z 1) z 2) v, k, p 15

Prohledávání grafů Úkolem prohledávání je hledání cesty z daného výchozího vrcholu do jednotlivých vrcholů grafu. To může pomoci i při vytváření grafu pro danou úlohu. Tři způsoby prohledávání: 1) Značkování vrcholů 2) Prohledávání do šířky 3) Prohledávání do hloubky 16

Značkování vrcholů Vrcholům přiřazujeme značky, pokud vrchol značku má, pak do něj vede cesta z daného výchozího vrcholu => vyjadřuje možnost Výsledek lze převézt na kořenový strom, pokud zaznamenáme každou použitou hranu a její počáteční a koncový vrchol. U neorientovaných grafů má tato metoda malý význam (pouze u velmi složitých, kde není zřejmé propojení jednotlivých vrcholů částí grafu). 17

Algoritmus značkování vrcholů Popis metoda pro prohledávání grafu od výchozího vrcholu v, při provádění algoritmu se udělují značky vrcholům, do kterých vede cesta z výchozího vrcholu Algoritmus 1. všechny vrcholy v grafu se nastaví jako neoznačkované a označkuje se vrchol v 2. z pracovního vrcholu se vybere hrana h taková, že její počátek je ve vrcholu se značkou a její konec je ve vrcholu bez značky 3. je-li nalezena takováto hrana, pak se pokračuje krokem 4, jinak algoritmus končí a graf je prohledán 4. koncový vrchol hrany h (bez značky) se označkuje, pokračuje se krokem 2 18

Značkování vrcholů 19

Značkování vrcholů 20

Značkování vrcholů 21

Značkování vrcholů 22

Značkování vrcholů Vlastnosti: Odpovídá na otázku: Je možné? Jednoduchý algoritmus Malé časové nároky: max V(G) 1 Nelze jej použít při hledání cest s určitými vlastnostmi (nejkratší, nejdelší). 23

Prohledávání grafu do šířky Algoritmus lze přirovnat ke štěpné reakci. Probíhá tak, že počátečnímu vrcholu označíme všechny následníky, pak označíme následníky následníků atd. Metoda vede k nalezení nejkratší cesty, za předpokladu, že hrany mají stejnou hodnotu => nejmenší počet tahů. 24

Algoritmus prohledávání do šířky Popis Tato metoda slouží k prohledávání grafu a to tím způsobem, že se označkují všichni následníci výchozího vrcholu a dále se označkují všichni následníci těchto následníků atd.. Tato metoda se využívá pro nalezení nejkratších cest = cest s nejmenším počtem hran (v případě hran stejných délek). Algoritmus máme orientovaný graf G s výchozím vrcholem v a hledáme všechny vrcholy i, do kterých vede z vrcholu v orientovaná cesta, máme zjistit nejkratší cestu a její vzdálenost pro každý vrchol každý vrchol bude při prohledávání označkován a budou mu přiděleny hodnoty : vrcholu, ze kterého jsme do něj přišli a vzdálenost od výchozího vrcholu, dále bude zapotřebí seznam typu fronta, do kterého budeme ukládat vrcholy, které byly označkovány, ale ještě nebyli prohledáváni jejich následníci při popisu algoritmu označme funkci vzdálenosti jako V(i), funkci předchozího vrcholu jako P(i) a frontu nazveme jako fronta 1. přidělíme značku vrcholu v a všechny ostatní vrcholy zůstanou beze značky, vrcholu v přidělíme vzdálenost V(v) = 0 a přidáme vrchol v do fronty 2. zjistíme, je-li ve frontě nějaký vrchol, jestliže není algoritmus končí 3. z fronty odebereme vrchol a budeme s ním pracovat pod názvem i 4. proměnnou j budeme postupně plnit neoznačkovanými vrcholy takovými, kde mezi vrcholem i a tímto vrcholem je hrana. Vrchol j označkujeme a přidělíme mu předchůdce P(j) = i, dále nastavíme vzdálenost od výchozího vrcholu V(j) = V(i) + velikost hrany (i -> j) a přidáme vrchol j do fronty a vrátíme se ke kroku 2 25

Prohledávání do šířky D D C B A 1 2 3 4 C B A 1 2 3 4 26

Prohledávání do šířky D D C B A 1 2 3 4 C B A 1 2 3 4 27

Prohledávání do šířky D D C B A 1 2 3 4 C B A 1 2 3 4 28

Prohledávání do šířky D D C B A 1 2 3 4 C B A 1 2 3 4 29

Prohledávání do šířky D D C B A 1 2 3 4 C B A 1 2 3 4 30

Prohledávání grafu do šířky Vlastnosti: Podobné časové nároky jako v případě značkování vrcholů: max V(G) 1 Získáme kořenový strom s nejmenším počtem úrovní 31

Prohledávání do hloubky Podobá se průzkumu neznámých tras. Je základem pro další metody. Jdeme do hloubky grafu kam až můžeme a pak se vracíme a hledáme odbočky, kterými lze dále pokračovat. Algoritmus je časově náročnější než oba předešlé, avšak jeho úpravou a zaznamenáváním jednotlivých tras jej lze využít pro hledání cest splňujících nějakou speciální podmínku. Například cesta začínající v r a obsahující všechny vrcholy =Hamiltonovská cesta 32

Algoritmus prohledávání do hloubky Popis Prohledávání do hloubky najde v grafu všechny vrcholy do nichž vede orientovaná cesta, s tím že se algoritmus vrací po nalezené cestě zpět Algoritmus máme orientovaný graf G s výchozím vrcholem v aktuální vrchol, ve kterém se nacházíme budeme označovat i a seznam cesta bude obsahovat cestu k aktuálnímu vrcholu 1. jako aktuální vrchol se nastaví vrchol výchozí (i = v), vyprázdní se seznam cesta a označkuje se vrchol v a ostatní zůstanou beze značek 2. jako h označíme hranu začínající v i, která ještě nebyla použita, jestliže taková hrana existuje pokračujeme krokem 3, jinak krokem 5 3. koncový vrchol hrany h označme jako j, je-li vrchol j již označkován pokračujeme krokem 2, jinak krokem 4 4. do seznamu cesta přidáme hranu h, označkujeme vrchol j a nastavíme výchozí vrchol na j (i = j), pokračujeme krokem 2 5. jestliže je seznam cesta prázdný algoritmus končí, jinak odebereme ze seznamu hranu h, její počáteční vrchol označíme jako i a pokračujeme krokem 2 33

Eulerův tah Uzavřený: Vrátíme se do stejného vrcholu Otevřený: Skončíme v jiném vrcholu 34

Eulerův tah Uzavřený: Neorientovaný vrcholy mají sudý stupeň Orientovaný počet vstupních hran je stejný jako počet výstupních Otevřený: Neorientovaný obsahuje právě dva vrcholy s lichým stupněm Orientovaný stejně jako neor. + do jednoho vrcholu musí hrana vcházet, z druhého vycházet. 35

Eulerův tah Sedm mostů v Königsbergu Musí se začít ve spodních vrcholech! 36

Nejkratší cesty Úloha: najít nejkratší cestu z daného výchozího vrcholu do daného cílového vrcholu z daného výchozího vrcholu do každého vrcholu z každého vrcholu do daného cílového vrcholu mezi všemi uspořádanými dvojicemi Lze vynechat smyčky a rovnoběžné hrany 37

Dijkstrův alg. Slouží k vyhledání nejkratší cesty z počátečního uzlu do všech ostatních uzlů ohodnoceného grafu 38

MATICE DÉLEK Charakterizuje délky hran mezi jednotlivými vrcholy. Definice: a ii = 0, a ij = délka hrany mezi vrcholy i a j; Pokud zde hrana nevede, pak značím nekonečno. 39

MATICE VZDÁLENOSTÍ Charakterizuje vzdálenosti jednotlivých vrcholů. Definice: u ii = 0, u ij = vzdálenost mezi vrcholy i a j; Pokud do vrcholu j nevede cesta z i pak je u ij rovno nekonečnu. 40

MATICE VZDÁLENOSTÍ Matice vzdáleností je přímo maticí nejkratších cest. Pokud nás nezajímá kudy cesta vede, lze použít k jejímu výpočtu následující způsoby: 1. Upravené násobení matic 2. Floydův algoritmus 41

MATICE VZDÁLENOSTÍ Floydův algoritmus: Podmínka: U(i, j) U(i, k) U(k, j) U(i, j) U(i, k) U(k, j) kj ik ij 42

MATICE VZDÁLENOSTÍ Příklad: Minimální náklady na dopravu zboží 8 Kč 4 1 3 Kč 6 Kč 7 Kč 2 Kč 11 Kč 3 4 Kč 5 Kč 5 2 3 Kč 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 0 11 6 8 0 3 0 3 4 0 2 7 5 0 1 2 3 4 5 0 11 6 8 0 3 0 3 4 0 2 7 18 5 15 0 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 0 11 6 8 0 3 0 3 4 0 2 7 5 0 1 2 3 4 5 0 11 6 8 14 0 3 0 3 4 0 2 7 18 5 15 0 43

MATICE VZDÁLENOSTÍ Příklad: Minimální náklady na dopravu zboží 8 Kč 4 1 3 Kč 6 Kč 7 Kč 2 Kč 11 Kč 3 4 Kč 5 Kč 5 2 3 Kč 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 0 11 6 8 14 1 0 11 6 8 10 0 3 2 0 3 0 3 3 7 0 3 5 4 0 2 4 4 0 2 7 18 5 8 0 5 7 18 5 8 0 1 2 3 4 5 0 11 6 8 10 10 0 8 11 3 12 7 0 3 5 9 4 7 0 2 7 18 5 8 0 Součty 35 Kč 32 Kč 27 Kč 22 Kč 38 Kč 44

Závěrem Použití grafů je názornou pomůckou při řešení složitých problémů. Složitá řešení se zpravidla již neobejdou bez použití výpočetní techniky. Byl to jen letmý úvod, grafy se dále zabývají toky, hledání cyklů, nejlevnějších tahů, úlohami o párování 45