TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.

Slides:



Advertisements
Podobné prezentace
Lineární klasifikátor
Advertisements

Grafové algoritmy.
LOGISTICKÉ SYSTÉMY 14/15.
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Rovnice a nerovnice s neznámou pod odmocninou
Normalizace Řada analytiků se mylně domnívá, že pro každý objekt existuje jedno jediné univerzálně použitelné nejlepší řešení bez ohledu na řešený problém.
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
Nový přístup k aplikacím Vema
PLANARITA A TOKY V SÍTÍCH
Dostačující podmínky •Sporný cyklus –Cyklus ve sporném orientovaném grafu •Sporné kolo –Struktura sporných cyklů.
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
LOGISTICKÉ SYSTÉMY 6/14.
Cvičení Úloha 1: Rozhodněte zda posloupnost znaků v poli délky n tvoří palindrom (slovo, které je stejné při čtení zprava i zleva). Př.: [a,l,e,l,a] [a,n,n,a]
Red-Black Stromy Binární Vyhledávací Stromy, u kterých je časová složitost operací v nejhorším případě rovná O(log n)
Diskrétní matematika Opakování - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
PA081 Programování numerických výpočtů Přednáška 2.
ALGO – Algoritmizace 1. cvičení
Základy infinitezimálního počtu
Algoritmy I Cvičení č. 3.
Algoritmy zpracování textů II
Metody řazení s lineární časovou složitostí
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
LOGISTICKÉ SYSTÉMY 7/14.
LOGISTICKÉ SYSTÉMY 8/14.
VÍCEKRITERIÁLNÍ ROZHODOVÁNÍ I.
SÍŤOVÁ ANALÝZA.
TI 6.1 STROMY A KOSTRY Stromy a kostry. TI 6.2 Stromy a kostry Seznámíme se s následujícími pojmy: kostra grafu, cyklomatické číslo grafu, hodnost grafu.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Příklady jazyků Příklad 1: G=({S}, {0,1}, P, S)
Algoritmy vyhledávání a řazení
Stromy.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Univerzita Karlova Matematicko-fyzikální fakulta Lukáš Jirovský Teorie grafů – prezentace Bc. Práce Vedoucí práce: RNDr. Pavla Pavlíková, Ph.D.
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3.
Algoritmus a jeho vlastnosti
Matematické metody optimalizace Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
Kostra grafu Prohledávání grafu
Směrování - OSPF.
hledání zlepšující cesty
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Tomáš Vambera. Přístroje  Mobilní telefony  Přenosné počítače (Pda)  GPS Přístroje.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Prohledávání stavového prostoruGRA, LS 2013/14, Lekce 11.
Směrování -RIP. 2 Základy směrování  Předpoklady:  Mějme směrovač X  Směrovač nemůže znát topologii celé sítě  X potřebuje určit směrovač pro přístup.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Vstup: Úplný graf G=(V,E), ohodnocení hran d:E → R + Výstup: Nejkratší Hamiltonovská cesta HC v grafu G Najdi minimální kostru K grafu G Pokud K neobsahuje.
Planarita a toky v sítích
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
VLASTNOSTI GRAFŮ Doc. RNDr. Josef Kolář, CSc
Hledání cyklů Komunikační sítě Elektrické obvody Odběr surovin a výrobků v průmyslové výrobě Logistika Chemie ….
Hledání silně souvislý komponent Silně souvislá komponenta orientovaného grafu G= (V,E) je maximální množina uzlů UV taková že ∀ u,v ∈ V : u je dosažitelné.
TI 3.1 UPOZORNĚNÍ Reprezentace grafů, odst. 4.1 dne (za týden) bude X36TIN dvakrát dne (za 5 týdnů) bude X36OSY dvakrát skripta.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
ALGORITMY UMĚLÉ INTELIGENCE
VÍCEKRITERIÁLNÍ ROZHODOVÁNÍ I.
STROMY A KOSTRY Stromy a kostry - odst. 3.2.
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Maximální propustnost rovinné dopravní sítě
MINIMÁLNÍ KOSTRA V GRAFU
Běžné reprezentace grafu
Výpočetní složitost algoritmů
Toky v sítích.
Prakticky identické postupy:
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
Definiční obory. Množiny řešení. Intervaly.
Prohledávání grafů.
Prakticky identické postupy:
Transkript prezentace:

TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6

TI 7.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. 110 – 122 Nejkratší cesty - odst. 6.1

