gool – global optimization object-oriented library
DESCRIPTION
GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY. Marek Publicewicz Ewa Niewiadomska-Szynkiewicz. Naukowa i Akademicka Sieć Komputerowa (NASK) Instytut Automatyki i Informatyki Stosowanej, Politechnika Warszawska. KAEOG 2003. Plan Prezentacji. Wprowadzenie - PowerPoint PPT PresentationTRANSCRIPT
GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY
Marek PublicewiczEwa Niewiadomska-Szynkiewicz
KAEOG 2003
Naukowa i Akademicka Sieć Komputerowa (NASK)
Instytut Automatyki i Informatyki Stosowanej, Politechnika Warszawska
• Wprowadzenie• Biblioteka GOOL (Global Optimization Object-oriented Library)
- założenia funkcjonalne
- opis działania systemu GOOL/CON
- opis działania systemu GOOL/GUI• Część wizualizacyjna (GUI)
– interakcyjna definicja zadań + analizator wyrażeń– prezentacja graficzna optymalizowanych funkcji– prezentacja graficzna wyników obliczeń
• Metody numeryczne w GOOL
- biblioteka generatorów losowych (GOOL/RG)
- biblioteka metod optymalizacji (GOOL/OM)• Eksperymenty numeryczne
Plan Prezentacji
Biblioteka GOOL łącznie z częścią wizualizacyjną stanowi narzędzie do badania metod optymalizacji dla różnych zadań testowych:
– wprowadzanych w postaci analitycznej (korzystając z interfejsu lub z pliku tekstowego)
– wprowadzonych w postaci symulatora
Część numeryczna jest zrealizowana w C/C++
Interfejs graficzny w języku skryptowym Tcl / Tk
Biblioteka GOOL
Wersje biblioteki GOOL
GOOL / GUIWersja działająca w środowisku graficznym
(przeznaczona do celów edukacyjnych)
• GOOL / GUI • GOOL / CON
Dwie wersje biblioteki:
GOOL / CON
Wersja działająca w trybie tekstowym
(przeznaczona do prac naukowo-badawczych)
Elementy składowe biblioteki GOOL
GOOL / GUIInterfejs graficzny
Definiowanie zadań, ustalanie wartości parametrów metod, prezentacja wyników
GOOL / OM
Biblioteka metod optymalizacji
Metody optymalizacji wypukłej i niewypukłej
GOOL / RG
Biblioteka generatorów losowych
Różne generatory liczb pseudolosowych i sekwencji losowych
Funkcjonalność systemu GOOL
• Zarządzanie zadaniami– postać analityczna funkcji celu
– funkcje proceduralne - osobne pliki wykonywalne
– autorski podsystem zarządzania strukturą zadania (symboliczny)
– zarządzanie symbolami i ograniczeniami
• Wizualizacja zadań– wykresy funkcji jednej zmiennej
– wykresy poziomicowe, skalowanie obszaru, dopuszczalność
– wykres trójwymiarowy dla zadań dwuwymiarowych
• Metody optymalizacji– uporządkowanie metod w hierarchię drzewiastą
– nadawanie wartości parametrom metod
– możliwość wyboru metod lokalnych oraz minimalizacji w kierunku
– definiowanie wielkości charakterystycznych dla danej metody
Założenia implementacyjne
• przenośność (docelowe systemy: Linux, Windows)
• połączenie języka skryptowego (Tcl/Tk - GUI) z językiem C++ (selekcja w doborze mechanizmów)
• wykorzystanie podczas budowy wzorców projektowych
• wyodrębnienie podsystemu obliczania wartości i operowania na wyrażeniach symbolicznych - C
Schemat fragmentu hierarchii klas biblioteki GOOL
Działanie systemu GOOL/CON
RAPORT • Parametry zadania (dokładność obliczeń, postać funkcji
kary, użyte generatory losowe)• Znalezione rozwiązanie zadania• Numer iteracji, w której znaleziono rozwiązanie• Wartości ograniczeń w rozwiązaniu• Liczba uderzeń w ograniczenia• Całkowita liczba iteracji• Liczba obliczeń funkcji celu• Czas trwania obliczeń• Kryterium zatrzymania metody
Uruchomienie programu GOOL/CON
gool_con task_file
task_file – nazwa pliku zawierającego zadanie optymalizacji
Foramat pliku task_file
• <NAME> nazwa zadania• <DESCRIPTION> opis słowny zadania• <DIMENSION> wymiar• <BOUNDS> ograniczenia kostkowe• <SYMBOLS> definicje symboli pomocniczych• <OBJECTIVE> wskaźnik jakości• <CONSTRAINTS> ograniczenia nierównościowe• <PARAMS> parametry zadania• <GRADIENTS> postać analityczna gradientu• <START_POINTS> punkt początkowy optymalizacji
Działanie systemu GOOL/GUI
Główne okno aplikacji
Informacje dotyczące zadania:
Name – nazwa
Objective – funkcja celu
Metody optymalizacji z biblioteki
Pliki z wynikami optymalizacji
KAEOG 2003
Definiowanie zadania optymalizacji
• Generatory losowe– prezentacja punktów na płaszczyźnie
– wyświetlanie histogramów
• Minimalizacja funkcji– (GUI): obserwowanie przebiegu działania na wykresach
poziomicowych - trzy rodzaje prezentacji:• trajektorie• zbiory punktów• przeszukiwane komórki
– (GUI): tryb edukacyjny:• prezentacja przebiegu minimalizacji w kierunku• raportowanie wielkości charakterystycznych danej metody• prezentacja zmian istotnych parametrów charakteryzujących algorytm• informowanie użytkownika o stanie działania algorytmu
– (GUI): zapis przebiegu optymalizacji do pliku
– (CON): szczegółowy raport końcowy
Sposoby prezentacji wyników obliczeń
KAEOG 2003
Prezentacja wyników obliczeń
Prezentacja wyników obliczeń
Metody minimalizacji w kierunku
Generatory losowe
Tryb edukacyjny
Zadania jednowymiarowe
Zadania wielowymiarowe
Algorytmy optymalizacji w systemie GOOL
•metody deterministyczne•podziału i ograniczeń
Galperina, Gourdina, Meewella-Mayne
•trajektorii cząstkiGriewanka
Metody optymalizacji globalnej
•metody niedeterministyczne•poszukiwań losowych
symulowanego wyżarzaniaCRS2, CRS3, CRS6
•wykorzystujące grupowaniealgorytm Törna (warianty grupowania)
•algorytmy ewolucyjnekodowanie binarnekodowanie rzeczywistoliczbowe
•metod Galperina
Funkcja aproksymującazbiór dopuszczalny środek komórkiwybrana komórka dzielona na p komórek
Metody podziału i ograniczeń
•Warunek Lipschitza
Siatka nierównomierna
•metod Gourdina-Hansena-Jaumard
Funkcja aproksymująca
zbiór dopuszczalny środek komórkiwybrana komórka dzielona na p komórek
|||||)()(|,0 jijiXxxL xxLxfxfji
n
iii ab
LxfxF
1
2)(2
)()(
nqp
nbaX ],[
x
nq
abLxfxF
k2)()(
],[...],[ 11 nn babaX
x
Nowy punkt: Kierunek:
Gdzie
Metody trajektorii cząstki
Griewanka
0||)(||
)(
0||||
1
i
ii
xf
xfd
d
d
iiii dfxfxx ]ˆ)([1
iii dxfdd )(
Algorytmy optymalizacji w systemie GOOL
•sympleks nieliniowy Neldera-Meada•metoda Powella•BFGS
Metody optymalizacji lokalnej
Metody minimalizacji w kierunku
•aproksymacja funkcji parabolą•metoda złotego podziału•ekstrapolacja/interpolacja kwadratowa z testem Goldsteina•metoda Pijavskiego-Shuberta
Biblioteka generatorów losowych
•jednostajny•trzy generatory liniowe•trzy sekwencje pseudolosowe (Haltona, Faure, Sobola)
•normalny •metoda ROU•zmodyfikowana metoda odwracania dystrybuanty•metoda Box’a - Mullera
•beta(a,b)
Podsumowanie
• Główne obszary zastosowania programu:– minimalizacja zadań wielowymiarowych z ograniczeniami
funkcyjnymi różnymi metodami
– przedstawianie charakteru zmienności badanych funkcji z uwzględnieniem ograniczeń
– analiza wpływu parametrów zadania i ograniczeń na postać minimalizowanej funkcji
– badanie wpływu wartości parametrów na ich skuteczność
– lepsze zrozumienie sposobu zachowania się najbardziej popularnych algorytmów, poprzez śledzenie ich działania w trybie edukacyjnym
• Potencjalne kierunki rozbudowy:– rozbudowa biblioteki metod
– uwzględnianie ograniczeń - inne metody
– wizualizacja przebiegu algorytmów na wykresie przestrzennym
– rozbudowanie podsystemu zarządzającego wyrażeniami symbolicznymi