Minimális költségű folyam-algoritmusok összehasonlítása

Hasonló dokumentumok
Hálózati folyamok és alkalmazásaik. Kovács Péter

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet

Döntéselőkészítés. I. előadás. Döntéselőkészítés. Előadó: Dr. Égertné dr. Molnár Éva. Informatika Tanszék A 602 szoba

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

Operációkutatás. Vaik Zsuzsanna. Budapest október 10. First Prev Next Last Go Back Full Screen Close Quit

Hálózati folyamok. A használt fogalmak definiálása

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

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

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Operációkutatás. 4. konzultáció: Szállítási feladat. A feladat LP modellje

Algoritmusok bonyolultsága

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Az optimális megoldást adó algoritmusok

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

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

A szimplex algoritmus

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Érzékenységvizsgálat

Név KP Blokk neve KP. Logisztika I. 6 LOG 12 Dr. Kovács Zoltán Logisztika II. 6 Logisztika Dr. Kovács Zoltán

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

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

ERŐSEN POLINOMIÁLIS PIVOT ALGORITMUSOK A MAXIMÁLIS FOLYAM FELADATRA. Prékopa András és Klafszky Emil munkássága előtt tisztelegve

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

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Optimumkeresés számítógépen

Kereső algoritmusok a diszkrét optimalizálás problémájához

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

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

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.

Opkut deníciók és tételek

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

Általános algoritmustervezési módszerek

A számítástudomány alapjai

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

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

11. Előadás. 1. Lineáris egyenlőség feltételek melletti minimalizálás

Algoritmusok és adatszerkezetek gyakorlat 07

Diszkrét Irányítások tervezése. Heurisztika Dr. Bécsi Tamás

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Heurisztikák BitTorrent hálózatok max-min méltányos sávszélesség-kiosztására

Kereső algoritmusok a diszkrét optimalizálás problémájához

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

2. Visszalépéses stratégia

Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése

Térinformatikai algoritmusok Elemi algoritmusok

Gráfalgoritmusok ismétlés ősz

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

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

Algoritmuselmélet 11. előadás

Nem-lineáris programozási feladatok

Vállalati modellek. Előadásvázlat. dr. Kovács László

Sztöchiometriai egyenletrendszerek minimális számú aktív változót tartalmazó megoldásainak meghatározása a P-gráf módszertan alkalmazásával

Számítógép és programozás 2

Operációkutatás példatár

A minimális költségűfolyam probléma megoldása hálózati szimplex-módszerrel

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Áttekintés LP és geometria Többcélú LP LP és egy dinamikus modell 2017/ Szegedi Tudományegyetem Informatikai Intézet

2017/ Szegedi Tudományegyetem Informatikai Intézet

Hidraulikus hálózatok robusztusságának növelése

Ü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

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Programozási módszertan. Mohó algoritmusok

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Összefoglalás és gyakorlás

MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Termeléstervezés és -irányítás Termelés és kapacitás tervezés Xpress-Mosel FICO Xpress Optimization Suite

Páros összehasonlítás mátrixokból számolt súlyvektorok Pareto-optimalitása

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

2. Visszalépéses keresés

A szimplex tábla. p. 1

22. GRÁFOK ÁBRÁZOLÁSA

Függvények növekedési korlátainak jellemzése

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

S Z Á L L Í T Á S I F E L A D A T

Konjugált gradiens módszer

Nemkonvex kvadratikus egyenlőtlenségrendszerek pontos dualitással

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

Algoritmuselmélet 2. előadás

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

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

1. Előadás Lineáris programozás

Amortizációs költségelemzés

angolul: greedy algorithms, románul: algoritmi greedy

Ütemezési modellek. Az ütemezési problémák osztályozása

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

Adatszerkezetek II. 1. előadás

Térinformatikai algoritmusok Elemi algoritmusok

Adatszerkezetek 2. Dr. Iványi Péter

Bevezetés az operációkutatásba A lineáris programozás alapjai

Numerikus módszerek 1.

értékel függvény: rátermettségi függvény (tness function)

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Átírás:

Minimális költségű folyam-algoritmusok összehasonlítása Király Zoltán¹, Kovács Péter² ¹ ELTE TTK Számítógéptudományi Tanszék, ELTE CNL kiraly@cs.elte.hu ² ELTE IK Algoritmusok és Alkalmazásaik Tanszék, ELTE CNL kpeter@inf.elte.hu XXVIII. Magyar Operációkutatási Konferencia Balatonőszöd, 2009. június 8-10.

Áttekintés 1 A minimális költségű folyam modell Definíció Alkalmazások 2 Célok 3 Implementáció és tesztelés LEMON Algoritmusok Tesztadatok, tesztelés paraméterei 4 Megoldási módszerek Negatív körök kiiktatása Duál algoritmusok Költségskálázó algoritmusok Hálózati szimplex algoritmus 5 Összehasonlítás 6 Összefoglalás Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 2 / 34

A minimális költségű folyam modell A vizsgált probléma: Szállítsunk megadott mennyiségű terméket egy hálózat termelő csúcsaiból a fogyasztó csúcsokba. A folyam ( szállítási terv ) összköltsége legyen minimális. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 3 / 34

A minimális költségű folyam modell Minimális költségű folyam (minimum cost flow) feladat: Adott egy G = (V, E) irányított gráf. Minden (i, j) E élhez hozzárendelünk egy l ij 0 alsó korlátot, egy u ij l ij felső korlátot és egy c ij költséget (egy egységnyi folyam szállításának díja). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 4 / 34

