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