Maximális áramlási probléma

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. szeptember 29-én felülvizsgált verziótól ; az ellenőrzések 11 szerkesztést igényelnek .

Az optimalizálás elméletben és a gráfelméletben a maximális áramlási probléma az, hogy olyan áramlást találjunk a szállítási hálózaton keresztül , amelynél a forrásból érkező áramlások összege, vagy ennek megfelelően a nyelőhöz tartó áramlások összege maximális.

A maximális áramlási probléma a nehezebb problémák speciális esete, mint például a keringési probléma .

Történelem

Miután az Egyesült Államok 1941-ben belépett a második világháborúba , George Bernard Dantzig matematikus csatlakozott az Egyesült Államok légierejének statisztikai hivatalához Washington DC -ben . 1941 és 1946 között a Combat Analysis Branch vezetője volt, ahol különféle matematikai problémákkal foglalkozott. [1] [2] Ezt követően, Danzig munkáját felhasználva, először a léghíd előkészítése során , az 1948-1949- es nyugat-berlini blokád idején oldották meg a maximális áramlási problémát . [3] [4] [5]

1951-ben George Dantzig fogalmazta meg először általánosságban a problémát. [6]

1955-ben Lester Ford és Delbert Ray Fulkerson először készített egy algoritmust, amelyet kifejezetten ennek a problémának a megoldására terveztek .  Algoritmusukat Ford-Fulkerson algoritmusnak hívták . [7] [8]

A jövőben a probléma megoldását sokszor javították.

2010-ben Jonathan Kelner és Aleksander Mądry, az MIT kutatói , valamint kollégáikkal, Daniel Spielmannel , a Yale Egyetemen és Shen - Hua Tenggel , a Dél-A Kaliforniai Egyetemen 10 év után először mutattak be egy újabb fejlesztést az algoritmuson. [3] [9] [10]

Definíció

Adott egy szállítási hálózat forrással , nyelővel és kapacitással .

Az áramlás értéke a forrásból származó áramlások összege . A „ Közlekedési hálózat ” cikkben bebizonyosodott, hogy ez egyenlő a nyelőhöz vezető áramlások összegével .

A maximális áramlás problémája az , hogy olyan áramlást találjunk, ahol az áramlás maximális értéke.

Döntések

Az alábbi táblázat felsorol néhány algoritmust a probléma megoldására.

