Algoritmizace prostorových úloh

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

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

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

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

Úvod do teorie grafů

07 Základní pojmy teorie grafů

Vzdálenost uzlů v neorientovaném grafu

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

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

Algoritmizace prostorových úloh

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

Algoritmizace prostorových úloh

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

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

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

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.

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

TGH06 - Hledání nejkratší cesty

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

Algoritmizace prostorových úloh

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

Metody síťové analýzy

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

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

Algoritmy na ohodnoceném grafu

Algoritmizace prostorových úloh

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

Algoritmizace prostorových úloh

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

3. Prohledávání grafů

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

ORIENTOVANÉ GRAFY, REPREZENTACE 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 2014

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

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 podzimu 2015

Základy umělé inteligence

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

Matice sousednosti NG

Jan Březina. 7. března 2017

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

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

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

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

1 Teorie grafů. Základní informace

GRAFY A GRAFOVÉ ALGORITMY

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

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

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

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

Jarníkův algoritmus. Obsah. Popis

Algoritmy a datové struktury

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

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

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

TGH10 - Maximální toky

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

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

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

bfs, dfs, fronta, zásobník

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

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

ALGORITMY A DATOVÉ STRUKTURY

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Algoritmizace prostorových úloh

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

TEORIE GRAFŮ TEORIE GRAFŮ 1

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

Dijkstrův algoritmus

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

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

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

PROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky.

Přijímací zkouška - matematika

10. Složitost a výkon

Použití dalších heuristik

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

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

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

2. RBF neuronové sítě

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

4EK213 Lineární modely. 10. Celočíselné programování

= 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

Algoritmizace prostorových úloh

TGH09 - Barvení grafů

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

10 Podgrafy, isomorfismus grafů

Dynamické programování

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

Prioritní fronta, halda

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

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

TGH02 - teorie grafů, základní pojmy

opakování reprezentace grafů, dijkstra, bellman-ford, johnson

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

TGH02 - teorie grafů, základní pojmy

MATEMATIKA A 3 Metodický list č. 1

Umělá inteligence I. Roman Barták, KTIML.

Transkript:

INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Grafové úlohy Daniela Szturcová Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. ESF napomáhá rozvoji lidských zdrojů a podnikatelského ducha.

Graf Laicky lze graf popsat jako puntíky propojené čarami. Z matematického hlediska se jedná o strukturu, jejímiž vlastnostmi se zabývá oblast diskrétní matematiky. Definice grafu Graf je uspořádaná dvojice G = (V, E), kde V je množina vrcholů, a E je množina hran (každou hranu lze též chápat jako podmnožinu - dvojici vrcholů).

Typy grafů Pokud pracujeme s grafem, jehož uzly ani hrany nemají zvláštní vlastnosti, jedná se o obecný graf. v1 v5 v2 v4 v3

Typy grafů ohodnocený graf Má-li každá hrana v grafu přiřazenou nějakou hodnotu, hovoříme o ohodnoceném grafu. Příklad: Platba mýtného Ohodnocení hran kladné jsem výběrčím mýta, Ohodnocení záporné jsem plátcem mýta. v1 10 v5-1 1 v2-10 v4 v3 5

Typy grafů - orientovaný graf Má-li každá hrana v grafu přiřazen směr, pak hovoříme o orientovaném grafu. v1 v5 v2 v4 v3

Kružnice (cyklus) Kružnice(cyklus) délky n je tvořena nejméně třemi vrcholy spojenými do jednoho cyklu. v1 C4 v2 v4 v3

Cesta Cestou rozumíme graf s n+1 vrcholy, které jsou postupně za sebou propojeny n hranami. v1 v5 v3 P5 v2 v4

Úplný graf Úplným grafem rozumíme graf s n vrcholy, které jsou všechny navzájem propojeny hranami. v1 v5 v2 K5 v3 v4

Reprezentace grafu Graficky, maticí incidence, maticí sousednosti, spojovou reprezentací. v1 v2 v4 v3

Matice sousednosti Matice sousednosti NxN, řádky i sloupce představují uzly grafu. Hodnota prvku Aij je jednotková právě tehdy když z uzlu i vede hrana do uzlu j. Jinak je hodnota nulová. Pro neorietované grafy je matice symetrická v1 podle diagonály. v2 v4 v3

Matice incidence Matice incidence NxM, řádky reprezentují uzly grafu, sloupce hrany. Hodnota prvku Aij je jednotková právě tehdy když je uzel i incidenční s hranou j. Jinak je hodnota nulová. U orientovaných grafů lze použít hodnotu 1, pokud je uzel i zdrojovým uzlem hrany j, -1 pokud cílovým uzlem hrany j. v1 h1 h2 h5 v2 v4 h3 v3 h4

Prohledávání grafu Prohledávání grafu je velmi často používaná úloha v mnoha aplikacích. Můžeme si představit, že z výchozího uzlu se postupně přesouváme po hraně k dalšímu a zkoumáme, zda uzel vyhovuje našemu parametru. Úloha končí buď nalezením hledaného uzlu, nebo prohledáním celého grafu bez kladného výsledku. Prohledávání do šířky (BFS breadth-first search). Prohledávání do hloubky (DFS depth-first search).

Prohledávání do šířky (BFS) 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. 3. 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. 4. 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í do hloubky (DFS) Postup prohledávání do šířky 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. 3. 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é. 4. 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.

