Mamy n punktów wysyłających towar i t punktów odbierających. Istnieje droga od każdego dostawcy do każdego odbiorcy i znany jest koszt transportu jednostki towaru.
Jak zorganizować transport, żeby koszt był minimalny?
Zapiszmy dane w postaci tabeli:
![\begin{array}[]{|c|ccccc|c|}\hline&O_{1}&O_{2}&\cdots&\cdots&O_{t}&\text{podaż}\\
\hline D_{1}&a_{{1,1}}&a_{{1,2}}&\cdots&\cdots&a_{{1,t}}&b_{1}\\
D_{2}&a_{{2,1}}&a_{{2,2}}&\cdots&\cdots&a_{{2,t}}&b_{2}\\
\vdots&\vdots&\vdots&\ddots&&\vdots&\vdots\\
D_{n}&a_{{n,1}}&a_{{n,2}}&\cdots&\cdots&a_{{n,t}}&b_{n}\\
\hline\text{popyt}&c_{1}&c_{2}&\cdots&\cdots&c_{t}&\\
\hline\end{array}](wyklady/op1/mi/mi1599.png)
Wprowadźmy zmienne
opisujące ilość towaru przewożonego
od i - tego dostawcy do j - tego odbiorcy.
Niech
oznacza koszt przewiezienia jednostki towaru.
Jako funkcję celu przyjmijmy: ![]()
Zadanie transportowe nazywamy zbilansowanym gdy podaż = popyt,
czyli
.
W przypadku zbilansowanym obszar dopuszczalny opisany jest następującym układem równań i nierówności:
, - pierwszy dostawca wysyła cały towar,
, - drugi dostawca wysyła cały towar,
![]()
, - n-ty dostawca wysyła cały towar,
, - pierwszy odbiorca dostaje cały towar,
, - drugi odbiorca dostaje cały towar,
![]()
, - t-ty odbiorca dostaje cały towar,
Ponadto nie można przewozić ujemnej liczby towarów - a więc:
.
Czasami towary są podzielne jak prąd czy woda, ale zwykle dodajemy warunki:
![]()
Jeśli dodamy do siebie równania opisujące popyt otrzymamy
![]()
Analogicznie jeśli dodamy do siebie równania opisujące podaż otrzymamy
.
Zatem dla zadania niezbilansowanego układ równań opisujący obszar dopuszczalny jest sprzeczny zaś dla zadania zbilansowanego układ równań opisujący obszar dopuszczalny jest zależny. Można pokazać, że rząd macierzy układu jest równy
a więc tyle musi być zmiennych bazowych.
Zakładamy, że zagadnienie jest zbilansowane.
Zadanie opisują dwie tablice mające tyle wierszy ilu jest dostawców i tyle kolumn ilu jest odbiorców plus wiersze i kolumny nagłówków.
W pierwszej zapisujemy koszty lub koszty zredukowane - czyli to co jest nad kreską w tablicy sympleks.
Druga tablica opisuje przewozy - dla zmiennej bazowej
wstawiamy ilość towaru przewożonego od i - tego dostawcy do j - tego odbiorcy zaś dla zmiennych niebazowych krzyżyk x. Ta tablica opisuje to co jest w tablicy sympleks z prawej strony kreski i umiejscowienie zmiennych bazowych jak w zrewidowanej metodzie sympleks.
| a) Metoda wierzchołka północno - zachodniego |
| 1) Jeżeli mamy tylko jednego dostawcę lub tylko jednego odbiorcę to wszystkie zmienne są bazowe. |
| W tablicę przewozów wpisujemy popyty lub podaże odpowiednio. |
| 2) Wybieramy wierzchołek północno - zachodni czyli miejsce w lewym górnym rogu. |
| 2a) Jeżeli |
| ( |
| 2b) Jeżeli |
| ( |
| GO TO 1. |
Dane jest zagadnienie transportowe opisane tabelą:
![]()
| Przewozy | Podaże | ||||
| 6 | 15 |
||||
| X | 5 | ||||
| X | 10 | ||||
| X | 5 | ||||
| Popyty | 6 |
4 | 10 | 15 |
![]()
| Przewozy | Podaże | ||||
| 6 | 4 | 15 |
|||
| X | X | 5 | |||
| X | X | 10 | |||
| X | X | 5 | |||
| Popyty | 6 |
4 |
10 | 15 |
![]()
| Przewozy | Podaże | ||||
| 6 | 4 | 5 | X | 15 |
|
| X | X | 5 | |||
| X | X | 10 | |||
| X | X | 5 | |||
| Popyty | 6 |
4 |
10 |
15 |
![]()
| Przewozy | Podaże | ||||
| 6 | 4 | 5 | X | 15 |
|
| X | X | 5 | 5 |
||
| X | X | X | 10 | ||
| X | X | X | 5 | ||
| Popyty | 6 |
4 |
10 |
15 |
Mamy teraz jedną linię.
| Przewozy | Podaże | ||||
| 6 | 4 | 5 | X | 15 |
|
| X | X | 5 | 0 | 5 |
|
| X | X | X | 10 | 10 |
|
| X | X | X | 5 | 5 |
|
| Popyty | 6 |
4 |
10 |
15 |
b) Metoda minimalnych kosztów.
Ta metoda różni się od poprzedniej tym, że zamiast wierzchołka północno - zachodniego wybieramy miejsce tabeli o minimalnym koszcie.
| 0) dana jest tablica kosztów K i tablica przewozów P opisująca wierzchołek startowy. |
| 1) Test optymalności. |
| 1a) W tablicy kosztów zaznaczamy miejsca odpowiadające zmiennym bazowym. |
| 1b) Za tablicą w prawym górnym rogu wpisujemy 0. |
| 1c) Uzupełniamy miejsca pod tabelą i z prawej strony takimi liczbami by w przypadku |
| zaznaczonych komórek - zmiennych bazowych, |
| suma liczby w tablicy, liczby dopisanej w wierszu i liczby dopisanej w kolumnie dawała 0. |
| 1c) Wyliczamy tablicę kosztów zredukowanych dodając do każdego wiersza liczbę dopisaną z prawej strony |
| i dodając do każdej kolumny liczbę dopisaną poniżej. |
| 2) Jeżeli nie ma liczb ujemnych w tablicy kosztów to STOP. Ostatni schemat przewozów jest optymalny. |
W zadaniu z poprzedniego przykładu koszty opisane są tabelą:
Zaznaczamy komórki zmiennych bazowych * i dopisujemy 0 w pierwszym wierszu.
| Koszty | |||||
| 1* | 3* | 7* | 9 | 0 | |
| 5 | 7 | 5* | 10* | ||
| 6 | 2 | 4 | 8* | ||
| 6 | 0 | 2 | 10* | ||
Wymusza to liczby -1,-3 i -7 w pierwszych kolumnach.
| Koszty | |||||
| 1* | 3* | 7* | 9 | 0 | |
| 5 | 7 | 5* | 10* | ||
| 6 | 2 | 4 | 8* | ||
| 6 | 0 | 2 | 10* | ||
| -1 | -3 | -7 |
Wymusza to 2 w drugim wierszu.
| Koszty | |||||
| 1* | 3* | 7* | 9 | 0 | |
| 5 | 7 | 5* | 10* | 2 | |
| 6 | 2 | 4 | 8* | ||
| 6 | 0 | 2 | 10* | ||
| -1 | -3 | -7 |
Wymusza to -12 w czwartej kolumnie.
| Koszty | |||||
| 1* | 3* | 7* | 9 | 0 | |
| 5 | 7 | 5* | 10* | 2 | |
| 6 | 2 | 4 | 8* | ||
| 6 | 0 | 2 | 10* | ||
| -1 | -3 | -7 | -12 |
Wymusza to 4 i 2 w ostatnich wierszach.
| Koszty | |||||
| 1* | 3* | 7* | 9 | 0 | |
| 5 | 7 | 5* | 10* | 2 | |
| 6 | 2 | 4 | 8* | 4 | |
| 6 | 0 | 2 | 10* | 2 | |
| -1 | -3 | -7 | -12 | 2 |
Obliczając koszty zredukowane otrzymujemy.
| 0 | 0 | 0 | -3 | ||
| 6 | 6 | 0 | 0 | ||
| 9 | 3 | 1 | 0 | ||
| 7 | -1 | -3 | 0 | ||
3) Wędrowanie między wierzchołkami.
3a) Wybieramy drogę o ujemnym koszcie - w przykładzie drogę wyznaczoną zmienną
i w tablicy przewozy do X dopisujemy
.
3b) Wpisując przy odpowiednich zmiennych bazowych
budujemy cykl tak by popyt i podaż z uwzględnieniem
nie zmieniła się.
3c) Wybieramy maksymalną ![]()
4) Podstawiamy wyliczoną wartość
i usuwamy z bazy jedną ze zmiennych na której ilość przewożonego towaru zmniejszyliśmy do 0.
| Przewozy | ||||
| 6 | 4 | 5 | X | |
| X | X | 5 | 0 | |
| X | X | X | 10 | |
| X | X |
X | 5 | |
Budujemy cykl:
| Przewozy | ||||
| 6 | 4 |
5 |
X | |
| X | X | 5 |
0 |
|
| X | X | X | 10 | |
| X | X |
X | 5 |
|
i nowym schematem przewozów jest:
| Przewozy | ||||
|---|---|---|---|---|
| 6 | X | 9 | X | |
| X | X | 1 | 4 | |
| X | X | X | 10 | |
| X | 4 | X | 1 |
Transport niezbilansowany
W przypadku gdy podaż przewyższa popyt zadanie można doprowadzić do zbilansowanego wprowadzając sztucznego odbiorcę o popycie równoważącym różnicę i kosztach przewozów 0. Po wyliczeniu optymalnego przewozu mówimy, że towary wysłane do sztucznego odbiorcy zostają u dostawców.
W przypadku gdy popyt przewyższa podaż, analogicznie, zadanie można doprowadzić do zbilansowanego wprowadzając sztucznego dostawcę o podaży równoważącym różnicę i kosztach przewozów 0.
Dane jest zagadnienie transportowe opisane tabelą:
| Koszty | Podaże | ||||
| 1 | 3 | 7 | 9 | 15 | |
| 5 | 7 | 5 | 10 | 5 | |
| 6 | 2 | 4 | 8 | 10 | |
| 6 | 0 | 2 | 10 | 5 | |
| Popyty | 7 | 8 | 10 | 10 |
Znajdź wierzchołek startowy stosując algorytm:
a) Wierzchołka północno - zachodniego.
b) Minimalnych kosztów.
W zagadnieniu transportowym opisanym tabelą:
| Koszty | Podaże | ||||
| 1 | 3 | 7 | 9 | 9 | |
| 6 | 9 | 5 | 10 | 13 | |
| 6 | 4 | 4 | 10 | 21 | |
| Popyty | 10 | 7 | 9 | 17 |
aktualnie realizowany jest następujący schemat przewozów
.
| Przewozy | Podaże | ||||
| x | x | x | 9 | ||
| x | x | 5 | 8 | ||
| 10 | 7 | 4 | x | ||
| Popyty |
Stosując metodę sympleks popraw ten schemat przewozów do optymalnego i znajdź wszystkie optymalne schematy przewozów.
Znajdź wszystkie optymalne schematy przewozów dla zadania transportowego:
| Koszty | Popyty | ||||
| 9 | 2 | 1 | 10 | 8 | |
| 3 | 3 | 0 | 6 | 5 | |
| 9 | 5 | 6 | 15 | 11 | |
| Podaże | 5 | 5 | 10 | 4 |
Zalecaną jest metoda minimalnych kosztów.
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i
Mechaniki UW, 2009-2010.
Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach
Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.