Nichtlineare Optimierung 3. Rechnerübungsblatt
Fachbereich Mathematik WS 2011-2012
Prof. Dr. Stefan Ulbrich 9.12.2011
Hannes Meinlschmidt
Rechnerübung
Aufgabe R1 (Inexaktes CG-Newton-Verfahren)
(a) Implementieren Sie das allgemeine Abstiegsverfahren (Algorithmus 3) in der Version von Aufgabe G1, Übungsblatt 7 (Algorithmus 1 dort) inmatlab, bestimmen Sie also die Suchrichtung mit dem inexakten Newton-CG-Verfahren und die Schrittweite nach der Armijo-Regel. Verwenden Sie als Konstanten
α=10−3 und ν=10−2.
Nutzen Sie zur Bestimmung der Schrittweiten Ihre bereits programmierte Funktionarmijovon der ersten Rech- nerübung. Beachten Sie hierbei, dass die Schrittweiten-Bestimmung nach Armijo auch hier mitγ∈(0, 0.5)statt γ∈(0, 1)aufgerufen werden soll. Der Funktionskopf des Verfahrens sollte folgendermaßen aussehen:
function [xn] = cgnewt(x0,fgH,tol,maxit),
wobei wie immerx0der Startpunkt,fgHeine Funktion, die Funktionswert, Gradient und Hessematrix zurückliefert, toleine Abbruchtoleranz undmaxitdie maximale Anzahl durchzuführender Iterationen sein soll.
In jeder Iteration des Abstiegsverfahrens sollte die aktuelle Iteration, der Funktionswert, die Norm des Gradienten und die Schrittweite ausgegeben werden. Beim CG-Verfahren zur Bestimmung der Suchrichtung soll die Anzahl der benötigten Iterationen und das Restresiduum der Newtongleichung ausgegeben werden.
(b) Testen Sie Ihr Programm an den bereits bekannten Funktionen
• f1(x1,x2) =x12+αx22, mit verschiedenenα≥1(z.B. mitα=10und Startwertx0= (10, 20)),
• der Rosenbrock-Funktion f2(x1,x2) =100(x2−x21)2+ (1−x1)2und verschiedenen Startwertenx06= (1, 1), sowie der Funktion
• f5(x1,x2) =x14−2x22+x24mit Startwertx0= (0.5, 0.5).
Als weiterer Test ist zudem ein etwas komplizierteres Problem verfügbar, dasMinimalflächenproblem:
minz
Z
Ω
p1+k∇z(x)k2dx, z=zbauf∂Ω.
Hier wird eine Funktionz:Ω→Rgesucht, die auf dem Rand∂Ωeines gegebenen GebietesΩmit einer gegebenen Funktionzbübereinstimmt.
Dieses Problem wird diskretisiert auf einem 100×100-Gitter berechnet. Um eine Lösung berechnen zu las- sen, laden Sie die Datei minsurf.zipvon der Veranstaltungshomepage herunter und kopieren Sie die Dateien runminsurfcgnewt.mund Fminsurf.min das Verzeichnis, in der auch die Funktioncgnewtliegt. Rufen Sie dort dannrunminsurfcgnewtinmatlabauf.
Zum Vergleich des CG- mit dem üblichen Newton-Verfahren, wie in der zweiten Rechnerübung implementiert, passen Sie den Funktionskopf Ihres dort programmierten Newton-Verfahrens auf folgendes an:
function [xn] = newt(x,fgH,tol,maxit).
Entpacken Sie auch die Datei runminsurfnewt.m aus dem Archiv minsurf.zip ins selbe Verzeichnis wie Ihr Newton-Verfahren, und rufen Sie die Funktion in Matlab auf.
(c) Vergleichen Sie die Ergebnisse, die Anzahl der Iterationen und die Laufzeit des Newton-CG-Verfahrens mit dem globalisierten Newton-Verfahren vom zweiten Rechnerübungsblatt.
Hinweis:Verwenden Sie hier diematlab-Befehletic,tocundcputime.
1
Algorithmus 1: Globalisiertes BFGS-Verfahren
Wähleγ∈(0, 0.5)undθ∈(γ, 1). Wähle einen Startpunktx0∈Rnund eine symmetrische, positiv definite Matrix
1
B0=H0−1∈Rn×n; fork=0, 1, . . . :do
2
if∇f(xk) =0then
3
STOP mit Ergebnisxk;
4
end
5
Berechnesk=−Bk∇f(xk);
6
Bestimme eine Schrittweiteσk>0nach der Powell-Wolfe-Regel;
7
Setzexk+1=xk+σksk;
8
BerechneBk+1=Hk−1+1nach dem inversen BFGS-Update
9
Bk+1=Bk+(dk−Bkyk)dkT+dk(dk−Bkyk)T
ykTdk −(dk−Bkyk)Tyk (ykTdk)2 dkdkT, mitdk=xk+1−xkund yk=∇f(xk+1)− ∇f(xk)(siehe auch Skript);
end
10
Aufgabe R2 (Globalisiertes BFGS-Verfahren)
Implementieren Sie das globalisierte BFGS-Verfahren (Algorithmus 1) inmatlab.
Wählen Sie
γ=0.001, θ=0.9 und H−10 =I,
und verwenden Sie im Algorithmus, wie in den vorigen Rechnerübungen gelernt, eine relaxierte Abbruchbedingung an die Norm des Gradienten. Verwenden Sie die Funktion zur Bestimmung der Powell-Wolfe-Schrittweite vom zweiten Rechnerübungsblatt.
Testen Sie Ihr Verfahren an den Funktionen f1 und f2 aus der vorigen Aufgabe. Vergleichen Sie auch die Anzahl der Iterationen und die Laufzeit des BFGS-Algorithmus mit dem globalisierten- und dem CG-Newton-Verfahren für diese Funktionen.
Hausübung
Aufgabe H1 (Charakterisierung der Lösung des TR-Problems) (4 Punkte) SeiH∈Rn,nsymmetrisch undc∈Rn. Für die quadratische Funktionq:Rn→R,
q(s) =cTs+1 2sTHs, betrachten wir für∆>0das Trust-Region-Problem
minq(s) s.t.ksk2≤∆. (TP)
Zeigen Sie:
(a) Das Trust-Region-Problem (TP) besitzt eine Lösung.
(b) Falls für ein¯s∈Rneinλ≥0existiert, so dass die Bedingungen i. (H+λI)¯s=−c,
ii. (H+λI)positiv semidefinit,
iii. (k¯sk2−∆)λ=0, d.h. es gilt entwederk¯sk2= ∆oderk¯sk2<∆undλ=0, erfüllt sind, so ist¯seine Lösung des Trust-Region-Problems (TP).
Hinweis:Betrachten Sie als Hilfe die Funktion˜q(s):=cTs+12sT(H+λI)s=q(s) +λ2ksk22.
Bemerkung:Wir werden noch sehen, dass die Bedingungen unter (b) tatsächlich auch notwendige Optimalitätsbedingun- gen sind.
Aufgabe H2 (Lösen des TR-Problems) (6 Punkte)
Wir betrachten nochmals das Problem TP aus Aufgabe H1, mit den gegebenen Werten∆ =p 2, c=
1
−1
und H= 0 1
1 0
.
2
(a) Geben Sie die notwendigen und hinreichenden Optimalitätsbedingungen aus H1 konkret an.
(b) Berechnen Sies(λ):=−(H+λI)−1c, wobeiλ >max{0,−λmin(H)}undp(λ):=ks(λ)k2.
(c) Bestimmen Sie die Optimallösung des Trust-Region-Problems. Zeichen Sie die Funktionenp(λ)−∆und p(λ)1 −∆1 als Funktionen inλauf einem geeigneten Intervall. Was fällt Ihnen auf?
Aufgabe H3 (Beispiel zu Trust-Region-Modellen) (4 Punkte)
Sei f :R2→Rgegeben durch einen kleinen Bruder der Rosenbrock-Funktion, nämlich
f(x1,x2) =10(x2−x21)2+ (1−x1)2. Das quadratische Modell dieser Funktion ist gegeben durch
q(s):=f(x) +∇f(x)Ts+1
2sT∇2f(x)s.
Zeichnen Sie jeweils die Höhenlinien des quadratischen Modells im Punkt x1 = (0,−1)T und x2= (0, 0.5)T (z.B. mit matlab) und fügen Sie die Trust Regions, die durch∆∈ {0.5, 1, 1.5, 2}gegeben sind, ein. Geben Sie anhand der Bilder an, wo sich die Lösung des jeweiligen TR-Problems befindet. Vergleichen Sie auch die tatsächlichen Höhenlinien von f und die Trust Regions umx2.
3