3. Prohledávání grafů
|
|
- Miroslav Moravec
- před 6 lety
- Počet zobrazení:
Transkript
1 3. Prohledávání grafů Prohledání do šířky Breadth-First Search BFS Jde o grafový algoritmus, který postupně prochází všechny vrcholy v dané komponentě souvislosti. Algoritmus nejprve projde všechny sousedy počátečního vrcholu, poté sousedy sousedů, atd... Díky tomuto způsobu procházení se někdy též nazývá algoritmusvlny,neboťsezpočátečníhovrcholušířípomyslnávlna,kterávkaždém kroku nalezne všechny uzly, které mají od počátečního vrcholu stejnou vzdálenost. Algoritmus se tedy skvěle hodí například pro hledání nejkratší cesty mezi dvěma vrcholy v grafu. Zatím předpokládejme, že graf, se kterým pracujeme, je orientovaný. Orientovanouhranu(u,v)zudo vbudemeobvyklezkracovatjako uv.proneorientované grafy bude vše obdobné. Prasečígrafaprůchodvlnyskrzněj Popisalgoritmu:NazačátkuvložímedofrontyQpočátečnívrcholv 0.DálesivpoliZ budeme pro každý vrchol pamatovat značku, zda jsme ho již navštívili(z[v] = 1), činikoli(z[v]=0).napočátkujsouvšechnyznačkynulové,jenvrchol v 0,kterýje označen a vložen do fronty. V každém dalším kroku pak zkoumáme frontu Q: pokud není prázdná, vezmemezníprvnívrchol uapodívámesenavšechnyvrcholy v,donichžzuvede hrana. Pokud sousedi ještě nejsou označení, tak je označíme a přidáme je do fronty k následnému zpracování. Toto opakujeme, dokud není fronta prázdná. Algoritmus: 1. Q {v 0 }. 2. Z[ ] 0,Z[v 0 ] 1. 3.Dokud Q opakujeme: 4. Vyzvedneme vrchol u z Q. 5. v: uv E: 6. Je-li Z[v]=0 Z[v] 1,přidáme vdo Q. Pozorování: BFS se zastaví
2 Důkaz: Zpracováváme jen vrcholy, které byly ve frontě. Každý vrchol se dostane do fronty maximálně jednou.(každý je označen max. jednou, značky neodstraňujeme.) Lemma:BFS(v 0 )označí vprávětehdy,kdyžexistujecestazv 0 do v. Důkaz: = :Platíjakoinvariantpoceloudobuběhualgoritmu.Todokážeme indukcí dle doby běhu algoritmu: Prvníkrokindukcejetriviální,neboťcestazv 0 do v 0 existujevždy.nynísi představme, že označujeme vrchol v přes hranu uv. To znamená, že vrchol u již muselbýtoznačený.dleindukčníhopředpokladutedyexistujecestazv 0 do u,a tudížpokudktétocestě přilepíme hranu uv,dostávámesledzv 0 do v,kterýlze vždy zredukovat na cestu. = Sporem:Nechťexistujeneoznačenývrchol vdosažitelnýponějakécestě z v 0.Uvažmenejkratšícestu(v 0,v): v 0,v 1...,v k = vavezměmeminimální itakové, že v i neníoznačený.víme,že i > 0(neboť v 0 jeurčitěoznačenužnazačátku algoritmu).tudíž v i 1 jeoznačený.přioznačeníjsmehoovšempřidalidofronty, takžejsmehozfrontymuselipozdějizasevyjmout.přitomjsmeovšemmuseli objevithranu v i 1 v i aoznačitvrchol v i,cožjespor. Nynítedyvíme,žealgoritmusjesprávný,amámepředstavuotom,jakfunguje. Podíváme-li se na něj podrobněji, zjistíme, že je hodně závislý na tom, jak si budeme graf pamatovat. Zanedlouho zároveň zjistíme, že nám reprezentace grafu v paměti znatelně ovlivní časovou(i paměťovou) složitost celého algoritmu. Reprezentace grafu v paměti Mějmenějakýorientovanýgraf Gsnvrcholyamhranami.Jakhoreprezentovat? Vrcholymůžemeočíslovatod1do n.prouloženíhranmámenavýběrhned několik způsobů. Předvedeme si je na grafu z následujícího obrázku: A B C Ukázkový graf D 1. matice sousednosti MaticesousednostiprografGnanvrcholechječtvercovámaticeAorozměrech n n,taková,že A i,j popisuje,jestlizvrcholu idovrcholu jvedehrana(a i,j =1) nebonikoliv(a i,j =0). Náš graf z obrázku výše by tedy v maticové reprezentaci vypadal takto:
3 A B C D A B C D S touto maticí se pracuje velmi snadno, např. všechny sousedy i-tého vrcholu zjistíme jednoduše tak, že projdeme i-tý řádek matice a najdeme všechny jedničky. Má ovšem dvě zřejmé nevýhody: časovou a paměťovou složitost. Projití sousedů jednoho vrcholu trvá vždy Θ(n), projití sousedů pro všechny vrcholy(což potřebujeme vbfs)paktrváθ(n 2 ).Velikostmaticejevždy n n,bezohledunato,jak řídký jegraf.ugrafusmnohavrcholy,alesmalýmpočtemhran,tedybudemezbytečně plýtvat místem v paměti. Tato reprezentace je tedy nevýhodná především pro třídy grafů, jako jsou stromy, které mají n 1 hran, nebo rovinné grafy, které mají nejvýše 3n 6hran. Pozorování:BFSsreprezentacímaticísousednostiběžívčase:Θ(n 2 ). Důkaz:Užjsmesiuvědomili,žekaždývrcholsedostanedofronty Qnejvýšejednou. Pro každý vrchol ve frontě potřebujeme projít jeho sousedy, což nám trvá s reprezentacímaticísousednostiθ(n).vrcholůjecelkem n,tedyčasovásložitostjeθ(n 2 ). 2. seznam sousedů V matici sousednosti jsme museli procházet jak hrany, tak nehrany, což bylo zbytečné. Bylo by tedy výhodnější pamatovat si pro každý vrchol pouze jeho sousedy. To můžeme zařídit například jedním ze dvou následujících způsobů: Uchovávejme pole indexované vrcholy tak, že v každém prvku pole je ukazatel naspojovýseznamsousedůtohotovrcholu.tedy L(v)={w:vw E(G)}. Pokud se nám nebude chtít pracovat se spojovými seznamy, můžeme využít reprezentaci pomocí dvou polí. První pole V bude opět indexované vrcholy. V druhém poli Ebudouprokaždývrcholuloženijehosousedé.Vpoli V sipamatujemepro každývrchol iindexdopole E,kdezačínajíjehosousedé,anavícdodefinujeme,že V[n+1]=m+1.Ksousedůmvrcholu isepakjiždostanemesnadno nalezneme jenapozicích V[i],...,V[i+1] 1. V A B C D E B C D D A B Znázornění polí seznamu sousedů NatutoreprezentaciužstačíprostorΘ(n+m),cožužje,narozdílodpředchozího kvadratického prostoru, docela příjemné. Pozorování: BFS s reprezentací seznamem sousedů běží v čase Θ(n + m)
4 Důkaz: Algoritmus zpracuje každý vrchol nejvýše jednou a stráví jím čas lineární vpočtuodchozíchhran,tedyθ(deg (v)).časovásložitostceléhoalgoritmutedy činí: Θ n+ deg (v) =Θ(n+m). v V(G) 3. orákulum Další možností reprezentace je jakési orákulum, které nám na požádání řekne (spočítá), kam vedou hrany z daného vrcholu. To se hodí například tehdy, pokud graf vznikl výpočtem a nechceme plýtvat pamětí na jeho uložení. To se hodí například uužzmíněnéhohlavolamu Lloydovaosmička. Neorientované grafy Chceme-li reprezentovat neorientovaný graf, uložíme každou hranu v obou orientacích. Výpočet vzdáleností Abychom mohli využít toho, že algoritmus prochází vrcholy grafu ve vlně, k výpočtu vzdáleností, doplníme do něj dvě pomocná pole: D[v] bude říkat, na kolik krokůjsmesedo vdostali, P[v]budeobsahovatpředchůdcevrcholu v,totižvrchol u, zekteréhojsmesedo vdostalipohraněajehož D[u]=D[v] 1. Rozšířený algoritmus: 1. Q {v 0 }. 2. Z[ ] 0,Z[v 0 ] D[ ],D[v 0 ] 0. 4.Dokud Q opakujeme: 5. Vyzvedneme vrchol u z Q. 6. Prokaždývrchol v,dokteréhovedehranazvrcholu u: 7. Je-li Z[v]=0: 8. Z[v] 1,D[v] D[u]+1,P[v] u 9. Přidáme vdo Q. Definice:Fázeběhualgoritmu:Vefázi F 0 jezpracovávánvrchol v 0.Vefázi F i+1 jsou zpracováványvrcholyuloženédofronty Qběhemfáze F i. Pozorování:Každývrchol vdosažitelnýzv 0 seúčastníprávějednéfáze,atoté sčíslem D[v]. Lemma:PozastaveníBFSprovšechnyvrcholydosažitelnézv 0 platí,že D[v]je rovno d(v 0,v),totižvzdálenosti(délcenejkratšícesty)zv 0 do v. Důkaz:Nejprvesiuvědomíme,žekdykolivje voznačen,vededonějzv 0 nějaký sled délky v(indukcí, stejně jako jsme před chvílí dokazovali, že BFS projde všechny dosažitelnévrcholy).protonemůžebýt D[v]menšínež d(v 0,v). Sporem dokážeme, že nemůže být ani větší. Předpokládejme, že existuje nějaký špatný vrchol v,prokterýje D[v] > d(v 0,v).Nechť Pjeněkteráznejkratšíchcest
5 zv 0 dov.zmožnýchšpatnýchvrcholůsivybermetakový,jehožpjenejkratšímožná. Jelikožprovrchol v 0 jezajisté D[v 0 ]=d(v 0,v 0 )=0,musíbýt vrůznýod v 0,takže má na P nějakého předchůdce u. Pro toho ovšem je vzdálenost spočítána správně: D[u]=d(v 0,u)=d(v 0,v) 1. Uvažujmenyní,cosestalovokamžiku,kdyjsme D[u]nastavili.Tehdyjsme u uložilidofronty,počasejsmehozfrontyzasevytáhliaprozkoumalijsmevšechny vrcholy,donížvedezuhrana.tedyivrcholv,takže D[v]vtomtookamžikunemůže býtvětšínež D[u]+1=d(v 0,v),atojespor. Víme tedy, že BFS správně spočítá délky nejkratších cest do všech vrcholů grafu. Pomocí předchůdců v poli P můžeme tyto cesty dokonce snadno rekonstruovat: předposledním vrcholem na nejkratší cestě do vrcholu v musí být vrchol P[v], jeho předchůdcem P[P[v]],...,aždovrcholu v 0. Předchůdci nám tedy kódují strukturu nejkratších cest do všech vrcholů. Můžemesenanědívattakénásledovně: Definice: Strom nejkratších cest je orientovaný strom s množinou vrcholů W = {v V(G) vdosažitelnýzv 0 }ahranami {(P(v),v) v W,v v 0 }. Pozorování:Kořenemstromunejkratšíchcestjevrchol v 0,cestavtomtostromuzv 0 do v(jednoznačněurčená,jetostrom)jepakjednouznejkratšíchcestzv 0 do v v původním grafu. Komponenty souvislosti V neorientovaných grafech můžeme BFS jednoduše použít na nalezení komponentsouvislosti.jižvíme,žebfsspuštěnézvrcholu v 0 projdeprávětyvrcholy, kteréjsouzv 0 dosažitelné,cožjsouvneorientovanémgrafupřesněty,kteréleží v téže komponentě. Stačí opakovaně spouštět BFS z dosud neoznačených vrcholů, pokaždé nám označí jednu komponentu. Algoritmus: 1.Provšechnyvrcholy v V(G)opakujeme: 2. Pokud je vrchol v neoznačený: 3. Spustíme BFS(v) a přiřadíme objevené vrcholy nové komponentě. To, co jsme o BFS zjistili, můžeme shrnout do následující věty: Věta:BFS(v 0 )včaseθ(n+m)spočte: vrcholydosažitelnézv 0 vzdálenostitěchtovrcholůod v 0 stromnejkratšíchcestzv 0 Prohledávání do šířky ale není jediný algoritmus, který nějak systematicky prochází graf. Jak už název kapitoly napovídá, budeme se zabývat ještě druhým algoritmem, prohledáváním do hloubky. Podívejme se, jak bude vypadat... Prohledávání do hloubky Depth-First Search DFS Tento algoritmus neprochází graf ve vlně jako BFS, nýbrž rekurzivně. Vždy se
6 zanoříconejhloubějiaždolistuapakseokusvrátíaopětsesnažízanořit.vrcholy, ve kterých už byl, ignoruje. Opět uvažme nejdříve graf orientovaný. Následně si ukážeme, že v neorientovaném grafu budou pouze malé změny. Budeme používat podobné značení jako u BFS. V poli Z si budeme pamatovat, zdajsmevrcholjižnavštívili(hodnota1),nebone(hodnota0).abysenámalgoritmus lépe analyzoval, zavedeme proměnnou T, která bude fungovat jako hodiny vkaždémkrokualgoritmusezvětšíojedničku.dopolíinaoutsibudemeukládat čas prvního a posledního průchodu vrcholem. Algoritmus: 1.Inicializace: Z[ ] 0,T 1,in[ ]?,out[ ]? 2.DFS(v): 3. Z[v] 1,in[v] T, T T+1 4. Pro w: vw E(G): 5. Pokud Z[w]=0,zavolámeDFS(w) 6. out[v] T, T T+1 Věta:DFS(v 0 )včaseθ(m+n)označíprávěvšechnyvrcholydosažitelnézv 0. Důkaz: Korektnost dokážeme stejným argumentem, jako u BFS. V analýze časové složitosti si pak opět uvědomíme, že algoritmus zavoláme na každý vrchol nejvýše jednou(pak už je označený) a zpracováním vrcholu strávíme čas lineární v počtu hran, které z něj vedou. Celkem tedy prozkoumáme každou hranu nejvýše jednou a strávíme tím konstantní čas. Vyzkoušejme si DFS na grafu z následujícího obrázku: A 1,8 2,7 B C 3,4 D 5,6 Znázornění průběhu DFS a typů hran Graf je reprezentován tak, že v každém vrcholu jsou hrany uspořádány zleva doprava.číslauvrcholůukazujíjejichinaout. Můžemesivšimnout,žekrůznýmhranámseDFSchovárůzně.Poněkterých projde, jiné vedou do už prozkoumaných vrcholů, ale někdy do takových, ze kterých jsme se ještě nevrátili, jindy do už zpracovaných. Za chvíli uvidíme, že mohou nastat čtyřirůznésituace.nejsnázesepoznávajípodlehodnotinaout. Pozorování:Chodalgoritmumůžemepopsatposloupnostízávorek:( v budeznačit vstoupilijsmedovrcholuv (anastaviliin(v)),) v budižopuštěnívrcholu(nastavení
7 out(v)). Tato posloupnost bude správně uzávorkovaná, čili páry závorek se nebudou křížit. Klasifikace hran: DFS dělí hrany na následující čtyři druhy. Hrana uv je: Stromová(nanašemobrázkuplná)pokudponíDFSprošlodoneoznačeného vrcholu. Všimněte si, že stromové hrany společně tvoří stromorientovanýodkořenev 0.(Jetostrom,jelikožvznikápostupným přidáváním listů.) Tomuto stromu se říká DFS strom. Zpětná(tečkovaná) taková hrana vede do vrcholu, do kterého jsme vstoupili, ale ještě jsme ho neopustili(to je vrchol, který máme při rekurzinazásobníku).odpovídáuzávorkování( v...( u...) u...) v. Dopředná(čárkovaná) vede do vrcholu, který jsme už opustili, ale kterýjepotomkemaktuálníhovrcholu:( u...( v...) v...) u. Příčná(čerchovaná) vede do vrcholu, který jsme už opustili, ale který ve stromu neleží pod aktuálním vrcholem. Musí tedy vést do vrcholů nalevo odstromovécestyzv 0 do u.napravototižleží vrcholy, které v okamžiku opouštění u ještě nebyly prozkoumané, takže hrana uv by se stala stromovou. Příčné hrany poznáme podle uzávorkování( v...) v...( u...) u. Jiné druhy hran nemohou existovat, probrali jsme totiž všechny možnosti,vjakémvztahumohoubýtpáryzávorek( u ) u a( v ) v. Kterého typu hrana je, můžeme tedy poznat podle značky Z[v] a podle hodnot inaoutvrcholů uav. Neorientované grafy: V neorientovaných grafech(každou hranu vidíme jako dvě orientované hrany) je situace daleko jednodušší. Buďto hranu objevíme jako stromovou(a v opačném směru ji vidíme jako zpětnou), nebo ji objevíme jako zpětnou (a v opačném směru se jeví dopřednou). Příčné hrany nemohou existovat, protože k nim opačná hrana by byla příčná vedoucí zleva doprava, což víme, že nenastane
Hledáme efektivní řešení úloh na grafu
Hledáme efektivní řešení úloh na grafu Mějme dán graf následující úlohy: G = ( V, E), chceme algoritmicky vyřešit Je daný vrchol t dosažitelný z vrcholu s? Pokud ano, jaká nejkratší cesta tyto vrcholy
Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
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
Matice sousednosti NG
Matice sousednosti NG V = [ v ij ] celočíselná čtvercová matice řádu U v ij = ρ -1 ( [u i, u j ] )... tedy počet hran mezi u i a u j?jaké vlastnosti má matice sousednosti?? Smyčky, rovnoběžné hrany? V
Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest
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
Algoritmizace prostorových úloh
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
Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant
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
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 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste
ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ
ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2/2, Lekce Evropský sociální fond Praha & EU: Investujeme
TGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 28. března 2017 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
Úvod do teorie grafů
Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí
TGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 31. března 2015 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
Jan Březina. 7. března 2017
TGH03 - stromy, ukládání grafů Jan Březina Technical University of Liberec 7. března 2017 Kružnice - C n V = {1, 2,..., n} E = {{1, 2}, {2, 3},..., {i, i + 1},..., {n 1, n}, {n, 1}} Cesta - P n V = {1,
Vzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C
Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat
Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová
Základy informatiky Teorie grafů Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová Obsah přednášky Barvení mapy Teorie grafů Definice Uzly a hrany Typy grafů Cesty, cykly, souvislost grafů Barvení mapy
Prohledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
bfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 20. září 2016 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?
Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti
Algoritmy na ohodnoceném grafu
Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta
STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach vlož do fronty kořen opakuj, dokud není fronta prázdná 1. vyber uzel z fronty a zpracuj jej 2. vlož do fronty levého následníka
Kapitola 11. Vzdálenost v grafech. 11.1 Matice sousednosti a počty sledů
Kapitola 11 Vzdálenost v grafech V každém grafu lze přirozeným způsobem definovat vzdálenost libovolné dvojice vrcholů. Hlavním výsledkem této kapitoly je překvapivé tvrzení, podle kterého lze vzdálenosti
ALGORITMY A DATOVÉ STRUKTURY
Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu
bfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
07 Základní pojmy teorie grafů
07 Základní pojmy teorie grafů (definice grafu, vlastnosti grafu, charakteristiky uzlů, ohodnocené grafy) Definice grafu množina objektů, mezi kterými existují určité vazby spojující tyto objekty. Uspořádaná
GRAFY A GRAFOVÉ ALGORITMY
KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO GRAFY A GRAFOVÉ ALGORITMY ARNOŠT VEČERKA VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ
5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,
[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p
Základní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019
Grafy 16. dubna 2019 Tvrzení. Je dán graf G, pak následující je ekvivalentní. 1 G je strom. 2 Graf G nemá kružnice a přidáme-li ke grafu libovolnou hranu, uzavřeme přesně jednu kružnici. 3 Graf G je souvislý
1 Teorie grafů. Základní informace
Teorie grafů Základní informace V této výukové jednotce se student seznámí s matematickým pojetím grafů a na konkrétních příkladech si vyzkouší vybrané algoritmy pro hledání v grafech. Výstupy z výukové
Stromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
TEORIE GRAFŮ TEORIE GRAFŮ 1
TEORIE GRAFŮ 1 TEORIE GRAFŮ Přednášející: RNDr. Jiří Taufer, CSc. Fakulta dopravní ČVUT v Praze, letní semestr 1998/99 Zpracoval: Radim Perkner, tamtéž, v květnu 1999 ZÁKLADNÍ POJMY Říkáme, že je dán prostý
zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.
Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít
TGH04 - procházky po grafech
TGH04 - procházky po grafech Jan Březina Technical University of Liberec 24. března 2015 Theseus v labyrintu Theseus chce v labyrintu najít Mínotaura. K dispozici má Ariadninu nit a křídu. Jak má postupovat?
Konvexní obal a množina
Definice M Množina se nazývá konvení, jestliže úsečka spojující libovolné dva její bod je částí této množin, tj. ab, M, t 0, : ta+ ( tb ) M konvení množina a b a b nekonvení množina Definice Konvení obal
Diskrétní matematika. DiM /01, zimní semestr 2018/2019
Diskrétní matematika Petr Kovář petr.kovar@vsb.cz Vysoká škola báňská Technická univerzita Ostrava DiM 470-2301/01, zimní semestr 2018/2019 O tomto souboru Tento soubor je zamýšlen především jako pomůcka
1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10
Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10
bfs, dfs, fronta, zásobník
bfs, dfs, fronta, zásobník Petr Ryšavý 25. září 2018 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší cesty, plánování cest. Prohledávání
8 Přednáška z
8 Přednáška z 3 12 2003 Problém minimální kostry: Dostaneme souvislý graf G = (V, E), w : E R + Našim úkolem je nalézt strom (V, E ) tak, aby výraz e E w(e) nabýval minimální hodnoty Řešení - Hladový (greedy)
Ú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ů
Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému
opakování reprezentace grafů, dijkstra, bellman-ford, johnson
opakování reprezentace grafů, dijkstra, bellman-ford, johnson Petr Ryšavý 19. září 2016 Katedra počítačů, FEL, ČVUT opakování reprezentace grafů Graf Definice (Graf) Graf G je uspořádaná dvojice G = (V,
4EK311 Operační výzkum. 5. Teorie grafů
4EK311 Operační výzkum 5. Teorie grafů 5. Teorie grafů definice grafu Graf G = uspořádaná dvojice (V, E), kde V označuje množinu n uzlů u 1, u 2,, u n (u i, i = 1, 2,, n) a E označuje množinu hran h ij,
Základní pojmy teorie grafů [Graph theory]
Část I Základní pojmy teorie grafů [Graph theory] V matematice grafem obvykle rozumíme grafické znázornění funkční závislosti. Pro tento předmět je však podstatnější pohled jiný. V teorii grafů rozumíme
Binární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
Základy umělé inteligence
Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška desátá Miroslav Kolařík Zpracováno dle R. Bělohlávek, V. Vychodil: Diskrétní matematika 2, http://phoenix.inf.upol.cz/esf/ucebni/dm2.pdf P. Martinek: Základy teoretické informatiky,
Operační výzkum. Síťová analýza. Metoda CPM.
Operační výzkum Síťová analýza. Metoda CPM. Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky a managementu Registrační číslo
Algoritmy a datové struktury
Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu
4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.
4 Stromy a les Jedním ze základních, a patrně nejjednodušším, typem grafů jsou takzvané stromy. Jedná se o souvislé grafy bez kružnic. Přes svou (zdánlivou) jednoduchost mají stromy bohatou strukturu a
Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,
Stromové rozklady Zdeněk Dvořák 25. října 2017 Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom, β je funkce přiřazující každému vrcholu T podmnožinu vrcholů v G, pro každé
NP-úplnost problému SAT
Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x
Teorie grafů BR Solutions - Orličky Píta (Orličky 2010) Teorie grafů / 66
Teorie grafů Petr Hanuš (Píta) BR Solutions - Orličky 2010 23.2. 27.2.2010 Píta (Orličky 2010) Teorie grafů 23.2. 27.2.2010 1 / 66 Pojem grafu Graf je abstraktní pojem matematiky a informatiky užitečný
10 Přednáška ze
10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský
NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NEJKRATŠÍ CESTY I Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 7 Evropský sociální fond Praha & EU: Investujeme do vaší
PROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky.
Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky. V průběhu budou vysvětlena následující témata: 1. Dynamicky alokovaná paměť 2. Jednoduché
1. Základní grafové algoritmy
1. Základní grafové algoritmy Teorie grafů, jak ji známe z diskrétní matematiky, nám dává elegantní nástroj k popisu situací ze skutečného i matematického světa. Díky tomu dovedeme různé praktické problémy
Kreslení grafů na plochy Tomáš Novotný
Kreslení grafů na plochy Tomáš Novotný Úvod Abstrakt. V první části příspěvku si vysvětlíme základní pojmy týkající se ploch. Dále si ukážeme a procvičíme možné způsoby jejich zobrazování do roviny, abychom
Přijímací zkouška - matematika
Přijímací zkouška - matematika Jméno a příjmení pište do okénka Číslo přihlášky Číslo zadání 1 Grafy 1 Pro který z následujících problémů není znám žádný algoritmus s polynomiální časovou složitostí? Problém,
1. Základní grafové algoritmy
1. Základní grafové algoritmy Teorie grafů, jak ji známe z diskrétní matematiky, nám dává elegantní nástroj k popisu situací ze skutečného i matematického světa. Díky tomu dovedeme různé praktické problémy
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
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu,
"Agent Hledač" (3. přednáška)
"Agent Hledač" (3. přednáška) Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty připomeňme, že "goal-based"
TGH06 - Hledání nejkratší cesty
TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 31. března 2015 Motivační problémy Silniční sít reprezentovaná grafem. Ohodnocené hrany - délky silnic. Najdi nejkratší/nejrychlejší
PQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
TGH06 - Hledání nejkratší cesty
TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 26. března 2013 Motivační problémy Silniční sít reprezentovaná grafem. Najdi nejkratší/nejrychlejší cestu z místa A do místa
Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.
Seznamy a stromy Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti. Klíčové pojmy: Seznam, spojový seznam, lineární seznam, strom, list, uzel. Úvod
Vrcholová barevnost grafu
Vrcholová barevnost grafu Definice: Necht G = (V, E) je obyčejný graf a k N. Zobrazení φ : V {1, 2,..., k} nazýváme k-vrcholovým obarvením grafu G. Pokud φ(u) φ(v) pro každou hranu {u, v} E, nazveme k-vrcholové
2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013
2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky
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
Stromy úvod 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 Neorientovaný strom Orientovaný strom Kořenový orientovaný
H {{u, v} : u,v U u v }
Obyčejný graf Obyčejný graf je dvojice G= U, H, kde U je konečná množina uzlů (vrcholů) a H {{u, v} : u,v U u v } je (konečná) množina hran. O hraně h={u, v} říkáme, že je incidentní s uzly u a v nebo
TGH10 - Maximální toky
TGH10 - Maximální toky Jan Březina Technical University of Liberec 23. dubna 2013 - motivace Elektrická sít : Elektrická sít, jednotlivé vodiče mají různou kapacitu (max. proud). Jaký maximální proud může
Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.
6 RNDr., Ph.D. Katedra didaktiky matematiky Univerzita Karlova v Praze Matematicko-fyzikální fakulta petra.surynkova@mff.cuni.cz http://surynkova.info množina vrcholů a množina hran hrana vždy spojuje
Výroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou
Často potřebujeme hledat mezi dvěma vrcholy grafu cestu, která je v nějakém
1. Nejkrat¹í cesty Často potřebujeme hledat mezi dvěma vrcholy grafu cestu, která je v nějakém smyslu optimální typicky nejkratší možná. Už víme, že prohledávání do šířky najde cestu s nejmenším počtem
popel, glum & nepil 16/28
Lineární rezoluce další způsob zjemnění rezoluce; místo stromu směřujeme k lineární struktuře důkazu Lineární rezoluční odvození (důkaz) z Ë je posloupnost dvojic ¼ ¼ Ò Ò taková, že Ò ½ a 1. ¼ a všechna
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
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 207 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
Binární vyhledávací stromy II
Binární vyhledávací stromy II doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 19. března 2019 Jiří Dvorský (VŠB TUO) Binární vyhledávací
7. Geometrické algoritmy (sepsal Pavel Klavík)
7. Geometrické algoritmy (sepsal Pavel Klavík) Ukážeme si několik základních algoritmů na řešení geometrických problémů v rovině. Proč zrovna v rovině? Inu, jednorozměrné problémy bývají triviální a naopak
8 Rovinnost a kreslení grafů
8 Rovinnost a kreslení grafů V přímé návaznosti na předchozí lekci se zaměříme na druhý důležitý aspekt slavného problému čtyř barev, který byl původně formulován pro barevné rozlišení států na politické
Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT
PEF ČZU Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT Okruhy SZB č. 5 Zdroje: Demel, J., Operační výzkum Jablonský J., Operační výzkum Šubrt, T., Langrová, P., Projektové řízení I. a různá internetová
Union-Find problém. Kapitola 1
Kapitola 1 Union-Find problém Motivace: Po světě se toulá spousta agentů. Často se stává, že jeden agent má spoustu jmen/přezdívek, které používá například při rezervaci hotelu, restaurace, na návštěvě
Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.
Graf 2 0 3 1 4 5 Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd. Běžné reprezentace grafu Uzly = indexy Stupně uzlů
13. Třídící algoritmy a násobení matic
13. Třídící algoritmy a násobení matic Minulou přednášku jsme probírali QuickSort, jeden z historicky prvních třídících algoritmů, které překonaly kvadratickou složitost aspoň v průměrném případě. Proč
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
Diskrétní matematika. DiM /01, zimní semestr 2018/2019
Diskrétní matematika Petr Kovář petr.kovar@vsb.cz Vysoká škola báňská Technická univerzita Ostrava DiM 470-2301/01, zimní semestr 2018/2019 O tomto souboru Tento soubor je zamýšlen především jako pomůcka
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
TGH09 - Barvení grafů
TGH09 - Barvení grafů Jan Březina Technical University of Liberec 15. dubna 2013 Problém: Najít obarvení států na mapě tak, aby žádné sousední státy neměli stejnou barvu. Motivační problém Problém: Najít
Výroková a predikátová logika - IV
Výroková a predikátová logika - IV Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - IV ZS 2018/2019 1 / 17 Tablo metoda Tablo Tablo - příklady F (((p q)
1. Toky, řezy a Fordův-Fulkersonův algoritmus
1. Toky, řezy a Fordův-Fulkersonův algoritmus V této kapitole nadefinujeme toky v sítích, odvodíme základní věty o nich a také Fordův-Fulkersonův algoritmus pro hledání maximálního toku. Také ukážeme,
Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.
9.5 Třída NP Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. Příklad. Uvažujme problém IND a následující
= 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
Síť Síť je čtveřice N = ( G, s, t, c) kde G ( V, A) = je prostý orientovaný graf a každé orientované hraně ( u, v) je přiřazeno nezáporné číslo, které se nazývá kapacita hrany ( u, v), formálně c ( u,
Matematika III 10. přednáška Stromy a kostry
Matematika III 10. přednáška Stromy a kostry Michal Bulant Masarykova univerzita Fakulta informatiky 20. 11. 2007 Obsah přednášky 1 Izomorfismy stromů 2 Kostra grafu 3 Minimální kostra Doporučené zdroje
4 Pojem grafu, ve zkratce
Petr Hliněný, FI MU Brno, 2014 1 / 24 FI: IB000: Pojem grafu 4 Pojem grafu, ve zkratce Třebaže grafy jsou jen jednou z mnoha struktur v matematice a vlastně pouze speciálním případem binárních relací,
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A