Problém toku minimálních nákladů - Minimum-cost flow problem

The problém toku minimálních nákladů (MCFP) je optimalizace a rozhodovací problém najít nejlevnější možný způsob odeslání určitého množství toku a toková síť. Typická aplikace tohoto problému zahrnuje nalezení nejlepší trasy dodání z továrny do skladu, kde má silniční síť spojenou určitou kapacitu a náklady. Problém s minimálními náklady je jedním z nejzásadnějších ze všech problémů s tokem a oběhem, protože většinu ostatních takových problémů lze považovat za problém s tokem minimálních nákladů a také to, že jej lze efektivně vyřešit pomocí síťový simplexní algoritmus.

Definice

Toková síť je a řízený graf se zdrojovým vrcholem a vrchol dřezu , kde každý okraj má kapacitu , průtok a náklady , přičemž většina algoritmů toku minimálních nákladů podporuje okraje se zápornými náklady. Náklady na odeslání tohoto toku podél okraje je . Problém vyžaduje určité množství toku k odeslání ze zdroje potopit se .

Definicí problému je minimalizovat Celkové náklady toku přes všechny hrany:

s omezeními

Omezení kapacity:
Šikmá symetrie:
Zachování toku:
Požadovaný průtok:

Vztah k dalším problémům

Variací tohoto problému je najít tok, který je maximální, ale má nejnižší náklady z řešení maximálního toku. To by se dalo nazvat problémem s minimálním nákladem a maximálním tokem a je užitečné pro nalezení maxima s minimálními náklady párování.

U některých řešení je nalezení maximálního toku minimálních nákladů místo toho jednoduché. Pokud ne, lze najít maximální průtok provedením a binární vyhledávání na .

Souvisejícím problémem je problém s minimálními náklady na oběh, které lze použít k řešení minimálního toku nákladů. Toho je dosaženo nastavením dolní meze na všech hranách na nulu a následným vytvořením další hrany z umyvadla ke zdroji , s kapacitou a dolní mez , vynucení celkového toku z na být také .

Následující problémy jsou speciální případy problému s minimálním tokem nákladů (poskytujeme zase stručné náčrtky každé použitelné redukce):[1]

  • Problém s nejkratší cestou (jediný zdroj). Vyžadovat, aby proveditelné řešení problému toku minimálních nákladů poslalo jednu jednotku toku z určeného zdroje do určeného umyvadla . Dejte všem hranám nekonečnou kapacitu.
  • Problém s maximálním průtokem. Nechejte všechny uzly nulovou poptávku a náklady spojené s procházením libovolnou hranou nechte nulové. Nyní představte novou výhodu ze současného umyvadla k aktuálnímu zdroji . Stanovte, že jednotkové náklady na odesílání plynou přes okraj rovná se a povolení nekonečná kapacita. (Toto snížení je také zmíněno v Problém oběhu ).
  • Problém s přiřazením. Předpokládejme, že každá partita v bipartici má vrcholy a označte biparticii . Dejte každému zásobování a dát každému poptávka . Každá hrana má mít jednotkovou kapacitu.

Řešení

Problém s minimálními náklady lze vyřešit pomocí lineární programování, protože optimalizujeme lineární funkci a všechna omezení jsou lineární.

Kromě toho existuje mnoho kombinatorických algoritmů, pro komplexní průzkum viz [1]. Některé z nich jsou zevšeobecněním algoritmy maximálního toku, jiní používají zcela odlišné přístupy.

Známé základní algoritmy (mají mnoho variant):

aplikace

Minimální hmotnost bipartitní shody

Snížení bipartitní shody minimální hmotnosti na minimální náklady s maximálním problémem průtoku

Vzhledem k bipartitní graf G = (AB, E), cílem je najít maximální shodu mohutnosti G to má minimální náklady. Nechat w: ER být váhovou funkcí na okrajích E. Minimální váha problému dvojího párování nebo přiřazení je najít perfektní párování ME jejichž celková hmotnost je minimalizována. Cílem je snížit tento problém na problém toku sítě.

Nechat G' = (PROTI' = AB, E' = E). Přiřaďte kapacitu všech hran v E' do 1. Přidejte zdrojový vrchol s a připojte jej ke všem vrcholům v A' a přidejte vrchol dřezu t a spojit všechny vrcholy uvnitř skupiny B ' k tomuto vrcholu. Kapacita všech nových hran je 1 a jejich cena je 0. Je prokázáno, že v minimální bipartitní shodě existuje minimální hmotnost G právě tehdy, pokud v systému dochází k minimálním nákladům G'. [7][mrtvý odkaz ]

Viz také

Reference

  1. ^ Ahuja, Ravindra K .; Magnanti, Thomas L .; Orlin, James B. (1993). Toky sítě. Teorie, algoritmy a aplikace. Prentice Hall.
  1. ^ Ravindra K. Ahuja; Thomas L. Magnanti & James B. Orlin (1993). Toky sítě: Teorie, algoritmy a aplikace. Prentice-Hall, Inc. ISBN  978-0-13-617549-0.
  2. ^ Morton Klein (1967). "Prvotní metoda pro minimální toky nákladů s aplikacemi na problémy s přiřazením a přepravou". Věda o řízení. 14 (3): 205–220. CiteSeerX  10.1.1.228.7696. doi:10,1287 / mnsc.14.3.205.
  3. ^ Andrew V. Goldberg & Robert E. Tarjan (1989). Msgstr "Hledání cirkulací s minimálními náklady zrušením negativních cyklů". Deník ACM. 36 (4): 873–886. doi:10.1145/76359.76368.
  4. ^ Jack Edmonds & Richard M. Karp (1972). Msgstr "Teoretická vylepšení v algoritmické efektivitě při problémech s tokem sítě". Deník ACM. 19 (2): 248–264. doi:10.1145/321694.321699.
  5. ^ Andrew V. Goldberg & Robert E. Tarjan (1990). "Nalezení oběhů s minimálními náklady postupnou aproximací". Matematika. Oper. Res. 15 (3): 430–466. doi:10,1287 / bř. 15.3.430.
  6. ^ James B. Orlin (1997). "Polynomiální časově primitivní síťový simplexní algoritmus pro minimální toky nákladů". Matematické programování. 78 (2): 109–129. doi:10.1007 / bf02614365. hdl:1721.1/2584.

externí odkazy