GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

Post on 15-Jan-2016

68 views 0 download

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

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