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.

Podobne dokumenty