4. Ãbung zu âNichtlineare Optimierung: Grundlagenâ (WS 2009 ... - M1
4. Ãbung zu âNichtlineare Optimierung: Grundlagenâ (WS 2009 ... - M1
4. Ãbung zu âNichtlineare Optimierung: Grundlagenâ (WS 2009 ... - M1
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Technische Universität München<br />
Zentrum Mathematik, <strong>M1</strong><br />
Prof. Dr. Boris Vexler<br />
Dr. Dominik Meidner<br />
<strong>4.</strong> Übung <strong>zu</strong> „Nichtlineare <strong>Optimierung</strong>: Grundlagen“ (<strong>WS</strong> <strong>2009</strong>/10)<br />
Aufgabe <strong>4.</strong>1 (8 Punkte: -1/0/1 Punkte für falsche/keine/richtige Antwort): In der<br />
Gesamtwertung dieser Aufgabe können keine negativen Punkte erzielt werden, d. h. bei einer<br />
negativen Gesamtpunktzahl wird diese Aufgabe mit null Punkten bewertet.<br />
In dieser Aufgabe sei f : R n → R eine stetig differenzierbare Funktion.<br />
a) Es sei x 0 ∈ R n ein Punkt mit ∇f(x 0 ) ≠ 0. Weil der negative Gradient eine Abstiegsrichtung<br />
ist, gilt für x 1 := x 0 − ∇f(x 0 ): f(x 1 ) ≤ f(x 0 ). wahr □ falsch □<br />
b) Es seien x ∈ R n und s ∈ R n , wobei s keine Abstiegsrichtung von f im Punkt x sei. Dann<br />
gilt: ∄τ > 0 mit f(x + σs) < f(x) ∀σ ∈ (0, τ]. wahr □ falsch □<br />
c) Für eine vom Gradientenverfahren erzeugte Folge (x k ) gilt<br />
‖∇f(x k+1 )‖ 2 < ‖∇f(x k )‖ 2 ∀k ∈ N. wahr □ falsch □<br />
d) Wendet man das Gradientenverfahren mit Armijoregel (Algorithmus 2.3.5) auf f an, so gilt:<br />
Das Verfahren terminiert endlich oder erzeugt eine Folge, die mindestens einen Häufungspunkt<br />
besitzt. wahr □ falsch □<br />
e) Wir wenden ein allgemeines Abstiegsverfahren (Algorithmus 2.<strong>4.</strong>1), das <strong>zu</strong>r Schrittweitenbestimmung<br />
die Armijoregel verwendet, auf f an. Dann gilt: Die erzeugte Schrittweitenfolge<br />
(σ k ) ist <strong>zu</strong>lässig. wahr □ falsch □<br />
f) Wir betrachten das allgemeine Abstiegsverfahren. Als Abstiegsrichtung s k wählen wir stets<br />
den negativen Gradienten, d. h. s k = −∇f(x k ) ∀k ≥ 0. Der Algorithmus terminiere nicht<br />
endlich. Dann gilt: Jede Teilfolge (s k ) K ist <strong>zu</strong>lässig. wahr □ falsch □<br />
g) Es sei (σ k ) eine Folge effizienter Schrittweiten. Dann gilt: Die Folge (σ k ) ist <strong>zu</strong>lässig.<br />
wahr □ falsch □<br />
h) Die Armijoregel und die Powell-Wolfe-Regel kann <strong>zu</strong> Schrittweiten führen, die größer als<br />
Eins sind. wahr □ falsch □<br />
Aufgabe <strong>4.</strong>2 (ca. 6 Punkte): Wir betrachten das allgemeine Abstiegsverfahren mit stetig<br />
differenzierbarer Zielfunktion f : R n → R und Suchrichtungen s k = −2 −k ∇f(x k ).<br />
a) Weisen Sie nach, dass jede Teilfolge von Suchrichtungen (s k ) K <strong>zu</strong>lässig ist.<br />
b) Zeigen Sie, dass die Armijo-Regel für die oben genannten Suchrichtungen im allgemeinen<br />
keine <strong>zu</strong>lässigen Schrittweiten σ k erzeugt. Verwenden Sie hierfür das Beispiel<br />
f(x) = x2<br />
8 , Startpunkt x0 > 0<br />
und zeigen Sie, dass es keine <strong>zu</strong>lässige Teilfolge (σ k ) K gibt.<br />
Seite 1 von 3
c) Wodurch wird die Un<strong>zu</strong>lässigkeit der Schrittweiten verursacht<br />
Aufgabe <strong>4.</strong>3 (ca. 10 Punkte): (Klausur „Nichtlineare <strong>Optimierung</strong>: Grundlagen“ <strong>WS</strong> 2008/09)<br />
Es sei f : R n → R eine stetig differenzierbare Funktion. Wir betrachten das folgende Abstiegsverfahren:<br />
1: Wähle β ∈ (0, 1), γ ∈ (0, 1) und einen Startpunkt x 0 ∈ R n .<br />
2: for k = 0, 1, 2, . . . do<br />
3: if ∇f(x k ) = 0 then<br />
4: STOP<br />
5: end if<br />
6: Bestimme s k ∈ R n durch<br />
(<br />
s k = − ∇f(x k )<br />
)j · e j = − ∂f (x k ) · e j ,<br />
∂x j<br />
wobei e j ∈ R n den j-ten kanonischen Einheitsvektor bezeichnet und j ∈<br />
{1, 2, . . . , n} ein Index ist mit<br />
∂f<br />
∣ (x k )<br />
∂x ∣ = max<br />
∂f<br />
j 1≤i≤n∣<br />
(x k )<br />
∂x ∣ .<br />
i<br />
7: Ermittle die Schrittweite σ k ∈ (0, 1] mit Hilfe der Armijoregel (Parameter β und<br />
γ).<br />
8: Setze x k+1 = x k + σ k s k .<br />
9: end for<br />
a) Zeigen Sie, dass die Ermittlung der Schrittweite in Zeile 7 wohldefiniert ist.<br />
b) Zeigen Sie, dass jede Teilfolge von Suchrichtungen (s k ) K <strong>zu</strong>lässig ist.<br />
c) Zeigen Sie, dass f(x k+1 ) < f(x k ) für alle k gilt.<br />
d) Zeigen Sie, dass für jede beschränkte Teilfolge von Iterierten (x k ) K die entsprechende<br />
Schrittweitenteilfolge (σ k ) K <strong>zu</strong>lässig ist.<br />
Hinweis: Begründen Sie <strong>zu</strong>nächst, dass der angegebene Algorithmus ein Spezialfall des<br />
allgemeinen Abstiegsverfahrens (Algorithmus 2.<strong>4.</strong>1) ist. Benutzen Sie dann Satz 2.5.2 aus<br />
der Vorlesung<br />
e) Es sei (x k ) eine durch den angegebenen Algorithmus erzeugte Folge von Iterierten. Begründen<br />
Sie, dass jeder Häufungspunkt von (x k ) ein stationärer Punkt von f ist.<br />
Aufgabe <strong>4.</strong>4 (ca. 10 Punkte): Wir betrachten das allgemeine Abstiegsverfahren mit stetig<br />
differenzierbarer Zielfunktion. Implementieren Sie das Gradientenverfahren aus der Vorlesung<br />
(Algorithmus 2.3.5) mit der Armijo-Schrittweitenregel in Matlab. Teilen Sie da<strong>zu</strong> das Verfahren<br />
in zwei Funktionen auf:<br />
1. Eine Funktion Armijo, die bei gegebenen Daten die Schrittweite berechnet und <strong>zu</strong>rück gibt:<br />
function[sigma] = Armijo(f,gfx,x,s,beta,gamma)<br />
Seite 2 von 3
mit Eingabeparameter<br />
• f: Ein Funktionshandle auf die Funktion f (vgl. hier<strong>zu</strong> feval in der Matlab-Hilfe)<br />
• gfx: Der Gradient ausgewertet an der Stelle x<br />
• x: Die aktuelle Iterierte<br />
• s: Die Suchrichtung<br />
• beta, gamma: Die Parameter der Armijo-Suche.<br />
2. Eine Funktion GradientenVerf, welche die Funktion Armijo verwendet und folgendes Interface<br />
hat:<br />
function[x,steps] = GradientenVerf(f,gf,x0,eps,maxsteps)<br />
Die Eingabeparameter sind:<br />
• f, gf: Ein Funktionshandle auf die Funktion f bzw. den Gradienten von f<br />
• x0: Der Startpunkt x 0<br />
• eps: Die Abbruchtoleranz für die Norm des Gradienten: ‖∇f(x k )‖ 2 ≤ ε<br />
• maxsteps: Die maximale Anzahl an Schritten, die durchgeführt werden sollen.<br />
a) Testen Sie Ihre Implementierung am Beispiel der Rosenbrockfunktion<br />
f(x) := 100(x 2 − x 2 1) 2 + (1 − x 1 ) 2<br />
mit Startpunkt x 0 = (−1.2, 1) T und Parametern maxsteps = 10 000, β = 0.5 und γ = 10 −4 .<br />
Führen Sie das Verfahren für ε = 10 −1 , 10 −2 , 10 −3 , 10 −4 , 10 −5 aus. Für ε = 10 −3 sollte das<br />
Verfahren ca. 5231 Iterationen benötigen und den Punkt x = (0.9992, 0.9984) T <strong>zu</strong>rückgeben.<br />
b) Stellen Sie anhand ihrer numerischen Ergebnisse eine Vermutung auf, gegen welchen Punkt<br />
das Verfahren konvergiert.<br />
i) Ist dieser Punkt, wie von der Theorie vorhergesagt, stationär<br />
ii) Zeigen Sie, dass es sich bei diesem Punkt um ein Minimum handelt.<br />
iii) Ist das Minimum lokal oder global<br />
iv) Gibt es weitere (lokale oder globale) Minima<br />
Bitte geben Sie bei der Beantwortung der Fragen auch Begründungen an.<br />
c) Lassen Sie die Höhenlinien der Rosenbrockfunktion zeichnen (Matlab-Befehl contour).<br />
Können Sie erklären, warum das Gradientenverfahren so ineffizient ist<br />
Geben Sie bitte Ihren Quellcode und die Ausgabe ab.<br />
Abgabe:<br />
• T1, T2, T3, T7: Fr, 18.12.<strong>2009</strong> bis 12 Uhr<br />
• T4, T5, T6, T8: Fr, 08.01.2010 bis 12 Uhr<br />
Seite 3 von 3