Skip to main content

Optimierung in C++: Grundlagen und Algorithmen

Optimierung in C++: Grundlagen und Algorithmen

Claus Richter

ISBN: 978-3-527-80080-3

Oct 2016

218 pages

Select type: E-Book

$27.99

Vorwort XIII

1 Einleitung 1

1.1 Das lineare und das nichtlineare Optimierungsproblem 1

1.2 Definitionen und Bezeichnungen 1

1.3 Spezialfälle linearer und nichtlinearer Optimierungsaufgaben 2

1.4 Anwendungen 4

1.4.1 Strukturoptimierung 4

1.4.2 Das Least-Squares-Problem 5

1.4.3 Optimale Steuerung 6

2 Grundlagen 9

2.1 Regularitätsbedingungen 9

2.1.1 Slater-Bedingung 9

2.1.2 Abadie-Bedingung 9

2.1.3 Bedingung der linearen Unabhängigkeit – LICQ 10

2.1.4 Constraint Qualification 10

2.1.5 Bemerkungen 10

2.2 Optimalitätsbedingungen 10

2.2.1 Optimalitätskriterium mittels zulässiger Richtungen 11

2.2.2 Karush-Kuhn-Tucker-Bedingung 11

2.2.3 Bezeichnungen 11

2.2.4 Notwendige Bedingungen 2. Ordnung 12

2.2.5 Hinreichende Bedingungen 2. Ordnung 12

2.2.6 Strenge hinreichende Bedingungen 2. Ordnung 13

2.3 Optimalitätskriterien für spezielle Optimierungsaufgaben 13

2.4 Wünschenswerte Eigenschaften von Optimierungsverfahren 14

2.4.1 Theoretische Richtung 15

2.4.2 Empirische Richtung 17

2.5 Vom C++-Programm zum nutzerfreundlichen Softwaresystem 18

3 Mathematische Hilfsmittel 21

3.1 Das Austauschverfahren 22

3.2 Lösung von Gleichungssystemen mit der QR-Zerlegung 26

3.2.1 Aufbau des Algorithmus 28

3.3 Cholesky-Zerlegung 29

3.3.1 Grundlagen des Verfahrens 29

3.3.2 Aufbau des Algorithmus 30

3.3.3 Weiterführende Bemerkungen 31

3.4 Fibonacci-Verfahren 31

3.4.1 Grundlagen des Verfahrens 31

3.4.2 Aufbau des Algorithmus 33

3.5 Das Verfahren des Goldenen Schnitts 34

3.5.1 Grundlagen des Verfahrens 34

3.5.2 Aufbau das Algorithmus 35

3.6 Newton-Verfahren 36

3.6.1 Grundlagen des Verfahrens 36

3.6.2 Aufbau des Algorithmus 36

3.7 Runge-Kutta-Verfahren zur Lösung von Differenzialgleichungen 37

3.7.1 Weiterführende Bemerkungen 40

4 Probleme und Algorithmen als C++-Klassen 43

4.1 Die Programmiersprache C++ 43

4.2 DerWeg zur objektorientierten Programmierung 44

4.3 Begriffe der objektorientierten Programmierung 45

4.4 Lösungsverfahren und Probleme als Klassen 46

5 Lineare Optimierung 55

5.1 Das Simplexverfahren 56

5.1.1 Grundlagen des Verfahrens 56

5.1.2 Aufbau des Algorithmus 59

5.1.3 Konstruktion eines ersten Simplextableaus 61

5.2 Das revidierte Simplexverfahren 63

5.2.1 Grundlagen des Verfahrens 63

5.2.2 Aufbau des Algorithmus 66

5.3 Weiterführende Bemerkungen 67

5.4 Das Ellipsoidverfahren 67

5.4.1 Grundlagen des Verfahrens 67

5.4.2 Aufbau des Algorithmus 70

5.5 Weiterführende Bemerkungen 71

6 Quadratische Optimierung 73

6.1 Das Relaxationsverfahren 74

6.1.1 Grundlagen des Verfahrens 74

6.1.2 Aufbau des Algorithmus 74

6.1.3 Weiterführende Bemerkungen 76

6.2 Methode der aktiven Restriktionen von Fletcher 76

6.2.1 Grundlagen des Verfahrens 76

6.2.2 Der Algorithmus 77

6.2.3 Weiterführende Bemerkungen 78

7 Unbeschränkte nichtlineare Optimierung 79

7.1 Das Verfahren der stochastischen Suche 80

7.1.1 Grundlagen des Verfahrens 80

7.1.2 Aufbau des Algorithmus 80

7.1.3 Weiterführende Bemerkungen 81

7.2 Das Verfahren der koordinatenweisen Suche 82

7.2.1 Grundlagen des Verfahrens 82

7.2.2 Aufbau des Algorithmus 82

7.3 Das einfache Polytopverfahren 83

7.3.1 Grundlagen des Verfahrens 83

