Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Podstawy optymalizacji Metody poszukiwania ekstremum funkcji jednej zmiennej Materiały pomocnicze do ćwiczeń laboratoryjnych Opracowanie: Kazimierz Duzinkiewicz, dr hab. inż. Tomasz Karol Nowak, mgr inż. Gdańsk
1. Wstęp W ćwiczeniu zapoznamy się z trzema metodami szukania ekstremum funkcji jednej zmiennej: metodą dwudzielną, metodą Fibonacci i metodą złotego podziału. Poszukiwanie będziemy przeprowadzali przy założeniu, ze system, w którym przeprowadzamy to poszukiwanie, jest zdeterminowany tzn. nie występują w nim nieznane lub przypadkowe czynniki mające wpływ na wyniki poszukiwań. 2. Warunek unimodalności Warunkiem efektywnego zastosowania (tzn. zapewniającego znalezienie ekstremum globalnego) wymienionych metod jest spełnienie przez funkcję jednej zmiennej warunku unimodalności. Obrazowo mówiąc, funkcja jednej zmiennej w badanym przedziale jest unimodalna, jeżeli posiada w nim tylko jeden wierzchołek. Własność unimodalności posiadają wszystkie funkcje przedstawione na rys. 2.1. Rys. 2.1. Funkcje unimodalne. Zauważmy, ze funkcja unimodalna nie musi być wcale funkcją gładką, jak na rys. 2.1.a, a także funkcją ciągłą jak na rys. 2.1.b może ona być złamana (nieróżniczkowalna), nieciągła i także może być nieokreślona w pewnych przedziałach jak na rys. 2.1.c. Widać, że założenie unimodalności nie jest związane z surowymi ograniczeniami i dlatego jest ono spełnione w wielu praktycznych zadaniach poszukiwania. Załóżmy, dla określoności rozważań, ze chcemy maksymalizować funkcję. Niech to poszukiwana, lecz nieznana wartość maksymalna i niech to wartość, przy której osiąga się to maksimum. Wtedy: (1) Rozpatrzmy dwa funkcji i przy czym i niech odpowiadające im wartości wynoszą i. Przy takich ustaleniach możemy podać warunek unimodalności funkcji jednej zmiennej. Funkcja jest unimodalna, przy spełnieniu podanych wyżej założeń, jeżeli z warunku wynika, zaś z warunku wynika, że.
Jeżeli można założyć unimodalność funkcji wówczas wg rezultatów dowolnej pary eksperymentów (określenie w dwóch punktach) można wskazać przedział, w którym zawarte jest optimum, przy czym ten przedział jest mniejszy, niż poprzedni. Weźmy np. dwa eksperymenty i, gdzie. Możliwe są wówczas trzy rezultaty:, i. Wszystkie one są przedstawione na rys. 2.2. Rys. 2.2. Możliwe rezultaty dwóch eksperymentów. 3. Przedział nieokreśloności Jeżeli funkcja jest unimodalna w przedziale wówczas przed wykonaniem jakiegokolwiek eksperymentu możemy powiedzieć, ze ekstremum funkcji znajduje się w przedziale. Przedział o którym możemy powidzieć, ze zawiera on punkt nazywamy przedziałem nieokreśloności. Uściślijmy podaną definicję. Przyjmijmy, że wykonaliśmy eksperymentów (określiliśmy w punktach przedziału ) i oznaczmy lewą i prawą granicę przedziału wyjściowego odpowiednio i, tj.,. Niech dla serii eksperymentów jest wskaźnikiem eksperymentu, dla którego otrzymano największą wartość. Wówczas dla serii eksperymentów możemy w ogólnym przypadku powiedzieć, że: (2) gdzie:, - wskaźniki eksperymentów leżących na lewo i prawo od eksperymentu. Przedział ten będziemy nazywali przedziałem nieokreśloności po eksperymentach i oznaczali jego długość przez: (3) Zatem, każdy nowy przedział nieokreśloności zawiera się między eksperymentach położonymi po obu stronach eksperymentu dającego największą wartość.
4. Minimalne rozsunięcie eksperymentów Aby zmniejszyć przedział nieokreśloności należy przeprowadzić co najmniej dwa eksperymenty. Rozpatrzmy dwa eksperymenty i przy czym. Pierwotny przedział nieokreśloności wynosi. jak rozmieścić eksperymenty,, aby niezależnie od rezultatów eksperymentów kolejny przedział nieokreśloności był najmniejszy? Na pierwszy rzut oka widac, że minimalna wartość wynosi i jest ona osiągana przy. Takie rozwiązanie jest jednak nie do przyjęcia. Niech będzie minimalnym rozsunięciem eksperymentów, przy którym staje się możliwe wykrycie różnicy między i. Wówczas przeprowadzając eksperymenty i symetrycznie po obu stronach środka przedziału w odległości od niego, spełnimy nie tylko wymagania minimalnego rozsunięcia eksperymentów, ale otrzymamy również minimalną wartość. Pokazuje to rys. 4.1. Rys. 4.1. Najlepsze rozmieszczenie dwóch eksperymentów.
5. Maksymalna liczba eksperymentów W wielu przypadkach, nawet jeśli wiadomo, że funkcja jest unimodalna nie można uzyskać przedziału nieokreśloności dowolnie małego. Przy planowaniu poszukiwania należy brać pod uwagę minimalne rozsunięcie, przy którym rezultaty dwóch eksperymentów można jeszcze rozróżnić. Najmniejszy przedział nieokreśloności, który w ten sposób daje się osiągnąć wynosi praktycznie : (4) gdzie:,, - numery kolejne punktów eksperymentów w przedziale poszukiwania, - wartość zmiennej niezależnej, dla której osiągnięto najlepszy rezultat eksperymentu. 6. Błędy eksperymentu W rozważaniach przeprowadzonych wyżej byliśmy zmuszeni liczyć się z tym, że odległość między dowolnymi dwoma próbami powinna być nie mniejsza od pewnego dodatniego. Badacz mający do czynienia z jakimś fizycznym lub ekonomicznym układem nie może tej wielkości lekceważyć. Jednakże od razu powstaje trudność. Dla tego, aby ocenić należy coś wiedzieć o tym jak szybko zmienia się nieznana funkcja. Na nieszczęście wszystko to zachodzi w pobliżu optimum, gdzie funkcja, jeżeli jest ciągła i niełamana, staje się całkiem łagodna, ponieważ pierwsza pochodna dąży do zera (jeżeli ekstremum nie znajduje się na końcu przedziału). Jasne jest, że z powodu błędów eksperymentu wielkość zwiększa się. Wpływ błędów można zmniejszyć powtarzając eksperyment kilkukrotnie i posługując się średnią z kilku pomiarów. Zasadniczą sprawą jest tutaj udzielanie odpowiedzi na pytanie czym spowodowana jest, obserwowana przez nas, różnica między dwoma eksperymentami. Czy jest to różnica spowodowana błędami eksperymentu, czy też wynika ona z istotnej różnicy wartości funkcji w badanych dwóch punktach. Aby odpowiedzieć na to pytanie należy skorzystać z aparatu obliczeniowego statystyki matematycznej wykorzystując metody badania istotności. Metody te wychodzą z poza ramy tego ćwiczenia. Zapoznamy się z nimi w jednym z dalszych ćwiczeń. 7. Metoda dwudzielna (dychotomii) W jednym z poprzednich rozdziałów pokazaliśmy, że jeżeli w początkowym przedziale przeprowadza się tylko dwa eksperymenty, wówczas najlepsze co można zrobić to przeprowadzić obydwie próby w środku przedziału możliwie blisko jedna drugiej. Otrzyma się przy tym długość przedziału nieokreśloności równą: (5) Załóżmy, że trzeci i czwarty eksperyment przeprowadzamy w środku otrzymanego przedziału tak, jak to pokazano na rys. 7.1.
Rys. 7.1. Poszukiwania metodą dwudzielną dla przypadku sześciu eksperymentów. Po piątym i szóstym eksperymencie przeprowadzonym podobnym sposobem przdział nieokreśloności skróci się do (rys. 7.1.c). W ogólności, po eksperymentach ( oczywiście powinno być parzyste) optimum będzie zawarte w przedziale o długości: (6) parzyste. Jak widać, efektywność tego poszukiwania metodą zwaną dwudzielną (dzielenia na pół) ze wzrostem ekspotencjalnie. 8. Metoda Fibonacci Jakkolwiek metoda dwudzielna jest metodą efektywnego poszukiwania ekstremum funkcji jednej zmiennej, to istnieje metoda od niej doskonalsza jest nią metoda Fibonacci. Prześledźmy elementy tej strategii poszukiwania ekstremum funkcji jednej zmiennej. Jak poprzednio mamy funkcję unimodalną w przedziale. dla poszukiwania ekstremum dysponujemy serią eksperymentów. Z dyskusji w poprzednich rozdziałach wynika, że ostatnie dwa eksperymenty optymalnie należy rozmiescić tak, jak to pokazuje rys. 8.1.
Rys. 8.1. Optymalne rozmieszczenie dwóch ostatnich eksperymentów. Optymalnym będzie zatem przeprowadzenie dwóch ostatnich eksperymentów w punktach symetrycznych względem środka (przedział nieokreśloności po wykonaniu eksperymentów) i oddalonych od niego o. W ten sposób (patrz rys. 8.1.) i związane są zależnością: Na rys. 8.1 i dalszych rezultat spośród eksperymentów, (7) oznacza punkt eksperymentu, dla którego uzyskano najlepszy zaś oznacza punkt, dla którego ten rezultat był gorszy. Rozpatrzmy teraz przedział, który otrzymamy po wykonaniu wszystkich eksperymentów z wyjątkiem dwóch ostatnich. jego długość oznaczmy (patrz rys. 8.2).
Rys. 8.2. Strategia rozmieszczenia ostatnich eksperymentów w metodzie Fibonacci. Gdzieś wewnątrz tego przedziału znajduje się eksperyment. W przedziale tym należy też przeprowadzić następny eksperyment (oznaczmy miejsce jego wykonania ). Po wykonaniu tego eksperymenty dowiemy się, który z tych dwóch eksperymentów okazał się lepszy i nazwiemy go. Eksperyment ten wpadnie w następny przedział nieokreśloności. Drugi z tych eksperymentów, który nazwiemy stanie się punktem granicznym między częścią przedziału, który odrzucimy z dalszych badań i przedziałem, który pozostawimy dla dalszego badania. Ponieważ przed przystąpieniem do wykonania eksperymentu nie wiedzieliśmy, który z dwóch punktów w przedziale będzie odpowiadał lepszemu rezultatowi, to wynika stąd, że obydwa te punkty muszą być odległe na od końców przedziału, przy czym każdy od innego (rys. 8.2.a i 8.2.b). Jak wspomnieliśmy wyżej, ten z punktów i, dla którego uzyskamy lepszy rezultat eksperymentu zostanie oznaczony i przejdzie do nowego przedziału nieokreśloności. Lecz już poprzednio pokazaliśmy, że powinien znajdować się w odległości od końca przedziału (rys. 8.2.c). Ponieważ i w przedziale były rozłożone symetrycznie i jeden z nich został, to wynika stąd, że każdy z tych punktów powinien być odległy o od jednego z końców przedziału i na od drugiego, tak jak to pokazuje rys. 8.3.
Rys. 8.3. Zależność między trzema ostatnimi przedziałami nieokreśloności. Stąd można zapisać: (8) Z (7) i (8) otrzymujemy: (9) Przeprowadzone wyżej rozważania można uogólnić wyprowadzając analogiczną do (8) zależność wiążącą długości trzech kolejnych przedziałów nieokreśloności (rys. 8.4): (10) dla wszystkich przy czym otrzymane formalnie z tego wzoru.
Rys. 8.4. Zależność między trzema kolejnymi przedziałami nieokreśloności w metodzie Fibonacci. Wypiszmy długości dla kilku kolejno zmniejszających się od. Otrzymamy: i analogicznie: Zawartą formułę wyrażającą te zależności można otrzymać wykorzystując ciąg liczb Fibonacci w następujący sposób: (11) (12) gdzie: -ta liczba Fibonacci. Z pomocą tych liczb możemy napisać zależność wyrażającą przedział nieokreśloności na eksperymentów przed zakończeniem poszukiwania (13) Przyjmując długość wyjściowego przedziału za otrzymamy : (14) Stąd znajdziemy, czyli przedział nieokreśloności po kolejnych eksperymentach wg przedstawionej strategii:
(15) Jeżeli poszukiwania metodą Fibonacci zostało już rozpoczęte, jego kontynuacja w dowolnym kroku jest bardzo prosta. Istotnie, bowiem w każdy pozostający przedział wchodzi jeden z poprzednich eksperymentów i dla kontynuowania poszukiwania należy przeprowadzić eksperyment symetrycznie do tego już posiadanego w przedziale eksperymentu. Dlatego określając dokładnie miejsca dwóch pierwszych eksperymentów w pełni określimy poszukiwania metoda Fibonacci. Dwa pierwsze eksperymenty powinny znajdować się w odległości od końców pierwotnego przedziału, oczywiście każdy z nich od innego. Dla znalezienia zapiszemy (13) dla : (16) Podstawiając (15): (17) Współczynnik przy można uprościć jeżeli podstawy do licznika tożsamości: wówczas: Wykorzystując tzw. wzór Lucasa można wykazać, że prawa strona tego wyrażenia równa się. W ten sposób (17) sprowadza się do postaci: (17a) Znajomość tej zależności pozwala rozpocząć poszukiwania metoda Fibonacci. Dalsze postępowanie, którego przestawiono wyżej, jest już bardzo proste. 9. Metoda złotego podziału Metoda Fibonacci posiada jedną niedogodność. Aby móc rozpocząć przeprowadzenie sekwencji eksperymentów eksperymentator musi znać liczbę eksperymentów, które będzie wykonywał. Mogą się zaś zdarzyć sytuacje, kiedy określenie tej liczby nie będzie możliwe. Można wówczas skorzystać z metody złotego podziału. Zapoznamy się teraz z elementami tej strategii. niech jak poprzednio oznacza liczbę już przeprowadzonych eksperymentów. Z rozważań nad metodą Fibonacci przejdziemy sposób rozmieszczenia sekwencyjnych eksperymentów, który określa zależność: (10) W metodzie Fibonacci wszystkie zależności wyprowadziliśmy korzystając z zależności (10) oraz z warunku początkowego: (7)
Tym razem nie skorzystamy z tego warunku, lecz zamiast niego przyjmiemy, że stosunek długości kolejnych przedziałów nieokreśloności pozostaje stały. Oznaczając ten stosunek przez mamy: (18) Dzieląc (10) przez i biorąc pod uwagę, że: (19) otrzymujemy: Rozwiązanie to posiada jeden dodatni pierwiastek: (20) (21) Zasadę złotego podziału pokazuje rys. 9.1. Rys. 9.1. Zasada złotego podziału. Dwa pierwsze eksperymenty przeprowadzamy w odległości (22) od końców przedziału wyjściowego. Według rezultatów dwóch eksperymentów ustalamy, który segment pozostawić dla dalszych badań. Jak wiadomo w tym pozostającym przedziale będzie znajdować się jeden z poprzednich eksperymentów i aby kontynuować poszukiwania należy w tym przedziale przeprowadzić symetrycznie do niego następny eksperyment. Proces ten można kontynuować dowolnie długo. Po eksperymentach dochodzimy do przedziału nieokreśloności: (23)
Literatura: 1. Optimum seeking methods, Douglass J. Wilds, PrenticeHall Inc., Englewood Cliffs, N. J. 1969. 2. Foundations of Optimization, Douglass J. Wilde, Charles S. Beightler, Prentice-Hall Inc., Englewood Cliffs, N. J., 1967. 3. Optimization theory with applications, Donald A. Pierre, john Wiley & Sons Inc., 1969. 4. Metody obliczeniowe optymalizacji, W. Findeisen, J. Szymański, A. Wierzbicki, Wyd. Politechniki Warszawskiej, Warszawa 1973.