Opis Solvera
Solver jest tzw. dodatkiem dostarczanym przez firmę Frontline System (nie jest więc produktem Microsoftu). Narzędzie to świetnie nadaje się do rozwiązywania małych i średnich problemów optymalizacyjnych, przede wszystkim liniowych. Pisząc "małe i średnie" mam na myśli problemy o niewielkiej liczbie zmiennych decyzyjnych (do 200), bo takie ograniczenie ma standardowy Solver. Frontline System jest producentem różnych komercyjnych wersji Solvera m.in. Premium Solvera, który - dzięki wbudowanemu algorytmowi genetycznemu - radzi sobie z problemami nie do rozwiązania przy użyciu standardowego Solvera.
Cechy i ograniczenia
maksymalnie 200 zmiennych decyzyjnych
większość funkcji standardowych (m.in. jeżeli, max, min) nie może być używanych, jeśli zmienne decyzyjne (pośrednio bądź bezpośrednio) są argumentami tych funkcji; czyni to czasem Solver narzędziem dość niewygodnym
Podstawy korzystania i opcje
Wyjaśnienia wymagają zaawansowane opcje Solvera, które dostępne są po naciśnięciu przycisku Opcje.
Maksymalny czas
Czas w sekundach, który dajemy Solverowi na znalezienie rozwiązania; jeśli go nie znajdzie mamy możliwość pokazania próbnego rozwiązania albo kontynuacji obliczeń. Można tu podać wartość MaxLongInt, co odpowiada mniej więcej 68 latom obliczeń. Obliczanie zawsze można przerwać naciskając klawisz ESC.
Liczba iteracji
Określa maksymalną liczbę iteracji dla pojedynczego problemu (w każdej iteracji generowane jest nowe rozwiązanie).
Dokładność
Określa dokładność spełnienia warunków ograniczających; wartość domyślna 0,000001 oznacza, że np. wartość zmiennej A równa 0,0000001 spełnia warunek ograniczający a>=0.
Tolerancja
Wartość T% oznacza, że jeśli podczas rozwiązywania problemów całkowitoliczbowych Solver znajdzie rozwiązanie o wartości nie odbiegającej o T% od całkowitej przyjmie je za rozwiązanie problemu. Jeśli chcemy mieć pewność, że otrzymane rozwiązanie jest liczbą całkowitą należy Tolerancję ustawić na 0% (może to znacznie wydłużyć czas obliczeń!).
Zbieżność
Parametr określa warunek zatrzymania, jeśli poprawa rozwiązania następuje bardzo powoli. Ściślej biorąc Solver zatrzymuje się, jeśli względna zmiana wartości funkcji celu podczas ostatnich 5 iteracji jest mniejsza niż zadeklarowana wartość parametru.
Przyjmij model liniowy
Warto wybrać tę opcję, jeśli funkcja celu i ograniczenia są liniowe, gdyż znacznie przyśpiesza to obliczenia (używana jest wtedy metoda Simplex). Należy jednak pamiętać, że Solver testuje, czy założenia liniowości modelu są spełnione i - jeśli tak nie jest - przerywa obliczenia. Co gorsza, nawet jeśli model jest liniowy, ale zmienne bardzo różnią się zakresem wartości, Solver może uznać model za nieliniowy.
Przyjmij nieujemne
Jeśli wszystkie zmienne mają podane dolne ograniczenia, opcja ta nie działa. Jednak często zapomina się, że zmienne nie mogą mieć wartości ujemnych (np. wielkość produkcji), bo rozwiązanie traci sens. Wygodnie jest więc zaznaczyć tę opcję, zamiast wpisywać wszystkie dolne ograniczenia typu x>=0.
Automatyczne skalowanie
Powinno być wybrane, jeśli ograniczenia lub zmienne w funkcji celu bardzo różnią się zakresem wartości np. jedna podawana w milionach zł, inna - w procentach. Może to spowodować, że Solver nie będzie w stanie znaleźć rozwiązania, szczególnie jeśli wybrano opcję Przyjmij model liniowy.
Pokaż wyniki iteracji
Zaznaczamy tę opcję, jeśli po każdej iteracji chcemy widzieć próbne rozwiązanie (pokazuje się ono u dołu arkusza).
Estymaty
Określa sposób uzyskania początkowych wartości estymat podstawowych zmiennych w każdym jednowymiarowym procesie poszukiwania.
Styczna Wykorzystuje ekstrapolację liniową na podstawie wektora stycznego.
Kwadratowa Wykorzystuje ekstrapolację kwadratową. Daje lepsze wyniki w przypadku zadań wyraźnie nieliniowych.
Pochodne
Określa sposób różniczkowania przy wyznaczaniu pochodnej cząstkowej dla funkcji celu i funkcji ograniczeń.
W przód Właściwa w przypadku większości zadań, w których wartości ograniczeń zmieniają się stosunkowo wolno.
Centralne Należy stosować w zadaniach, w których wartości ograniczeń zmieniają się szybko, szczególnie w pobliżu granic. Opcja ta wydłuża obliczenia, ale może być skuteczna, kiedy pojawia się komunikat, że nie można poprawić rozwiązania.
Szukanie
Określa metodę używaną w iteracji do wyznaczania kierunku poszukiwania.
Newtona Wykorzystuje metodę Newtona, która zwykle wymaga większego obszaru pamięci, ale mniejszej liczby iteracji niż metoda gradientu sprzężonego.
Gradientu sprzężonego Wymaga mniejszego obszaru pamięci, ale większej liczby iteracji niż metoda Newtona dla zapewnienia tej samej dokładności. Z metody tej należy korzystać w przypadku rozbudowanych zadań i małego obszaru dostępnej pamięci, a także, kiedy kolejne iteracje wykazują niewielki postęp.