BADANIA OPERACYJNE I TEORIE OPTYMALIZACJI Zagadnienie transportowe
Klasyczne zagadnienie transportowe Klasyczne zadanie transportowe problem najtańszego przewozu jednorodnego dobra pomiędzy punktami nadania (dostawcy) a punktami odbioru (odbiorcy). podaż a punkty nadania (i) D x c punkty odbioru (j) O popyt b x 2 c 2 x n c n x 2 c 2 a 2 D 2 x 22 c 22 O 2 b 2 x 2n c 2n x m c m x m2 c m2 a m D m x mn c mn O n b n
Klasyczne zagadnienie transportowe 2 Założenia klasycznego zadania transportowego: x ij a i b j - zmienne decyzyjne; ilość przewożonego jednorodnego dobra na trasie pomiędzy i-tym dostawcą a j-tym odbiorcą [i=,2,,m; j=,2,,n;] - parametr problemu; zasób dobra u i-tego dostawcy (podaż) [i=,2,,m] a = [a,a 2,,a m ] - parametr problemu; zapotrzebowanie na dobro j-tego odbiorcy (popyt) [j=,2,,n] b = [b,b 2,,b n ] c ij i m - parametr problemu; koszt przewozu jednostki dobra na trasie pomiędzy i-tym dostawcą a j-tym odbiorcą [i=,2,,m; j=,2,,n;] c c c j n a i b j C c c 2 m c c 2 22 m2 c c n 2n mn
Klasyfikacja zadań transportowych:. Zamknięte ( zbilansowane ) m n i a i b j Klasyczne zagadnienie transportowe 3 j 2. Otwarte ( niezbilansowane ) - przypadek i m n a i b j j Otwarte Zamknięte: a) dodać n+ punkt odbioru b) zapotrzebowanie b n+ dodanego punktu odbioru różnica między całkowitą podażą a całkowitym popytem: m n b n i a i j b j
Klasyczne zagadnienie transportowe 4 jednostkowe koszty transportu podaż jednostkowe koszty transportu podaż O O2 O3 O O2 O3 O4 D 4 2 3 60 D2 3 2 30 D3 3 30 D 4 2 3 0 60 D2 3 2 0 30 D3 3 0 30 popyt 30 35 45 0 20 popyt 30 35 45 0 20 20
Klasyczne zagadnienie transportowe 5 2. Otwarte ( niezbilansowane ) - przypadek 2 i m n a i b j j Otwarte Zamknięte: a) dodać m+ punkt nadania b) zapotrzebowanie a m+ dodanego punktu nadania różnica między całkowitym popytem a całkowitą podażą: a m n j b j - i m a i
Klasyczne zagadnienie transportowe 6 jednostkowe koszty transportu podaż jednostkowe koszty transportu podaż O O2 O3 O O2 O3 D 4 2 3 60 D2 3 2 30 D3 3 20 D 4 2 3 60 D2 3 2 30 D3 3 20 popyt 40 35 45 20 0 D4 0 0 0 0 20 popyt 40 35 45 20
Funkcja celu: (łączny koszt transportu) m n F( x) Ograniczenia: n i m i i x ij a x ij b i j Klasyczne zagadnienie transportowe 8 model decyzyjny j c ij x ij i =,2,,m min ( niezbilansowane ) j =,2,,n (bilanse dla punktów nadania) (bilanse dla punktów odbioru) Warunki brzegowe: x ij 0 i =,2,,m j =,2,,n Rozwiązać można tylko zbilansowane zagadnienie transportowe!!!!
Klasyczne zagadnienie transportowe 9 Przykład Pewien jednorodny produkt należy dostarczyć z trzech hurtowni do trzech sklepów. Hurtownie dysponują następującymi ilościami produktu: 60, 30 i 20 jednostek. Zapotrzebowanie sklepów to: 30,35 i 45 jednostek. Jednostkowe koszty transportu między każdą hurtownią a sklepem ( w zł za sztukę ) dane są w następującej macierzy kosztów: 4 2 3 C 3 2 3 Należy znaleźć taki plan przewozów, przy którym łączne koszty transportowe będą najniższe.
Klasyczne zagadnienie transportowe 0 Przykład jednostkowe koszty transportu O O2 O3 podaż D 4 2 3 60 D2 3 2 30 D3 3 20 popyt 30 35 45 0
popyt podaż Klasyczne zagadnienie transportowe Przykład F( ) = 4x +2x 2 +3x 3 +3x 2 +x 22 +2x 23 +x 3 +3x 32 +x 33 min x +x 2 +x 3 = 60 +x 2 +x 22 +x 23 = 30 +x 3 +x 32 +x 33 = 20 x +x 2 +x 3 = 30 x 2 +x 22 +x 32 = 35 x 3 +x 23 +x 33 = 45 x 0 x 2 0 x 3 0 x 2 0 x 22 0 x 23 0 x 3 0 x 32 0 x 33 0
Klasyczne zagadnienie transportowe 2 Algorytm transportowy Początkowy program przewozowy 6 Skoryguj program przewozowy 2 Program optymalny? NIE 5 Ustal maksymalny przewóz na trasie ustalonej w [3] TAK 4 Zbuduj cykl Korygujący przewozy KONIEC Wybierz trasę dającą największą obniżkę kosztów 3
Klasyczne zagadnienie transportowe 3 Algorytm transportowy 2 Początkowy program przewozowy Metoda kąta północno-zachodniego. Wprowadź maksymalny przewóz na trasie (i,j): x ij = min(a i,b j ) - rozpoczynamy od trasy D O 2. Skoryguj podaż w i-tym punkcie nadania: a i = a i x ij i popyt w j-tym punkcie odbioru: b i = b i x ij
Klasyczne zagadnienie transportowe 4 Algorytm transportowy 2 jednostkowe koszty transportu O O2 O3 podaż D 30 30 60 30 0 D2 25 30 25 0 D3 20 20 0 popyt 30 35 45 0 0 0 20 0 Koszty = 30*4 +30*2 + 5* + 25*2 + 20* = 255
Klasyczne zagadnienie transportowe 5 Algorytm transportowy 3 Początkowy program przewozowy Metoda minimalnego elementu macierzy. Wybierz trasę o najmniejszym jednostkowym koszcie transportu. Jeżeli jest ich kilka wybór jest dowolny. 2. Wprowadź maksymalny przewóz na wybranej trasie (i,j): x ij = min(a i,b j ) 3. Skoryguj podaż w i-tym punkcie nadania: a i = a i x ij i popyt w j-tym punkcie odbioru: b i = b i x ij
Klasyczne zagadnienie transportowe 6 Algorytm transportowy 4 jednostkowe koszty transportu O O2 O3 podaż D 4 2 3 60 D2 3 2 30 D3 3 20 popyt 30 35 45 0
Klasyczne zagadnienie transportowe 7 Algorytm transportowy 5 jednostkowe koszty transportu O O2 O3 podaż D 60 D2 30 D3 20 20 0 popyt 30 35 45 0 0
Klasyczne zagadnienie transportowe 8 Algorytm transportowy 6 jednostkowe koszty transportu O O2 O3 podaż D 4 2 3 60 D2 3 2 30 D3 20 popyt 30 35 45 0
Klasyczne zagadnienie transportowe 9 Algorytm transportowy 7 jednostkowe koszty transportu O O2 O3 podaż D 60 D2 30 30 0 D3 20 20 0 popyt 30 35 45 0 0 5
Klasyczne zagadnienie transportowe20 Algorytm transportowy 8 jednostkowe koszty transportu O O2 O3 podaż D 0 5 45 60 D2 30 30 D3 20 20 popyt 30 35 45 0 Koszt= 0*4 + 5*2 + 45*3 + 30* + 20* = 235 porównaj wynik z poprzednią metodą
Klasyczne zagadnienie transportowe 2 Algorytm transportowy 9 Sprawdzenie optymalności programu przewozowego - tabela wskaźników optymalności. pola tabeli wskaźników optymalności, dla których x ij >0 zawierają jedną liczbę: jednostkowy koszt transportu c ij 2. pozostałe pola tabeli wskaźników optymalności zawierają dwie liczby: (u i +v j ) oraz wskaźnik optymalności ij = c ij (u i +v j ) 3. program przewozowy jest optymalny, jeżeli wszystkie ij 0 ( gdy wszystkie ij>0 to rozwiązanie jest optymalne jednoznacznie, jeżeli przynajmniej jeden wskaźnik optymalności jest równy 0 to rozwiązanie jest optymalne niejednoznacznie ) 4. wyznaczenie trasy dającej największą obniżkę kosztów (jeżeli uzyskany program przewozowy nie jest optymalny): dla wszystkich ij<0 kl = min{ ij }
Klasyczne zagadnienie transportowe 22 Algorytm transportowy 0 Sprawdzenie optymalności programu przewozowego uzyskanego metodą kąta północno - zachodniego O O2 O3 u i 3 D 4 2 D2 3 2 0 2 0 D3-3 0 0 - -2 v j 4 2 3
Klasyczne zagadnienie transportowe 23 Algorytm transportowy Korekta programu przewozowego. postaw znak + na wytypowanej trasie dającej największą obniżkę kosztów 2. w rozpatrywanym programie przewozowym znakuj trasy o przewozie niezerowym znakami + i - w taki sposób, aby w każdym wierszu i każdej kolumnie była para + - lub nie było ich w ogóle 3. wyznacz wielkość korekty poprzez wybór wartości najmniejszej oznaczonej znakiem - : = min(x ij - ) 4. skoryguj rozpatrywany program przewozowy poprzez: x ij* = x ij + dla tras oznaczonych znakiem + x ij* = x ij + dla tras oznaczonych znakiem - x ij* = x ij dla tras nieoznaczonych
Klasyczne zagadnienie transportowe 24 Algorytm transportowy 2 Korekta programu przewozowego O O2 O3 podaż D 30 30 60-5 + +5 D2 5 25 30-5 + +5 D3 20 20 + +5-5 popyt 30 35 45 350 min{30,5,20} = 5
Klasyczne zagadnienie transportowe 25 Algorytm transportowy 3 Poprawiony program przewozowy O O2 O3 podaż D 25 35 60 D2 30 30 D3 5 5 20 popyt 30 35 45 0 Koszt = 4 25 + 2 35 + 2 30 + 5 + 5 = 250 lub Koszt = 255 + 5 ( )= 255 5 = 250
Klasyczne zagadnienie transportowe 26 Algorytm transportowy 4 Sprawdzenie optymalności programu przewozowego iteracja 2 O O2 O3 u i D 4 2 4-0 D2 2 0 2 D3-4 -2-3 v j 4 2 4
Klasyczne zagadnienie transportowe 27 Algorytm transportowy 5 Korekta programu przewozowego O O2 O3 podaż D - 25 35 + 60 D2 30 30 D3 + 5-5 20 popyt 30 35 45 0 min{25,5} = 5
Klasyczne zagadnienie transportowe 28 Algorytm transportowy 6 Poprawiony program przewozowy O O2 O3 podaż D 0 35 5 60 D2 30 30 D3 20 20 popyt 30 35 45 0 Koszt = 4 0 + 2 35 + 3 5 + 2 30 + 20 = 235 lub Koszt = 250 + 5 ( ) = 250 5 = 235
Klasyczne zagadnienie transportowe 29 Algorytm transportowy 7 Sprawdzenie optymalności programu przewozowego iteracja 3 O O2 O3 u i D 4 2 3 D2 3 2 0 0-0 D3 4 0 - -3 v j 4 2 3 Rozwiązanie optymalne niejednoznacznie
Klasyczne zagadnienie transportowe 30 Algorytm transportowy 8 O O2 O3 podaż D - 0-0 35 + 5 +0 60 D2 + +0-30 -0 30 D3 20 20 popyt 30 35 45 0 min{0,30} = 0
Klasyczne zagadnienie transportowe 3 Algorytm transportowy 9 Pierwszy alternatywny program przewozowy O O2 O3 podaż D 35 5 60 D2 0 20 30 D3 20 20 popyt 30 35 45 0 Koszt = 2 35 + 3 5 + 3 0 + 2 20 + 20 = 235
Klasyczne zagadnienie transportowe 32 Algorytm transportowy 20 O O2 O3 podaż D 0-35 -30 + 5 +30 60 D2 + +30-30 -30 30 D3 20 20 popyt 30 35 45 0 min{35,30} = 30
Klasyczne zagadnienie transportowe 33 Algorytm transportowy 2 Drugi alternatywny program przewozowy O O2 O3 podaż D 0 5 45 60 D2 30 30 D3 20 20 popyt 30 35 45 0 Koszt = 4 0 + 2 5 + 3 45 + 30 + 20 = 235
Klasyczne zagadnienie transportowe 34 Algorytm transportowy 22 Kombinacja liniowa rozwiązania niejednoznacznego: 0 35 5 35 25 0 5 45 X opt 20 30 2 0 20 20 3 20 30 2 3, 2, 3 0
Klasyczne zagadnienie transportowe 32 Całkowita blokada trasy Załóżmy, że z trzeciej hurtowni nie można dostarczyć towaru do pierwszego sklepu. W celu całkowitej blokady wybranej trasy zwiększamy odpowiadający jej jednostkowy koszt transportu. O O2 O3 podaż D 4 2 3 60 D2 3 2 30 M D3 M 3 20 popyt 30 35 45 0
Klasyczne zagadnienie transportowe 33 Częściowa blokada trasy Załóżmy, że z pierwszej hurtowni do trzeciego sklepu można dostarczyć nie więcej niż 0 sztuk towaru. W celu częściowej blokady wybranej trasy podwajamy odbiorcę lub dostawcę, który jej odpowiada. Przypadek I podwojenie odbiorcy: O O2 O3 O3 poda ż D 4 2 3 M 60 D2 3 2 2 30 M D3 3 20 popyt 30 35 0 35 0
Klasyczne zagadnienie transportowe 33 Częściowa blokada trasy Przypadek II podwojenie dostawcy: O O2 O3 poda ż D 4 2 3 0 D 4 2 M 50 M D2 3 2 30 D3 3 20 popyt 30 35 0 0