Gráf-algoritmusok Legrövidebb utak

Hasonló dokumentumok
Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Gráfalgoritmusok ismétlés ősz

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Algoritmuselmélet 7. előadás

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Az optimális megoldást adó algoritmusok

24. MINIMÁLIS KÖLTSÉGŰ UTAK I.

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

Algoritmusok bonyolultsága

A számítástudomány alapjai

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Gráfok. Programozás II. előadás. Szénási Sándor.

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

23. SZÉLESSÉGI BEJÁRÁS

Gráfelméleti alapfogalmak

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

HAMILTON ÚT: minden csúcson PONTOSAN egyszer áthaladó út

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrás: (

Dijkstra algoritmusa

III. Gráfok. 1. Irányítatlan gráfok:

Adatszerkezetek II. 3. előadás

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

22. GRÁFOK ÁBRÁZOLÁSA

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfelméleti feladatok. c f

Neumann János Tehetséggondozó Program Gráfalgoritmusok II.

Sali Attila Budapest Műszaki és Gazdaságtudományi Egyetem. I. B. 137/b március 16.

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

HÁLÓZAT Maximális folyam, minimális vágás

angolul: greedy algorithms, románul: algoritmi greedy

Gráfelmélet jegyzet 2. előadás

Diszkrét matematika 2.C szakirány

Algoritmusok bonyolultsága

Diszkrét matematika 2. estis képzés

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Adatszerkezetek II. 1. előadás

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére

Algoritmuselmélet 2. előadás

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása

Algoritmuselmélet 18. előadás

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Hálózati folyamok. Tétel: A maximális folyam értéke megegyezik a minimális vágás értékével.

Gráf-algoritmusok ERŐS / GYENGE KÖTÉSEK

Társadalmi és gazdasági hálózatok modellezése

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Programozási módszertan. Mohó algoritmusok

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

Gráfok, definíciók. Minden irányítatlan G = (V,E) gráf olyan irányított gráfnak tekinthető, amelyre teljesül, hogy

2. Visszalépéses keresés

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

10. Gráf absztrakt adattípus, gráfok ábrázolása

Java programozási nyelv

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Diszkrét matematika 2.C szakirány

Operációkutatás vizsga

A gráffogalom fejlődése

Algoritmusok és adatszerkezetek 2.

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Építésikivitelezés-Vállalkozás / 2: Gráftechnikai alapfogalmak VÁLLALKOZÁS. javított háttöltés

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere

Elemi adatszerkezetek

Diszkrét matematika 2.C szakirány

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Hálózati Folyamok Alkalmazásai. Mályusz Levente BME Építéskivitelezési és Szervezési Tanszék

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Algoritmuselmélet 11. előadás

Programozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat

Intelligens Rendszerek Elmélete IRE 4/32/1

Közösség detektálás gráfokban

HEXAÉDEREK. 5. Hányféleképpen lehet kiolvasni Erdős Pál nevét, ha csak jobbra és lefelé haladhatunk?

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Diszkrét matematika 2.C szakirány

Algoritmusokfelülnézetből. 1. ELŐADÁS Sapientia-EMTE

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának feladatai. INFORMATIKA II. (programozás) kategória

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Algoritmusok és adatszerkezetek gyakorlat 07

Algoritmusok és adatszerkezetek I. 1. előadás

Diszkrét matematika 2.

Totális Unimodularitás és LP dualitás. Tapolcai János

Dinamikus programozás II.

Számítógép hálózatok, osztott rendszerek 2009

Diszkrét matematika 1. estis képzés

Diszkrét matematika 2. estis képzés

Gráfalgoritmusok 3 Néhány probléma modellezése gráfokkal 3 Alapfogalmak, jelölések 7 Gráfok ábrázolása 9 Bejárási stratégiák, szélességi bejárás 15

Diszkrét matematika 2.

Algoritmuselmélet zárthelyi (BSc képzés) április 24.

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

1. tétel - Gráfok alapfogalmai

Példa. Job shop ütemezés

Átírás:

https://www.cs.princeton.edu/~rs/algsds07/15shortestpaths.pdf Gráf-algoritmusok Legrövidebb utak Sapientia-EMTE 2017-18

Typesetting in TeX Két pont között, akkor van él, ha közéjük 1 2 3 4 eső szó szekvencia lehetne egy sor 20 Az élek súlya egy penalizáció érték, hogy mennyire lenne csúnya, ha a két pont közti szó szekvencia lenne egy sor Az 1-ből n-be vezető legkisebb penalizációja 21 út adja meg a legszebb tördelést n

Optimális út problémák Egy pontból induló legrövidebb utak KÖR (Viterbi) KÖR, NEGATÍV-ÉL (Dijkstra) KÖR, NEGATÍV-ÉL, NEGATÍV-KÖR (Bellman-Ford) Bármely pontpár közötti legrövidebb utak KÖR, NEGATÍV-ÉL, NEGATÍV-KÖR (Floyd) Egy pontból induló leghosszabb utak KÖR (PERT módszer)

Optimalitás alapelve A legrövidebb utak (lru) részútjai is legrövidebb utak. s: kiinduló pont Ha s-ből v-be tartó legrövidebb úton u az utolsó előtti állomás, akkor lru(s,v) = lru(s,u) + súly(u,v) Ha s a kezdőcsúcs, akkor bármely (u,v) élre fennáll, hogy lru(s,v) lru(s,u) + súly(u,v)

Az s pontból induló legrövidebb utak egy s gyökerű fát alkotnak

Fokozatos közelítés technikája Minden v csúcsra nyilvántartunk egy d[v] értéket, amely az s-ből v-be vezető per-pillanat legrövidebb út súlya. apa[v] a per-pillanat legrövidebb út utolsó előtti állomása Finomítás az (u,v) él mentén d[u]-ra alapozott javítás d[v] n. Mindhárom algoritmus élek menti finomítások sorozata, melyek révén a pontok d-értékei fokozatosan ezek lru-értékeihez konvergálnak.

Fokozatos közelítésre épülő DP algoritmusok (1) A v-be vezető legrövidebb út felépíthető a v beszomszédjaihoz vezető legrövidebb utakból, a megfelelő be-élek mentén való közelítések révén. Ha körmentes, akkor topologikus sorrend biztosítja, hogy minden pontot megelőznek a be-szomszédjai (VITERBI) Ha a gráfnak nincs negatív éle, akkor, a v-be vezető legrövidebb út felépíthető a v azon beszomszédjaihoz vezető legrövidebb utakból, amelyekhez kisebb a legrövidebb út. Hosszuk szerint növekvő sorrendben határozzuk meg a legrövidebb utakat (DIJKSTRA)

Fokozatos közelítésre épülő DP algoritmusok (2) d[s] = 0; d[v] = (minden többi pontra) Minden lépésben egy újabb pontot csatolunk a lru-fához; VITERBI A pontokat topo-sorrendben tekintjük; A kurrens pont d-értékét elkönyveljük lru-értéknek (csatoljuk), és finomítunk a ki-élei mentén. DIJKSTRA Minden lépésben a legkisebb d-értékű csatolatlan pontot csatoljuk (d-értékét elkönyveljük lru-értéknek), és finomítunk a ki-élei mentén. A kurrens pont lru-értékének elkönyvelése azon alapszik, hogy az előzőleg csatolt pontokra épülő finomítások garantáltan eredményezték már.

VITERBI 1 2 3 4 6 5 0 0 50 120 110 0 50 150 110 100 0 50 150 160 110 100 0 50 150 160 110 100 0 50 150 160 110 100

VITERBI SZÜRKE: topo-sorrend szerinti kurrens pont; SZÜRKE/FEKETE: garantált lru, és végleges apa értékek; FÉLKÖVÉR: kurrens lépésben frissült értékek.

VITERBI Az s pont topo-sorrendbeli indexe

The question of whether computers can think is like the question of whether submarines can swim. Do only what only you can do.

DIJKSTRA Minden lépésben a megnagyított szürke pont a csatolandó, azaz a legkisebb d- értékű ([ ]) még csatolatlan pont. A már csatolt pontok feketék. Ezek d- értéke már lru-értéknek számít. Az éppen csatolandó/csatolt pont ki-élei mentén finomítunk. Észrevehető, hogy elég csak olyan ki-élek mentén finomítani, amelyek még csatolatlan pontok fele mutatnak (ezek azok, amelyek a körív jelölte vágásban vannak; a vágás elválasztja a már csatolt pontok alkotta lru-fát a még csatolandó pontoktól).

FEHÉR/SZÜRKE: az lru-fához még csatolandó pontok; SZÜRKE: a kurrens lépésben csatolandó pont (legkisebb d-értékű csatolatlan pont); SZÜRKE/FEKETE: garantált lru, és végleges apa értékek; FÉLKÖVÉR: kurrens lépésben frissült értékek.

DIJKSTRA Akkor térít 0-t vissza, ha nincs több nem-végtelen d-értékű csatolandó pont.

Viterbi és Dijkstra váll-vállmellett minden i 1,n végezd u topo[i] u ki-szomszédjai száma u min_d_erteku_csatolatlan(d,n) minden j 1,szL[u][0] végezd u j-edik ki-szomszédja v szl[u][j] ha (d[u] + suly[u][v] < d[v]) akkor d[v] d[u] + suly[u][v] apa[v] u vége ha vége minden vége minden

BELLMAN-FORD (élek többszöri átjárása) Bár a direkt él 6-ba rövidebb mint 2-be, a negatív súly miatt, a 6-ba vezető lru az 1-2-6. (Dijkstra mellé fogna) Fekete ponttal és megvastagított éllel jelöltük az lru-fát. Újra és újra finomítunk az összes él mentén, ezek ()-ben megjelölt sorrendje szerint. 2 menet után beállnak az lru-értékek; A 3-dik menetben derül ez ki.

Megvastagítottuk azokat a finomításokat, amelyek lruértéket állítanak be.

BELLMAN-FORD Ha az n-edik menetben is lenne finomítás, akkor a gráfban van negatív kör.

BELLMAN-FORD (negatív kör) Minden további menetben a negatív kör menti pontokhoz az lru érték csökken a kör összsúlyával

BELLMAN-FORD-MORE

Szemléltető PÉLDA

Legrövidebb utak minden pontpár között FLOYD algoritmusa Dinamikus programozás A legfentebb {1,2,,k} köztes állomásokat tartalmazó lru-akból (d k [1..n][1..n]) felépítjük a legfentebb {1,2,,k,k+1} köztes állomásokat tartalmazókat (d k+1 [1..n][1..n]) d 0 [1..n][1..n] a súly-mátrix (egyetlen köztes állomást sem tartalmazó lru-ak) Észrevehető, hogy d k+1 -vel felülírható d k. A d tömb kezdetben a súly mátrixot (d 0 ) tartalmazza, majd frissítjük n-szer A k-adik lépésben d éppen a d k -t tartalmazza

FLOYD algoritmusa minden k 1,n végezd minden i 1,n végezd minden j 1,n végezd ha ( i k ÉS j k ) akkor ha (d[i][k] + d[k][j] < d[i][j]) akkor d[i][j] d[i][k] + d[k][j] vége ha vége ha vége minden vége minden vége minden

Azért írható felül d k a d k+1 -vel, mert a k. lépésben a k. oszlop és sor elemeire alapozva csak a többi elemet (i k ÉS j k) kell frissíteni. A d tömbben a lru-ak hosszai generálódnak. Ha egy (n+1)-edik menetben is történne finomítás, akkor ez negatív kört jelezne. Ha minden frissítéskor eltárolnánk egy bizonyos apa tömbbe a kurrens k-t (apa[i][j]=k), akkor ebből könnyen visszanyerhetők lennének maguk a legrövidebb utak is.

A KRITIKUS ÚT MÓDSZERE Egy körmentes irányított súlyozott gráfban, amelynek van egy kitüntetett forrás pontja (s) és egy kitüntetett nyelő pontja (t), kritikus útnak az s-ből t-be vezető leghosszabb utat nevezzük. Egy ilyen gráfot tevékenység gráfként is felfoghatunk. s: munkálatok elkezdésének momentuma t: munkálatok befejezésének momentuma élek: tevékenységek (súlyuk: a tevékenység időigénye) egy pont képviselte esemény akkor következik be, ha minden be-éle képviselte tevékenység befejeződött

VITERBI leghosszabb útra hangolva A kritikus út menti pontokra a megengedett késés 0. Ha késne valamelyik kritikus út menti tevékenység, akkor késne a teljes munkálat