Módszer Bonyolultság Leírás
Lineáris programozás Az adott algoritmustól függ. A szimplex módszernél ez exponenciális. Mutassa be a maximális áramlási problémát lineáris programozási problémaként. A változók a szélek mentén folyó áramlások, a korlátok pedig az áramlás megőrzése és az áteresztőképesség korlátozása.
Ford-Fulkerson algoritmus A bővítő útvonal keresési algoritmusától függ. Ilyen keresést igényel . Keressen bármilyen bővítő utat. Növelje az áramlást az összes széle mentén a maradék kapacitás minimális értékével. Addig ismételje, amíg van egy növelési út. Az algoritmus csak egész számú sávszélesség esetén működik. Ellenkező esetben korlátlan ideig futhat anélkül, hogy konvergálna a helyes válaszhoz.
Edmonds-Karp algoritmus Végrehajtjuk a Ford-Fulkerson algoritmust, minden alkalommal kiválasztva a legrövidebb kibővítési útvonalat ( a szélesség-első keresés alapján ).
Dinit algoritmusa vagy Slethor és Tarjan dinamikus fákat használó egységkapacitásokhoz [11] Az Edmonds-Karp algoritmus továbbfejlesztése (de kronologikusan korábban találtuk). Minden iterációnál a szélesség-első keresés segítségével meghatározzuk a távolságot a forrástól a maradék hálózat összes csúcsáig. Készítünk egy gráfot, amely a reziduális hálózatnak csak olyan éleit tartalmazza, amelyeken ez a távolság 1-gyel növekszik. A gráfból kizárunk minden olyan zsákutcát, amelynek élei beesnek, amíg az összes csúcs nem zsákutcává válik. (A zsákutca egy csúcs, kivéve a forrást és a nyelőt, amely nem tartalmaz egyetlen élt sem, vagy amelyből nem származnak élek.) Az eredményül kapott gráfon megtaláljuk a legrövidebb növelési utat (bármilyen út lesz az s-ből). t-ig). Kizárjuk a maradék hálózatból a minimális kapacitású élt, ismét kizárjuk a zsákutca csúcsait, és így tovább, amíg nincs bővítési út.
Preflow Push Algorithm Előfolyamon működik folyam helyett. A különbség az, hogy bármely u csúcsra, kivéve a forrást és a nyelőt, az áramláshoz belépő áramlások összegének szigorúan nullának kell lennie (az áramlásmegmaradás feltétele), az előáramlásnál pedig nem negatívnak kell lennie. Ezt az összeget a csúcshoz vezető többletáramlásnak nevezzük , és a pozitív többletáramlású csúcsot túlcsordulásnak nevezzük . Ezenkívül az algoritmus minden csúcshoz elment egy további jellemzőt, a magasságot , amely egy nem negatív egész szám. Az algoritmus két műveletet használ: push , amikor a magasabb csúcsból az alacsonyabb csúcsba tartó él mentén az áramlást a lehető legnagyobb mértékben növeljük, és lift , amikor egy túlcsorduló csúcsot emelünk, amelyből a nem megfelelő magasság miatt nem lehet tolni. . A tolás akkor lehetséges, ha egy él a maradék hálózathoz tartozik, magasabb csúcsból egy alacsonyabbba vezet, és az eredeti csúcs túlcsordul. Az emelés akkor lehetséges, ha az emelendő csúcs megtelt, de azon csúcsok közül, ahová a maradék hálózat élei vezetnek, egyik sem alacsonyabb nála. Olyan magasságig hajtják végre, amely 1-gyel nagyobb, mint e csúcsok magasságának minimuma. Kezdetben a forrás magassága V, a forrásból kilépő összes él mentén a maximális lehetséges áramlási áramlások, a fennmaradó magasságok és áramlások nullák. A tolási és emelési műveleteket a lehető leghosszabb ideig kell végrehajtani.
Algoritmus "emelés az elejére" vagy dinamikus fák használatával Az előző algoritmus egy olyan változata, amely speciális módon határozza meg a toló és emelő műveletek sorrendjét.
Bináris blokkoló áramlási algoritmus [1]

A részletesebb listát lásd: [2] és A maximális áramlás megtalálására szolgáló algoritmusok listája .

Teljes áramlási tétel

Ha az áteresztőképesség egész szám, akkor a maximális áramlás is egész szám.

A tétel például a Ford–Fulkerson tételből következik .

Az eredeti problémára redukáló általánosítások

A maximális áramlási probléma néhány általánosítása könnyen redukálható az eredeti problémára.

Tetszőleges számú forrás és/vagy elnyelő

Ha egynél több forrás van, adjunk hozzá egy új S csúcsot, amelyet az egyetlen forrássá tesszük. Mindegyik régi forráshoz S-től végtelen kapacitású éleket adunk.

Hasonlóképpen, ha egynél több nyelő van, adunk hozzá egy új T csúcsot, amelyet az egyetlen süllyedővé tesszük. Minden régi mosogatóból végtelen kapacitású éleket adunk a T-hez.

Irányítatlan élek

Minden irányítatlan élt (u, v) egy pár irányított él (u, v) és (v, u) helyettesít.

Vertex Bandwidth Limit

Minden korlátozott kapacitású v csúcsot felosztunk két v be és v ki csúcsra . A felosztás előtt a v-ben szereplő összes él szerepel a v -ben . Minden él, amely v-ből származott a felosztás előtt, most v- ből származik . Adjon hozzá egy élt (v be , v out ) kapacitással .

Az élek kapacitásának korlátozása alulról

