Algoritmy teórie grafov

Σχετικά έγγραφα
Matematika Funkcia viac premenných, Parciálne derivácie

Motivácia Denícia determinantu Výpo et determinantov Determinant sú inu matíc Vyuºitie determinantov. Determinanty. 14. decembra 2010.

Obvod a obsah štvoruholníka

Start. Vstup r. O = 2*π*r S = π*r*r. Vystup O, S. Stop. Start. Vstup P, C V = P*C*1,19. Vystup V. Stop

7. FUNKCIE POJEM FUNKCIE

Planárne a rovinné grafy

Ekvačná a kvantifikačná logika

Eulerovské grafy. Príklad Daný graf nie je eulerovský, ale obsahuje eulerovskú cestu (a, ab, b, bc, c, cd, d, da, a, ac, c, ce, e, ed, d, db).

13. kapitola Siete a metóda kritickej cesty

1. Limita, spojitost a diferenciálny počet funkcie jednej premennej

Matematika prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad

Goniometrické rovnice a nerovnice. Základné goniometrické rovnice

11. prednáška ( ) Najkratšie cesty (v grafe)

,Zohrievanie vody indukčným varičom bez pokrievky,

x x x2 n

Gramatická indukcia a jej využitie

Úvod do lineárnej algebry. Monika Molnárová Prednášky

Priamkové plochy. Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava

Teória grafov I definícia grafu, základné pojmy, podgraf, cesty a kružnice v grafe, orientované grafy, eulerovský ťah, hamiltonovská kružnica

M6: Model Hydraulický systém dvoch zásobníkov kvapaliny s interakciou

Cvičenie č. 4,5 Limita funkcie

Funkcie - základné pojmy

Prechod z 2D do 3D. Martin Florek 3. marca 2009

Komplexné čísla, Diskrétna Fourierova transformácia 1

4. decembra decembra 2003 Teria grafov 1

6 Limita funkcie. 6.1 Myšlienka limity, interval bez bodu

Modely sieťovej analýzy

1. písomná práca z matematiky Skupina A

Matematika 2. časť: Analytická geometria

Riešenie rovníc s aplikáciou na elektrické obvody

ARMA modely čast 2: moving average modely (MA)

Metodicko pedagogické centrum. Národný projekt VZDELÁVANÍM PEDAGOGICKÝCH ZAMESTNANCOV K INKLÚZII MARGINALIZOVANÝCH RÓMSKYCH KOMUNÍT

ELEKTRICKÉ POLE. Elektrický náboj je základná vlastnosť častíc, je viazaný na častice látky a vyjadruje stav elektricky nabitých telies.

7 Derivácia funkcie. 7.1 Motivácia k derivácii

Návrh vzduchotesnosti pre detaily napojení

MIDTERM (A) riešenia a bodovanie

4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti

Moderné vzdelávanie pre vedomostnú spoločnosť Projekt je spolufinancovaný zo zdrojov EÚ M A T E M A T I K A

Vektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich

Tomáš Madaras Prvočísla

3. Striedavé prúdy. Sínusoida

Lineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus

Povrch a objem ihlana

Riešenie sústavy lineárnych rovníc. Priame metódy.

Integrovanie racionálnych funkcií

Matematika 2. časť: Funkcia viac premenných Letný semester 2013/2014

FAKULTA PRÍRODNÝCH VIED UNIVERZITA MATEJA BELA. Sieťové a vzdialenostné analýzy. Diplomová práca

ARMA modely čast 2: moving average modely (MA)

24. Základné spôsoby zobrazovania priestoru do roviny

Lineárne kódy. Ján Karabáš. Kódovanie ZS 13/14 KM FPV UMB. J. Karabáš (FPV UMB) Lineárne kódy Kodo ZS 13/14 1 / 19

Pevné ložiská. Voľné ložiská

16. Základne rovinné útvary kružnica a kruh

Deliteľnosť a znaky deliteľnosti

Margita Vajsáblová. ρ priemetňa, s smer premietania. Súradnicová sústava (O, x, y, z ) (O a, x a, y a, z a )

2. prednáška. Teória množín I. množina operácie nad množinami množinová algebra mohutnosť a enumerácia karteziánsky súčin

Kontrolné otázky na kvíz z jednotiek fyzikálnych veličín. Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť.

Základy metodológie vedy I. 9. prednáška

Motivácia pojmu derivácia

Odporníky. 1. Príklad1. TESLA TR

1 Prevod miestneho stredného slnečného času LMT 1 na iný miestny stredný slnečný čas LMT 2

LR(0) syntaktické analyzátory. doc. RNDr. Ľubomír Dedera

