Metoda Newtona (optymalizacja)


Metoda Newtona (optymalizacja) w encyklopedii

Z Wikipedii, wolnej encyklopedii Przejdź do nawigacji Przejdź do wyszukiwania

Metoda Newtonaalgorytm numeryczny mający na celu znalezienie minimum zadanej funkcji celu.

Metodą Newtona nazywana jest również metoda rozwiązywanie równań nieliniowych. Oba pojęcia pomimo takiej samej nazwy odnoszą się do dwóch różnego rodzaju zadań numerycznych.

Spis treści

Algorytm | edytuj kod

Zadanie | edytuj kod

Metoda Newtona jest iteracyjnym algorytmem wyszukiwania minimum zadanej funkcji celu f {\displaystyle f}

f : D R , {\displaystyle f\colon D\mapsto \mathbb {R} ,}

gdzie D R n . {\displaystyle D\subset \mathbb {R} ^{n}.}

Założenia dla metody są następujące:

  • f C 2 {\displaystyle f\in \mathrm {C} ^{2}} (funkcja jest ciągła i podwójnie różniczkowalna),
  • f {\displaystyle f} jest ściśle wypukła w badanej dziedzinie.

Opis | edytuj kod

Porównanie metody najszybszego spadku (linia zielona) z metodą Newtona (linia czerwona). Na rysunku widać linie poszukiwań minimum dla zadanej funkcji celu. Metoda Newtona używa informacji o krzywiźnie w celu zoptymalizowania ścieżki poszukiwań.

Na samym początku algorytmu wybierany jest punkt startowy x 0 D . {\displaystyle \mathbf {x_{0}} \in D.} W punkcie tym obliczany jest kierunek poszukiwań d k D . {\displaystyle \mathbf {d_{k}} \in D.} Punkt w następnym kroku obliczany jest według wzoru

x k + 1 = x k + d k , {\displaystyle \mathbf {x_{k+1}} =\mathbf {x_{k}} +\mathbf {d_{k}} ,}

jeśli obliczony punkt nie spełni warunku stopu algorytmu, całe postępowanie jest powtarzane.

Do obliczenia kierunku poszukiwań w metodzie Newtona wykorzystywane jest rozwinięcie Taylora funkcji celu względem danego punktu x {\displaystyle \mathbf {x} }

f ( x + δ ) = f ( x ) + f ( x ) T δ + 1 2 δ T 2 f ( x ) δ + O ( δ 2 ) , {\displaystyle f(\mathbf {x} +\delta )=f(\mathbf {x} )+\nabla f(\mathbf {x} )^{T}\delta +{\frac {1}{2}}\delta ^{T}\nabla ^{2}f(\mathbf {x} )\delta +{\mathcal {O}}(\delta ^{2}),}

gdzie f ( x ) {\displaystyle \nabla f(\mathbf {x} )} jest gradientem funkcji, 2 f ( x ) {\displaystyle \nabla ^{2}f(\mathbf {x} )} jest macierzą Hessego, zaś O ( δ 2 ) {\displaystyle {\mathcal {O}}(\delta ^{2})} jest resztą o wielkości rzędu δ 2 . {\displaystyle \delta ^{2}.}

Funkcję celu można zatem przybliżyć przez aproksymację kwadratową F k {\displaystyle F_{k}} względem punktu x k {\displaystyle \mathbf {x_{k}} }

F k ( δ ) = f ( x k ) + f ( x k ) T δ + 1 2 δ T 2 f ( x k ) δ , {\displaystyle F_{k}(\delta )=f(\mathbf {x_{k}} )+\nabla f(\mathbf {x_{k}} )^{T}\delta +{\frac {1}{2}}\delta ^{T}\nabla ^{2}f(\mathbf {x_{k}} )\delta ,}

kierunek d k {\displaystyle \mathbf {d_{k}} } jest tak dobrany aby zminimalizować funkcję F k , {\displaystyle F_{k},} tzn.

d k = arg min δ F k ( δ ) = ( 2 f ( x k ) ) 1 f ( x k ) . {\displaystyle \mathbf {d_{k}} =\arg \min _{\delta }F_{k}(\delta )=-\left(\nabla ^{2}f(\mathbf {x_{k}} )\right)^{-1}\cdot \nabla f(\mathbf {x_{k}} ).}

Rekurencyjny wzór metody Newtona ma zatem postać

x k + 1 = x k ( 2 f ( x k ) ) 1 f ( x k ) . {\displaystyle \mathbf {x_{k+1}} =\mathbf {x_{k}} -\left(\nabla ^{2}f(\mathbf {x_{k}} )\right)^{-1}\cdot \nabla f(\mathbf {x_{k}} ).}

Algorytm można zapisać:

  1. Wybierz punkt startowy x 0 . {\displaystyle \mathbf {x_{0}} .}
  2. d k = ( 2 f ( x k ) ) 1 f ( x k ) . {\displaystyle \mathbf {d_{k}} =-\left(\nabla ^{2}f(\mathbf {x_{k}} )\right)^{-1}\cdot \nabla f(\mathbf {x_{k}} ).}
  3. x k + 1 = x k + d k . {\displaystyle \mathbf {x_{k+1}} =\mathbf {x_{k}} +\mathbf {d_{k}} .}
  4. Sprawdź kryterium stopu, jeśli nie jest spełniony wykonaj ponownie krok 2.

Modyfikacja Newtona-Raphsona | edytuj kod

Istnieje modyfikacja optymalizacyjnej metody Newtona, nazwana metodą Newtona-Raphsona polegającą na uwzględnieniu w kolejnych krokach minimalizacji kierunkowej, przez co zwiększony zostaje obszar zbieżności metody.

