220 likes | 407 Views
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
E N D
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 • 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
Biblioteka GOOL 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
Wersje biblioteki GOOL • GOOL / GUI • GOOL / CON Dwie wersje biblioteki: GOOL / GUI Wersja działająca w środowisku graficznym (przeznaczona do celów edukacyjnych) GOOL / CON Wersja działająca w trybie tekstowym (przeznaczona do prac naukowo-badawczych)
Elementy składowe biblioteki GOOL GOOL / GUI Interfejs graficzny Definiowanie zadań, ustalanie wartości parametrów metod, prezentacja wyników GOOL / RG Biblioteka generatorów losowych Różne generatory liczb pseudolosowych i sekwencji losowych GOOL / OM Biblioteka metod optymalizacji Metody optymalizacji wypukłej i niewypukłej
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
Działanie systemu GOOL/CON Uruchomienie programu GOOL/CON gool_con task_file task_file – nazwa pliku zawierającego zadanie optymalizacji • 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
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
Definiowanie zadania optymalizacji KAEOG 2003
Sposoby prezentacji wyników obliczeń • 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
Prezentacja wyników obliczeń KAEOG 2003
Prezentacja wyników obliczeń Metody minimalizacji w kierunku Generatory losowe
Tryb edukacyjny Zadania jednowymiarowe Zadania wielowymiarowe
Algorytmy optymalizacji w systemie GOOL Metody optymalizacji globalnej • metody deterministyczne • podziału i ograniczeń • Galperina, Gourdina, Meewella-Mayne • trajektorii cząstki • Griewanka • metody niedeterministyczne • poszukiwań losowych • symulowanego wyżarzania • CRS2, CRS3, CRS6 • wykorzystujące grupowanie • algorytm Törna (warianty grupowania) • algorytmy ewolucyjne • kodowanie binarne • kodowanie rzeczywistoliczbowe
Metody podziału i ograniczeń Siatka nierównomierna • Warunek Lipschitza • metod Galperina • Funkcja aproksymująca • zbiór dopuszczalny • środek komórki • wybrana komórka dzielona na p komórek • metod Gourdina-Hansena-Jaumard • Funkcja aproksymująca • zbiór dopuszczalny • środek komórki • wybrana komórka dzielona na p komórek
Metody trajektorii cząstki Griewanka Nowy punkt: Kierunek: Gdzie
Algorytmy optymalizacji w systemie GOOL Metody optymalizacji lokalnej • sympleks nieliniowy Neldera-Meada • metoda Powella • BFGS 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