1 Úvod Predhovor Sylaby a literatúra Základné označenia... 3

Metódy vol nej optimalizácie

1. Dátové štruktúry pre geometrické algoritmy

23. Zhodné zobrazenia

Numerické metódy matematiky I

Rozsah hodnotenia a spôsob výpočtu energetickej účinnosti rozvodu tepla

Úvod do lineárnej algebry

FUNKCIE N REÁLNYCH PREMENNÝCH

stereometria - študuje geometrické útvary v priestore.

ALGORITMICKÁ TEÓRIA GRAFOV

Goniometrické funkcie

Kódovanie a dekódovanie

VLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR. Michal Zajac. 3 T b 1 = T b 2 = = = 2b

ZÁKLADNÉ GEOMETRICKÉ TELESÁ. Hranolová plocha Hranolový priestor Hranol

Aproximačné algoritmy. (7. októbra 2010) DRAFT

RIEŠENIE WHEATSONOVHO MOSTÍKA

Definícia parciálna derivácia funkcie podľa premennej x. Definícia parciálna derivácia funkcie podľa premennej y. Ak existuje limita.

Obvod a obsah rovinných útvarov

STRIEDAVÝ PRÚD - PRÍKLADY

Obsah. 1.1 Reálne čísla a ich základné vlastnosti Komplexné čísla... 8

u R Pasívne prvky R, L, C v obvode striedavého prúdu Činný odpor R Napätie zdroja sa rovná úbytku napätia na činnom odpore.

PREHĽAD ZÁKLADNÝCH VZORCOV A VZŤAHOV ZO STREDOŠKOLSKEJ MATEMATIKY. Pomôcka pre prípravný kurz

KATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY Strojnícka fakulta, Žilinská Univerzita

1 Polynómy a racionálne funkcie Základy Polynómy Cvičenia Racionálne funkcie... 17

HASLIM112V, HASLIM123V, HASLIM136V HASLIM112Z, HASLIM123Z, HASLIM136Z HASLIM112S, HASLIM123S, HASLIM136S

Nelineárne optimalizačné modely a metódy

Odťahy spalín - všeobecne

SK skmo.sk. 66. ročník Matematickej olympiády 2016/2017 Riešenia úloh domáceho kola kategórie B

1-MAT-220 Algebra februára 2012

DESKRIPTÍVNA GEOMETRIA

Príklady na cvičenia ADS I.

9. kapitola Boolove funkcie a logické obvody

Reálna funkcia reálnej premennej

MATEMATIKA I ZBIERKA ÚLOH

MATEMATIKA I. Doc. RNDr. Michal Šabo, CSc

Katolícka univerzita v Ružomberku, Pedagogická fakulta TEÓRIA GRAFOV. ( História matematiky referát ) Mária Házyová. M I Nv

3. kapitola. Axiomatická formulácia modálnej logiky Vzťah medzi syntaxou a sémantikou. priesvitka 1

Podnikateľ 90 Mobilný telefón Cena 95 % 50 % 25 %

množiny F G = {t1, t2,, tn} T a pre ľubovoľný valec C so základňou B1, B2,, Bn v bodoch t1, t2,, tn, takou, že pre t G - F je Bt = E, platí PF(C) = PG

Transcript:

Algoritmy teórie grafov

Hľadanie minimálnej kostry grafu Kostra grafu taký strom grafu G = [U, H], pre ktorého podrgaf G = [U, H ] platí U = U a H H (faktor grafu). Kostra grafu každý súvislý graf má kostru. Minimálna kostra grafu taká kostra grafu, v ktorej je súčet ohodnotení hrán kostry minimálny. 2

Hľadanie minimálnej kostry grafu Predpoklad graf s ohodnotenými hranami k ij Cieľ nájsť takú kostru grafu, pre ktorú je súčet ohodnotení jej hrán minimálny Aplikácie budovanie elektrickej, resp. komunikačnej siete. Príklad vytvoriť kábelové spojenie medzi obcami tak, aby existovalo spojenie medzi všetkými obcami a celková dĺžka použitého kábelu by bolo minimálna. 3

Hľadanie minimálnej kostry grafu Počet kostier grafu Počet kostier grafu neplatí žiadne jednoduché univerzálne pravidlo. Špeciálne prípady: Počet kostier úplného grafu Cayleyho formula: určiť počet stromov na n vrcholoch - teda počet kostier grafu: Pre každé n 3 je počet stromov (kostier) na daných n vrcholoch rovný n n-2. Počet kostier kružnice (cyklu) počet kostier grafu je rovný V. Počet kostier stromu má práve jednu kostru (samotný graf je kostrou). 4

