Teoria Optymalizacji
Transkrypt
Teoria Optymalizacji
Teoria Optymalizacji Wprowadzenie W roku 1997 obchodzono 300 lat nowożytnej teorii optymalizacji z pionierskimi pracami matematyków i fizyków XVII wieku. Jednak problematyka optymalizacji jest tak stara jak historia świata. Do rozwoju optymalizacji przyczynili się: Wergiliusz (poeta rzymski 70 - 19 p.n.Chr.) Eneida - historia założenia Kartaginy (850r.) „znaleźć krzywą zamkniętą na płaszczyźnie o danej długości, która zawiera maksymalną powierzchnię”. Teoria Optymalizacji Wprowadzenie W roku 1997 obchodzono 300 lat nowożytnej teorii optymalizacji z pionierskimi pracami matematyków i fizyków XVII wieku. Jednak problematyka optymalizacji jest tak stara jak historia świata. Do rozwoju optymalizacji przyczynili się: Wergiliusz (poeta rzymski 70 - 19 p.n.Chr.) Eneida - historia założenia Kartaginy (850r.) „znaleźć krzywą zamkniętą na płaszczyźnie o danej długości, która zawiera maksymalną powierzchnię”. 1697: Johann Bernoulli ogłosił konkurs na rozwiązanie problemu brachistochrony (gr.): Znaleźć krzywą na płaszczyźnie, łączącą dwa punkty A i B nie leżące w pionie, wzdłuż której punkt materialny, poruszający się pod działaniem siły ciężkości, przebywa drogę w najkrótszym czasie (odp. łuk cykloidy). Zadanie to rozwiązali: Leibnitz, J. Bernoulli, Newton, L’Hospital, Tschirnhaus. Teoria Optymalizacji Wprowadzenie początek rachunku wariacyjnego: Lagrange (1736-1813), Hamilton (1805-1865), Weierstrass (1815-1897) Teoria Optymalizacji Wprowadzenie początek rachunku wariacyjnego: Lagrange (1736-1813), Hamilton (1805-1865), Weierstrass (1815-1897) 1939: współczesne metody optymalizacji; problemy logistyki w czasie II wojny światowej, programowanie liniowe (Danzig), programowanie całkowitoliczbowe - wybór spośród skończonej liczby decyzji: (Cabot, Balas), teoria programowania nieliniowego (Kuhn, Tucker, Georffrion) Teoria Optymalizacji Wprowadzenie początek rachunku wariacyjnego: Lagrange (1736-1813), Hamilton (1805-1865), Weierstrass (1815-1897) 1939: współczesne metody optymalizacji; problemy logistyki w czasie II wojny światowej, programowanie liniowe (Danzig), programowanie całkowitoliczbowe - wybór spośród skończonej liczby decyzji: (Cabot, Balas), teoria programowania nieliniowego (Kuhn, Tucker, Georffrion) rozwój obliczeń komputerowych spowodował wzrost zainteresowaniami numerycznymi (Powell, Rosen, Fletcher); programowanie dynamiczne - zainteresowanie procesami z „pamięcią” (Bellman, Ricatti) Teoria Optymalizacji Wprowadzenie badania kosmiczne: optymalizacja konstrukcji rakiet, problemy sterowania lotem w stratosferze i w kosmosie Teoria Optymalizacji Wprowadzenie badania kosmiczne: optymalizacja konstrukcji rakiet, problemy sterowania lotem w stratosferze i w kosmosie optymalizacja procesów ekonomicznych: problemy alokacji produkcji, optymalny skład portfela inwestycyjnego, problemy „wielkie” i związane z nim metody dekompozycji (Lasdon, Findeisen) Teoria Optymalizacji Wprowadzenie badania kosmiczne: optymalizacja konstrukcji rakiet, problemy sterowania lotem w stratosferze i w kosmosie optymalizacja procesów ekonomicznych: problemy alokacji produkcji, optymalny skład portfela inwestycyjnego, problemy „wielkie” i związane z nim metody dekompozycji (Lasdon, Findeisen) „soft computing” - John Holland - Uniwersytet Michigan, 1975: „Adaptation in Natural and Artificial Systems.” Teoria Optymalizacji Ewolucja w podejściu do problemów optymalizacyjnych Analityczne metody klasyczne, czyli metody „górskiej wspinaczki”: modele stworzone przez matematyków XVII - XIX wieku, „nieskażony” świat kwadratowych funkcji celu i wszechobecnych pochodnych. Dowody możliwości rozwiązywania problemów „szkolnych”. Rozwój obliczeń komputerowych: modyfikacje metod klasycznych, algorytmizacja obliczeń umożliwiła zastosowanie do praktycznych problemów nauki i techniki, w tym do funkcji nieanalitycznych. „Softcomputing” - metody „odporne”: algorytmy ewolucyjne, genetyczne, sieci neuronowe: zastosowanie metod optymalizacji do złożonych modeli procesów. Teoria Optymalizacji Ewolucja w podejściu do problemów optymalizacyjnych Teoria Optymalizacji Ewolucja w podejściu do problemów optymalizacyjnych Teoria Optymalizacji Ewolucja w podejściu do problemów optymalizacyjnych Teoria Optymalizacji Formułowanie zadań optymalizacji Proces: zjawisko fizyczne, system ekonomiczny, planowanie produkcji, transportu, Model: jego opis matematyczny sformułowany pod kątem optymalizacji, x - zmienna decyzyjna, F (x) - funkcja oceny jakości, X0 - zbiór rozwiązań dopuszczalnych, X - przestrzeń rozwiązań, x̂ - rozwiązanie (optymalna wartość zmiennej decyzyjnej). min{F (x)}, x ∈ X0 ⊆ X (1) „Dążenie człowieka do perfekcji znajduje swój wyraz w optymalizacji. Zajmuje się ona tym, jak opisać i osiągnąć najlepsze, gdy wiemy już jak mierzyć i zmieniać Dobre i Złe” (Beighler, Philips, 1979: Fundation of optimalization) Metody optymalizacji statycznej Podstawowe metody bezgradientowe poszukiwania ekstremum: 1 Metoda Hooka-Jeevesa Metody optymalizacji statycznej Podstawowe metody bezgradientowe poszukiwania ekstremum: 1 2 Metoda Hooka-Jeevesa Metoda Gaussa-Seidela Metody optymalizacji statycznej Podstawowe metody bezgradientowe poszukiwania ekstremum: 1 2 3 Metoda Hooka-Jeevesa Metoda Gaussa-Seidela Metoda Daviesa, Swanna, Campeya (DSC) Teoria Optymalizacji Metody optymalizacji statycznej Gradient - w analizie matematycznej, operator różniczkowy, który polu skalarnemu przyporządkowuje pole wektorowe. Owo pole wektorowe ma kierunek i zwrot wektora największego wzrostu funkcji w danym punkcie, a wartość jest proporcjonalna do szybkości wzrostu (wzrost na jednostkę długości) funkcji. Wektor przeciwny gradientowi nazywany jest antygradientem. Gradient oznaczany jest grad lub odwróconym trójkątem (operator nabla): ∇. Teoria Optymalizacji Metody optymalizacji statycznej Hesjan, macierz Hessego - macierz (kwadratowa) drugich pochodnych cząstkowych funkcji wektorowej o wartościach rzeczywistych, dwukrotnie różniczkowalnej w pewnym punkcie dziedziny. Czasem, pod pojęciem hesjanu rozumie się wyznacznik macierzy Hessego. Nazwa została wprowadzona przez Jamesa Sylvestera dla upamiętnienia nazwiska niemieckiego matematyka, Ludwiga Hessego. Wyznacznik Hessego jest używany przy znajdowaniu ekstremów funkcji wielu zmiennych. Teoria Optymalizacji Metody optymalizacji statycznej Intuicje - Intuicyjnie, gradient jest wektorem, którego zwrot wskazuje kierunek najszybszego wzrostu wartości funkcji, natomiast długość odpowiada wzrostowi tej funkcji na jednostkę długości. Definicja gradientu jako operatora tworzącego pole wektorowe jest pojęciem analizy matematycznej. Jednak często przez gradient rozumie się zmianę wielkości fizycznej spowodowanej zmianą odległości bez specjalnego wyróżniania kierunku. W tym sensie gradient jest używany jako płynna zmiana lub obszar zmiany i oznacza: istnienie płynnej zmiany wielkości fizycznej (stężenia, pH, temperatury, gęstości ładunku elektrycznego) w określonej przestrzeni (powierzchni/objętości), jasności, koloru w grafice, Teoria Optymalizacji Metody optymalizacji statycznej Intuicje - Intuicyjnie, gradient jest wektorem, którego zwrot wskazuje kierunek najszybszego wzrostu wartości funkcji, natomiast długość odpowiada wzrostowi tej funkcji na jednostkę długości. Definicja gradientu jako operatora tworzącego pole wektorowe jest pojęciem analizy matematycznej. Jednak często przez gradient rozumie się zmianę wielkości fizycznej spowodowanej zmianą odległości bez specjalnego wyróżniania kierunku. W tym sensie gradient jest używany jako płynna zmiana lub obszar zmiany i oznacza: istnienie płynnej zmiany wielkości fizycznej (stężenia, pH, temperatury, gęstości ładunku elektrycznego) w określonej przestrzeni (powierzchni/objętości), jasności, koloru w grafice, kierunek wektora gradientu (kierunek największej zmiany), Teoria Optymalizacji Metody optymalizacji statycznej Intuicje - Intuicyjnie, gradient jest wektorem, którego zwrot wskazuje kierunek najszybszego wzrostu wartości funkcji, natomiast długość odpowiada wzrostowi tej funkcji na jednostkę długości. Definicja gradientu jako operatora tworzącego pole wektorowe jest pojęciem analizy matematycznej. Jednak często przez gradient rozumie się zmianę wielkości fizycznej spowodowanej zmianą odległości bez specjalnego wyróżniania kierunku. W tym sensie gradient jest używany jako płynna zmiana lub obszar zmiany i oznacza: istnienie płynnej zmiany wielkości fizycznej (stężenia, pH, temperatury, gęstości ładunku elektrycznego) w określonej przestrzeni (powierzchni/objętości), jasności, koloru w grafice, kierunek wektora gradientu (kierunek największej zmiany), obszar, w którym występuje płynna zmiana. Teoria Optymalizacji Przykład Rysunek: Wektory wskazują gradient zaciemnienia Rozpatrzmy funkcję „stopień zaciemnienia” określającą jasność punktu w zadanym obszarze (każdemu punktowi przyporządkowano liczbę, więc funkcja jest skalarna). Operator gradient przypisuje każdemu punktowi tego obszaru wektor wskazujący kierunek najszybszego wzrostu zaciemnienia obszaru. Wektory przedstawione na grafikach są ilustracją tego pola wektorowego. Metody gradientowe optymalizacji statycznej Metody gradientowe poszukiwania ekstremum : 1 Gradientu prostego Inaczej niż w metodzie bezgradientowej, zamiast szukać minimum wykonywany jest krok o długości e. Metody gradientowe optymalizacji statycznej Metody gradientowe poszukiwania ekstremum : 1 2 Gradientu prostego Najszybszego spadku Inaczej niż w metodzie bezgradientowej, zamiast szukać minimum wykonywany jest krok o długości e. Metody gradientowe optymalizacji statycznej Metody gradientowe poszukiwania ekstremum : Gradientu prostego Najszybszego spadku 3 Gradientów sprzężonych Inaczej niż w metodzie bezgradientowej, zamiast szukać minimum wykonywany jest krok o długości e. 1 2 Metody gradientowe optymalizacji statycznej Warunki początkowe : x0 - arbitralnie wybrany punkt startowy e - początkowa długość skoku β - współczynnik zmniejszenia kroku - wymagana dokładność obliczeń minimum n - liczba zmienych niezależnych Metody gradientowe polegają na wyznaczaniu kolejnego kierunku poszukiwań na podstawie znajomości gradientu funkcji celu, w punkcie osiągniętym w poprzednim kroku. Funkcja celu musi być więc znaną w postaci analitycznej i ograniczoną od dołu funkcją wypukłą klasy C 2 taką, by można ją było przybliżyć formą kwadratową postaci 1 f (x) = a + c T x + (x T Ax) 2 (2) ,w której macierz A jest symetryczna dodatnio określona, o elementach równych drugim pochodnym cząstkowym funkcji f(x). Metoda gradientu prostego Metoda gradientu prostego jest podstawową, choć nie najbardziej efektywną metodą poszukiwania ekstremum. Jej algorytm przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 Przyjąć punkt startowy x0 , długość kroku e, współczynnik redukcji kroku a ¡ 1, dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Metoda gradientu prostego Metoda gradientu prostego jest podstawową, choć nie najbardziej efektywną metodą poszukiwania ekstremum. Jej algorytm przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 2 Przyjąć punkt startowy x0 , długość kroku e, współczynnik redukcji kroku a ¡ 1, dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Metoda gradientu prostego Metoda gradientu prostego jest podstawową, choć nie najbardziej efektywną metodą poszukiwania ekstremum. Jej algorytm przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 2 3 Przyjąć punkt startowy x0 , długość kroku e, współczynnik redukcji kroku a ¡ 1, dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). Metoda gradientu prostego Metoda gradientu prostego jest podstawową, choć nie najbardziej efektywną metodą poszukiwania ekstremum. Jej algorytm przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 2 3 4 Przyjąć punkt startowy x0 , długość kroku e, współczynnik redukcji kroku a ¡ 1, dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). Wykonać z punktu xi krok w wyznaczonym kierunku d o długości e przechodząc do punktu xi+1 = xi + ed, czyli do punktu [xi − eg (xi )]. Metoda gradientu prostego Metoda gradientu prostego jest podstawową, choć nie najbardziej efektywną metodą poszukiwania ekstremum. Jej algorytm przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 2 3 4 5 Przyjąć punkt startowy x0 , długość kroku e, współczynnik redukcji kroku a ¡ 1, dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). Wykonać z punktu xi krok w wyznaczonym kierunku d o długości e przechodząc do punktu xi+1 = xi + ed, czyli do punktu [xi − eg (xi )]. Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Metoda gradientu prostego Metoda gradientu prostego jest podstawową, choć nie najbardziej efektywną metodą poszukiwania ekstremum. Jej algorytm przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 2 3 4 5 6 Przyjąć punkt startowy x0 , długość kroku e, współczynnik redukcji kroku a ¡ 1, dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). Wykonać z punktu xi krok w wyznaczonym kierunku d o długości e przechodząc do punktu xi+1 = xi + ed, czyli do punktu [xi − eg (xi )]. Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Jeśli g T g < , zakończyć postępowanie. W przeciwnym razie przejść do punktu 4. Metoda gradientu prostego Metoda gradientu prostego jest podstawową, choć nie najbardziej efektywną metodą poszukiwania ekstremum. Jej algorytm przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 2 3 4 5 6 7 Przyjąć punkt startowy x0 , długość kroku e, współczynnik redukcji kroku a ¡ 1, dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). Wykonać z punktu xi krok w wyznaczonym kierunku d o długości e przechodząc do punktu xi+1 = xi + ed, czyli do punktu [xi − eg (xi )]. Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Jeśli g T g < , zakończyć postępowanie. W przeciwnym razie przejść do punktu 4. Jeśli f (xi+1 ) < f (xi ), powtórzyć postępowanie dla wyznaczonego punktu xi+1 , czyli przyjąć i=i+1, przejść do punktu 2. Metoda gradientu prostego Metoda gradientu prostego jest podstawową, choć nie najbardziej efektywną metodą poszukiwania ekstremum. Jej algorytm przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 2 3 4 5 6 7 8 Przyjąć punkt startowy x0 , długość kroku e, współczynnik redukcji kroku a ¡ 1, dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). Wykonać z punktu xi krok w wyznaczonym kierunku d o długości e przechodząc do punktu xi+1 = xi + ed, czyli do punktu [xi − eg (xi )]. Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Jeśli g T g < , zakończyć postępowanie. W przeciwnym razie przejść do punktu 4. Jeśli f (xi+1 ) < f (xi ), powtórzyć postępowanie dla wyznaczonego punktu xi+1 , czyli przyjąć i=i+1, przejść do punktu 2. W przypadku przeciwnym cofnąć się do poprzedniego punktu i zmniejszyć krok, czyli przyjąć e=ae i przejść do punktu 4. Metoda najszybszego spadku Metoda najszybszego spadku (NS) jest modyfikacją metody gradientu prostego. Modyfikacja polega na tym, że w metodzie NS po wyznaczeniu kierunku poszukiwań wyznaczane jest minimum funkcji w tym kierunku, a nie przesunięcie ze stałym krokiem. Algorytm metody NS przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Metoda najszybszego spadku Metoda najszybszego spadku (NS) jest modyfikacją metody gradientu prostego. Modyfikacja polega na tym, że w metodzie NS po wyznaczeniu kierunku poszukiwań wyznaczane jest minimum funkcji w tym kierunku, a nie przesunięcie ze stałym krokiem. Algorytm metody NS przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. 2 Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Metoda najszybszego spadku Metoda najszybszego spadku (NS) jest modyfikacją metody gradientu prostego. Modyfikacja polega na tym, że w metodzie NS po wyznaczeniu kierunku poszukiwań wyznaczane jest minimum funkcji w tym kierunku, a nie przesunięcie ze stałym krokiem. Algorytm metody NS przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. 2 Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). 3 Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). Metoda najszybszego spadku Metoda najszybszego spadku (NS) jest modyfikacją metody gradientu prostego. Modyfikacja polega na tym, że w metodzie NS po wyznaczeniu kierunku poszukiwań wyznaczane jest minimum funkcji w tym kierunku, a nie przesunięcie ze stałym krokiem. Algorytm metody NS przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. 2 Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). 3 Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). 4 Wykonać z punktu xi w wyznaczonym kierunku d krok e o takiej wartości, by osiągnąć minimum w tym kierunku, przechodząc do punktu xi+1 = xi + ed. Metoda najszybszego spadku Metoda najszybszego spadku (NS) jest modyfikacją metody gradientu prostego. Modyfikacja polega na tym, że w metodzie NS po wyznaczeniu kierunku poszukiwań wyznaczane jest minimum funkcji w tym kierunku, a nie przesunięcie ze stałym krokiem. Algorytm metody NS przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. 2 Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). 3 Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). 4 Wykonać z punktu xi w wyznaczonym kierunku d krok e o takiej wartości, by osiągnąć minimum w tym kierunku, przechodząc do punktu xi+1 = xi + ed. 5 Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Przyjąć i=i+1. Metoda najszybszego spadku Metoda najszybszego spadku (NS) jest modyfikacją metody gradientu prostego. Modyfikacja polega na tym, że w metodzie NS po wyznaczeniu kierunku poszukiwań wyznaczane jest minimum funkcji w tym kierunku, a nie przesunięcie ze stałym krokiem. Algorytm metody NS przy poszukiwaniu minimum funkcji f(x) jest następujący: 1 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. 2 Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). 3 Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu d = −g (xi ). 4 Wykonać z punktu xi w wyznaczonym kierunku d krok e o takiej wartości, by osiągnąć minimum w tym kierunku, przechodząc do punktu xi+1 = xi + ed. 5 Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Przyjąć i=i+1. 6 Jeśli g T g > , przejść do punktu 2. W przeciwnym razie zakończyć postępowanie. Metoda gradientu sprzężonego Metoda gradientu sprzężonego (GS) jest modyfikacją metody najszybszego spadku. Modyfikacja polega na tym, że w metodzie GS kolejne kierunki poszukiwań są sprzężone do poprzednich względem macierzy A. Z każdego punktu jest wyznaczane minimum funkcji w kierunku. Metoda gradientu sprzężonego Algorytm metody GS przy poszukiwaniu minimum funkcji f(x): 1 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Metoda gradientu sprzężonego Algorytm metody GS przy poszukiwaniu minimum funkcji f(x): 1 2 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Metoda gradientu sprzężonego Algorytm metody GS przy poszukiwaniu minimum funkcji f(x): 1 2 3 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań z1 przeciwny do kierunku gradientu z1 = −g (xi ), czyli z1 = −Ax0 − c. Metoda gradientu sprzężonego Algorytm metody GS przy poszukiwaniu minimum funkcji f(x): 1 2 3 4 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań z1 przeciwny do kierunku gradientu z1 = −g (xi ), czyli z1 = −Ax0 − c. W wyniku minimalizacji f(x) w tym kierunku z równania: z1T [A(x0 + ez1 ) + c] = 0 otrzymuje się wartość kroku e, a następnie punkt x1 = x0 + ez1 . Metoda gradientu sprzężonego Algorytm metody GS przy poszukiwaniu minimum funkcji f(x): 1 2 3 4 5 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań z1 przeciwny do kierunku gradientu z1 = −g (xi ), czyli z1 = −Ax0 − c. W wyniku minimalizacji f(x) w tym kierunku z równania: z1T [A(x0 + ez1 ) + c] = 0 otrzymuje się wartość kroku e, a następnie punkt x1 = x0 + ez1 . Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Przyjąć i=i+1. Metoda gradientu sprzężonego Algorytm metody GS przy poszukiwaniu minimum funkcji f(x): 1 2 3 4 5 6 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań z1 przeciwny do kierunku gradientu z1 = −g (xi ), czyli z1 = −Ax0 − c. W wyniku minimalizacji f(x) w tym kierunku z równania: z1T [A(x0 + ez1 ) + c] = 0 otrzymuje się wartość kroku e, a następnie punkt x1 = x0 + ez1 . Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Przyjąć i=i+1. Wyznaczyć nowy kierunek poszukiwań sprzężony do poprzednich, czyli zi+1 = −g (xi ) + βzi , Metoda gradientu sprzężonego Algorytm metody GS przy poszukiwaniu minimum funkcji f(x): 1 2 3 4 5 6 7 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań z1 przeciwny do kierunku gradientu z1 = −g (xi ), czyli z1 = −Ax0 − c. W wyniku minimalizacji f(x) w tym kierunku z równania: z1T [A(x0 + ez1 ) + c] = 0 otrzymuje się wartość kroku e, a następnie punkt x1 = x0 + ez1 . Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Przyjąć i=i+1. Wyznaczyć nowy kierunek poszukiwań sprzężony do poprzednich, czyli zi+1 = −g (xi ) + βzi , Wykonać z punktu xi w wyznaczonym kierunku zi+1 krok e o takiej wartości, by osiągnąć minimum w tym kierunku, przechodząc do punktu xi+1 = xi + ezi+1 . Metoda gradientu sprzężonego Algorytm metody GS przy poszukiwaniu minimum funkcji f(x): 1 2 3 4 5 6 7 8 Przyjąć punkt startowy x0 , dokładność wyznaczenia ekstremum (zerowania się gradientu) . Przyjąć i=0. Obliczyć w punkcie xi wartość funkcji celu f (xi ) i jej gradientu g (xi ). Wyznaczyć kierunek poszukiwań z1 przeciwny do kierunku gradientu z1 = −g (xi ), czyli z1 = −Ax0 − c. W wyniku minimalizacji f(x) w tym kierunku z równania: z1T [A(x0 + ez1 ) + c] = 0 otrzymuje się wartość kroku e, a następnie punkt x1 = x0 + ez1 . Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie. Przyjąć i=i+1. Wyznaczyć nowy kierunek poszukiwań sprzężony do poprzednich, czyli zi+1 = −g (xi ) + βzi , Wykonać z punktu xi w wyznaczonym kierunku zi+1 krok e o takiej wartości, by osiągnąć minimum w tym kierunku, przechodząc do punktu xi+1 = xi + ezi+1 . Jeśli g T g > , przejść do punktu 4. W przeciwnym razie zakończyć postępowanie. Teoria Optymalizacji Metoda gradientu sprzężonego Inne metody gradientowe - Davidona, Pearsona i Newtona-Raphsona wraz z ich modyfikacjami działają również na zasadzie tworzenia kierunków sprzężonych. Jedynie sposób tworzenia tych kierunków jest nieco odmienny. Kierunki poszukiwań są określane z zależności: zi+1 = −Hi g (xi ) przy czym w każdej z wymienionych metod macierz Hi jest określana inaczej. (3) Gradientowe metody poszukiwania ekstremum II wersja Wykazując zbieżność funkcji i jej gradientu zakłada się, że funkcja celu jest ograniczona od dołu funkcją wypukłą klasy C2 taką, że można ją aproksymować formą kwadratową postaci : 1 f (x) = a + bTx + xTAx 2 (4) przy czym: A - dodatnio określona macierz, której elementami są drugie pochodne cząstkowe funkcji f(x) Gradientowe metody poszukiwania ekstremum Algorytm obliczeń : 1 Obliczanie w punkcie startowym x0 wartość funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Gradientowe metody poszukiwania ekstremum Algorytm obliczeń : 1 2 Obliczanie w punkcie startowym x0 wartość funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Wyznaczanie kierunku poszukiwań ξ = −g0 Gradientowe metody poszukiwania ekstremum Algorytm obliczeń : 1 2 3 Obliczanie w punkcie startowym x0 wartość funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Wyznaczanie kierunku poszukiwań ξ = −g0 Wzdłuż kierunku ξ wykonaj krok o długości e oraz określ współrzędne nowego punktu : xi+1 = xi + eξ przy czym dla pierwszej iteracji xi = x0 Gradientowe metody poszukiwania ekstremum Algorytm obliczeń : 1 2 3 4 Obliczanie w punkcie startowym x0 wartość funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Wyznaczanie kierunku poszukiwań ξ = −g0 Wzdłuż kierunku ξ wykonaj krok o długości e oraz określ współrzędne nowego punktu : xi+1 = xi + eξ przy czym dla pierwszej iteracji xi = x0 Obliczenie w nowym punkcie wartość funkcji F = f (xi+1 ) oraz gradientu g = g (xi+1 ) jeżeli krok był pomyślny F < F0 to powtarzaj od punktu 2 podstawiając g (gradient) w miejsce g0 Gradientowe metody poszukiwania ekstremum Algorytm obliczeń : 1 2 3 4 5 Obliczanie w punkcie startowym x0 wartość funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Wyznaczanie kierunku poszukiwań ξ = −g0 Wzdłuż kierunku ξ wykonaj krok o długości e oraz określ współrzędne nowego punktu : xi+1 = xi + eξ przy czym dla pierwszej iteracji xi = x0 Obliczenie w nowym punkcie wartość funkcji F = f (xi+1 ) oraz gradientu g = g (xi+1 ) jeżeli krok był pomyślny F < F0 to powtarzaj od punktu 2 podstawiając g (gradient) w miejsce g0 Jeżeli nie osiągnięto minimum, należy wrócić do punktu 4 podstawiając: xi = xi+1 − eξ oraz trzeba zmniejszyć krok o β i przejść do punktu 3. Teoria Optymalizacji Gradientowe metody poszukiwania ekstremum Rysunek: Przebieg algorytmu gradientu prostego W tej metodzie zastosowano minimalizację funkcji wzdłuż wyznaczonego kierunku. Gradientowe metody poszukiwania ekstremum Zbieżność metody: Załóżmy, że funkcja celu w pobliżu ekstremum wyraża się przez: f (x) = 12 x T Ax wówczas gradient funkcji wynosi : ∆f (x) = A ∗ x Przesunięcie od i do i+1 można zapisać jako : xi+1 = xi − γ ∗ A ∗ xi lub xi+1 = xi ∗ P1 (A)/P2 (A), gdzie P1 (λ) = 1 − γ ∗ λ λ - wartość własna macierzy A, |det(A − λ)| = 0 Utwórzmy wielomian pierwszego stopnia macierzy A : Q1 (λ) Q1 (λ1 ) = α0 + α1 λ1 = −1 (5) Q1 (λ0 ) = α0 + α1 λ0 = 1 (6) gdzie λ0 i λ1 są najmniejszą i największą wartością własną macierzy A. Gradientowe metody poszukiwania ekstremum Zbieżność metody: Dodatnio określona A ma dodatnie wartości własne. Rozwiązując układ równań otrzymujemy : α0 i α1 α0 = 2 −λn − λ1 , α1 = λn − λ1 λn − λ1 (7) ,więc: Q1 = (λ) = 2λ − (λ1 + λn ) P1 (A) Q1 (A) f (xi+1 ) = f [ xi ] ¬ f [ xi ] λn − λ1 P1 (0) Q1 (0) Zastępując xi przez xi = n X aij vj (8) (9) j=1 gdzie vi oznacza wektory odpowiadające wartościom własnym λj dla j = 1, 2, 3, ... Gradientowe metody poszukiwania ekstremum Zbieżność metody: Korzystając z formy kwadratowej (funkcji celu): f (xi+1 ) ¬ f [ 1 Q1 (A) T Q1 (A) Q1 (A) xi ] = [ xi ] A xi Q1 (0) 2 Q1 (0) Q1 (0) (10) skąd: f (xi+1 ) ¬ 1 1 X 1X (ai,j )2 Q1 (λj )2 λj ¬ (ai,j )2 λj 2 2 Q1 (0) 2 j (11) j ponieważ z definicji |Qi (λj )| ¬ 1, j=1,2,...,n więc ostatecznie : f (xi+1 ) ¬ 1 λn − λ1 2 f (x1 ) ¬ ( ) f (xi ) Q1 (0)2 λn + λ1 (12) II metoda Informacje wejściowe : x0 - arbitralnie wybrany punkt startowy e - początkowa długość kroku ej - wymagana dokładność obliczeń w aktualnie występującym kierunku poszukiwań e0 - wymagana dokładność obliczeń minimum globalnego n - liczba zmiennych niezależnych II metoda Algorytm obliczeń : 1 Oblicz w punkcie startowym x0 wartości funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) II metoda Algorytm obliczeń : 1 2 Oblicz w punkcie startowym x0 wartości funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Wyznacz kierunek poszukiwań ξi = −g II metoda Algorytm obliczeń : 1 2 3 Oblicz w punkcie startowym x0 wartości funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Wyznacz kierunek poszukiwań ξi = −g Wzdłuż kierunku ξi określa λi minimalizujące f (xi−1 + ξi λi ) oraz współrzędne nowego punktu xi = xi−1 + ξi λi II metoda Algorytm obliczeń : 1 2 3 4 Oblicz w punkcie startowym x0 wartości funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Wyznacz kierunek poszukiwań ξi = −g Wzdłuż kierunku ξi określa λi minimalizujące f (xi−1 + ξi λi ) oraz współrzędne nowego punktu xi = xi−1 + ξi λi Oblicz w nowym punkcie wartość gradientu g = g (xi+1 ) II metoda Algorytm obliczeń : 1 2 3 4 5 Oblicz w punkcie startowym x0 wartości funkcji celu F0 = f (x0 ) oraz jej gradientu g0 = g (x0 ) Wyznacz kierunek poszukiwań ξi = −g Wzdłuż kierunku ξi określa λi minimalizujące f (xi−1 + ξi λi ) oraz współrzędne nowego punktu xi = xi−1 + ξi λi Oblicz w nowym punkcie wartość gradientu g = g (xi+1 ) Sprawdź, czy osiągnięto minimum. Jeżeli nie, wróć do punktu 2. II metoda Algorytm obliczeń : Rysunek: Przebieg algorytmu najszybszego spadku II metoda Algorytm obliczeń : Metoda ta została opracowana przez Hestenesa i Stiefela w 1952 roku, służyła do rozwiązywania układów równań liniowych. Kierunki poszukiwań tworzone są tak, aby każdy kolejny był sprzężony do wszystkich poprzednich. Dwa kierunki ξi oraz ξj są wzajemnie sprzężone względem dodatnio określonej macierzy A, jeżeli ξi Aξj = 0 dla i <> j kierunki wzajemnie sprzężone są liniowo niezależne. (13) II metoda Lemat Jeżeli punkt xi+1 został osiągnięty w rezultacie minimalizacji funkcji f (x) = a + b T ∗ x + 1/2 ∗ x T ∗ A ∗ x wzdłuż wzajemnie sprzężonych kierunków ξ1 , ξ2 , ..., ξi to (ξs )T ∆f (xi+j ) = 0 dla s = 1, 2, ...i II metoda Dowód ∆f (xi+1 ) = Axi+1 +b = A(xs+1 + i X λj ξj )+b = ∆f (xs+1 )+ j=s+1 i X λj Aξj j=s+1 dla s = 0, 1, 2, ..., i − 1, ale: (ξs )T ∆f (xi+1 ) = (ξs )T ∆f (xs+1 ) + i X j=s+1 λj (ξs )T Aξj (14) II metoda Dowód c.b.d.o. gdyż: (ξs )T ∆f (xs+1 ) = 0 (15) z warunku minimalizacji funkcji wzdłuż kierunku ξ i X λ(ξs )T Aξj = 0 (16) j=s+1 z warunku sprzężenia kierunków. Po n iteracjach ∆f (xn+1 ) będzie ortogonalny do n liniowo niezależnych wektorów, musi więc równać się zeru. II metoda Tworzenie kierunków sprzężonych : pierwszy krok - minus gradient : ξ1 = −∆f (x1 ) = −A ∗ x1 − b minimalizacja f(x) wzdłuż tego kierunku : (ξs )T ∗ [A(x1 + λ1 ∗ ξ1 + b] = 0 daje wartość i można określić punkt x2 . x2 = x1 + λ 1 ∗ ξ 1 W drugim kroku nowy kierunek w punkcie x2 jest wyznaczany według reguły : ξ2 = −∆f (x2 ) + β2 ∗ ξ1 a współczynnik β2 jest tak dobierany aby kierunki ξ2 , ξ1 były sprzężone. II metoda Tworzenie kierunków sprzężonych : 0 = (ξ1 )T Aξ2 = −(ξ1 )T A∆f (x2 ) + β2 (ξ1 )T Aξ1 = = −(x2 − x1 )T A(∆f (x2 ) − β2 ξ1 ) = = −(∆f (x2 ) − ∆f (x1 ))T (∆f (x2 ) − β2 ξ1 ) β2 = ∆f (x2 )T ∆f (x2 ) ∆f (x1 )T ∆f (x1 ) (17) (18) ,gdyż: ∆f (x1 )T ∆f (x1 ) = 0 Podobnie w i - tym kroku : ξi = ∆f (xi ) + βi ξi−1 , βi = ∆f (xi )T ∆f (xi ) ∆f (xi−1 )T ∆f (xi−1 ) (19) III metoda Informacje wejściowe : x0 - arbitralnie wybrany punkt startowy e - początkowa długość kroku ej - wymagana dokładność obliczeń w aktualnie występującym kierunku poszukiwań e0 - wymagana dokładność obliczeń minimum globalnego n - liczba zmiennych niezależnych III metoda Algorytm obliczeń : 1 Obliczenie f (x0 ) oraz ∆f (x0 ) III metoda Algorytm obliczeń : 1 2 Obliczenie f (x0 ) oraz ∆f (x0 ) Wyznaczenie kierunku ξi = −∆f III metoda Algorytm obliczeń : 1 2 3 Obliczenie f (x0 ) oraz ∆f (x0 ) Wyznaczenie kierunku ξi = −∆f Wzdłuż ξ okr. λ minimalizujące f (xi−1 + λi ∗ ξi ) oraz xi = xi−1 + λi ∗ ξi III metoda Algorytm obliczeń : 1 2 3 4 Obliczenie f (x0 ) oraz ∆f (x0 ) Wyznaczenie kierunku ξi = −∆f Wzdłuż ξ okr. λ minimalizujące f (xi−1 + λi ∗ ξi ) oraz xi = xi−1 + λi ∗ ξi Obliczenie ∆f (xi ) III metoda Algorytm obliczeń : 1 2 3 4 5 Obliczenie f (x0 ) oraz ∆f (x0 ) Wyznaczenie kierunku ξi = −∆f Wzdłuż ξ okr. λ minimalizujące f (xi−1 + λi ∗ ξi ) oraz xi = xi−1 + λi ∗ ξi Obliczenie ∆f (xi ) Zbadanie, czy minimum, jeżeli tak to STOP βi = ∆f (xi )T ∆f (xi ) ∆f (xi−1 )T ∆f (xi−1 ) (20) III metoda Algorytm obliczeń : 1 2 3 4 5 Obliczenie f (x0 ) oraz ∆f (x0 ) Wyznaczenie kierunku ξi = −∆f Wzdłuż ξ okr. λ minimalizujące f (xi−1 + λi ∗ ξi ) oraz xi = xi−1 + λi ∗ ξi Obliczenie ∆f (xi ) Zbadanie, czy minimum, jeżeli tak to STOP βi = 6 ξi = ∆f (xi ) + βi ∗ ξi−1 ∆f (xi )T ∆f (xi ) ∆f (xi−1 )T ∆f (xi−1 ) (20) III metoda Algorytm obliczeń : 1 2 3 4 5 Obliczenie f (x0 ) oraz ∆f (x0 ) Wyznaczenie kierunku ξi = −∆f Wzdłuż ξ okr. λ minimalizujące f (xi−1 + λi ∗ ξi ) oraz xi = xi−1 + λi ∗ ξi Obliczenie ∆f (xi ) Zbadanie, czy minimum, jeżeli tak to STOP βi = 6 7 ∆f (xi )T ∆f (xi ) ∆f (xi−1 )T ∆f (xi−1 ) (20) ξi = ∆f (xi ) + βi ∗ ξi−1 Podstawienie xi w miejsce xi−1 oraz sprawdzenie, czy wykonano n iteracji. Jeżeli nie to powrót do punktu 3 i zwiększenie i o 1. Jeżeli wykonano n iteracji, podstawić ∆f (xi ) w miejsce ∆f (x0 ) i wrócić do punktu 2.