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