Sie sind auf Seite 1von 58

Effiziente Schrittweitenbestimmung

für Optimierungsprobleme mit


negativer Krümmung

- Diplomarbeit -
Humboldt-Universität zu Berlin
Mathematisch-Naturwissenschaftlichen Fakultät II
Institut für Mathematik

eingereicht von: Susanne Kreiterling


geboren am 29.12.1979 in Willich

Betreuer: Prof. Dr. Griewank

Berlin, den 25.9.2007


Inhaltsverzeichnis

Vorwort 2

1 Abstiegsmethoden 3
1.1 Allgemeine Formulierung von Abstiegverfahren . . . 4
1.2 Linesearch-Strategien . . . . . . . . . . . . . . . . . 5
1.3 Konvergenz von Abtiegsverfahren . . . . . . . . . . 6

2 Die Schrittweitenstrategie SHAZ 10


2.1 Die Schrittweitenstrategie SHAZ . . . . . . . . . . . 11
2.1.1 Überblick SHAZ . . . . . . . . . . . . . . . 11
2.1.2 Ausführliche Darstellung von SHAZ . . . . . 13
2.2 Algorithmus . . . . . . . . . . . . . . . . . . . . . . 19

3 Konvergenz und Effizienz von SHAZ 21


3.1 Konvergenz der Schrittweitenstrategie SHAZ . . . . 22
3.1.1 Theoretische Grundlagen . . . . . . . . . . . 22
3.1.2 Voraussetzungen . . . . . . . . . . . . . . . 28
3.1.3 Konvergenzbeweis . . . . . . . . . . . . . . . 28
3.2 Effizienz des Schrittweitenalgorithmus . . . . . . . . 35

4 Negative Krümmungen 40
4.1 Richtungen negativer Krümmung . . . . . . . . . . 41
4.2 SHAZ am Beispiel BFGS-Updates . . . . . . . . . . 42

5 Numerische Aspekte 44
5.1 Konvergenz für Gleitpunktarithmetik . . . . . . . . 45
5.1.1 Einführung Gleitpunktarithmetik . . . . . . 45
5.1.2 Beweis der Terminierung . . . . . . . . . . . 46
5.2 SHAZ in der Praxis . . . . . . . . . . . . . . . . . . 48

Anhang: Quellcode SHAZ 50

Literaturverzeichnis 54

1
Vorwort

In dieser Arbeit wollen wir uns mit einer neuen Schrittweiten-


Strategie für Abstiegsverfahren in der Optimierung befassen.
Wir betrachten dabei eine Funktion f : Rn → R, die minimiert wer-
den soll. Die Voraussetzungen, die wir dabei an f stellen, halten wir,
je nach gerade behandelter Thematik, so gering wie möglich.
In Kapitel 1 stellen wir das Thema der Abstiegsverfahren kurz vor.
Dabei wird auch auf allgemeine Konvergenz und Effizienz von Ab-
stiegsverfahren eingegangen.
Kapitel 2 beschäftigt sich mit dem Kernstück dieser Arbeit, der
Schrittweiten-Strategie SHAZ (SHift And Zoom). Es wird zu-
nächst ein kurzer Überblick gegeben, gefolgt von einer ausführli-
chen Darstellung der einzelnen Schritte des Algorithmus. Das Ka-
pitel wird dann mit einer systematischen Darstellung des gesamten
Algorithmus abgeschlossen.
In Kapitel 3 beweisen wir die Konvergenz und Effizienz von SHAZ
und in Kapitel 4 betrachten wir SHAZ im Zusammenspiel mit Such-
richtungen negativer Krümmung.
Einen Konvergenzbeweis für Gleitpunktarithmetik findet sich in
Kapitel 5 und den Abschluss dieser Arbeit bilden zwei Testreihen,
sowie eine eine Ausgabe des Quellcodes.

2
Kapitel 1

Abstiegsmethoden

3
1.1. ALLGEMEINE FORMULIERUNG VON ABSTIEGVERFAHREN 4

1.1 Allgemeine Formulierung von Ab-


stiegverfahren
Zunächst wollen wir eine kurze Einführung in die Theorie der Ab-
stiegsverfahren geben. Eine ausführlichere Darstellung findet man
z.B. in Jarre/Stoer Optimierung [2].
Wir betrachten eine Funktion f : Rn → R. Die Funktion sei stetig
differenzierbar und wir betrachten folgendes Optimierungsproblem:

min f (x)
x∈Rn

Die zu Grunde liegende Idee der Abstiegsmethoden besteht darin,


eine die Funktion f minimierende Folge von Punkten xk ∈ Rn zu
generieren, wobei in jedem Schritt für den aktuellen Punkt xk eine
(Such-)Richtung sk bestimmt wird, in der f “kleiner” wird. Die
geeignete Länge für die Suchrichtung sk bestimmt die Schrittweite
αk . Der neue Punkt errechnet sich durch xk+1 = xk + αk sk und es
soll gelten: f (xk+1 ) < f (xk ).
Damit legen wir folgendes fest:

Definition 1.1.1
Seien f : Rn → R und x ∈ Rn . Ein Vektor s ∈ Rn heißt Abstiegs-
richtung (für f in x), falls ein t > 0 existiert mit f (x+αs) < f (x)
für alle α ∈ (0, t].
Lemma 1.1.1
Sei f : Rn → R stetig differenzierbar, s ∈ Rn und x ∈ Rn . Wenn
gilt:
∇f (x)T s < 0,
dann ist der Vektor s Abstiegsrichtung für f in x.

Es ergibt sich folgender allgemeiner Algorithmus für Abstiegsver-


fahren:
Algorithmus 1.1.1
Gegeben sei ein Startvektor x0 ∈ Rn , k = 0
1. berechne Suchrichtung sk , mit ∇f (xk )T sk < 0.

2. berechne Schrittweite αk > 0, so dass f (xk + αk sk ) ¿ f (xk )

3. setze xk+1 = xk + αk sk und k = k + 1

4. Falls xk nun einem bestimmten Abbruchkriterium genügt (in


der Regel ∇f (xk ) ≈ 0), dann STOP, sonst gehe zu Schritt 1.
1.2. LINESEARCH-STRATEGIEN 5

Bemerkung: In Schritt 2 des Algorithmus wäre f (xk +αk sk ) < f (xk )


nicht ausreichend. Bei der Herleitung der Effizienz einer Schritt-
weitentrategie weiter unten, wird die Bedeutung des ”¿” deutlich.

Die Suchrichtung sk und die Schrittweite αk sind nun in je-


dem Schritt so zu bestimmen, dass der Algorithmus zum (lokalen)
Minimalpunkt von f , bzw. einem stationären Punkt von f kon-
vergiert.Wir wollen den Fokus hier vor allem auf die Wahl einer
geeigneten Schrittweite richten:

1.2 Linesearch-Strategien
Die Ermittlung einer geeigneten Schrittweite entlang einer
Suchrichtung wird auch Strahlsuche, oder Linesearch genannt.
Hierbei soll die Schrittweite αk (xk , sk ) bestimmt werden, so dass
f (xk + αk sk ) mit möglichst wenig Aufwand möglichst klein wird.

Wir können einen Effizienzbegriff für Strahlsuchen herleiten. Dazu


nehmen wir zunächst an, dass f : Rn → R lipschitz stetig differen-
zierbar ist und die Niveaumenge f f (x0 ) := {x ∈ Rn : f (x) ≤ f (x0 )}
zum Startvektor x0 kompakt ist.

Betrachten wir die Taylorentwicklung von f (xk + αk sk ) so erhalten


wir:
¯ ¯ 2
¯f (xk + αk sk ) − f (xk ) − αk ∇f (xk )T sk ¯ ≤ αk Qksk k2
2
Dabei ist Q ∈ R die Lipschitz-Konstante des Gradienten für das
Intervall [xk , xk+1 ] und Q gelte auch auf der konvexen Hülle der
Niveaumenge. Wir können die obige Ungleichung dann folgender-
maßen abschätzen:
αk 2
f (xk + αk sk ) ≤ f (xk ) + αk ∇f (xk )T sk + Qksk k2
2
Wir benennen die rechte Seite der Ungleichung mit P (αk ), welches
ein Polynom zweiten Grades ist. Daher können wir seine globale
Minimalstelle αk∗ bestimmen, indem wir die erste Ableitung gleich
0 setzen:
Ṗ (αk ) = ∇f (xk )T sk + αk∗ Qksk k2 = 0
∇f (xk )T sk
⇔ αk∗ = − >0
Qksk k2
1.3. KONVERGENZ VON ABTIEGSVERFAHREN 6

sk ist Abstiegsrichtung mit Ṗ (0) = ∇f (xk )T sk < 0. Daraus folgt:

f (xk + αk∗ sk ) ≤ P (αk∗ ) < P (0) = f (xk )

Das heißt, αk∗ liegt innerhalb der vorausgesetzten Niveaumenge. Set-


zen wir nun αk∗ in die Ungleichung (??) ein, so erhalten wir:

−∇f (xk )T sk
f (xk + αk∗ sk ) ≤ f (xk ) + 2
∇f (xk )T sk
Qksk k
µ ¶2
1 −∇f (xk )T sk
+ Qksk k2 (1.1)
2 Qksk k2

µ ¶2
∗ 1 ∇f (xk )T sk
⇔ f (xk ) − f (xk + α sk ) ≥
2Q ksk k
Es ist also ein Mindestabstieg unter den getroffenen Vorausset-
zungen möglich. Die obere Schranke für die vorkommenden Hesse-
Matritzen ist aber im allgemeinen nicht bekannt. Daher wird die
Effizienz einer Schrittweitenstrategie etwas allgemeiner definiert:
Definition 1.2.1
Eine Schrittweitenstrategie α = α(x; s) heißt effizient, wenn es
zum Startvektor x0 ∈ Rn ein r > 0, r ∈ R gibt mit
µ ¶2
∇f (x)T s
f (x) − f (x + αs) ≥ r ,
ksk

für alle x aus der zugehörigen Niveaumenge f f (x0 ) .

Diese Eigenschaft verwenden z.B. auch Bonnans, et al. in [3].


Nun können wir im Folgenden die Effizienz der Schrittweitenstra-
tegie in unsere Voraussetzungen mit einfließen lassen, und widmen
uns im nächsten Abschnitt dem gesamten Abstiegs-Algorithmus.

1.3 Konvergenz von Abtiegsverfahren


Ist die Effizienz der Schrittweite sichergestellt, so kommen wir zu
den folgenden Konvergenzaussagen für Abstiegsverfahren:
Die Eigenschaft von Abstiegsrichtungen aus Lemma 1.1.1 besagt
im geometrischen Sinne, dass der Winkel Θ zwischen negativem
1.3. KONVERGENZ VON ABTIEGSVERFAHREN 7

Gradienten −∇f und Suchrichtung s kleiner als π2 sein muss. Im


Folgenden verlangen wir zunächst, dass supk→∞ |Θk | < π2 . Es gilt:

