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