TI 7.3 Několik obecných úvah Nejkratší cesty - odst. 6.1 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 ? 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 nedostupné uzly - vzdálenost  spojení se záporným cyklem – vzdálenost -

TI 7.4 Varianty úlohy hledání nejkratších cest: Nejkratší cesty - odst. 6.1 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) 1  1 1  nn  1n  n s v u ! Platí pro konečné i nekonečné hodnoty w-vzdáleností ! d w (s,v) d w (s,u) w(u,v)

TI 7.5Nejkratší cesty - odst. 6.1 Datové struktury: d[u]... délka (dosud nalezené) minimální cesty p[u]... předchůdce na (dosud nalezené) minimální cestě Q... (prioritní) fronta otevřených uzlů (halda?) Společné operace pro základní varianty algoritmů: InitPaths(G,s) - inicializace datových struktur 1for každý uzel uU 2{ d[u]   ; p[u]  nil } 3d[s]  0 Relax(u,v,w) - (případná) úprava délky nalezené nejkratší cesty 1if d[v] > d[u]+w(u,v) 2 { d[v]  d[u]+w(u,v); p[v]  u }

TI 7.6 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 Nejkratší cesty - odst. 6.1 ? V jakém pořadí hran máme provádět relaxaci ? ? Jak dlouho máme provádět relaxaci ? 0 

TI 7.7 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 řadí do prioritní fronty (a vybírají) podle hodnoty d[u]... aproximace d w (s,u) Dijkstrův algoritmus - odst  s

TI 7.8 Dijkstra(G,s,w) 1InitPaths(G,s) 2S  ; InitQueue(Q) 3for každý uzel uU { Enqueue(Q,u) }O(|U|) 4while not EmptyQueue(Q) { 5u  ExtractMin(Q); S  S{u}O(|U|. lg |U|) 6for uzel vAdj[u] { 7 Relax(u,v,w) O(|H|. lg |U|) 8 } } Dijkstrův algoritmus - odst. 6.2 Možné ještě O(|U|. lg |U| + |H|) nebo O(|U|**2) (podle způsobu implementace prioritní fronty – Fibonacci/seznam) Co se stane, když existují záporně ohodnocené hrany? Relax se musí doplnit o vracení uzlů do prioritní fronty (?? ukončení algoritmu, časová složitost ??)

TI 7.9 Důkaz správnosti Dijkstrova algoritmu Tvrzení: Při uzavření uzlu u (řádka 5... S  S{u}) platí d[u] = d(s,u) D: sporem - nechť je d[u] > d(s,u) pro nějaký uzavřený uzel, mějme nejkratší cestu s  u, x je poslední uzavřený uzel s x y u uzavřené uzly S  0 d[y] = d(s,y)  d(s,u) < d[u] spor s vybráním uzlu u, když byl k dispozici uzel y s menší hodnotou Dijkstrův algoritmus - odst. 6.2

TI 7.10 Bellmanův-Fordův algoritmus ? Co dělat v případě záporně ohodnocených hran ? Systematicky relaxovat... Bellman-Ford algoritmus - odst. 6.3 Bellman-Ford(G,s,w) 1InitPaths(G,s) 2for i  1 to |U|-1 { 3 for každou hranu (u,v)H { Relax(u,v,w) } 4} 5for každou hranu (u,v)H { 6 if d[v] > d[u] + w(u,v) { return false } } 7return true Složitost O(|U|. |H|) ?Proč má nyní Relax konstantní časovou složitost?

TI 7.11 ? Nelze B-F algoritmus nějak upravit / zrychlit ? Bellman-Ford algoritmus - odst. 6.3 DAG-Paths - nejkratší cesty pro acyklické grafy 1Topologicky uspořádáme uzly grafu G 2InitPaths(G,s) 3for každý uzel u v pořadí podle topologického uspořádání { 4 for každé vAdj[u] {Relax(u,v,w) } 5} Co když zavedeme frontu uzlů s úspěšným Relax a bereme jen hrany vycházející z těchto uzlů? (a máme 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|) ?? Složitost ?? O(|H|+|U|) !!

TI 7.12 Kontrolní otázky 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. 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ý? 3.Je možné prohlásit, že Dijkstrův algoritmus bude fungovat správně i při záporném ohodnocení hran, pokud bude hledat vzdálenost z kořene do ostatních uzlů kořenového stromu? 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.) 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. 6.Navrhněte algoritmus lineární složitosti pro hledání nejdelších cest z daného uzlu do všech ostatních. 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.) Nejkratší cesty - kapitola 6