Hľadanie minimálnej kostry grafu Spôsoby riešenia: riešenie úlohy lineárneho programovania, špeciálne algoritmy: Kruskalov algoritmus (1956) na báze Borůvkovho algoritmu (1926) Primov algoritmus (1957) - Jarníkov algoritmus Chu-Liu-Edmondsov algoritmus (1965, 1967) 5

Hľadanie minimálnej kostry grafu Formulácia úlohy LP Predpoklady: n počet všetkých uzlov C ={c ij } matica priamych vzdialeností medzi i- tým a j-tym uzlom, pričom platí: c, ak existuje priama cesta medzi i-tým a j-tym uzlom, ij cij = 0, ak i = j, +, ak neexistuje priama cesta medzi i-týma j-tym uzlom. 6

Hľadanie minimálnej kostry grafu Formulácia úlohy LP Premenné: x ij {0,1}, i,j = 1, 2,..., n - hodnota 1, ak existuje spojenie medzi i-tým a j- tym vrcholom y ij 0, (n-1, i,j = 1, 2,..., n - reprezentujú počet použití príslušnej cesty a zabezpečujú, aby existovala súvislá trasa od príslušného uzla k prvému uzlu 7

Hľadanie minimálnej kostry grafu Formulácia úlohy LP f ( x y) n, = c x min i= 1 j= 1 n j= 2 n j= 1 n n 1 j ij = 0 ij x = 1, i = 2,3,... n ij n y y = 1, i = 2,3,... n 1 ij j= 1 j= 2 ji ij ( ) { } 0 y n 1 x, i, j = 1, 2,... n x 0,1, i, j = 1,2,... n ij x ij 8

Hľadanie minimálnej kostry grafu Kruskalov algoritmus Kruskalov algoritmus najskôr zoradí hrany podľa ich ohodnotenia (od najmenšieho vzostupne) a následne pridáva hrany do grafu tak, aby nevznikol žiadny cyklus. Výsledná kostra grafu G (n uzlov) musí obsahovať n-1 hrán a nesmie obsahovať cyklus. Každý podgraf musí byť acyklický. Najväčší problém - testovanie acyklickosti. 9

Hľadanie minimálnej kostry grafu Kruskalov algoritmus 1. Zoradíme hrany podľa ich ohodnotenia (od najmenšieho vzostupne). Vyberieme z grafu G dve hrany s minimálnym ohodnotením k ij a zaradíme ich do výslednej kostry. 2. Vyberieme ďalšie hrany s najnižším ohodnotením, ktoré netvoria s už vybranými cyklus (kružnicu). 3. Krok 2 opakujeme až po vybranie n 1 hrán. 10

Hľadanie minimálnej kostry grafu Primov algoritmus Princíp konštruuje kostru postupným priberaním nových vrcholov do kostry. Začína s prázdnou kostrou tak, že z grafu vyberie ľubovoľný vrchol u i podgraf G 1. V každom kroku algoritmu vyberá hrany do kostry, ktoré spolu tvoria jeden strom, pričom zvyšné vrcholy sú navzájom izolované. Do minimálnej kostry sa vyberá hrana s minimálnym ohodnotením, ktorá je z hrán vychádzajúcich z vrcholu u i. Vznikne podgraf, ktorý obsahuje vrchol u i, minimálnu hranu a s ňou ďalší incidentný vrchol podgraf G 2 (podgraf G i ). Podgraf G i+1 sa vytvorí výberom hrany s najmenším ohodnotením vychádzajúcou z podgrafu G i a končiacou mimo neho. Pri konečných grafoch tento postup skončí pri n vrcholovom grafe po n krokoch. Výsledný podgraf je minimálna kostra grafu G. 11

Hľadanie minimálnej kostry grafu Primov algoritmus Neprehľadáva systematicky všetky kostry grafu. Začína v ľubovoľnom vrchole a buduje strom. Najvyššiu prioritu majú hrany s najnižším ohodnotením. 12

Hľadanie minimálnej kostry grafu Primov algoritmus 1. Vyberieme ľubovoľný východiskový vrchol. 2. Vyberieme hranu s najnižším ohodnotením idúcou z východiskového vrcholu a zostrojíme kostru K1. 3. Prechádzame všetky vrcholy v kostre a pridáme vždy hranu s najnižším ohodnotením vychádzajúcu z niektorého z vrcholov. Ak by mala vzniknúť kružnica, hranu preskočíme. 13

Hľadanie minimálnej kostry grafu Primov algoritmus Algoritmus: Množina vrcholov U rozdelená na podmnožinu U 1 (množina vybraných vrcholov) a U 2 (množina nevybraných vrcholov). Množina H 1 označuje množinu vybraných hrán. 1. Inicializácia: súvislý ohodnotený graf G = [U, H]. Položíme U 2 = U a U 1 =. Nech U 1 = {u i }, kde u i je ľubovoľný vrchol z U, H 1 =. 2. Ak U 1 = U, koniec. Výstup: G(U 1,H 1 ) je minimálna kostra grafu. 3. Výber hrany (u i,u j ) z H s minimálnym ohodnotením tak, že u i je U 1 a u j nie je z U 1. 4. Pridanie u j do U 1 a (u i,u j ) do H 1. 5. Návrat na krok 2. 14

Hľadanie minimálnej kostry grafu Primov algoritmus maticová varianta Množina vrcholov U rozdelená na podmnožinu U 1 (množina vybraných vrcholov) a U 2 (množina nevybraných vrcholov). 1. Položíme U 2 = U a U 1 =. Vyberieme ľubovoľný vrchol u 0 a zaradíme ho do U 1 U 2 = U 2 - {u 0 } a U 1 = {u 0 }. 2. Vyberieme hranu s jedným vrcholom v množine U 1 a druhým v množine U 2 s minimálnym ohodnotením: min ij hij ( ui U1, u j U 2 ) k = k pq U 2 = U 2 - {u q } a U 1 = U 1 {u q }. 3. Ak je U 2 =, algoritmus končí nájdením minimálnej kostry grafu. 15

Hľadanie najkratšej cesty Predpoklad graf s ohodnotenými hranami k ij Cieľ nájsť takú cestu v grafe, pre ktorú je súčet ohodnotení jej hrán minimálny 16

Hľadanie najkratšej cesty úloha lineárneho programovania špeciálny prípad priraďovacieho problému algoritmy na báze teórie grafov Ford - Fulkersonov Dantzigov Dijkstrov Tabourierov algoritmy na základe matíc susednosti stromy minimálnych vzdialeností operácia minimálneho sčítania Floydov algoritmus 17

Hľadanie najkratšej cesty Predpoklady: n počet všetkých uzlov C ={c ij } matica priamych vzdialeností medzi i- tým a j-tym uzlom, pričom platí: c, ak existuje priama cesta medzi i-tým a j-tym uzlom, ij cij = 0, ak i = j, +, ak neexistuje priama cesta medzi i-týma j-tym uzlom. 18

Hľadanie najkratšej cesty Premenné: x ij {0,1}, i,j = 1, 2,..., n -hodnota 1, ak existuje spojenie medzi i-tým a j-tym vrcholom Množiny: Formulácia úlohy LP množiny P j a R i, i, j = 1, 2,...n, obsahujúce indexy vrcholov, do ktorých (množina P j ), príp. z ktorých (množina R i ) existuje priama cesta: { { 1,2,... }/ 0 } P = p n c c j pj pj { { 1,2,... }/ 0 } R = r n c c i ir ir 19

f ( x) Hľadanie najkratšej cesty Formulácia úlohy LP n n = c x 1+ x = n j min ij ij i= 1 j= 1 ij i P k R x = x j = 2,3,... n 1 j = x + 1 n jk i1 1k i P1 k R1 xin nk i P k R { } x 0,1 i, j = 1, 2,... n ij x { { } } { } P = p 1,2,... n / c 0 c, j = 1,2,... n j pj pj { } R = r 1,2,... n / c 0 c, i = 1,2,... n i ir ir 20

Hľadanie najkratšej cesty Dijkstrov algoritmus 1. Začiatočný vrchol u r, kde v r = 0. 2. Zápis vzdialeností pre priame cesty z vrcholu u r do ostatných vrcholov v sieti d j, ak neexistuje, potom M. 3. Min d jk, označíme ju * a zapíšeme do stĺpca min j označenie príslušného stĺpca. Do riadka D zapíšeme hodnotu d jk. 4. Ohodnotíme vrcholy, do ktorých vedie priama cesta z vrcholu u jk, pričom aktualizujeme hodnoty na základe vzťahu: ak platí d jk + c jk,j < d j, potom d j nahradené d jk + c jk,j ináč ostáva d j 5. Najkratšia cesta do daného vrcholu je v j = v π + c πj 6. Návrat na 3. 21

Hľadanie najkratšej cesty Dantzigov algoritmus 1. Pre ľubovoľné u i položíme v i = 0. 2. Určíme pre i a j v r = min(v i + c ij ) hranu, ktorá tvorí minimálne spojenie, výrazne označíme a z celej tabuľky vylúčime všetky ostatné hrany, ktoré smerujú do uzla u r. 3. Podľa bodu 2 pokračujeme, kým neohodnotíme všetky vrcholy v sieti, t. j. kým nevypočítame aj hodnotu v n. 4.Hodnota v n udáva dĺžku najkratšej cesty z východiskového vrcholu do vrcholu u n. 22

Hľadanie najkratšej cesty Floydov algoritmus 1. k = 0, zápis D k = {d ijk } do tabuľky 2. k = k + 1, výpočet hodnôt d ij k 3. Opakujeme krok 2, pokiaľ k n. 4. Matica K = {k ij } : ak d ijn = d ij 0 k ij = 0 ak i = j k ij = - ináč najvyššia iterácia k, pri ktorej je v príslušnom poli * označujúca zmenu hodnoty d ij k 5. θ ik + θ Kj d ik + d Kj 23

Hľadanie najkratšej cesty Operácia minimálneho sčítania Počet iterácií s: n 1 2 s 1. Matica susednosti D 0, k = 1. 2. Matica D k, prvky pre k na základe vzťahu d ijk = min (d k-1 ik + d k-1 kj ) 3. Ak platí k < s, k = k + 1 a návrat na krok 2. 24

Hľadanie cesty s najväčšou Predpoklady: pravdepodobnosťou n počet všetkých uzlov P ={p ij } matica pravdepodobností prechodu medzi i-tým a j-tym uzlom, pričom platí: resp. 0 p ij 1 0 < p ij 1 25

Hľadanie cesty s najväčšou pravdepodobnosťou Upravený Dantzigov algoritmus 1. Pre ľubovoľné u i položíme v i = 1. 2. Určíme pre i a j v r = max(v i. p ij ) hranu, ktorá tvorí spojenie, výrazne označíme a z celej tabuľky vylúčime všetky ostatné hrany, ktoré smerujú do uzla u r. 3. Podľa bodu 2 pokračujeme, kým neohodnotíme všetky vrcholy v sieti, t. j. kým nevypočítame aj hodnotu v n. 4.Hodnota v n udáva dĺžku cesty s najväčšou pravdepodobnosťou z východiskového vrcholu do vrcholu u n. 26

Hľadanie cesty s najväčšou pravdepodobnosťou Upravený algoritmus operácie minimálneho sčítania Počet iterácií s: n 1 2 s 1. Matica D 0 s prvkami: 1 prei = j 0 dij = pij pre hij H 0 ináč k = 1. 2. Matica D k, prvky pre k na základe vzťahu d k ij = max (d k-1 ik. d k-1 kj ) 3. Ak platí k < s, k = k + 1 a návrat na krok 2. k 27

Hľadanie cesty s minimálnou pravdepodobnosťou Upravený algoritmus operácie minimálneho sčítania Počet iterácií s: n 1 2 s 1. Matica D 0 s prvkami: 1 prei = j 0 dij = pij pre hij H 0 ináč k = 1. 2. Matica D k, prvky pre k na základe vzťahu d k ij = min (d k-1 ik. d k-1 kj ) 3. Ak platí k < s, k = k + 1 a návrat na krok 2. k 28

Hľadanie cesty s maximálnou Predpoklady: priepustnosťou n počet všetkých uzlov K ={k ij } matica priechodnosti medzi i-tým a j- tym vrcholom 29

Hľadanie cesty s maximálnou priepustnosťou Upravený Dantzigov algoritmus 1. Pre ľubovoľné u i položíme v i = max k 1j. 2. Určíme pre i a j v r = max{min(v i ; k ij )} hranu, ktorá tvorí spojenie, výrazne označíme a z celej tabuľky vylúčime všetky ostatné hrany, ktoré smerujú do uzla u r. 3. Podľa bodu 2 pokračujeme, kým neohodnotíme všetky vrcholy v sieti, t. j. kým nevypočítame aj hodnotu v n. 4.Hodnota v n udáva dĺžku cesty s najväčšou priepustnosťou z východiskového vrcholu do vrcholu u n. 30

Hľadanie cesty s maximálnou priepustnosťou Upravený algoritmus operácie minimálneho sčítania Počet iterácií s: n 1 2 s 1. Matica D 0 s prvkami: M prei = j 0 dij = kij pre hij H 0 ináč k = 1. 2. Matica D k, prvky pre k na základe vzťahu d k ij = max {min (d k-1 ik, d k-1 kj )} 3. Ak platí k < s, k = k + 1 a návrat na krok 2. k 31

Hľadanie cesty s minimálnou priepustnosťou Upravený algoritmus operácie minimálneho sčítania Počet iterácií s: n 1 2 s 1. Matica D 0 s prvkami: 1 prei = j 0 dij = pij pre hij H 0 ináč k = 1. 2. Matica D k, prvky pre k na základe vzťahu d k ij = min {max (d k-1 ik, d k-1 kj )} 3. Ak platí k < s, k = k + 1 a návrat na krok 2. k 32

Hľadanie najkratšej okružnej n počet vrcholov cesty ako ÚLP d ij (i, j = 1, 2,..., n) najkratšie vzdialenosti medzi jednotlivými vrcholmi x ij bivalentné premenné 33

Hľadanie najkratšej okružnej cesty ako ÚLP f ( x y) n, = d x min i= 1 j= 1 n j= 1 n i= 1 n ij x = 1, i = 1,2,... n, i j ij x = 1, j = 1,2,... n, i j ij y + y nx n 1 i = 2,3,... n j = 2, 3,... n i j { } ij i j ij x 0,1, i, j = 1,2,... n ij 34

Hľadanie najkratšej okružnej cesty Algoritmus najbližšieho suseda 1. k = 1, I = {1, 2,..., n}, i = i 1 = 1 a J = I {i 1 }= {2, 3,..., n}. 2. Ak k = n, prechod ku kroku 3. ak k < n, nájdeme v i-tom riadku matice C v množine J indexov najmenší prvok (označíme ako q), t. j. pre c iq C min q J { c iq } k = k + 1, i = i k = j a J = J {j}. opakovanie kroku 2. 3. i n+1 = 1, riešenie je dané postupnosťou uzlov i 1, i 2,..., i n, i n+1. 35

Hľadanie najkratšej okružnej cesty Algoritmus najvýhodnejšieho suseda 1. Výpočet matice frekvencií E s prvkami pre úplnú sieť a) nesymetrickú n n b) symetrickú ( ) e = n 1. d d d d ij ij ik qj ji k= 1 q= 1 ( ) e = n 2. d d d ij ij ik qj k= 1 q= 1 n 2. k = 1, I = {1, 2,..., n}, i = i 1 = 1 a J = I {i 1 }= {2, 3,..., n}. 3. Ak k = n, prechod ku kroku 4. ak k < n, nájdeme v i-tom riadku matice E v množine J indexov najmenší prvok (označíme ako q), t. j. min e iq E, pre q J k = k + 1, i = i k = j a J = J {j}, opakovanie kroku 3. 4. i n+1 = 1, riešenie je dané postupnosťou uzlov i 1, i 2,..., i n, i n+1. n k j q i 36

