29.01.2015 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!