Wprowadzenie do progr. liniowego

Transkrypt

Wprowadzenie do progr. liniowego
Politechnika Gdańska
Wydział Elektrotechniki i Automatyki
Katedra Inżynierii Systemów Sterowania
KOMPUTEROWE SYSTEMY STEROWANIA I WSPOMAGANIA DECYZJI
Rozproszone programowanie produkcji z wykorzystaniem metody
dekompozycji Dantziga-Wolfe’a
Materiał pomocniczy 2 – część 1:
Przykładowe liniowe modele programowania produkcji
Opracowanie:
Kazimierz Duzinkiewicz, dr hab. inż.
Robert Piotrowski, dr inż.
Tomasz Karol Nowak, mgr inż.
Mariusz Czapliński, mgr Inż.
Gdańsk, styczeń 2013
1. Przykład z zakresu planowania produkcji, zaczerpnięty z przemysłu
rafineryjnego.
Na rysunku 1.5 przedstawiony jest schemat powiazań materiałowych pewnego fragmentu
działalności przykładowego zakładu rafineryjnego. Na schemacie tym zaznaczono już graficznie
podział na możliwe do wyróżnienia działalności. Wyróżniono cztery rodzaje działalności:
(1) działalność zakupu surowców - zilustrowana prostokątami z numerem kolejnym surowca i
strzałkami skierowanymi do systemu;
01
System
numer kolejny surowca
Rys. 1.1. Symbol działalności zakupu surowca
(2) działalność przerobu surowców i półproduktów - zilustrowana prostokątami z wpisanymi
wsadami i uzyskami;
skrót nazwy dzia³alnoœci numer kolejny dzia³alnoœci
RF
01 BCDRW
numer kolejny wsadu
02
GSRF
01
GPRF
02
REF
03
numer kolejny uzysku
skrót nazwy wsadu skrót nazwy uzysku
Rys. 1.2. Symbol działalności przerobu surowców i półproduktów
(3) działalność magazynowania - zilustrowana trójkątami z wpisanym numerem kolejnym
magazynu;
numer kolejny magazynu
02
Rys.1.3. Symbol działalności magazynowania
2
(4) działalność sprzedaży produktów - zilustrowana prostokątami z wpisanym numerem kolejnym produktu, ze strzałkami od systemu;
numer kolejny produktu
System
02
Rys. 1.4. Symbol działalności sprzedaży produktów
Dokonany podział na działalności wiąże się z tym, do jakich celów będzie służył model użyty w
sformułowaniu zadania programowania liniowego. W rozważanym przykładzie budujemy model
z pomocą którego chcemy określić optymalny plan produkcji dla pewnego okresu T. Problem
optymalnego planowania produkcji w przykładowym zakładzie rafineryjnym sformułujemy
następująco:
W oparciu o:
(1) schemat produkcyjny (powiązań materiałowych) zakładu;
(2) wymagania dotyczące jakości produkcji (produktów);
(3) charakterystyki techniczno-technologiczne poszczególnych jednostek produkcyjnych;
(4) ewentualne narzucone zadania produkcyjne (ilości i asortyment produktów);
(5) przyjęty wskaźnik efektywności działania z - zysk zakładu,
należy wyznaczyć takie zadania produkcyjne dla poszczególnych jednostek produkcyjnych, aby
zapewniło to uzyskanie maksymalnej wartości wskaźnika z za cały okres planowania.
DRW
01
01
01
RN
01
GSDRW
01
GPDRW
02
BLDRW
03
BCDRW
04
ONDRW
05
OSDRW
06
PDDRW
07
02
03
RF
01 BCDRW
KB1
01
01
BLDRW
01
02
BCDRW
02
03
REF
KB2
3
01
01
BLDRW
01
02
BCDRW
02
03
REF
03
04
03
04
03
04
02
GSRF
01
GPRF
02
REF
03
04
03
BB1
01
05
01
04
BB2
01
06
02
Rys. 1.5. Przykładowy fragment zakładu rafineryjnego
Wykonamy teraz kolejne etapy budowy modelu programowania liniowego, które zostały
przedstawione powyżej. Podział zakładu na działalności został już dokonany. Przed przystąpieniem do budowy modelu musimy określić zbiór zmiennych decyzyjnych. Jako zmienne
decyzyjne w rozważanym przykładzie przyjmiemy wielkości, które będą określały wielkość
zadań produkcyjnych dla poszczególnych działalności w okresie planowania.
Rozmiary działalności zakupu surowców są określone jednoznacznie przez ilości zakupionych
surowców. Przyjmijmy dla tych wielkości następujące oznaczenie:
Sj np. S 01
gdzie: j - dwucyfrowy numer kolejny surowca.
Rozmiary działalności przerobu surowców i półproduktów mogą być scharakteryzowane przez
wartości wsadów lub uzysków. Ustalmy, że rozmiary tej działalności będą charakteryzowane
przez wartości wsadów. Przyjmijmy dla tych wielkości następujące oznaczenie:
Xjk np. X 0201
gdzie: j - dwucyfrowy numer kolejny działalności danego typu,
k - dwucyfrowy numer kolejny wsadu.
Rozmiary działalności magazynowania charakteryzują jednoznacznie ilości zmagazynowanych
mediów na koniec okresu planowania. Przyjmijmy dla tych wielkości następujące oznaczenie:
Zj np. Z 05
gdzie: j - dwucyfrowy numer magazynu.
W końcu działalność sprzedaży produktów określona jest przez ilości sprzedanych produktów.
Przyjmijmy dla tych wielkości następujące oznaczenie:
Pj np. P01
gdzie: j - dwucyfrowy numer kolejny produktu.
Odpowiednio do podanego sformułowania zagadnienia planowania produkcji, w modelu
powinny wystąpić:
(1) zależności
reprezentujące powiązania pomiędzy poszczególnymi
jednostkami
produkcyjnymi (działalnościami) oraz powiązania zakładu z otoczeniem - tzw. zależności
bilansowe;
(2) zależności reprezentujące jakościowe wymagania nakładane na produkty;
(3) zależności reprezentujące warunki technologiczne pracy jednostek produkcyjnych;
(4) zależności reprezentujące ograniczenia zdolności przerobowych jednostek (warunki techniczne);
(5) zależności reprezentujące narzucone ilościowe zadania produkcyjne;
(6) funkcja celu.
Przyjmijmy, że dla zbudowania modelu zebrano następujące dane:
Optymalny plan działalności zakładu należy określić dla jednego kwartału, T = 90 dni.
Dane o jednostkach produkcyjnych:
DRW
4
a) wskaźniki uzysków:
BLDRW 0.040
BCDRW 0.131
b) ilość dnia pracy w okresie planowania: 90
c) maksymalna zdolność przerobowa: 27100 t/d RN
d) technologiczne warunki pracy: nie ma.
RF
a) wskaźniki uzysków:
REF
0.774
b) ilość dnia pracy w okresie planowania: 90
c) maksymalna zdolność przerobowa: 3640 t/d BCDRW
d) technologiczne warunki pracy: nie ma.
KB1
a) wskaźniki uzysków:
BB1
1.0
b) ilość dnia pracy w okresie planowania: 90
c) maksymalna zdolność przerobowa: nie ma ograniczeń. Zakład jest w stanie wyekspediować maksymalnie około 3870 t/d BB1 i BB2.
KB2
a) wskaźniki uzysków:
BB2
1.0
b) ilość dnia pracy w okresie planowania: 90
c) maksymalna zdolność przerobowa: nie ma ograniczeń. Zakład jest w stanie wyekspediować maksymalnie około 3870 t/d BB1 i BB2.
Wymagania jakościowe dla benzyn:
Benzyna
BB1
BB2
Prężność par
dolna
0.5
0.5
[kG/cm2]
górna
0.8
0.8
Liczba oktanowa
Prężność par
[kG/cm2]
0.798
0.062
0.448
Liczba oktanowa
75.0
64.0
Wskaźniki jakościowe komponentów benzyn:
Komponent
BLDRW
BCDRW
REF
Gęstość
[t/m3]
0.644
0.764
0.770
Ograniczenia ilościowe na dostawy surowców z zewnątrz:
RN nie więcej niż
2520000 t
Wymagania produkcyjne:
BB1
BB2
nie więcej niż 60000 t
nie mniej niż 225000 t
Ceny surowców:
5
67.6
45.0
82.8
RN
0.640 jp/t
Ceny produktów:
BB1
BB2
6.00 jp/t
4.70 jp/t
Można przyjąć, że zbiorniki praktycznie mogą pomieścić każdą ilość odpowiedniego medium.
Na przykładach pokażemy w jaki sposób można formułować poszczególne z typów zależności
wymienionych wyżej jako zależności liniowe. Każdej z tych zależności będziemy nadawali
nazwę w postaci pewnego symbolu.
(1) Zależności bilansowe - wyrażają powiązania między jednostkami produkcyjnymi zakładu
oraz powiązania zakładu z otoczeniem.
Przykład warunku powiązania z otoczeniem przez zakup surowca:
BS 01
S 01  X 0101  Z 01  0
Przykład warunku powiązania pomiędzy jednostkami zakładu:
BZ 03
0.131 X 0101  X 0201  X 0302  X 0402  Z 03  0
Przykład warunku powiązania z otoczeniem przez sprzedaż produktu:
BP 01
X 0301  X 0302  X 0303  Z 05  P01  0
(2) Zależności jakościowe - powinny zapewnić wytwarzanie produktów o wymaganej jakości.
Jakość produktu jest określona przez jego wskaźniki jakościowe. W modelu możemy uwzględnić wskaźniki na które mają wpływ zmienne decyzyjne. Przyjmijmy, że w modelu
uwzględnimy warunki dotyczące benzyn:
(a) liczby oktanowej;
(b) prężności par dolnej;
(c) prężności par górnej.
Warunki jakie muszą spełniać wartości wymienionych wskaźników jakości można zapisać w
formie odpowiednich nierówności:
(a) liczba oktanowa
Żąda się, aby liczba oktanowa Lj, j-tego produktu była nie mniejsza niż LjD
Lj  LjD
(1.1)
gdzie: LjD - żądana wartość liczby oktanowej j-tego produktu.
Przyjmiemy, że liczba oktanowa mieszanimy jest średnią ważoną z wartości liczb oktanowych komponentów.
m
Xi
Li

