1 / 22

GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

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

talisa
Download Presentation

GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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)

  5. 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

  6. 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

  7. 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

  8. Schemat fragmentu hierarchii klas biblioteki GOOL

  9. 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

  10. 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

  11. 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

  12. Definiowanie zadania optymalizacji KAEOG 2003

  13. 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

  14. Prezentacja wyników obliczeń KAEOG 2003

  15. Prezentacja wyników obliczeń Metody minimalizacji w kierunku Generatory losowe

  16. Tryb edukacyjny Zadania jednowymiarowe Zadania wielowymiarowe

  17. 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

  18. 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

  19. Metody trajektorii cząstki Griewanka Nowy punkt: Kierunek: Gdzie

  20. 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

  21. 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)

  22. 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

More Related