1. Przekształcenie zadania programowania liniowego w model

Transkrypt

1. Przekształcenie zadania programowania liniowego w model
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
1
1. Przekształcenie zadania programowania liniowego w model zapisany
w arkuszu Excela
Przykładowe zadanie programowania liniowego
Rozwiązać następujące zadanie programowania liniowego wykorzystując Excela oraz dodatek Solver.
x1 , x2 , x3 - zmienne decyzyjne
7 x1 + 9 x 2 + 4,6 x 3 → max funkcja celu
przy ograniczeniach
8 x1 + 7 x 2 + 4 x 3 ≤ 9900
2,5 x1 + 2 x 2 + 0,9 x 3 ≤ 2800
ograniczenia funkcyjne
1x1 + 10 x2 + 4,1x3 = 11700
4,3 x1 + 4 x2 + 9 x3 ≥ 12100
x1 ≥ 0,
x 2 ≥ 0,
x3 ≥ 0 - warunki nieujemności zmiennych
Podstawową zasadą, na jakiej jest oparte przenoszenie do Excela modeli programowania liniowego i nieliniowego jest konieczność podjęcia przez użytkownika decyzji, które komórki w arkuszu będą rolę zmiennych. Wg
tej zależności („komórka-zmienna”) tworzone są formuły oraz wpisy w polach dodatku Solver.
Przykładowy schemat rozmieszczenia danych w Excelu dla zadania programowania liniowego
Przyjmujemy, że zmiennym decyzyjnym odpowiadają w arkuszu następujące komórki:
A2 - x1 , B2 - x2 , C2 - x3 .
Komórki pełniące rolę zmiennych zostały wypełnione zerami. Nie jest to jednak konieczne – komórki te mogą
pozostać puste, ponieważ zostaną potraktowane przez Excela tak, jakby zawierały zera.
W arkuszu umieszczone są także parametry tzn. liczby będące współczynnikami funkcji (A4:C4) celu oraz warunków ograniczających (A6:C9, E6:E9). Rozmieszczenie to może być w zasadzie dowolne, ale jego odpowiedni dobór ma bardzo duże znaczenie dla wygody wprowadzania formuł.
Ponieważ współczynniki funkcji celu znajdują się w komórkach A4, B4 i C4, a zatem odpowiednikiem funkcji
celu
7 x1 + 9 x 2 + 4,6 x3
będzie formuła
=A4*A2+B4*B2+C4*C2
Zastosujemy jednak prostszą we wprowadzaniu (zwłaszcza, jeżeli użyty zostanie kreator funkcji0 równoważną
formułę
=SUMA.ILOCZYNÓW(A4:C4;A2:C2).
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
2
Jak widać, funkcja celu jest podobna do lewych stron warunków ograniczających (wszystkie są sumami iloczynów liczb i zmiennych). Dzięki temu formuła reprezentująca w arkuszu funkcję celu zostanie wykorzystana do
stworzenia, przy pomocy kopiowania, formuł reprezentujących lewe strony warunków ograniczających W tym
celu formuła ta musi być wpisana w postaci
=SUMA.ILOCZYNÓW(A4:C4;A$2:C$2)
Dzięki zastosowaniu adresacji względnej („zablokowania” przy pomocy znaków $ odwołań do zakresu A2:C2)
po skopiowaniu D4 do D6:D9 otrzymamy formuły oznaczające lewe strony warunków ograniczających.
W tabeli poniżej jest podane są zależności pomiędzy formułami matematycznymi a „Excelowymi”.
Informacja na temat formuł: wprowadzanej i kopiowanych
Formuły „dosłowne” tzn. takie, które
należałoby wpisać przy literalnym
„przełożeniu” zapisu matematycznego
na składnię Excela
7 x1 + 9 x 2 + 4,6 x3
=A4*A2+B4*B2+C4*C2
8 x1 + 7 x 2 + 4 x 3
=A6*A2+B6*B2+C6*C2
2,5 x1 + 2 x 2 + 0,9 x 3
=A7*A2+B7*B2+C7*C2
1x1 + 10 x 2 + 4,1x 3
=A8*A2+B8*B2+C8*C2
4,3 x1 + 4 x 2 + 9 x 3
=A9*A2+B9*B2+C9*C2
Komórka
Zapis matematyczny
D4
D6
D7
D8
D9
Formuły z SUMA.ILOCZYNÓW odpowiadające formułom „dosłownym”
Uwagi
=SUMA.ILOCZYNÓW(A4:C4;A$2:C$2) Wprowadzona przez użytkownika
=SUMA.ILOCZYNÓW(A6:C6;A$2:C$2)
Otrzymana przez
kopiowanie z D4
=SUMA.ILOCZYNÓW(A7:C7;A$2:C$2)
Otrzymana przez
kopiowanie z D4
=SUMA.ILOCZYNÓW(A8:C8;A$2:C$2)
Otrzymana przez
kopiowanie z D4
=SUMA.ILOCZYNÓW(A9:C9;A$2:C$2)
Otrzymana przez
kopiowanie z D4
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
3
Widok arkusza po skopiowaniu D4 na D6:D11. Zarówno komórka z funkcją celu (D4) jak i komórki z lewymi
stronami warunków ograniczających (D6, D7, D8, D9, czyli zakres D6:D9) wyświetlają wartości zerowe, ponieważ komórki pełniące rolę zmiennych („iksów”) zawierają wyłącznie zera.
Widok formuł w arkuszu otrzymanych po skopiowaniu.
Pełna lista zależności pomiędzy zapisem matematycznym a modelem Excelowym zapisana przy pomocy adresów komórek wygląda następująco:
A2
x1 ,
D4
B2
x2 ,
C2
(A2:C2)
x3 - zmienne decyzyjne
7 x1 + 9 x 2 + 4,6 x 3 → max funkcja celu
przy ograniczeniach
D6 8 x1 + 7 x 2 + 4 x 3 ≤ 9900
E6
D7 2,5 x1 + 2 x 2 + 0,9 x 3 ≤ 2800 E7
ograniczenia funkcyjne
1x1 + 10 x 2 + 4,1x 3 ≤ 11700 E8
D9 4,3 x1 + 4 x 2 + 9 x 3 ≤ 12100 E9
D8
(D6:D8)
A2
B2
C2
x1 ≥ 0,
x 2 ≥ 0,
x3 ≥ 0
(E6:E8)
(A2:C2)
warunki nieujemności zmiennych
Wszystkie niezbędne liczby oraz formuły zostały wprowadzone do arkusza. Należy teraz uruchomić dodatek
optymalizacyjny Solver (Excel 2003 i starsze menu Narzędzia-Solver, Excel 2007 i nowsze wstążka DaneSolver).
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
4
Opis wprowadzania danych do Solvera - Excel w wersjach do 2007 włącznie
Główne okno Solvera (Solver-Parametry) po uruchomieniu Solvera
Pole Komórka celu w nowootwartym oknie Solvera Solver- Parametry jest zawsze ustawiona na komórkę bieżącą (na zrzucie ekranu G7). Z powyższego powodu najwygodniej jest ustawić wcześniej jako komórkę bieżącą
komórkę pełniącą rolę funkcji celu (tzn. zawierającą odpowiednią formułę). W przypadku niniejszego zadania
będzie to komórka D4.
Następnie należy wybrać typ optymalizacji tzn. maksymalizację funkcji celu w opcji Równa. Ponieważ Maks
jest ustawieniem domyślnym tej opcji, można ja pominąć.
W pole Komórki zmieniane należy wpisać zakres A2:C2.
Wygląd okna Solver-Parametry po wprowadzeniu w/w danych jest przedstawiony na rys. 7.
Główne okno Solvera (Solver-Parametry) z ustawionymi polami Komórka celu, Równa i Komórki zmieniane.
Warunki ograniczające wpisuje się w oddzielnym oknie Dodaj warunek ograniczający otwieranym po kliknięciu Dodaj w oknie Solver-Parametry.
Uwaga! Pole Warunki ograniczające jest tylko listą – nie można w nie nic wpisywać!
Uwaga! Gdy jest otwarte okno Dodaj warunek ograniczający (lub analogiczne Zmień warunek ograniczający),
wtedy główne okno Solvera (Solver-Parametry) jest niewidoczne.
Uwaga! Można wpisywać adresy bez dolarów (znaki $ i tak zostaną przez Excela dostawione, podobnie
jak znaki = w polu Warunek ograniczający).
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
5
Nowootwarte okno Dodaj warunek ograniczający.
Wpisywanie dwóch warunków D6<=E6, D7<=E7 „wspólnie”.
Nierówność <= jest ustawieniem domyślnym więc nie trzeba nic zmieniać w środkowym polu i można przejść
do wpisywania prawej strony (pole Warunek ograniczający).
Ten zapis odpowiada grupie warunków D6<=E6, D7<=E7,
Po kliknięciu Dodaj otwiera się ponownie okno dodawania warunków. Należy wpisać warunek D8=E8.
Uwaga – trzeba pamiętać o wyborze równości = (domyślne ustawienie to <=).
Warunek D8=E8.
Po kliknięciu Dodaj otwiera się ponownie okno dodawania warunków. Należy wpisać warunek D9>=E9.
Uwaga – trzeba pamiętać o wyborze nierówności >= (domyślne ustawienie to <=).
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
Warunek D9=E9.
Po kliknięciu Dodaj otwiera się ponownie okno dodawania warunków. Należy wpisać warunki nieujemności
zmiennych A2:C2>=0 „wspólnie”.
Uwaga – trzeba pamiętać o wyborze nierówności >= (domyślne ustawienie to <=)
Ten zapis odpowiada grupie warunków A2>=0, B2>=0, C2>=0.
Warunki te są wpisywane jako ostatnie i zatwierdzone przez OK.
Kompletne ustawienia. Warunki ograniczające sortują się alfabetycznie, niezależnie od kolejności wpisywana,
Należy teraz kliknąć w Rozwiąż, a gdy pojawi się okno jak poniżej, kliknąć OK.
6
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
7
Widok po wykonaniu obliczeń Solverem.
Rozwiązanie
Optymalna (maksymalna) wartość funkcji celu to 11925,92405. Optymalne wartości zmiennych (tzn. wartości,
dla których osiągnięte zostało maksimum) to x1* = 85,1767, x 2* = 766,645 oraz x3* = 963,0178
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
Dodatek - opis wprowadzania danych do Solvera - Excel w wersjach 2010 i nowsze
W porównaniu z poprzednimi wersjami, w Excelu 2010 w Solverze został znacznie zmieniony interfejs użytkownika.
Poniżej dla porównania umieszczono zrzuty ekranów Solvera z Excela 2007 i 2010.
8
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
9
Wykaz najważniejszych różnic między oknami Solvera
Opis
Nazwa okna głównego
Adres komórki zawierającej formułę z funkcją celu lub ewentualnie
jedną z komórek zmienianych
Rodzaj optymalizacji: maksymalizacja, minimalizacja, ustalona
wartość liczbowa funkcji celu
Deklaracja zakresu/zakresów komórek pełniących rolę zmiennych
„Odgadnięcie” zakresu/zakresów
komórek pełniących rolę zmiennych na podstawie formuły z funkcją celu
Lista warunków ograniczających
Otwiera okno dodawania nowego
warunku ograniczającego
Otwiera okno edycji istniejącego
warunku ograniczającego (wymaga
wybrania go na liście)
Usuwa z listy istniejący warunek
ograniczający (wymaga wybrania
go na liście)
Otwiera okno opcji, umożliwiające
zmianę domyślnych ustawień
wpływających na proces obliczeń
Skasowanie wszystkich danych
wprowadzonych przez użytkownika oraz przywrócenie opcji domyślnych
Zapis modelu z Solvera w postaci
grupy formuł w arkuszu
Excel 2007 i wcześniejsze
Excel 2010 i póżniejsze
Solver-Parametry
Parametry dodatku Solver
Komórka celu
Ustaw cel
Uwagi
Domyślne ustawienie tego pola to
komórka bieżąca
Równa
Na
Domyślne ustawienie to Maks
Komórki zmieniane
Przez zmienianie komórek
zmiennych
brak
Brak ustawienia domyślnego
Odgadnij
Warunki ograniczające
Dodaj
Zmień
Podlegające ograniczeniom Jest to lista służącą tylko do wyświetlania, a nie do wpisywania/edycji
Dodaj
W Excelu 2010 zmieniono okno dodawania warunków ograniczających
Zmień
W Excelu 2010 zmieniono okno edycji warunków ograniczających
Usuń
Usuń
Opcje
Opcje
Przywróć wszystko
Resetuj wszystko
Dostępne jako Zapisz model/
Załaduj model w oknie opcji)
Ustawienie nieujemności wszyst- Dostępne jako Przyjmij nieukich zmiennych bez dodawania sto- jemne w oknie opcji; domysownego warunku ograniczającego ślnie niezaznaczone - brak
do listy
nieujemności wszystkich
zmiennych)
Typ algorytmu używanego do obli- Brak jawnego ustawienia
czeń
(przełączenie na algorytm
simpleks poprzez zaznaczenie opcji Przyjmij model liniowy w oknie Solver-Opcje)
Najczęściej „odgadnięcie” jest błędne
W Excelu 2010 zmieniono okno opcji
Załaduj/zapisz
Ustaw wartości nieujemne
dla zmiennych bez ograniczeń (domyślnie zaznaczone
- ustawiona nieujemność
wszystkich zmiennych)
Wybierz metodę rozwiązywania (ustawienie domyślne
jest opisane jako Nieliniowa
GRG)
Ustawienie domyślne to algorytm
„uniwersalny” GRG, a alternatywą
jest algorytm simpleks dla programowania liniowego. W Excelu 2010 dodano do wyboru tzw. algorytm ewolucyjny
Porównanie wyglądu okien dodawania/edycji warunków ograniczających
Excel 2007 i wcześniejsze
Okno dodawania nowych warunków ograniczających
Okno edycji istniejących warunków ograniczających
Excel 2010 i 2013
P. Kowalik, Laboratorium badań operacyjnych: wstęp do rozwiązywania zadań programowania liniowego w Excelu
10
Porównanie okna opcji Solvera dla Excela 2007 i wcześnieszych (pojedyncze okno – zrzut w lewym górnym rogu strony) oraz dla
Excela 2010 i późniejszych (pozostałe zrzuty – okno z trzema zakładkami).

Podobne dokumenty