Úlohy teorie grafů

  • Upload
    bambi

  • View
    56

  • Download
    2

Embed Size (px)

DESCRIPTION

Úlohy teorie grafů. RNDr. Jiří Dvořák, CSc. dvorak @uai.fme.vutbr.cz. Orientovaný graf. G = ( V , E ) V … množina uzlů (vrcholů) E … množina hran, E  V 2 = V  V. Neorientovaný a smíšený graf. G = ( V , E ) Neorientovaný graf : - PowerPoint PPT Presentation

Citation preview

  • lohy teorie grafRNDr. Ji Dvok, CSc.

    [email protected]

    Teorie systm a operan analza

  • Orientovan grafG = (V, E)V mnoina uzl (vrchol)E mnoina hran, E V 2 = V V

    TSOA: lohy teorie graf

  • Neorientovan a smen grafG = (V, E) Neorientovan graf:mnoina vech dvouprvkovch podmnoin mnoiny VSmen graf:Pevod na orientovan graf:Kadou neorientovanou hranu nahradme dvojic opan orientovanch hran.

    TSOA: lohy teorie graf

  • Sled a cestaOrientovan sled je posloupnost uzl propojench hranami se stejnou orientac. Tedy posloupnost {i1 , i2 , , ik }, kde ij V, tvo orientovan sled, jestlie (ij , ij+1) E pro vechna j = 1, , k 1.Sled je posloupnost uzl propojen hranami bez ohledu na jejich orientaci.Tah je sled, ve kterm se neopakuje dn hrana. Cesta je sled, ve kterm se neopakuje dn uzel.Orientovan tah (orientovan cesta) je tah (cesta), kde vechny hrany maj shodnou orientaci.Graf se nazv souvisl, jestlie mezi kadmi jeho dvma uzly existuje sled. Orientovan graf se nazv siln souvisl, jestlie z kadho uzlu existuj orientovan sledy do vech ostatnch uzl.

    TSOA: lohy teorie graf

  • Krunice a stromKrunice je souvisl neorientovan graf, jeho kad uzel inciduje prv se dvma hranami.Strom je souvisl neorientovan graf, kter neobsahuje dnou krunici.

    TSOA: lohy teorie graf

  • Cyklus a acyklick grafCyklus je souvisl orientovan graf, jeho kad uzel m prv jednu vstupn a jednu vstupn hranu.Graf je acyklick prv tehdy, kdy lze jeho uzly oslovat tak, e pro kadou hranu (i, j) plat, e i < j (topologick oslovn).1234567Acyklick graf je souvisl orientovan graf, kter neobsahuje dn cyklus.

    TSOA: lohy teorie graf

  • Algoritmus topologickho oslovn1.Polome G1 = G a k = 1.2.V grafu Gk najdeme uzel, kter nem dn vstupn hrany a pidlme mu slo k. Pokud takov uzel neexistuje, znamen to, e graf G nen acyklick a postup kon.3.Z grafu Gk vytvome graf Gk+1 tak, e z nj vypustme uzel s slem k a vechny hrany, kter z tohoto uzlu vystupuj.4.Je-li graf Gk+1 neprzdn, polome k = k+1 a vrtme se k bodu 2. V opanm ppad postup kon (vechny uzly se podailo topologicky oslovat a graf G je tedy acyklick).

    TSOA: lohy teorie graf

  • Ohodnocen grafUzlov ohodnocen:a : V RPklady interpretace:doba, zisk, nklady, kapacita, spolehlivost,

    Hranov ohodnocen:c : E RPklady interpretace:dlka, doba, zisk, nklady, kapacita, spolehlivost,

    TSOA: lohy teorie graf

  • Tok v sti od zdroje ke spotebiiMjme orientovan graf G = (V, E), uzly z, s V, z s a nezporn hranov ohodnocen c, piem z je zdroj, s je spotebi a c(i, j) = cij je kapacita hrany (i, j).Tok od zdroje ke spotebii je libovoln hranov ohodnocen x splujc podmnky:0 x(i, j) c(i, j) pro v. (i, j) E,

    Velikost toku =

    TSOA: lohy teorie graf

  • loha nalezen maximlnho toku od zdroje ke spotebiiMaximalizovat

    za podmnek

    Speciln metoda een: Ford - Fulkersonv algoritmus

    TSOA: lohy teorie graf

  • ez v stiMjme orientovan graf G = (V, E), uzly z, s V, z s, piem z je zdroj a s je spotebi. Nech Vs a Vz jsou mnoiny uzl takov, e z Vz , s Vs , Vz Vs = , Vz Vs = V.ezem v sti nazveme mnoinu hran

    Kapacita ezu je rovna soutu kapacit jeho hran:

    Ford - Fulkersonova vta: Maximln tok od zdroje ke spotebii se rovn kapacit minimlnho ezu, tj.

    TSOA: lohy teorie graf

  • Ford - Fulkersonv algoritmusAlgoritmus vychz z njakho ppustnho toku x. I. Hledn cesty ze zdroje do spotebie.Hledme neorientovanou cestu ze zdroje do spotebie, na n by bylo mono zvtit tok, a pitom provdme oznaovn uzl. Je-li mono tok na hran (i, j) resp. na hran (j, i) zvtit resp. zmenit o hodnotu j , ozname uzel j dvojic (+i , j ) resp. (i , j ) . Jestlie se poda ve uvedenou cestu najt, pokraujeme etapou II. V opanm ppad je aktuln tok maximln a postup kon. II. Zvten toku.Na cest nalezen v pedchoz etap provedeme zvten toku a vracme se na etapu I.

    TSOA: lohy teorie graf

  • I. Hledn cestyNa potku jsou vechny uzly neoznaeny.1.Uzel z ozname dvojic (+z, ) a povaujeme jej za oteven.2.Vybereme libovoln oteven oznaen uzel i, uzaveme jej a provedeme nsledujc operace:Kad neoznaen uzel j, kter je bezprostednm nslednkem uzlu i a pro nj je xij < cij , oteveme a ozname jej dvojic (+i , j ), kde j = min {i , cij xij}.Kad neoznaen uzel j, kter je bezprostednm pedchdcem uzlu i a pro nj je xji > 0, oteveme a ozname jej dvojic (i , j ), kde j = min {i , xji}.3.Opakujeme krok 2 a do oznaen uzlu s (pak pechzme na krok 4) nebo do vyerpn vech oznaench otevench uzl (pak je tok x maximln, piem mnoiny oznaench a neoznaench uzl uruj odpovdajc minimln ez).

    TSOA: lohy teorie graf

  • II. Zvten toku4.Polome j = s, = s .5.Je-li uzel j oznaen dvojic (+i , j ), pak zvtme tok hranou (i, j) o hodnotu .Je-li uzel j oznaen dvojic (i , j ), pak zmenme tok hranou (j, i) o hodnotu .6.Je-li i z, polome j = i a vracme se na krok 5. V opanm ppad je zvten toku ukoneno. Zrume oznaen vech uzl a vracme se na krok 1.

    TSOA: lohy teorie graf

  • Dlka cesty a vzdlenost v orientovanm hranov ohodnocenm grafuDlka cesty je dna soutem dlek hran, tvocch cestu.(Orientovan) vzdlenost z uzlu i do uzlu j:d(i, j) =dlka nejkrat (orientovan) cesty z uzlu i do uzlu j.Jestlie neexistuje (orientovan) cesta z uzlu i do uzlu j, klademe d(i, j) = .Pozn.:V dalm textu budeme pod pojmy vzdlenost a cesta chpat orientovanou vzdlenost a orientovanou cestu.

    TSOA: lohy teorie graf

  • loha nalezen nejkrat cesty Minimalizovat

    za podmnekkde cij je dlka hrany (i, j). Optimln een (pokud existuje) obsahuje hodnoty xij = 1, jestlie hrana (i, j) le na nejkrat cest, a xij = 0 v opanm ppad.

    TSOA: lohy teorie graf

  • Vlastnosti vzdlenosti v grafuJestlie graf neobsahuje cykly zporn dlky, pak:Pro vechny trojice uzl i, j, k plat trojhelnkov nerovnostd(i, j) d(i, k) + d(k, j)Pro kadou dvojici rznch vrchol i, j plat Bellmanovy rovnice

    TSOA: lohy teorie graf

  • Speciln algoritmy pro hledn nejkratch cestPedpokldejme, e graf neobsahuje cykly zporn dlky. Pak je mono pout speciln algoritmy pro hledn nejkratch cest, kter jsou zaloeny na pedchzejcch vlastnostech vzdlenosti v grafu (tj. na trojhelnkov nerovnosti resp. na Bellmanovch rovnicch). Dle uvedeme algoritmy, kter jsou schopny najt nejkrat cesty (pokud existuj) z njakho uzlu s do vech ostatnch uzl grafu.Pedpokldejme, e uzly grafu jsou oslovny pirozenmi sly. Ozname symbolem ps(i) bezprostednho pedchdce uzlu i na nejkrat cest z uzlu s do uzlu i. daje ps(i) uruj nejkrat cesty z uzlu s do libovolnho uzlu grafu. Je-li ps(i) = 1, znamen to, e cesta z uzlu s do uzlu i neexistuje. Pro uzel s klademe ps(s) = 0.

    TSOA: lohy teorie graf

  • Algoritmus pro libovoln ohodnocen hran1.Polo d(s, s) = 0, ps(s) = 0 a pro kad uzel i s polo d(s, i) = , ps(i) = 1.2.Prochzej hrany grafu v libovolnm poad. Jestlie pro hranu (i, j) E je d(s, j) > d(s, i) + c(i, j),pak polod(s, j) = d(s, i) + c(i, j), ps(j) = i.3.Jestlie pro vechny hrany (i, j) E ji plat, ed(s, j) d(s, i) + c(i, j),pak postup kon.

    TSOA: lohy teorie graf

  • Algoritmus pro nezporn ohodnocen hranOzname symbolem D mnoinu uzl, o nich vme, e hodnota d(s, k) je ji definitivn.1.Polo d(s, s) = 0, ps(s) = 0 a pro kad uzel i s polo d(s, i) = , ps(i) = 1. Dle polo D = {s}, k = s.2.Prozkoumej vechny hrany (k, j) E, pro n j D. Jestlied(s, j) > d(s, k) + c(k, j), pak polo d(s, j) = d(s, k) + c(k, j), ps(j) = k.3.Je-li D = V, pak konec (byly nalezeny cesty do vech vrchol). V opanm ppad najdi uzel k D takov, e d(s, k) = min {d(s, j) | j D}. 4.Je-li d(s, k) = , pak konec (dn dal vrchol ji nen dostupn z vrcholu s). V opanm ppad zaa vrchol k do mnoiny D a pokrauj krokem 2.

    TSOA: lohy teorie graf

  • Algoritmus pro acyklick grafPedpokldme, e uzly jsou oslovny topologicky sly od 1 do n. 1.Polo d(s, s) = 0, ps(s) = 0 a pro kad uzel i s polo d(s, i) = , ps(i) = 1.2.Pro j = s+1, , n prove :2.1Jestlie uzel j m njak bezprostedn pedchdce, pak polo

    2.2Jestlie d(s, j) < , pak polo ps(j) = i*, kde i* je takov, e d(s, j) = d(s, i*) + c(i*, j).

    TSOA: lohy teorie graf