7.3.2 Aufbau des Algorithmus 85

7.3.3 Weiterführende Bemerkungen 86

7.4 Das Verfahren des steilsten Abstiegs 87

7.4.1 Grundlagen des Verfahrens 87

7.4.2 Aufbau des Algorithmus 88

7.4.3 Weiterführende Bemerkungen 89

7.5 Das Verfahren der konjugierten Gradienten 89

7.5.1 Grundlagen des Verfahrens 89

7.5.2 Aufbau des Algorithmus 91

7.5.3 Weiterführende Bemerkungen 91

7.6 Das Newton-Verfahren 92

7.6.1 Grundlagen des Verfahrens 92

7.6.2 Aufbau des Algorithmus 93

7.6.3 Weiterführende Bemerkungen 94

7.7 Das Newton-Verfahren mit konsistenter Approximation der Hesse-Matrix 95

7.7.1 Grundlagen des Verfahrens 95

7.7.2 Aufbau des Algorithmus 96

7.7.3 Weiterführende Bemerkungen 97

7.8 Das Verfahren der variablenMetrik (Quasi-Newton-Verfahren) 97

7.8.1 Grundlagen des Verfahrens 97

7.8.2 Aufbau des Algorithmus 99

7.8.3 Weiterführende Bemerkungen 100

8 Beschränkte nichtlineare Optimierung 101

8.1 Die adaptive Zufallssuche 102

8.1.1 Grundlagen des Verfahrens 102

8.1.2 Aufbau des Algorithmus 103

8.1.3 Weiterführende Bemerkungen 104

8.2 Das erweiterte Polytopverfahren 104

8.2.1 Grundlagen des Verfahrens 104

8.2.2 Algorithmus 106

8.2.3 Weiterführende Bemerkungen 108

8.3 Das Schnittebenenverfahren 109

8.3.1 Grundlagen des Verfahrens 109

8.3.2 Aufbau des Algorithmus 110

8.3.3 Weiterführende Bemerkungen 111

8.4 Das SQP-Verfahren 112

8.4.1 Grundlagen des Verfahrens 112

8.4.2 Aufbau des Algorithmus 113

8.4.3 Weiterführende Bemerkungen 114

8.5 Das erweiterte Newton-Verfahren 114

8.5.1 Grundlagen des Verfahrens 114

8.5.2 Aufbau des Algorithmus 116

8.5.3 Weiterführende Bemerkungen 117

8.6 Verfahren mit Straf- und Barrierefunktionen 117

8.6.1 Grundlagen des Verfahrens 117

8.6.2 Der Algorithmus 119

8.6.3 Weiterführende Bemerkungen 120

9 Globalisierung 123

9.1 Dämpfungs- und Regularisierungsmethoden 123

9.2 Hybride Methoden 127

9.3 Einbettungsmethoden 128

10 Innere-Punkte-Methoden 131

10.1 Das Projektionsverfahren 131

10.1.1 Grundlagen des Verfahrens 131

10.1.2 Aufbau des Algorithmus 133

10.1.3 Weiterführende Bemerkungen 136

10.2 Kurzschrittverfahren 136

10.2.1 Herleitung des Verfahrens 136

10.2.2 Beschreibung des Algorithmus 138

10.2.3 Weiterführende Bemerkungen 139

11 Parameteridentifikation 141

11.1 Parameterschätzung auf der Grundlage linearer Quadratmittelprobleme 142

11.2 Nichtlineare Parameterschätzung und nichtlineare Optimierungsverfahren 145

11.3 Das Gauß-Newton-Prinzip und ein darauf beruhendes Verfahren 146

11.3.1 Aufbau des Algorithmus 147

11.4 Parameterschätzung und SQP-Verfahren 149

11.5 Parameteridentifikation in Differenzialgleichungen 150

11.5.1 Grundlagen 150

11.5.2 Weiterführende Bemerkungen 152

12 Optimale Steuerung 155

12.1 Einführung 155

12.2 Umwandlung in eine nichtlineare Optimierungsaufgabe 155

12.3 Aufbau des Algorithmus 156

12.4 Implementierte numerische Methoden 157

13 Form- und Strukturoptimierung 161

13.1 Zusammenhang zwischen Bemessungsvariablen und Zustandsvariablen 161

13.2 Lösung von Strukturoptimierungsproblemen mit SQP-Verfahren 163

13.3 Ein weiteres Beispiel 166

14 Optisoft – Ein C++-Softwaresystem zur Optimierung 167

14.1 Einführung 167

14.2 Allgemeine Informationen über Optisoft 168

14.3 Handhabung von Optisoft 170

14.3.1 Formulierung eines Problems 171

14.3.2 Auswahl des Algorithmus 182

14.4 Übersicht über Softwarepakete 184

Anhang A Referenzmanual 187

Anhang B Liste der Beispiele 193

Literatur 195

Stichwortverzeichnis 199