Gi
Lj  i 1m
(1.2)
Xi

i 1 Gi
gdzie: j, i - odpowiednio numer produktu i numer komponentu,
Lj, Li - odpowiednio liczba oktanowa j-tego produktu i i-tego komponentu,
Gi - gęstość i-tego komponentu,
6
Xi - ilość i-tego komponentu w mieszaninie.
Po podstawieniu (2.2) do (2.1) otrzymamy:
m
Li  LjD
Xi  0

Gi
i 1
Przykład warunku jakościowego na liczbę oktanową dla produktu P01:
LOP01
(1.3)
11. 49 X 0301  39. 27 X 0302  10.13 X 0303  0
(b) prężność par
Żąda się, aby prężność par PRj j-tego produktu była nie mniejsza niż PRjD i nie większa
niż PRjG
PRjD  PRj  PRjG
(1.4)
Przyjmiemy, że prężność par mieszanimy jest średnią ważoną z wartości prężności par
komponentów. Otrzymamy wówczas podobnie jak dla liczby oktanowej warunki:
m
PRi  PRjD
Xi  0
(1.5)

Gi
i 1
m
PRi  PRjG
Xi  0
(1.6)

Gi
i 1
gdzie: j, i - odpowiednio numer produktu i numer komponentu,
PRj, PRi - odpowiednio prężność par j-tego produktu i i-tego komponentu,
Gi - gęstość i-tego komponentu,
Xi - ilość i-tego komponentu w mieszaninie.
Przykład warunków jakościowych dla prężności par dla produktu P01:
PPDP01
0. 463 X 0301  0. 573 X 0302  0.068 X 0303  0
PPGP01
0.003 X 0301  0. 966 X 0302  0. 457 X 0303  0
(3) Ograniczenia zdolności przerobowych instalacji
Przykłady:
MP 01
X 0101  2439000 .0
MPP 0102
P01  P02  348300
(4) Ograniczenia na ilości surowców i produktów
Przykłady:
WPS 01
S 01  2520000
WPP 01
P01  60000
(5) Funkcja celu
ZYSK 1
0.640 S 01  6 .0 P01  4.7 P02  z
7
Na rys. 2.6 przedstawiona jest tablica modelu liniowego dla rozważanego przykładu. W tablicy
tej symbole  i  oznaczają współczynniki liczbowe odpowiednio ujemne i dodatnie, różne od -1
i 1.
2. Postać matematyczna zadań programowania liniowego
Na podstawie przedstawionego przykładu widać, że w ogólnej postaci sformułowania zadania
programowania liniowego wystąpią następujące składniki:
(1) funkcja celu postaci:
Zmaksymalizować (lub zminimalizować) z  c1 x1 ... c j x j ... cn xn
(2.1)
(2) zasadnicze warunki ograniczające o jednej z następujących postaci:
ai1 x1 ... aij x j ... ain xn  bi , i  1, k1 , i  N
ai1 x1 ... aij x j ... ain xn  bi , i  k1  1, k2 , i  N
ai1 x1 ... aij x j ... ain xn  bi , i  k2  1, m, i  N
(2.2)
(2.3)
(2.4)
(3) warunki nieujemności postaci:
x j  0,
j  1, s, s  n
(2.5)
Warunki nieujemności nie muszą dotyczyć wszystkich zmiennych. Jeżeli s = n, to warunki
nieujemności nazywamy pełnymi.
Na rysunku 2.1 przedstawiono macierz ograniczeń zagadnienia programowania liniowego
rozpatrywanego zakładu rafineryjnego.
8
Zmienne
O
g
r
a
n.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
S
0
1
2
X
0
1
0
1
3
X
0
2
0
1
4
X
0
3
0
1
5
X
0
3
0
2
6
X
0
3
0
3
7 8 9
X X X
0 0
0 4 4
4 0 0
0 2 3
1
10
Z
0
1
11
Z
0
2
12
Z
0
3
13
Z
0
4
14
Z
0
5
15
Z
0
6
16
P
0
1
17
P
0
2
BS01
1 -1
-1
BZ02
+
-1
-1
-1
BZ03
+ -1
-1
-1
-1
BZ04
+
-1
-1
-1
BP01
1 1 1
-1
-1
BP02
1 1 1
-1
-1
LOP01
  +
PPDP01
  
PPGP01
  
LOP02
  
PPDP02
  
PPGP02
  
MP01
1
MP02
1
MPP01P02
1 1
WPS01
1
WPP01
1
WPP02
1
ZYSK1 
 
R
e
l
a
c
j
a
=
=
=
=
=
=













Rys. 2.1. Tablica przykładowego zadania programowania liniowego
9
P
r.
s
t
r.
0
0
0
0
0
0
0
0
0
0
0
0
2439000
327600
348300
2520000
60000
225000
z