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

Podobné dokumenty
Úvod do plánování: Zadání úloh PDDL

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

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK. v přírodních vědách a informatice CZ.1.07/1.3.10/

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

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK. v přírodních vědách a informatice CZ.1.07/1.3.10/

STACK

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

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK. v přírodních vědách a informatice CZ.1.07/1.3.10/

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

Úvod do teorie 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ů

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK. v přírodních vědách a informatice CZ.1.07/1.3.10/

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

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

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

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

Hlavolamy a teorie grafů

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

Cílem seminární práce je aplikace teoretických znalostí z přednášky na konkrétní úlohy. Podstatu algoritmu totiž

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

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

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

Matematický KLOKAN 2005 kategorie Junior

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

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

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

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

a) b) c) Radek Mařík

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

Cvičení Programování I. Stručné poznámky ke cvičení ze

Vzdálenost uzlů v neorientovaném grafu

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

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

07 Základní pojmy teorie grafů

Binární vyhledávací stromy II

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

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

Radek Mařík

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

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

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

3. Prohledávání grafů

Principy indukce a rekurentní rovnice

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1

Konvexní obal a množina

Slepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

Algoritmy a datové struktury

Stromy, haldy, prioritní fronty

Dynamické datové struktury I.

Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620

Základy umělé inteligence

8. Cvičení Kopírování objektů mezi aplikacemi MS Office

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

Prohledávání do šířky a do hloubky. Jan Hnilica Počítačové modelování 15

ADT STROM Lukáš Foldýna

Maturitní téma: Programovací jazyk JAVA

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

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

Dynamické datové struktury III.

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

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu

popel, glum & nepil 16/28

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

Předmět: Algoritmizace praktické aplikace

bfs, dfs, fronta, zásobník

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

ALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky

Vyplňování souvislé oblasti

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

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.

45 Plánovací kalendář

NÁVRH A REALIZACE ÚLOH DO FYZIKÁLNÍHO PRAKTIKA Z

MATEMATIKA základní úroveň obtížnosti

Prioritní fronta, halda

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

