optymalizacja dyskretna 2 - Komandor Jacek Staniec Home Page
Transkrypt
optymalizacja dyskretna 2 - Komandor Jacek Staniec Home Page
Jacek Staniec Warszawa, maj 2003 OPTYMALIZACJA DYSKRETNA ============================================================================================ MODEL PROGRAMOWANIA MIESZANEGO CAŁKOWITOLICZBOWEGO ============================================================================================ MODEL PROGRAMOWANIA MIESZANEGO CAŁKOWITOLICZBOWEGO W celu zobrazowania opisu sposobu działania zakładów chemicznych, założę, że na terenie firmy istnieje dziesięć magazynów tworzących cztery niezależne warstwy. Warstwa pierwsza to magazyny przechowujące surowce wejściowe Si, warstwa druga to magazyny przechowujące półprodukty Dj, warstwa trzecia to magazyny przechowujące półprodukty uwodornione Kk, a warstwa czwarta, to magazyny przechowujące produkty gotowe Pl. Magazyny wykorzystywane są przez dwa systemy przetwarzania surowców wejściowych. Jeden z istniejących systemów, system A, przetwarza surowce z wykorzystaniem procesu uwodorniania półproduktów, drugi system, system B, umożliwia wytworzenie produktów finalnych bez wykorzystywania metody uwodorniania. W systemie A, przepływ surowców wejściowych odbywa się z warstwy pierwszej, poprzez warstwę drugą i trzecią, aż do warstwy czwartej. System B jest systemem prostszym, nie wykorzystującym magazynów położonych w warstwie trzeciej. W systemie B istnieje dodatkowy magazyn półproduktów, nie wykorzystywany przez system A. W systemie B istnieje dodatkowy magazyn produktów gotowych, nie wykorzystywany przez system A. Magazyny położone w poszczególnych warstwach oddzielone są specjalistycznymi oddziałami. Pomiędzy warstwą pierwszą, a warstwą drugą znajduje się oddział przygotowalni, w której surowce wejściowe Si poddawane są obróbce wstępnej i zostają przetworzone do postaci półproduktów Dj. W systemie A warstwę drugą i warstwę trzecią oddziela oddział uwodorniania. Udostępnienie oddziału uwodorniania, oznaczające jednocześnie udostępnienie całego systemu A, związane jest z jednorazowym, specjalnym kosztem uruchomienia oddziału. Jeśli oddział uwodarniania pracuje, część półproduktów Dj z warstwy drugiej, oznaczana jako DUj przetworzona zostaje przez system A do postaci półproduktów uwodornionych Kk. W systemie A, produkty finalne Pl powstają bezpośrednio z uwodornionych części półproduktów Kk. W systemie B, produkty finalne Pl powstają bezpośrednio z nieuwodornionej części półproduktów Dj, oznaczanych jako DNUj. Produkcja odbywa się w obu systemach, bezpośrednio, bez utraty masy. Nie każdy produkt może być wykonany z dowolnych półproduktów, stąd w modelu matematycznym znajdują się ograniczenia związane z możliwościami tworzenia gotowych produktów z niektórych rodzajów półproduktów. Półprodukty przeznaczone do produkcji konkretnego produktu finalnego Pl oznaczane będą odpowiednio jako DNUjPl oraz KkPl. UWAGA: Model zaproponowany w treści zadania projektowego można bezstratnie uprościć do postaci w której zamiast półproduktów uwodornianych K1 i K2 będzie występował tylko jeden półprodukt uwodorniany np. U1. Taka modyfikacja spowodowałaby również rezygnację z warunków dotyczących sposobu podziału półproduktów Dj na półprodukty uwodorniane. Zakładam, że celem ćwiczeń ma być sformuowanie poprawnego modelu matematycznego dla zastanego systemu, nie zaś optymalizacja samego systemu, stąd dosłownie potraktuję warunki ograniczające występujące w treści zadania. 2 KOSZTY ODDZIAŁU PRZYGOTOWALNI W procesie obróbki wstępnej, w oddziale przygotowalni, powstają koszty definiowane przy użyciu trzech przedziałów cenowych związanych z ilością surowca wejściowego, poddawanego obróbce wstępnej. W poszczególnych przedziałach, dla poszczególnych surowców, wykorzystywane są różne taryfy cenowe. Na poniższych wykresach zaprezentowane zostały funkcje dla surowców S1 i S2. Funkcję sumaryczną określającą koszt obróbki wstępnej surowca S1 można wyznaczyć jako minimum funkcji surowca S1. 80000 70000 60000 Surowiec S1 F1 min(min(Fn)) F2 50000 F3 40000 30000 F2 F3 20000 F2 10000 F1 0 Funkcję sumaryczną określającą koszt obróbki wstępnej surowca S2 można wyznaczyć jako maksimum funkcji surowca S2. 100000 80000 Surowiec S2 F3 min(max(Fn)) F2 60000 F2 F1 40000 20000 F1 0 F2 -20000 F3 -40000 Ustalenie kosztu obróbki wstępnej surowca Si wymaga wyznaczenia minimum, bądź maksimum z trzech, występujących dla danego surowca funkcji składowych. W opisanej poniżej funkcji celu, przeprowadzona będzie maksymalizacja osiąganego zysku, co będzie równoważne maksymalizacji ujemnych wartości kosztów, czyli w praktyce minimalizacji kosztów. W efekcie takiego postępowania wyznaczane będzie minimum z minimów funkcji składowej dla surowca S1: min(min(Fn)) oraz minimum z maksimów funkcji składowych dla surowca S2: min(max(Fn)). W celu poprawnego wyliczenia kosztów obróbki wstępnej wprowadzę dodatkowe współczynniki binarne BIGi znoszące ewentualne ograniczenia funkcji. Dla surowca S1, przyjmę wartość BIG1=100000. Dla surowca S2 wspólczynnik BIG2 nie będzie wykorzystywany, więc przyjmę jego wartość jako BIG2=0. 3 MODEL MATEMATYCZNY Na potrzeby modelu przyjęte zostały następujące indeksy: i∈{1,2}, j∈{1,2,3}, k∈{1,2}, l∈{1,2,3}, m∈{1,2},n∈{1,2,3}. • • • • • • • Zmienne decyzyjne występujące w modelu: MSi zmienne rzeczywiste – wykorzystana masa surowca Si (w tonach), MPj zmienne rzeczywiste – wyprodukowana masa produktu finalnego Pl (w tonach), Zmienne pomocnicze: BLin zmienne logiczne kontrolujące n-ty przedział cenowy w procesie obróbki wstępnej dla surowca Si, BU zmienna logiczna, określająca, czy zakład uwodorniania pracuje, CZi zmienne rzeczywiste – koszty obróbki wstępnej surowca Si (w PLN), MDj zmienne rzeczywiste – wyprodukowana masa półproduktu Dj (w tonach), MDUj zmienne rzeczywiste – masa półproduktu Dj (w tonach) podlegająca procesowi uwodorniania, MDNUj zmienne rzeczywiste – masa półproduktu Dj (w tonach) nie podlegająca procesowi uwodorniania, MDNUjPl zmienne rzeczywiste – masa półproduktów nieuwodornionych DNUj użytych do produkcji produktu Pl , MKk zmienne rzeczywiste – wyprodukowana masa półproduktu uwodornionego Kk (w tonach), MKkPl zmienne rzeczywiste – masa półproduktów uwodornionych DUj użytych do produkcji produktu Pl , ZMU zmienna rzeczywista – zmienna pomocnicza wykorzystana w modelowaniu procesu uwodorniania, Stałe pomocnicze: BIGU liczba rzeczywista wykorzystana w modelowaniu procesu uwodorniania (BIGU =100000), BIGi liczby rzeczywiste, wykorzystane w modelowaniu procesu obróbki wstępnej, (BIG1 =100000, BIG2=0), Zmienne zdefiniowane w zadaniu (zyski i koszty): CPl zysk uzyskany ze sprzedaży jednej tony produktu Pl (w PLN), (P1=161, P2=127, P3=91) CSi koszt zakupu jednej tony surowca Si (w PLN), (S1=100, S2=130) CU koszt uruchomienia oddziału uwodorniania (w PLN), (12000) Zmienne zdefiniowane w zadaniu (limity): LSi maksymalna, dostępna masa surowca wejściowego Si (w tonach), (S1=10000, S2=9000) LW maksymalna przepustowość oddziału przygotowalni (w tonach), (13540) LU maksymalna przepustowość oddziału uwodorniania (w tonach), (5039) LPl minimalne zapotrzebowanie na produkt Pl (w tonach), (3787) Zależności procentowe zdefiniowane w zadaniu: SDij część surowca Si (w procentach), nadająca się do produkcji półproduktu Dj, DKjk część półproduktu Dj (w procentach), nadająca się do produkcji półproduktu Kk, Progi związane z funkcjami kosztów oddziału przygotowalni, zdefiniowane w zadaniu: PSim wartość m-tego progu cenowego dla surowca Si (w tonach), PCin wartość n-tego współczynnika cenowego dla surowca Si (w PLN), 4 • Części składowe funkcji celu FC Całkowity zysk pracy systemu to suma poniższych składników: 1. wartość sprzedaży produktów gotowych ∑ MP ⋅ CP , l l l Całkowity koszt pracy systemu to suma poniższych składników: 1. koszt zakupu surowców wejściowych ∑ MS ⋅ CS , i i i 2. koszt obróbki wstępnej surowców wejściowych ∑ CZ , i i 3. • koszt pracy oddziału uwodorniania BU ⋅ CU , Funkcja celu FC maksymalizująca całkowity zysk ze sprzedaży gotowych produktów: FC = max ∑ (MPl ⋅ CPl ) − ∑ (MSi ⋅ CS i ) − (BU ⋅ CU ) − ∑ CZ i , i i i • Ograniczenia: 1. Zmienne decyzyjne wykorzystane w modelu nie mogą przyjmować wartości ujemnych: ∀ i ∀ j ∀ k ∀ l MSi ≥ 0, MD j ≥ 0, MK k ≥ 0, MPl ≥ 0 , 2. Faktycznie użyta do wytworzenia produktów gotowych masa surowca wejściowego Si, nie może być większa niż maksymalna, dostępna masa surowca wejściowego LSi: ∀i (LS i − MSi ) ≥ 0 , 3. Podział surowca Si na półprodukty Dj w oddziale przygotowalni musi odbywać się zgodnie z zasadami określonymi w treści zadania: dokładnie SDij procent surowca Si można wykorzystać do produkcji półproduktu Dj: ∀ j ∑ (MSi ⋅ SDij ) − MD j = 0 i 4. Przez oddział przygotowalni nie może przejść więcej surowców niż określa to maksymalna przepustowość oddziału LW: LW − ∑ MSi ≥ 0 , i 5. Podział półproduktów Dj na półprodukty uwodarniane DUj i nieuwodarniane DNUj musi odbywać się z uwzględnieniem zachowania masy. Suma mas DUj i DNUj musi być równa masie półproduktu Dj: ∀ j (MD j − MDU j − MDNU j ) = 0 , 6. Zgodnie z treścią zadania nie każdy produkt może być poddany procesowu uworniania: MDU1 = 0 5 7. Podział półproduktów DUj na półprodukty uwodornione Kk musi odbywać się zgodnie z zasadami określonymi w treści zadania: dokładnie DKjk procent półproduktu DUj można wykorzystać do produkcji półproduktu uwodornionego Kk: ∀k ∑ (MDU j ⋅ DK jk ) − MK k = 0 , j 8. Warunek logiczny pracy oddziału uwodorniania. Jeśli zmienna logiczna BU=0 oddział uwodorniania nie pracuje i półprodukty Kk nie są wytwarzane. Jeśli BU=1 oddział uwodorniania pracuje i półprodukty Kk powstają: BIGU ⋅ BU − ZMU >= 0 , ∑ MK k − ZMU >= 0 , k ∑ MK k + BIGU (BU − 1) − ZMU >= 0 , k 9. Przez oddział uwodorniania nie może przejść więcej półproduktów niż określa to maksymalna przepustowość oddziału LU: LU − ∑ MK k ≥ 0 , k 10. Faktycznie sprzedana masa towarów gotowych Pl nie może być mniejsza, niż wymagane w zawartej umowie minimalne zapotrzebowanie LPl : ∀l (MPl − LPl ) ≥ 0, 11. Podział półproduktów DNUj i półproduktów uwodorniony Kk w celu produkcji produktów finalnych musi odbywać się z uwzględnieniem zachowania masy. Suma mas DNUjPl i KkPl musi być równa masie półproduktów z których powstały: ∀ j MDNU j − ∑ MDNU j Pl = 0, l ∀k MK k − ∑ MK k Pl = 0, l 12. Ograniczenia wykluczające - zgodnie z treścią zadania, nie każdy półprodukt nadaje się do produkcji każdego produktu finalnego: MDNU1 P2 = 0, MDNU 2 P1 = 0, MDNU 2 P3 = 0, MDNU 3 P1 = 0, MDNU 3 P3 = 0, MK1P2 = 0, MK 2 P2 = 0, 13. Ograniczenia wyprodukowanych produktów ∀l MPl − ∑ MDNU j Pl + ∑ MK k Pl , j k 6 14. Ograniczenia związane z kosztami obróbki wstępnej surowca wejściowego Si na oddziale przygotowalni: CZ i − PCi1 ⋅ MSi + BIGi ⋅ BLi1 ≥ 0, CZ i − PSi1 ⋅ PCi1 − PCi 2 ⋅ MSi + PCi 2 ⋅ PSi1 + BIGi ⋅ BLi 2 ≥ 0 , CZ i − PSi1 ⋅ PCi1 − PSi 2 ⋅ PCi 2 + PSi1 ⋅ PCi 2 − PCi 3 ⋅ MSi + PCi 3 ⋅ PSi 2 + BIGi ⋅ BLi 3 ≥ 0 , lub w wersji uporządkowanej: CZ i − PCi1 ⋅ MSi + BIGi ⋅ BLi1 ≥ 0, CZ i − PCi 2 ⋅ MSi + BIGi ⋅ BLi 2 + PSi1 (PCi 2 − PCi1 ) ≥ 0 CZ i − PCi 3 ⋅ MSi + BIGi ⋅ BLi 3 + PSi1 (PCi 2 − PCi1 ) + PSi 2 (PCi 3 − PCi 2 ) ≥ 0 15. Ograniczenia zmiennych logicznych: 2 − ∑ BL1n ≥ 0, n ∑ BL 2n = 0, n 7 PLIK ‘LP’ wersja formalna maximize 161 MP1 + 127 MP2 + 91 MP3 - 100 MS1 - 130 MS2 - CZ1 - CZ2 - 12000 BU Subject to \\ OGRANICZENIE DOSTEPNEJ MASY SUROWCOW MS1 <= 10000 MS2 <= 9000 \\ PODZIAL SUROWCA NA POLPRODUKTY 0.1 MS1 + 0.4 MS2 - MD1 = 0 0.4 MS1 + 0.5 MS2 - MD2 = 0 0.5 MS1 + 0.1 MS2 - MD3 = 0 \\ PRZEPUSTOWOSC ODDZIALU PRZYGOTOWALNI MS1 + MS2 <= 13540 \\ PODZIAL POLPRODUKTOW NA POLPRODUKTY UWODORNIANE i NIEUWADARNIANE MD1 - MDU1 - MDNU1 = 0 MD2 - MDU2 - MDNU2 = 0 MD3 - MDU3 - MDNU3 = 0 \\ ZAKAZ UWODORNIANIA NIEKTORYCH PRODUKTOW MDU1 = 0 \\ PODZIAL POLPRODUKTOW PRZEZNACZONYCH DO UWODORNIENIA 0 MDU1 + 0.6 MDU2 + 0.5 MDU3 - MK1 = 0 0 MDU1 + 0.4 MDU2 + 0.5 MDU3 - MK2 = 0 \\ OGRANICZENIE URUCHOMIENIA ODDZIALU UWODORNIANIA 100000 BU - ZMU >=0 MK1 + MK2 - ZMU >=0 MK1 + MK2 + 100000 BU - ZMU >= 100000 \\ PRZEPUSTOWOSC ODDZIALU UWODORNIANIA MK1 + MK2 <= 5039 \\ OGRANICZENIE MINIMALNEGO ZAPOTRZEBOWANIA MP1 >= 3787 MP2 >= 3787 MP3 >= 3787 \\ SPOSOBY PRODUKCJI PRODUKTU FINALNEGO MDNU1 - MDNU1P1 - MDNU1P2 - MDNU1P3 = 0 MDNU2 - MDNU2P1 - MDNU2P2 - MDNU2P3 = 0 MDNU3 - MDNU3P1 - MDNU3P2 - MDNU3P3 = 0 MK1 - MK1P1 - MK1P2 - MK1P3 = 0 MK2 - MK2P1 - MK2P2 - MK2P3 = 0 \\ WYKLUCZENIA PRODUKCJI Z NIEKTORYCH POLPRODUKTOW MDNU1P2=0 MDNU2P1=0 MDNU2P3=0 MDNU3P1=0 MDNU3P3=0 MK1P2=0 MK2P2=0 \\ ZASADA ZACHOWANIA MASY POLPRODUKTOW MDNU1P1 + MDNU2P1 + MDNU3P1 + MK1P1 + MK2P1 - MP1 = 0 MDNU1P2 + MDNU2P2 + MDNU3P2 + MK1P2 + MK2P2 - MP2 = 0 MDNU1P3 + MDNU2P3 + MDNU3P3 + MK1P3 + MK2P3 - MP3 = 0 \\ KOSZTY OBRODBKI WSTEPNEJ CZ1 - 10 MS1 + 100000 BL11 >= 0 CZ1 - 7 MS1 + 100000 BL12 >= 6648 CZ1 - 5 MS1 + 100000 BL13 >= 17250 CZ2 - 9 MS2 + 0 BL21 >=0 CZ2 - 12 MS2 + 0 BL22 >= - 6762 CZ2 - 15 MS2 + 0 BL23 >= - 25053 \\ ZASADY DLA ZMIENNYCH BINARNYCH BL11 + BL12 + BL13 <= 2 BL21 + BL22 + BL23 = 0 binaries BU BL11 BL12 BL13 BL21 BL22 BL23 End 8 PLIK ‘LP’ wersja uproszczona W wersji uproszczonej pliku ‘LP’ usunięte zostały ograniczenia wykluczające maximize 161 MP1 + 127 MP2 + 91 MP3 - 100 MS1 - 130 MS2 - CZ1 - CZ2 - 12000 BU Subject to \\ OGRANICZENIE DOSTEPNEJ MASY SUROWCOW MS1 <= 10000 MS2 <= 9000 \\ PODZIAL SUROWCA NA POLPRODUKTY 0.1 MS1 + 0.4 MS2 - MD1 = 0 0.4 MS1 + 0.5 MS2 - MD2 = 0 0.5 MS1 + 0.1 MS2 - MD3 = 0 \\ PRZEPUSTOWOSC ODDZIALU PRZYGOTOWALNI MS1 + MS2 <= 13540 \\ PODZIAL POLPRODUKTOW NA POLPRODUKTY UWODORNIANE i NIEUWADARNIANE MD1 - MDNU1 = 0 MD2 - MDU2 - MDNU2 = 0 MD3 - MDU3 - MDNU3 = 0 \\ PODZIAL POLPRODUKTOW PRZEZNACZONYCH DO UWODORNIENIA 0.6 MDU2 + 0.5 MDU3 - MK1 = 0 0.4 MDU2 + 0.5 MDU3 - MK2 = 0 \\ OGRANICZENIE URUCHOMIENIA ODDZIALU UWODORNIANIA 100000 BU - ZMU >=0 MK1 + MK2 - ZMU >=0 MK1 + MK2 + 100000 BU - ZMU >= 100000 \\ PRZEPUSTOWOSC ODDZIALU UWODORNIANIA MK1 + MK2 <= 5039 \\ OGRANICZENIE MINIMALNEGO ZAPOTRZEBOWANIA MP1 >= 3787 MP2 >= 3787 MP3 >= 3787 \\ SPOSOBY PRODUKCJI PRODUKTU FINALNEGO MDNU1 - MDNU1P1 - MDNU1P3 = 0 MDNU2 - MDNU2P2 = 0 MDNU3 - MDNU3P2 = 0 MK1 - MK1P1 - MK1P3 = 0 MK2 - MK2P1 - MK2P3 = 0 \\ ZASADA ZACHOWANIA MASY POLPRODUKTOW MDNU1P1 + MK1P1 + MK2P1 - MP1 = 0 MDNU2P2 + MDNU3P2 - MP2 = 0 MDNU1P3 + MK1P3 + MK2P3 - MP3 = 0 \\ KOSZTY OBRODBKI WSTEPNEJ CZ1 - 10 MS1 + 100000 BL11 >= 0 CZ1 - 7 MS1 + 100000 BL12 >= 6648 CZ1 - 5 MS1 + 100000 BL13 >= 17250 CZ2 - 9 MS2 >=0 CZ2 - 12 MS2 >= - 6762 CZ2 - 15 MS2 >= - 25053 \\ ZASADY DLA ZMIENNYCH BINARNYCH BL11 + BL12 + BL13 <= 2 binaries BU BL11 BL12 BL13 BL21 BL22 BL23 End 9 ROZWIĄZANIE ZADANIA OPTYMALIZACJI Rozwiązanie zadania optymalizacji, bazujące na przedstawionym modelu, wykonane w oparciu o plik ‘LP’: OPIS ROZWIĄZANIA Z podanego rozwiązania można uzyskać następujące informacje: Masa sprzedawanych towarów MP1 3787 ton MP2 5966 ton MP3 3787 ton MS1 9603.333333 tony MS2 3936.666667 tony BU 1 CZ1 65266.666667 CZ2 40478 Całkowity zysk pracy systemu FC 122 161.33333 Pełny listing rozwiązania: Objective = 1.2216133333e+05 Variable Name Solution Value MP1 3787.000000 MP2 5966.000000 MP3 3787.000000 MS1 9603.333333 MS2 3936.666667 CZ1 65266.666667 CZ2 40478.000000 BU 1.000000 MD1 2535.000000 MD2 5809.666667 MD3 5195.333333 MDNU1 2535.000000 MDNU2 5809.666667 MDU3 5039.000000 MDNU3 156.333333 MK1 2519.500000 MK2 2519.500000 BL11 1.000000 BL12 1.000000 MDNU1P3 2535.000000 MDNU2P2 5809.666667 MDNU3P2 156.333333 MK1P1 1267.500000 MK1P3 1252.000000 MK2P1 2519.500000 10