CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ Ústav technologie, mechanizace a řízení staveb Fakulta stavební VUT v Brně © Ing. Václav Rada, CSc. 15. PŘEDNÁŠKA Březen 2009
další ….. POKRAČOVÁNÍ informací z oblasti TEORIE GRAFŮ ☺ POKRAČOVÁNÍ
Poštovní doručovatel musí při roznášce pošty alespoň jedenkrát projít každou ulicí svého rajónu. Jak má postupovat, aby ušel co nejméně ki- lometrů, to znamená, aby kratší cesty pro- cházel vícekrát? Teorie grafů - Algoritmus čínského pošťáka Březen 2009
Zjistit, zda jsou všechny uzly sudého stupně. Není-li tomu tak, musíme přidat hrany, aby- chom tuto podmínku splnili a to provedeme tak, že spojíme uzly s lichým stupněm nejkratší cestou. Provedeme kontrolu, zda cesta pošťáka je opravdu nejkratší. Teorie grafů - Algoritmus čínského pošťáka Březen 2009
Příklad 1 Příklad 1 Máme město, které se rozkládá na dvou os- trovech a dvou březích, které jsou spojeny sedmi mosty. Úkolem je určit, zda je možno projít přes každý ze sedmi mostů přesně jednou, aniž bychom přeplavali řeku (viz obrázek)? Březen 2009 Teorie grafů - Algoritmus čínského pošťáka
Teorie grafů Březen 2009
Teorie grafů Březen Sedm mostů a dva břehy daného města a odpovídají cí graf
Není možno projít přes každý most právě jednou bez přeplavání řeky, protože všechny uzly mají lichý stupeň. Teorie grafů Březen 2009
Příklad 2 Příklad 2 Řešme úlohu čínského pošťáka pro graf na obrázku. Březen 2009 Teorie grafů - Algoritmus čínského pošťáka
Řešení: Hrany tvořící nejlevnější perfektní párování jsou označeny tučně. Stupně všech jeho uzlů jsou sudé, nečiní tedy potíže nalézt v tomto grafu uzavřený Eulerovský tah. Teorie grafů - Algoritmus čínského pošťáka Březen 2009
Teorie grafů Březen 2009 Hrany tvořící nejlevnější perfektní párování – tučné hrany
Úloha hledání maxima toku Úloha hledání maxima toku Základem je orientovaný graf, tzv. digraf G = V, E , kde V je množina uzlů a platí, že V = 1, 2, 3, …, n (přitom V = 1 označuje zdroj a V = n označu- je místo určení (konec) toku, ostatní uzly oz- načují, kudy tok prochází) a E je množina orientovaných hran (např. produktovod, el. vedení, silnici, apod.) majících určitou pře- pravní kapacitu k ij. Teorie grafů Březen 2009
Celý produkt je vždy hranou přepraven od jednoho uzlu k druhému – nic nepřibude a nic se neztrácí. Pokud by se nejednalo o digraf, který má hrany orientovány pouze jediným směrem, musely by být obousměrné hrany nahrazeny proti sobě jdoucími dvěma (jednosměrně) orientovanými hranami. Teorie grafů Březen 2009
Úloha hledání minimální kostry grafu Úloha hledání minimální kostry grafu Jedná se o úlohu, kde je graf neorientovaný, ale každá hrana je ohodnocena (například náklady na její zřízení v reálu). Je potřeba najít minimální počet hran, které graf musí mít. Vychází se z grafu, který má plný počet hran, čili spojení mezi jednotlivými uzly. Teorie grafů Březen 2009
Minimalizace proběhne na základě vypuštění určitých hran, jejichž úlohu převezmou jiné hrany mající dostatečnou kapacitu. Přitom bývá ještě omezení, že je omezen ná- růst ceny i prodloužení cesty a času potřeb- ného k projetí cesty. Teorie grafů Březen 2009
Okružní úlohy Okružní úlohy Řeší se problémy spojené s rozvozem a svo- zem předmětů, materiálů, zboží atd. Uzly v grafu představují místa, kam nebo od- kud se vozí a hrany jsou spojnice (komuni- kace, silnice, atd.). Typickou úlohou je úloha obchodního cestu- jícího (Traveling salesman problem). Teorie grafů Březen 2009
Úlohou je navštívit všechny uzly pouze jed- nou a cesta přitom má být optimální čili nejkratší. Teorie grafů Březen 2009
Hamiltonovské cesty a kružnice Hamiltonovské cesty a kružnice Hamiltonovská cesta v grafu G je cesta, kte- rá obsahuje každý uzel grafu G právě jednou. Hamiltonovská kružnice (cyklus) v grafu G je kružnice (cyklus), která prochází každým uzlem grafu, u které je počáteční a koncový uzel totožný. Teorie grafů Březen 2009
Typy úloh: Najít Hamiltonovskou kružnici (cyklus) – úloha obchodního cestujícího. Najít Hamiltonovskou cestu (mezi libovol- nými dvěma uzly). Najít Hamiltonovskou cestu, jejíž krajní uzel je fixován. Pro řešení těchto typů úloh neexistuje žádný efektivní algoritmus. Teorie grafů Březen 2009
Najít Hamiltonovskou cestu, jejíž krajní uzel je fixován. Najít Hamiltonovskou cestu, jejíž oba krajní uzly jsou fixovány. Pro řešení těchto typů úloh neexistuje žádný efektivní algoritmus. Teorie grafů Březen 2009
Metoda minimální cesty - Orientovaný graf Metoda minimální cesty - Orientovaný graf Pro určení minimální cesty v orientovaném ohodnoceném grafu se využívá Bellmanův princip optimality – pro následující obrázek: je-li cesta z A do C optimální, pak na této cestě musí ležet i cesta z B do C. Teorie grafů Březen 2009
Teorie grafů Březen 2009 Graf podmínky Bellmanova principu optimality
Podmínky pro graf, aby mohl být použít Bel- lmanův princip optimality: všechny hrany grafu jsou ohodnoceny t ij, v grafu nesmí být cykly i < j (hrana musí vystupovat z uzlu i s číslem menším a vstu- povat do uzlu j s číslem větším), nesmí být rovnoběžné hrany – odstraníme pomocí fiktivních hran s nulovým ohod- nocením. Teorie grafů Březen 2009
Teorie grafů Březen 2009 Podmínka užití Bellmanova principu optimality Tvorba fiktivního prvku
Postup určování cesty v orientovaném grafu Postup určování cesty v orientovaném grafu Při hledání minimální (maximální) cesty v ohodnoceném orientovaném grafu postu- pujeme od koncového uzlu k počátečnímu uzlu. Teorie grafů Březen 2009
Ohodnocení v koncovém uzlu (Tn = 0) polo- žíme rovno nule. Pak postupujeme proti smě- ru orientace hran k počátečnímu uzlu a u kaž- dého uzlu si pamatujeme minimální (maximál- ní) hodnotu součtu ohodnocení hran předcho- zí části cesty a směr, odkud jsme do daného uzlu došli. Hodnota v počátečním uzlu dává celkovou nejkratší (nejdelší) cestu v grafu. Teorie grafů Březen 2009
Teorie grafů Nejkrat ší cestaNejdel ší cesta T i = min ( T j + t ij ) T n = 0 T i = max ( T j + t ij ) T n = 0
Nejkratší cesta Nejkratší cesta vede uzly: 1 – 2 – 3 – 4 – 6 Délka cesty: = 10 jednotek Teorie grafů Březen 2009
Teorie grafů Příklad orientovaného grafu – nejkratší cesta
Nejdelší cesta Nejdelší cesta vede uzly: 1 – 3 – 5 – 6 Délka cesty: = 20 jednotek Teorie grafů Březen 2009
Teorie grafů Příklad orientovaného grafu – nejdelší cesta
Neorientovaný graf - Postup hledání minimální cesty v neorientovaném grafu Neorientovaný graf - Postup hledání minimální cesty v neorientovaném grafu Graf musí být ohodnocený, neoriento- vaný, bez číslování uzlů. Počáteční uzel je označen číslem nula. Teorie grafů Březen 2009
V každém dalším kroku budeme ohodno- covat neohodnocené uzly, které jsou spo- jeny hranami s již ohodnocenými uzly a to tak, že je hodnotíme podle vztahu: Teorie grafů Březen 2009
kde je:U( ti )– hodnota ohodnoce- ného uzlu, tij – hodnota hrany mezi ohodnoceným [ U(ti) ] a neohodnoceným [ U(tj) ] uzlem. Hodnota koncového uzlu dává hodnotu mini- mální cesty. Teorie grafů Březen 2009
Hrany, které leží na minimální cestě, určíme podle vztahu: tij = [U(tj) - U(ti)] směrem od posledního uzlu k prvnímu. Platí, že rozdíl hodnot sousedících uzlů musí být hodnota hrany. Teorie grafů Březen 2009
Teorie grafů Březen 2009 Příklad neorientovaného grafu
Teorie grafů Březen 2009 Postup ohodnocování uzlů
Matematický zápis grafů Matematický zápis grafů Matematický tvar je potřeba při zadávání grafu do algoritmů a metod řešených s po- mocí výpočetní techniky. Často používaným tvarem je uzlová inci- denční matice A s prvky nabývajícími násle- dujících hodnot: Teorie grafů Březen 2009
a ij = 0… pokud uzel (vrchol) uj není uzlem hrany h i (e i ) a ij = 1… existuje-li mezi uzly u i a u j hrana a ij = +k i … existuje-li hrana h i s počátečním uzlem uj a s ohodnocením k i a ij = -k i … existuje-li hrana h i s koncovým uzlem u j a s ohodnocením k i Teorie grafů Březen 2009
Teorie grafů Březen Základní tvar stromu
Matice: A = Teorie grafů Březen 2009
Teorie grafů Březen ,5 5,6 6,2 5,4 6,4 3,9 3,6 Graf s ohodnocenými hranami
Předcházející graf má matici: 6,2 0 -6, ,4 -5, ,6 -5, A = ,6 -3, ,9 0 3, ,4 6, , ,5 Teorie grafů Březen 2009
Nejkratší cesta v grafu Nejkratší cesta v grafu Je další z klasických dopravních problémů – je to vlastně řešení problému najít na mapě nejkratší cestu místa A o místa B. Zde je řešení snadnější, protože mapa posky- tuje určitá vodítka v podobě zakreslených cest. Něco takového bohužel v hranově ohodnoce- ném grafu není k dispozici. Teorie grafů Březen 2009
Postup hledání cesty z uzlu r do uzlu s, je v tomto případě založen na využití určité for- my trojúhelníkové nerovnosti. Při řešení je doporučeno využít metodu pro- hledávání grafu do šířky, takže v každém kro- ku jsou vypočítávány vzdálenosti všech z vý- chozího uzlu dostupných (ostatních) uzlů při přidání nové hrany, která musí vytvořit kratší cestu, aby se změnilo ohodnocení uzlu. Teorie grafů Březen 2009
Algoritmus řešení má tyto kroky: 1. krok – vzdálenost výchozího uzlu v r se položí rovna 0 – touto hodnotou se tak ohod- notí výchozí uzel – a položí se J = Ø 2. krok – najdou se všichni následníci již oz- načených uzlů a jsou zařazeni do množiny J Teorie grafů Březen 2009
3. krok – vypočtou se délky cest do těchto uzlů, tj. existuje-li hrana z uzlu i do uzlu j Є J a vypočte se součet pro v j = v i + c ij 4. krok – označí se uzel k, pro který platí, že: k: v k = min v j, pro j Є J Teorie grafů Březen 2009
5. krok – algoritmus může skončit, pokud již byly označeny všechny uzly s hodnotami v i 6. krok – položí se J = Ø a pokračuje se krokem 2. Teorie grafů Březen 2009
březen 2009 …..… cw05 – 15. POKRAČOVÁNÍ PŘÍŠTĚ ……. Informace pokračují ……
……… Březen 2009