Das Subgradientenverfahren Seminar Optimierung WS 05/06 Betreuer: Prof. F. Jarre von Jalo Liljo
Das Subgradientenverfahren Das Ziel dieses Vortrags ist die Berechnung einer Lösung des unrestringierten Optimierungsproblems (P U) min x R n f(x), wobei f : R n R eine auf dem ganzen R n endliche und konvexe Funktion ist. Dazu betrachten wir eine Verallgemeinerung des Gradientenverfahrens. 1 Das Verfahren Erinnerung: Für eine Funktion f ConvR n nennen wir einen Vektor s R n Subgradient von f in x, wenn f(y) f(x) + s, y x y R n gilt. Mit f(x) bezeichnet man die Menge aller Subgradienten in x. Der Unterschied zum Gradientenverfahren ist, dass man im k-ten Iterationsschritt die Suchrichtung d (k) = s (k) mit einem beliebigen s (k) f(x (k) ) benutzt. Ist f differenzierbar so gilt wegen Satz 2.8.14 d (k) = f(x (k) ). Verfahren 1.1 : Subgradientenverfahren Wähle einen Startpunkt x (0) R n und setze k := 0. 1. Berechne einen Subgradienten s (k) f(x (k) ). 2. Abbruchkriterium: Ist s (k) = 0 (d.h. 0 f(x (k) )), dann STOP. 3. Setze d (k) = s (k) / s (k). Wähle t k > 0 und setze x () := x (k) + t k d (k). 4. k:=, GOTO 1. Anwendung des Verfahrens auf die Wolfe-Funktion mit einem Startpunkt x (0) aus der Menge S = {(x 1, x 2 ) T R 2 x 1 > x 2 > ( 9 16 )2 x 1 } und einer Line Search zur Schrittweitenwahl, liefert dieselbe Iterationsfolge wie das Gradientenverfahren, welche nicht gegen nicht gegen x opt konvergiert. Also sind weitere Voraussetzungen an die Schrittweite nötig. 1
Weitere Nachteile des Verfahrens: Wie das folgende Beispiel zeigt muss s (k) keine Abstiegsrichtung sein. Daher muss die Folge {f(x (k) )} nicht monoton fallend sein und man erhält kein Abstiegsverfahren. Weiterhin ist das Abbruchkriterium praktisch nie erfüllt. Beispiel 1.2 : Das Minimum der Funktion f(x) = x ist x = 0 und es gilt [ 1, 1] f(0). Wählt man s (0) 0 und startet in x (0) = 0, ist das Abbruchkriterium nicht erfüllt und man entfernt sich von x. 2 Konvergenzbetrachtungen Das folgende Lemma liefert die grundlegende Idee für die Schrittweitenwahl. Lemma 2.1 : Ist f : R n R eine konvexe Funktion, x ein beliebiger Minimalpunkt von f und x (k) kein Minimalpunkt, dann gibt es ein T k > 0, so dass für das Verfahren 1.1 gilt x () x < x (k) x t k ]0, T k [. (1) Beweis: Für ein beliebiges t k > 0 gilt Daraus folgt mit x () x 2 = x (k) t ks (k) s (k) x 2 = x (k) x 2 2t k s(k) s (k), x(k) x + t 2 k s(k) s (k) 2. x () x 2 = x (k) x 2 2t k b k + t 2 k b k = s(k) s (k), x(k) x. Wegen f(x ) < f(x (k) ) und s (k) f(x (k) ) folgt aus der Subgradientenungleichung 0 > f(x ) f(x (k) ) s (k), x x (k) = b k s (k). Also ist b k > 0 und daher 2t k b k + t 2 k < 0 für 0 < t k < T k := 2b k, woraus (1) folgt. b k > 0 bedeutet gerade, dass der Winkel zwischen der Richtung s (k) und der idealen Richtung x x (k) im Punkt x (k) kleiner als 90 ist. Wenn man sich also von x (k) nicht zu weit in Richtung s (k) bewegt, liegt x () näher bei x als x (k), wenn T k > 0 hinreichend klein ist. 2
Also muss die Schrittweite t k hinreichend klein sein damit (1) gilt. Daher verlangt man lim t k = 0. (2) k Diese Bedingung reicht aber noch nicht aus, denn ist r := t k <, so gilt k 1 k 1 x (0) x (k) x (i) x (i+1) = t i d (k) r. i=0 Also liegen alle Iterationspunkte in der Kugel um x (0) mit Radius r. Daher muss r hinreichend groß sein, denn sonst kann man x nicht erreichen. Wir fordern daher zusätzlich t k =. (3) Beispiel 2.2 : Ist t k = 2, k = 0, 1,..., so sind die Bedingungen (2) und (3) erfüllt. Wendet man das Subgradientenverfahren auf die Funktion f(x) = x mit dem Startpunkt x (0) = 5 an und stoppt nach 45 Iterationen, wird der beste Funktionswert in Iteration 38 erreicht. Die Folge der Funktionswerte ist nicht monoton fallend und das Abbruchkriterium ist nie erfüllt: i=0 k x (k) k x (k) k x (k) 1 3.000000 16 0.007590 31 0.064436 2 2.000000 17-0.110057 32 0.001936 3 1.333333 18 0.001054 33-0.058670 4 0.833333 19-0.104209 34 0.000154 5 0.433333 20-0.004209 35-0.056989 6 0.100000 21 0.091029 36-0.001434 7-0.185714 22 0.000120 37 0.052620 8 0.064286 23-0.086837 38-0.000011 9 0.157937 24-0.003504 39 0.051271 10 0.042063 25 0.076496 40 0.001271 11-0.139755 26-0.000427 41-0.047510 12 0.026912 27 0.073647 42 0.000109 13-0.126934 28 0.002219 43 0.046402 14 0.015923 29-0.066747 44-0.000948 15-0.117410 30-0.000080 45 0.043497 3
Um für das Verfahren eine Konvergenzaussage zu erhalten, benötigen wir einige Hilfsresultate. Lemma 2.3 : Ist t k eine Folge positiver Zahlen mit (2), (3) und τ m := m t k, ρ m := m t 2 k m N ρ m dann folgt lim = 0. m τ m Lemma 2.4 : Ist f : R n R eine konvexe Funktion, x, z R n mit f(z) > f( x), 0 s f(z) und H z := {x R n s, x z = 0}, dann hat das Optimierungsproblem 1 min x H z 2 x x 2 (4) die eindeutig bestimmte Lösung ˆx = x + λs mit λ = s, z x s 2. Weiter ist λ > 0, ˆx x = λ s und f(ˆx) f(z). Beweis: H z ist nichtleer, abgeschlossen und konvex. p(x) = 1 2 x x 2 ist differenzierbar und konvex. Weiterhin lässt sich (4) in der Form (PL) schreiben min p(x) wobei s, x z = 0. Daher ist nach Satz 3.4.6 ˆx R n genau dann Lösung, wenn es einen Lagrange- Multiplikator λ R gibt mit p(ˆx) λs = ˆx x λs = 0, s, ˆx z = 0. Daraus folgt ˆx = x + λs und daher Also 0 = s, x + λs z = s, x z + λ s 2. λ = s, z x s 2. Aus der Voraussetzung f(z) > f( x) und der Subgradientenungleichung für s folgt 0 > f( x) f(z) s, x z. Also ist λ > 0 und daher gilt ˆx x = λs = λ s. Die Subgradientenungleichung liefert f(ˆx) f(z) s, ˆx z = 0. 4
Da die Folge der Funktionswerte beim Subgradientenverfahren nicht monoton fallend sein muss, definieren wir die Folge der besten Funktionswerte { f k } durch f k := min{f(x (i) ) i = 0, 1,..., k}. Satz 2.5 : Ist f : R n R konvex, erfüllt die Schrittweitenfolge {t k } die Bedingungen (2) und (3) und stoppt das Subgradientenverfahren nicht nach endlich vielen Schritten, dann gilt wobei f = sein kann. lim k f k = f := inf x R n f(x), Beweis: Angenommen die Behauptung ist falsch. Dann gibt es ein x R n und ein η > 0 mit f(x (k) ) f k f( x) + η k N 0. Wie im Beweis von Lemma 2.1 folgt für k N x () x 2 = x (k) x 2 2t k b k + t 2 k mit b k = s (k) / s (k), x (k) x. Nach Lemma 2.4 angewandt mit z = x (k), s = s (k) ist λ = b k / s (k) > 0 und daher auch b k > 0 für alle k N 0. Wir definieren δ m := min b k für m 1.,...,m Dann ist für k = 0,..., m x () x 2 x (k) x 2 2t k δ m + t 2 k. Bildet man die Summe dieser Ungleichungen erhält man Also gilt x (m+1) x 2 + 2δ m 2δ m m und daher ist nach Lemma 2.3 m t k x (0) x 2 + t k x (0) x 2 + lim δ m = 0. m m t 2 k m t 2 k. Sei nun k(m) {0,..., m} ein Index mit δ m = b k(m) und K := {k(m) m 1}. Dann gilt lim l K b l = 0. 5
Daher gibt es ein M > 0 mit 0 b l M für alle l K. Nach Lemma 2.4 angewandt mit z = x (l), s = s (l) 1 hat das Optimierungsproblem min x x 2 x H 2 mit H := H x (l) = {x R n s (l), x x (l) = 0} die eindeutig bestimmte Lösung und es gilt ˆx (l) = x + λ l s (l) mit λ l = s(l), x (l) x s (l) 2 = b l s (l) x ˆx (l) = b l M l K. Aufgrund der Lipschitzstetigkeit von f auf B( x, M) gibt es ein L > 0 mit f( x) f(ˆx (l) ) L x ˆx (l) = Lb l l K. Aus Lemma 2.4 und der Annahme folgt weiterhin f(ˆx (l) ) f(x (l) ) > f( x) und daher 0 f(x (l) ) f( x) f(ˆx (l) ) f( x) Lb l l K. Mit lim l K b l = 0 folgt im Widerspruch zur Annahme. lim f(x (l) ) f( x) = 0 l K 6
3 Numerische Beispiele Wir testen das Verfahren zunächst an der Wolfe-Funktion mit dem Startpunkt (5, 4) T und wählen t k = x () x (k) < tolx oder s (k) < tolg als Abbruchkriterium mit tolx = tolg = 10 2, wobei das zweite Kriterium in der Regel nie erfüllt sein wird. Wir testen die drei Schrittweiten i, i = 1, 2, 3. Der eindeutig bestimmte Minimalpunkt der Wolfe-Fuktion ist ( 1, 0) T. t k Iter. beste Approximation Norm des Subgrad. 3 301 x (215) = ( 1.00000, 8.16533 10 15 ) s (215) = 16 2 201 x (186) = ( 0.99999, 2.23837 10 9 ) s (186) = 16 1 1001 x (1000) = ( 0.43038, 1.27048 10 12 ) s (1000) = 18.3523 Die Abbildungen 4.2-4.4 im Anhang zeigen den Ablauf der Iterationen. Die Folge {x (k) } konvergiert in allen 3 Fällen gegen den Minimalpunkt. Man sieht aber auch, dass die Konvergenz sehr langsam sein kann und die Folge der berechneten Funktionwerte nicht monoton fallend ist. Als weiteres Beispiel betrachten wir die konvexe und nichtglatte Maxq-Funktion f(x) = max 1 i n x2 i für n = 20 mit dem Minimalpunkt x = 0. Wir testen das Verfahren mit den Startpunkten u = (1,..., 10, 11,..., 20) T und v = (1,..., 20) T. Nach 1000 Iterationen ergeben sich folgende Werte, wobei jeweils in der letzten Iteration der beste Funktionswert erreicht wurde: Startpunkt t k bester Funktionswert u 10 3.82013 u 20 4.32994 10 6 v 10 68.4138 v 20 11.6310 v 50 6.35936 10 4 7
Die Beispiele zeigen, dass die Wahl der Schrittweite sehr entscheidend ist. Weiterhin kann man keine gute Konvergenz erwarten. Dies liegt daran, dass das Subgradientenverfahren im Allgemeinen schlechter als linear konvergiert. Angenommen die Voraussetzungen von Satz 2.5 seien erfüllt und die Folge x (k) konvergiert linear gegen den Minimalpunkt x. Dann gibt es ein 0 < q < 1 mit Dann gilt und mit M := x (0) x x () x q x (k) x k 0. x (k) x q k x (0) x k 0 t k = x () x (k) x () x + x (k) x M(q + 1)q k für k 0. Daraus folgt t k M(q + 1) q k = M(q + 1) 1 q < was im Widerspruch zur Bedingung (3) steht. 8
Folgende Sätze aus dem Buch bzw. den vorherigen Vorträgen wurden benutzt: Satz 2.8.14 : Ist die Funktion f ConvR n in x int(domf) differenzierbar, dann gilt f (x, d) = f(x), d d R n, und f(x) = { f(x)} ist einelementig. Satz 3.4.6 : Ein Punkt x C ist genau dann Lösung von (PL), wenn es Langrangemultiplikatoren λ R m und µ R p zu x gibt. 9