Cirkulationsproblem
Cirkulationsproblemet och dess varianter är en generalisering av nätverksflödesproblem , med den extra begränsningen av en nedre gräns för kantflöden, och med flödeskonservering som också krävs för källan och sänkan (dvs. det finns inga speciella noder). I varianter av problemet finns det flera varor som strömmar genom nätverket och en kostnad på flödet.
Definition
Givet flödesnätverk med:
- , nedre gräns för flöde från nod till nod ,
- , övre gräns för flöde från nod till nod ,
- , kostnad för en flödesenhet på
och begränsningarna:
- ,
- (flöde kan inte visas eller försvinna i noder).
Att hitta en flödesuppgift som uppfyller begränsningarna ger en lösning på det givna cirkulationsproblemet.
I den lägsta kostnadsvarianten av problemet, minimera
Cirkulation av flera varor
I ett cirkulationsproblem med flera varor måste du också hålla reda på flödet av de enskilda varorna:
Flödet av varu från till . Det totala flödet.
Det finns också en lägre gräns för varje flöde av råvara.
Bevarandebegränsningen måste upprätthållas individuellt för varorna:
Lösning
För cirkulationsproblemet har många polynomalgoritmer utvecklats (t.ex. Edmonds–Karp algorithm , 1972; Tarjan 1987-1988). Tardos hittade den första starkt polynomiska algoritmen.
För fallet med flera varor är problemet NP-komplett för heltalsflöden. För bråkflöden är det lösbart i polynomtid , då man kan formulera problemet som ett linjärt program .
Relaterade problem
Nedan ges några problem och hur man löser dem med den allmänna cirkulationsuppsättningen som ges ovan.
- Minsta kostnadsproblem med cirkulation av flera varor - Använder alla begränsningar som anges ovan.
- Cirkulationsproblem med minimal kostnad - Använd en enda vara
- Multi-commodity cirkulation - Lös utan att optimera kostnaden.
- Enkel cirkulation - Använd bara en vara och utan kostnad.
- Multi-commodity flow - Om anger ett krav på för commodity från till , skapa en kant i för alla varor . Låt för alla andra kanter.
- Lägsta kostnad flödesproblem för flera varor - Som ovan, men minimera kostnaden.
- Minsta kostnadsflödesproblem - Som ovan, med 1 vara.
- Maximalt flödesproblem - Sätt alla kostnader till 0 och lägg till en kant från sänkan till källans med , ∞ och .
- Minsta kostnad maximalt flöde problem - Hitta först den maximala flödesmängden . Lös sedan med och .
- Enkällas kortaste väg - Låt och för alla kanter i grafen och lägg till en kant med och .
- Kortaste vägen för alla par - Låt alla kapaciteter vara obegränsade och hitta ett flöde på 1 för varor, en för varje nodpar.
- ^ Éva Tardos. "En starkt polynomisk minimikostnadscirkulationsalgoritm". Combinatorica . 5 : 247-255. doi : 10.1007/BF02579369 .
- ^ S. Even och A. Itai och A. Shamir (1976). "Om komplexiteten i tidtabell och problem med flöde av flera varor" . SIAM Journal on Computing . SIAM. 5 (4): 691-703. doi : 10.1137/0205048 . Arkiverad från originalet 2013-01-12.