5. Zadanie optymalnego rozkroju – minimalizacja liczby pociętych

Transkrypt

5. Zadanie optymalnego rozkroju – minimalizacja liczby pociętych
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
1
5. Zadanie optymalnego rozkroju – minimalizacja liczby pociętych
półfabrykatów
Zakładamy, Āe są dostępne w nieograniczonej liczbie półfabrykaty takie, jak: druty, deski, rury, arkusze blachy,
tworzyw sztucznych, papieru, bloki metalu, plastiku etc. Przyjmujemy, Āe prefabrykaty te są jednakowe z punktu widzenia ich parametrów technicznych, a ponadto mają one jednakową ceną zakupu i obróbki. Półfabrykaty
te moĀna pociąć (na n róĀnych sposobów) na mniejsze fragmenty – detale m róĀnych typów (gdzie „typy detali” oznaczają detale o róĀnych kształtach i rozmiarach). Ponadto z kaĀdym sposobem cięcia (lub przynajmniej
z niektórymi z nich) jest związane pozostawanie odpadów tzn. części półfabrykatów zbyt małych lub o takim
kształcie, Āe nie da się z nich wyciąć detalu któregokolwiek z typów.
NaleĀy zaplanować, ile półfabrykatów naleĀy pociąć na kaĀdy ze sposobów, aby zminimalizować łączną liczbę
pociętych (zuĀytych) półfabrykatów, produkując przy tym wymaganą liczbę detali kaĀdego z typów.
Określenie „co najmniej wymaganą liczbę detali” odnosi się do procedur obliczeniowych, a niekoniecznie do
liczby realnie wykonanych detali.
Parametrami w modelu matematycznym zagadnienia są:
• aij - liczba detali i-tego typu otrzymywana po pocięciu półfabrykatu na j-ty sposób (i= 1,...,m; j = 1,...,n),
•
bi - wymagana liczba detali i-tego typu, która ma powstać po pocięciu półfabrykatów (i=1,...,m),
Zmiennymi decyzyjnymi w tym zagadnieniu są zatem liczby półfabrykatów:
• xj - liczba półfabrykatów pociętych na j-ty sposób.
a ogólny model zagadnienia moĀna zapisać następująco:
x1 + x 2 + ... + xn → min łączna liczba pociętych półfabrykatów
przy ograniczeniach
rzeczywiste liczby
wymagane
wyprodukowanych detali
liczby detali
(dokładniej - zaplanowane do
wykonania)
a11 x1 + a12 x 2 + ... + a1n x n
a 21 x1 + a 22 x 2 + ... + a 2 n x n
≥
≥
⋮
⋮
a m1 x1 + a m 2 x 2 + ... + a mn x n
≥
b1
b2
bm
x1 ≥ 0 , x 2 ≥ 0 ,...., x n ≥ 0 liczba pociętych półfabrykatów nie moĀe być ujemna
x1 , x 2 ,...., x n - całkowite - liczba pociętych półfabrykatów musi być całkowita.
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
2
ZADANIE – optymalny rozkrój jednowymiarowy
Jednakowe półfabrykaty - deski mają zostać pocięte na mniejsze kawałki - detale trzech typów. Dostępne
sposoby rozkroju, jak równieĀ wymagane liczby detali zostały podane w tabeli:
Liczba detali przypadających na
Wymagana liczba
kaĀdy ze sposobów cięcia (w szt.)
Typy detali
detali (w szt.)
S1
S2
S3
S4
S5
S6
D1
5
7
0
8
6
0
840
D2
1
3
7
3
4
4
500
D3
11
3
1
2
2
9
475
NaleĀy znaleźć plan pocięcia minimalizujący łączną liczbę pociętych półfabrykatów (desek).
1. Rozwiązać zadanie bez dodawania warunków całkowitoliczbowości zmiennych (w warunkach
ograniczających dotyczących liczby detali występują znaki nierówności „ ≥ ”).
2. Wykonać zaokrąglenie otrzymanego rozwiązania (tzn. wpisać do komórek B2, C2,…,G2 liczby, które się
tam pojawiły po obliczeniach Solvera, zaokrąglone do liczb całkowitych) i sprawdzić poprawność takiego
podejścia (tzn. sprawdzić spełnianie warunków ograniczających).
3. Rozwiązać zadanie w postaci standardowej, tzn. z warunkami całkowitoliczbowości zmiennych oraz z warunkami ograniczającymi dotyczącymi liczby detali z nierównościami „ ≥ ”.
4. Rozwiązać zadanie w wariancie gdzie w warunkach ograniczających dotyczących liczby detali występują
znaki równości „=” (oznacza to innymi słowy, Āe prawe strony warunków ograniczających mają teraz
interpretację „dokładne wymagane liczby wyprodukowanych detali”) .
5. Przyspieszanie obliczeń poprzez zmianę opcji Solvera. W warunkach ograniczających dotyczących liczby
detali pozostawić znaki równości „=”. Zaznaczyć w oknie opcji Solvera opcję Przyjmij model liniowy
(Excel 2010 i nowsze - opcja LP Simpleks w liście Wybierz metodę rozwiązywania w oknie głównym
Solver) i przeliczyć ponownie. Porównać czas obliczeń z czasem obliczeń dla punktu 4.
6. Zmienić wymagane liczby detali: 1 typu z 840 na 290 oraz 3 typu z 475 na 140). Wykonać ponownie
obliczenia.
Model matematyczny do zadania
Model poniĀszy odpowiada dokładnie punktowi 3 zadania, w punktach 1, 2 i 4 występują pewne modyfikacje.
Model matematyczny – warunki na liczbę detali typu „ ≥ ”
x1 , x2 , x3 , x 4 , x5 , x6 - liczba sztuk półfabrykatów - desek pociętych na kaĀdy z 6 sposobów
x1 + x 2 + x 3 + x 4 + x5 + x 6 → min łączna sztuk pociętych półfabrykatów - desek
przy ograniczeniach
rzeczywiste liczby wyprodukowanych detali
wymagane liczby detali
(dokładniej - zaplanowane do wykonania)
5 x1 + 7 x 2 + 0 x3 + 8 x 4 + 6 x5 + 0 x6
≥
840
1x1 + 3 x 2 + 7 x3 + 3 x 4 + 4 x5 + 4 x 6
≥
500
11x1 + 3x 2 + 1x3 + 2 x 4 + 2 x5 + 9 x6
≥
475
x1 ≥ 0 , x 2 ≥ 0 , x3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0 , x 6 ≥ 0 liczba sztuk pociętych półfabrykatów - desek nie moĀe być ujemna
x1 , x2 , x3 , x 4 , x5 , x6 - całkowite (liczba pociętych półfabrykatów - desek musi być całkowita).
Funkcja celu i pierwszy z warunków ograniczających „rozpisane” z jednostkami.
Wprowadźmy oznaczenia:
• szt Di – liczba sztuk detali typu i, i=1,2,3
• szt PFj – liczba sztuk półfabrykatów (czyli desek) pociętych na j-ty sposób, j=1,2,3,4,5,6.
W przypadku funkcji celu
x1 szt PF1 + x2 szt PF 2 + ⋅ x3 szt PF 3 + x4 szt PF 4 + x5 szt PF 5 + x6 szt PF 6
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
3
po prostu sumujemy sztuki półfabrykatów. W tym przypadku akurat moĀna potraktować jednostki „sztuki
półfabrykatów pocięte na sposób j” jako jednakowe i dlatego ich dodawanie jest poprawne.
PoniĀej „rozpisany” jest pierwszy warunek ograniczający na liczbę detali
szt D1
szt D1
szt D1
⋅ x1 szt PF1 + 7
⋅ x2 szt PF 2 + 0
⋅ x3 szt PF 3 +
szt PF1
szt PF 2
szt PF 3
szt D1
szt D1
szt D1
⋅ x4 szt PF 4 + 6
⋅ x5 szt PF 5 + 0
⋅ x6 szt PF 6 ≥ 840 szt D1
8
szt PF 4
szt PF 5
szt PF 6
5
Wprowadzanie danych do komórek arkusza
Jak zwykle, uĀytkownik musi zdecydować, które komórki arkusza będą pełnić rolę zmiennych decyzyjnych („iksów”).
W rozwiązywanym właśnie zadaniu komórkami pełniącymi rolę zmiennych decyzyjnych będą B2, C2, D2, E2,
F2, G2 czyli (w skrócie) zakres (tablica) B2:G2. Odpowiedniość pomiędzy komórkami a zmiennymi jest
następująca:
B2 - x1 , C2 - x 2 , D2 - x3 , E2 - x 4 , F2 - x5 , G2 - x6 .
Rozmieszczenie danych w arkuszu dla zadania optymalnego rozkroju. Przy minimalizacji łącznej liczby
pociętych półfabrykatów - desek formuła odpowiadająca funkcji celu będzie się znajdować w H2.
Funkcja celu to suma „zwykła”:
x1 + x 2 + x 3 + x 4 + x5 + x 6
Jej odpowiednikiem będzie formuła
=B2+C2+D2+E2+F2+G2
Zastosujemy jednak prostszy zapis
=SUMA(B2:G2)
PoniewaĀ formuły opisujące rzeczywistą liczbę detali są sumami iloczynów a nie sumami zwykłymi, zatem
formuły na funkcję celu nie moĀna przekopiować.
W prowadzamy formułę opisującą rzeczywistą liczbę wyprodukowanych detali 1 typu
5 x1 + 7 x 2 + 0, x3 + 8 x 4 + 6 x5 + 0 x6
Jej odpowiednikiem będzie formuła
=B4*B2+C4*C2+D4*D2+E4*E2+F4*F2+G4*G2
Zastosujemy jednak prostszą we wprowadzaniu (zwłaszcza, jeĀeli uĀyty zostanie kreator funkcji) równowaĀną
formułę
=SUMA.ILOCZYNÓW(B4:G4;B2:G2).
Ta druga funkcja jest podobna do pozostałych lewych stron warunków ograniczających (wszystkie są sumami
iloczynów liczb i zmiennych). Dzięki temu formuła reprezentująca w arkuszu w/w funkcję zostanie
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
4
wykorzystana do stworzenia (przy pomocy kopiowania), formuł reprezentujących wszystkie
warunków ograniczających. W tym celu formuła ta musi być wpisana w postaci
=SUMA.ILOCZYNÓW(B4:G4;B$2:G$2)
lewe strony
Rozmieszczenie formuł
Zapis matematyczny
Formuły „dosłowne” tzn. takie które naleĀałoby
wpisać przy literalnym „przełoĀeniu” zapisu
matematycznego na składnię Excela
x1 + x 2 + x 3 + x 4 + x5 + x 6
=B2+C2+D2+E2+F2+G2
5 x1 + 7 x 2 + 0 x3 + 8 x 4 + 6 x 5 + 0 x 6
=B4*B2+C4*C2+D4*D2+E4*E2+F4*F2+G4*G2
1x1 + 3 x 2 + 7 x 3 + 3x 4 + 4 x5 + 4 x 6
=B5*B2+C5*C2+D5*D2+E5*E2+F5*F2+G5*G2
11x1 + 3x 2 + 1x3 + 2 x 4 + 2 x 5 + 9 x 6
=B6*B2+C6*C2+D6*D2+E6*E2+F6*F2+G6*G2
Komórka
Informacja na temat formuł: wprowadzanych przez uĀytkownika i kopiowanych (funkcje celu i warunki
ograniczające)
Formuły z SUMA.ILOCZYNÓW lub
SUMA odpowiadające formułom
„dosłownym”
Uwagi
H2
=SUMA(B2:G2)
Wprowadzona
przez
uĀytkownika
Wprowadzona
przez
uĀytkownika
Otrzymana
H5 =SUMA.ILOCZYNÓW(B5:G5;B$2:G$2) przez kopiowanie z H4
Otrzymana
H6 =SUMA.ILOCZYNÓW(B6:G6;B$2:G$2) przez kopiowanie z H4
H4 =SUMA.ILOCZYNÓW(B4:G4;B$2:G$2)
Wpisanie sumy „zwykłej” zmiennych do H2 (funkcja celu).
Wpisanie sumy iloczynów – liczba detali 1 typu do H4 .
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
5
Kopiowanie odbywa się w standardowy sposób. Warto jedynie zwrócić uwagę na fakt, Āe tym razem komórka
„źródłowa” sąsiaduje bezpośrednio z komórkami „docelowymi” a zatem moĀna zamiast funkcji Kopiuj/Wklej
uĀyć równieĀ „przeciągania myszą” za prawy dolny róg komórki.
Zrzut ekranu bezpośrednio po kopiowaniu - nie ilustruje Āadnych czynności, a jedynie słuĀy do kontroli
poprawności wprowadzenia danych!!!
Zrzut ekranu bezpośrednio po kopiowaniu - widok formuł.
Ad.1 Rozwiązanie z warunkami na liczbę detali „≥” i bez warunków całkowitoliczbowości
zmiennych
Ustawienia Solvera
Na tym etapie zakończyło się wprowadzanie danych bezpośrednio do komórek arkusza.
Mamy następujące związki między zapisem matematycznym a zapisem w Excelu:
B2 C2 D2 E2 F2 G2 (B2:G2)
x1 , x2 , x3 , x 4 , x5 , x6 - liczba półfabrykatów - desek pociętych na kaĀdy z 6 sposobów w sztukach
H2 x1 + x 2 + x 3 + x 4 + x5 + x 6 → min łączna liczba pociętych półfabrykatów - desek
przy ograniczeniach
rzeczywiste liczby wyprodukowanych detali
wymagane liczby detali
(dokładniej - zaplanowanych do wykonania)
H4 5 x1 + 7 x2 + 0 x3 + 8 x 4 + 6 x5 + 0 x6
≥
H5 1x1 + 3 x 2 + 7 x3 + 3 x 4 + 4 x5 + 4 x 6
≥
840 I4
500 I5
H6 11x1 + 3x 2 + 1x3 + 2 x 4 + 2 x5 + 9 x6
≥
475 I6
(H4:H6)
(I4:I6)
B2
C2
D2
E2
F2
G2
(B2:G2)
x1 ≥ 0 , x 2 ≥ 0 , x3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0 , x 6 ≥ 0 liczba pociętych półfabrykatów - desek nie moĀe być ujemna
NaleĀy teraz otworzyć okno główne Solvera (Excel 2003 i starsze menu Narzędzia-Solver, Excel 2007 i nowsze
wstąĀka Dane-Solver; nazewnictwo uĀywane poniĀej jest dostosowane do interfejsu Solvera do wersji Excela
do 2007 włącznie), a następnie zadeklarować ustawienia
Komórka celu: H2
Równa: Min (poniewaĀ funkcja celu jest minimalizowana; UWAGA: trzeba ustawić ręcznie – opcja
domyślna to Maks!)
Komórki zmieniane: B2:G2
Warunki ograniczające:
B2:G2>=0
H4:H6>=I4:I6
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
6
Uwaga
B2:G2>=0 jest skróconym zapisem dla B2>=0, C2>=0, D2>=0, E2>=0, F2>=0, G2>=0 (czyli x1 ≥ 0 , x 2 ≥ 0 ,
x3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0 , x 6 ≥ 0 ).
H4:H6>=I4:I6 jest skróconym zapisem dla H4>=I4, H5>=I5, H6>=I6 (warunki związane z liczbą wyprodukowanych detali).
Główne okno Solvera (Solver - Parametry) przed dodaniem warunków ograniczających. W samym polu
Warunki ograniczające nic nie wpisujemy, poniewaĀ jest to NIEMOĀLIWE. Aby dodać warunki, klikamy
w Dodaj. Otwiera się nowe okno Dodaj warunek ograniczający.
Wprowadzamy pierwszą grupę warunków tzn. warunki nieujemności zmiennych (B2:G2>=0) i klikamy Dodaj.
Pojawia się znowu okno Dodaj warunek ograniczający. Wprowadzamy analogicznie warunki ograniczeń
funkcyjnych (H4:H6>=I4:I6). PoniewaĀ nie ma juĀ więcej warunków do dodania, klikamy OK. Następuje
powrót do okna Solver – Parametry.
Po dodaniu warunków ograniczających okno Solver – Parametry powinno wyglądać jak niĀej
Ustawienia Solvera dla rozwiązywanego zadania (pkt. 1 - bez warunku całkowitoliczbowości zmiennych!)
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
Rozwiązanie.
Jak widać, wszystkie niezerowe wartości zmiennych objaśniających są ułamkowe, a ich róĀnice w porównaniu
z „sąsiednimi” liczbami całkowitymi są zbyt duĀe, by „obwiniać” o nie błędy obliczeń Solvera.
Ad.2. Zaokrąglenie rozwiązanie zadania z warunkami na liczbę detali „≥” i bez warunków
całkowitoliczbowości zmiennych.
Próba znalezienia rozwiązania całkowitoliczbowego poprzez zaokrąglenie rozwiązania całkowitoliczbowego.
Do komórek B2, E2, F2 naleĀy wpisać odpowiednie zaokrąglenia wyników do liczb całkowitych tzn.: 21, 5
oraz 116. Wynik tej czynności jest pokazany na zrzucie ekranu poniĀej.
Zaokrąglenie rozwiązania z poprzedniego punktu. Widać, Āe takie podejście prowadzi do błędnego wyniku liczba wyprodukowanych detali typu 3 jest wtedy o 2 sztuki za mała.
Ad.3 Rozwiązanie z warunkami na liczbę detali „≥” i z warunkami całkowitoliczbowości
zmiennych
Ustawienia Solvera
Mamy następujące związki między zapisem matematycznym a zapisem w Excelu:
B2 C2 D2 E2 F2 G2 (B2:G2)
x1 , x2 , x3 , x 4 , x5 , x6 - liczba półfabrykatów - desek pociętych na kaĀdy z 6 sposobów w sztukach
H2 x1 + x 2 + x 3 + x 4 + x5 + x 6 → min łączna liczba pociętych półfabrykatów - desek
przy ograniczeniach
rzeczywiste liczby wyprodukowanych detali
wymagane liczby detali
(dokładniej - zaplanowane do wykonania)
H4 5 x1 + 7 x2 + 0 x3 + 8 x 4 + 6 x5 + 0 x6
≥
H5 1x1 + 3 x 2 + 7 x3 + 3 x 4 + 4 x5 + 4 x 6
≥
840 I4
500 I5
H6 11x1 + 3x 2 + 1x3 + 2 x 4 + 2 x5 + 9 x6
≥
475 I6
(H4:H6)
(I4:I6)
B2
C2
D2
E2
F2
G2
(B2:G2)
x1 ≥ 0 , x 2 ≥ 0 , x3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0 , x 6 ≥ 0 liczba pociętych półfabrykatów - desek nie moĀe być ujemna
B2 C2 D2 E2 F2 G2 (B2:G2)
x1 , x2 , x3 , x 4 , x5 , x6 całkowite (liczba pociętych półfabrykatów - desek musi być całkowita)
7
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
8
NaleĀy teraz otworzyć okno główne Solvera (Excel 2003 i starsze menu Narzędzia-Solver, Excel 2007 i nowsze
wstąĀka Dane-Solver; nazewnictwo uĀywane poniĀej jest dostosowane do interfejsu Solvera do wersji Excela
do 2007 włącznie), a następnie zadeklarować ustawienia”
Komórka celu: H2
Równa: Min (poniewaĀ funkcja celu jest minimalizowana; UWAGA: trzeba ustawić ręcznie – opcja
domyślna to Maks!)
Komórki zmieniane: B2:G2
Warunki ograniczające:
B2:G2>=0
H4:H6>=I4:I6
B2:G2 int
Uwaga
B2:G2 int (po zatwierdzeniu Solver wyświetla jako B2:G2=całkowita) jest skróconym zapisem dla B2 int,
C2 int, D2 int, E2 int, F2 int, G2 int (czyli x1 całkowite, x2 całkowite, x3 całkowite, x 4 całkowite,
x5 całkowite, x6 całkowite).
Dodanie warunku całkowitoliczbowości zmiennych w Excelu 2000 i starsze oraz 2007 i nowsze
Do pola po lewej stronie trzeba wpisać zakres B2:G2 (czyli zakres komórek zmienianych) a następnie wybrać
opcję int (od ang. integer – całkowity, całkowitoliczbowy).
Po kliknięciu int w prawym polu pojawia się napis całkowita i juĀ moĀna warunek zatwierdzić przez OK.
Po dodaniu warunków ograniczających okno Solver – Parametry powinno wyglądać jak niĀej
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
9
Teraz trzeba tylko kliknąć w RozwiąĀ i zaczekać.
Pozostaje juĀ tylko kliknąć w OK, aby zaakceptować wynik.
Rozwiązanie.
Łączna liczba pociętych półfabrykatów - desek to 143 sztuki. NaleĀy je pociąć na następujące sposoby:
x1* = 22 , x 2* = 0 , x3* = 0 , x 4* = 5 , x5* = 116 , x6* = 0 .
Według wyniku obliczeń, powstanie 16 szt. detali nadmiarowych: 6 szt. typu 1, 1 szt. typu 2 oraz 9 szt. typu 3.
Oczywiście w razie potrzeby moĀna z wyprodukowania detali nadmiarowych zrezygnować.
W rozpatrywanym przypadku moĀe to polegać np. na modyfikacji sposobu rozkroju 1 na 2 sposoby (oznaczone
w tabeli jako S1a oraz S1b).
Sposoby rozkroju
Liczba pociętych
półfabrykatów - desek
Wynik obliczony
przez Solvera
S1
Rozwiązanie zmodyfikowane
S1
22
20
Liczba wyciętych detali
S1a
S1b
1
1
D1
5
5
0
D2
D3
1
11
1
11
0
2
Uwagi
Rezygnacja z 5 detali typu 1 (sposób S1a)
Rezygnacja z 1 detalu typu 1 (sposób S1b)
1 Rezygnacja z 1 detalu typu 2 (sposób S1a)
11 Rezygnacja z 9 detali typu 3 (sposób S1a)
4
Modyfikacje sposobów rozkroju w celu uniknięcia wycinania nadmiarowych detali nie są na ogół jednoznaczne. Wskazane jest jednak ich wykonywanie w taki sposób, aby jak najwięcej niewykonanych detali było
uwzględnionych w rozkroju pojedynczego półfabrykatu. Jest to uzasadnione faktem, iĀ znaczna liczba
niewyciętych detali oznacza zarazem większą ilość zbędnego materiału pozostawioną w jednym „kawałku”,
który to materiał z racji swoich rozmiarów moĀe być traktowany juĀ nie jako odpad ale jako nieco mniejszy
półfabrykat przydatny do dalszego wykorzystania.
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
10
Ad.4. Rozwiązanie z warunkami na liczbę detali „=” .
JeĀeli powstawanie nadmiarowych detali jest z jakiegoś powodu nieakceptowalne, to trzeba wtedy wprowadzić
warunki równościowe na liczbę detali tzn. postawić wymóg, Āeby liczba wyprodukowanych detali była
dokładnie równa wymaganej liczbie detali.
Model matematyczny – warunki na liczbę detali typu „=”
x1 , x2 , x3 , x 4 , x5 , x6 - liczba półfabrykatów - desek pociętych na kaĀdy z 6 sposobów w sztukach
x1 + x 2 + x 3 + x 4 + x5 + x 6 → min łączna liczba pociętych półfabrykatów - desek
przy ograniczeniach
rzeczywiste liczby wyprodukowanych detali
wymagane liczby detali
(dokładniej - zaplanowane do wykonania)
5 x1 + 7 x 2 + 0 x3 + 8 x 4 + 6 x5 + 0 x6
=
840
1x1 + 3 x 2 + 7 x3 + 3 x 4 + 4 x5 + 4 x 6
=
500
11x1 + 3x 2 + 1x3 + 2 x 4 + 2 x5 + 9 x 6
475
=
x1 ≥ 0 , x 2 ≥ 0 , x3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0 , x 6 ≥ 0 liczba pociętych półfabrykatów - desek nie moĀe być ujemna
x1 , x2 , x3 , x 4 , x5 , x6 całkowite (liczba pociętych półfabrykatów - desek musi być całkowita).
Model matematyczny wraz z komórkami Excela:
B2 C2 D2 E2 F2 G2 (B2:G2)
x1 , x2 , x3 , x 4 , x5 , x6 - liczba półfabrykatów - desek pociętych na kaĀdy z 6 sposobów w sztukach
H2 x1 + x 2 + x 3 + x 4 + x5 + x 6 → min łączna liczba pociętych półfabrykatów - desek
przy ograniczeniach
rzeczywiste liczby wyprodukowanych detali
wymagane liczby detali
(ze względu na warunki równościowe, liczba
detali wykonanych będzie równa liczbie
detali zaplanowanych)
H4 5 x1 + 7 x2 + 0 x3 + 8 x4 + 6 x5 + 0 x6
H5 1x1 + 3 x 2 + 7 x3 + 3 x 4 + 4 x5 + 4 x 6
=
840 I4
500 I5
H6 11x1 + 3x 2 + 1x3 + 2 x 4 + 2 x5 + 9 x6
=
475 I6
(H4:H6)
=
(I4:I6)
B2
C2
D2
E2
F2
G2
(B2:G2)
x1 ≥ 0 , x 2 ≥ 0 , x3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0 , x 6 ≥ 0 liczba półfabrykatów - pociętych desek nie moĀe być ujemna
B2 C2 D2 E2 F2 G2 (B2:G2)
x1 , x2 , x3 , x 4 , x5 , x6 - całkowite (liczba pociętych półfabrykatów - desek musi być całkowita)
Ustawienia są niemal identyczne jak w poprzednim wariancie zadania. Jedyną róĀnicą jest warunek na liczbę
detali, który naleĀy wprowadzić jako H4:H6=I4:I6. MoĀna dokonać edycji istniejącego warunku H4:H6>=I4:I6
(po kliknięciu przycisku Zmień)
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
11
Po kliknięciu OK rozpoczną się obliczenia, które będą trwały bardzo długo W przypadku słabszych komputerów mogą one przekroczyć domyślny limit czasu obliczeń 100 sekund
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
12
JeĀeli obliczenia trwają dłuĀej niĀ 100 sekund, pojawia się następujący komunikat.
JeĀeli pojawi się komunikat taki jak wyĀej (lub analogiczny dotyczący osiągnięcia limitu liczby iteracji),
naleĀy kliknąć „Kontynuuj” i cierpliwie dalej czekać na wynik.
Łączna liczba pociętych półfabrykatów - desek to 143 sztuki. NaleĀy je pociąć w następujących liczbach na
sposoby:
x1* = 9 , x 2* = 9 , x3* = 6 , x 4* = 54 , x5* = 50 , x6* = 15 .
Liczba 9,000001 (a de facto 9,00000068421051 lub podobna) powinna być traktowana jako całkowita – Solver
„dopuszcza” odchylenia mniejsze od 0,000001 (wartość domyślna) od spełnienia warunków ograniczających
(w tym przypadku warunków całkowitoliczbowości). Dopuszczalne odchylenie od spełnienia warunków
ograniczających jest ustawione w opcji Solvera Dokładność w Excelu 2007 i wcześniejszych, Wszystkie metody
– Dokładność ograniczenia w Excelu 2010 i nowszych.
PowyĀsze rozwiązanie jest obliczone w Excelu 2007.
Niektóre z rozwiązań zadania znalezione podczas rozwiązywania w róĀnych wersjach Excela i z róĀnymi
opcjami Solvera
x1*
x 2*
x3*
x 4*
x5*
x6*
9
19
12
0
13
12
21
5
15
9
17
12
0
11
0
15
1
9
6
13
8
0
9
10
15
4
2
54
37
48
72
49
66
39
68
21
50
55
52
44
51
42
53
44
89
15
2
11
27
10
13
0
21
7
Naturalnie kaĀde z tych rozwiązań otrzymanych z warunkami na liczbę detali „=” jest równieĀ rozwiązaniem
poprawnym dla warunków „≥” (poniewaĀ spełnienie równości oznacza równieĀ spełnienie nierówności „≥” jak
i” ≤”). Nie są one jednak obliczane przez Solvera przy warunkach „≥”, poniewaĀ rozwiązanie znalezione
w punkcie 3 jest równieĀ poprawne, a jest znajdowane znacznie szybciej.
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
13
Ad.5. Rozwiązanie z warunkami na liczbę detali „=” przy wykorzystaniu metody simpleks
W celu przyspieszenia obliczeń moĀna uĀyć dedykowanej do programowania liniowego metody simpleks
zamiast domyślnego „ogólnego” algorytmu GRG. Metoda simpleks jest włączana opcją Przyjmij model liniowy
w oknie Solver-Opcje (Excel do wersji 2007 włącznie) albo LP simpleks na liście Wybierz metodę
rozwiązywania w oknie głównym Solvera Parametry dodatku Solver (Excel 2010 i nowsze).
„Wymuszenie” uĀycia metody simpleks
(Excel do wersji 2007 włącznie).
Okno to otwiera się po kliknięciu przycisku
Opcje w oknie głównym Solvera SolverParametry.
„Wymuszenie” uĀycia metody simpleks (Excel 2010 i nowsze)
Rozwiązanie (inne niĀ w punkcie 5).
Czas obliczeń okazał się być znacznie krótszy niĀ w punkcie 4. Łączna liczba pociętych półfabrykatów - desek
to 143 sztuki. NaleĀy je pociąć w następujących liczbach na sposoby:
x1* = 12 , x 2* = 0 , x3* = 10 , x 4* = 66 , x5* = 42 , x6* = 13 .
Ad.6. Rozwiązanie z warunkami na liczbę detali „=” - zmienione wymagane liczby detali typu 1
oraz 3.
W tym punkcie liczba wymaganych detali typu 1 została zmieniona z 840 na 290 a typu 3 z 475 na 140. NaleĀy
w tym celu zmienić zawartość komórki I4 na 290 a I6 na 140.
Model matematyczny wraz z komórkami Excela (brak zmian w ustawieniach Excela):
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
14
B2 C2 D2 E2 F2 G2 (B2:G2)
x1 , x2 , x3 , x 4 , x5 , x6 - liczba półfabrykatów - desek pociętych na kaĀdy z 6 sposobów w sztukach
H2 x1 + x 2 + x 3 + x 4 + x5 + x 6 → min łączna liczba pociętych półfabrykatów - desek
przy ograniczeniach
rzeczywiste liczby wyprodukowanych detali
wymagane liczby detali
H4 5 x1 + 7 x 2 + 0 x3 + 8 x 4 + 6 x5 + 0 x6
=
H5 1x1 + 3 x 2 + 7 x3 + 3 x 4 + 4 x5 + 4 x 6
=
290 I4 (zmiana w I4)
500 I5
H6 11x1 + 3x 2 + 1x3 + 2 x 4 + 2 x5 + 9 x6
=
140 I6 (zmiana w I6)
(H4:H6)
(I4:I6)
B2
C2
D2
E2
F2
G2
(B2:G2)
x1 ≥ 0 , x 2 ≥ 0 , x3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0 , x 6 ≥ 0 liczba pociętych półfabrykatów - desek nie moĀe być ujemna
B2 C2 D2 E2 F2 G2 (B2:G2)
x1 , x2 , x3 , x 4 , x5 , x6 - całkowite (liczba pociętych półfabrykatów - desek musi być całkowita)
Po przeliczeniu Solver kończy pracę następującym komunikatem informującym o sprzeczności warunków
ograniczających.
(Excel do wersji 2007 włącznie)
albo
(Excel 2010 i nowsze)
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
15
Ekran w chwili wstrzymania obliczeń wygląda następująco
Wynik po wstrzymanych obliczeniach – to nie jest rozwiązanie optymalne ani nawet dopuszczalne!
Pozornie otrzymany wynik moĀe wydawać się paradoksalny, gdyĀ wydaje się oznaczać, iĀ niemoĀliwe jest
znalezienie planu rozkroju, w którym wyprodukuje się 290 detali typu 1 oraz 140 detali typu 3, podczas gdy
moĀliwe jest wyprodukowanie znacznie większej liczby detali (840 detali typu 1 oraz 475 detali typu 3). Jest to
jednak pozorny paradoks. Brak rozwiązania z powodu sprzeczności warunków ograniczających w istocie
oznacza jedynie, Āe niemoĀliwe jest znalezienie planu rozkroju, w którym wyprodukuje się dokładnie (tzn. bez
detali nadmiarowych) 290 detali typu 1, 500 detali typu 2 oraz 140 detali typu 3 i do tego z wykorzystaniem
wyłącznie 6 podanych sposobów rozkroju. JeĀeli dopuścimy albo zaplanowanie produkcji detali nadmiarowych, z których naprawdę zrezygnujemy (warunki ≥) albo (z warunkami =) uĀycie wszystkich sposobów
rozkroju, nie tylko takich z minimalną ilością odpadów (np. 5-0-11, 5-1-10, 4-0-10 itp.) wówczas oczywiście
rozkrój, w którym wymagane jest 290 detali typu 1, 500 detali typu 2 oraz 140 detali typu 3 bez problemu da
się zaplanować.
Wniosek (z punktów 4, 5, 6)
UĀycie warunków równościowych na liczbę detali (liczba wykonanych detali równa się wymaganej liczbie
detali), choć pozornie wydaje się być poprawnym podejściem w modelowaniu problemów rozkroju
półfabrykatów na detale, w istocie jest potencjalnie kłopotliwe, gdyĀ moĀe skutkować długim czasem obliczeń
lub nawet sprzecznością warunków ograniczających. Lepszym podejściem jest minimalizacja liczby
półfabrykatów przy ograniczeniach typu ≥, poniewaĀ zadanie optymalnego rozkroju w tej wersji ma zawsze
rozwiązanie a z wycięcia ewentualnych detali nadmiarowych z reguły moĀna zrezygnować.
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
16
DODATEK
Dodanie warunku całkowitoliczbowości zmiennych w Excelu 2002/XP oraz 2003
W przypadku uĀywania Excela 2002/XP lub 2003 przed dodaniem tych warunków trzeba KONIECZNIE
przeczytać BARDZO UWAĀNIE informację na temat sposobu obejścia błędu Solvera dotyczącego
wprowadzania i edycji ograniczeń całkowitoliczbowych – dokument Blad.Solvera.IntBin.pdf.
Podstawowe informacje na ten temat są równieĀ zawarte w niniejszym dokumencie.
Do pola po lewej stronie trzeba wpisać zakres B2:G2 (czyli zakres komórek zmienianych) a następnie wybrać
opcję int (od ang. integer – całkowity, całkowitoliczbowy).
Po kliknięciu int okienko wygląda jak wyĀej.
Warunki całkowitoliczbowości zmiennych (B2:G2 int) dodaje się następująco, w zaleĀności od wersji Excela.
W Excelu 2002 i 2003 próba zatwierdzenia warunku całkowitoliczbowości skutkuje błędem jak poniĀej:
Wtedy trzeba kliknąć w OK. Następuje powrót do okienka Dodaj warunek ograniczający.
Trzeba teraz słowo „całkowita” w prawym polu zastąpić przez dowolną liczbę np. 0.
P. Kowalik, Laboratorium badań operacyjnych: zadanie optymalnego rozkroju
Teraz moĀna juĀ warunek zatwierdzić.
Po dodaniu warunków ograniczających okno Solver – Parametry powinno wyglądać jak niĀej
Teraz trzeba tylko kliknąć w RozwiąĀ i zaczekać.
Pozostaje juĀ tylko kliknąć w OK, aby zaakceptować wynik.
17

Podobne dokumenty