−∇f (x)T s
cos Θ =
k∇f (x)kksk
und wir können insgesamt die folgende Winkelbedingung für alle k
formulieren:
−∇f (x)T s
∃ c > 0, c ∈ R : ≥c (1.2)
k∇f (x)kksk
Verfahren, die die Winkelbedingung erfüllen, nennt man auch gra-
dientenbezogen (gradient related).
Daraus erhalten wir den folgenden:
Satz 1.3.1
Im Abstiegsverfahren Algorithmus 1.1.1 seien alle berechneten
Schrittweiten αk effizient und die Funktion f : Rn → R sei einmal
stetig differenzierbar auf Rn . Außerdem sei die Winkelbedingung
(1.2) erfüllt. Dann gilt:
(a) Jeder Häufungspunkt der Folge xk ist ein stationärer Punkt
von f ,

(b) Ist f nach unten beschränkt, so gilt: limk→∞ ∇f (xk ) = 0


Beweis :
Aufgrund der Effizienz der Schrittweiten αk gilt:
µ ¶2
∇f (xk )T sk
f (xk+1 ) ≤ f (xk ) − r
ksk k
Den rechten quadratischen Term können wir aufgrund der Winkel-
bedingung folgendermaßen darstellen:
µ ¶2
∇f (xk )T sk
≥ c2 · k∇f (xk )k2 .
ksk k
Zusammen folgt dann:

f (xk+1 ) ≤ f (xk ) − r · c2 · k∇f (xk )k2 (1.3)

zu (a): x∗ sei ein Häufungspunkt der Folge xk . Die


Folgef (xk ) ist monoton fallend und konvergiert auf
einer Teilfolge gegen f (x∗ ). Es gilt also:

lim f (xk ) = f (x∗ )


k→∞
1.3. KONVERGENZ VON ABTIEGSVERFAHREN 8

Daraus folgt limk→∞ (f (xk+1 ) − f (xk )) = 0. Mit


Hilfe der Ungleichung (1.3) erhalten wir dann im
Grenzwert: 0 ≤ −r · c2 · k∇f (x∗ )k2 . Da r und c
positiv sind, folgt unmittelbar, dass k∇f (x∗ )k = 0,
also x∗ stationärer Punkt von f ist.
zu (b): f sei nach unten beschränkt. Die Folge f (xk ) kon-
vergiert dann, da sie zusätzlich monoton fallend
ist. Wie im Fall (a) folgt auch hier mit Hilfe der
Ungleichung (1.3), dass limk→∞ k∇f (xk )k = 0 und
somit limk→∞ ∇f (xk ) = 0

¤
Die Winkelbedingung (1.2) besagt, dass der Winkel zwischen
∇f (x∗ ) und s gleichmässig von π2 weg beschränkt sein muss. Dies
kann zur Zoutendijk-Bedingung abgeschwächt werden:
Definition 1.3.1
Es sei f : Rn → R, x ∈ R, s ∈ Rn sei eine Abstiegsrichtung. f sei
einmal stetig differenzierbar auf Rn .
Die folgende Bedingung an die Suchrichtungen heißt Zoutendijk-
Bedingung:
X∞ µ ¶2
∇f (xk )sk
= +∞ (1.4)
k=0
k∇f (x k )k · ksk k

Sie ermöglicht weitere Aussagen über die Konvergenz von Abstiegs-


verfahren:
Satz 1.3.2
Sei f : Rn → R einmal stetig differenzierbar und nach unten
beschränkt. Die Schrittweiten αk des Abstiegsverfahrens Algorith-
mus (1.1.1) seien effizient und die Suchrichtungen sk erfüllen die
Zoutendijk-Bedingung (1.4), dann gilt:

lim inf ||∇f (xk )|| = 0.


k→∞

Beweis :
Aufgrund der Effizienz der Schrittweiten gilt:
µ ¶2
∇f (xk )T sk
f (xk+1 ) − f (xk ) < −r
ksk k
µ ¶2
2 ∇f (xk )T sk
= −rk∇f (xk )k
k∇f (xk )k · ksk k
1.3. KONVERGENZ VON ABTIEGSVERFAHREN 9

fU sei eine untere Schranke von f . Angenommen, es existiert ε > 0


so dass ||∇f (xk )|| ≥ ε für alle k ≥ kε . Dann erhalten wir:
∞ µ
X ¶2
∇f (xk )T sk
fU − f (x0 ) ≤ −r · ε · = −∞
k=0
k∇f (xk )k · ksk k

Das ist ein Widerspruch. ¤


Kapitel 2

Die Schrittweitenstrategie
SHAZ

10
2.1. DIE SCHRITTWEITENSTRATEGIE SHAZ 11

2.1 Die Schrittweitenstrategie SHAZ


2.1.1 Überblick SHAZ
Im Folgenden wird die zu untersuchende Linesearch SHAZ (SHift
And Zoom) vorgestellt. Wie oben bereits beschrieben geht es darum
eine stetig differenzierbare Funktion f zu minimieren. Im Konver-
genzbeweis weiter unten werden wir sehen, dass für die Terminie-
rung allein auch geringere Voraussetzungen an f gestellt werden
können. Die Linesearch wird in einem klassischen Abstiegsverfah-
ren verwendet. Das heißt, es werden vom übergeordneten Optimie-
rungsalgorithmus Suchrichtungen sk mit der Abstiegseigenschaft

∇f (xk )T sk < 0

berechnet und somit eine Folge von Iterierten (xk )k generiert, wel-
che f (lokal) minimiert. Hierbei wird jeweils

xk+1 = xk + αk · sk

aufdatiert.
Diese Diplomarbeit befasst sich vor allem mit der Bestimmung der
jeweiligen Schrittweite αk . Diese wird jeweils in einer einzigen Itera-
tion des übergeordneten Abstiegsverfahrens ermittelt. Deshalb ver-
zichten wir im Folgenden auf den Index k. Wir betrachten also die
Minimierung der univariaten Funktion

min Φ(α) := f (x + αs).


0<α∈R

Dabei wird ein reelles Interval [αl , αr ] zu Grunde gelegt, wobei


αr die zu prüfende aktuelle Schrittweite darstellt. Zu den bei-
den Stützstellen αl und αr werden in jeder Iteration der Line-
search die zugehörigen Funktionswerte Φ(α) und ersten Ableitun-
d
gen Φ̇(α) := dα Φ(α) = ∇f (x + αs)T s extern geliefert. Das heißt
entweder vom übergeordneten Optimierungsalgorithmus oder auf
andere Weise vom Benutzer zur Verfügung gestellt. Der Aufruf er-
folgt durch sogenannte ”reverse communication”. Sollte Φ an einer
der Stützstellen nicht stetig differenzierbar sein, so wird die ver-
allgemeinerte Ableitung DΦ(α) = [β, γ] benutzt (Hierzu mehr in
Kapitel 3 ab Seite 22). An αl wird das maximale Element und an
αr das minimale Element der verallgemeinerten Ableitung gewählt.
Mit diesen Eckdaten wird eine kubische Hermite-Interpolation
durchgeführt. Anschließend wird das Minimum αmin des resultie-
renden kubischen Polynoms bestimmt, sofern es existiert, und ein
2.1. DIE SCHRITTWEITENSTRATEGIE SHAZ 12

Vergleich zwischen der ”promised reduction”:

pred := Φ(αl ) − Φ(αmin )

und der ”actual reduction”:

ared := Φ(αl ) − Φ(αr )

angestellt. Eine Schrittweite αr wird akzeptiert, falls die Steigung,


bzw. das maximale Element der verallgemeinerten Ableitung, im
Versuchspunkt αr größer ist als in αl und zusätzlich für eine be-
stimmte Konstante q ∈ (0, 1) gilt:

ared ≥ q · pred

Der Parameter q ist in unseren Testfällen mit q = 12 festgelegt.


Die weiter unten folgenden Beweise gelten für jedes q ∈ (0, 1).
Die Abbruchbedingung besagt also, dass die erreichte Reduktion
mindestens die Hälfte (bzw. das q-fache) der von dem kubischen
Polynom vorhergesagten Reduktion betragen muss.
Ist das nicht der Fall, werden die Stützstellen aufdatiert und der
Line Search beginnt mit einer neuen Iteration. Details zum Update
der Stützstellen werden im nächsten Abschnitt ausführlich behan-
delt. Der Algorithmus gibt am Ende jeder Iteration verschiedene
Rückgabewerte aus:

Rückgabewert Bedeutung
0 SHAZ hat terminiert, aktuelles αr ist resul-
tierende Schrittweite.
-1 SHAZ führte einen Zoom-Schritt durch. Wei-
tere Iteration(en) nötig.
-2 SHAZ führte einen Shift nach rechts durch.
Weitere Iteration(en) nötig.
-3 SHAZ führte einen Shift nach rechts durch,
jetzt gilt αr = αup , weitere Iteration(en) nö-
tig.
4 fehlerhafte Eingabe, das Programm wurde
abgebrochen.
2.1. DIE SCHRITTWEITENSTRATEGIE SHAZ 13

2.1.2 Ausführliche Darstellung von SHAZ


Nun wollen wir uns detailliert den einzelnen Abläufen von SHAZ
widmen. Die ersten beiden Stützstellen αl0 und αr0 werden vom
Benutzer vorgegeben. Üblicherweise startet man mit αl = 0 und
αr = 1. αl und αr werden im Laufe des Algorithmus geändert.
Außerdem wird zu Beginn der Parameter αup festgelegt. Dieser ist
eine vom Benutzer vorzugebende Oberschranke für die Schrittwei-
te. Gegebenenfalls wird auch αup vom Algorithmus aufdatiert und
zurückgegeben. Zu Beginn jeder Iteration müssen an der zuvor auf-
datierten Stützstelle αr zusätzlich die Funktionswerte und deren
verallgemeinerte Ableitungen extern berechnet und eingegeben wer-
den. Die verallgemeinerten Ableitungen werden im Abschnitt 3.1.1
über theoretische Grundlagen ab Seite 22 und im Konvergenzbe-
weis ab Seite 28 noch erläutert. Es werden also bei jeder Iteration
insgesamt neun Werte übergeben:

αl , αr

Φ(αl ), Φ(αr )

DΦ(αl ) = [βl , γl ], DΦ(αr ) = [βr , γr ]

αup .

Auf Grundlage dieser Werte wird nun eine kubische Hermite In-
terpolation durchgeführt. Wir berechnen zunächst o.B.d.A ein um
(αl , Φ(αl )) verschobenes Polynom der Form:

P (α) = bα + cα2 + dα3

Dieses Polynom ist so konstruiert, dass:

P (0) = 0,

Ṗ (0) = γl ,

P (αr − αl ) = Φ(αr ) − Φ(αl ),

Ṗ (αr − αr ) = βr .

Die Koeffizienten werden dabei aus den zur Verfügung stehenden


Daten wie folgt berechnet:
2.1. DIE SCHRITTWEITENSTRATEGIE SHAZ 14

b = γl

3(Φ(αr ) − Φ(αl )) βr + 2γl


c= − (2.1)
(αr − αl )2 αr − αl

β r + γl 2(Φ(αr ) − Φ(αl ))
d= − .
(αr − αl )2 (αr − αl )3