Hľadanie najkratšej okružnej cesty Littleho metóda Optimalizačná metóda hľadá optimálne riešenie Metóda patrí do skupiny metód vetiev a hraníc Kombinatorická metóda preskúmava každé riešenie, ktorých je n! 37

Hľadanie najkratšej okružnej cesty Littleho metóda Littleho metóda patrí do skupiny metód vetiev a hraníc. Ak existuje n miest, cez ktoré má prejsť obchodný cestujúci a ak sú všetky mestá navzájom spojené komunikáciami (kompletný graf), potom existuje n! rôznych okružných ciest. 38

Hľadanie najkratšej okružnej cesty Littleho metóda algoritmus (1) 1. Redukcia matice vzdialeností. Od každej definovanej vzdialenosti v každom riadku odpočítame najmenšiu vzdialenosť p i (i = 1, 2,..., m), čím dostaneme prvú redukciu matice. Ak v jednotlivých stĺpcoch sa nenachádza aspoň jedna nula, odpočítame najmenšiu redukovanú vzdialenosť v každom stĺpci q j (j = 1, 2,.., m). Dostaneme redukovanú maticu prepravných sadzieb (vzdialenosti medzi mestami) D (0) = (d (0) ij - p (0) i - q (0) j ) kde (0) charakterizuje krok výpočtu, - minimálna prepravná sadzba v i-tom riadku, p i q j - minimálna prepravná sadzba v j-tom stĺci v redukovanej matici. Suma minimálnych čísel pre riadky a stĺpce tvorí dolnú hranicu vzdialeností pri hľadanej najkratšej okružnej cesty S (0) = m (0) m p i + q j i= 1 j= 1 (0) 39

