Problem przepływu przy minimalnych kosztach
Problem przepływu o minimalnym koszcie ( MCFP ) to problem optymalizacyjny i decyzyjny mający na celu znalezienie najtańszego możliwego sposobu przesłania określonej ilości przepływu przez sieć przepływową . Typowe zastosowanie tego problemu polega na znalezieniu najlepszej trasy dostawy z fabryki do magazynu, gdzie sieć drogowa wiąże się z pewną przepustowością i kosztami. Problem przepływu przy minimalnych kosztach jest jednym z najbardziej fundamentalnych spośród wszystkich problemów związanych z przepływem i cyrkulacją, ponieważ większość innych tego typu problemów można przedstawić jako problem przepływu przy minimalnych kosztach, a także można go efektywnie rozwiązać za pomocą algorytmu simpleks sieci .
Definicja
Sieć przepływów jest skierowanym z wierzchołkiem źródłowym ujścia , gdzie każda krawędź ma pojemność , przepływ i kosztuje z większość algorytmów przepływu o minimalnych kosztach obsługujących krawędzie z kosztami ujemnymi. Koszt wynosi . Problem wymaga pewnej ujścia .
Definicja problemu polega na zminimalizowaniu całkowitego kosztu przepływu przez wszystkie krawędzie:
z ograniczeniami
Ograniczenia wydajności : Symetria skośna : Zachowanie przepływu : Wymagany przepływ :
Stosunek do innych problemów
Odmianą tego problemu jest znalezienie przepływu, który jest maksymalny, ale ma najniższy koszt wśród rozwiązań z maksymalnym przepływem. Można to nazwać problemem maksymalnego przepływu o minimalnym koszcie i jest to przydatne do znajdowania dopasowań o minimalnym koszcie maksymalnym .
W przypadku niektórych rozwiązań znalezienie maksymalnego przepływu przy minimalnym koszcie jest proste. Jeśli nie, maksymalny przepływ można znaleźć, binarne na .
Powiązanym problemem jest problem obiegu minimalnych kosztów , który można wykorzystać do rozwiązania przepływu minimalnych kosztów. Osiąga się następnie utworzenie dodatkowej krawędzi od zlewu o pojemności i dolna granica , zmuszając całkowity przepływ z do również być .
Następujące problemy są szczególnymi przypadkami problemu przepływu minimalnych kosztów (dostarczamy po kolei krótkie szkice każdej możliwej redukcji):
- Problem najkrótszej ścieżki (pojedyncze źródło). Wymagaj, aby wykonalne rozwiązanie problemu przepływu minimalnych kosztach wysyłało jedną jednostkę przepływu z wyznaczonego zlewu . Daj wszystkim krawędziom nieskończoną pojemność.
- Problem z maksymalnym przepływem . Niech wszystkie węzły mają zerowe zapotrzebowanie i niech koszt związany z przejściem przez dowolną krawędź będzie równy zeru. nową bieżącego _ _ jednostkowy koszt wysłania i nieskończona pojemność. (Ta redukcja jest również wspomniana w problemie z krążeniem ).
- Problem z przydziałem . Załóżmy że każdy zestaw partycji w dwupartycji ma i oznacz dwupartycję przez . Daj każdemu i daj każdemu popyt \ . Każda krawędź ma mieć jednostkową pojemność.
Rozwiązania
Problem przepływu minimalnych kosztów można rozwiązać za pomocą programowania liniowego , ponieważ optymalizujemy funkcję liniową, a wszystkie ograniczenia są liniowe.
Poza tym istnieje wiele algorytmów kombinatorycznych, obszerne badanie można znaleźć w rozdziale . Niektóre z nich są uogólnieniami algorytmów maksymalnego przepływu , inne wykorzystują zupełnie inne podejścia.
Dobrze znane podstawowe algorytmy (mają wiele odmian):
- Anulowanie cyklu : ogólna metoda pierwotna.
- Anulowanie cięcia : ogólna metoda dualna.
- Minimalne anulowanie cyklu średniego : prosty algorytm silnie wielomianowy .
- Kolejne najkrótsze ścieżki i skalowanie pojemności : metody dualne, które można postrzegać jako uogólnienie algorytmu Forda-Fulkersona .
- Skalowanie kosztów : podejście pierwotne-podwójne, które można postrzegać jako uogólnienie algorytmu push-relabel .
- Sieciowy algorytm simpleks : wyspecjalizowana wersja metody programowania liniowego simplex .
- Niesprawny algorytm autorstwa DR Fulkersona
Aplikacja
Dopasowanie dwustronne o minimalnej wadze
Biorąc pod uwagę graf dwudzielny G = ( A ∪ B , E ) , celem jest znalezienie dopasowania o maksymalnej liczności w G , które ma minimalny koszt. Niech w : E → R będzie funkcją wagi na krawędziach E . Problem dwustronnego dopasowania minimalnej wagi lub problem przypisania polega na znalezieniu idealnie dopasowanego M ⊆ E , którego całkowita waga jest zminimalizowana. Chodzi o to, aby zredukować ten problem do problemu przepływu w sieci.
Niech G′ = ( V′ = ZA ∪ b , mi′ = mi ) . Przypisz pojemność wszystkich krawędzi w E′ do 1. Dodaj wierzchołek źródłowy s i połącz go ze wszystkimi wierzchołkami w A′ i dodaj wierzchołek ujścia t i połącz wszystkie wierzchołki z grupy B′ z tym wierzchołkiem. Pojemność wszystkich nowych krawędzi wynosi 1, a ich koszt 0. Udowodniono, że w G istnieje idealne dopasowanie dwudzielne o minimalnej wadze G′ występuje minimalny przepływ kosztów . [ martwy link ]
Zobacz też
- Bibliografia _ _ Thomas L. Magnanti i James B. Orlin (1993). Przepływy sieciowe: teoria, algorytmy i zastosowania . Prentice-Hall, Inc. ISBN 978-0-13-617549-0 .
- Bibliografia _ „Pierwotna metoda minimalnych przepływów kosztów z zastosowaniami do problemów przydziału i transportu”. Nauka o zarządzaniu . 14 (3): 205–220. CiteSeerX 10.1.1.228.7696 . doi : 10.1287/mnsc.14.3.205 .
- ^ Refael Hassin (1983). „Problem przepływu minimalnych kosztów: ujednolicone podejście do istniejących algorytmów i nowy algorytm wyszukiwania drzewa”. Programowanie matematyczne . 25 : 228–239. doi : 10.1007/bf02591772 .
- ^ Thomas R. Ervolina i S. Thomas McCormick (1993). „Dwa silnie wielomianowe algorytmy anulowania cięcia dla przepływu sieci o minimalnych kosztach” . Dyskretna matematyka stosowana . 4 : 133-165. doi : 10.1016/0166-218x(93)90025-j .
- ^ Andrew V. Goldberg i Robert E. Tarjan (1989). „Znajdowanie obiegów o minimalnych kosztach poprzez anulowanie negatywnych cykli”. Dziennik ACM . 36 (4): 873–886. doi : 10.1145/76359.76368 .
- ^ Jack Edmonds i Richard M. Karp (1972). „Teoretyczne ulepszenia wydajności algorytmicznej w przypadku problemów z przepływem sieci” . Dziennik ACM . 19 (2): 248–264. doi : 10.1145/321694.321699 .
- ^ Andrew V. Goldberg i Robert E. Tarjan (1990). „Znajdowanie obiegów o minimalnych kosztach poprzez kolejne przybliżenia”. Matematyka Oper. Rez . 15 (3): 430–466. doi : 10.1287/moor.15.3.430 .
- ^ James B. Orlin (1997). „Algorytm simpleks sieci pierwotnej w czasie wielomianowym dla przepływów o minimalnych kosztach”. Programowanie matematyczne . 78 (2): 109–129. doi : 10.1007/bf02614365 . hdl : 1721.1/2584 .
Linki zewnętrzne
- Biblioteka LEMON C++ z kilkoma algorytmami maksymalnego przepływu i minimalnego obiegu kosztów
- Biblioteka projektu MCFClass C++ z pewnymi algorytmami przepływu minimalnych kosztów i najkrótszej ścieżki