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