A minimális költségű folyam modell Minimális költségű folyam (minimum cost flow) feladat: Adott egy G = (V, E) irányított gráf. Minden (i, j) E élhez hozzárendelünk egy l ij 0 alsó korlátot, egy u ij l ij felső korlátot és egy c ij költséget (egy egységnyi folyam szállításának díja). Minden i V csúcshoz hozzárendelünk egy b i előjeles termelés/fogyasztás értéket. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 4 / 34

A minimális költségű folyam modell Minimális költségű folyam (minimum cost flow) feladat: Adott egy G = (V, E) irányított gráf. Minden (i, j) E élhez hozzárendelünk egy l ij 0 alsó korlátot, egy u ij l ij felső korlátot és egy c ij költséget (egy egységnyi folyam szállításának díja). Minden i V csúcshoz hozzárendelünk egy b i előjeles termelés/fogyasztás értéket. Ha b i > 0, akkor i termelő b i termeléssel. Ha b j < 0, akkor j fogyasztó b j fogyasztással. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 4 / 34

A minimális költségű folyam modell Minimális költségű folyam (minimum cost flow) feladat: Adott egy G = (V, E) irányított gráf. Minden (i, j) E élhez hozzárendelünk egy l ij 0 alsó korlátot, egy u ij l ij felső korlátot és egy c ij költséget (egy egységnyi folyam szállításának díja). Minden i V csúcshoz hozzárendelünk egy b i előjeles termelés/fogyasztás értéket. A folyam költségét lineárisan számítjuk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 4 / 34

A minimális költségű folyam modell Minimális költségű folyam (minimum cost flow) feladat: Adott egy G = (V, E) irányított gráf. Minden (i, j) E élhez hozzárendelünk egy l ij 0 alsó korlátot, egy u ij l ij felső korlátot és egy c ij költséget (egy egységnyi folyam szállításának díja). Minden i V csúcshoz hozzárendelünk egy b i előjeles termelés/fogyasztás értéket. A folyam költségét lineárisan számítjuk. Feladat: minimális költségű megengedett folyam keresése. Forrás: R. K. Ahuja T. L. Magnanti J. B. Orlin: Network Flows: Theory, Algorithms, and Applications. Prentice-Hall, Inc., 1993. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 4 / 34

A minimális költségű folyam modell A feladat formálisan (LP): Minimális költségű folyam feladat min c ij x ij (1) x ij (i,j) E j : (i,j) E j : (j,i) E x ji = b i i V (2) l ij x ij u ij (i, j) E (3) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 5 / 34

A minimális költségű folyam modell A feladat formálisan (LP): Minimális költségű folyam feladat j : (i,j) E x ij min (i,j) E j : (j,i) E c ij x ij (1) x ji = b i i V (2) l ij x ij u ij (i, j) E (3) Megjegyzés: megengedett megoldás létezéséhez i V b i = 0 szükséges feltétel. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 5 / 34

A minimális költségű folyam modell A feladat formálisan (LP): Minimális költségű folyam feladat j : (i,j) E x ij min (i,j) E j : (j,i) E c ij x ij (1) x ji = b i i V (2) l ij x ij u ij (i, j) E (3) Megjegyzés: megengedett megoldás létezéséhez i V b i = 0 szükséges feltétel. Általában feltesszük, hogy minden mennyiség- és költségérték egész, és a megoldást is egészértékű folyamként keressük. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 5 / 34

A minimális költségű folyam modell Alkalmazások: Általános, sok helyen alkalmazható modell. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 6 / 34

A minimális költségű folyam modell Alkalmazások: Általános, sok helyen alkalmazható modell. Közvetlenül felhasználható számos területen: szállítmányozás, logisztika, telekommunikáció, hálózattervezés, erőforrás-elosztás, ütemezés stb. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 6 / 34

A minimális költségű folyam modell Alkalmazások: Általános, sok helyen alkalmazható modell. Közvetlenül felhasználható számos területen: szállítmányozás, logisztika, telekommunikáció, hálózattervezés, erőforrás-elosztás, ütemezés stb. Gyakran előfordul bonyolultabb optimalizációs problémák részfeladataként is, pl. többtermékes folyam feladatok. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 6 / 34

Célok Kutatásunk célkitűzései: Számos ismert algoritmus hatékony megvalósítása. Implementációs részletek, heurisztikák vizsgálata. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 7 / 34

Célok Kutatásunk célkitűzései: Számos ismert algoritmus hatékony megvalósítása. Implementációs részletek, heurisztikák vizsgálata. A különböző algoritmusok összehasonlító elemzése (azonos keretrendszerben, nagy hálózatokon). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 7 / 34

Célok Kutatásunk célkitűzései: Számos ismert algoritmus hatékony megvalósítása. Implementációs részletek, heurisztikák vizsgálata. A különböző algoritmusok összehasonlító elemzése (azonos keretrendszerben, nagy hálózatokon). Implementációink összehasonlítása hatékony publikus megoldóprogramokkal. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 7 / 34

Célok Kutatásunk célkitűzései: Számos ismert algoritmus hatékony megvalósítása. Implementációs részletek, heurisztikák vizsgálata. A különböző algoritmusok összehasonlító elemzése (azonos keretrendszerben, nagy hálózatokon). Implementációink összehasonlítása hatékony publikus megoldóprogramokkal. Nyílt forrású implementációk közzététele a LEMON programkönyvtár részeként. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 7 / 34

LEMON A megvalósított algoritmusok a LEMON kombinatorikus optimalizálási programcsomag részét képezik. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 8 / 34

LEMON A megvalósított algoritmusok a LEMON kombinatorikus optimalizálási programcsomag részét képezik. LEMON programkönyvtár: Library for Efficient Modeling and Optimization in Networks http://lemon.cs.elte.hu Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 8 / 34

