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