Hľadanie najkratšej okružnej cesty Littleho metóda algoritmus (2) 2. Matica D (0) obsahuje polia s nulovou prepravnou sadzbou. Ku každej z týchto 0 priradímečíslo ρ ij, ktoré sa rovná súčtu najnižších vzdialeností v danom riadku a stĺpci, ktorých indexy prislúchajú k danému nulovému poľu. Určíme ρ (1) rs = max ρ (1) ij Získame dve množiny okružných ciest: T (1) 1 podmnožina všetkých okružných ciest, ktorá neobsahuje cestu (r, s) T (1) 2 podmnožina všetkých okružných ciest, ktorá obsahuje cestu (r, s). Potom S (1) 1 = S (0) + ρ (1) rs je dolná hranica vzdialeností pre podmnožinu T (1) 1. Ak nepoužijeme cestu (r, s), musíme použiť cestu (r, j) j s a (i, s) i r. Minimálna vzdialenosť je však určená pomocou ρ (1) rs. 3. Zostavíme novú maticu D (0), v ktorej vyškrtneme r-tý riadok a s-tý stĺpec. Súčasne musíme uzavrieť cestu (s, r), resp. iné cesty, ktoré by viedli k uzavretiu cesty a teda k vzniku cyklov. 40

Hľadanie najkratšej okružnej cesty Littleho metóda algoritmus (3) 4. Vykonáme redukciu tejto matice, čím dostaneme novú maticu D (1) a p (1) i a q (1) j. Vypočítame m m (1) (1) (1) S = p i + q j a určíme dolnú hranicu pre podmnožinu T 2 (1) Vypočítamečísla ρ ij S 2 (1) = S (0) + S (1) pre nulové polia a určíme novú hodnotu ρ rs (2) = max ρ ij (2) i= 1 j= 1 Vo výpočte pokračujeme tým smerom, kde je redukcia (ρ alebo pi + q j ) menšia, resp. kde S 1 (1) a S 2 (1) sú menšie. Vrátime sa ku kroku 2 a pokračujeme vo výpočte krokom 3 a 4. 41