LEMON A megvalósított algoritmusok a LEMON kombinatorikus optimalizálási programcsomag részét képezik. LEMON programkönyvtár: Library for Efficient Modeling and Optimization in Networks Az ELTE-n fejlesztett nyílt forrású, generikus C++ könyvtár. http://lemon.cs.elte.hu Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 8 / 34

LEMON A megvalósított algoritmusok a LEMON kombinatorikus optimalizálási programcsomag részét képezik. LEMON programkönyvtár: Library for Efficient Modeling and Optimization in Networks Az ELTE-n fejlesztett nyílt forrású, generikus C++ könyvtár. Gráfokkal, hálózatokkal kapcsolatos optimalizálási problémák megoldására szolgál. Rendkívül hatékony és rugalmasan felhasználható adatszerkezeteket, algoritmusokat tartalmaz. http://lemon.cs.elte.hu Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 8 / 34

LEMON A megvalósított algoritmusok a LEMON kombinatorikus optimalizálási programcsomag részét képezik. LEMON programkönyvtár: Library for Efficient Modeling and Optimization in Networks Az ELTE-n fejlesztett nyílt forrású, generikus C++ könyvtár. Gráfokkal, hálózatokkal kapcsolatos optimalizálási problémák megoldására szolgál. Rendkívül hatékony és rugalmasan felhasználható adatszerkezeteket, algoritmusokat tartalmaz. Hasonló könyvtárak: BGL (Boost Graph Library), LEDA. http://lemon.cs.elte.hu Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 8 / 34

Algoritmusok Összesen 9 algoritmust valósítottunk meg, amelyek 4 különböző megoldási módszeren alapulnak. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 9 / 34

Algoritmusok Összesen 9 algoritmust valósítottunk meg, amelyek 4 különböző megoldási módszeren alapulnak. 1 Negatív körök kiiktatása primál megközelítés Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 9 / 34

Algoritmusok Összesen 9 algoritmust valósítottunk meg, amelyek 4 különböző megoldási módszeren alapulnak. 1 Negatív körök kiiktatása primál megközelítés 2 Javítóutas algoritmusok duál megközelítés Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 9 / 34

Algoritmusok Összesen 9 algoritmust valósítottunk meg, amelyek 4 különböző megoldási módszeren alapulnak. 1 Negatív körök kiiktatása primál megközelítés 2 Javítóutas algoritmusok duál megközelítés 3 Költségskálázás primál duál megközelítés Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 9 / 34

Algoritmusok Összesen 9 algoritmust valósítottunk meg, amelyek 4 különböző megoldási módszeren alapulnak. 1 Negatív körök kiiktatása primál megközelítés 2 Javítóutas algoritmusok duál megközelítés 3 Költségskálázás primál duál megközelítés 4 Hálózati szimplex módszer Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 9 / 34

Tesztadatok, tesztelés paraméterei Tesztadatok: NETGEN programmal generált inputfájlok (DIMACS formátum). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 10 / 34

Tesztadatok, tesztelés paraméterei Tesztadatok: NETGEN programmal generált inputfájlok (DIMACS formátum). Ritka hálózatok: m n log 2 n (n 1 000 000, m 20 000 000). Sűrű hálózatok: m n n (n 100 000, m 32 000 000). n = csúcsok száma, m = élek száma. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 10 / 34

Tesztadatok, tesztelés paraméterei Tesztadatok: NETGEN programmal generált inputfájlok (DIMACS formátum). Ritka hálózatok: m n log 2 n (n 1 000 000, m 20 000 000). Sűrű hálózatok: m n n (n 100 000, m 32 000 000). n = csúcsok száma, m = élek száma. Élköltségek, kapacitások: az [1..10 000] intervallumból. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 10 / 34

Tesztadatok, tesztelés paraméterei Tesztadatok: NETGEN programmal generált inputfájlok (DIMACS formátum). Ritka hálózatok: m n log 2 n (n 1 000 000, m 20 000 000). Sűrű hálózatok: m n n (n 100 000, m 32 000 000). n = csúcsok száma, m = élek száma. Élköltségek, kapacitások: az [1..10 000] intervallumból. n termelő és n fogyasztó csúcs. Össztermelés: 1000 n. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 10 / 34

Tesztadatok, tesztelés paraméterei Tesztadatok: NETGEN programmal generált inputfájlok (DIMACS formátum). Ritka hálózatok: m n log 2 n (n 1 000 000, m 20 000 000). Sűrű hálózatok: m n n (n 100 000, m 32 000 000). n = csúcsok száma, m = élek száma. Élköltségek, kapacitások: az [1..10 000] intervallumból. n termelő és n fogyasztó csúcs. Össztermelés: 1000 n. Tesztkörnyezet: Két Intel Xeon 3.20 GHz processzor, 2 MB cache, 2 GB memória; opensuse 10.2, GCC 4.1.2 fordító, O3 optimalizáció. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 10 / 34

Negatív körök kiiktatása Optimalitási kritérium: 1. Tétel: Negatív kör optimalitási feltétel A minimális költségű folyam feladat egy x megengedett megoldása akkor és csak akkor optimális, ha a G x reziduális hálózat nem tartalmaz negatív összköltségű irányított kört. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 11 / 34

Negatív körök kiiktatása Optimalitási kritérium: 1. Tétel: Negatív kör optimalitási feltétel A minimális költségű folyam feladat egy x megengedett megoldása akkor és csak akkor optimális, ha a G x reziduális hálózat nem tartalmaz negatív összköltségű irányított kört. Megjegyzés: egy megfordított reziduális él költsége az eredeti élköltség ellentettje. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 11 / 34

