Stromy a kostry. Definice stromu Souvislý (neorientovaný) graf – mezi každými dvěma vrcholy existuje (alespoň jedna) cesta Strom je souvislý graf, který.

Slides:



Advertisements
Podobné prezentace
LOGISTICKÉ SYSTÉMY 14/15.
Advertisements

PLANARITA A TOKY V SÍTÍCH
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.
Diskrétní matematika Opakování - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
ALGO – Algoritmizace 1. cvičení
Některé pojmy teorie grafů I. Příklad: log p ABC = u 0 + u A + u B + u C + u AB + u AC A B C.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Metody řazení s lineární časovou složitostí
Optimalizace v simulačním modelování. Obecně o optimalizaci  Optimalizovat znamená maximalizovat nebo minimalizovat parametrech (např. počet obslužných.
LOGISTICKÉ SYSTÉMY 7/14.
Soustava lineárních nerovnic
Fakulta životního prostředí Katedra informatiky a geoinformatiky
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.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Vzájemná poloha dvou přímek
Stromy.
Matice.
Optimalizace versus simulace 9.přednáška. Obecně o optimalizaci  Maximalizovat nebo minimalizovat omezujících podmínkách.  Maximalizovat nebo minimalizovat.
Vzdálenost bodu od přímky
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
Funkce více proměnných.
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3.
Formální modely výpočtu Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
P-těžké, np-těžké a np-úplné problémy
Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
hledání zlepšující cesty
Churchova (Turingova) teze
Kanonické indexování vrcholů molekulového grafu Molekulový graf: G = (V, E, L, ,  ) Indexování vrcholů molekulového grafu G: bijekce  : V  I I je indexová.
Vzdálenost bodu od roviny
NP-úplné problémy v grafech
Optimalizace versus simulace 8.přednáška. Obecně o optimalizaci  Maximalizovat nebo minimalizovat omezujících podmínkách.  Maximalizovat nebo minimalizovat.
Stereometrie Odchylky přímek VY_32_INOVACE_M3r0114 Mgr. Jakub Němec.
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.
Vzájemná poloha dvou rovin
Planarita a toky v sítích
Vyhledávání vzorů (template matching)
Teorie čísel Prvočíslo Generování prvočísel: Erathosenovo síto
Les, stromy a kostry Kružnice: sled, který začíná a končí ve stejném vrcholu, ostatní vrcholy jsou různé Souvislý graf: mezi každými dvěma vrcholy existuje.
Stereometrie Kolmost přímek a rovin Mgr. Jakub Němec
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É.
Výpočetní složitost Odhlédneme od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému časovou složitost hodnotit počtem.
(řešení pomocí diskriminantu)
Jak je to s izomorfismem
Churchova (Turingova) teze
McEllisova šifra.
Soustavy lineárních rovnic Matematika 9. ročník Creation IP&RK.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Úvod do databázových systémů
Množina bodů dané vlastnosti
Soustava lineárních rovnic
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Vzájemná poloha přímky a roviny
Soustava dvou lineárních rovnic se dvěma neznámými
Soustava tří lineárních rovnic Řešení Gaussovou eliminační metodou
MINIMÁLNÍ KOSTRA V GRAFU
Předávání parametrů z příkazové řádky OS (1)
Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit.
Soustava lineárních nerovnic
Rovnice a graf přímé úměrnosti.
Provozováno Výzkumným ústavem pedagogickým v Praze.
Množina bodů dané vlastnosti
Výpočetní složitost algoritmů
Toky v sítích.
Množina bodů dané vlastnosti
Soustavy lineárních rovnic
Definiční obory. Množiny řešení. Intervaly.
Soustava dvou lineárních rovnic se dvěma neznámými
Princip max. věrohodnosti - odhad parametrů
Transkript prezentace:

Stromy a kostry

Definice stromu Souvislý (neorientovaný) graf – mezi každými dvěma vrcholy existuje (alespoň jedna) cesta Strom je souvislý graf, který neobsahuje kružnice

Další možné definice stromu Strom je souvislý graf, který má |V|-1 hran Strom je graf bez kružnic, který má |V|-1 hran Strom je graf, kde mezi každou dvojicí různých vrcholů existuje právě jedna cesta

Podgraf, kostra Graf G’=(V’,E’) je podgrafem grafu G=(V,E), pokud V’ je podmnožina V a E’ je podmnožina E. Graf K je kostrou grafu G, pokud – K je podgrafem G – K obsahuje všechny vrcholy G – K je strom

Existence koster Nesouvislé grafy nemají kostru Každý souvislý graf má kostry Stromy mají právě jednu kostru Úplné grafy mají |V| |V|-2 koster.

Graf a jeho kostry

Hledání minimální kostry Pokud je graf hranově ohodnocený aditivní veličinou má smysl hledat minimální kostru Jak ji hledat? – Vygenerovat všechny kostry, spočítat jejich délku a vybrat nejkratší. – To není dobrý postup, neboť počet koster roste exponenciálně.

Borůvkův algoritmus Otakar Borůvka ( )

Borůvkův algoritmus 1.Seřaď hrany grafu podle jejich délky 2.Vezmi nejkratší hranu grafu 3.Pokud neuzavře kružnici, zařaď ji do kostry 4.Pokud kostra neobsahuje n-1 hran, pokračuj bodem 2.

Příklad ABCDEFGH A B C D E F G H Nalezněte nejlevnější kostru v neorientovaném grafu, který je dan touto maticí:

Příklad ABCDEFGH A B C D E F G H Nejkratší hrana je A-C, ta neuzavírá kružnici AC

Příklad ABCDEFGH A B C D E F G H Druhá v pořadí hrana B-E AC B E

Příklad ABCDEFGH A B C D E F G H Hrana E-G je stejně dlouhá a také neuzavírá kružnici, je to třetí hrana kostry AC B E G

Příklad ABCDEFGH A B C D E F G H Čtvrtá hrana je G-H AC B E G H

Příklad ABCDEFGH A B C D E F G H Teď je na řadě B-C, také neuzavírá kružnici, je to pátá hrana kostry A C B E G H

Příklad ABCDEFGH A B C D E F G H F-C je šestá hrana kostry A C B E G H F

Příklad ABCDEFGH A B C D E F G H Hrana A-G by uzavřela kružnici, proto ji přeskočím a do kostry nezařadím A C B E G H F

Příklad ABCDEFGH A B C D E F G H Z téhož důvodu nepoužiji ani hranu B-H ani hranu C-H A C B E G H F

Příklad ABCDEFGH A B C D E F G H Hrana D-E kružnici neuzavírá, je to sedmá a poslední hrana kostry, kostra je hotova a její celková cena je = 16. A C B E G H F D

Časová složitost algoritmu Graf s n vrcholy má maximálně n 2 hran. V první fázi Borůvkova algoritmu musím hrany srovnat do posloupnosti dle délky. To vyžaduje n 2. logn 2 operací. V druhé fázi vždy vezmu hranu a zjistím, zda do kostry patří, či ne. V nejhorším možném případě budu muset otestovat všech n 2 hran. Celkem tedy potřebuji maximálně n 2 + n 2. logn 2 = n 2 (1+2.logn) operací To je přijatelné číslo, např. pro n=10000, vychází operací.

Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit počtem kroků, které algoritmus musí provést, než problém rozhodne.

Průměrná a pesimistická složitost Je zřejmé, že u téhož algoritmu i při stejném rozsahu zpracovávaných dat může výpočet trvat různou dobu v závislosti na konkrétních hodnotách vstupních dat. Bude totiž pro různá data potřeba provést různý počet kroků. Je tedy třeba rozlišovat – Pesimistickou výpočetní složitost – definovanou jako složitost, které je dosaženo v „nejhorším možném případě“ pro daný rozsah zpracovávaných dat. – Průměrnou výpočetní složitost – definovanou jako aritmetický průměr složitostí pro různé vstupy daného rozsahu s přihlédnutím k pravděpodobnostnímu rozložení těchto možných vstupů.

Funkce časové složitosti Je zřejmé, že sledovaná doba výpočtu nezávisí pouze na algoritmu, ale velmi výrazně i na rozsahu dat, s kterými algoritmus pracuje. Tomuto údaji budeme říkat rozměr vstupu charakterizován přirozeným číslem. Časovou složitost lze měřit pouze zobecněným měřením, kde mírou složitosti je funkce, která rozměru vstupu přiřazuje čas, respektive počet operací potřebných pro provední výpočtu.

Asymptotická složitost U těchto funkcí se zajímáme především o jejich růst v závislosti na růstu rozměru vstupu. Tedy o tak zvané asymptotické chování této funkce při neomezeném růstu rozměru vstupu. Toto chování posuzujeme porovnáním s chováním běžně známých funkcí, o jejichž růstu máme určitou představu.

Typické třídy výpočetní složitosti Θ (1) – růst nezáleží na rozměru vstupu Θ (n) – lineární růst (složitost je přímo úměrná rozměru dat) Θ (n × log n) – tento růst dosahují „chytré“ algoritmy řazení („třídění“) Θ (n 2 ) – kvadratický růst, například Dijskrův algoritmus Θ (n 3 ) – kubický růst typický pro některé operace s maticemi a algoritmy řešení soustav lineárních rovnic Θ (n k ) pro nějaké přirozené číslo k z N – polynomiální růst Θ (2 n ), exponenciální růst Θ (n!) – faktoriální růst.

Srovnání doby výpočtu log 2 nN N  log 2 n n2n2 n3n3 n4n4 2n2n n!n! 2 10  s20  s 40  s80  s160  s40  s20  s 5 23,1  s50  s116  s250  s 1,25ms6,25ms 320  s 1,2ms 10 33,2  s100  s332  s 1ms10ms100ms10,2 ms1,17s 15 39,1  s150  s587  s 2,25ms33,8ms507ms328ms 15,1 days 20 43,2  s200  s864  s 4ms80ms1,6s10,5s years 25 46,4  s250  s 1,16ms6,25ms156ms3,91s5,59min  30 19,1  s300  s 5,73ms9ms270ms37,5s2,98h  50 56,4  s500  s 28,2ms25ms1,25s1,04min357years  ,4  s 1ms6,64ms100ms10s16,7min  ,4  s 2ms15,3ms400ms1,34min4,47h  50089,4  s5ms44,4ms2,5s4,17min13,9h 

Srovnání doby výpočtu Původ ní 2-krát5-krát10-krát 100- krát krát (n)(n) (n2)(n2) (n3)(n3)  (2 n )  (n!)

Úloha obchodního cestujícího TSP (Travel Salesman Problem) Hledání nejkratší Hamiltonovské cesty

sir Wiliam Rowan Hamilton ( )

Hamiltonovská cesta Hamiltonovská cesta je cesta procházející všemi vrcholy neorientovaného grafu. Je-li graf hranově ohodnocen aditivní veličinou, má smysl mluvit o nejkratší Hamiltonovské cestě. V úplném grafu je n! Hamiltonovských cest, metoda generování všech cest je tedy prakticky nepoužitelná. Bohužel lidstvo nezná žádný algoritmus, který by pracoval s výrazně lepší časovou složitostí A navíc se zdá, že podobný algoritmus ani neexistuje.

Littlův algortimus Algoritmus pro hledání nejkratší Hamiltonovské cesty. Pesimistická výpočetní složitost algoritmu je n! Algoritmus tedy nezaručuje nalezení řešení v „rozumném čase“. Průměrná výpočetní složitost je ale podstatně menší. V mnoha případech algortimus „rozumně zafunguje“ Algoritmus patří mezi tzv. heuristiky

Příklad ABCDEFG A B C D E F G

Příklad ABCDEFG A B C D E F G AG CF B D 6 E 7 Vygeneruji minimální kostru, v tomto případě má délku =23

Příklad Kdyby nejlevnější kostra byla cesta, tj. kdyby neobsahovala vrcholy stupně >= 3, musela by to být nejkratší Hamiltonovská cesta. Pokud nejlevnější kostra není cesta, víme alespoň, že délka nejkratší Hamiltonovské cesty bude větší nebo rovna délce nejkratší kostry. V našem případě bude tedy nejkratší Hamiltonovská cesta dlouhá alespoň 23.

Příklad Pokud nejkratší kostra není cesta, obsahuje alespoň jeden vrchol stupně alespoň 3. V našem případě je to vrchol B. Pokud by bylo takových vrcholů více, vybereme (náhodně) jeden z nich. Ve výsledné HC určitě nebudou zároveň všechny tři hrany BA,BC a BE. Rozdělíme tedy úlohu na 3 pod úlohy, hledání nejkratší HC v grafu bez hrany BA,

Příklad Rozdělíme tedy úlohu na 3 pod úlohy, – hledání nejkratší HC v grafu bez hrany BA, – hledání nejkratší HC v grafu bez hrany BC, – Hledání nejkratší HC v grafu bez hrany BE. Výsledky všech tří úloh porovnáme a nejkratší řešení bude i řešením původní úlohy.

Hledání nejkratší HC v grafu bez hrany BA ABCDEFG A B C D E F G AG CF B D 6 E 7 Opět hledám minimální kostru. Graf se rozpadl na dvě komponenty, musím najít nejkratší hranu, která propojí komponentu A,D,G s komponentou B,C,E,F a nebude to hrana AB

Hledání nejkratší HC v grafu bez hrany BA ABCDEFG A B C D E F G AG CF B D 6 E 7 Z 11 hran, které přicházejí do úvahy je nejkratší hrana EG. Ta mne vytvoří kostru (nikoli cestu) o ceně 28. 9

Schéma řešení Původní úloha Min 23 Podúloha bez AB Podúloha bez BC Podúloha bez BE Min 28

Hledání nejkratší HC v grafu bez hrany BC ABCDEFG A B C D E F G AG CF B D 6 E 7 Je třeba propojit komponentu C,F s komponentou A,B,D,E,G některou z devíti možných hran.

Hledání nejkratší HC v grafu bez hrany BC ABCDEFG A B C D E F G AG CF B D 6 E 7 Nejkratší hrana je hrana CD dlouhá 10. Ta mi dává vznik minimální kostře dlouhé =30. Tato kostra je Hamiltonovskou cestou a je tedy konečným řešením podúlohy. Zároveň vím, že řešení celé původní úlohy bude maximálně 30 (a minimálně 23). 10

Schéma řešení Původní úloha Min 23 Max 30 Podúloha bez AB Podúloha bez BC Podúloha bez BE Min 28 30

Hledání nejkratší HC v grafu bez hrany BE ABCDEFG A B C D E F G AG CF B D 6 E Vrchol E je třeba připojit někam jinam, než na B.

Hledání nejkratší HC v grafu bez hrany BE ABCDEFG A B C D E F G AG CF B D 6 E Nejlevnější možnost je připojit ho na G, tím mi vznikne kostra (nikoli cesta) o celkové délce 25. Nyní tedy vím, že hodnota řešení původní úlohy se bude pohybovat mezi 25 a 30. 9

Schéma řešení Původní úloha Min 25 Max 30 Podúloha bez AB Podúloha bez BC Podúloha bez BE Min Min 25

Heuristika Varianta bez hrany BE má menší dolní odhad, než varianta bez hrany AB. Budu tedy pokračovat v jejím rozvíjení. Minimální kostra v této variantě obsahuje vrchol G stupně 3. Opět tedy vygeneruji 3 podúlohy, v nichž budou kromě hrany BE zakázány ještě postupně hrany AG,DG a EG.

Schéma řešení Původní úloha Min 25 Max 30 bez AB bez BC bez BE Min Min 25 bez BE a AG bez BE a DG bez BE a EG

Hledání nejkratší HC v grafu bez hran BE a AG ABCDEFG A B C D E F G AG CF B D 6 E Je třeba propojit komponenty A,B,C,F a D,E,G jinou hranou, než BE, nebo AG. V úvahu připadá 10 hran. 9

Hledání nejkratší HC v grafu bez hran BE a AG ABCDEFG A B C D E F G AG CF B D 6 E Nejkratší mezi nimi je hrana CD, ta vede ke kostře (nikoli cestě) délky

Schéma řešení Původní úloha Min 25 Max 30 bez AB bez BC bez BE Min Min 25 bez BE a AG bez BE a DG bez BE a EG Min 33

Prořezávání stromu (princip mezí) Ve variantě bez hran BE a AG je nejlepší možné dosažitelné řešení s hodnotou 33. Ale my již jinde ve stromě umíme najít řešení za 30. Proto můžeme celou větev „bez BE a AG“ odříznout a dále nezkoumat.

Schéma řešení Původní úloha Min 25 Max 30 bez AB bez BC bez BE Min Min 25 bez BE a AG bez BE a DG bez BE a EG Min 33

Hledání nejkratší HC v grafu bez hran BE a DG ABCDEFG A B C D E F G AG CF B D E Vrchol D je třeba připojit někam jinam, než na G. 9

Hledání nejkratší HC v grafu bez hran BE a DG ABCDEFG A B C D E F G AG CF B D E Nejlépe to půjde na C. Vznikla kostra (nikoli cesta) s celkovém délkou 29. Tu zatím nelze odříznout, pravděpodobně ji budeme muset dále rozvětvit. 9 10

Schéma řešení Původní úloha Min 25 Max 30 bez AB bez BC bez BE Min Min 25 bez BE a AG bez BE a DG bez BE a EG Min 33 Min 29

Hledání nejkratší HC v grafu bez hran BE a DG ABCDEFG A B C D E F G AG CF B D 6 E Vrchol E je třeba připojit někam jinam než na B, či G

Hledání nejkratší HC v grafu bez hran BE a DG ABCDEFG A B C D E F G AG CF B D 6 E Nejlépe bude použít hranu EF. Tím vznikne Hamiltonovská cesta délky

Schéma řešení Původní úloha Min 25 Max 30 bez AB bez BC bez BE Min Min 25 bez BE a AG bez BE a DG bez BE a EG Min 33 Min 29 28

Závěr Nově vzniklá Hamiltonovská cesta je lepší, než dosavadní minimum 30. Zároveň nám toto nově nalezené minimum umožní odříznout větev „bez AB“ s dolním odhadem též 28 (maximálně bychom mohli získat druhé stejně dobré řešení). A také mohu odříznout větev „bez BE a DG“ s dolním odhadem 29. Ve schématu řešení již nezůstala žádná neprozkoumaná větev.

Schéma řešení Původní úloha Min 25 Max 30 bez AB bez BC bez BE Min Min 25 bez BE a AG bez BE a DG bez BE a EG Min 33 Min 29 28

Hledání nejkratší HC v grafu bez hran BE a DG ABCDEFG A B C D E F G AG CF B D 6 E Řešení E-F-C-B-A-G-D s délkou 28 je tedy minimální Hamiltonovská cesta. 12