Ist Φ(α) in αl und αr stetig differenzierbar, so ergibt sich die Dar-


stellung:

b = Φ̇(αl )

3(Φ(αr ) − Φ(αl )) Φ̇(αr ) + 2Φ̇(αl )


c= − (2.2)
(αr − αl )2 αr − αl

Φ̇(αr ) + Φ̇(αl ) 2(Φ(αr ) − Φ(αl ))


d= − .
(αr − αl )2 (αr − αl )3

Zur Bestimmung des Minimums des Polynoms P (α) leiten wir nach
α ab und setzen die Ableitung gleich 0:
!
Ṗ (α) = b + 2cα + 3dα2 = 0

Wir erhalten also für einen stationären Punkt:


r
c c2 b
α̌ = − ± 2

3d 9d 3d

c c2 − 3bd
=− ±
3d 3|d|
 √

 c c2 − 3bd

− ± für d ≥ 0
3d 3d
= √

 c c2 − 3bd

− ∓ für d < 0
3d 3d
Die zweite Ableitung kann uns sagen, welche der beiden Möglich-
2.1. DIE SCHRITTWEITENSTRATEGIE SHAZ 15

keiten das Minimum ist:

P̈ (α̌) = 2c + 6dα̌
 √

 2(−c ± c2 − 3bd) für d ≥ 0

= 2c + √

 2(−c ∓ c2 − 3bd) für d < 0

 √

 ± c2 − 3bd für d ≥ 0

= √

 ∓ c2 − 3bd für d < 0

Für ein Minimum muss positive Krümmung gelten, also P̈ > 0.


Daher müssen wir bei α̌ für negative d den unteren Fall (+) und
für d ≥ 0 den oberen Fall (+) wählen. Für α̌ ist das auch beides
mal (+) und wir erhalten:

c c2 − 3bd
α̌ = − +
3d 3d

An dieser Stelle wird die Diskriminante c2 − 3bd überprüft.


Ist dieser Term negativ, so hat das kubische Polynom kein lokales
Minimum. P (α) hat also die in Abbildung 2.1 illustrierte Gestalt.
Wir können für wachsende α also noch mehr Abstieg erreichen und

P(α)

Abbildung 2.1: Kubisches Polynom ohne lokales Minimum

fahren daher mit einem Shift nach rechts fort. Hierbei wird αl mit
dem Wert von αr aufdatiert, und αr wird zu min{αr + mδ, αup },
mit δ = αr − αl und reeller Konstante m > 1. (Wir haben mit
m = 3 gearbeitet). Die Linesearch gibt dann den Rückgabewert -2
2.1. DIE SCHRITTWEITENSTRATEGIE SHAZ 16

aus.

Nun betrachten wir den Fall, dass P (α) ein lokales Minimum
in α̌ besitzt. Da wir P (α) bei der Berechnung um αl verschoben
haben, liegt das tatsächliche Minimum also bei αmin = αl + α̌. Um
eine Auslöschung in Zähler oder Nenner auszuschließen, berechnen
wir dieses αmin je nach Vorzeichen des Koeffizienten c wie folgt:

 −b

 √ für c ≥ 0
c + c2 − 3bd
αmin = αl + √
 2
 c − 3bd − c für c < 0.

3d
Liegt αmin außerhalb des Intervalls [αl , αup ], so liegt wie oben im
Fall für kein existierendes Minimum für wachsende α ein monotoner
Abstieg vor, (siehe Abbildung 2.2) und wir fahren mit dem gleichen
Shift nach rechts fort.

Abbildung 2.2: Lokales Minimum liegt außerhalb von [αl , αup ]

Gilt im aktuellen Versuchsschritt, dass P (αr ) > P (αl ), so haben wir


keine Reduktion (siehe Abbildung 2.3), und αup wird nach unten
durch das aktuelle αr aufdatiert.
Der Wert von αl bleibt gleich und als neuer Versuchspunkt für αr
wird αmin gewählt.
Liegt αmin nun zwischen αl und αup , so betrachten wir die ”promised
reduction”
pred := P (αl ) − P (αr )
und die ”actual reduction”
ared := P (αl ) − P (αmin )
im Akzeptanz-Test:
ared ≥ q · pred. (2.3)
2.1. DIE SCHRITTWEITENSTRATEGIE SHAZ 17

Abbildung 2.3: aktuell keine Reduktion

Wir verlangen also, dass die aktuelle Reduktion mindestens das


q-Fache (in unserem Fall q = 12 ) der vorhergesagten Reduktion
erreicht (siehe Abbildung 2.4).
Ist diese Ungleichung nicht erfüllt, so wollen wir für die nächste

Abbildung 2.4: ”actual reduction” und ”promised reduction”

Iteration probieren, ob das Minimum des Polynoms eine zulässige


Schrittweite darstellt, falls es nicht zu weit von αr entfernt ist. αr
wird dann mit min{αmin , αl + mδ} aufdatiert.
Befindet sich zusätzlich das Minimum rechts von αl + δ, al-
so dem ”alten” αr , so war dieses im Verhältnis zu αl schon
in fallender Richtung unterwegs. Das wollen wir ausnutzen und
datieren αl mit αl +δ auf. Es wird der Rückgabewert -1 ausgegeben.

Ist das Abbruchkriterium (2.3) aber erfüllt, so wird nur noch eine
2.1. DIE SCHRITTWEITENSTRATEGIE SHAZ 18

Eigenschaft der verallgemeinerten Ableitungen Φ̇(αr ) = [βr , γr ]


und Φ̇(αl ) = [βl , γl ] geprüft: Ist das jeweils maximale Element der
Ableitung im Punkt αr betragsmäßig steiler, gilt also:

γr < γ l ,

so können wir rechts von αr großen Abstieg vermuten. Außerdem


haben wir in dem kubischen Modell an so einer Stelle negative
Krümmung. Diese wollen wir in der Merit-Funktion Φ im resul-
tierenden αr nicht haben, sondern wollen den starken Abstieg an
dieser Stelle ausnutzen. Daher fahren mit einem Rechts-Shift wie
oben bereits dargestellt fort.
Es wird wieder als Rückgabewert -2 ausgegeben, der dem Nutzer
anzeigt, dass weiter iteriert werden muss.

Gilt bei erfülltem Akzeptanztest, dass γr ≥ γl , so terminiert


der Algorithmus. Der Rückgabewert ist 0, welcher anzeigt, dass
das aktuelle αr die resultierende Schrittweite ist.

Vor jedem Rechts-Shift wird zusätzlich geprüft, ob für das


neue αl gilt:
3
(γl < 0) ∧ (βl > (1 + )γl )
q
Diese Bedingung brauchen wir, um bei nicht stetig-differenzierbaren
Funktionen Konvergenz nachzuweisen.

Da es leider nicht gelungen ist, beliebig viele Rechts-Shifts


auszuschließen, haben wir die Anzahl der Rechts-Shifts a priori
begrenzt. Der Benutzer sollte einen Zähler für die Rechts-Shifts
integrieren und bei selbst gewählter Oberschranke terminieren. In
den in dieser Arbeit später kurz dargestellten Testläufen haben wir
mit 7 als Oberschranke für die Zahl der Rechts-Shifts gearbeitet.
Fängt man die Rechts-Shifts nicht durch eine solche Oberschran-
ke, oder ein explizit kleines αup ab, so kann SHAZ sehr grosse
Schrittweiten ausgeben. Diese sind aus dem aktuellen Standpunkt
auch sinnvoll, aber sie bedeuten für den gesamten Optimie-
rungsalgorithmus im nächsten Schritt eine große Veränderung im
Gradienten der Zielfunktion. Dadurch kann das Problem schlecht
konditioniert werden. Wir gehen in dieser Arbeit also von einer
solchen Oberschranke aus.

Im nächsten Abschnitt wird der Algorithmus noch einmal


kompakt zusammengefasst.
2.2. ALGORITHMUS 19

2.2 Algorithmus
Der Übersicht halber benutzen wir im Algorithmus die Funktion
descent_test(β, γ). Diese gibt TRUE zurück, falls
3
(γ < 0) ∧ (β > (1 + )γ)
q
erfüllt ist, ansonsten wird FALSE zurückgegeben. Zusätzlich soll-
te vom Benutzer ein Zähler deklariert werden, der die Anzahl der
Shifts nach rechts zählt und bei einer gewählten Oberschranke ab-
bricht. Das aktuelle αr ist dann die resultierende Schrittweite.

1. Input:

αl , αr , Φ(αl ), Φ(αr ),
DΦ(αl ) = [βl , γl ],
DΦ(αr ) = [βr , γr ],
αup

mit αl ≤ αr ≤ αup
und descent_test(βl , γl ) = TRUE.

Konstante Parameter: 0 < q < 1 und m > 1.

2. If αr = αl

Stop αr ist resultierende Schrittweite.

3. If αr > αup

Set αr = αup ;

4. Führe Hermite-Interpolation an den Stützstellen αl und αr


mit Steigungen γl und βr durch. P (α) bezeichnet das so ent-
standene kubische Polynom.

5. If P (α) hat lokales Minimum

Set αmin = lokales Minimum von P (α)

Else

Set αmin = −∞
2.2. ALGORITHMUS 20

6. Set δ ← m · (αr − αl ), ared ← (Φ(αl ) − Φ(αr )),


pred ← (Φ(αl ) − P (αmin ))

If Φ(αr ) > Φ(αl )


Set αup ← αr

7. Fallunterscheidung:

(a) Rechts-Shift wegen monotonen Abstiegs

If [(αmin < αl ) ∨ (αmin ≥ αup )]


∧ [descent_test(βr , γr ) = TRUE ]
Set αl ← αr und αr ← min(αr + δ, αup )
Gehe zu Schritt 1.
(b) Verfeinerung aufgrund mangelnder Reduktion

If (ared < q · pred ) ∧ (αl < αmin < αr )


δ
Set αr ← αmin , δ ← m
Gehe zu Schritt 1.
(c) Rechts-Shift wegen mangelnder Reduktion

If [(ared < q · pred ) ∧ (αmin > αr )]


∧ [descent_test(βr , γr ) = TRUE ]
Set αl ← αr und αr ← min(αmin , αr + δ, αup )
Gehe zu Schritt 1.
(d) Rechts-Shift aufgrund mangelnder positiver Krümmung

If [(ared ≥ q · pred ) ∧ (γr ≤ γl ) ∧ (αr < αup )]


∧ [descent_test(βr , γr ) = TRUE ]
Set αl ← αr und αr ← min(αr + δ, αup )
Gehe zu Schritt 1.
(e) Schrittweite akzeptiert

Else ( d.h. [(ared ≥ q · pred ) ∧ ((γr > γl ) ∨ (αr = αup ))]


∨ [descent_test(βr , γr ) = FALSE ])
Stop αr ist resultierende Schrittweite.
Kapitel 3

Konvergenz und Effizienz von


SHAZ

21
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 22

3.1 Konvergenz der Schrittweitenstrate-


gie SHAZ
Wir wollen nun beweisen, dass der Algorithmus SHAZ nach endlich
vielen Schritten terminiert. Dafür benötigen wir einige theoretische
Grundlagen, die hier zunächst angeführt werden sollen:

3.1.1 Theoretische Grundlagen


Definition 3.1.1
Sei D eine Teilmenge von R. Eine Funktion f : D → R heißt
Lipschitz-stetig auf einer Menge U ⊂ D , wenn es eine nichtne-
gative Konstante L ∈ R gibt, für die gilt:

∀ x1 , x2 ∈ U : |f (x1 ) − f (x2 )| ≤ L · |x1 − x2 |

Die Konstante L heißt dann Lipschitz-Konstante.

Lipschitz-stetige Funktionen haben unter anderem folgende Eigen-


schaften:

Satz 3.1.1 (Lebesgue)


Sei D ⊆ R, offen. Die Funktion f : D → R sei Lipschitz-stetig.
Dann ist f fast überall differenzierbar.

Dieser Satz ist in allgemeinerer, mehrdimensionaler Version auch


als ”Satz von Rademacher” bekannt.
Wir möchten die Konvergenz von SHAZ auch für Lipschitz-stetige
Funktionen f beweisen, die nicht überall differenzierbar sind. Die
Menge der Punkte, an denen f nicht differenzierbar ist bezeichnen
wir mit Ωf . Ωf ist aufgrund von Satz 3.1.1 eine Menge vom Maß
0. An dieser Stelle wollen wir den Begriff der verallgemeinerten
Ableitung einführen (siehe auch Kummer/Klatte [8] und Clarke
[9]). Wir beschränken uns dabei auf den eindimensionalen Fall:

Definition 3.1.2
Sei D ⊂ R, x0 ∈ D und f : D → R Lipschitz-stetig in einer
Umgebung von x. Ωf bezeichne die Menge der Punkte, an denen f
nicht differenzierbar ist. Dann heißt

Df (x0 ) = co{lim f 0 (xi ) | xi → x0 , xi ∈


/ Ωf }

verallgemeinerte Ableitung von f im Punkt x0 .


3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 23

Die verallgemeinerte Ableitung in einem Punkt ist also die konvexe


Hülle der Grenzwerte der benachbarten Ableitungen. Sie hat die
Form: Df (x) = [β, γ] ⊂ R mit β ≤ γ.
An den Stellen, an denen f stetig differenzierbar ist, gilt Df (x) =
{f 0 (x)}.
Beispiel 3.1.1
Als einfaches Beispiel betrachten wir kurz die Betragsfunktion f :
R → R, f (x) = |x|.

Df (0) = co{lim f 0 (xi ) | xi → 0, xi 6= 0}

= co{1, −1}

= [−1, 1]

Betrachten wir eine am Punkt x0 Lipschitz-stetige Funktion, die


in x0 differenzierbar ist. Dann ist die Ableitung betragsmäßig
durch die zugehörige Lipschitz-Konstante L beschränkt. Es gilt also
|f 0 (x0 )| ≤ L. In allen nicht differenzierbaren Punkten x̌ ist die ver-
allgemeinerte Ableitung Df (x̌) die konvexe Hülle der Ableitungen
in der Nachbarschaft. Das heißt, für x̌ = lim xi , mit f ist differen-
zierbar in xi , folgt, dass alle Häufungspunkte der Ableitungen f 0 (xi )
zum Intervall DF (x̌) gehören. Dieses Interval ist geschlossen und
in [-L,L] enthalten. Wir können also folgendes Lemma formulieren:
Lemma 3.1.1
Sei f : D → R eine in x0 Lipschitz-stetige Funktion mit Lipschitz-
Konstante L. Dann gilt für die verallgemeinerte Ableitung:

Df (x0 ) ⊂ [−L, L].

Satz 3.1.2 (Erweiterter Mittelwertsatz)


Sei D ⊂ R und das geschlossene Intervall [u, v] ⊂ D mit u < v.
Die Funktion f : D → R sei Lipschitz-stetig auf [u, v].
Dann gibt es ein xm ∈ [u, v] für das gilt:
f (v) − f (u)
Dm := ∈ Df (xm )
v−u
Definition 3.1.3
Sei D ⊂ R und x0 ∈ D. Eine mengenwertige Funktion Ψ : D → R
heißt oberhalbstetig im Punkt x0 , wenn für jede offene Menge
Ω ⊂ R mit Ψ(x0 ) ⊂ Ω eine Umgebung U von x0 existiert, so dass
gilt:
Ψ(x) ⊂ Ω ∀ x ∈ U.
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 24

Äquivalent dazu ist die Bedingung

lim sup Ψ(x) ⊆ Ψ(x0 ).


x→x0

Ψ heißt oberhalbstetig in D, wenn sie in jedem Punkt von D ober-


halbstetig ist.

Diese Eigenschaft gilt auch für unsere verallgemeinerten Ableitun-


gen:
Satz 3.1.3
Sei D ⊂ R, x0 ∈ D und f : D → R Lipschitz-stetig auf beschränk-
ten Teilintervallen von D. Dann ist die verallgemeinerte Ableitung
Df eine oberhalbstetige mengenwertige Abbildung.
Zum Beweis siehe [8] oder [9].

Für einen vollständigen Konvergenzbeweis benötigen wir außerdem


folgendes technische Lemma:
Lemma 3.1.2
P (α) sei ein kubisches Polynom auf dem Intervall [0, αr ] mit Werten

P (0) = 0,

P (αr ) < P (0).

und Steigungen

Ṗ (0) < 0,

Ṗ (αr ) < 0.

Sei außerdem eine Konstante q gegeben, mit 0 < q ≤ 1, so dass für


P (αr ) − P (0) P (αr )
die Sekantensteigung Dm := = gilt:
αr − 0 αr

Ṗ (αr ) + 2Ṗ (0)


Dm ≤
3(1 + 1q )

Dann hat P (α) im Innerenµ des Intervalls


¶ [0, αr ] kein freies Mini-
1
mum, das kleiner ist als · P (αr ) .
q
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 25

Beweis :

P (α) hat die Form:

P (α) = bα + cα2 + dα3 (3.1)

und die Ableitung ist:

d
Ṗ (α) = P (α) = b + 2cα + 3dα2 .

Die Koeffizienten lassen sich wie folgt darstellen:

b = Ṗ (0)

3Dm − Ṗ (αr ) − 2Ṗ (0)


c= (3.2)
αr

Ṗ (αr ) + Ṗ (0) − 2Dm


d=
αr2

Für ein freies Minimum ist notwendig, dass Ṗ (α) = 0.


Multiplizieren wir die resultierende Gleichung mit α, so erhalten
wir:

bα + 2cα2 + 3dα3 = 0

2c 2 b
⇔ dα3 = − α − α.
3 3
Setzen wir diesen Term für dα3 in (3.1) ein, so können wir den ku-
bischen Term eliminieren und erhalten das quadratische Polynom:
α
Q(α) = (2b + cα)
3
Q(α) und P (α) nehmen nach Konstruktion von Q(α) in allen
stationären Punkten von P (α) den gleichen Wert an. Wir zeigen
im Folgenden, dass Q(α) durch 1q P (αr ) nach unten beschränkt
ist, also kein stationärer Punkt von P (α) unterhalb von 1q P (αr )
existieren kann.

Dafür bestimmen wir zunächst Q(αr ):


3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 26

αr
Q(αr ) = (2b + cαr )
3

wir setzen für b und c die Darstellung (3.2) ein und erhalten:
³ ´α
r
Q(αr ) = 2Ṗ (0) + 3Dm − Ṗ (αr ) − 2Ṗ (0)
3
à !
Ṗ (αr )
= Dm − αr . (3.3)
3

Ein Minimum von Q(α) muss die Bedingung Q̇(α) = 0 erfüllen:


2 2
Q̇(α) = b + cα = 0
3 3
Ein stationärer Punkt liegt also bei:
b
α̃ = − .
c
Ṗ (0) = b < 0 laut Voraussetzung. Für c und α̃ können drei Fälle
auftreten:
(1) c < 0(⇒ α̃ ≤ 0)
(2) c > 0 und α̃ ≥ αr
(3) c > 0 und 0 < α̃ < αr
Im Fall (1) ist c negativ. Dann stellt Q(α) eine nach unten geöffnete
Parabel dar mit Scheitelpunkt bei α̃ ≤ 0. Also nimmt Q(α) im
Intervall [0, αr ] seinen kleinsten Wert bei α = αr an.
Eine analoge Betrachtung ergibt sich für Fall (2), d.h. positives c
und α̃ ≥ αr . Dann haben wir eine nach oben geöffnete Parabel mit
Scheitelpunkt rechts von oder gleich αr und somit ebenfalls den
kleinsten Wert von Q(α) im Intervall [0, αr ] bei αr . Wir müssen
also nur noch zeigen, dass Q(αr ) > 1q · P (αr ).

Es gilt für α ∈ [0, αr ] :


Q(α) ≥ Q(αr )
à !
Ṗ (αr )
= Dm − αr
(3.3) 3
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 27

Da Ṗ (αr ) und P (αr ) laut Voraussetzung negativ sind, gilt:

1
Q(α) ≥ Dm αr = P (αr ) ≥ · P (αr ).
q
Die Behauptung ist also für die Fälle (1) und (2) bewiesen.

Für den dritten Fall ist c positiv und α̃ ∈ (0, αr ). Es gilt al-
so α̃ = −b
c
< αr ⇔ −b < αr c.
Wir können dann abschätzen:
−b2 bαr −αr2 c
Q(α̃) = ≥ ≥
3c
|{z} 3 3
<0

Für c setzen wir nun die Darstellung (3.2) ein und erhalten:

αr2 3Dm − Ṗ (αr ) − 2Ṗ (0))


Q(α̃) ≥ − ·
3 αr
à !
Ṗ (αr ) + 2Ṗ (0)
= −Dm + αr
3
à µ ¶ !
1 Ṗ (αr ) + 2Ṗ (0)
= −Dm + 1 + αr
q 3(1 + 1q )

Ṗ (αr ) + 2Ṗ (0)


Betrachten wir die Voraussetzung Dm ≤ , so können
3(1 + 1q )
wir weiter abschätzen:
· µ ¶ ¸
1
Q(α̃) > −Dm + 1 + Dm α r
q

1
= · Dm · αr
q

1
= · P (αr )
q
Für alle drei Fälle erhalten wir also, dass Q(α) im Intervall [0, αr ]
durch 1q · P (αr ) nach unten beschränkt ist. Da für alle stationären
Punkte αs von P (α) gilt P (αs ) = Q(αs ) folgt daraus, dass P (α)
kein freies Minimum hat, das kleiner als 1q · P (αr ) ist. Somit ist die
Behauptung bewiesen. ¤
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 28

3.1.2 Voraussetzungen
Wir versuchen die Voraussetzungen an Φ(α) möglichst gering zu
halten. Die folgenden Punkte, fordern wir für den sich anschließen-
den Konvergenzbeweis:

• αup < ∞ wird als Input vorgegeben oder Φ(α) > Φ(0) für al-
le hinreichend großen α. Dann landet der Algorithmus, wenn
vorher die Abbruchbedingung noch nicht erfüllt wurde, ir-
gendwann in Fall (c). Hier wird dann αup mit einem reellen
Wert kleiner unendlich aufdatiert.
Zusätzlich sei Anzahl der Rechts-Shifts wird durch eine Obere
Schranke z ∈ N begrenzt.

• Φ(α) := f (x + αs) ist Lipschitz-stetig auf beschränkten Teil-


intervallen von [0, ∞) und hat somit für jedes α ∈ [0, ∞) eine
verallgemeinerte Ableitung DΦ(α) = [β, γ] mit β, γ ∈ R, β ≤
γ. DΦ(α) soll für jedes α auswertbar sein.

• Der vom Benutzer zur Verfügung gestellte Startwert αl0 hat


eine negative verallgemeinerte Ableitung, d.h. DΦ(αl0 ) =
[βl0 , γl0 ] mit βl0 ≤ γl0 < 0 und es muss zusätzlich gelten:
3
βl 0 > (1 + )γl 0 .
q

3.1.3 Konvergenzbeweis
Satz 3.1.4
Unter den Voraussetzungen (3.1.2) terminiert die Line-Search
SHAZ nach endlich vielen Schritten.

Beweis :

Bei jedem Durchlauf des Algorithmus wird das Intervall [αl , αr ]


entweder

1) akzeptiert (Fall (e)),

2) verschoben (Fälle (a), (c), (d)) oder

3) verfeinert (Fall (b)).

Wir müssen also ausschließen, dass die Fälle 2) und 3) unendlich


oft auftreten.
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 29

Verschiebungen (Shifts nach rechts):

Die Anzahl der Verschiebungen ist durch z ∈ N nach oben


beschränkt. Unabhängig davon, ob zwischenzeitlich Verfeinerungen
gemacht werden, wird spätestens nach insgesamt z Rechts-Shifts
terminiert.

Verfeinerungen:

Wir nehmen an, dass es unendlich viele Verfeinerungen ohne Unter-


brechung gibt und führen diese Annahme zum Widerspruch. Wir
betrachten also ausschließlich den Fall 7(b).
αl bleibt dann fest, während αr jeweils durch den Minimalpunkt
αmin der kubischen Interpolation P (α) aufdatiert wird. Wir be-
trachten also eine Folge (αr )k mit (αr )k+1 = αmink und αmink =
arg min Pk (α).
αmink ist in den betrachteten Fällen immer Element des offenen In-
tervalls (αl , αrk ). Die Folge der (αr )k ist somit monoton fallend und
durch αl nach unten beschränkt.
Daraus folgt, dass ein Grenzwert

αr ∗ = lim (αr )k ≥ αl
k→∞

existiert.

Φ ist laut Voraussetzung Lipschitz-stetig in αl , also ist die


verallgemeinerte Ableitung oberhalbstetig im Punkt αl und es gilt:

lim sup DΦ(α) ⊂ DΦ(αl )


α→αl

Es gibt also zu jedem δ < 0 ein ε > 0, so dass für α ∈ (αl , αl + ε)


gilt:
DΦ(α) ⊂ [βl − δ, γl + δ]
Wir unterscheiden daher bei der Konvergenzuntersuchung noch ein-
mal zwei Fälle:

(i) αr ∗ = αl
(ii) αr ∗ > αl

Um Fall (i) zum Widerspruch zu führen ist es hinreichend zu


zeigen, dass die Voraussetzungen von Lemma 3.1.2 nahe an αl
erfüllt sind.
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 30

Laut erweitertem Mittelwertsatz (Satz 3.1.2 auf Seite 23) gibt es


für jedes αr ∈ (αl , αl + ε) ein αm ∈ (αl , αr ], so dass für ein Dm ∈
DΦ(αm ) gilt:
Φ(αr ) − Φ(αl )
Dm = .
αr − αl
Aufgrund der Oberhalbstetigkeit der verallgemeinerten Ableitung
gibt es zu jedem δ ein ε, so dass für alle αr ∈ (αl , αl + ε) und
αm ∈ (αl , αr ) gilt:

[βr , γr ] ⊂ [βl − δ, γl + δ]

⇒ βr ≥ βl − δ (3.4)

und Dm ∈ [βl − δ, γl + δ]

⇒ D m ≤ γl + δ (3.5)

Außerdem gilt nach Voraussetzung, dass

3
βl > (1 + )γl . (3.6)
q
Wir wählen δ folgendermassen:

βl − (1 + 3q )γl
δ < min{−γl , 3 }. (3.7)
4+ q
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 31

Wegen (3.6) ist δ > 0 und wir können folgern:

βl − (1 + 3q )γl
δ< 3
4+ q

3 3
⇔ (4 + )δ < βl − (1 + )γl
q q

1 3
⇔ 3(1 + )δ + δ < βl − (1 + )γl
q q

1 3
⇔ 3(1 + )δ < βl − δ −(1 + )γl
q | {z } q
≤ βr
(3.4)

1 3
⇒ 3(1 + )δ < βr − (1 + )γl
q q

βr − (1 + 3q )γl
⇔δ<
3(1 + 1q )

βr + 2γl − 3(1 + 1q )γl


⇔δ<
3(1 + 1q )

βr + 2γl
⇔δ< − γl
3(1 + 1q )

βr + 2
⇔ γl + δ <
3(1 + 1q )

Mit Ungleichung (3.5) folgt nun:

βr + 2γl
Dm < . (3.8)
3(1 + 1q )

Das gilt für zu δ zugehöriges ε für alle αr , αm ∈ (αl , αl + ε). Außer-


dem gilt wegen(3.7):

βr ≤ γl + δ < 0.
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 32

Für unser Hermite-Interpolationspolynom werden folgende Steigun-


gen gewählt:
Ṗ (αl ) = max DΦ(αl ) = γl

Ṗ (αr ) = min DΦ(αr ) = βr


Es gilt also:
Ṗ (αr ) + 2Ṗ (αl )
Dm <
3(1 + 1q )
Wir substituieren nun
P̂ (α) = P (α + αl ) − P (αl ).

Dann gilt:

P̂ (0) = 0 und

P̂ (αr − αl ) = P (αr ) − P (αl ) < 0

und für die Ableitung:


˙
P̂ (α) = Ṗ (α + αl ).

Dann erfüllt P̂ also mit


˙ ˙
P̂ (αˆr ) + 2P̂ (0)
Dm ≤
3(1 + 1q )
die Voraussetzungen für Lemma 3.1.2 mit α̂r = αr − αl und wir
wissen somit, dass P̂ (α) in (0, α̂r ) kein Minimum hat, das kleiner
ist als ( 1q · P̂ (α̂r ))
Ein Minimum von P̂ an der Stelle α̂min würde ein Minimum von
P (α) an der Stelle αmin = αl + α̂min bedeuten.
Es gilt also für ein potentielles α̂min
1
P̂ (α̂min ) ≥ P̂ (α̂r )
q

1
⇔ P (αl + α̂min ) − P (αl ) ≥ (P (αr ) − P (αl ))
q

⇔ P (αl ) − P (αr ) ≥ q(P (αl ) − P (αmin ))

⇔ ared ≥ q · pred
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 33

Das bedeutet, dass die Bedingung für eine Verfeinerung nicht mehr
erfüllt ist.

Insgesamt haben wir bisher gezeigt, dass keine Verfeinerungen für


(i), also α∗ = αl , vorkommen können.

Es bleibt noch der Fall (ii), also α∗ > αl , zu widerlegen.


Hierbei betrachten wir die Folge (αr k )k , die von rechts gegen Ihren
Grenzwert α∗ konvergiert.
Wir wissen, dass die Funktion Φ Lipschitz-stetig auf beschränkten
Intervallen ist. Die jeder Iteration zugehörigen Interpolationspoly-
nome bezeichnen wir mit Pk (α). Die Koeffizienten der Polynome
lassen sich wie in Darstellung (2.1) als Kombination von Funkti-
onswerten und Ableitungen von Φ an den Stützstellen schreiben,
wobei höchstens dreimal durch (αr k − αl ) > 0 dividiert wird.
Daraus folgt, dass jeder Koeffizient beschränkt ist. Somit sind alle
Pk auf den betrachteten Intervallen uniform beschränkt. Die Folge
der Pk ist also gleichgradig stetig. Die Abstände αr k − α∗ gehen
gegen 0, für k → ∞. In jedem Schritt wird αr k mit dem aktuellen
Minimalpunkt αmin k aufdatiert. Dabei gilt α∗ < αmin k < αr k . Da
αr k+1 = αmin k , konvergiert die Folge der (αmin k )k ebenfalls gegen
α∗ und es gilt:

lim pred = Φ(αl ) − lim Pk (αmin k )


k→∞ k→∞

= Φ(αl ) − lim Pk (αr k )


k→∞

= Φ(αl ) − lim Φ(αr k )


k→∞

= Φ(αl ) − Φ(α∗ )

= lim ared (3.9)


k→∞

Für positive Reduktionen, also limk→∞ pred = limk→∞ ared > 0


muss der Akzeptanztest mit q < 1 für ein endliches k erfüllt sein
und der Algorithmus bricht ab.
Wir untersuchen also noch den nichtpositiven Fall:

lim pred = Φ(αl ) − lim Pk (αr k ) ≤ 0.


k→∞ k→∞
3.1. KONVERGENZ DER SCHRITTWEITENSTRATEGIE SHAZ 34

Dabei müssen alle Interpolations-Polynome ihr Minimum im


Inneren des Intervalls (α∗ , αrk ) annehmen.

Wie weiter oben schon erläutert sind die Koeffizienten der


Polynome auf beschränkten Intervallen beschränkt. b = γl ist
konstant, die oberen Schranken der beiden anderen Koeffizienten
bezeichnen wir mit c̄ > 0 und d¯ > 0. O.B.d.A setzen wir αl = 0
und somit P (αl ) = Φ(αl ) = 0 und verzichten auf eine ausführliche
Substitution wie im Fall (i). Wir betrachten das Intervall [α∗ , αr k ],
dann gilt:

¯ 3
Pk (α) ≤ bα + c̄α2 + dα