Negatív körök kiiktatása 1. Tétel: Negatív kör optimalitási feltétel A minimális költségű folyam feladat egy x megengedett megoldása akkor és csak akkor optimális, ha a G x reziduális hálózat nem tartalmaz negatív összköltségű irányított kört. A tételből egy egyszerű megoldási módszer is adódik: Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 12 / 34

Negatív körök kiiktatása 1. Tétel: Negatív kör optimalitási feltétel A minimális költségű folyam feladat egy x megengedett megoldása akkor és csak akkor optimális, ha a G x reziduális hálózat nem tartalmaz negatív összköltségű irányított kört. A tételből egy egyszerű megoldási módszer is adódik: 1 Keressünk egy megengedett megoldást (visszavezethető maximális folyam feladatra). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 12 / 34

Negatív körök kiiktatása 1. Tétel: Negatív kör optimalitási feltétel A minimális költségű folyam feladat egy x megengedett megoldása akkor és csak akkor optimális, ha a G x reziduális hálózat nem tartalmaz negatív összköltségű irányított kört. A tételből egy egyszerű megoldási módszer is adódik: 1 Keressünk egy megengedett megoldást (visszavezethető maximális folyam feladatra). 2 Amíg a reziduális hálózat tartalmaz negatív kört, keressünk meg egyet és iktassuk ki: folyassunk rajta annyi folyamot, hogy valamely éle telítődjön. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 12 / 34

Negatív körök kiiktatása 1. Tétel: Negatív kör optimalitási feltétel A minimális költségű folyam feladat egy x megengedett megoldása akkor és csak akkor optimális, ha a G x reziduális hálózat nem tartalmaz negatív összköltségű irányított kört. A tételből egy egyszerű megoldási módszer is adódik: 1 Keressünk egy megengedett megoldást (visszavezethető maximális folyam feladatra). 2 Amíg a reziduális hálózat tartalmaz negatív kört, keressünk meg egyet és iktassuk ki: folyassunk rajta annyi folyamot, hogy valamely éle telítődjön. Primál módszer: minden lépésben megengedett megoldást kapunk, és a célfüggvény értékét fokozatosan csökkentjük. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 12 / 34

Negatív kör algoritmusok Megvalósított algoritmusok: SCC: simple cycle canceling (egyszerű negatív kör algoritmus) MMCC: minimum mean cycle canceling (min. átlagú körök kiiktatása) CAT: cancel and tighten (kiiktatás és megszorítás) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 13 / 34

Negatív kör algoritmusok Megvalósított algoritmusok: SCC: simple cycle canceling (egyszerű negatív kör algoritmus) Negatív körök keresése Bellman Ford-algoritmussal. Hatékony heurisztikákat dolgoztunk ki. MMCC: minimum mean cycle canceling (min. átlagú körök kiiktatása) CAT: cancel and tighten (kiiktatás és megszorítás) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 13 / 34

Negatív kör algoritmusok Megvalósított algoritmusok: SCC: simple cycle canceling (egyszerű negatív kör algoritmus) MMCC: minimum mean cycle canceling (min. átlagú körök kiiktatása) Minden menetben egy min. átlagú kör keresése és kiiktatása. CAT: cancel and tighten (kiiktatás és megszorítás) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 13 / 34

Negatív kör algoritmusok Megvalósított algoritmusok: SCC: simple cycle canceling (egyszerű negatív kör algoritmus) MMCC: minimum mean cycle canceling (min. átlagú körök kiiktatása) Minden menetben egy min. átlagú kör keresése és kiiktatása. Egyszerű, közismert erősen polinomiális algoritmus. A gyakorlatban viszont rendkívül lassú. CAT: cancel and tighten (kiiktatás és megszorítás) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 13 / 34

Negatív kör algoritmusok Megvalósított algoritmusok: SCC: simple cycle canceling (egyszerű negatív kör algoritmus) MMCC: minimum mean cycle canceling (min. átlagú körök kiiktatása) CAT: cancel and tighten (kiiktatás és megszorítás) Az MMCC javított változata. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 13 / 34

Negatív kör algoritmusok Megvalósított algoritmusok: SCC: simple cycle canceling (egyszerű negatív kör algoritmus) MMCC: minimum mean cycle canceling (min. átlagú körök kiiktatása) CAT: cancel and tighten (kiiktatás és megszorítás) Az MMCC javított változata. Valójában primál duál módszert alkalmaz. Csúcspotenciálok (duál megoldás) nyilvántartásával átlagosan jóval gyorsabban találhatunk negatív köröket. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 13 / 34

Negatív kör algoritmusok Megvalósított algoritmusok: SCC: simple cycle canceling (egyszerű negatív kör algoritmus) MMCC: minimum mean cycle canceling (min. átlagú körök kiiktatása) CAT: cancel and tighten (kiiktatás és megszorítás) Az MMCC javított változata. Valójában primál duál módszert alkalmaz. Csúcspotenciálok (duál megoldás) nyilvántartásával átlagosan jóval gyorsabban találhatunk negatív köröket. Ez is erősen polinomiális, de elméletben és gyakorlatban is sokkal hatékonyabb. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 13 / 34

Negatív kör algoritmusok Az alábbi grafikonokon összehasonlítjuk a negatív kör algoritmusokat. A futásidőket a csúcsok számának függvényében, logaritmikus skálán ábrázoljuk. 100000s SCC 100000s SCC 10000s MMCC CAT 10000s MMCC CAT 1000s 1000s 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 100 200 500 1000 2000 5000 10000 20000 50000 0.001s 100 200 500 1000 2000 5000 10000 20000 50000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) SCC: simple cycle canceling MMCC: minimum mean cycle canceling CAT: cancel and tighten Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 14 / 34

