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

Podobné dokumenty
ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Matice sousednosti NG

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

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

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Vzdálenost uzlů v neorientovaném grafu

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

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

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

PLANARITA A TOKY V SÍTÍCH

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

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

ALGORITMY A DATOVÉ STRUKTURY

TGH04 - procházky po grafech

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

Úvod do teorie grafů

3. Prohledávání grafů

STROMY A KOSTRY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 6

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

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

Binární vyhledávací stromy II

Grafové algoritmy. Programovací techniky

Rekurzivní algoritmy

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

Algoritmizace prostorových úloh

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.

Použití dalších heuristik

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

bfs, dfs, fronta, zásobník

Grafové algoritmy. Programovací techniky

Stromy, haldy, prioritní fronty

Algoritmy na ohodnoceném grafu

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

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

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

TGH10 - Maximální toky

Datové struktury 2: Rozptylovací tabulky

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

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

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

STROMY A KOSTRY. Stromy a kostry TI 6.1

07 Základní pojmy teorie grafů

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

Dynamické datové struktury II.

GRAFOVÉ MODELY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 1

Umělá inteligence. UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI. Letošní cena nadace Vize Joseph Weizenbaum

Algoritmy a datové struktury

6. Tahy / Kostry / Nejkratší cesty

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

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

Jan Březina. 7. března 2017

Dynamické programování

Grafy (G) ρ(h) = [u,v]

2. Mřížky / Záplavové vyplňování

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

Algoritmy výpočetní geometrie

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Řešení rekurentních rovnic 2. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 11

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

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

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

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

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

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

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

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

Grafy. Obyčejný graf. Orientovaný graf. Ohodnocený graf. Na filmovém festivalu se sešlo šest tisíc lidí, některé

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

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

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

Cvičení z logiky II.

Základy umělé inteligence

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

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

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

Grafové algoritmy. Aktualizováno: 29. listopadu / 228

TGH08 - Optimální kostry

Matematická indukce a správnost programů. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 13

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

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

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

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

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

Metody síťové analýzy

Kolekce, cyklus foreach

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

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

Ekvivalence. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 5

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

Aplikovaná numerická matematika - ANM

ˇ razen ı rychlejˇ s ı neˇ z kvadratick e Karel Hor ak, Petr Ryˇsav y 20. dubna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

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

TGH12 - Problém za milion dolarů

Vytěžování znalostí z dat

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

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

Jednoznačné a nejednoznačné gramatiky

TEORIE GRAFŮ TEORIE GRAFŮ 1

Transkript:

PROHLEDÁVÁNÍ GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 4 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Doc. Josef Kolář (ČVUT) Souvislos, Prohledávání orientované grafůgrafy GRA, LS 2010/11, Lekce 42 1 / 15

Prohledávání grafu do hloubky V této části probereme témata: prohledání grafu do hloubky (DFS) strom prohledání do hloubky (DF-strom) časové značky uzlů časová složitost prohledání do hloubky algoritmus topologického uspořádání uzlů algoritmus určení silných komponent orientovaného grafu Skripta odstavec 4.2, str. 79-90 Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 2 / 15

Prohledávání grafu do hloubky Základní princip DFS : postupuje se stále dál od počátečního uzlu dosud neprozkoumaným směrem. Když už to dál nejde, vrátíme se a postupujeme zase co nejdál. Pro jednoduchost předpokládáme, že sousedi jsou řazeni v pořadí rostoucích pořadových čísel uzlů Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 3 / 15

Prohledávání grafu do hloubky 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 4 / 15

Prohledávání grafu do hloubky DFS - Depth-First Search Výsledkem bude DF-strom (nebo les) Uzly jsou opět FRESH, OPEN nebo CLOSED, ale mají časové značky s hodnotami 1 2* U d[u] se uzlu přidělí se při otevření f[u] se uzlu přidělí se při uzavření (takže d[u]<f[u]) Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 5 / 15

