Zagadnienia

15. Zagadnienie transportowe

15.1. Zagadnienie transportowe

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:

O1O2⋯⋯OtpodażD1a1,1a1,2⋯⋯a1,tb1D2a2,1a2,2⋯⋯a2,tb2⋮⋮⋮⋱⋮⋮Dnan,1an,2⋯⋯an,tbnpopytc1c2⋯⋯ct

Wprowadźmy zmienne xi,j opisujące ilość towaru przewożonego od i - tego dostawcy do j - tego odbiorcy.

Niech ai⁢j oznacza koszt przewiezienia jednostki towaru.

Jako funkcję celu przyjmijmy: m⁢i⁢n⁢⁢x0⁢=∑i=1n∑j=1tai,j⁢xi,j

Zadanie transportowe nazywamy zbilansowanym gdy podaż = popyt,

czyli ∑i=1n⁢bi⁢=⁢∑j=1t⁢cj.

W przypadku zbilansowanym obszar dopuszczalny opisany jest następującym układem równań i nierówności:

∑j=1tx1,j=b1, - pierwszy dostawca wysyła cały towar,

∑j=1tx2,j=b2, - drugi dostawca wysyła cały towar,

⋮

∑j=1tx1,j=bn, - n-ty dostawca wysyła cały towar,

∑i=ntx1,j=c1, - pierwszy odbiorca dostaje cały towar,

∑i=ntx2,j=c2, - drugi odbiorca dostaje cały towar,

⋮

∑i=ntx1,j=ct, - t-ty odbiorca dostaje cały towar,

Ponadto nie można przewozić ujemnej liczby towarów - a więc:

∀1≤i≤n∀1≤j≤t⁢⁢xi,j≥0

.

Czasami towary są podzielne jak prąd czy woda, ale zwykle dodajemy warunki:

∀i,j⁢xi,j∈Z

Jeśli dodamy do siebie równania opisujące popyt otrzymamy

∑i=1n∑j=1txi,j=∑i=1nbi

Analogicznie jeśli dodamy do siebie równania opisujące podaż otrzymamy

∑j=1t∑i=1nxi,j=∑j=1tci.

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 n+t-1 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 xi,j 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.

Szukanie wierzchołka startowego.
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 b1≥c1 to w to miejsce tablicy wpisujemy c1 zaś w pozostałe miejsca pierwszej kolumny krzyżyki.
( x1,1=c1 ). Teraz zamiast b1 wpisujemy b1-c1 i usuwamy pierwszego odbiorcę.
2b) Jeżeli b1<c1 to w to miejsce tablicy wpisujemy b1 zaś w pozostałe miejsca pierwszego wiersza krzyżyki.
( x1,1=b1 ). Teraz zamiast c1 wpisujemy c1-b1 i usuwamy pierwszego dostawcę.
GO TO 1.
Przykład 15.1

Dane jest zagadnienie transportowe opisane tabelą:

M⁢i⁢n⁢6,15=6

Przewozy O1 O2 O3 O4 Podaże
D1 6 15 ∖ 9
D2 X 5
D3 X 10
D4 X 5
Popyty 6∖ 4 10 15

M⁢i⁢n⁢4,9=4

Przewozy O1 O2 O3 O4 Podaże
D1 6 4 15 ∖ 9 ∖ 5
D2 X X 5
D3 X X 10
D4 X X 5
Popyty 6∖ 4∖ 10 15

M⁢i⁢n⁢10,5=5

Przewozy O1 O2 O3 O4 Podaże
D1 6 4 5 X 15 ∖ 9 ∖ 5 ∖
D2 X X 5
D3 X X 10
D4 X X 5
Popyty 6∖ 4∖ 10 ∖ 5 15

M⁢i⁢n⁢5,5=5

Przewozy O1 O2 O3 O4 Podaże
D1 6 4 5 X 15 ∖ 9 ∖ 5 ∖
D2 X X 5 5∖ 0
D3 X X X 10
D4 X X X 5
Popyty 6∖ 4∖ 10 ∖ 5∖ 15

Mamy teraz jedną linię.