Negatív kör algoritmusok Az alábbi grafikonokon összehasonlítjuk a negatív kör algoritmusokat. A futásidőket a csúcsok számának függvényében, logaritmikus skálán ábrázoljuk. 100000s SCC 100000s SCC 10000s MMCC CAT 10000s MMCC CAT 1000s 1000s 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 100 200 500 1000 2000 5000 10000 20000 50000 0.001s 100 200 500 1000 2000 5000 10000 20000 50000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Az SCC 6-8-szor gyorsabb, mint az MMCC. A CAT viszont nagyságrendekkel gyorsabb mindkettőnél. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 14 / 34

Duál algoritmusok Duál megoldási módszer: Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 15 / 34

Duál algoritmusok Duál megoldási módszer: Megengedett duál megoldást tartunk fent, és a primál megengedettség felé törekszünk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 15 / 34

Duál algoritmusok Duál megoldási módszer: Megengedett duál megoldást tartunk fent, és a primál megengedettség felé törekszünk. Egy folyamot és csúcspotenciálokat tárolunk. A folyam nem feltétlenül megengedett: teljesülnek a kapacitásfeltételek, de megsértheti a termelés/fogyasztás feltételeket. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 15 / 34

Duál algoritmusok Duál megoldási módszer: Megengedett duál megoldást tartunk fent, és a primál megengedettség felé törekszünk. Egy folyamot és csúcspotenciálokat tárolunk. A folyam nem feltétlenül megengedett: teljesülnek a kapacitásfeltételek, de megsértheti a termelés/fogyasztás feltételeket. Minden lépésben egy többlettel rendelkező csúcsból folyamot küldünk egy hiánnyal rendelkező csúcsba. Ezt a reziduális hálózat egy, a redukált költségek szerint vett legrövidebb útja mentén tesszük. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 15 / 34

Duál algoritmusok Duál megoldási módszer: Megengedett duál megoldást tartunk fent, és a primál megengedettség felé törekszünk. Egy folyamot és csúcspotenciálokat tárolunk. A folyam nem feltétlenül megengedett: teljesülnek a kapacitásfeltételek, de megsértheti a termelés/fogyasztás feltételeket. Minden lépésben egy többlettel rendelkező csúcsból folyamot küldünk egy hiánnyal rendelkező csúcsba. Ezt a reziduális hálózat egy, a redukált költségek szerint vett legrövidebb útja mentén tesszük. Ha már nincs többletes csúcs, akkor megengedett primál megoldást kapunk. Ez optimális is lesz (ui. a duál megengedettséget fenntartjuk). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 15 / 34

Duál algoritmusok A feladat duálisát csúcspotenciálok segítségével írhatjuk fel. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 16 / 34

Duál algoritmusok A feladat duálisát csúcspotenciálok segítségével írhatjuk fel. Az 1. tétellel ekvivalens optimalitási kritérium: 2. Tétel: Redukált költség optimalitási feltétel A minimális költségű folyam feladat egy x megengedett megoldása akkor és csak akkor optimális, ha létezik olyan π potenciálfüggvény, amellyel a G x reziduális hálózat minden élének redukált költsége nemnegatív. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 16 / 34

Duál algoritmusok A feladat duálisát csúcspotenciálok segítségével írhatjuk fel. Az 1. tétellel ekvivalens optimalitási kritérium: 2. Tétel: Redukált költség optimalitási feltétel A minimális költségű folyam feladat egy x megengedett megoldása akkor és csak akkor optimális, ha létezik olyan π potenciálfüggvény, amellyel a G x reziduális hálózat minden élének redukált költsége nemnegatív. Definíció: Redukált költség Egy π potenciálfüggvényre nézve egy (i, j) él redukált költsége: c π ij = c ij + π(i) π(j). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 16 / 34

Duál algoritmusok Megvalósított algoritmusok: SSP: successive shortest path (ismételt legrövidebb út) CAS: capacity scaling (kapacitásskálázás) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 17 / 34

Duál algoritmusok Megvalósított algoritmusok: SSP: successive shortest path (ismételt legrövidebb út) Egyszerű változat. CAS: capacity scaling (kapacitásskálázás) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 17 / 34

Duál algoritmusok Megvalósított algoritmusok: SSP: successive shortest path (ismételt legrövidebb út) CAS: capacity scaling (kapacitásskálázás) Az SSP algoritmus egy hatékonyabb (polinomiális) változata. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 17 / 34

Duál algoritmusok Megvalósított algoritmusok: SSP: successive shortest path (ismételt legrövidebb út) CAS: capacity scaling (kapacitásskálázás) Az SSP algoritmus egy hatékonyabb (polinomiális) változata. Minden lépésben olyan legrövidebb utakat keresünk, amelyeken legalább egységnyi folyamot küldhetünk át. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 17 / 34

Duál algoritmusok Megvalósított algoritmusok: SSP: successive shortest path (ismételt legrövidebb út) CAS: capacity scaling (kapacitásskálázás) Az SSP algoritmus egy hatékonyabb (polinomiális) változata. Minden lépésben olyan legrövidebb utakat keresünk, amelyeken legalább egységnyi folyamot küldhetünk át. Ha ilyet már nem találunk, felezzük értékét, és végrehajtunk egy újabb fázist. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 17 / 34

Duál algoritmusok Megvalósított algoritmusok: SSP: successive shortest path (ismételt legrövidebb út) CAS: capacity scaling (kapacitásskálázás) Az SSP algoritmus egy hatékonyabb (polinomiális) változata. Minden lépésben olyan legrövidebb utakat keresünk, amelyeken legalább egységnyi folyamot küldhetünk át. Ha ilyet már nem találunk, felezzük értékét, és végrehajtunk egy újabb fázist. A = 1 fázis végén megengedett és optimális folyamot kapunk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 17 / 34

