ZAGADNIENIE TRANSPORTOWE (ZT) Danych jest p dostawców

Transkrypt

ZAGADNIENIE TRANSPORTOWE (ZT) Danych jest p dostawców
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

Podobne dokumenty