GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

22
GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY Marek Publicewicz Ewa Niewiadomska- Szynkiewicz KAEOG 2003 ukowa i Akademicka Sieć Komputerowa (NASK) stytut Automatyki i Informatyki Stosowanej, litechnika Warszawska

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 Presentation

Transcript of GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

Page 1: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 2: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

• 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

Page 3: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 4: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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)

Page 5: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 6: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 7: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 8: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

Schemat fragmentu hierarchii klas biblioteki GOOL

Page 9: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 10: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 11: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 12: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

KAEOG 2003

Definiowanie zadania optymalizacji

Page 13: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

• 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ń

Page 14: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

KAEOG 2003

Prezentacja wyników obliczeń

Page 15: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

Prezentacja wyników obliczeń

Metody minimalizacji w kierunku

Generatory losowe

Page 16: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

Tryb edukacyjny

Zadania jednowymiarowe

Zadania wielowymiarowe

Page 17: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 18: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

•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

Page 19: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

Nowy punkt: Kierunek:

Gdzie

Metody trajektorii cząstki

Griewanka

0||)(||

)(

0||||

1

i

ii

xf

xfd

d

d

iiii dfxfxx ]ˆ)([1

iii dxfdd )(

Page 20: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

Page 21: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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)

Page 22: GOOL  – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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