Összehasonlítás Primál és duál implementációk összehasonlítása: 100000s 10000s 1000s SCC MMCC CAT SSP CAS 100000s 10000s 1000s SCC MMCC CAT SSP CAS 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) SCC, MMCC, CAT: primál algoritmusok (negatív körök kiiktatása) SSP, CAS: duál algoritmusok (ismételt legrövidebb út keresés) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 18 / 34

Összehasonlítás Primál és duál implementációk összehasonlítása: 100000s 10000s 1000s SCC MMCC CAT SSP CAS 100000s 10000s 1000s SCC MMCC CAT SSP CAS 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) SCC, MMCC, CAT: primál algoritmusok (negatív körök kiiktatása) SSP, CAS: duál algoritmusok (ismételt legrövidebb út keresés) A javítóutas módszerek sokkal gyorsabbnak bizonyultak. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 18 / 34

Költségskálázó algoritmusok Költségskálázó módszer: Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 19 / 34

Költségskálázó algoritmusok Költségskálázó módszer: Primál duál megközelítés. A max. folyam feladatra adott előfolyam algoritmus (preflow push-relabel) egy módosított változata. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 19 / 34

Költségskálázó algoritmusok Költségskálázó módszer: Primál duál megközelítés. A max. folyam feladatra adott előfolyam algoritmus (preflow push-relabel) egy módosított változata. Minden fázisban ɛ-optimális primál duál megoldáspárt állítunk elő: a reziduális hálózat minden (i, j) élére: c π ij ɛ. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 19 / 34

Költségskálázó algoritmusok Költségskálázó módszer: Primál duál megközelítés. A max. folyam feladatra adott előfolyam algoritmus (preflow push-relabel) egy módosított változata. Minden fázisban ɛ-optimális primál duál megoldáspárt állítunk elő: a reziduális hálózat minden (i, j) élére: c π ij ɛ. Ezután ɛ-t felezzük, és egy újabb menetet hajtunk végre. ɛ < 1/n esetén optimális megoldást kapunk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 19 / 34

Költségskálázó algoritmusok Költségskálázó módszer: Primál duál megközelítés. A max. folyam feladatra adott előfolyam algoritmus (preflow push-relabel) egy módosított változata. Minden fázisban ɛ-optimális primál duál megoldáspárt állítunk elő: a reziduális hálózat minden (i, j) élére: c π ij ɛ. Ezután ɛ-t felezzük, és egy újabb menetet hajtunk végre. ɛ < 1/n esetén optimális megoldást kapunk. Az egyes fázisokban pumpálás (push) és átcímkézés (relabel) műveleteket végzünk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 19 / 34

Költségskálázó algoritmusok Megvalósított algoritmusok: COS-PR: push-relabel (pumpálás-átcímkézés) COS-AR: augment-relabel (növelés-átcímkézés) COS-PAR: partial augment-relabel (részleges növelés-átcímkézés) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 20 / 34

Költségskálázó algoritmusok Megvalósított algoritmusok: COS-PR: push-relabel (pumpálás-átcímkézés) Az eredeti változat lokális pumpálás (push) és átcímkézés (relabel) műveletekkel. COS-AR: augment-relabel (növelés-átcímkézés) COS-PAR: partial augment-relabel (részleges növelés-átcímkézés) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 20 / 34

Költségskálázó algoritmusok Megvalósított algoritmusok: COS-PR: push-relabel (pumpálás-átcímkézés) COS-AR: augment-relabel (növelés-átcímkézés) Pumpálás helyett javítóutakat keresünk többletes csúcsokból hiányos csúcsokba. Ezen utak mentén növeljük a folyamot (augment). COS-PAR: partial augment-relabel (részleges növelés-átcímkézés) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 20 / 34

Költségskálázó algoritmusok Megvalósított algoritmusok: COS-PR: push-relabel (pumpálás-átcímkézés) COS-AR: augment-relabel (növelés-átcímkézés) COS-PAR: partial augment-relabel (részleges növelés-átcímkézés) Goldberg új ötletét átültettük erre a feladatra: a javítóutak hosszát korlátozzuk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 20 / 34

Költségskálázó algoritmusok Megvalósított algoritmusok: COS-PR: push-relabel (pumpálás-átcímkézés) COS-AR: augment-relabel (növelés-átcímkézés) COS-PAR: partial augment-relabel (részleges növelés-átcímkézés) Goldberg új ötletét átültettük erre a feladatra: a javítóutak hosszát korlátozzuk. Legfeljebb k = 4 élből álló utak mentén növelünk (ekvivalens k pumpálással). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 20 / 34

Költségskálázó algoritmusok Megvalósított algoritmusok: COS-PR: push-relabel (pumpálás-átcímkézés) COS-AR: augment-relabel (növelés-átcímkézés) COS-PAR: partial augment-relabel (részleges növelés-átcímkézés) Goldberg új ötletét átültettük erre a feladatra: a javítóutak hosszát korlátozzuk. Legfeljebb k = 4 élből álló utak mentén növelünk (ekvivalens k pumpálással). Forrás: Andrew V. Goldberg: The partial augment-relabel algorithm for the maximum flow problem. ESA 2008, 466 477, 2008. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 20 / 34

Költségskálázó algoritmusok Megvalósított algoritmusok: COS-PR: push-relabel (pumpálás-átcímkézés) COS-AR: augment-relabel (növelés-átcímkézés) COS-PAR: partial augment-relabel (részleges növelés-átcímkézés) A három változat teljesítménye nagyon hasonló. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 20 / 34