A problémafelvetés ezen verziójában az egyes élek áramlásának értékét alulról a függvény is korlátozza . Így az áramlási érték egyetlen élre sem haladhatja meg a kapacitását, de nem lehet kisebb a megadott minimumnál, pl. . A probléma megoldásához az eredeti közlekedési hálózatot közlekedési hálózattá kell átalakítani az alábbiak szerint:

  1. Új forrás és mosogató hozzáadása .
  2. Minden élhez :
    1. Hozzon létre két új csúcsot és .
    2. Telepítse és .
    3. Telepítse .
    4. Telepítse és .
  3. Telepítse .

Olyan áramlást határozunk meg a B-ben, amely akkor és csak akkor teljesíti az élek áteresztőképességének alulról történő korlátozására vonatkozó feltételt, ha olyan maximális áramlás van definiálva, amelyben az és az összes éle „telített”. Ennek a konstrukciónak köszönhetően az alulról határolt folyam megtalálásának algoritmusa a következő lesz:

  1. Az építésből .
  2. Keresse meg a gráf áramlását , előnyben részesítve az űrlap éleit és a .
  3. Ha , hol van a gráf folyama, amelyben az alábbi élek sávszélessége kimarad, akkor nincs megoldás.
  4. Ellenkező esetben számítsa ki az áramlást az áramlásból , pl. .

Az élkapacitás alulról történő korlátozása egy alternatívával

A feladatnak ez a változata megegyezik az előzővel, azzal a különbséggel, hogy az egyes élek áramlási értéke egyenlő is lehet -vel , azaz. vagy . A feltétel enyhe változása ellenére nincs polinomiális megoldás erre a problémára, ha a P és NP osztályok nem egyenlőek . Az állítás bizonyítására az Exact-3-SAT probléma polinomiális redukcióját adhatjuk .

Lásd még

Jegyzetek

  1. John J. O'Connor és Edmund F. Robertson . George Dantzig  (angol)  egy életrajz a MacTutor archívumában .
  2. Cottle, Richard; Johnson, Ellis; Wets, Roger, "George B. Dantzig (1914-2005)" Archiválva : 2015. szeptember 7., a Wayback Machine , Notices of the American Mathematical Society , v.54, no.3, 2007. március. Vö. 348. o
  3. 1 2 Hardesty, Larry, "Az alapvető algoritmus első javítása 10 év alatt" Archiválva : 2014. március 28., a Wayback Machine , MIT News Office, 2010. szeptember 27.
  4. Borndörfer, Ralf; Grotschel, Martin; Löbel, Andreas, "Alcuin's Transportation Problems and Integer Programing" Archiválva : 2011. augusztus 7., a Wayback Machine , Konrad-Zuse-Zentrum für Informationstechnik , Berlin, Németország, 1995. november. Vö. 3. o
  5. Powell, Stewart M., "The Berlin Airlift" , Air Force Magazine , 1998. június.
  6. Dantzig, GB, "Application of the Simplex Method to a Transportation Problem" Archiválva : 2010. július 19. a Wayback Machine -nél , in TC Koopman (szerk.): Activity Analysis and Production and Allocation , New York, (1951) 359-373.
  7. Ford, LR, Jr.; Fulkerson, D.R., "Maximum Flow through a Network", Canadian Journal of Mathematics (1956), 399-404.
  8. Ford, LR, Jr.; Fulkerson, D.R., Flows in Networks , Princeton University Press (1962).
  9. Kelner, Jonathan, "Elektromos áramlások, laplaci rendszerek és a maximális áramlás gyorsabb közelítése irányítatlan grafikonokban" Archiválva : 2011. június 24., a Wayback Machine , beszélgetés a CSAIL-nél, MIT, 2010. szeptember 28., kedd
  10. Elektromos áramlások, laplaci rendszerek és a maximális áramlás gyorsabb közelítése irányítatlan grafikonokon Archiválva 2010. november 29-én a Wayback Machine -nél , Paul Cristiano et al., 2010. október 19..
  11. Dinits algoritmus . Letöltve: 2010. október 28. Az eredetiből archiválva : 2015. május 7..

Irodalom