Martin Milata, Pokud je alespoň jeden rozměr čokolády sudý (s výjimkou tabulky velikosti 1x2, která už je od

Algoritmizace prostorových úloh

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

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Strana 1. Vysoké napětí FACTORY MANAGER / Ředitel továrny FRIEDEMANN FRIESE

Algoritmizace řazení Bubble Sort

Matematický KLOKAN 2007 kategorie Junior (A) 8 (B) 9 (C) 11 (D) 13 (E) 15 AEF? (A) 16 (B) 24 (C) 32 (D) 36 (E) 48

Návrh Designu: Radek Mařík

Dynamické datové struktury IV.

Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců.

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

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

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

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

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

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

ČVUT FEL X36PAA - Problémy a algoritmy. 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu

c jestliže pro kladná čísla a,b,c platí 3a = 2b a 3b = 5c.

Transkript:

Cvičení 5 - Průchod stromem a grafem Radek Mařík Marko Genyk-Berezovskyj ČVUT FEL, K13133 14. března 2013 Cvičení 5 - Průchod stromem a grafem 14. března 2013 1 / 18

Outline 1 Průchod stromem 2 Cvičení 5 - Průchod stromem a grafem 14. března 2013 2 / 18

Outline Průchod stromem 1 Průchod stromem 2 Cvičení 5 - Průchod stromem a grafem 14. března 2013 3 / 18

Příklad 1 Průchod stromem Strom na obrázku procházíme do šířky. V určitém okamžku jsou ve frontě následující uzly (s tím, že čelo fronty je vlevo): 1 BGA 2 GA 3 AG 4 AEG 5 GEA 6 AE Cvičení 5 - Průchod stromem a grafem 14. března 2013 4 / 18

Příklad 2 Průchod stromem Strom na obrázku procházíme do šířky. V určitém okamžku jsou ve frontě následující uzly (s tím, že čelo fronty je vlevo). 1 D 2 DF 3 FB 4 BGE 5 BAC 6 ABCD Cvičení 5 - Průchod stromem a grafem 14. března 2013 5 / 18

Příklad 3 Průchod stromem Zopakujme stručně princip procházení do šířky. Krok 0. Vlož kořen do prázdné fronty Dokud je fronta neprázdná, dělej Krok 1. Vyjmi první prvek z fronty, a zpracuj ho. Krok 2. Vlož do fronty všechny potomky právě vyjmutého listu. Projděte do šířky daný strom a před každým provedením kroku 1. zaznamenejte obsah fronty. adek Mařík Marko Genyk-Berezovskyj (marikr@felk.cvut.cz) Cvičení 5 - Průchod stromem a grafem 14. března 2013 6 / 18

Příklad 4 Průchod stromem Úlohou je rekonstruovat tvar pravidelného stromu, pokud známe průběžný obsah fronty. Dejme tomu, že před každým provedením kroku 1. v uvedeném postupu zaregistrujeme aktuální obsah fronty. Získáme posloupnost (předpokládáme, že čelo fronty je vlevo): A BC C DE EFG FG GHI HI I Cvičení 5 - Průchod stromem a grafem 14. března 2013 7 / 18

Příklad 5 Průchod stromem Formulujte obecný algoritmus, jak z dané posloupnosti obsahů fronty (jako v předchozí úloze) rekonstruovat pravidelný strom. Cvičení 5 - Průchod stromem a grafem 14. března 2013 8 / 18

Outline 1 Průchod stromem 2 Cvičení 5 - Průchod stromem a grafem 14. března 2013 9 / 18

%" & $ * " '() # # &!!%! # #! $ *!! #,(-%,(-%,(-%! )) +! + + &,(% Příklad 6 Graphviz Pro účely ladění implementací softwaru doporučujeme naistalovat software pro vizualizaci grafů Graphviz, http://www.graphviz.org/. Je založen na velmi jednoduchém formátu dat popisující graf, který lze proto generovat v ladících bodech programu. adek Mařík Marko Genyk-Berezovskyj (marikr@felk.cvut.cz) Cvičení 5 - Průchod stromem a grafem 14. března 2013 10 / 18

Příklad 7 Dopravní úloha Najděte cestu z města A do města E. Návod: použijte prohledávání grafu. adek Mařík Marko Genyk-Berezovskyj (marikr@felk.cvut.cz) Cvičení 5 - Průchod stromem a grafem 14. března 2013 11 / 18

Příklad 8 Žabičky Máte sedm kamenů a šest žab. Výchozí pozice zelených a hnědých žab jsou odděleně na opačných koncích rybníčku. Jediný volný kámen je tedy uprostřed. Vaším úkolem je pak postupně přemístit žáby do výchozích pozic jejich jinobarevných kolegyň. Pohyb žáby je možný pouze skokem na volný kámen před její pozicí nebo přeskokem přes jednu žábu (libovolné barvy) na volnou pozici za ní. Skok zpět žába nemá dovoleno, takže musíte všechny skoky pečlivě naplánovat. Návod: použijte prohledávání stavového prostoru řešení. adek Mařík Marko Genyk-Berezovskyj (marikr@felk.cvut.cz) Cvičení 5 - Průchod stromem a grafem 14. března 2013 12 / 18

Příklad 9 Hanojské věže Hlavolam se skládá ze tří koĺıků (věží). Na začátku je na jednom z nich nasazeno několik kotoučů různých poloměrů, seřazených od největšího (vespod) po nejmenší (nahoře). Úkolem řešitele je přemístit všechny kotouče na druhou věž (třetí přitom využije jako pomocnou pro dočasné odkládání) podle následujících pravidel: V jednom tahu lze přemístit jen jeden kotouč. Jeden tah sestává z vzetí vrchního kotouče z některé věže a jeho položení na vrchol jiné věže. Je zakázáno položit větší kotouč na menší. Návod: použijte prohledávání stavového prostoru řešení. Cvičení 5 - Průchod stromem a grafem 14. března 2013 13 / 18

Příklad 10 Misionáři a kanibalové Tři misionáři se vydali na osvětovou misii a jako průvodce mají tři kanibaly. Potřebují překonat řeku, ovšem lod ka uveze nejvýše dva lidi. Kanibalové zatím nejsou dostatečně poznamenáni misionářskou osvětou, takže pokud se kdykoli vyskytne na jednom místě více kanibalů než misionářů, budou misionáři snězení. Jinak však kanibalové spolupracují a udělají, co jim misionáři řeknou. Jak se může celá skupina dostat na druhý břeh? Návod: použijte prohledávání stavového prostoru řešení. adek Mařík Marko Genyk-Berezovskyj (marikr@felk.cvut.cz) Cvičení 5 - Průchod stromem a grafem 14. března 2013 14 / 18

Příklad 11 Přelévání vody mezi nádobami Máme 3 nádoby o různých objemech. Žádná nádoba na sobě nemá stupnici a nádoby mají dokonce tak roztodivné tvary, že nám znemožňují odhadování množství vody v nich. Stále ale může naměřit i jiné množství tekutiny. Můžeme přelévat obsah jedné nádoby do druhé tak dlouho, dokud nepřelijeme všechno nebo dokud se druhá nádoba nezaplní. Jaký je nejmenší počet přelití, abychom vyřešili následující úlohy? Ve všech variantách je na počátku největší nádoba plná. Máme 3 nádoby o objemech 7l, 5l a 3l. Chceme naměřit 1 litr. Návod: použijte prohledávání stavového prostoru řešení. Cvičení 5 - Průchod stromem a grafem 14. března 2013 15 / 18

Příklad 11 Přelévání vody mezi nádobami Máme 3 nádoby o různých objemech. Žádná nádoba na sobě nemá stupnici a nádoby mají dokonce tak roztodivné tvary, že nám znemožňují odhadování množství vody v nich. Stále ale může naměřit i jiné množství tekutiny. Můžeme přelévat obsah jedné nádoby do druhé tak dlouho, dokud nepřelijeme všechno nebo dokud se druhá nádoba nezaplní. Jaký je nejmenší počet přelití, abychom vyřešili následující úlohy? Ve všech variantách je na počátku největší nádoba plná. Máme 3 nádoby o objemech 7l, 4l a 3l. Přeléváním se chceme dostat do stavu, kdy je v jedné nádobě 3l a ve zbylých dvou po 2 litrech. Návod: použijte prohledávání stavového prostoru řešení. Cvičení 5 - Průchod stromem a grafem 14. března 2013 16 / 18

Příklad 12 Přelévání vody mezi nádobami Máme 3 nádoby o různých objemech. Žádná nádoba na sobě nemá stupnici a nádoby mají dokonce tak roztodivné tvary, že nám znemožňují odhadování množství vody v nich. Stále ale může naměřit i jiné množství tekutiny. Můžeme přelévat obsah jedné nádoby do druhé tak dlouho, dokud nepřelijeme všechno nebo dokud se druhá nádoba nezaplní. Jaký je nejmenší počet přelití, abychom vyřešili následující úlohy? Ve všech variantách je na počátku největší nádoba plná. Máme 3 nádoby o objemech 8l, 5l a 3l. Přeléváním se chceme dostat do stavu, kdy je počáteční množství rozděleno na dva stejné díly. Návod: použijte prohledávání stavového prostoru řešení. Cvičení 5 - Průchod stromem a grafem 14. března 2013 17 / 18

References I Cvičení 5 - Průchod stromem a grafem 14. března 2013 18 / 18