A. Kasperski, M. Kulej BO Zagadnienie transportowe
ZAGADNIENIE TRANSPORTOWE (ZT) Danych jest p dostawców, których podaż wynosi a1 , a2 , . . . , ap i q odbiorców, których popyt wynosi b1 , b2 , . . . , bq . Zakładamy, że Pq Pp problem jest zbilansowany, tj. i=1 ai = i=1 bi czyli całkowita podaż jest równa całkowitemu popytowi. Dane są również koszty przewozu cij jednostki towaru od i-tego dostawcy (i = 1, . . . , p) do j-tego odbiorcy (j = 1, . . . , q). Należy wyznaczyć plan transportu towaru od dostawców do odbiorców o minimalnym łącznym koszcie przewozu.
1
A. Kasperski, M. Kulej BO Zagadnienie transportowe
2
Model liniowy dla ZT: Zmienne decyzyjne: • xij - ilość towaru przewożona od i-tego dostawcy do j-tego odbiorcy. Model: Pp
min z = i=1 Pq j=1 xij = ai Pp i=1 xij = bi
Pq
j=1 cij xij
i = 1, . . . , p
[Podaż dostawców]
j = 1, . . . , q
[Popyt odbiorców]
xij ≥ 0 Przykład.. Rozpatrzmy następujący rysunek:
A. Kasperski, M. Kulej BO Zagadnienie transportowe
8 35
Fabryka 1
Miasto 1
45
Miasto 2
20
Miasto 3
30
Miasto 4
30
6 2
10 9
50
3
12
Fabryka 2
13 7 9 14
40
Fabryka 3
16 10
Zmienne decyzyjne: • xij - ilość towaru przewożona od i-tej fabryki do j-tego miasta.
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Model liniowy: min z = 8x11 + 6x12 + 10x13 + 9x14 + 9x21 + 12x22 + · · · + 5x34 x11 + x12 + x13 + x14 = 35 [Podaż fabryki 1] x21 + x22 + x23 + x24 = 50 [Podaż fabryki 2] x31 + x32 + x33 + x34 = 40 [Podaż fabryki 3] x11 + x21 + x31 = 45
[Popyt miasta 1]
x12 + x22 + x32 = 20
[Popyt miasta 2]
x13 + x23 + x33 = 30
[Popyt miasta 3]
x14 + x24 + x34 = 30
[Popyt miasta 4]
xij ≥ 0
4
A. Kasperski, M. Kulej BO Zagadnienie transportowe
5
Tablica transportowa:
6
8 x11
x13
x12
9 x21
12
14 x31
35
9 x32
30
35
x14
13 x23
x22
2
10
7
50
x24
16 x33
30
10
40
x34 30
Modele niezbilansowane Pp Pq 1. Przypadek i=1 ai > i=1 bi (nadwyżka podaży). Dodajemy Pq Pp fikcyjnego odbiorcę q + 1 o popycie bq+1 = i=1 ai − i=1 bi i kosztach przewozu ciq+1 = 0, i = 1, . . . , p.
A. Kasperski, M. Kulej BO Zagadnienie transportowe
6
Przykład. Rozpatrzmy tablicę: 6
8
x11 9
x12 12
10
x13 13
x21
x22
x23
20
20
30
6
8 40 50
x11 9
x12 12
0
10
x13
40
x14
13
0
x21
x22
x23
x24
20
20
30
20
50
W problemie tym występuje nadwyżka podaży równa 20. Dodajemy fikcyjnego odbiorcę numer 4 o popycie 20. Optymalne rozwiązanie wynosi: x12 = 20, x13 = 20, x21 = 20, x23 = 10, x24 = 20. Fikcyjny odbiorca odbiera 20 jedn. od dostawcy 2. Oznacza to faktycznie, że towar ten zostanie u dostawcy 2. Pp Pq 2. Przypadek i=1 ai < i=1 bi (nadwyżka popytu). Dodajemy Pq Pp fikcyjnego dostawcę p + 1 o podaży ap+1 = i=1 bi − i=1 ai i kosztach przewozu cp+1i = 0, i = 1, . . . , q.
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Metoda sympleks (potencjałów) dla zbilansowanego ZT Wyznaczanie pierwszego dopuszczalnego rozwiązania bazowego Ogólną idę konstrukcji podaje poniższy schemat: 1. Wybierz wśród nie skreślonych elementów tablicy transportowej dopuszczalną klatkę, powiedzmy (r, k) i wstaw do niej maksymalnie możliwą wielkość przewozu, tj. minimum z podaży wiersza r i popytu kolumny k czyli xrk = min(ar , bk ). Klatka ta staje się klatką bazową – odpowiada jej zmienna bazowa xrk . 2. Zmniejsz podaż r-tego dostawcy i popyt k-tego odbiorcy o wielkość ustalonego w kroku 1 przewozu xrk , tj. ar := ar − xrk , bk := bk − xrk . 3. Jeśli ar = 0, to skreśl w tablicy transportowej r-ty wiersz. Jeśli natomiast ar > 0, to skreśl w tablicy transportowej k-tą kolumnę (wtedy bk = 0). 4. Jeśli wszystkie elementy tablicy transportowej zostały skreślone, to
7
A. Kasperski, M. Kulej BO Zagadnienie transportowe
KONIEC. Wyznaczono początkowe bazowe rozwiązanie dopuszczalne z dokładnie (jeśli w każdym kroku skreślamy dokładnie jedną linię, tj. wiersz lub kolumnę macierzy) m + n − 1 zmiennymi bazowymi. W przeciwnym przypadku przejdź do kroku 1.
W zależności od sposobu wyboru dopuszczalnej klatki w kroku 1 powyższego schematu otrzymujemy różne metody konstrukcji początkowego bazowego rozwiązania dopuszczalnego: metoda kąta północno-zachodniego - dopuszczalną jest klatka leżąca w pierwszym wierszu i pierwszej kolumnie nie skreślonej części tablicy; metoda minimalnego elementu macierzy - dopuszczalną jest klatka o minimalnym koszcie w nie skreślonej części tablicy; metoda Vogel’a - VAM - dopuszczalną jest klatka o minimalnym koszcie w linii (wierszu lub kolumnie) z największym
8
A. Kasperski, M. Kulej BO Zagadnienie transportowe
9
współczynnikiem kary. Współczynnik kary (liczba nieujemna) jest modułem różnicy między najmniejszym i drugim z koleji najmniejszym kosztem w linii. Metoda kąta północno - zachodniego 6
8 35 9 14 45
13
12 9 20
16 30
6
8
7
35
35
50
10
30 2
35 9 20
10 14 45
13
12 20 9 20
7
16 30
10 30
9
40
16 30
20 6
8
50
13
12
14 45
35
2
10
7 10
50
20
10
13
12
14
7
20 9
16
10
10 45
20
30
9
30
12
13
7
9
16
10
20
10 14
6
8
50 40
30
20
2
35 9
35
45
35
2
10
35
40
30
10
6
8 35
9
10 40
10
6
8
2
10
50 40
30 2
10
35
35 9 20
10
13
12
14
20 9
16 10
45
20
7
30
50
10 40 30 30
A. Kasperski, M. Kulej BO Zagadnienie transportowe
10
Otrzymujemy następujące bazowe rozwiązanie dopuszczalne: x11 = 35, x21 = 10, x22 = 20, x23 = 20, x33 = 10, x34 = 30, pozostałe zmienne mają wartość 0. Koszt tego rozwiązania (przewozu) wynosi 1330. Metoda minimalnego elementu macierzy 6
8 9
12
14
9
45 8
6
5
12
9
13
7 10
16 30
20
9
13
7
16
20
30
9
45
50
10 40 30
12
14
40
10 30 2 35
5 45
9
50
30
45 14
5
35
30
6
8
2
10
9
13
9
12
13
7
14
9
16
10 40
30 6
8 5
8
9
30
13 16
15 45
20
45
10 40
7
5 14
50
45
30
10 40 30
30
20 8
6
5
9 50
10 30 2 35
5
10 30 2 35
12
45
7
16
20
6
10 30 2 35
30
10 30 2 35
12
45
13
7
16
10 40
5 14
9 15
45
20
50
25 30
30
50
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Otrzymujemy rozwiązanie bazowe (przewóz): x14 = 30, x12 = 5, x21 = 45, x23 = 5, x32 = 15, x33 = 25, pozostałe zmienne mają wartość 0. Koszt tego rozwiązania wynosi 1095. Klatki odpowiadające zmiennym bazowym nazywamy klatkami bazowymi. Uwaga: Jeśli w każdym kroku skreślamy tylko jeden wiersz albo jedną kolumnę, to otrzymamy bazowe rozwiązanie dopuszczalne o dokładnie p + q − 1 zmiennych bazowych. Ocena klatek i iteracja sympleksowa. Ciąg klatek (i1 , j1 ), (i2 , j2 ), ..., (il , jl ), gdzie l ≥ 4 tablicy
11
A. Kasperski, M. Kulej BO Zagadnienie transportowe
transportowej nazywamy cyklem jeżeli: • każde dwie sąsiednie klatki znajdują się w jednej linii tj. w jednej kolumnie lub jednym wierszu, • ostatnia klatka znajduje się w tej samej linii co klatka pierwsza czyli i1 = il lub j1 = jl • żadne trzy kolejne kolejne klatki tego ciągu nie leżą w jednej linii. Przykładowe cykle utworzone przez szare klatki pokazane są na poniższym rysunku:
12
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Ciągi (szare klatki), które nie tworzą cyklu:
Twierdzenie 1. Zestaw p + q − 1 klatek odpowiada zmiennym bazowym wtedy i tylko wtedy gdy klatki te nie zawierają cyklu. Dodanie jednej klatki niebazowej do klatek bazowych powoduje powstanie dokładnie jednego cyklu.
13
A. Kasperski, M. Kulej BO Zagadnienie transportowe
14
Rozpatrzmy początkowe bazowe rozwiązanie dopuszczalne rozważanego przykładu uzyskane metodą kąta północno zachodniego. Zmiennymi bazowymi są: ZB = {x11 , x21 , x22 , x23 , x33 , x34 }.
6
8
-
10
+ 2
35 12
9
13
+
7
50
-
10
20 14
20 16
9 +
10 45
35
20
30
10 -
40
30 30
Jaką maksymalną wartość możemy wprowadzić do klatki [1,4]? Jeżeli
A. Kasperski, M. Kulej BO Zagadnienie transportowe
wprowadzimy do klatki [1,4] pewną wartość δ to aby zachować bilans podaży i popytu musimy odjąć δ od wszystkich klatek - i dodać δ do wszystkich klatek +. Do klatki [1,4] wprowadzamy więc najmniejszą wartość występującą w klatkach - czyli 20 z klatki [2,3]. Oznacza to, że zmienna x23 wychodzi z bazy (zostaje wyzerowana). Nowymi zmiennymi bazowymi są {x11 , x14 , x21 , x22 , x33 , x34 } a bazowe rozwiązanie dopuszczalne jest następujące: x11 = 15, x14 = 20, x21 = 30, x22 = 20, x13 = 30, x14 = 10.
15
A. Kasperski, M. Kulej BO Zagadnienie transportowe
35-20
16
6
8
+ +20
10
12
9
20-20
+
35
20
15
-
2
13
7
50
-
10+20
30 +
-
20 14
30
10+20 30-20 45
20
10
16
9
30
40 10 30
Czy wartość funkcji celu (FC) zmaleje po wprowadzeniu x14 do bazy? Zmiana FC wyniesie: 20 ∗ (2 − 10 + 16 − 13 + 9 − 8) = 20 ∗ (−4) = −80, czyli zmniejszy się o 80. Liczba -4 jest oceną klatki niebazowej [1, 4].
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Twierdzenie 2. Aktualne rozwiązanie bazowe w tablicy transportowej jest optymalne jeżeli oceny (współczynniki optymalności) wszystkich klatek niebazowych są nieujemne. Jeżeli istnieje klatka niebazowa o ujemnej ocenie to można wyznaczyć lepsze rozwiązanie wprowadzając tą klatkę do bazy i wprowadzając do niej pewien niezerowy przewóz. Obliczanie ocen (współczynników optymalności) klatek niebazowych (zmiennych niebazowych) Współczynniki optymalności cij dla zmiennej niebazowej xij można wyznaczyć bez znajomości tablicy sympleksowej wykorzystują tzw. potencjały tj. liczby ui , i = 1, . . . , p oraz vj , j = 1, . . . , q. Wartości potencjałów wyznacza się następująco:
17
A. Kasperski, M. Kulej BO Zagadnienie transportowe
dla każdej zmiennej bazowej xij mamy równanie: cij = 0 = cij + ui + vj . Mamy zatem układ p + q − 1 równań o p + q niewiadomych. Przyjmując za jedną niewiadomą zero np. u1 = 0 można go łatwo rozwiązać. Znajomośc wartości ui , vj pozwala już wyznaczyć współczynniki optymalności za wzoru: cij = cij + ui + vj dla każdej zmiennej niebazowej xij .
18
A. Kasperski, M. Kulej BO Zagadnienie transportowe
v1
v2
2
10
35
35 9
u2
v4
v3 6
8
u1
19
20
10
13
12
14
50
20 9
u3
16
10 45
20
7
30
10
40
30 30
Potencjały dobieramy tak aby wyzerować współczynniki optymalności dla zmiennych bazowych, tj.:
A. Kasperski, M. Kulej BO Zagadnienie transportowe
8 + u1 + v1 = 0 (x11 ) 9 + u2 + v1 = 0 (x21 ) 12 + u2 + v2 = 0 (x22 ) 13 + u2 + v3 = 0 (x23 ) 16 + u3 + v3 = 0 (x33 ) 10 + u3 + v4 = 0 (x34 )
20
A. Kasperski, M. Kulej BO Zagadnienie transportowe
-11
-8
6
8
0
-12
-6 2
10
35 9
-1 10 14
9
20
-5
-4
-2
35
35
35
50
10
7
20
20
-4 45
13
12
21
10
16
10
30
30
30
40
0 2 45
20
20 -6
20
10
30
30
30
Algorytm transportowy KROK 1 Na wejściu podajemy zbilansowane zagadnienie transportowe. Jeżeli model nie jest zbilansowany to należy go zbilansować wprowadzając fikcyjnego dostawcę albo fikcyjnego odbiorcę.
50 40
A. Kasperski, M. Kulej BO Zagadnienie transportowe
KROK 2 Skonstruuj tablicę transportową i pierwsze rozwiązanie bazowe (dowolną z podanych metod ) KROK 3 Oblicz potencjały ui , i = 1, . . . , p i vi = 1, . . . , q oraz oceny klatek niebazowych cij = cij + ui + vi . Jeżeli wszystkie oceny cij ≥ 0 to KONIEC - rozwiązanie jest optymalne. W przeciwnym wypadku przejdź do kroku 4. KROK 4 Wybierz klatkę z najmniejszą ujemną oceną. Dodaj tą klatkę do klatek bazowych i zbuduj cykl zawierający dodawaną klatkę i pewne klatki bazowe (istnieje dokładnie jeden taki cykl). Oznacz dodawaną klatkę symbolem +. Następnie przesuwając się wzdłuż cyklu oznaczaj kolejne klatki cyklu na przemian - i +. Znajdź klatkę oznaczoną - dla której aktualna wielkość przewozu δ jest najmniejsza. Klatka ta wychodzi z bazy. Do klatek + dodaj przewóz
22
A. Kasperski, M. Kulej BO Zagadnienie transportowe
23
δ a od klatek - odejmij przewóz δ. Jeżeli δ > 0, to otrzymaliśmy rozwiązanie o mniejszym koszcie. Wróć do kroku 3. Przykład. Rozwiążemy przykładowe zadanie ze strony 1. 6
8
5 9
35
30 13
12
7
50
5
45 14
9
15 45
Obliczamy potencjały:
2
10
20
16
10
25 30
30
40
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Otrzymujemy:
24
6 + u1 + v2 = 0
zmienna bazowa x12
2 + u1 + v4 = 0
zmienna bazowa x14
9 + u2 + v1 = 0
zmienna bazowa x21
13 + u2 + v3 = 0
zmienna bazowa x23
9 + u3 + v2 = 0
zmienna bazowa x32
16 + u3 + v3 = 0
zmienna bazowa x33
A. Kasperski, M. Kulej BO Zagadnienie transportowe
-6
-9
6
8
0
-2
13
45
-3
9
50
15 45
20
16
10
25 30
30
30 6
7
5 14
-3
5
35
30 12
-1
2
10
5 9
0
-13
25
5
50
5
45 2
40 45
35
5
15
25
20
30
40 30
Rozwiązanie nie jest optmalne ponieważ pewne klatki niebazowe mają ujemne oceny. Wybieramy klatkę z najmniejszą ujemną oceną, czyli [1,3]. Dodajemy tą klatkę do klatek bazowych i konstruujemy cykl:
A. Kasperski, M. Kulej BO Zagadnienie transportowe
26
-3
-1 5
-
30 6
5 50
5
45 2 15 + 45
35
+
20
5
40
- 25 30
30
Najmniejszy przewóz dla klatek - znajduje się w klatce [1,2]. Klatka ta wychodzi z bazy. Do klatek + dodajemy 5 a od klatek odejmujemy 5. Otrzymujemy kolejne, lepsze rozwiązanie bazowe i ponownie obliczamy potencjały
A. Kasperski, M. Kulej BO Zagadnienie transportowe
-3
-6
-10 6
8
0
10
5 9
-3 45
-2 30
-6
9
20 45
20
10
20 30
30
30
35 2
6
7
50 16
5
35
5 14
3
2
2
13
12
27
50
5
45 2
40
2
20 45
20
20 30
40
30
Ponieważ wszystkie oceny klatek niebazowych są nieujemne to tablica zawiera optymalne rozwiązanie. Przykład - rozwiązania zdegenerowane. Rozpatrzmy zagadnienie dla którego podaż, popyt, koszty oraz pierwsze rozwiązanie bazowe (metoda kąta) podane są w tabeli:
A. Kasperski, M. Kulej BO Zagadnienie transportowe
28
6
12
10
10
10 9
0
4
12
10
10 3
9
0 10
10
2
10
10
10
W pierwszym rozwiązaniu pewne zmienne bazowe mają wartość 0. Rozwiązanie takie nazywamy rozwiązaniem zdegenerowanym. Należy odróżniać klatki z zerami bazowymi od klatek niebazowych! Obliczamy potencjały:
A. Kasperski, M. Kulej BO Zagadnienie transportowe
-12
-15
0 3
-12
-8 6
12
0
10
6
9
0 10
10
2
10 10
-8
-9
10
0
10
3
4
12
3
-15
10
10 9
29
2
10
10 -1
0
10
10 -3
10
6
0 10
10
10
10
10
Do bazy wprowadzamy klatkę [1,2]. Tworzymy cykl i wykonujemy iterację:
A. Kasperski, M. Kulej BO Zagadnienie transportowe
-12
-15
-8
-9
0
10 -
+
3
+ 0
10 0
10
10
10
9
10
10
10
10
10
10
0
-1
10
6
12
2
-3
6
30
4
12
10
10 3
9
0 10
10
2
10
10
10
Należy uważać aby nie usunąć z bazy dwóch klatek [1,1] i [2,2]. Z bazy wychodzi tylko jedna z tych klatek (obojętnie która). Druga pozostaje klatką bazową. Otrzymujemy kolejne rozwiązanie zdegenerowane.
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Trasy zakazane. Jeżeli połączenie między dostawą i a odbiorcą j nie istnieje to podstawiamy cij = M , gdzie M jest jakąś bardzo dużą liczbą. Jeżeli w końcowej tablicy transportowej otrzymamy xij > 0, to wyjściowe zagadnienie jest sprzeczne ( nie istnieje dopuszczalny plan przewozów ). Przykład. Rozpatrzmy problem:
31
A. Kasperski, M. Kulej BO Zagadnienie transportowe
3 35
32
Miasto 1
45
Miasto 2
20
Miasto 3
30
Miasto 4
30
Fabryka 1 2
9 50
Fabryka 2 7 9 8
40
Fabryka 3
14 7
Pierwsza tablica (bazowe rozwiązanie dopuszczalne wyznaczone metodą kąta północno-zachodniego) i pierwsza iteracja są następujące:
A. Kasperski, M. Kulej BO Zagadnienie transportowe
-M+6
-3
M
3 0
6
M
2
35 10 M
M-1
8
3
35 7
M
M
20 12
20
30
+
10
14
10
-
50
20
-13 45
6
35
9 -6
-1
33
40
-M+5
M-16
10 -
+
30
M
3
45
20
M
2
9
M
30
30 30
35
35 10
5
20 20
7
30
M
M
7
M
50
30
10 12
14
7
40
...
A. Kasperski, M. Kulej BO Zagadnienie transportowe
34
Rozwiązanie to nie jest jeszcze optymalne. Należy wykonać kolejne iteracje. Optymalne rozwiązanie pokazane jest w poniższej tablicy: M
3
M
M
10
7
M
40
30 12
M
14
10
7
30
10 45
35
0
35 9
2
30
40
30
Ponieważ przewóz na trasach zakazanych jest 0 to rozwiązanie to jest dopuszczalne (i optymalne). Wieloetapowe zagadnienie transportowe Przykład. Trzy fabryki F1, F2 i F3, których podaż wynosi 20, 10 i
A. Kasperski, M. Kulej BO Zagadnienie transportowe
30 mają dostarczyć towar do dwóch odbiorców O1 i O2 , których popyt wynosi 20 i 40. Towar może być przewożony po trasach pokazanych na rysunku (czyli niekoniecznie bezpośrednio z fabryk do odbiorców). Wyznaczyć plan przewozu minimalizujący łączny koszt.
35
A. Kasperski, M. Kulej BO Zagadnienie transportowe
2
2
3
3 7
O1
O2
1
20 1
7
10+s
-40 O2
0
7
30+s
F3
2
0
4
s
1
5
F3
2
0
3
1
1
F2
7 1
1
F3
F2
F1
+30
F2 F1
+10
+20
36
1 0
4
5
3
s
2 O1 -20
1
0
O2 s
s
s
s
20
Połączenia oraz odpowiednia tablica transportowa pokazane są na rysunku.
40+s
s
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Uwaga: Do pustych klatek należy wpisać koszty M (ponieważ odpowiednie połączenia nie istnieją). Uwaga: Koszty przewozu między tymi samymi punktami, np: między F2 i F2 wynoszą 0. Są to tzw. przewozy fikcyjne. Rozwiązanie optymalne pokazane jest na poniższym rysunku:
37
A. Kasperski, M. Kulej BO Zagadnienie transportowe
F3
2
3
3
2
+30 F3
7
O1
O2
20 1
0
70 7
60
F3
7
10
90
30
40
0
1
30
4
40
20
2
5
3
60
40
20
O1 -20
60
20 0
4
O2
1
60
-40
10 1 1
2
0
F2
20
1 20
F2
F1
1
F2 F1
+10
+20
38
1
O2
0
60 60
60
60
60
20
100
60
A. Kasperski, M. Kulej BO Zagadnienie transportowe
Końcowe uwagi na temat algorytmu transportowego: 1. Algorytm działa również wtedy, gdy koszty przewozów są ujemne. 2. Jeżeli celem jest maksymalizacja kosztów przewozu, to przed zastosowaniem algorytmu należy przemnożyć wszystkie koszty przez -1. 3. Jeżeli podaże i popyty wszystkich dostawców i odbiorców są liczbami całkowitymi, to algorytm zwraca optymalny przewóz całkowitoliczbowy.
39