Hľadanie najkratšej okružnej cesty Littleho metóda algoritmus (4) 5. Ak pri vyškrtnutí riadku a stĺpca zostane iba jedna cesta, zaradíme ju do okružnej cesty. Zodpovedajúca hodnota sa pripočíta k S (n-1) a získa sa hodnota účelovej funkcie. 42

Hľadanie najkratšej okružnej cesty hranami siete Úloha čínskeho poštára cieľ - nájsť najkratšiu cestu z východiskového uzla u 1 pol všetkých hranách siete s návratom do východiskového uzla u 1 Eulerov cyklus - cyklus, ktorý prechádza po každej hrane grafu práve jedenkrát Eulerovský graf - obsahuje Eulerov cyklus, súvislý graf, párne stupne všetkých uzlov v grafe (z jedného uzla vychádza párny počet hrán (U + )) 43

Hľadanie najkratšej okružnej cesty hranami siete Algoritmus úlohy čínskeho poštára 1. Pre všetky dvojice uzlov z U - - najkratšie cesty cez všetky uzly. Nájdenie najkratšej vzdialenosti medzi všetkými vrcholmi v sieti - matica D = (d ij ) s rozmerom U -. U - najkratších vzdialeností d ij pre u i, u j z množiny U -. 2. Úloha minimálneho párovania na množine U - vzhľadom na hodnoty D = (d ij ). Zostavenie párov uzlov z množiny U -, pre ktoré je súčet dĺžok najkratších vzdialeností d ij minimálny. 3. K pôvodnému grafu pridáme umelé hrany, paralelné k hranám, ktoré zodpovedajú hranám najkratších ciest minimálneho párovania získaných. Umelé hrany majú rovnaké ohodnotenia ako hrany paralelné. Vzniknutý graf je eulerovský. 4. V upravenom grafe nájdeme Eulerov cyklus. Dĺžka cyklu je súčtom ohodnotení všetkých hrán v grafe (aj umelých). 44