Hledání nejkratší cesty v grafu Z algoritmů pro hledání nejkratší cesty v grafu si předvedeme Dijkstrův algoritmus (1958, Dijkstra) A* (postupně vylepšován 1964 1968, P. Hart, N. Nilsson, B. Raphael) Dijkstrův algoritmus nelze použít pro grafy s hranou záporné hodnoty. A* je závislá na použité heuristické funkci.

Dijkstrův algoritmus Hledá nejkratší cesty z počátečního uzlu do všech ostatních uzlů ohodnoceného grafu. Pro implementaci se využívá prioritní fronta. Každému uzlu je přiřazena hodnota součet vzdálenosti od aktuálního uzlu + hodnota hrany vedoucí z aktuálního uzlu do hodnoceného. V opakujícím se kroku přehodnocování uzlů se tato hodnota přepočte a do výsledku se vždy zařadí uzel s nejmenší hodnotou. Asymptotická složitost O(E+V.log(V))

Dijkstrův algoritmus 1. Vytvoříme pole, kde prvky budou tvořit struktury uzel, hodnota aktuální vzdálenosti od předchozího uzlu. Výsledek - množina uzlů X s nalezenou nejkratší cestou. 2. Inicializace: a) Aktuálním uzlem je počáteční uzel A. b) Množina X obsahuje uzel A. c) Pro pole bude platit - hodnota uzlu A = 0, pro sousední uzly U hodnota = hodnota hrany (A, U), pro nesousední uzly hodnota = nekonečno. 3. Dokud množina X neobsahuje všechny uzly grafu, opakujeme: a) Vybereme uzel V s nejmenší hodnotou. b) Uzel V zařadíme do množiny X. c) Pro každý uzel U, který sousedí s uzlem V a není prvkem množiny X, přepočteme jeho hodnotu. Pro každý uzel U vybereme minimum [stávající hodnota, hodnota uzlu V + hodnota hrany (U, V)].

Algoritmus A* Grafový vyhledávací algoritmus hledá optimální (nejkratší, nejlevnější) cestu mezi dvěma uzly v kladně ohodnoceném grafu. Vývoj: 1964-1968, P. Hart, N. Nilsson a B. Raphael, pojmenování podle UNIX syntaxe A* Vstup: ohodnocený graf, počáteční uzel a koncový uzel. Výstup: nejkratší cesta z počátečního uzlu do koncového, případně neexistence cesty.

Algoritmus A* Princip jako prohledávání do šířky, používá se ohodnocení uzlů pomocí speciální funkce f. Tato funkce určuje pořadí, v kterém se mají uzly procházet. Pro každou cestu p je funkce f definovánana takto: f(x)=h(x)+g(x) kde f(x) předpokládaná délka cesty x, h(x) heuristická funkce pro koncový uzel cesty x (odhad hodnoty cesty z uzlu x k cíli) g(x) vzdálenost mezi počátečním a daným uzlem x.

Algoritmus A* Volí se cesta p, která má v uzlu x hodnotu funkce f(p) nejnižší (tato cesta p má nejvyšší prioritu). Předpokladem je, že cesty jsou bez kružnic, pro cílový uzel se v grafu nachází nanejvýš jedna cesta, a to ta nejkratší doposud nalezená. Funkce h musí být přípustná (nesmí nadhodnocovat vzdálenost k cíli - lze si představit heuristiku ve formě vzdálenosti vzdušnou čarou, což je v prostoru nejkratší možná cesta). Je-li funkce h monotónní, pak je každý uzel navštíven maximálně jednou (nedochází k návratu do již prošlého).

Algoritmus A* 1. Vytvoříme prázdnou množinu cest F. 2. Do množiny F vložíme cestu nulové délky obsahující počáteční uzel s. 3. Dokud není množina F prázdná, opakujeme: a) Z množiny F vybereme nejkratší cestu p (s nejnižší hodnotou f(p)) a odebereme ji. b) Je-li cesta v cílovém uzlu, vrátíme ji a ukončíme výpočet. c) Vytvoříme nové cesty použitím všech možných operátorů na koncový uzel cesty p, které neobsahují smyčky. d) Mají-li dvě cesty konec ve stejném uzlu, odstraníme všechny, ponecháme pouze nejkratší (s nejnižší hodnotou f(x)). e) Přidáme cestu p do množiny F. 4. Je-li množina F prázdná, pak na výstupu vypíšeme: Neexistuje cesta z počátečního uzlu s do cílového uzlu.

Algoritmus A* Pro výpočty vzdálenosti se používá Manhattanská vzdálenost Diagonální vzdálenost Euklidovská vzdálenost https://www.cs.auckland.ac.nz/~burkhard/reports/2003_ss_danielwichmann2.pdf

Složitost A* Závisí na odhadu vzdálenosti do cíle. Složitost v nejhorším případě je exponenciální, logaritmická pro exaktní odhady vzdálenosti.

Literatura Hliněný, P.: Základy Teorie Grafů, FI MU, 2012 Wichmann, D. R.: Automated route finding on digital terrains https://www.cs.auckland.ac.nz/~burkhard/re ports/2003_ss_danielwichmann2.pdf http://www.algoritmy.net/ http://voho.cz/wiki/grafovy-algoritmus/ http://theory.stanford.edu/~amitp/gameprogra mming/ http://modoogle.com/a-star/