¯ k ) α2
≤ bα + (c̄ + dα
| {z r }
=c̃>0

≤ bα + c̃α2

−b
Der rechte quadratische Term hat sein Minimum bei α̃ = und
2c̃
wir erhalten:

Pk (α) ≤ bα̃ + c̃α̃2

−b2 b2
= +
2c̃ 4c̃

−b2
= <0
4c̃
Die Aussage Pk (α) < 0 für alle k bildet einen Widerspruch zur An-
nahme (3.9) Φ(αl ) − limk→∞ Pk (α∗ ) ≤ 0, da wir o.B.d.A Φ(αl ) = 0
gesetzt hatten.
Wir haben nun also die Annahme, dass es eine unendliche Folge
von Verfeinerungen gibt, vollständig widerlegt. ¤

Da die Konvergenz nun sichergestellt ist wollen wir und im


nächsten Abschnitt mit der Effizienz von SHAZ beschäftigen:
3.2. EFFIZIENZ DES SCHRITTWEITENALGORITHMUS 35

3.2 Effizienz des Schrittweitenalgorith-


mus
Wir rekapitulieren zunächst die Definition 1.2.1:
Eine Schrittweitenstrategie α = α(x, s) heißt effizient, wenn es zum
Startvektor x0 ∈ Rn für alle x aus der Niveaumenge f f (x0 ) ein r > 0,
r ∈ R gibt mit

f (x) − f (x + αs) ≥ rk∇f (x)k2 cos2 ϕ

wobei

ϕ = ∠(∇f (x), s)
µ ¶
−∇f (x)T s
= arccos
k∇f (x)kksk

Satz 3.2.1
Sei Φ(α) := f (x + αs) stetig differenzierbar, mit lokal Lipschitz-
stetiger Ableitung. 0 6= ksk < ∞, αl0 = 0 und Φ̇(0) < 0. Die
Schrittweiten-Strategie SHAZ effizient, wenn die Terminierung oh-
ne die Oberschranken αup und z zu Stande gekommen ist.

Beweis: Bei SHAZ gilt für eine ermittelte zulässige Schrittweite αr


immer ared ≥ q · pred, also Φ(αl ) − Φ(αr ) ≥ b · (Φ(αl ) − PH (αmin )).
Wobei αl , αr und αmin die in der letzten Iteration erreichten,
finalen Werte verkörpern und PH bezeichnet das interpolierende
Hermite-Polynom. αr ist also die zu untersuchende resultierende
Schrittweite.

Zu zeigen ist:

f (x) − f (x + αs) ≥ rk∇f (x)k2 cos2 ϕ


µ ¶
−∇f (x)T s
mit ϕ = arccos
k∇f (x)kksk

Das ist äquivalent zu


µ ¶2
∇f (x)T s
f (x) − f (x + αs) ≥ r .
ksk
3.2. EFFIZIENZ DES SCHRITTWEITENALGORITHMUS 36

Es ist Φ(0) ≥ Φ(αl ), anderenfalls wäre der Algorithmus nicht ter-


miniert, sondern mit Fall (b) fortgefahren.
Es gilt also:

f (x) − f (x + αr s) =Φ(0) − Φ(αr )

= Φ(0) − Φ(αl ) +Φ(αl ) − Φ(αr )


| {z }
≥0

≥Φ(αl ) − Φ(αr )

Wir können den Effizienzbeweis also auf das Intervall [αl , αr ]


beschränken und es genügt zu zeigen, dass ein 0 < r ∈ R existiert,
so dass gilt:

µ ¶2
! ∇f (x)T s
Φ(αl ) − Φ(αr ) ≥ r
ksk
Im Folgenden bezeichne Φ̇ die Richtungsableitung von Φ(α) :=
f (x + αs) nach α, also:

d
Φ̇(α) = f (x + αs) = ∇f (x + αs)T s

Außerdem gilt für das Hermite Polynom PH (α) insbesondere an der
Stützstelle αl :

PH (αl ) = Φ(αl )

ṖH (αl ) = Φ̇(αl )

Das interpolierende Hermite-Polynom kann folgendermaßen darge-


stellt werden:

PH (α) = Φ(αl ) + b(α − αl ) + c(α − αl )2 + d(α − αl )3 . (3.10)

Dabei entsprechen die Koeffizienten der Darstellung (2.2) auf Seite


14 für das um (αl , Φ(αl )) verschobene Polynom.
Wir haben also:
3.2. EFFIZIENZ DES SCHRITTWEITENALGORITHMUS 37

b = Φ̇(αl ) und

3(Φ(αr ) − Φ(αl )) Φ̇(αr ) + 2Φ̇(αl )


c= −
(αr − αl )2 αr − αl

Nach dem Mittelwertsatz der Differentialrechnung gibt es ein ξ ∈


(αl , αr ) mit

Φ(αr ) − Φ(αl )
Φ̇(ξ) =
αr − αl
Da zusätzlich bei zulässiger Schrittweite Φ̇(αr ) > Φ̇(αl ) können wir
den Koeffizienten c folgendermaßen Abschätzen:
3Φ̇(ξ) − 3Φ̇(αl )
c≤
αr − αl
¯ ¯
¯ 3(Φ̇(ξ) − Φ̇(α )) ¯
¯ l ¯
≤¯ ¯
¯ αr − αl ¯

|3(Φ̇(ξ) − Φ̇(αl ))|



|ξ − αl |
Sei L1 > 0 die Lipschitzkonstante der Ableitung Φ̇(α) auf dem
Intervall (αl , ξ) Dann gilt:
c ≤ 3L1 .
Analog können wir eine obere Schranke für d herleiten und erhalten
mit zugehöriger Lipschitz-Konstante L2 > 0:
2L2
d≤ .
αr − αl
Die Ungleichung (3.10) können wir nun folgendermaßen abschätzen:
2L2
PH (α) ≤ Φ(αl ) + Φ̇(αl )(α − αl ) + 3L1 (α − αl )2 + (α − αl )3
αr − αl
µ ¶
2L2
≤ Φ(αl ) + Φ̇(αl )(α − αl ) + 3L1 + (αr − αl ) (α − αl )2
αr − αl

= Φ(αl ) + Φ̇(αl )(α − αl ) + (3L1 + 2L2 )(α − αl )2


3.2. EFFIZIENZ DES SCHRITTWEITENALGORITHMUS 38

Wir wählen eine Konstante 0 < Q ∈ R so dass Q eine obere Schran-


(3L1 + 2L2 )
ke für ist. (0 6= ksk < ∞ gilt laut Voraussetzung)
ksk2
Wir erhalten:

Q · ksk2 ≥ 3L1 + 2L2


Somit können wir PH (α) abschätzen:

PH (α) ≤ PH (αl ) + ṖH (αl )(α − αl ) + Q · ksk2 (α − αl )2


Da wir unsere Betrachtungen auf das Intervall [αl , αr ] beschränken,
gilt:

PH (αmin ) ≤ PH (α) ∀ α ∈ [αl , αr ]


Außerdem stimmt PH (α) mit Φ(α) = f (x + αs) im Punkt αl über-
ein, sowie die erste Ableitung beider, und wir erhalten:

PH (αmin ) ≤ Φ(αl ) + Φ̇(αl )(α − αl ) + Qksk2 (α − αl )2 (3.11)


| {z }
:=RS

Wenn P (αmin ) kleiner oder gleich der rechten Seite (RS) der Unglei-
chung für alle α ist, so gilt das auch für das Minimum der rechten
Seite. Da Q > 0, beschreibt (RS) als quadratisches Polynom eine
nach oben geöffnete Parabel. Ein stationärer Punkt ist also gleich-
zeitig das Minimum von (RS). Zur Bestimmung dieses Minimums
leiten wir (RS) nach α ab:

˙ = Φ̇(αl ) + 2Qksk2 (α − αl )
(RS)
Wir setzen diese Ableitung = 0 zur Ermittlung des stationären
Punktes:

0 =Φ̇(αl ) + 2Q · ksk2 (α − αl )

−Φ̇(αl )
⇔ α − αl =
2Qksk2

−∇f (x + αl s)T s
⇔ α − αl =
2Qksk2
3.2. EFFIZIENZ DES SCHRITTWEITENALGORITHMUS 39

Der obigen Term für (α − αl ) wird nun in die Ungleichung (3.11)


eingesetzt:

µ ¶
T −∇f (x + αl s)T s
P (αmin ) ≤ Φ(αl ) + ∇f (x + αl s) s ·
2Qksk2
µ ¶2
2 ∇f (x + αl s)T s
+Qksk
2Qksk2

¡ ¢2 ¡ ¢2
∇f (x + αl s)T s 1 ∇f (x + αl s)T s
⇔ P (αmin ) ≤ Φ(αl ) − +
Qksk2 4 Qksk2
¡ ¢2
3 ∇f (x + αl s)T s
⇔ P (αmin ) − Φ(αl ) ≤ −
4 Qksk2
µ ¶2
∇f (x + αl s)T s
⇔ Φ(αl ) − P (αmin ) ≥ r
ksk

3
mit r = > 0.
4Q

¤
Da wir nun Konvergenz und Effizienz sichergestellt haben möch-
ten wir im nächsten Kapitel eine speziellere Eigenschaft von SHAZ
untersuchen und widmen und nun Suchrichtungen mit negativer
Krümmung.
Kapitel 4

Negative Krümmungen

40
4.1. RICHTUNGEN NEGATIVER KRÜMMUNG 41

4.1 Richtungen negativer Krümmung


Wir betrachten eine Funktion f : Rn → R, die zweimal stetig dif-
ferenzierbar ist. Abstiegsmethoden zur Minimierung einer solchen
Funktion generieren klassischerweise eine Folge von Iterierten, die
gegen einen stationären Punkt der Zielfunktion konvergiert. Man
erhält also eine Folge (xk )k deren Grenzwert x∗ die notwendige Op-
timalitätsbedingung erster Ordnung erfüllt. d.h. ∇f (x∗ ) = 0. Dies
ist aber in der Regel nicht hinreichend für ein Minimum von f in x∗ .
Beschränkt man sich auf konvexe Zielfunktionen, bzw. konvexe Be-
reiche der Zielfunktion, so hat man kein Problem. Die Notwendige
Optimalitätsbedingung erster Ordnung ist dann schon hinreichend.
Hat die Zielfunktion aber nichtkonvexe Bereiche, so muss man für
ein Minimum zusätzlich sicherstellen, dass die Hessematrix der Ziel-
funktion positiv semidefinit ist. Um dem gerecht zu werden, wurden
Algorithmen programmiert, deren Iterierte gegen einen stationären
Punkt mit positiv semidefiniter Hessematrix konvergieren.
Definition 4.1.1
Die Funktion f : Rn → R sei zweimal stetig differenzierbar im
Punkt x ∈ Rn . Ein Vektor s ∈ Rn heißt Richtung negativer
Krümmung der Hessematrix ∇2 f (x), wenn gilt:

sT ∇2 f (x)s < 0.

Bereiche mit negativer Krümmung, also mit einer Hessematrix, die


nicht positiv semidefinit ist, gehören hier also offensichtlich nicht
zur gesuchten Umgebung. Deshalb ist es für solche Methoden wich-
tig, schnell diesen nichtkonvexen Bereichen zu entkommen. Es ist
für Abstiegsmethoden also interessant Suchrichtungen mit negati-
ver Krümmung möglichst gut auszunutzen, da an diesen Stellen
auch viel Abstieg möglich ist. Siehe hierzu auch Fasano / Roma [5].
Unter bestimmten Voraussetzungen kann hier dann auch Konver-
genz zu einem kritischen Punkt zweiter Ordnung garantiert werden,
also ein Punkt x∗ für den gilt:

∇f (x∗ ) = 0
und
∇2 f (x∗ ) ist positiv semidefinit.
Konvergenzbeweise und Methoden hierzu finden sich auch bei
Gould et al. [4], Moré and Sorensen [6] und McCormick [7].
Für Abstiegsrichtungen mit negativer Krümmung verringert
sich lokal nicht nur der Wert der Zielfunktion (wie bei jeder
4.2. SHAZ AM BEISPIEL BFGS-UPDATES 42

Abstiegsrichtung) sondern auch die erste Richtungsableitung der


Zielfunktion. Diese Eigenschaft kann den Algorithmus bei der
Suche nach konvexen Bereichen zusätzlich beschleunigen.

Eine gängige Methode, die eine Linesearch benötigt, die be-


stimmte Krümmungsbedingungen erfüllt, ist das BFGS-Update,
welches wir im nächsten Abschnitt im Zusammenspiel mit SHAZ
untersuchen wollen.

4.2 SHAZ am Beispiel BFGS-Updates


Um die guten Eigenschaften von SHAZ hinsichtlich der Richtungen
negativer Krümmung aufzuzeigen, betrachten wir hier als ein
Beispiel die Quasi-Newton-Methode mit BFGS update.
Eine Ausfürhliche Herleitung findet man z.B. bei Jarre / Stoer [2].

Wir nehmen an, dass SHAZ in jeder Iteration terminiert, oh-


ne, dass die Oberschranken z oder αup greifen müssen.

Quasi-Newton Methoden sind eine Abwandlung der Newton-


Methoden, die die Hessematrix, bzw. die Inverse der Hessematrix
nicht explizit ausrechnen, sondern durch vorhandene Informationen
über den Gradienten approximieren. Die Iterierten werden wie
folgt aufdatiert:

xk+1 = xk + αk Bk−1 ∇f (xk )

Dabei bezeichnet Bk die Approximation der Hessematrix ∇2 f (xk ),


bzw.:
xk+1 = xk + αk Hk ∇f (xk )
und Hk bezeichnet die Approximation von ∇2 f (xk )−1 .
Eine der bekanntesten Update-Formeln für Bk bzw. Hk ist die soge-
nannte BFGS-Update-Formel, benannt nach den Autoren Broyden,
Fletcher, Goldfarb, und Shanno. Dabei wird nach folgender Richt-
linie verfahren:
Algorithmus 4.2.1 (BFGS-Verfahren)
Initialisiere x0 und Annäherung der Hessematrix B0 .
Solange ∇f (xk ) 6= 0 iteriere:

• Berechne Suchrichtung sk durch Lösen des Gleichungssystems


Bk sk = −∇f (xk ).
4.2. SHAZ AM BEISPIEL BFGS-UPDATES 43

• Berechne geeignete Schrittweite αk und datiere auf: xk+1 =


xk + αk sk .

• yk = ∇f (xk+1 ) − ∇f (xk )
Bk sk sTk Bk yk ykT
• Bk+1 = Bk − + T
sTk Bk sk yk sk

Hierbei ist es essentiell für das gesamte Verfahren, dass y T s > 0,


damit die Approximationen der Hessematrix positiv semidefinit
sind. Nutzt man dabei die Linesearch SHAZ, so kann den Richtun-
gen negativer Krümmung noch schneller entkommen:

Eine Schrittweite αr wird nur akzeptiert, wenn Φ̇(αr ) ≥ Φ̇(αl ).


Φ̇(αr ) − Φ̇(αl )
Die approximierte Krümmung ist für ein aktep-
αr − αl
tiertes αr also immer nichtnegativ. Lässt man nun alle vorherigen
αl außer Acht, so kann man den dritten Schritt des obigen
Algorithmus leicht modifizieren zu:

yk = ∇f (xk + αr s) − ∇f (xk + αl s).

Dann gilt:

ykT s = (∇f (xk + αr sk ) − ∇f (xk + αl sk ))T sk

= ∇f (xk + αr sk )T sk − ∇f (xk + αl sk )T sk

= Φ̇(αr ) − Φ̇(αl )

≥0

Auf diese Weise ist y T s > 0 immer erfüllt. Außerdem ist die
Möglichkeit gross, den Richtungen negativer Krümmung schnell zu
entkommen, da der hier mögliche Abstieg durch die Rechts-Shifts
ausgenutzt wird.

Im Bereich der Analysis haben wir SHAZ nun aus vielen


Sichtweisen beleuchtet. Es fehlt noch eine numerische Betrachtung,
die wir im folgenden Kapitel anstellen wollen:
Kapitel 5

Numerische Aspekte

44
5.1. KONVERGENZ FÜR GLEITPUNKTARITHMETIK 45

5.1 Konvergenz für Gleitpunktarithmetik


Da es sich bei unsere Linesearch um einen Algorithmus handelt, der
der mit Hilfe von Computern implementiert und ausgeführt wird,
darf eine Betrachtung für Gleitpunktarithmetik hier nicht fehlen.
Wir haben analytisch bewiesen, dass SHAZ nach endlich vielen
Schritten terminiert. Nun wollen wir zeigen, dass SHAZ rein als
Computer-Programm betrachtet auch terminiert.

5.1.1 Einführung Gleitpunktarithmetik


Wir wollen zunächst einige Grundbegriffe aus dem Themenbereich
der Gleitpunktarithmetik anführen. Ausführliches zu diesem The-
ma findet man z.B. bei Deuflhard [10].
Computer können nur mit Gleitpunktzahlen arbeiten. Das sind ra-
tionale Zahlen x der Form

x = 0 oder x = ±0.d1 d2 . . . dl · be .
Hierbei heißen
b ∈ N, b > 1 die Basis,
m := 0.d1 d2 , . . . , dl die Mantisse (zur Basis b) und
e ∈ Z, emin ≤ e ≤ emax der Exponent.
Die Ziffern di sind ganze Zahlen zwischen 0 und b-1, l heißt
Mantissenlänge.

Um möglichst viele Stellen einer Gleitpunktzahl in der Mantisse


unterzubringen, wird der Exponent e so gewählt, dass die erste
Ziffer der Mantisse ungleich Null ist. Diese Zahlen heißen normali-
sierte Gleitpunktzahlen.

Die kleinste normalisierte Gleitpunktzahl mit Mantissenlänge l, die


größer als 1 ist lautet:

1.00 . . . 01 · b0 = 1 + b(1−l) .

εm := b(1−l) heißt Maschinengenauigkeit. Außerdem definiert man


für eine Zahl x die sogenannte unit in the last place:

ulp(x) := 0.00 . . . 01) · be = b(1−l) · be = εm · be .