Hľadanie maximálneho toku v Predpoklady: sieti n počet všetkých uzlov Premenné: x ij 0, i,j = 1, 2,..., n K ={k ij } matica maximálneho prietoku medzi i- tým a j-tym uzlom, pričom platí: x ij k ij 45

Hľadanie maximálneho toku v sieti Predpoklady: 1. V sieti sa prepravuje homogénny substrát. 2. Vrchol u 1 je vstupným vrcholom, vrchol u n výstupným vrcholom, ostatné vrcholy sú tranzitné. 3. Ohodnotenia k ij predstavujú maximálnu priepustnosť (kapacitu) z i-tého do j-teho vrcholu. 4. Tok po hrane od u i do u j je označený x ij, opačným smerom x ji, pričom x ij = - x ji. 5. Platí x ij k ij. 6. Ak platí x ij = k ij, ide o nasýtenú hranu, ak platí x ij < k ij, ide o nenasýtenú hranu, rozdiel k ij - x ij je nevyužitá kapacita hrany. 7. Platí: x1 > 0; x < 0; x x = 0 ( z 1, n) j ni zj iz j i j i 46

Hľadanie maximálneho toku v sieti Formulácia úlohy ÚLP n ( x) 1 j j1 n f = x x j= 1 j= 1 n ij j= 1 j= 1 max n x = x j = 2,3,... n 1 ji 0 x k i, j = 1,2,... n ij ij 47

