Microsoft EXCEL - SOLVER 2. Elementy optymalizacji z wykorzystaniem dodatku Microsoft Excel Solver Cele Po ukończeniu tego laboratorium słuchacze potrafią korzystając z dodatku Solver: formułować funkcję celu, definiować warunki ograniczające, przeprowadzić minimalizację (maksymalizację) funkcji celu. Zadanie 2.1 Przedsiębiorstwo ŻARÓWKA produkuje cztery produkty; produkt 1, produkt 2, itd. Ze względu na zawarte kontrakty zakład musi wyprodukować dziennie przynajmniej 3400 sztuk produktu 1 i 300 sztuk produktu 2. Produkty 3 i 4 ze względu na bardziej skomplikowany proces produkcyjny wymagają pewnych ograniczeń. Liczba wyprodukowanych sztuk produktu 3 nie może przekroczyć 1500 a produktu 4 - sztuk 3400. Ile sztuk każdego z 4 produktów należy wyprodukować, aby osiągnąć maksymalny dzienny zysk? 1. Przygotuj arkusz według poniższego wzoru: liczby wyświetlone w komórkach B12, E8:E11 oraz F8:F12 są wynikiem wpisanych w tych komórkach wzorów: w komórce B12 wpisz wzór: =SUMA(B8:B11) Uwaga: liczby wpisane w komórkach B8:B11 mogą być dowolne, Solver zmieni je po znalezieniu rozwiązania w komórce E8 wpisz wzór: =C8-D8 (skopiuj wzór do komórek E9:E11) w komórce F8 wpisz wzór: =B8*E8 (skopiuj wzór do komórek F9:F11) w komórce F12 wpisz wzór: =SUMA(F8:F11) 2. Zachowaj przygotowany zeszyt pod nazwą produkt.xls 3. Zaznacz komórkę F12 (komórka ta wyświetla zysk zakładu, który zamierzamy zmaksymalizować) 1
4. Z menu Narzędzia wybierz opcję Solver (Excel wyświetla okno dialogowe Solver - Parametry) W polu Komórka celu znajduje się adres bezwzględny wybranej komórki F12, w której znajduje się optymalizowana funkcja. W polu Równa wyświetlone są opcje odnoszące się do tego pola: Max, Min, Wartość, które odpowiednio oznaczają, które zestawy zmiennych będą odpowiednio odnajdywane. Np. Max - oznacza, że wpisana w zaznaczonej komórce wartość ma być maksymalna. 5. W polu Komórki zmieniane wpisz: B8:B11 (Wpisany zakres wskazuje adresy komórek zawierających wartości zmiennych. Obok pola "Komórki zmieniane" znajduje się przycisk Odgadnij, którego wciśniecie spowoduje, że Excel sam wpisuje adresy wszystkich komórek, które mają wpływ na wzór wpisany w optymalizowanej komórce F12). 6. Naciśnij przycisk Dodaj. (Excel wyświetla okno dialogowe Dodaj warunek ograniczający umożliwiające wpisanie kolejnych warunków, występujących w naszym zadaniu. Po lewej stronie okna dialogowego należy podać adres komórki, do której odnosi się dane ograniczenie/warunek. W środkowej części okna dialogowego należy wybrać odpowiedni operator). 7. Wpisz warunek ograniczenia produkcji wyrobów do 10000 sztuk: W polu Adres komórki wpisz: B12; W środkowym polu wybierz operator: "<="; Po prawej stronie okna dialogowego wpisz: 10000; Naciśnij przycisk Dodaj. (Excel dodaje warunek do listy ograniczeń i wyświetla puste okno dialogowe Dodaj warunek ograniczający, w którym wpisujemy kolejny warunek). 8. Wpisz warunki dotyczące wszystkich czterech produktów wynikających z treści zadania i po zakończeniu naciśnij przycisk OK. Pojawia się okno dialogowe Solver - Parametry po wpisaniu czterech ograniczeń. 2
Jeśli warunek jest nieprawidłowy, to zaznacz go na liście i naciśnij przycisk Zmień. 9. Naciśnij przycisk Rozwiąż Ukaże się (rysunek poniżej) okno dialogowe Solver - Wyniki. Proces poszukiwania rozwiązania może trwać kilka chwil. W oknie wyświetlony jest komunikat informujący, że Solver znalazł rozwiązanie i wszystkie warunki są spełnione. Poniżej komunikatu znajdują się dwie opcje: Przechowaj rozwiązanie - opcja pozwala na zachowanie znalezionego rozwiązania; Przywróć warunki początkowe - opcja umożliwiająca przywrócenie poprzednich wartości zmiennych. 10. Zaznacz opcje Przechowaj rozwiązanie, a w polu Raporty wybierz wszystkie opcje (Wyników, Wrażliwości Granic) umożliwiające utworzenie w osobnych arkuszach raportów podających wyniki optymalizacji (trzymając wciśnięty klawisz Shift). Zadanie 2.2 Firma produkuje komputery i drukarki, które składa z części, testuje i pakuje. Czas potrzebny na złożenie komputera wynosi 2, a drukarki 3 jednostki czasu. Testowanie i pakowanie komputera i drukarki wynosi odpowiednio 8 i 2 jednostki czasu. Firma dysponuje 60 jednostkami czasu na składanie wyrobów i 100 jednostkami czasu na testowanie i zapakowanie. Każda drukarka przynosi zysk wielkości 20 jednostek, a komputer 36 jednostek. Ile drukarek i ile komputerów powinna wyprodukować firma, aby osiągnąć maksymalny zysk? Matematyczna postać modelu decyzyjnego: (max)zysk = 20*drukarki + 36*komputery = max(20*x1+36*x2) 3*drukarki + 2*komputery <= 60 (Ograniczenie czasu składania wyrobów) 2*drukarki + 8*komputery <= 100 (Ograniczenie czasu testowania i pakowania) drukarki >= 0 (Ograniczenie wielkości produkcji drukarek) Komputery >= 0 (Ograniczenie wielkości produkcji komputerów) Formuły: B27 =B22*B23+C22*C23 B28 =B24*$B$22+C24*$C$22-D24 3
B29 =B25*$B$22+C25*$C$22-D25 Microsoft Excel 9.0 Raport wyników Arkusz: [Przykłady własne.xls]arkusz1 Raport utworzony: 01-12-18 22:23:59 Komórka celu (Maks) Komórka Nazwa Wartość początkowa Wartość końcowa $B$27 z[x(1), x(2)] = x(1) 604 604 Komórki decyzyjne Komórka Nazwa Wartość początkowa Wartość końcowa $B$22 Wartość zmiennych x(1) 14 14 $C$22 Wartość zmiennych x(2) 9 9 Warunki ograniczające Komórka Nazwa Wartość komórki formuła Status Luz $B$28 x(1) 0 $B$28<=0 Wiążące 0 $B$29 x(1) 0 $B$29<=0 Wiążące 0 $B$22 Wartość zmiennych x(1) 14 $B$22>=0 Nie wiążące 14 $C$22 Wartość zmiennych x(2) 9 $C$22>=0 Nie wiążące 9 Zadanie 2.3 Mając dane funkcje celu oraz liniowe warunki ograniczające, rozwiąż przy pomocy programu Excel-Solver poniższe zadania programowania liniowego. a) Funkcja celu: (max) z=x 1 + x 2 -x 1 + 2x 2 <= 6 (równanie prostej x 2 = 0,5x 1 + 6) 2x 1 x 2 <= 6 (równanie prostej x 2 = 2x 1-6) x 1, x 2 >= 0 Wygląd arkusza i formuły: Funkcja celu: B10=B2*B3+C2*C3 B11=B5*$B$2+C5*$C$2-D5 B12=B6*$B$2+C6*$C$2-D6 B13=B7*$B$2+C7*$C$2-D7 B14=B8*$B$2+C8*$C$2-D8 4
Parametry Solvera: b) Funkcja celu: (min) z = -x 1-4x2, B10=B2*B3+C2*C3 x 1 +x 2 <=1 4x 1 +2x 2 <=3 x 1, x 2 >=0 B11=B5*$B$2+C5*$C$2-D5 B12=B6*$B$2+C6*$C$2-D6 B13=B7*$B$2+C7*$C$2-D7 B14=B8*$B$2+C8*$C$2-D8 c) Funkcja celu: (max) z = 6x 1-3x 2 + 5x 3 B20=B12*B13+C12*C13+D12*D13 2x 1 +3x 2 -x 3 <=20, 4x 1 +2x 2 +7x 3 <=28, 5x 1 -x 2 -x 3 <=16, x 1, x 2, x 3 >=0 B21=B15*$B$12+C15*$C$12+D15*$D$12-E15 B22=B16*$B$12+C16*$C$12+D16*$D$12-E16 5
B23=B17*$B$12+C17*$C$12+D17*$D$12-E17 d) Funkcja celu: (min) z=6x 1 +4,8x 2 +1,3x 3 +2,4x 4 4,1x 1 +1,6x 2 +5,1x 3-1,4x 4 <=16, 2,4x 1 +1,6x 2 +4,8x 3 +0,2x 4 >=5,2, 6,1x 1 +2,4x 2 +8,1x 3 +1,7x 4 =2,4, x 1, x 2, x 3, x 4 >=0 e) Funkcja celu: (max) z = 2x 1 - x 2 + 5x 3-2x 4 ) 4x 1 +5x 2-0.5x 3 <=16, 6x 1-4x 2 +1.5x 3 >=40, -3<= x 1 <=3 x 1 -dowolne, x 2, x 3 >=0 Zadanie 2. 4 Wydatki na REKLAMĘ w poszczególnych kwartałach mają wpływ na liczbę SPRZEDANYCH JEDNOSTEK, determinując pośrednio WPŁYWY, WYDATKI (KOSZTY+REKLA-MA+NARZUTY) oraz ZYSK. Należy zoptymalizować ZYSK poprzez zmianę kwartalnego budżetu na REKLAMĘ (B5:E5) do jego wartości maksymalnej, ograniczonej całkowitym budżetem (F5). Wartości w komórkach zmienianych, używanych do obliczenia ZYSKU w poszczególnych kwartałach są związane z formułą w komórce celu (F7) następująco: F7=SUMA(K1 ZYSK: K4 ZYSK). F5<=40000, B%, B5,C5,D5,E5>=0. WSKAZÓWKI: Wprowadź formuły, przyjmując, że: koszt produktu = 25 zł, cena produktu = 40 zł, sprzedane jednostki = 35*(Reklama + 3000)^0,5, wpływy = sprzedane jednostki * cena produktu, koszty = sprzedane jednostki * koszt produktu, narzuty = 15% z wpływów. Sprzedaż produktów podlega wahaniom sezonowym, pokazanym na wykresie. Ks Współczynnik sezonowości Ks 1,4 1,2 1 0,8 0,6 0,4 0,2 0 0 1 2 3 4 5 Kwartał 6
Formuły w kolumnie B: B2= B3= B4= B6= B7= Dane wejściowe Wyniki optymalizacji: 7
Zadanie 2.5 funkcja celu: (max) z=6x 1 +4x 2 +8x 3 ograniczenia: x 1 +x 2 +5x 3 <=1 3x 1 +x 2 +x 3 <=1 x 1,x 2,x 3 >=0 Rozwiązanie: x 1 *=0, x 2 *=1, x 3 *=x 4 *=x 5 *=0 z*=4 Zadanie 2.6 (Programowanie nieliniowe) Z elektrociepłowni energia przesyłana jest do dwóch zakładów produkcyjnych. Funkcja kosztu przesyłania energii dana jest wzorem: f(x 1,x 2 )=5x 1 2-8x 1 *x 2 +7x 2 2-12x 1-4x 2 +81 Należy rozdzielić dzienną produkcję energii 16MWh pomiędzy te dwa zakłady, by zminimalizować koszty przesyłu energii. Ograniczenie: g 1 (x 1,x 2 )=x 1 +x 2-16=0 Funkcja Lagrange a: (min) L(x 1,x 2, λ)=5x 1 2-8x 1 *x 2 +7x 2 2-12x 1-4x 2 +81+λ( x 1 +x 2-16) Obliczamy pochodne cząstkowe (to zadanie wykona Solver): L/ x 1 =10x 1-8x 2-12+λ=0 L/ x 2 =-8x 1-14x 2-4+λ=0 L/ λ=x 1 +x 2-16=0 Mamy trzy równania z trzema niewiadomymi. Rozwiązaniem jest punkt x 1 * =9, x 2 * =7, f(x 1 *,x 2 * )=189 Zadanie 2.7 W zadaniu powyżej zmieniamy ograniczenie: x 1 +x 2 <=16 g 1 (x 1,x 2,u)=x 1 +x 2 +u 2-16=0 Funkcja Lagrange a: (min) L(x 1,x 2, λ)=5x 1 2-8x 1 *x 2 +7x 2 2-12x 1-4x 2 +81+λ( x 1 +x 2 +u 2-16) Obliczamy pochodne cząstkowe: L/ x 1 =10x 1-8x 2-12+λ=0 L/ x 2 =-8x 1-14x 2-4+λ=0 L/ λ=x 1 +x 2 +u 2-16=0 L/ λu=2λu =0 Rozwiazanie u=0 (produkcja jak wyżej) lub u 2 =16 (bez dostarczania energii!!!). 8
Zadanie 2.8 - Zagadnienie transportowe Minimalizujemy koszty przewozu towarów z zakładów produkcyjnych w: Bydgoszczy, Opolu i Krakowie do magazynów w: Katowicach, Pile, Wrocławiu, Gdańsku i Warszawie, nie przekraczając jednocześnie wielkości podaży dostępnej z każdej fabryki i zaspokajając popyt każdego magazynu. Problem przedstawiony w tym modelu dotyczy wysyłania wyrobów z trzech fabryk do pięciu magazynów regionalnych. Wyroby mogą być wysyłane z dowolnej fabryki do dowolnego magazynu, ale oczywiście koszty wysyłania na większą odległość są wyższe niż na krótszą. Trzeba określić liczby wysyłanych wyrobów z każdej fabryki do każdego magazynu tak, aby zminimalizować koszty wysyłki przez spełnienie wymagań regionalnych bez przekraczania produkcji każdej z fabryk. Do obliczeń założono wartości jednostkowych kosztów transportu, proporcjonalnie do odległości między poszczególnymi fabrykami i magazynami. Określenie problemu Komórka docelowa B16. Celem jest zminimalizowanie całkowitych kosztów wysyłki. Komórki zmieniane C3:G5. Liczba wyrobów wysyłanych z fabryki do każdego magazynu. B3:B5<=B12:B14. Całkowita liczba wysłanych wyrobów musi być mniejsza lub równa produkcji fabryki. C7:G7>=C10:G10. Całkowita liczba wyrobów wysyłanych do magazynu musi być większa lub równa od jego wymagań. 9
C3:G5>=0. Liczba wyrobów do wysłania musi być większa lub równa 0. Dane początkowe: Problem można rozwiązać szybciej, zaznaczając pole wyboru Przyjmij model liniowy w oknie dialogowym Solvera - Opcje przed kliknięciem przycisku Rozwiąż. Problem tego typu ma optymalne rozwiązanie, które określa całkowite liczby wyrobów, jeśli wszystkie ograniczenia dostaw i wymagań są całkowite. Ustawienia w oknie Solver Opcje: Dane wprowadzone w oknie Solver Parametry: 10
Rozwiązanie problemu: Potwierdzenie wyniku analizy: 11