Prohledávání grafu do hloubky void DFS (Graph G) { // pseudokód 1 for (Node u in U(G)) 2 { stav[u] = FRESH; p[u] = null; } 3 i = 0; 4 for (Node u in U(G)) 5 if (stav[u] == FRESH) DFS-Projdi(u); 6 } void DFS-Projdi(Node u) { 1 stav[u] = OPEN; d[u] = ++i; 2 for (Node v in Adj[u]) 3 if (stav[v] == FRESH) { 4 p[v] = u; DFS-Projdi(v); } 5 stav[u] = CLOSED; f[u] = ++i; 6 } Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 6 / 15

OPEN CLOSED 1 4 7 1/18 10/17 11/16 2 5 8 2/9 5/6 12/15 3 6 9 3/8 4/7 13/14 stromová zpětná dopředná příčná Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 7 / 15

Složitost prohledávání do hloubky v DFS se cykly na řádcích 1-2 a 4 5 provedou U -krát DFS-Projdi se volá U -krát cykl v DFS-Projdi na ř. 2-4 se provádí Adj[u] -krát dohromady O( H ) O( U + H ) Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 8 / 15

Vlastnosti časových značek Obecně platí: (d[u],f[u]) (d[v],f[v]) = nebo (d[u],f[u]) (d[v],f[v]) nebo (d[v],f[v]) (d[u],f[u]) 1/18 10/17 11/16 2/9 5/6 12/15 3/8 4/7 13/14 Sledujme stromové hrany: (1.. 18) (2.. 9) (3.. 8) (4.. 7) (5.. 6) (1.. 18) (10.. 17 ) (11.. 16) (12.. 15) (13.. 14) Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 9 / 15

Vlastnosti časových značek zpětná hrana (u,v) vede k OPEN uzlu v dopředná a příčná hrana (u,v) vede ke CLOSED uzlu dopředná má d[u]<d[v] příčná má d[u]>d[v] 1/18 10/17 11/16 2/9 5/6 12/15 3/8 4/7 13/14 Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 10 / 15

DFS pro neorientované grafy 1 4 7 1/18 6/13 10/ 7/12 11/ 2 5 8 2/17 5/14 8/11 12/ 3 6 9 3/16 4/15 9/10 13/ Jsou zde pouze stromové a zpětné hrany! Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 11 / 15

Topologické uspořádání uzlů Top-Sort-1 (G) 1) S:= 2) prováděj DFS(G) a v okamžiku f[u] ulož uzel u na začátek seznamu S 3) S obsahuje uzly v topologickém uspořádání V: G je acyklický DFS(G) neobjeví zpětnou hranu Top-Sort-2 (G) eliminací kořenů - viz dříve δ[u] = δ - G [u] M - množina kořenů (fronta) Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 12 / 15

Silné komponenty pomocí DFS S-COMP (G) 1) DFS(G) určí d[u] & f[u] pro všechny u U 2) vytvoří se G - (opačně orientovaný graf) 3) provede se DFS(G - ) s tím, že uzly v hlavním cyklu se berou v klesajícím pořadí f[u] 4) stromy DF-lesa určují silné komponenty Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 13 / 15

1/22 2/21 3/18 4/9 19/20 15/16 10/17 5/8 12/13 11/14 6/7 1/6 3/4 7/12 17/22 2/5 8/11 9/10 19/20 14/15 13/16 18/21 Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 14 / 15

Kontrolní otázky 4.1 Vysvětlete na příkladu, že je možné, aby uzel u orientovaného grafu skončil při prohledání do hloubky jako jediný uzel nějakého dílčího DF-stromu, přestože do u vcházejí i z něho vycházejí hrany. 4.2 Navrhněte obecný postup orientace hran neorientovaného grafu, jehož výsledkem bude acyklický orientovaný graf. 4.3 Upravte algoritmus procházení neorientovaného (resp. orientovaného) grafu do hloubky tak, aby generoval všechny cesty (resp. orientované cesty) vycházející ze zadaného počátečního uzlu s. 4.4 Navrhněte algoritmus časové složitosti O( U + H ), který pro zadaný acyklický orientovaný graf určí počet (nikoliv nutně strukturu) všech orientovaných cest (délky alespoň 1) v tomto grafu. 4.5 Navrhněte algoritmus časové složitosti O( U ), který zjistí, zda je zadaný neorientovaný graf stromem. 4.6 Při procházení orientovaného grafu G do hloubky byla zjištěna existence hran všech čtyř typů (tj. stromové, zpětné, dopředné i příčné). Pro které z následujících vlastností lze z této skutečnosti odvodit nějaký závěr a jaký? a) souvislost b) silná souvislost c) acykličnost 4.7 Jaký je hlavní rozdíl algoritmů BFS a DFS pro obecné grafy a algoritmů pro systematický průchod kořenových stromů? Doc. Josef Kolář (ČVUT) Prohledávání grafů GRA, LS 2010/11, Lekce 4 15 / 15