Hľadanie maximálneho toku v sieti Algoritmus pre rovinné siete 1. Nájdenie najsevernejšej (najvrchnejšej) cesty v sieti tak, že sú vybrané hrany najviac vľavo od hrany, ktorá do vrcholu vstúpila. Nájdená cesta má vlastnosť, že ostávajúce rany a vrcholy ležia vo vnútri plochy v rovine ohraničenej nájdenou cestou. Ak takáto cesta neexistuje, výpočet končí. 2. Priepustnosť (tok) nájdenej cesty je rovná minimálnej kapacite z kapacít hrán tejto cesty, označenie k(c). 3. Redukcia siete tak, že na nájdenej ceste odstránime hrany s minimálnou kapacitou hrany a kapacity ostatných ostávajúcich hrán na tejto ceste sú znížené o túto minimálnu hodnotu. 4. Návrat na 1. Celková hodnota maximálneho toku: súčet tokov jednotlivých ciest 48

Hľadanie maximálneho toku v sieti Všeobecný (Ford-Fulkersonov) algoritmus Tok F nazveme plným (kompletným), ak každá cesta medzi vstupným a výstupným vrcholom obsahuje aspoň jednu nasýtenú hranu. Ak tok nie je plný, hľadáme nenasýtenú cestu, ktorej priepustnosť určuje priepustnosť toku v k-tom kroku: x k = min(k ij x ij ) i,j Celkový tok F v k+1-om kroku je F k+1 = F k + x k Hodnoty jednotlivých hrán: x ij k+1 = x ijk + x k pre nenasýtené hrany na ceste v smere od vstupu k výstupu x ij k+1 = x ijk - x k pre nenasýtené hrany na ceste v smere od výstupu k vstupu x ij k+1 = x ijk pre ostatné hrany 49

Hľadanie maximálneho toku v sieti Všeobecný (Ford-Fulkersonov) algoritmus (značkovací) 1. Označenie vstupného vrcholu indexom 0. 2. Označenie každého susedného vrcholu j už označeného vrcholu i na základe pravidiel: hrana h ij je nenasýtená (x ij < k ij ), potom označenie vrcholu j symbolom +i, existuje kladný tok z vrcholu j do vrcholu i (x ji > 0), potom označenie vrcholu j symbolom -i, 3. Ak je možné podľa kroku 2 označiť výstupný vrchol, existuje nenasýtená cesta medzi vstupným a výstupným vrcholom určená postupnosťou symbolov jednotlivých uzlov, ak nie krok 5. Tok na tejto ceste možno zväčšiť: x ij k+1 = x ijk + x k pre nenasýtené hrany na ceste v smere od vstupu k výstupu x ij k+1 = x ijk - x k pre nenasýtené hrany na ceste v smere od výstupu k vstupu x ij k+1 = x ijk pre ostatné hrany 4. Návrat na krok 2. 5. Koniec, nájdený tok je maximálny. 50

Hľadanie minimálneho toku v sieti cestná sieť - sieť, kde vrcholy u i a u j sú spojené hranami h ij, ktoré sú ohodnotené hodnotami minimálnymi požadovanými tokmi k ij cieľ - nájsť cestu medzi začiatočným vrcholom u 1 a koncovým vrcholom u n s minimálnym počtom prepravných prostriedkov 51

Hľadanie minimálneho toku v Predpoklady: sieti 1. V sieti sa prepravuje homogénny substrát. 2. Vrchol u 1 je vstupným vrcholom, vrchol u n výstupným vrcholom, ostatné vrcholy sú tranzitné. 3. Ohodnotenia k ij predstavujú minimálny požadovaný tok (kapacitu) z i-tého do j-teho vrcholu. 4. Tok po hrane od u i do u j je označený x ij, opačným smerom x ji, pričom x ij = - x ji. 5. Platí x ij k ij. 6. Transformácia úlohy na úlohu hľadania maximálneho toku. 52

Hľadanie minimálneho toku v sieti Algoritmus na nájdenie minimálneho toku v sieti 1. Nájdenie prípustného toku P tak, aby na každej hrane platil vzťah (nie je problém s hľadaním, pretože neexistujú horné ohraničenia hrán) x ijp k ij 2. Určenie nových kapacít k ij = x ijp k ij. 3. Na základe kapacít k ij nájdenie hodnoty maximálneho toku na základe príslušných algoritmov. Hodnota maximálneho toku nech je M. Potom pre toky na každej hrane musí platiť x ijm k ij 4. Hodnota minimálneho toku v sieti F min = P M a pre toky každej hrany platí x ij = x ijp x ijm x ijp k ij = k ij 53