Költségskálázó algoritmusok Megvalósított algoritmusok: COS-PR: push-relabel (pumpálás-átcímkézés) COS-AR: augment-relabel (növelés-átcímkézés) COS-PAR: partial augment-relabel (részleges növelés-átcímkézés) A három változat teljesítménye nagyon hasonló. Általában a COS-PAR algoritmus bizonyult a leggyorsabbnak. A továbbiakban csak ezt vizsgáljuk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 20 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 21 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Az LP szimplex módszer specializált változata erre a feladatra. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 21 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Az LP szimplex módszer specializált változata erre a feladatra. Az LP változóknak a gráf élei felelnek meg. A bázismegoldásoknak pedig ún. feszítőfa-megoldások: olyan feszítőfák, amelyeken kívül minden él korlátozott (a folyamértéke nulla vagy telített). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 21 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Az LP szimplex módszer specializált változata erre a feladatra. Az LP változóknak a gráf élei felelnek meg. A bázismegoldásoknak pedig ún. feszítőfa-megoldások: olyan feszítőfák, amelyeken kívül minden él korlátozott (a folyamértéke nulla vagy telített). Egy feszítőfát és egy folyamot (primál megoldás), valamint csúcspotenciálokat (duál megoldás) tartunk nyilván. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 21 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Az LP szimplex módszer specializált változata erre a feladatra. Az LP változóknak a gráf élei felelnek meg. A bázismegoldásoknak pedig ún. feszítőfa-megoldások: olyan feszítőfák, amelyeken kívül minden él korlátozott (a folyamértéke nulla vagy telített). Egy feszítőfát és egy folyamot (primál megoldás), valamint csúcspotenciálokat (duál megoldás) tartunk nyilván. Az egyes iterációk során a célfüggvény értékén próbálunk javítani. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 21 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Minden lépésben kiválasztunk egy fán kívüli élt, amely megsérti az optimalitási feltételt. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 22 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Minden lépésben kiválasztunk egy fán kívüli élt, amely megsérti az optimalitási feltételt. Ezt hozzávesszük a feszítőfához (bázishoz). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 22 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Minden lépésben kiválasztunk egy fán kívüli élt, amely megsérti az optimalitási feltételt. Ezt hozzávesszük a feszítőfához (bázishoz). Az így kapott negatív kör mentén javítunk: folyamot küldünk rajta és egy telítődő élét kivesszük a bázisból (pivotálás). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 22 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Minden lépésben kiválasztunk egy fán kívüli élt, amely megsérti az optimalitási feltételt. Ezt hozzávesszük a feszítőfához (bázishoz). Az így kapott negatív kör mentén javítunk: folyamot küldünk rajta és egy telítődő élét kivesszük a bázisból (pivotálás). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 22 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Minden lépésben kiválasztunk egy fán kívüli élt, amely megsérti az optimalitási feltételt. Ezt hozzávesszük a feszítőfához (bázishoz). Az így kapott negatív kör mentén javítunk: folyamot küldünk rajta és egy telítődő élét kivesszük a bázisból (pivotálás). Ha már nincs alkalmas belépő él, akkor a folyam optimális. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 22 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Minden lépésben kiválasztunk egy fán kívüli élt, amely megsérti az optimalitási feltételt. Ezt hozzávesszük a feszítőfához (bázishoz). Az így kapott negatív kör mentén javítunk: folyamot küldünk rajta és egy telítődő élét kivesszük a bázisból (pivotálás). Ha már nincs alkalmas belépő él, akkor a folyam optimális. Valójában a primál módszer (körök kiiktatása) egy sajátos változata. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 22 / 34

Hálózati szimplex algoritmus Primál hálózati szimplex módszer: Minden lépésben kiválasztunk egy fán kívüli élt, amely megsérti az optimalitási feltételt. Ezt hozzávesszük a feszítőfához (bázishoz). Az így kapott negatív kör mentén javítunk: folyamot küldünk rajta és egy telítődő élét kivesszük a bázisból (pivotálás). Ha már nincs alkalmas belépő él, akkor a folyam optimális. Valójában a primál módszer (körök kiiktatása) egy sajátos változata. Az adatszerkezetnek köszönhetően egy negatív kör megtalálása sokkal gyorsabb (O(m) idejű). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 22 / 34

Hálózati szimplex algoritmus Implementáció: Komplex adatszerkezet szükséges: feszítőfa nyilvántartása és hatékony módosítása. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 23 / 34

Hálózati szimplex algoritmus Implementáció: Komplex adatszerkezet szükséges: feszítőfa nyilvántartása és hatékony módosítása. Erre sok különböző módszer ismert: ATI, API, XTI, XPI stb. Az egyik leghatékonyabbat, az XTI-t valósítottuk meg. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 23 / 34

