E. Michlowicz: Logistyka przemysłowa – Zagadnienia transportowe
WYKŁAD 12
ZAGADNIENIA (ZADANIA) TRANSPORTOWE
– BADANIA OPERACYJNE
1.Zagadnienia programowania liniowego
Działanie intuicyjne rzadko prowadzi do podjęcia optymalnej decyzji, co moŜe
narazić nas utratę pewnych korzyści. Z pomocą przychodzą róŜnego typu metody
rozwiązywania problemów decyzyjnych. Opisanie sytuacji decyzyjnej w języku
matematycznym ma na celu sprowadzenie problemu wyboru najlepszej decyzji do
rozwiązania jednoznacznie określonego zadania matematycznego.
Aby rozwiązanie takiego zadania umoŜliwiło wybór najlepszej decyzji przy
ustalonych ograniczeniach naleŜy określić:
• jakie wielkości mają być wyznaczone (określenie zmiennych decyzyjnych),
• jakie wielkości są dane (określenie parametrów zadania),
• jakie są warunki ograniczające dla danych zmiennych decyzyjnych,
• funkcję celu jako funkcję zmiennych decyzyjnych.
JeŜeli w zadaniu decyzyjnym funkcja celu i wszystkie warunki ograniczające są liniowe, to zadanie takie nazywa się Liniowym Zadaniem Decyzyjnym. Jeśli dodatkowo wszystkie zmienne są ciągłe, to zadanie takie nazywamy Zadaniem Programowania Liniowego.
Ogólna postać takich zadań jest następująca:
• funkcja celu:
n
∑ c x
max(min)
j
j
→
j = 1
• ograniczenia:
n
∑ a x
b
ij
j
≤
i
(i=1,2,...,m)
j = 1
n
∑ a x
b
ij
j
≥
i
(i=m+1,...,p)
j = 1
n
∑ a x
b
(i=p+1,...,p)
ij
j
=
i
j = 1
x
n 1 ≤
j
≥ 0 (j=1,2,...,n1)
gdzie:
n
gdzie:
cj - np. koszt wykonania zadania „ j”
KaŜdy wektor zmiennych decyzyjnych:
1
E. Michlowicz: Logistyka przemysłowa – Zagadnienia transportowe
x = ( x1, x2 ,... ,x n)
spełniający warunki ograniczające nazywamy rozwiązaniem dopuszczalnym.
Rozwiązanie dopuszczalne, dla którego funkcja celu osiąga maksimum (minimum),
nazywamy rozwiązaniem optymalnym.
Przy rozwiązywaniu zadań decyzyjnych istotne jest załoŜenie, Ŝe zadanie z funkcją celu:
n
∑ c
x
max
j
j
→
j = 1
jest równowaŜne zadaniu z funkcją celu:
n
∑ ( − c
) x
min
j
j
→
j = 1
Zadania programowania liniowego w postaci macierzowej moŜemy zapisać następująco:
cx → max(min)
Ax = b
x ≥ 0
gdzie:
a
a
L
a
11
12
1 n
a
a
L
a
21
22
2 n
A =
- macierz współczynników,
M
M
M
a
L
m
a
1
m
a
2
mn
b
1
b 2
b
=
- wektor wyrazów wolnych,
M
b m
x
1
x 2
x
=
M
- wektor zmiennych decyzyjnych,
x n
c = [ c
c
L
c
1
2
n ] - wektor wag funkcji celu.
Podstawową metodą pozwalającą na rozwiązanie dowolnego zadania programowania
liniowego jest metoda Simpleks. Polega ona na sekwencyjnym, ściśle określonym przeglądzie tworzonych kolejno tablic simpleksowych.
2
E. Michlowicz: Logistyka przemysłowa – Zagadnienia transportowe
Z kaŜdą zmienną xj związany jest wskaźnik kryterium optymalności. Dla zmiennych bazowych ma on zawsze wartość zero, natomiast dla zmiennych niebazowych wskaźnik ten określa, jak zmieni się wartość funkcji celu, gdy zmienna xj przyjmie wartość 1, a wartości zmiennych bazowych zostaną odpowiednio zmienione w celu zachowania
dopuszczalności rozwiązania.
Metoda Simpleks
ZałóŜmy, Ŝe dane jest zadanie programowania liniowego w postaci:
cx
→
max
Ax
=
b
x ≥ 0
Przez B oznaczamy macierz kwadratową m- tego stopnia, składająca się z m liniowo niezaleŜnych kolumn macierzy A.
Macierz B nazywamy bazą, jej kolumny – kolumnami bazowymi, a pozostałe kolumny macierzy A – kolumnami niebazowymi.
Zmienne związane z kolumnami bazowymi nazywamy zmiennymi bazowymi, a
pozostałe zmienne – niebazowymi.
Z kaŜdą bazą związane jest rozwiązanie bazowe.
JeŜeli układ Ax=b jest niesprzeczny oraz n>m,
to układ ten ma nieskończenie wiele rozwiązań, ale skończenie wiele rozwiązań bazowych.
n !
Układ taki ma co najwyŜej: m ! ( n −
rozwiązań bazowych.
m
)
Dla zadań programowania liniowego prawdziwe jest twierdzenie:
JeŜeli zadanie ma rozwiązanie optymalne, to ma równieŜ rozwiązanie optymalne bazowe.
2. Zadania (Zagadnienia) transportowe
Jednym z ciekawszych szczególnych przypadków liniowych zadań decyzyjnych są z
tzw. zadania transportowe.
Charakteryzują się one specyficznym układem macierzy współczynników oraz
warunków ograniczających. Zadanie transportowe (sformułowane w 1934 r. przez L.
Kantorowicza) było jednym z pierwszych rozwiązanych problemów programowania liniowego. Noszą one czasem nazwę problemu Hitchcoca od nazwiska angielskiego badacza, który w 1941 r. opublikował wersję zadania i algorytmu zwanego dziś pod nazwą klasycznego zadania transportowego.
Sytuację klasycznego zagadnienia transportowego ilustruje rysunek 1.
3
E. Michlowicz: Logistyka przemysłowa – Zagadnienia transportowe
punkt
przewóz na
punkt
nadania i
trasach ( i, j)
odbioru j
p
o daŜ
popyt
a1
b1
a2
b2
.
.
.
.
.
.
an
bm
Rys.1. Schemat klasycznego zadania transportowego
Przy uŜyciu algorytmu słuŜącego do rozwiązywania zadań transportowych moŜna
rozstrzygać problemy decyzyjne:
• dotyczące przepływu dóbr pomiędzy -n- „dostawcami” dysponującymi ai
jednostkami produktu (i=....n)
oraz -m- „odbiorcami” wyraŜającymi zapotrzebowanie na
bj jednostek produktu (j=1 .. m).
ponadto:
• kaŜdy „dostawca” moŜe zaopatrywać dowolnego „odbiorcę”, a kaŜdy
„odbiorca” moŜe odbierać towar od dowolnego „dostawcy”,
• muszą być znane koszty jednostkowe cij związane z przepływem dóbr od dostawcy i do odbiorcy j.
Określając przez xij ( zmienne decyzyjne) wielkość dostawy od i-tego dostawcy do j-tego
odbiorcy, zadanie transportowe moŜna zapisać w następująco:
n
∑
x
b
=
ij
=
,
j
j
1 , 2 ,...,
m
i = 1
m
∑
x
a
=
ij
=
i ,
i
1 , 2 ,...,
n
j = 1
oraz:
≥
x
0 ,
=
=
ij
i
1 , 2 ,..., n ; j
1 , 2 ,..., m
dla których funkcja celu:
m
n
z
=
∑
∑
c
x
ij
ij
min
i = 1
j = 1
osiąga wartość minimalną.
4
E. Michlowicz: Logistyka przemysłowa – Zagadnienia transportowe
Dodatkowo musi być spełniony warunek równości popytu i podaŜy:
jest to tzw. Zamknięte Zadanie Transportowe (ZZT) .
m
n
∑ a
b
i
= ∑
j
i = 1
j = 1
W praktyce spotykamy się przewaŜnie z problemami, w których podaŜ przewyŜsza popyt, bądź
teŜ zapotrzebowanie jest większe od dostępnej ilości towaru.
W takim przypadku mówimy o zadaniu niezbilansowanym i określamy je:
Otwartym Zadaniem Transportowym (OZT).
W celu rozwiązania tak postawionego problemu naleŜy go sprowadzić do postaci
zbilansowanej:
• Przypadek 1 – ze względu na niedobór zapasów nie moŜemy zaspokoić potrzeb wszystkich klientów (podaŜ mniejsza od popytu):
m
n
∑ a
b
i
< ∑
j
i = 1
j = 1
Aby uzyskać postać zbilansowaną do zadania wprowadzamy „fikcyjnego” dostawcę
posiadającego dokładnie am+1 produktów:
n
m
a
b
a
m + 1
= ∑
j
− ∑
i
j = 1
i = 1
Dodatkowo do macierzy kosztów wprowadzamy współczynniki
cm+1,1=0,...,cm+1,n=0 (koszty „fikcyjnego” transportu) .
• Przypadek 2 – zapotrzebowanie na produkty jest mniejsze niŜ zapasy magazynowe
(podaŜ większa od popytu).
m
n
∑ a
b
i
> ∑
j
i = 1
j = 1
W celu uzyskania postaci zbilansowanej, wprowadzamy „fikcyjnego” odbiorcę,
który potrzebuje dokładnie bn+1 produktów:
m
n
b
a
b
n
1
=
i
−
+
∑
∑
j
i = 1
j = 1
Dodatkowo do macierzy kosztów wprowadzamy współczynniki
cn+1,1=0,...,cn+1,m= 0 (koszty „fikcyjnego” transportu).
5
E. Michlowicz: Logistyka przemysłowa – Zagadnienia transportowe
W postępowaniach prowadzących do wyznaczenia wielkości dostaw wyróŜnia się dwa etapy:
1.
Wyznaczany jest wstępny plan dopuszczalnego transportu, tzw. pierwsze bazowe
rozwiązanie dopuszczalne.
W tym celu moŜna zastosować jedną z metod:
• kąta północno-zachodniego,
• aproksymacji Vogel’a,
• minimalnego elementu macierzy kosztów.
2.
Na podstawie pierwszego rozwiązania bazowego wyznaczane jest rozwiązanie
optymalne.
Najczęściej stosowaną metodą jest metoda MODI (Modified Distribution Methode).
•
Metoda kąta północno-zachodniego (kąta N-W)
Poszukiwanie rozwiązania bazowego rozpoczynamy od wartości xij dla trasy (1,1).
Wartość xij wyznaczamy wg wzoru:
xij=min{a1, b1}
Następnie od wartości a1, b1 odejmujemy x11 i otrzymane wyniki wstawiamy odpowiednio zamiast a1, b1. Z dalszych rozwaŜań eliminujemy wiersz lub kolumnę, dla której róŜnica wynosi 0. W kolejnym kroku przechodzimy do elementu xij połoŜonego w północno-zachodnim rogu, powstałej po eliminacji wiersza lub kolumny, macierzy i powtarzamy poprzednie czynności. Wyznaczanie rozwiązania kończymy po wyeliminowaniu wszystkich wierszy i kolumn.
• Metoda aproksymacyjna Vogel’a (metoda VAM)
Wybierając zmienną xij do wyznaczenia sprawdzamy róŜnicę pomiędzy najniŜszym a kolejnym co do wartości kosztem w kaŜdej kolumnie lub wierszu i tam gdzie jest ona największa określamy najniŜszy koszt, a dla jego współrzędnych określamy wartość zmiennej
xij.
Dla wybranego wiersza lub kolumny określamy:
xij=min{ai,bj}
Następnie, podobnie jak w przypadku metody kąta północno-zachodniego, od
wartości ai, bj odejmujemy xij i otrzymane róŜnice wstawiamy odpowiednio zamiast ai, bj. Z
dalszych rozwaŜań eliminujemy wiersz lub kolumnę, dla której róŜnica wynosi 0. Dla pozostałych wierszy i kolumn ponownie wybieramy zmienną xij i powtarzamy operacje.
Iteracje kończymy w momencie, gdy w macierzy nie ma juŜ wierszy ani kolumn
zawierających co najmniej dwa puste pola. W polu nie posiadającym przypisanej wartości przewozu wpisujemy pozostałą wartość dostawcy dla odpowiedniego wiersza lub odbiorcy dla kolumny.
•
Metoda minimalnego elementu macierzy kosztów (MEM)
Z macierzy kosztów wybieramy element o najmniejszej wartości i dla jego
współrzędnych określamy wartość xij.
6
E. Michlowicz: Logistyka przemysłowa – Zagadnienia transportowe
Tak jak w przypadku poprzednich metod, z dalszych rozwaŜań eliminujemy wiersz
lub kolumnę, dla której róŜnica pomiędzy wartością odpowiednio ai lub bj a xij wynosi 0.
Następnie dokonujemy kolejnego wyboru współrzędnych zmiennej xij według kryterium najmniejszego kosztu. Iteracje powtarzamy aŜ do momentu, gdy nie ma juŜ Ŝadnych wierszy ani kolumn zawierających co najmniej dwa pola bez przypisanych wartości przewozów. W polu nie posiadającym przypisanej wartości wpisujemy pozostałą dla danego wiersza i kolumny wartość. Po znalezieniu jednego z rozwiązań dopuszczalnych
przechodzimy do etapu sprawdzania jego optymalności.
3. PRZYKŁAD
Trzech dostawców: D1, D2, D3
zaopatruje w odpady 4 spalarnie: S1, S2, S3 i S4.
Dane:
- jednostkowe koszty transportu (w zł za tonę);
- oferowane miesięcznie wielkości dostaw Ai (w tonach),
- miesięczne zapotrzebowanie spalarni Bj (w tonach)
podano w tablicy 1.
Tab. 1. Jednostkowe koszty transportu
SPALARNIE
Dostawcy
S1
S2
S3
S4
Ai
D1
50
40
50
20
70
D2
40
80
70
30
50
D3
60
40
70
80
80
B j
40
60
50
50
200
Opracować plan przewozu odpadów do utylizacji:
od dostawców do spalarni, minimalizujący całkowite koszty transportu.
Rozwiązanie:
bilans podaŜy i popytu:
3
4
∑ A = ∑ B
= 200 t ,
i
j
i = 1
j = 1
a więc jest to przykład zamkniętego zagadnienia transportowego (ZZT).
Zmienne decyzyjne xij oznaczają ilość ton odpadów, jaka powinna być dostarczona od i-tego
dostawcy (i=1,2,3) do j-tej spalarni (j=1,2,3,4):
jest ich 3 * 4 = 12.
7
E. Michlowicz: Logistyka przemysłowa – Zagadnienia transportowe
WyraŜają to warunki:
a) dla dostawców
4
x 11 + x 12 + x 13 + x 14 = ∑ x
= 70
1 j
i = 1
tzn: suma wielkości dostaw odpadów od dostawcy D1 do wszystkich spalarni powinna być równa podaŜy dostawcy; i analogicznie dla dostawców dla dostawców D2, D3:
4
x 21 + x 22 + x 23 + x 24 = ∑ x
= 50
2 j
i = 1
4
x 31 + x 32 + x 33 + x 34 = ∑ x
= 80
3 j
i = 1
b) dla odbiorców:
3
11
21
31
x
+ x
+ x
= ∑ x i = 40
1
i = 1
tzn . suma dostaw odpadów otrzymanych przez spalarnię S 1 od wszystkich trzech dostawców powinna być równa całkowitemu jej zapotrzebowaniu; podobnie dla pozostałych odbiorców (spalarni):
3
12
22
32
x
+ x
+ x
= ∑ x i
= 60
2
i = 1
3
13
23
33
x
+ x
+ x
= ∑ x i = 50
3
i = 1
3
14
24
34
x
+ x
+ x
= ∑ x i = 50
4
i = 1
Muszą być takŜe spełnione warunki brzegowe:
x
≥
ij
0 (i=1,2,3; j=1,2,3,4),
a w funkcji celu naleŜy zminimalizować łączne koszty transportu, czyli:
K(xij) = 50x11 + 40x12 + 50x13 + 20x14 +
40x21 + 80x22 + 70x23 + 30x24 +
60x31 + 40x32 + 70x33 + 80x34 min
Rozwiązanie: do wyboru jedna z metod przedstawionych w rozdziale 2 (lub inne, np.
wykorzystujące algorytmy ewolucyjne).
8