Die ulp gibt den Abstand zur betragsmäßig nächstgrößeren Gleit-


punktzahl an. Das Ergebnis einer Berechnung kann mehr als l Zif-
fern haben, muss aber im Computer mit l Ziffern abgespeichert
5.1. KONVERGENZ FÜR GLEITPUNKTARITHMETIK 46

werden. Dann muss gerundet werden.


Für den Vorgang der Rundung zur nächstgelegenen Gleitpunktzahl
benutzen wir das Zeichen ¤:
Beispiel für l = 3 und b = 10:

¤(0.234 × 0.567) = ¤(0.132678) = 0.133

Der absolute Fehler beim Runden einer Zahl x liegt bei


1
|x − ¤(x)| = ulp(x)
2
und der relative Fehler bei:
¯ ¯
¯ x − ¤(x) ¯ 1
¯ ¯ = εm .
¯ x ¯ 2

Haben wir nun zwei Zahlen x und y mit y < 12 ulp(x) oder y < 12 εm ,
so passiert bei der Addition folgendes:

¤(x + y) = x.

Wieder ein Beispiel für l = 3 und b = 10:

x = 0.234 · 103
y = 0.234 · 10−1 = ¤(y) 6= 0
¤(x + y) = ¤(0.2340234 · 103 ) = 0.234 · 103 = x.

Diese Eigenschaften machen wir uns bei einem Konvergenzbeweis


für Gleitpunktarithmetik zunutze:

5.1.2 Beweis der Terminierung


Das Programm SHAZ ist eine einzige While-Schleife. Es wird so
lange iteriert, bis der Return-Wert 0 ausgegeben wird. Das passiert
im Algorithmus entweder in Schritt 2 oder Schritt 7(f).
Nehmen wir wieder an, der Algorithmus terminiert nicht, es gibt
also unendlich viele Iterationen. Wir im analytischen Konvergenz-
beweis in Kapitel 3.1.3 auf Seite 28 wird bei jedem Durchlauf des
Algorithmus das Intervall[αl , αr ] entweder

1) akzeptiert (Fall (f )),

3) verschoben (Fälle (a), (d),(e)) oder

2) verfeinert (Fälle (b),(c)).


5.1. KONVERGENZ FÜR GLEITPUNKTARITHMETIK 47

αr und αl sind gerundete Gleitpunktzahlen. Wir gehen davon aus,


dass αr − αl > ε := max{ 12 ulp(αr ), 21 εm }. Sonst wäre αr − αl = 0
und der Algorithmus würde in Schritt 2 stoppen.
Da wir die Anzahl der Shifts a priori beschränken, müssen wir nur
eine unendliche Folge von Verfeinerungen betrachten.
Dabei bleibt αl konstant und die αr bilden eine monoton fallende
Folge, die nach untern durch αl beschränkt ist. Wie im analytischen
Konvergenzbeweis gibt es dann einen Grenzwert α∗ der Folge der
(αr k )k mit α∗ ≥ αl . Auch hier treffen wir wieder eine Fallunter-
scheidung:

(i) α∗ = αl
(ii)α∗ > αl

Für Fall (i) nähern sich die αr k für k → ∞ also αl an. Die
Abstände αl − αrk gehen dabei gegen Null. Wir kommen also für k
hinreichend gross in den Bereich, dass αl − αrk < ε und da wir uns
in den Gleitpunktzahlen bewegen, heißt das, dass αl = αrk . Der
Algorithmus terminiert also in Schritt 2.

Für Fall (ii) betrachten wir die Folge (αr k )k . Mit k → ∞ gehen
die Abstände αr k − αr k+1 gegen 0. Daraus folgt, dass wir für k
gross genug einen Bereich von Gleitpunktzahlen erreichen, in dem
αr k − αr k+1 < ε und damit αr k = αr k+1 . Da αr k+1 gleich dem
Minimalpunkt αmin k aus dem vorherigen Schritt ist, gilt zugleich:

Pk (αr k ) = Pk+1 (αr k+1 ) = Pk (αmin k ).

Damit ist aber die Abbruchbedingung 7. (f) erfüllt. Der Algorith-


mus wäre also schon in Schritt k terminiert. 

Wir haben nun also gezeigt, dass SHAZ auch in Gleitpunk-


tarithmetik nach endlich vielen Iterationen terminiert.
5.2. SHAZ IN DER PRAXIS 48

5.2 SHAZ in der Praxis


Zum Schluss wollen wir noch eine kurze Statistik betrachten, in
der SHAZ mit der Linesearch-Methode ”zoom()” von Nocedal und
Wright (siehe [1]) verglichen wird. Hierbei wurden verschiedene Op-
timierungsprobleme mit Quasi-Newton-Methoden gelöst. Für die
dabei auftretenden Suchrichtungen wurde jeweils bei identischen
Ausgangsbedingungen einmal mit SHAZ und einmal mit zoom eine
zulässige Schrittweite ermittelt. Wir vergleichen dabei die Reduk-
tion in der Merit-Funktion. Es wird der Linesearch als ”besser” be-
wertet, der eine größere Reduktion erlangt.
Die folgenden Beispiele verdanke ich der freundlichen Unterstüt-
zung von Sascha Eichstädt und Dr. Andrej Ponomarenko, die SHAZ
schon in ihren Optimierungsalgorithmen benutzen und mir einige
Ergebnisse zur Verfügung gestellt haben. In diesen Tests wurde mit
den Parametern q = 21 , m = 3 und z = 7 gearbeitet.

