NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
|
|
- Vlastimil Němeček
- před 5 lety
- Počet zobrazení:
Transkript
1 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ší budoucnosti Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce /
2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na ohodnoceném grafu) relaxace, strom nejkratších cest Dijkstrův algoritmus Bellman-Fordův algoritmus Skripta kap. 6, str Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce 47 2 / 15 18
3 Několik obecných úvah Uvažujeme nejobecnější případ - ohodnocené OG: w-délka spojení h 1, h 2,..., h k = Σ w(h i ) w-vzdálenost d w (u,v) = w-délka nejkratšího spojení nebo + nedostupné uzly - vzdálenost + < 0 spojení obsahující záporný cykl vzdálenost - počítání s nekonečny: a + (- ) = (- ) + a = - pro a a + = + a = pro a - Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce 47 3 / 15 18
4 Několik obecných úvah Uvažujeme nejobecnější případ - ohodnocené OG: w-délka spojení h 1, h 2,..., h k = Σ w(h i ) w-vzdálenost d w (u,v) = w-délka nejkratšího spojení nebo + (0) d(u,v) je nezáporné celé číslo nedostupné uzly - vzdálenost + (1) d(u,v) 0, přičemž d(u,v)=0, právě když u=v (2) d(u,v) = d(v,u) spojení se záporným (3) d(u,v) cyklem d(u,z) + d(z,v) vzdálenost - (4) je-li d(u,v)>1, pak z: z u,v: d(u,v) = d(u,z) + d(z,v) < 0 < 0 počítání s nekonečny: a + (- ) = (- ) + a = - pro a a + = + a = pro a -? Které z vlastností 0 až 4 má takováto vzdálenost? Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce 47 4 / 15 18
5 Varianty úlohy hledání nejkratších cest n n 1 n n Důležité zjištění: Pro libovolnou hranu (u,v) H a uzel s U platí d w (s,v) d w (s,u) + w(u,v) d w (s,v) v s d w (s,u) u w(u,v)! Platí pro konečné i nekonečné hodnoty w-vzdáleností! Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce 47 5 / 15 18
6 Implementace hledání 1 n Datové struktury: d[u]... w-délka (dosud nalezené) minimální cesty p[u]... předchůdce na (dosud nalezené) minimální cestě Q... množina otevřených uzlů (prioritní fronta?) Společné operace pro základní varianty algoritmů: void InitPaths(Graph G, Node s) { // inicializace 1 for (Node u in U(G)) 2 { d[u] = + ; p[u] = null; } 3 d[s] = 0; } void Relax (Node u, Node v, Weights w) { 1 newval = d[u]+w(u,v); 2 if (d[v] > newval) // příp.úprava délky cesty 3 { d[v] = newval; p[v] = u; } } Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce 47 6 / 15 18
7 Implementace hledání 1 n V: Předpokládejme, že pro nějaký graf provedeme operaci InitPaths a pak libovolný počet operací Relax. Potom platí d[u] d w (s,u) jakmile d[u] dosáhne hodnoty d w (s,u), už se nemění jakmile se žádné d[u] nemění, máme strom nejkratších cest do všech dosažitelných uzlů z uzlu s ? V jakém pořadí hran a jak dlouho máme provádět relaxaci? Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce 47 7 / 15 18
8 Dijkstrův algoritmus Základní předpoklad w : H R + (nezáporné délky hran) Jedná se o upravený algoritmus prohledávání do šířky: otevřené uzly se vybírají podle nejmenší hodnoty d[u] (to je horní aproximace vzdálenosti d w (s,u)) vybraný uzel získá definitivní d[u], sousední d[v] se průběžně upravují s HOTOVO Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce 47 8 / 15 18
9 Dijkstrův algoritmus void Dijkstra(Graph G, Node s, Weights w) { 1 InitPaths(G,s); O( U ) 2 S = ; Q = U(G); // Q OPEN, S CLOSED 3 while (Q!= )) { 4 u = uzel z Q s minimální hodnotou d[u] ; 5 S = S {u}; Q = Q-{u}; O( U. U ) 6 for (Node v in Adj[u]) { 7 Relax(u,v,w); O( H ) 8 } } } Předpokládáme ukládání / hledání hodnot d[u] v poli (seznamu) celková složitost O( H + U 2 ) = O( U 2 ) optimální pro husté grafy, jinak nepoměr H vs. U 2, co s tím? Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce 47 9 / 15 18
10 Správnost Dijkstrova algoritmu Tvrzení: Při uzavření uzlu u (řádka 5... S = S {u}) platí d[u] = d w (s,u) D: sporem - nechť je d[u] > d w (s,u) pro nějaký uzavřený uzel, mějme nejkratší cestu s u, nechť x je její poslední uzavřený uzel s uzavřené uzly S x y 0 d[y] = d w (s,y) d w (s,u) < d[u] spor s vybráním uzlu u, když byl u k dispozici uzel y s menší hodnotou Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
11 Varianty Dijkstrova algoritmu Zpětná varianta chceme nalézt nejkratší cesty ze všech uzlů do jednoho (n 1) předpokládáme reprezentaci G pomocí seznamů předchůdců Obousměrná varianta střídáme postup dopředu a zpět (S, Q S, Q ) kdy můžeme hledání ukončit? jak určíme nejkratší cestu? Jak upravit pro cesty v acyklických grafech? topologicky uspořádáme uzly otevřené uzly procházíme v topologickém pořadí relaxujeme z nich vycházející hrany složitost O( H + U ) proč to bude fungovat? Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
12 Dijkstrův algoritmus používající frontu Q void Dijkstra(Graph G, Node s, Weights w) { 1 InitPaths(G,s); 2 S = ; Q.Init(); 3 for (Node u in U(G)) Q.Push(u); O( U ) 4 while (!Q.Empty()) { 5 u = Q.ExtMin(); S = S {u}; O( U. lg U ) 6 for (Node v in Adj[u]) { 7 Relax(u,v,w); } } } O( H. lg U ) void Relax (Node u, Node v, Weights w) { 1 newval = d[u]+w(u,v); 2 if (d[v] > newval) { 3 Q.DecreaseKey(v,newVal); p[v] = u;} } // d[v]=newval; Složitost O(( H + U ).lg U ) pro frontu implementovanou jako binární halda O( H + U.lg U ) pro Fibonacci-ho haldu Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
13 Dialova implementace Dijkstrova algoritmu Předpoklad délky hran jsou nezáporná celá čísla ( C), U =n, H =m Postup o víme, že hodnoty d[u] uzavíraných uzlů tvoří neklesající posloupnost o každé konečné d[u] je celéčíslo mezi 0 a (n-1).c (proč?) uzly se ukládají do přihrádek číslovaných 0,1,2,, (n-1).c podle d[u] uzly v přihrádce k tvoří dvojsměrně zřetězený seznam cont[k] přihrádky prohlížíme zdola, vybíráme uzly z první nalezené neprázdné, následníky při Relax přemisťujeme do nižších přihrádek Paměťová složitost O(m + n.c), časová složitost O(n.C)!!! Při zpracování přihrádky d[u] může vzniknout d[v] maximálně rovné d[u]+c stačí použít kruhovou frontu s (C+1) přihrádkami Radix-heap implementace používá log(n.c) přihrádek a máčasovou složitost jen (?!?) O(m + n.log(n.c)) Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
14 Dijkstrův algoritmus a záporné hrany Co se stane, když má graf záporně ohodnocené hrany? Bude algoritmus vždycky fungovat špatně? d[]=3 s d[]=4 Relax se musí doplnit o vracení uzlů do prioritní fronty už to není Dijkstrův algoritmus (?? ukončení algoritmu, časová složitost??) Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
15 Bellmanův-Fordův algoritmus? Co obecně dělat v případě záporně ohodnocených hran? Relaxovat, relaxovat, relaxovat... boolean B-Ford (Graph G, Node s, Weights w) { 1 InitPaths(G,s); 2 for (int i=1; i< U ; i++) 3 for (Edge (u,v) in H) 4 Relax(u,v,w); 5 for (Edge (u,v) in H) { 6 if (d[v] > d[u] + w(u,v)) return false; } 7 return true; 8 } Složitost O( U. H )?Proč má nyní Relax opět konstantní časovou složitost? Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
16 Úpravy B-F algoritmu Co když zavedeme frontu uzlů s úspěšným Relax a bereme jen hrany vycházející z těchto uzlů? (a máme upraveného Dijkstru!) ukončení - při vyprázdnění fronty problém - co když se fronta nevyprázdní? v nejhorším případě zase O( U. H ) A úprava pro acyklické grafy? DAG-Paths - nejkratší cesty pro acyklické grafy 1 "Topologicky uspořádáme uzly grafu G" 2 InitPaths(G,s); 3 for (Node u in U(G) v pořadí top. uspořádání) { 4 for (Node v in Adj[u]) Relax(u,v,w); 5 }?? Složitost?? O( H + U )!! Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
17 Kontrolní otázky 7.1 Kteráčást Dijkstrova algoritmu je podstatně závislá na předpokladu nezáporného ohodnocení hran? Ukažte na jednom příkladu, že pro záporně ohodnocené hrany může Dijkstrův algoritmus dát špatný výsledek, a na jiném příkladu, že může dát správný výsledek. 7.2 Je možné prohlásit, že Dijkstrův algoritmus bude fungovat správně i při záporném ohodnocení hran, pokud bude zadaný graf acyklický? 7.3 Je možné prohlásit, že Dijkstrův algoritmus bude fungovat správně i při záporném ohodnocení hran, pokud bude použit k určení vzdáleností z kořene do ostatních uzlů kořenového stromu? 7.4 Navrhněte časově efektivní algoritmus pro určení celkového počtu různých orientovaných cest v acyklickém grafu. (Návod: Inspirujte se algoritmem DAG-Paths a za hodnotu d[u] berte počet cest končících v uzlu u.) 7.5 Navrhněte algoritmus, který určí vzdálenost ze všech uzlů do uzlu s v acyklickém orientovaném grafu. Určete potřebné datové struktury a časovou složitost navrženého algoritmu. 7.6 Navrhněte algoritmus lineární složitosti pro hledání nejdelších cest z daného uzlu do všech ostatních uzlů v acyklickém grafu. 7.7 Doplňte Dijkstrův a Bellman-Fordův algoritmus o výpočet hodnoty r[u], která představuje počet hran nejkratší cesty z uzlu s do uzlu u. (Návod: Stačí vhodně upravit operace InitPaths a Relax.) Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
18 Kontrolní otázky 7.8 Navrhněte algoritmus, který v orientovaném grafu s nezáporným ohodnocením hran w nalezne druhou nejkratší orientovanou cestu z uzlu u do uzlu v. Určete asymptotickou časovou složitost tohoto algoritmu. Doc. Josef Kolář (ČVUT) Prohledávání Nejkratší cesty grafů GRA, LS 2010/11, Lekce / 15 18
Použití dalších heuristik
Použití dalších heuristik zkracování cesty při FIND-SET UNION podle hodností Datové struktury... p[x] - předchůdce uzlu x MAKE-SET(x) p[x] := x hod[x] := 0 hod[x] - hodnost (aprox. výšky) UNION(x,y) LINK(FIND-SET(x),
VíceVzdá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í
VícePROHLEDÁ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
VíceORIENTOVANÉ 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
VíceTOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
TOKY V SÍTÍCH II Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 010/011, Lekce 10 Evropský sociální fond Praha & EU: Investujeme do vaší
VíceVLASTNOSTI GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 5
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 Evropský sociální fond Praha & EU: Investujeme do vaší
VíceSTROMY 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 A KOSTRY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 010/011, Lekce 6 Evropský sociální fond Praha & EU: Investujeme do vaší
VíceDijkstrův algoritmus (připomenutí)
Dijkstrův algoritmus (připomenutí) Základní předpoklad w : H R + (nezáporné délky hran) Upravený algoritmus prohledávání do šířky Dijkstra(G,s,w) 1 InitPaths(G,s) 2 S:= ; InitQueue(Q) 3 for každý uzel
VícePLANARITA A TOKY V SÍTÍCH
PLANARITA A TOKY V SÍTÍCH Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 9 Evropský sociální fond Praha & EU: Investujeme
VíceNP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NP-ÚPLNÉ PROBLÉMY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 13 Evropský sociální fond Praha & EU: Investujeme do
VíceDynamické programování
ALG 0 Dynamické programování zkratka: DP Zdroje, přehledy, ukázky viz https://cw.fel.cvut.cz/wiki/courses/a4balg/literatura_odkazy 0 Dynamické programování Charakteristika Neřeší jeden konkrétní typ úlohy,
VíceZá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íceSTROMY A KOSTRY. Stromy a kostry TI 6.1
STROMY A KOSTRY Stromy a kostry TI 6.1 Stromy a kostry Seznámíme se s následujícími pojmy: kostra rafu, cyklomatické číslo rafu, hodnost rafu (kořenový strom, hloubka stromu, kořenová kostra orientovaného
VíceTGH06 - 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
VíceAlgoritmy 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
VíceStromy, 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
VíceTGH06 - 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ší
VíceHledá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íceTGH05 - 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í
VíceMatice 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
Vícebfs, 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ší
VíceGrafové 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
VíceTGH05 - 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í
Vícebfs, 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ší
VíceGrafové 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
Více07 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á
VíceDatové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky 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í algoritmy
Více6. Tahy / Kostry / Nejkratší cesty
6. Tahy / Kostry / Nejkratší cesty BI-EP2 Efektivní programování 2 LS 2017/2018 Ing. Martin Kačer, Ph.D. 2011-18 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké
VíceDijkstrů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é
VíceVLASTNOSTI GRAFŮ. Vlastnosti grafů - kap. 3 TI 5 / 1
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3 TI 5 / 1 Pokrytí a vzdálenost Každý graf je sjednocením svých hran (jak je to přesně?).?lze nalézt složitější struktury stejného typu, ze kterých lze nějaký graf
VíceStromy. 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ý
VíceRekurzivní algoritmy
Rekurzivní algoritmy 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í algoritmy (BI-EFA) ZS
VíceDynamické datové struktury III.
Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované
VíceAlgoritmus 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
VíceZdů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
VíceDynamické programování
Dynamické programování 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í algoritmy (BI-EFA)
VíceÚ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í
VíceNávrh Designu: Radek Mařík
1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1
VíceStromy. Příklady. Rekurzivní datové struktury. Základní pojmy
Základní pojmy Stromy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Graf uzly hrany orientované / neorientované Souvislý
VíceALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky
LG 04 Zásobník Fronta Operace nqueue, equeue, Front, mpty... yklická implementace fronty Průchod stromem do šířky Grafy průchod grafem do šířky průchod grafem do hloubky Ořezávání a heuristiky 1 Zásobník
VíceTGH08 - Optimální kostry
TGH08 - Optimální kostry Jan Březina Technical University of Liberec 14. dubna 2015 Problém profesora Borůvky řešil elektrifikaci Moravy Jak propojit N obcí vedením s minimální celkovou délkou. Vedení
VíceAlgoritmizace 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
VíceModely 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á
VíceDynamické programování
ALG 11 Dynamické programování Úloha batohu neomezená Úloha batohu /1 Úloha batohu / Knapsack problem Máme N předmětů, každý s váhou Vi a cenou Ci (i = 1, 2,..., N) a batoh s kapacitou váhy K. Máme naložit
VíceDobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3
DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),
VíceGraf. 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ů
VíceDatový typ prioritní fronta Semestrální práce z předmětu 36PT
Datový typ prioritní fronta Semestrální práce z předmětu 36PT Martin Tůma Cvičení 113, Út 18:00 22. května 2004 Specifikace problému Často potřebujeme přístup k informacím, tak aby tyto byly seřazeny podle
Vícedag a dp v něm, bellman-ford, floyd-warshall
dag a dp v něm, bellman-ford, floyd-warshall Petr Ryšavý 24. září 2018 Katedra počítačů, FEL, ČVUT topologické očíslování Topologické očíslování Definice (Topologické očíslování) Topologické očíslování
VíceÚ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
VíceDynamické datové struktury IV.
Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra
VíceŘešení rekurentních rovnic 2. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 11
Řešení rekurentních rovnic 2 doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze c Josef Kolar, 2011 Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce
VíceJan 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,
VíceDrsná matematika III 10. demonstrovaná cvičení Kostry grafů
Drsná matematika III 10. demonstrovaná cvičení Kostry grafů Martin Panák Masarykova univerzita Fakulta informatiky 21.11. 2006 1 Domácí úlohy z minulého týdne Příklad 1 Příklad 2 Příklad 3 2 Borůvkův algoritmus
VícePokroč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
Pokročilé 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í algoritmy (I-EFA) ZS 2010/11,
VícePrioritní fronta, halda
Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje
VíceGrafové algoritmy. Aktualizováno: 29. listopadu / 228
Grafové algoritmy Zbyněk Křivka, Tomáš Masopust Aktualizováno: 29. listopadu 2017 1 / 228 Obsah Úvod Grafy Reprezentace grafů Prohledávání do šířky Prohledávání do hloubky Topologické uspořádání Silně
VíceALGORITMY 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
VíceBiná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
VíceObsah 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
Víceopaková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,
VíceTURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
TURINGOVY STROJE Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 12 Evropský sociální fond Praha & EU: Investujeme do vaší
Více1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:
Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.
VíceDynamické datové struktury I.
Dynamické datové struktury I. Seznam. Fronta. Zásobník. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz
VíceZá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
VíceTGH05 - Problém za milion dolarů.
TGH05 - Problém za milion dolarů. Jan Březina Technical University of Liberec 20. března 2012 Časová složitost algoritmu Závislost doby běhu programu T na velikosti vstupních dat n. O(n) notace, standardní
Více5. Dynamické programování
5. Dynamické programování BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické
VícePrioritní fronta a příklad použití v úloze hledání nejkratších cest
Prioritní fronta a příklad použití v úloze hledání nejkratších cest Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 12 B0B6PRP Procedurální programování
Více5 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
VíceBiná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í
VíceAutomaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
VíceEkvivalence. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 5
doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze c Josef Kolar, 2011 Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 5 Evropský sociální fond.
VíceStromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.
Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018, B6B36DSA 01/2018, Lekce 9 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start
VíceZá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
Víceˇ 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
řazení rychlejší než kvadratické Karel Horák, Petr Ryšavý 20. dubna 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Která z následujících posloupností představuje haldu uloženou v poli? 1. 9 5 4 6 3 2. 5 4
VíceAlgoritmy výpočetní geometrie
Algoritmy výpočetní geometrie 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í algoritmy (BI-EFA)
Více4EK311 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,
VíceGRAFOVÉ MODELY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 1
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 Evropský sociální fond. Praha & EU: Investujeme do vaší
VíceZáklady algoritmizace. Hašování
Základy algoritmizace Hašování Problematika hašování Hašování - nástroj na jednoduchý způsob "zakódování vstupních dat. Vstupní data jsou zpracována hašovací funkcí jsou jistým způsobem komprimována. Relativně
VíceCí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
VíceAlgoritmy 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
Vícebfs, 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í
VíceProhledá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é
VíceMatematická indukce. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 3
doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze c Josef Kolar, 2011 Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 3 Evropský sociální fond.
VíceDobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze
Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Bayesovské modely Doc. RNDr. Iveta Mrázová, CSc.
VíceČást 1 Prioritní fronta polem a haldou
Prioritní fronta a příklad použití v úloze hledání nejkratších cest Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška BBPRP Procedurální programování Přehled
VíceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
VíceVý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?
VíceTeorie 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ý
VíceGrafové 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
VíceBinární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
Více5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
Víceopakování reprezentace grafů, dijkstra, bellman-ford, johnson
opakování reprezentace grafů, dijkstra, bellman-ford, johnson Petr Ryšavý 18. září 2017 Katedra počítačů, FEL, ČVUT opakování reprezentace grafů Graf Definice (Graf) Graf G je uspořádaná dvojice G = (V,
Víceprohled 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ů Karel Horák, Petr Ryšavý 16. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Nad frontou (queue) byly provedeny následující operace: push(1) push(2) print(poll()) print(peek()) print(peek())
VíceDalší příklady. Katedra softwarového inženýrství. Katedra teoretické informatiky, Fakulta informačních technologii, ČVUT v Praze. Karel Müller, 2011
Karel Müller (ČVUT FIT) BI-PA2, 2011, Cvičení 11-13 1/5 Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta informačních technologii, ČVUT v Praze Karel Müller, 2011 Programování a
VíceAbstraktní datové typy
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní datové typy BI-PA2, 2011, Přednáška 10 1/27 Abstraktní datové typy Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky,
VíceUmělá inteligence. UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI. Letošní cena nadace Vize 2000 - Joseph Weizenbaum
Umělá inteligence UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI 1943-56 začátky (modelování neuronů a sítí na počítači) 1952-69 velká očekávání (GPS, Lisp, microworlds) 1966-74
VícePř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,
VíceCvičení MI-PRC I. Šimeček
Cvičení MI-PRC I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PRC, LS2010/11, Cv.1-6 Příprava studijního programu Informatika
VíceGrafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.
Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy
VíceOperač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
Více