Analiza danych przy uz yciu Solvera Spis treści Aktywacja polecenia Solver... 1 Do jakich zadań wykorzystujemy Solvera?... 1 Zadanie 1 prosty przykład Solvera... 2 Zadanie 2 - Optymalizacja programu produkcji betoniarni... 8 Zadanie 3 Trzy rodzaje pustaków... 11 Zadanie 4 Minimalizacja kosztów wysyłki... 11 Aktywacja polecenia Solver Do narzędzia Solver można uzyskać dostęp za pomocą polecenia Dane/Analiza/Solver. Jeżeli nie można go znaleźć, trzeba zainstalować dodatek Solver. Jest to prosta operacja składająca się z następujących kroków: 1. Wybrać polecenie Przycisk pakietu Office/Opcje programu Excel. 2. W oknie dialogowym Opcje programu Excel uaktywnić kartę Dodatki. 3. W dolnej części okna z listy rozwijanej Zarządzaj wybrać pozycję Dodatki programu Excel i kliknąć przycisk Przejdź. Excel wyświetli okno dialogowe Dodatki. 4. W oknie tym obok opcji Dodatek Solver umieścić symbol zaznaczenia i kliknąć przycisk OK. Po wykonaniu tych kroków dodatek Solver będzie ładowany każdorazowo podczas uruchamiania Excela. Do jakich zadań wykorzystujemy Solvera? Zagadnienia programowania liniowego dotyczą modelowania i optymalizacji wielu problemów decyzyjnych, na przykład: optymalna wielkość produkcji przy podanych ograniczeniach zasobów, zagadnienia transportowe, gdzie minimalizujemy koszt przewozu przesyłek, problem mieszkanki (diety), gdzie określamy konieczną ilość posiadanych składników tak, aby przy najniższym koszcie dostarczyć wymaganych ilości czynników, problem rozdziału robót, w którym określamy, jak rozdzielić zadania miedzy pracowników o różnej wydajności tak, aby łączny czas ich pracy był najmniejszy. Na potrzeby zajęć omówione zostaną tylko niektóre aspekty tej metody. Do ich rozwiązywania posłuży wbudowane w arkusz kalkulacyjny Excel specjalne narzędzie Solver. Strona 1
Programowanie liniowe opiera się w głównej mierze na tworzeniu modeli rzeczywistości. Głównym elementem modelu jest funkcja celu, dla której wartość ma podlegać pewnemu kryterium opłacalności (minimalizacji lub maksymalizacji). Model zawiera zmienne decyzyjne: f(x 1, x 2,, x n )=c 1 x 1 + c 2 x 2 + + c n x n max (min) współczynniki funkcji celu: x 1, x 2,, x n c 1, c 2,, c n oraz pewne warunki ograniczające dopuszczalne wartości zmiennych decyzyjnych i współczynników funkcji celu. Rozwiązanie większości problemów polega na znalezieniu takich wartości zmiennych x 1, x 2,, x n, aby funkcja celu wyrażona określonym wzorem: f(x 1, x 2,, x n )=c 1 x 1 + c 2 x 2 + + c n x n max (min) osiągnęła maksimum lub minimum. Działanie narzędzia Solver zostanie zaprezentowane na poniższych przykładach. Zadanie 1 prosty przykład Solvera Na rysunku 1 widzimy arkusz, który służy do obliczania zysku osiągniętego ze sprzedaży trzech produktów. Kolumna B zawiera liczbę sztuk każdego produktu, kolumna C zysk ze sprzedaży jednej sztuki, a w kolumnie D widzimy zysk sumaryczny dla wszystkich sprzedanych sztuk danego produktu. W komórce D6 zszumowany jest zysk ze sprzedaży wszystkich produktów (zaś w B6 sumę sztuk). W komórkach D3 D5 wprowadzona jest formuła będąca iloczynem sztuki danego produktu i zysku na sztukę. Rysunek 1 - Za pomocą Solvera określa się, ile sztuk danego z produktów należy sprzedać, aby osiągnąć najwyższy zysk Już na pierwszy rzut oka widać, że największy zysk przynosi produkt C. Wydaje się, że najlepszym rozwiązaniem będzie produkowanie wyłącznie tego produktu i że nie ma potrzeby, by korzystać z Solvera. Jednak w większości przypadków firma będzie musiała wziąć pod uwagę różne dodatkowe ograniczenia, takie jak: łączna wydajność produkcyjna firmy to 300 sztuk produktów dziennie; firma musi zrealizować zamówienie na 50 sztuk produktu A; Strona 2
firma spodziewa się w najbliższym czasie zamówienia na 40 sztuk produktu B; zapotrzebowanie na produkt C na rynku jest niewielkie, dlatego firma planuje wyprodukowanie najwyżej 40 sztuk tego produktu. Powyższe cztery ograniczenia znacznie utrudniają udzielenie odpowiedzi na pytanie, jak osiągnąć największy zysk. Jest to zadanie w sam raz dla Solvera. Zanim przejdzie się do dalszych szczegółów, należy zapoznać się z procedurą korzystania z Solvera. Oto kroki, które należy wykonywać: 1. Skonstruować arkusz, wpisując do niego wartości i formuły. 2. Wybrać polecenie Dane/Analiza/Solver, aby otworzyć okno dialogowe Solver Parametry. 3. Określić komórkę wynikową (inaczej komórkę celu). 4. Określić zakres zawierający komórki zmieniane. 5. Zdefiniować warunki ograniczające. 6. Jeżeli jest to konieczne, ustawić odpowiednie opcje Solvera. 7. Wydać Solverowi polecenie rozwiązania problemu. Aby rozpocząć pracę Solvera i zrealizować omawiany przykład, należy wybrać polecenie Dane/Analiza/Solver. Pojawi się okno dialogowe, pokazane na rysunku 2. Strona 3
Rysunek 2 - Okno dialogowe Solver - parametry W tym przykładzie komórką celu (opcja Ustaw cel) jest komórka D6 oblicza ona całkowity zysk ze sprzedaży trzech produktów. 1. W oknie dialogowym Solver Parametry znajduje się pole o nazwie Ustaw cel. Należy wprowadzić do niego komórkę D6 (lub przesunąć wskaźnik myszy na tę komórkę). 2. Ponieważ chce się uzyskać maksymalną wartość tej komórki, należy zaznaczyć opcję Maks. 3. Należy zdefiniować komórki zmieniane (znajdują się one na obszarze B3:B5). Następny etap polega na zdefiniowaniu warunków ograniczających zadanie. Dodajemy je do listy pojedynczo. 4. Aby dodać warunek podlegający ograniczeniom, należy kliknąć przycisk Dodaj. Pokaże się okno dialogowe Dodaj warunek ograniczający, przedstawione na rysunku 3. Składa się ono z trzech części: odwołanie do komórki, operatora i ograniczenia. Strona 4
Rysunek 3 - Okno dialogowe "Dodawanie ograniczenia" 5. Pierwszy warunek polega na tym, że łączna wydajność produkcyjna firmy ma wynosić 300 egzemplarzy produktów dziennie. W polu Odwołanie do komórki należy wpisać $B$6 (albo kliknąć na komórce B6), a następnie wybrać z listy operator = i jako ograniczenie wpisać wartość 300. 6. Następnie klikamy Dodaj. 7. Czynności te należy powtórzyć w celu zdefiniowania pozostałych warunków. Należy skorzystać z tabeli, która prezentuje wszystkie warunki ograniczające tego zadania. 8. Po zdefiniowaniu ostatniego warunku należy kliknąć przycisk OK, aby powrócić do okna dialogowego Solver Parametry, które teraz wyświetla podane przez użytkownika ograniczenia. W tym momencie Solver ma już wszystkie dane potrzebne do rozwiązania problemu (rysunek 4). Strona 5
Rysunek 4 - Okno Solver - parametry po zdefiniowaniu warunków 9. W kolejnym kroku należy kliknąć w przycisk Rozwiąż, aby Solver rozpoczął pracę nad zadaniem. Wynik jego obliczeń pokaże okno dialogowe przedstawione na rysunku 5. Rysunek 5 - Solver wyświetla rozwiązanie zadania w oknie dialogowym Wyniki Strona 6
Na tym etapie pracy z Solverem można: zamienić pierwotną wartość komórki zmienianej na wartość rozwiązania lub przywrócić pierwotną wartość komórki zmienianej, utworzyć jeden z trzech możliwych raportów: wyników, wrażliwości i granic, zapisać rozwiązanie w formie scenariusza, dzięki czemu będzie można z niego korzystać za pomocą Menedżera scenariuszy. Jeżeli postanowi się utworzyć raporty (wyników, wrażliwości lub granic zaznaczając każdą z opcji), MS Excel umieści każdy z nich w osobnym arkuszu i nada im odpowiednie nazwy. Na rysunku 6 widać raport wyników. Warto zwrócić uwagę na część zawierającą warunki ograniczające: dwa z nich mają status wiążący. Oznacza to, że warunki te zostały spełnione bez żadnego zapasu zmian wartości. Rysunek 6 - Jeden z trzech raportów generowanych przez Solvera W arkuszu Arkusz1 można teraz zobaczyć efekt działania Solvera, czyli dobrane liczby sztuk produktów tak, by przy spełnieniu podanych warunków zysk był jak największy (rysunek 7). Efekt był możliwy dlatego, że komórki zmieniane (B3:B5) mają poprzez formuły wpływ na komórkę celu (D6). Strona 7
Rysunek 7 - Wielkość produkcji po zastosowaniu Solvera Na tym prostym przykładzie zaprezentowano działanie Solvera. Zadanie 2 - Optymalizacja programu produkcji betoniarni Betoniarnia produkuje dwa rodzaje pustaków: zwykły i z gryzem marmurowym. Każdego dnia do dyspozycji ma 800 pustych form metalowych. Sprzedaż każdego zwykłego pustaka przynosi zysk 2,20 zł, pustaka z gryzem marmurowym 2,25 zł. Aby wyprodukować jeden zwykły pustak, potrzeba 0,5 kg cementu, z gryzem marmurowym 0,4 kg cementu. Cementownia jest w stanie dostarczyć do betoniarni 50 ton cementu dziennie. Dodatkowo do wyprodukowania pustaka z gryzem marmurowym potrzeba 0,2 kg tego gryzu. Kamieniołom jest w stanie dziennie dostarczyć go do betoniarni w ilości 50 kg. Należy tak ustawić produkcję, aby osiągnąć maksymalny zysk dzienny. Na podstawie treści problemu wyodrębniono poszczególne elementy modelu: zmienne decyzyjne: o x 1 liczba zwykłych pustaków, o x 2 liczba pustaków z gryzem marmurowym. Współczynnik funkcji celu: o Zysk na wyprodukowanym pustaku o 2,20 dla x 1, o 2,25 dla x 2. Funkcja celu przyjmuje więc postać: Dodatkowo wyodrębniono warunki ograniczające: oraz: f(x 1, x 2 ) = 2,20x 1 + 2,25x 2 max x 1 + x 2 <= 800 ze względu na liczbę form metalowych, 0,5x 1 + 0,4x 2 <= 50000 ze względu na ilość cementu, 0,2x 2 <= 50 ze względu na ilość gryzu marmurowego x 1 >= 0 x 2 >= 0 Przeniesienie wyżej przedstawionych elementów do arkusza Excela pozwoli sprawnie wykorzystać narzędzie Solver do rozwiązania problemu. Widok arkusza przedstawia rysunek 8. Strona 8
Rysunek 8 - Widok arkusza MS Excel z przygotowanymi danymi do użycia narzędzia Solver Dane w kolumnach Wartość, Zużycie cementu oraz Zużycie gryzu są wyliczane. W dolnym wierszu arkusza są one zsumowane (D4:G4). W kolumnę Ilość zawierającą zmienne decyzyjne x 1, x 2, wpisano tymczasowo wartości 1. Wartość obliczono mnożąc zysk jednostkowy przez ilość. Zużycie cementu obliczono mnożąc ilość przez 0,5 (pustaki zwykłe) i 0,4 (pustaki z gryzem). Zużycie gryzu obliczono mnożąc ilość przez 0,2 (pustaki z gryzem). Funkcja celu, zapisana jako suma wartości zysku dla obu asortymentów, znajduje się w komórce D4. Poniżej głównej tabeli umieszczono tabelkę z ograniczeniami. Kolorami zaznaczono odniesienia ograniczeń do wyliczonych wartości w tabeli głównej. I tak np. Ilość form metalowych (komórka B6) ogranicza sumę liczby możliwych do wyprodukowania pustaków (C4). Tak przygotowane dane poddano obróbce za pomocą narzędzia Solver. Zaznaczono komórkę D4 zawierającą funkcję celu, którą chcemy zmaksymalizować, i uruchomiono narzędzie Solver. Parametry niezbędne do rozwiązania niniejszego przykładu muszą zostać wprowadzone tak, jak pokazano na rysunku 9. Strona 9
Rysunek 9 - Okno parametrów Solvera dla przykładu betoniarni z 2 rodzajami pustaków W oknie Solver uruchom parametry obliczenia przyciskiem Rozwiąż. W kolejnym oknie, zaznacz Raporty i kliknij przycisk OK. Wyniki przedstawiono na rysunku 10. Rysunek 10 - Wynik arkusza z 2 pustakami po przeliczeniu danych Solverem Strona 10
Zadanie 3 Trzy rodzaje pustaków Załóżmy, że betoniarnia zwiększyła asortyment produkcji pustaków o typ pustaki wzmocnione, których produkcja przynosi zysk jednostkowy w wysokości 2,30 zł przy jednostkowym zużyciu cementu w ilości 1,2 kg oraz gryzu marmurowego w ilości 0,2 kg. Załóżmy także, że w cementowni nastąpiła awaria, a betoniarnia dysponuje zapasem tylko 400 kg cementu. Pozostałe dane jak w przykładzie powyżej. Należy ustalić taki asortyment produkcji przy istniejących ograniczeniach, aby zysk był jak najwyższy. Rozwiązanie tego ćwiczenia nie jest już tak oczywiste jak w powyższym przykładzie. Zastosowanie narzędzia wspomagającego obliczenia jest w tym przypadku zdecydowanie zalecane. Zastosujmy arkusz 3 pustaki z danymi wyjściowymi, by obliczyć maksymalną wartość dla komórki D5 za pomocą narzędzia Solver. Rysunek 11 - Wynik działania Solvera dla zadania 3 rodzaje pustaków Wprowadź odpowiednie wartości wejściowe, a następnie uruchom Solvera. Zadanie 4 Minimalizacja kosztów wysyłki Zadanie polega na znalezieniu alternatywnych możliwości przesyłania towarów przy jednoczesnym zachowaniu minimalnego poziomu kosztów przesyłki. Firma ma hurtownie w Warszawie, Krakowie i Poznaniu. Sklepy detaliczne znajdują się w różnych miastach Polski. Z każdego z nich napływają zamówienia, które firma przesyła do jednej z hurtowni. Firma chce zrealizować wszystkie zamówienia, wykorzystując dostępny stan magazynów w hurtowniach i utrzymując koszty przesyłek na najniższym poziomie. Omawiany skoroszyt jest dość skomplikowany, dlatego najpierw poznamy poszczególne jego elementy: Tabela kosztów wysyłki ta tabela (zakres C2:F8) prezentuje wysokość kosztów przesyłki z każdej hurtowni do sklepów. Na przykład koszt przesyłki z Poznania do Koszalina wynosi 58 zł. Zamówienia poszczególnych sklepów te informacje pojawiają się w komórkach znajdujących się na obszarze C12:C17. Na przykład Koszalin potrzebuje 150 sztuk towaru, Katowice 225 sztuk itd. Komórka C18 zawiera sumę zamówień wszystkich sklepów. Strona 11
Sztuki do wysłania w obszarze D12:F17 znajdują się komórki, na których Solver dokonuje odpowiednich modyfikacji (dla wszystkich wartością początkową jest liczba 25). Kolumna G zawiera formuły podsumowujące liczbę egzemplarzy produktów, jakie należy wysłać do każdego ze sklepów. Stan magazynów w hurtowni wiersz 20. pokazuje stany magazynów każdej hurtowni, a wiersz 21. zawiera formuły, które odejmują od nich liczbę wysłanych towarów (wiersz 18.). Koszty wysyłki wiersz 24. zawiera formuły, które wyliczają koszty przesyłki. W komórce D24 znajduje się formuła (skopiowana do dwóch komórek znajdujących się po jej prawej stronie), która ma następującą postać: =SUMA.ILOCZYNÓW(D3:D8.D12:D17) Rysunek 12 - Arkusz wyznaczający najtańszy sposób wysyłania towarów z hurtowni do poszczególnych sklepów firmy Komórka G24 podaje wynik końcowy, czyli sumę kosztów przesłania towarów do wszystkich sklepów. Solver wstawia wartości w obszarze D12:F17 tak, aby koszty przesyłki były jak najniższe, dbając jednocześnie o zrealizowanie wszystkich zamówień na nowe towary. Inaczej mówiąc, minimalizuje wartość komórki C24 poprzez odpowiednie modyfikacje wartości komórek D12:F17, które są poddane następującym ograniczeniom: Liczba egzemplarzy produktów zamówionych przez każdy ze sklepów musi być równa liczbie wysłanych sztuk produktów (czyli wszystkie zamówienia muszą być zrealizowane). Warunek ten wyrażają następujące równania: C12=G12 C14=G14 C16=G16 C13=G13 C15=G15 C17=G17 Wartości komórek zmienianych nie mogą być liczbami ujemnymi, ponieważ nie można wysłać ujemnej liczby przesyłek. Warunek ten określają następujące nierówności: D12 >= 0 E12 >= 0 F12 >=0 D13 >= 0 E13 >= 0 F13 >=0 D14 >= 0 E14 >= 0 F14 >=0 Strona 12
D15 >= 0 E15 >= 0 F15 >=0 D16 >= 0 E16 >= 0 F16 >=0 D17 >= 0 E17 >= 0 F17 >=0 Liczba egzemplarzy produktów, które pozostały w magazynie, nie może być ujemna, ponieważ hurtownia nie może wysłać więcej towarów, niż ma w magazynach. Ten warunek przedstawiają następujące nierówności: D21 >= 0 E21>= 0 F21 >= 0 Zdefiniowanie problemu wcale nie jest proste, gdyż trzeba wpisać 27 warunków ograniczających. Jeżeli podano już wszystkie potrzebne informacje, należy kliknąć przycisk Rozwiąż, aby Solver rozpoczął pracę nad zadaniem. Rysunek 13 przedstawia rozwiązanie, które podaje Solver po dokonaniu obliczeń. Rysunek 13 - Rozwiązanie uzyskane przez Solvera Całkowity koszt przesyłek przy spełnieniu wszystkich warunków wyniósł 55 515 zł. Warto zauważyć, że do Gdańska towar wysyłany jest z dwóch hurtowni: z Łodzi i z Warszawy. Strona 13