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, kde h ij je hrana mezi uzlem u i a u j Příklad: u i G Distribuční síť (V centra, E spojnice mezi centry) G Silniční síť (V křižovatky, E silnice) G Říční, kanalizační síť (V soutoky, E řeky) Mgr. Sekničková Jana, Ph.D. 2 h ij u j
5. Teorie grafů - hrana Neorientovaná hrana h ij = pohyb, průtok hranou je povolen oběma směry u i Neorientovaný graf = obsahuje pouze neorientované hrany Orientovaná hrana h ij = pohyb, průtok hranou je povolen jen v jednom směru Orientovaný graf = obsahuje alespoň jednu orientovanou hranu u i h ij h ij u j u j Mgr. Sekničková Jana, Ph.D. 3
5. Teorie grafů - cesta Cesta z uzlu u i do uzlu u j = posloupnost hran Hrany na sebe navzájem navazují Posloupnost začíná v uzlu u i Posloupnost končí v uzlu u j Orientovaná cesta = cesta v orientovaném grafu, která respektuje povolenou orientaci Neorientovaná cesta = cesta v neorientovaném grafu nebo u 1 u 2 = cesta v orientovaném grafu, která nerespektuje povolenou orientaci Mgr. Sekničková Jana, Ph.D. 4 u 3 u 1 u 2 u 3
5. Teorie grafů cyklus, souvislý graf Cyklus = speciální případ cesty u 1 u 2 Posloupnost na sebe navzájem navazujících hran Posloupnost začíná v uzlu u i Posloupnost končí ve stejném uzlu u i, kde začala u 3 Souvislý graf = graf, ve kterém mezi každou dvojicí uzlů existuje nějaká neorientovaná cesta u 1 u 2 u 4 u 5 Mgr. Sekničková Jana, Ph.D. 5 u 3
5. Teorie grafů ohodnocení Hrana h ij je grafickým zobrazením pro spojení uzlů Např. silnice, řeka, kanalizace, el. vedení apod. Činnost (řízení projektů) Hranu můžeme ohodnotit Např. délka, průtok, doba trvání, náklady, apod. Takovou charakteristiku nazveme ohodnocení hrany Hranově ohodnocený graf = graf, ve kterém jsou všechny hrany ohodnoceny u i Podobně můžeme ohodnotit uzly 4 Uzlově ohodnocený graf = graf, ve kterém jsou všechny uzly ohodnoceny u i h ij u j u j Mgr. Sekničková Jana, Ph.D. 6
5. Teorie grafů strom Strom = souvislý, neorientovaný graf, který neobsahuje žádný cyklus Obsahuje n uzlů Obsahuje n 1 hran Mezi každými dvěma uzly existuje právě jedna cesta u 1 u 2 u 4 u 5 u 6 u 3 u 7 Mgr. Sekničková Jana, Ph.D. 7
5. Teorie grafů síť (síťový graf) Síť = souvislý, orientovaný a nezáporně (hranově či uzlově) ohodnocený graf, který obsahuje dva speciální uzly (vstup a výstup) Vstup = uzel, ze kterého hrany pouze vystupují Výstup = uzel, do kterého hrany pouze vstupují 4 u 1 u 2 2 3 1 u 3 u 4 2 5 6 u 5 7 u 6 8 u 7 Mgr. Sekničková Jana, Ph.D. 8
5.1 Nejkratší cesta 16 17 1 3 8 18 4 2 3 22 26 48 25 22 5 20 18 27 10 6 7 15 8 Vzdálenosti [100 m] Mgr. Sekničková Jana, Ph.D. 9
5.1 Nejkratší cesta [100 m] i 1 2 3 4 5 6 7 8 t i 0 16 11 8 29 33 38 51 j (y ij ) 2 (16) 16 1 (16) 1 (18) 1 (8) 2 (25) 3 (22) 3 (27) 2 (48) 3 (18) 18 3 (17) 2 (17) 28 3 (3) 11 3 (18) 4 (26) 5 (20) 5 (22) 4 (8) 8 5 (25) 41 4 (3) 6 (26) 34 7 (20) 49 7 (10) 43 6 (10) 7 (15) 8 (48) 64 5 (18) 29 8 (22) 51 8 (15) 53 6 (22) 33 7 (27) 38 Nejkratší cesta z u 1 do u 8 5100 m = 5,1 km Mgr. Sekničková Jana, Ph.D. 10
5.1 Algoritmus nejkratší cesty Hledáme nejkratší cestu mezi výchozím uzlem (např. u 1 ) a uzlem u n Počítáme hodnoty t i pro každý uzel u i označující délku nejkratší cesty z uzlu u 1 : 1. Hodnotu výchozího uzlu položíme nulovou, t 1 = 0 2. Spočítáme hodnoty t i + y ij (délku cesty z uzlu u i do uzlu u j ), kde i jsou indexy uzlů, pro které je t i již známé, j jsou indexy uzlů, pro které ještě t j neznáme, a z uzlu u i vede do uzlu u j hrana h ij s ohodnocením y ij Mgr. Sekničková Jana, Ph.D. 11
5.1 Algoritmus nejkratší cesty 2. Spočítáme hodnoty t i + y ij 3. Vybereme minimum, tedy t k = min t i + y ij ij kde k = j a ij je argument minima (tedy u j je uzel do kterého vede hrana, pro níž jsme našli toto minimum) 4. Doplníme vypočtenou hodnotu t k a bod 2 a 3 opakujeme, dokud nenajdeme t n, případně všechna t i. 5. Hodnoty t i představují délku nejkratší cesty z u 1 do u i, nejkratší cesta je tvořena hranami, pro které platí y ij = t j t i Mgr. Sekničková Jana, Ph.D. 12
i 1 2 3 4 5 6 7 8 t i 0 16 11 8 29 33 38 51 5.1 Nejkratší cesta j (y ij ) 2 (16) 5 (18) 3 (3) 8 (22) 4 (8) 6 (22) Nejkratší cesta 5,1 km 7 (27) 2 16 17 18 18 1 3 3 8 4 Mgr. Sekničková Jana, Ph.D. 13 26 48 25 22 5 27 22 10 6 20 15 7 8
5.2 Optimální spojení míst Minimální kostra grafu Zdroj 88 1 75 60 4 90 52 2 3 76 40 68 71 85 5 80 74 6 7 63 55 61 70 8 120 43 35 9 54 10 Mgr. Sekničková Jana, Ph.D. 14
5.2 Algoritmus minimální kostry Hledáme minimální kostru, čili podstrom, obsahující všech n uzlů a takových n 1 hran, které mají nejmenší ohodnocení 1. Vybereme dvě hrany s nejnižším ohodnocením a dáme do kostry 2. Vyberme ze zbylých hran tu, která má nejmenší ohodnocení a netvoří s ostatními vybranými cyklus Pokud tvoří cyklus, zahodíme ji Pokud cyklus netvoří, přidáme ji do kostry 3. Krok 2 opakujeme, dokud není vybráno n 1 hran, které tvoří minimální kostru grafu Mgr. Sekničková Jana, Ph.D. 15
5.2 Optimální spojení míst Minimální kostra grafu Zdroj 1 60 4 2 3 52 76 40 55 68 5 6 7 61 43 8 35 9 10 Minimální kostra 490 m Mgr. Sekničková Jana, Ph.D. 16
5.3 Maximální tok Předpokládejme, že máme jezero, ze kterého chceme napustit nádrž. K dispozici je severní a jižní kanál. Graf zobrazuje příslušná řečiště a hodnoty udávají maximální hodinový průtok v m 3. Jaký je maximální hodinový průtok severním kanálem? Jaký je maximální hodinový průtok jižním kanálem? Který kanál je vhodné provozovat pro napouštění nádrže? Mgr. Sekničková Jana, Ph.D. 17
5.4 Nejkratší okruh Úloha obchodního cestujícího, okružní dopravní problém 1 14 23 10 2 15 12 18 4 23 15 5 30 3 16 6 Nejkratší okruh 109 km Mgr. Sekničková Jana, Ph.D. 18
Detaily k přednášce: skripta, kapitola 5 KONEC Mgr. Sekničková Jana, Ph.D. 19