Zadanie 5: Optymalizacja z ograniczeniami
Transkrypt
Zadanie 5: Optymalizacja z ograniczeniami
Informatyka, studia dzienne, mgr II st. semestr I Metody obliczeniowe optymalizacji 2011/2012 Prowadzący: dr inż. Jan Stolarek grupa środy, 10:15 Data oddania: Ocena: Andrzej Stasiak 178736 Grzegorz Graczyk 178717 Zadanie 5: Optymalizacja z ograniczeniami∗ 1. Cel Napisać program rozwiązujący problem optymalizacji z ograniczeniami za pomocą jednej z poniższych metod: — zewnętrzna lub wewnętrzna funkcja kary, — SLP, — optymalizacja wielokryterialna - metoda sumy ważonej, — Box. 2. Rozwiązanie zadania Jako rozwiązanie przygotowano implementację metody SLP — sukcesywnego programowania liniowego. Jako metodę rozwiązaniującą problem programowania liniowego wykorzystano funkcję linprog wchodzącą w skład octave-optim. Program dopuszcza nieliniową funkcję celu i zbiory liniowych ograniczeń nierównościowych oraz równościowych. Kluczowe w algorytmie SLP, a zarazem zależne od badanego problemu i nie posiadające uniwersalnego rozwiązania jest odpowiednie dobierane limitów dla LP. W proponowanym rozwiązaniu są one sukcesywnie zmniejszane ze stałym współczynnikiem, dobierając przedział tak, aby punkt zawsze znajdował się w jego środku. ∗ SVN: zadanie5 https://serce.ics.p.lodz.pl/svn/labs/moo/js_sr1015/idgrupy/ 1 3. Opis programu Implementacji dokonano dla środowiska Octave. Głównym elementem programu jest pętla trwająca do momentu osiągnięcia wystarczająco małego kroku bądź przekroczenia maksymalnej liczby iteracji. Każda iteracja przebiega następująco: — Następuje linearyzacja funkcji w aktualnym punkcie x. Warto zauważyć, że postać liniowa funkcji to po prostu jej pochodne cząstkowe oraz pewna stała. Ponieważ wyraz wolny nie jest istotny z punktu widzenia optymalizacji jest on od razu odrzucany. — Następuje rozwiązanie problemu liniowego dla wyznaczonej w poprzednim kroku funkcji liniowej. — Limity są dostosowywane do nowego punktu. 4. Wyniki Rozpoczęto od zbadania funkcji (x − 4)2 + y 2 dla początkowych limitów x ∈ (−10, 15), y ∈ (−10, 20) dla różnych wartości parametru określającego szybkość zmniejszania się limitów. Parametr Znaleziony punkt Wartość funkcji celu Liczba iteracji 0.4 (6.7; −4.81̇0−3 ) 7.1 12 −2 −1 0.45 (4.0; −3.61̇0 ) 6.0 · 10 14 −3 −5 0.5 (4.0; −4.71̇0 ) 4.8 · 10 16 −3 −5 0.8 (4.0; −4.91̇0 ) 5.0 · 10 46 0.95 (4.0; −5.01̇0−3 ) 5.0 · 10−5 194 −3 −5 0.99 (4.0; −4.21̇0 ) 3.7 · 10 985 −3 −5 0.999 (4.0; −5.01̇0 ) 5.0 · 10 9876 Istotny w powyższych wynikach jest fakt, iż otrzymane rezultaty są zgodne z przewidywaniami teoretycznymi. Poniżej wartości 0.5 każdy ruch w złym kierunku jest nieodwracalny w skutkach — nie jesteśmy w stanie wrócić w pobliże punktu z wcześniejszej iteracji. W wypadku wartości większych suma szeregu geometrycznego jest większa od 1, co umożliwia powrót. Z drugiej strony, jeśli nie będziemy ograniczać zakresu przeszukiwania nigdy ich nie zakończymy. Z tego powodu wartości parametru muszą być mniejsze od 1, zaś ze względu na geometryczny wzrost liczby iteracji, również wartości bliskie 1 nie są zalecane. Drugi eksperyment sprawdzał funkcję: f (x) = x − x2 x <= 5 x >= 5 Program uruchomiono z dwoma różnymi ograniczeniami początkowymi: Ograniczenia Znaleziony punkt Wartość funkcji celu Liczba iteracji (−4; 5) 5 -20 2 (−5; 5) -5 -30 2 2 Jak łatwo zauważyć program obrał niewłaściwy kierunek, kierując się jednak w stronę pewnego minimum, co uniemożliwało zawrócenie. Z tego powodu skończył w niewłaściwym minimum (nie jest to minimum lokalne, choć ze względu na ograniczenia jest z nim w pewien sposób równoważne). 5. Wnioski — Algorytm SLP jest algorytmem prostym, niewymagającym wielu obliczeń. Wynika to z faktu, iż problem jest upraszczany do kilkukrotnego rozwiązania problemu programowania liniowego, które posiadają bardzo sprawne i szybkie metody rozwiązywania. — Dobór ograniczeń startowych jest zadaniem trudnym i nie istnieje uniwersalna metoda ich doboru. Wymaga to pewnej wiedzy o problemie, która pozwoli uniknąć trafienia do minimum lokalnego. Ponadto należy zadbać, by w proponowanych ograniczeniach dostępny był punkt początkowy spełniający wymagane kryteria. — Modyfikacja ograniczeń wpływa na dokładność i szybkość poszukiwań. Jest to typowa zależność, która oznacza, że każda kolejna iteracja zbliża nas coraz bardziej do celu. Zmniejszając oczekiwaną liczbę iteracji zmniejszymy również otrzymaną dokładność. Oczywiście parametry zmian muszą być dobrane sensownie, czyli w wypadku strategii zastosowanej w rozwiązaniu w zakresie (0.5; 1.0). 3