Przewozy O1 O2 O3 O4 Podaże
D1 6 4 5 X 15 ∖ 9 ∖ 5 ∖
D2 X X 5 0 5∖ 0∖
D3 X X X 10 10∖
D4 X X X 5 5∖
Popyty 6∖ 4∖ 10 ∖ 5∖ 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.

Metoda sympleks.
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.
Przykład 15.2

W zadaniu z poprzedniego przykładu koszty opisane są tabelą:

Zaznaczamy komórki zmiennych bazowych * i dopisujemy 0 w pierwszym wierszu.

Koszty O1 O2 O3 O4
D1 1* 3* 7* 9 0
D2 5 7 5* 10*
D3 6 2 4 8*
D4 6 0 2 10*

Wymusza to liczby -1,-3 i -7 w pierwszych kolumnach.

Koszty O1 O2 O3 O4
D1 1* 3* 7* 9 0
D2 5 7 5* 10*
D3 6 2 4 8*
D4 6 0 2 10*
-1 -3 -7

Wymusza to 2 w drugim wierszu.

Koszty O1 O2 O3 O4
D1 1* 3* 7* 9 0
D2 5 7 5* 10* 2
D3 6 2 4 8*
D4 6 0 2 10*
-1 -3 -7

Wymusza to -12 w czwartej kolumnie.

Koszty O1 O2 O3 O4
D1 1* 3* 7* 9 0
D2 5 7 5* 10* 2
D3 6 2 4 8*
D4 6 0 2 10*
-1 -3 -7 -12

Wymusza to 4 i 2 w ostatnich wierszach.

Koszty O1 O2 O3 O4
D1 1* 3* 7* 9 0
D2 5 7 5* 10* 2
D3 6 2 4 8* 4
D4 6 0 2 10* 2
-1 -3 -7 -12 2

Obliczając koszty zredukowane otrzymujemy.

Koszty1 O1 O2 O3 O4
D1 0 0 0 -3
D2 6 6 0 0
D3 9 3 1 0
D4 7 -1 -3 0

3) Wędrowanie między wierzchołkami.

3a) Wybieramy drogę o ujemnym koszcie - w przykładzie drogę wyznaczoną zmienną x4,2 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ą Δ=m⁢i⁢n⁢xi,j⁢|Δ⁢ występuje ze znakiem -

4) Podstawiamy wyliczoną wartość Δ i usuwamy z bazy jedną ze zmiennych na której ilość przewożonego towaru zmniejszyliśmy do 0.

Przykład 15.3
Przewozy O1 O2 O3 O4
D1 6 4 5 X
D2 X X 5 0
D3 X X X 10
D4 X X+Δ X 5

Budujemy cykl:

Przewozy O1 O2 O3 O4
D1 6 4-Δ 5+Δ X
D2 X X 5-Δ 0+Δ
D3 X X X 10
D4 X X+Δ X 5-Δ

Δ=m⁢i⁢n⁢4,5,5=4 i nowym schematem przewozów jest:

Przewozy O1 O2 O3 O4
D1 6 X 9 X
D2 X X 1 4
D3 X X X 10
D4 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.

Jako literaturę uzupełniającą do tego tematu polecamy książki [10] i [6].

Ćwiczenie 15.1

Dane jest zagadnienie transportowe opisane tabelą:

Koszty O1 O2 O3 O4 Podaże
D1 1 3 7 9 15
D2 5 7 5 10 5
D3 6 2 4 8 10
D4 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.

Ćwiczenie 15.2

W zagadnieniu transportowym opisanym tabelą:

Koszty O1 O2 O3 O4 Podaże
D1 1 3 7 9 9
D2 6 9 5 10 13
D3 6 4 4 10 21
Popyty 10 7 9 17

aktualnie realizowany jest następujący schemat przewozów P1.

Przewozy O1 O2 O3 O4 Podaże
D1 x x x 9
D2 x x 5 8
D3 10 7 4 x
Popyty

Stosując metodę sympleks popraw ten schemat przewozów do optymalnego i znajdź wszystkie optymalne schematy przewozów.

Ćwiczenie 15.3

Znajdź wszystkie optymalne schematy przewozów dla zadania transportowego:

Koszty H1 H2 H3 H4 Popyty
S1 9 2 1 10 8
S2 3 3 0 6 5
S3 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.

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.