Hálózati szimplex algoritmus Implementáció: Komplex adatszerkezet szükséges: feszítőfa nyilvántartása és hatékony módosítása. Erre sok különböző módszer ismert: ATI, API, XTI, XPI stb. Az egyik leghatékonyabbat, az XTI-t valósítottuk meg. A legkritikusabb művelet a belépő él kiválasztása. Erre 5 különböző stratégiát implementáltunk, amelyek hatékonysága nagyon különböző. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 23 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) First Eligible módszer: A legelső élt választjuk, amelyre nem teljesül az optimalitási feltétel. Minden keresést az előző lépésben talált él után kezdünk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 24 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) First Eligible módszer: A legelső élt választjuk, amelyre nem teljesül az optimalitási feltétel. Minden keresést az előző lépésben talált él után kezdünk. Mindig gyorsan talál belépő élt, de az sokszor nem lesz túl jó. Egyszerűsége ellenére elég hatékony módszer. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 24 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Best Eligible módszer: Minden lépésben a legjobb él választjuk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 25 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Best Eligible módszer: Minden lépésben a legjobb él választjuk. Ez eredményezi a legkevesebb iterációt. Viszont ehhez meg kell vizsgálnunk az összes élt, így a módszer nagyságrendekkel lassabb a többi szabálynál. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 25 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Block Search módszer: Az előző két stratégia közötti középút. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 26 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Block Search módszer: Az előző két stratégia közötti középút. Minden lépésben rögzített mennyiségű élt nézzük át, és azokból választjuk ki a legjobbat. Ha egy blokkban nincs alkalmas él, akkor újabb blokkokkal folytatjuk. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 26 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Block Search módszer: Az előző két stratégia közötti középút. Minden lépésben rögzített mennyiségű élt nézzük át, és azokból választjuk ki a legjobbat. Ha egy blokkban nincs alkalmas él, akkor újabb blokkokkal folytatjuk. Fontos paraméter a blokkméret: egy kompromisszumot határoz meg. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 26 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Block Search módszer: Az előző két stratégia közötti középút. Minden lépésben rögzített mennyiségű élt nézzük át, és azokból választjuk ki a legjobbat. Ha egy blokkban nincs alkalmas él, akkor újabb blokkokkal folytatjuk. Fontos paraméter a blokkméret: egy kompromisszumot határoz meg. Ez a szabály bizonyult a leghatékonyabbnak és legstabilabbnak. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 26 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Candidate List módszer: A választható élekből bizonyos időközönként listát építünk. A következő pivotálások során ebből választjuk ki a legjobbat. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 27 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Candidate List módszer: A választható élekből bizonyos időközönként listát építünk. A következő pivotálások során ebből választjuk ki a legjobbat. Fontos paraméter a jelöltlisták mérete. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 27 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Candidate List módszer: A választható élekből bizonyos időközönként listát építünk. A következő pivotálások során ebből választjuk ki a legjobbat. Fontos paraméter a jelöltlisták mérete. Elég hatékony módszer, de általában lassabb, mint a Block Search. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 27 / 34

Hálózati szimplex pivotálási szabályok 100000s First Eligible 100000s First Eligible 10000s Best Eligible Block Search 10000s Best Eligible Block Search 1000s Candidate List 1000s Candidate List 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Candidate List módszer: A választható élekből bizonyos időközönként listát építünk. A következő pivotálások során ebből választjuk ki a legjobbat. Fontos paraméter a jelöltlisták mérete. Elég hatékony módszer, de általában lassabb, mint a Block Search. Kidolgoztuk egy valamivel hatékonyabb változatát is. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 27 / 34

Összehasonlítás Az alábbi grafikonokon a 4 megközelítési mód leghatékonyabb implementációit hasonlítjuk össze. 100000s 10000s 1000s CAT CAS COS-PAR NS-Block Search 100000s 10000s 1000s CAT CAS COS-PAR NS-Block Search 100s 100s 10s 10s 1s 1s 0.1s 0.1s 0.01s 0.01s 0.001s 0.001s 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 28 / 34

Összehasonlítás 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) A negatív kör algoritmus (CAT) sokkal lassabb a többinél. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 28 / 34

Összehasonlítás 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) A negatív kör algoritmus (CAT) sokkal lassabb a többinél. A költségskálázó módszer (COS) aszimptotikusan gyorsabbnak tűnik a kapacitásskálázásnál (CAS); nagy hálózatokon lényegesen jobbnak bizonyult. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 28 / 34

Összehasonlítás 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Sűrű gráfokon egyértelműen a hálózati szimplex (NS) a leghatékonyabb, kb. 20-szor gyorsabb a költségskálázó algoritmusnál (COS). Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 28 / 34

Összehasonlítás 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Sűrű gráfokon egyértelműen a hálózati szimplex (NS) a leghatékonyabb, kb. 20-szor gyorsabb a költségskálázó algoritmusnál (COS). Ritka gráfokon viszont aszimptotikusan lassabb a COS-nál. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 28 / 34

Összehasonlítás 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Sűrű gráfokon egyértelműen a hálózati szimplex (NS) a leghatékonyabb, kb. 20-szor gyorsabb a költségskálázó algoritmusnál (COS). Ritka gráfokon viszont aszimptotikusan lassabb a COS-nál. A CAS és COS skálázó algoritmusok futásideje erősen függ az élek számától. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 28 / 34

Összehasonlítás 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 100000s 10000s 1000s 100s 10s 1s 0.1s 0.01s 0.001s CAT CAS COS-PAR NS-Block Search 1e-04s 100 1000 10000 100000 1000000 1e-04s 100 1000 10000 100000 Ritka hálózatokon (m n log 2 n) Sűrű hálózatokon (m n n) Sűrű gráfokon egyértelműen a hálózati szimplex (NS) a leghatékonyabb, kb. 20-szor gyorsabb a költségskálázó algoritmusnál (COS). Ritka gráfokon viszont aszimptotikusan lassabb a COS-nál. A CAS és COS skálázó algoritmusok futásideje erősen függ az élek számától. Az NS algoritmus pedig a használt komplex adatszerkezet miatt sokkal erősebben függ a csúcsok számától. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 28 / 34

Összehasonlítás A továbbiakban a LEMON könyvtárba bekerült két leghatékonyabb implementációt (COS és NS) hasonlítjuk össze más publikus megoldóprogramokkal. Király Zoltán, Kovács Péter (ELTE) Minimális költségű folyam-algoritmusok 2009.06.09. 29 / 34