Das BFGS-Verfahren neu

 
  • Das BFGS-Verfahren ist eine sogenannte quasi Newton-Methode zur Lösung unrestringierter Minimierungsaufgaben unter Verwendung der ersten Ableitungen. Das heißt, zu einer Funktion F in C1 ist 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 und einer positiv definiten Matrix A0 wird iteriert: xk+1 = xk - sigmakdk.
    Hierbei wird dk als die Lösung der Gleichung
    Akdk = grad(F(xk))
    bestimmt. Ak+1 wird durch die BFGS-Update-Formel bestimmt:
    Ak+1 = Ak+(ykykT)/(ykTsk)- AkskskTAk/(skTAksk)
    Ak+1 erfüllt die sog. Sekantenrelation
    Ak+1sk = yk,
    mit
    sk=xk+1-xk, yk= grad(F(xk+1))- grad(F(xk))
    Das Gleichungssystem für dk wird mit der Cholesky-Zerlegung von Ak gelöst, wobei diese von Schritt zu Schritt aufdatiert wird. 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, für kappa gibt es den Defaultwert 0.9.
 

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 und den Parameter im Powell-Wolfe-Abstiegstest.
  • 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 der Index der 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 den berechneten Optimalwert gesetzt.
 

Die Ausgaben

 
  • CPU-Zeit.
  • Den Grund des Rechnungsabbruchs.
  • Die berechnenten Optimalwerte f(xopt) und x(1)opt,...,x(n)opt.
  • Die Anzahl der Funktionsaufrufe.
  • 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!

20.07.2016