Testbeispiel gesamt SHAZ beide gleich SHAZ


mehr Re- weniger
duktion als Reduktion
zoom als zoom
ALLINIT 27 8 17 2
AUG2D 13 1 12 0
BT4 2 2 0 0
CHAIN 224 95 64 65
DTOC1NA 23 8 15 0
HS2 267 57 197 13
HS7 62 3 8 51
HS39 6 5 1 0
HS79 3 2 1 0
HS100LNP 20 1 17 2
Summe: 647 182 332 133

Testbeispiel gesamt SHAZ beide gleich SHAZ


mehr Re- weniger
duktion als Reduktion
zoom als zoom
Bsp1 47 21 0 26
Bsp2 58 25 0 33
Summe: 105 46 0 59

insgesamt können wir bei rund drei Viertel der Beispielfälle fest-
stellen, dass SHAZ gleich gut, oder besser als zoom reduziert. In
5.2. SHAZ IN DER PRAXIS 49

rund 30 Prozent ist SHAZ sogar deutlich besser als zoom und nur
ca. ein viertel der Suchrichtungen ergaben bei zoom eine bessere
Reduktion.
Diese beiden Schrittweitenstrategien wurden von den Endbenut-
zern auch in der Praxis beide benutzt und ergänzend eingesetzt.
Das lässt sich anhand der Test-Ergebnisse auch empfehlen. Darüber
hinaus bietet Zoom bei monoton fallenden Merit-Funktionen viel
Abstieg, was den gesamten Optimierungsalgorithmus beschleuni-
gen kann. Im Anhang befinden sich detaillierte Angaben über die
Reduktion der einzelnen Suchrichtungen, sowie der Quellcode von
SHAZ.

Abschließend können wir sagen, dass SHAZ eine gute alter-


native zu bisherigen Linesearch-Methoden darstellt und in der
Praxis auch schon erfolgreich angewandt wird.
5.2. SHAZ IN DER PRAXIS 50

Anhang: Quellcode SHAZ (programmiert in C)

# include <stdlib.h>
# include <math.h>

# define min(a,b) ((a < b) ? a : b)

# ifndef MATHUTILS_H
# define MATHUTLIS_H

# ifndef NAN
# define NAN (0.0/0.0)
# endif

# ifndef INFINITY
# define INFINITY (1.0/0.0)
# endif

# endif

static int searchstep(double *al, double *ar, double *vall, double *valr,
double *slopel, double *sloper, double *aup)
{
// we keep 0 <= *al < *ar, *al may grow
// vall may decrease but not grow
// we keep always slopel < 0
// decreasing bound
//slopel and sloper are array with two elements each
//slopel[0] = minimal element of generalized derivative at al
//slopel[1] = maximal element of generalized derivative at al
//sloper accordingly

double t,avgder, delder, slope, b,c,d,delta, pred, ared, deltar, one =1.0;
double frac = 0.5; // Minimal ared/pred ratio for acceptance
double fact=3; // Controls size of shifts to the right

// 0 if current ar is acceptable and al unchanged


// -1 if vall stays as before
// -2 if vall and slopel have taken old value of valr and sloper
// -3 if vall and slopel have taken old value of valr and sloper
// and now it’s ar = aup

// 4 if algorithm aborts becouse of incorrect input


// Except when 0 is returned the function and derivative at ar are not
5.2. SHAZ IN DER PRAXIS 51

// known and need to be evaluated by the calling program for next call.
//
// Hermite Interpolation to determine the coeffcients of the cubic

if(*ar > *aup) *ar = *aup;


if(slopel[1] >= 0.0 || *ar <= *al) {
printf(”abort line-search \n”);
*ar = NAN; return 4;
}
delta = *ar-*al;
deltar = 1.0/delta;
ared = *vall-*valr;
slope = -ared*deltar;
avgder = 0.5*(sloper[0]+slopel[1]);
delder = sloper[0]-slopel[1];
b = slopel[1]; // linear term
c = (3*slope - sloper[0] -2*(slopel[1]))*deltar; // quadratic term
d = 2*(avgder-slope)*deltar*deltar; // cubic term
// Minimum Calculation
t = c*c-3*d*b; // discrimenant
if ( t<= 0.0)
{
t = - INFINITY; // no local minimum exists,
// set t < 0 for first shift right!!!
}

else if(c >= 0)


t = -b/(c+sqrt(t));
else
t = (sqrt(t)-c)/(3*d); // now *al+t is minimizer of cubic interpolant
// Branching Decision
if( t < 0 || *al+t >= *aup) //Monotonic decline from *al to *aup
{ *al = *ar; *vall = *valr;
slopel[0] = sloper[0];
slopel[1] = sloper[1]; // replace *al by *ar
*ar = min(*al + fact*delta,*aup); // move *ar further right
printf(” first shift right t= %e \n”,t);
if (*ar == *al) return 0;
if (*ar == *aup) return -3;
else
return -2; //recommence in same direction
}
else
{
pred = - t*(b+t*(c+t*d)); // the reduction predicted by cubic model
5.2. SHAZ IN DER PRAXIS 52

printf(” ared %e pred %e \n”, ared,pred);

if( *vall - ared > *vall - pred*frac) // ared is not acceptable relative to pred;

{
if(ared <=0) *aup = *ar; // No actual reduction at all
*ar = min(*al+min(t,fact*delta),*aup); // try minimizer as new *ar
if(delta<t && valr < vall) // if *ar on way down make it to *al
{ *al += delta; *vall = *valr;
slopel[0] = sloper[0];
slopel[1] = sloper[1];
printf(” second shift right \n”); }
if (*ar == *al) return 0;
return -1; //keep going
}
// Now we have an acceptable *ar
else if( (sloper[1] <= slopel[1]) && (*ar<*aup))// *ar is still promising
{ *al = *ar; *vall = *valr;
slopel[0] = sloper[0];
slopel[1] = sloper[1]; // so we shift more
*ar = min(*al + fact*delta,*aup);
printf(” third shift right \n”);
if (*ar == *al) return 0;
return -2; //recommence in same direction
}
else
{
if( sloper[1] < slopel[1]) printf(” neg slope ”); // bad for secant
printf(”search ended with ared/pred = %e \n and curvatures %e %e \n”
, ared/pred, c+3*d*delta, (sloper[0]-slopel[1])*deltar);
return 0;
}
}
}

int descent(double bet, double gam, double frac)


{
if ((gam < 0) && (bet > (1+3/frac)*gam))
return 1;
else
return 0;
}

// Line-search project developed by Andreas Griewank and Susanne Kreiterling


// Goals: - Simplicity ( of course like everybody else )
5.2. SHAZ IN DER PRAXIS 53

// - No a priori bound on stepsize variation


// - Higher order reduction requirement
// The last item means that we compare the reduction obtained ( ared )
// to the reduction ( pred ) promised by cubic interpolation
// ( rather than linear extrapolation as done normally )
// That way we should achieve a good utilization of directions
// of negative curvature. Primary acceptance criterion of the
// current step multiplier *ar is that ared is at least pred*frac.
// The compile time constant frac may be chosen as any number
// between 0 and 1.
//
// The routine stepsearch listed below uses reverse communication
// and should be called repeatedly until the return value is 0.
// On the first call during a search the user must provide all 9
// arguments, subsequently he should only update the ’right’ values
// valr and sloper. In other words with phi and D_phi representing the
// merit function and its generalized derivative we must have on entry to
//stepsearch
//
// *vall == phi(*al), *slopel == D_phi(*al) [bet_l,gam_l] //(array with
// *valr == phi(*ar), *sloper == D_phi(*ar) [bet_r,gam_r] // 2 elements)
//
//where bet_* represents the minimal element of the generalized derivative at a*
//and gam_* represents the maximal element of the generalized derivative at a*
//
// Unless it returns the value 0 signalling termination, the routine
// stepsearch always alters the argument ar and it is the users duty to
// evaluate valr and sloper before calling again. Sometimes the
// routine also sets the value of *al on exit to that of *ar on entry
// but then *vall *slopel are changed accordingly. Whenever *al is
// increased in this way its old value is in effect forgotten and the
// line-seach recommences in effect from the new base point.
//
// The unique cubic interpolating the values and slopes at *al and *ar
// is used as model of the true function throughout.
Literaturverzeichnis

[1] J. Nocedal, S. J. Wright,Numerical Optimization, Springer Se-


ries in Operations Research 1999, 34-61.
[2] F. Jarre, J. Stoer,Optimierung, Springer-Verlag Berlin Heidel-
berg 2004, 135-194
[3] J. F. Bonnans, J. C. Gilbert, C. Lemaréchal, C. A. Sagastizá-
bal, Numerical Optimization, Theoretical and Practical Aspects,
Springer-Verlag Berlin Heidelberg New York 2003, 37-49
[4] N. I. M. Gould, S. Lucidi, M. Roma and Ph. L.
Toint, Exploiting Negative Curvature Directions in Li-
nesearch Methods for Unconstrained Optimization URL:
epubs.cclrc.ac.uk/bitstream/1362/RAL-TR-97-064.pdf
[5] G. Fasano, M. Roma, Iterative Computation of Negati-
ve Curvature Directions in Large Scale Optimization URL:
http://www.dis.uniroma1.it/ or/FIRB/FasanoRoma.pdf
[6] J. J. Moré and D. C. Sorensen, On the use of directions of
negative curvature in a modified Newton method, Mathematical
Programming, 16( l), 1979, 1-20
[7] G. P. McCormick, A modification of Armijo’s step-size rule
for negative curvature Mathematical Programming, 13(1), 1977,
111-115
[8] D. Klatte, B. Kummer, Nonsmooth Equations in Optimization,
Kluwer Academic Publishers, Dordrecht-Boston-London, 2002,
105-115
[9] F. H. Clarke, Optimization and Nonsmooth Analysis, Reprint
SIAM (Classics in Applied Mathematics, 5), 1990, 25-69
[10] P. Deuflhard, A. Hohmann, Numerische Mathematik I de
Gruyter, 1993, 25-66

54
Danksagung

Ich möchte mich für die spannende Aufgabenstellung und die lehr-
reiche und geduldige Betreuung von Prof. Dr. Andreas Griewank
bedanken, der mir vielfach mit Rat und Tat zur Seite stand.

Mein Dank gilt auch all denen, die mich während der Ent-
stehungszeit dieser Arbeit begleitet und unterstützt haben,
besonders Katharina und meinen Eltern.

55
Ich erkläre, dass ich die vorliegende Arbeit selbständig und nur
unter Verwendung der angegebenen Quellen und Hilfsmittel ange-
fertigt habe.

Berlin, den 25.9.2007

Das könnte Ihnen auch gefallen