Regularisiertes Newton-Verfahren

 
  • Das Newton-Verfahren zur Lösung der Gleichung
    grad ( F(x) ) = 0 kann so modifiziert werden, daß es geeignet wird, unrestringierte Minimierungsaufgaben mit schlechten Startwerten zu lösen. Zu einer Funktion F in C1 ist also ein xopt gesucht, für das F(xopt) <= F(x) für alle x aus einer Umgebung von xopt gilt.
  • Ausgehend von einem Startvektor x0 wird iteriert:
    xk+1 = xk + sigmakdk.
    Hierbei wird dk als die Lösung des Gleichungssystems
    (Hesse(F(xk)) + gamma*L*LT)dk = -grad(F(xk))
    bestimmt. Der Regularisierungsparameter gamma bewirkt, daß die Eigenwerte des Diagonalteils D der Bunch-Parlett-Zerlegung der Hesse-Matrix alle positiv sind. L ist dabei der Linksdreiecksfaktor in
    P*H*PT = L*D*LT (P Permutationsmatrix)
    Die Schrittweite sigmak wird hier mit dem Schrittweitenverfahren von Albaali und Fletcher berechnet. Dies ist ein Einschachtelungsverfahren zur Erfüllung der strengen Powell-Wolfe-Abstiegskriterien:
    |grad F(x_next)'d| <= kappa*|grad F(x)'d|
    F(x)-F(x_next) >= sigma*delta*|grad F(x)'d|.
    Hier ist stets delta=0.01, während man kappa wählen kann. Defaultwert ist kappa=0.9. kappa darf nicht kleiner als delta=0.01 gewählt werden.
  • Die Hessematrix (Matrix der zweiten Ableitungen) und der Gradient von F(x) werden duch numerische Differentiation sehr hoher Genauigkeit bestimmt, was für größeres n einen erheblichen Aufwand bedeutet. (6n(n+1) skalare Funktionswerte pro Schritt, der Gradient wird praktisch auf Maschinengenauigkeit approximiert.)
  • Da als erste Schrittweite stets sigma=1 getestet wird, konvergiert das Verfahren bei "richtiger" Einstellung der Parameter global und zugleich lokal quadratisch.
 

Die Eingaben

 
  • Sie haben die Wahl zwischen 14 vorgegebenen Funktionen, zu denen Sie auch eine genauere Beschreibung nachlesen können. Oder Sie geben eine eigene Funktion f, abhängig von n Variablen x(1),...,x(n), und die Startwerte zu diesen Variablen an.
  • Sie können entweder Standardabbruchkriterien wählen oder eigene Kriterien angeben. Letzteres bedeutet dann noch die Angabe von Abbruchtoleranzen für den Gradienten und die Änderung in x, den Wert für kappa und einen Regularisierungswert für die Hessematrix. (Gefordert wird, daß die Konditionszahl des Diagonalteils D der Bunch-Parlett-Zerlegung kleiner als 1/regul ist.) Ist regul zu klein, so kann die Berechnung der Abstiegsrichtung wegen der Rundungsfehler versagen, ist es zu groß, dann wird die schnelle Konvergenz des Verfahrens zerstört weil bei Regularisierung der Hessematrix die quadratische Konvergenz verlorengeht.
  • Für die festeingestellten Funktionen ist noch eine Angabe der Startwerte der Variablen möglich, wobei Sie auch hier eine Standardinitialisierung wählen können. Sie finden die jeweilige Anzahl n der Variablen bei den Kurzbeschreibungen oben im Eingabeformular.
  • Des weiteren haben Sie die Wahl, ob Sie einen Höhenlinienplot als Ausgabe möchten. Wenn ja, dann wird noch die Indices der beiden Variablen, bezüglich derer das Bild geplottet werden soll, sowie entsprechende Intervallangaben benötigt. Bei der Berechnung der Höhenlinien werden die anderen Variablen auf ihren berechneten Optimalwert gesetzt. Achtung : Die Erzeugung der Graphik dauert etwas !
 

Die Ausgaben

 
  • CPU-Zeit.
  • Den Grund des Rechnungsabbruchs.
  • Die berechneten Optimalwerte f(xopt) und x(1)opt,...,x(n)opt.
  • Die Anzahl der Funktionsaufrufe, den Wert des letzten Regularisierungsshifts und die Frobeniuskonditionszahl der Hesse-Matrix.
  • Zwei logarithmische Plots des Fehlers f - fopt sowie der Norm des Gradienten von f.
  • Und den Höhenlinienplot, falls Sie diesen gewünscht hatten.
 

Das Eingabeformular

 
 

Zurück: Unrestringierte Minimierung

 
Back to the top!

26.01.2009