Algorytm w tym przypadku polega, analogicznie jak w pierwszej metodzie, na wyborze punktu startowego. Dla danego punktu obliczany jest kierunek poszukiwań oraz dokonywana jest na jego podstawie minimalizacja kierunkowa, tzn. obliczana jest taka wartość α k , {\displaystyle \alpha _{k},} że

f ( x k + α k d k ) = min α > 0 f ( x k + α d k ) . {\displaystyle f(\mathbf {x_{k}} +\alpha _{k}\mathbf {d_{k}} )=\min _{\alpha >0}f(\mathbf {x_{k}} +\alpha \mathbf {d_{k}} ).}

Kolejny krok obliczany jest ze wzoru

x k + 1 = x k + α k d k {\displaystyle \mathbf {x_{k+1}} =\mathbf {x_{k}} +\alpha _{k}\mathbf {d_{k}} }

Algorytm można zapisać:

  1. Wybierz punkt startowy x 0 . {\displaystyle \mathbf {x_{0}} .}
  2. d k = ( 2 f ( x k ) ) 1 f ( x k ) . {\displaystyle \mathbf {d_{k}} =-\left(\nabla ^{2}f(\mathbf {x_{k}} )\right)^{-1}\cdot \nabla f(\mathbf {x_{k}} ).}
  3. dokonaj minimalizacji f ( x k + α d k ) {\displaystyle f(\mathbf {x_{k}} +\alpha \mathbf {d_{k}} )} względem α . {\displaystyle \alpha .}
  4. x k + 1 = x k + α k d k . {\displaystyle \mathbf {x_{k+1}} =\mathbf {x_{k}} +\alpha _{k}\mathbf {d_{k}} .}
  5. Sprawdź kryterium stopu, jeśli nie jest spełniony – wykonaj ponownie krok 2.

Minimalizacja kierunkowa może być dokonana przez dowolną numeryczną metodę optymalizacji jednowymiarowej. Przykładowymi algorytmami mogą być: metoda złotego podziału, metoda dychotomii, metoda punktu środkowego.

Implementacja | edytuj kod

Przy implementacji metody Newtona, przy określaniu kierunku poszukiwań d k , {\displaystyle \mathbf {d_{k}} ,} zamiast obliczania odwrotności hesjanu ( 2 f ( x k ) ) 1 , {\displaystyle \left(\nabla ^{2}f(\mathbf {x_{k}} )\right)^{-1},} warto skorzystać z numerycznych metod rozwiązywania układów równań liniowych

2 f ( x k ) d k = f ( x k ) {\displaystyle \nabla ^{2}f(\mathbf {x_{k}} )\cdot \mathbf {d_{k}} =-\nabla f(\mathbf {x_{k}} )}

w celu obliczenia wartości wektora d k . {\displaystyle \mathbf {d_{k}} .}

Kryterium stopu | edytuj kod

W celu określenia, czy punkt w danym kroku dostatecznie dobrze przybliża minimum funkcji celu w metodzie Newtona, można użyć następujących kryteriów stopu (dla zadanej precyzji ϵ {\displaystyle \epsilon } oraz normy {\displaystyle \|{\cdot }\|} )

  • f ( x k ) ϵ {\displaystyle \|\nabla f(\mathbf {x_{k}} )\|\leqslant \epsilon } (test stacjonarności),
  • x k + 1 x k ϵ . {\displaystyle \|\mathbf {x_{k+1}} -\mathbf {x_{k}} \|\leqslant \epsilon .}

Zbieżność | edytuj kod

Metoda Newtona jest metodą o zbieżności kwadratowej. Oznacza to, iż przy spełnieniu założeń metody, odległości pomiędzy kolejnymi przybliżeniami a minimum funkcji x {\displaystyle \mathbf {x} ^{*}} maleją kwadratowo

x x k + 1 c x x k 2 . {\displaystyle \|\mathbf {x} ^{*}-\mathbf {x_{k+1}} \|\leqslant c\|\mathbf {x} ^{*}-\mathbf {x_{k}} \|^{2}.}

Warto wspomnieć, iż metoda Newtona dla funkcji kwadratowych znajduje minimum już w pierwszym kroku – wynika to z faktu iż w metodzie funkcja celu jest lokalnie aproksymowana właśnie funkcją kwadratową.

Optymalizacja jednowymiarowa | edytuj kod

Szczególnym przypadkiem metody Newtona jest jej jednowymiarowa wersja, która może być skutecznym sposobem minimalizacji kierunkowej. Zadanie numeryczne polega w takim przypadku na znalezieniu minimum jednowymiarowej funkcji celu f {\displaystyle f}

f : R D R . {\displaystyle f\colon \mathbb {R} \supset D\mapsto \mathbb {R} .}

Funkcja f {\displaystyle f} musi być podwójnie różniczkowalna i ściśle wypukła w badanej dziedzinie.

Wzór rekurencyjny dla metody upraszcza się do postaci

x k + 1 = x k f ( x k ) f ( x k ) , {\displaystyle x_{k+1}=x_{k}-{\frac {f'(x_{k})}{f''(x_{k})}},}

gdzie f {\displaystyle f'} oraz f {\displaystyle f''} to kolejne pochodne funkcji f . {\displaystyle f.}

Zobacz też | edytuj kod

Bibliografia | edytuj kod

  • Fortuna Z., Macukow B., Wąsowski J.: Metody numeryczne, Wydawnictwa Naukowo-Techniczne, 2006.
  • Stachurski A., Wierzbicki A.: Podstawy optymalizacji, Oficyna Wydawnicza PW, 1999.

Linki zewnętrzne | edytuj kod

Na podstawie artykułu: "Metoda Newtona (optymalizacja)" pochodzącego z Wikipedii
OryginałEdytujHistoria i autorzy