Optimierung in C++ - Claus Richter - E-Book

Optimierung in C++ E-Book

Claus Richter

0,0
34,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Die Optimierung ist einer der bedeutendsten Zweige der Mathematik mit weitreichenden Anwendungen in der Statistik, Physik, Meteorologie bis hin zur Wirtschaft und Unternehmensforschung. Ziel der Optimierung ist eine Minimierung oder Maximierung der im jeweiligen System relevanten Parameter unter einschränkenden Nebenbedingungen. Praxisbezogen führt Claus Richter in die Algorithmen der Optimierung ein. Einsteiger und Fortgeschrittene werden gleichermaßen auf den heutigen Stand der Dinge gebracht. In klaren Schritten umreißt der Autor die Grundlagen dieses Gebietes, beginnend mit Definitionen und Optimalitätsbedingungen, um sich dann direkt an den C++-Programmierer zu wenden. Der nötige mathematische Apparat, die verwendete Programmiersprache C++ und ihre Klassen werden vorgestellt. Damit stellt der Autor ein einheitliches Niveau her und wird so einer breiten Leserschaft gerecht. Im Folgenden werden 20 Verfahren der linearen, quadratischen und nichtlinearen Optimierung behandelt und dem Anwender nähergebracht. Jeder Algorithmus wird im Aufbau erläutert und an einem konkreten Beispiel demonstriert. Fünf weitere Kapitel widmen sich anwendungsbezogenen Sachverhalten, u.a. der Parameteridentifikation, optimalen Steuerung und Strukturoptimierung. Durch die Bereitstellung der diskutierten Algorithmen und Beispiele als C++-Klassen gewährleistet das Buch einen optimalen Einstieg in die Optimierung. Mit C++-Programmen zum Download unter www.wiley-vch.de/publish/dt/books/ISBN3-527-34107-2.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 218

Veröffentlichungsjahr: 2016

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Inhaltsverzeichnis

Cover

Titel

Autor

Impressum

Widmung

Vorwort

1 Einleitung

1.1 Das lineare und das nichtlineare Optimierungsproblem

1.2 Definitionen und Bezeichnungen

1.3 Spezialfälle linearer und nichtlinearer Optimierungsaufgaben

1.4 Anwendungen

2 Grundlagen

2.1 Regularitätsbedingungen

2.2 Optimalitätsbedingungen

2.3 Optimalitätskriterien für spezielle Optimierungsaufgaben

2.4 Wünschenswerte Eigenschaften von Optimierungsverfahren

2.5 Vom C++-Programm zum nutzerfreundlichen Softwaresystem

3 Mathematische Hilfsmittel

3.1 Das Austauschverfahren

3.2 Lösung von Gleichungssystemen mit der

QR

-Zerlegung

3.3 Cholesky-Zerlegung

3.4 Fibonacci-Verfahren

3.5 Das Verfahren des Goldenen Schnitts

3.6 Newton-Verfahren

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

4 Probleme und Algorithmen als C++-Klassen

4.1 Die Programmiersprache C++

4.2 Der Weg zur objektorientierten Programmierung

4.3 Begriffe der objektorientierten Programmierung

4.4 Lösungsverfahren und Probleme als Klassen

5 Lineare Optimierung

5.1 Das Simplexverfahren

5.2 Das revidierte Simplexverfahren

5.3 Weiterführende Bemerkungen

5.4 Das Ellipsoidverfahren

5.5 Weiterführende Bemerkungen

6 Quadratische Optimierung

6.1 Das Relaxationsverfahren

6.2 Methode der aktiven Restriktionen von Fletcher

7 Unbeschränkte nichtlineare Optimierung

7.1 Das Verfahren der stochastischen Suche

7.2 Das Verfahren der koordinatenweisen Suche

7.3 Das einfache Polytopverfahren

7.4 Das Verfahren des steilsten Abstiegs

7.5 Das Verfahren der konjugierten Gradienten

7.6 Das Newton-Verfahren

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

7.8 Das Verfahren der variablen Metrik (Quasi-Newton-Verfahren)

8 Beschränkte nichtlineare Optimierung

8.1 Die adaptive Zufallssuche

8.2 Das erweiterte Polytopverfahren

8.3 Das Schnittebenenverfahren

8.4 Das SQP-Verfahren

8.5 Das erweiterte Newton-Verfahren

8.6 Verfahren mit Straf- und Barrierefunktionen

9 Globalisierung

9.1 Dämpfungs- und Regularisierungsmethoden

9.2 Hybride Methoden

9.3 Einbettungsmethoden

10 Innere-Punkte-Methoden

10.1 Das Projektionsverfahren

10.2 Kurzschrittverfahren

11 Parameteridentifikation

11.1 Parameterschätzung auf der Grundlage linearer Quadratmittelprobleme

11.2 Nichtlineare Parameterschätzung und nichtlineare Optimierungsverfahren

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

11.4 Parameterschätzung und SQP-Verfahren

11.5 Parameteridentifikation in Differenzialgleichungen

12 Optimale Steuerung

12.1 Einführung

12.2 Umwandlung in eine nichtlineare Optimierungsaufgabe

12.3 Aufbau des Algorithmus

12.4 Implementierte numerische Methoden

13 Form- und Strukturoptimierung

13.1 Zusammenhang zwischen Bemessungsvariablen und Zustandsvariablen

13.2 Lösung von Strukturoptimierungsproblemen mit SQP-Verfahren

13.3 Ein weiteres Beispiel

14 Optisoft – Ein C++-Softwaresystem zur Optimierung

14.1 Einführung

14.2 Allgemeine Informationen über Optisoft

14.3 Handhabung von Optisoft

14.4 Übersicht über Softwarepakete

Anhang A: Referenzmanual

Anhang B: Liste der Beispiele

Literatur

Stichwortverzeichnis

End User License Agreement

List of Tables

3 Mathematische Hilfsmittel

Tab. 3.1 Numerische Lösung der Lotka-Volterra-Gleichung.

List of Illustrations

1 Einleitung

Abb. 1.1 Stahlträger.

3 Mathematische Hilfsmittel

Abb. 3.1 Eindimensionale Suche nach dem Verfahren des Goldenen Schnittes. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

5 Lineare Optimierung

Abb. 5.1 Prinzip des Ellipsoid-Algorithmus. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

7 Unbeschränkte nichtlineare Optimierung

Abb. 7.1 Prinzip des Polytopalgorithmus. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

8 Beschränkte nichtlineare Optimierung

Abb. 8.1 Prinzip des Schnittebenenverfahrens. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

Abb. 8.2 Lösung des transformierten Problems. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

Abb. 8.3 Prinzip der Straf-Barriere-Verfahren. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt. B(x) – prinzipielle Gestalt einer Barrierefunktion, S(x) – prinzipielle Gestalt einer Straffunktion.

9 Globalisierung

Abb. 9.1 Prinzip der hybriden Methoden. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

10 Innere-Punkte-Methoden

Abb. 10.1 Zulässiger Bereich, innerer Punkt und Optimalpunkt des Beispiels 10.1. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

11 Parameteridentifikation

Abb. 11.1 p1121-Ausgleichspolynom. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

Abb. 11.2 p1122-Ausgleichsfunktion. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

Abb. 11.3 Beispiel für die Parameteridentifikation. Mit freundlicher Genehmigung des GeoGebra-Instituts Linz unter Verwendung der Software GeoGebra bereitgestellt.

13 Form- und Strukturoptimierung

Abb. 13.1 Spannungsverteilung in einem Schraubenschlüssel.

Abb. 13.2 Lösungsprinzip der Strukturoptimierung.

Abb. 13.3 Ausgangsabmessungen der Brücke.

Abb. 13.4 Querschnittsoptimale Brücke.

Abb. 13.5 Die optimierte Brücke.

Abb. 13.6 Die optimierte Kuppel.

14 Optisoft – Ein C++-Softwaresystem zur Optimierung

Abb. 14.1 Grundprinzip der Arbeit von Optisoft.

Abb. 14.2 Optisoft – Hauptmenü.

Abb. 14.3 Optisoft-Problemformulierung.

Abb. 14.4 Eingabeformular Parameterschätzung.

Abb. 14.5 Erzeugung eines Beispiels.

Abb. 14.6 Gespeicherte Lösung des Rosen-Suzuki-Problems.

Guide

Cover

Inhaltsverzeichnis

Begin Reading

Pages

C1

III

IV

V

VII

XIII

XIV

1

2

3

4

5

6

7

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

43

44

45

46

47

48

49

50

51

52

53

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

123

124

125

126

127

128

129

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

187

188

189

190

191

192

193

194

195

196

197

199

200

201

202

Claus Richter

Optimierung in C++

Grundlagen und Algorithmen

Autor

Claus Richter

Gerhart-Hauptmann-Str. 1

01219 Dresden

Deutschland

Alle Bücher von Wiley-VCH werden sorgfältig erarbeitet. Dennoch übernehmen Autoren, Herausgeber und Verlag in keinem Fall, einschließlich des vorliegenden Werkes, für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie für eventuelle Druckfehler irgendeine Haftung.

Bibliografische Information derDeutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

© 2017 WILEY-VCH Verlag GmbH & Co. KGaA, Boschstr. 12, 69469 Weinheim, Germany

Alle Rechte, insbesondere die der Übersetzung in andere Sprachen, vorbehalten. Kein Teil dieses Buches darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form – durch Photokopie, Mikroverfilmung oder irgendein anderes Verfahren – reproduziert oder in eine von Maschinen, insbesondere von Datenverarbeitungsmaschinen, verwendbare Sprache übertragen oder übersetzt werden. Die Wiedergabe von Warenbezeichnungen, Handelsnamen oder sonstigen Kennzeichen in diesem Buch berechtigt nicht zu der Annahme, dass diese von jedermann frei benutzt werden dürfen. Vielmehr kann es sich auch dann um eingetragene Warenzeichen oder sonstige gesetzlich geschützte Kennzeichen handeln, wenn sie nicht eigens als solche markiert sind.

Print ISBN 978-3-527-34107-8

ePDF ISBN 978-3-527-80079-7

ePub ISBN 978-3-527-80080-3

Mobi ISBN 978-3-527-80081-0

Für meine liebe Frau Hannelore

Vorwort

Bücher zur Implementierung numerischer Verfahren der Optimierung sind seit vielen Jahren gefragt. Die Behandlung mathematisch-naturwissenschaftlicher, technischer und ökonomischer Fragestellungen erfordert in wachsendem Umfang die Lösung linearer oder nichtlinearer Optimierungsaufgaben. Gegenüber den ersten Bemühungen in den 40er- und 50er-Jahren haben sich hierfür die Voraussetzungen auf dem Gebiet der Informatik wesentlich verbessert. Nicht nur Rechenzeit und Speicherplatz haben eine andere Bewertung erfahren, auch Programmierparadigmen und die Nutzung von Dialogmöglichkeiten haben sich geändert. Dieser Entwicklung folgend, werden im vorliegenden Buch Probleme und Lösungsverfahren als Klassen der objektorientierten Programmierung aufgefasst. Die Formulierung der zu lösenden Optimierungsaufgabe und die Auswahl der Lösungsmethode erfolgt im Dialog, die Ergebnisse der Berechnung werden automatisch gespeichert. Im Unterschied zu komplexen Systemen, wie Matlab sind die einzelnen Routinen modifizierbar und separat nutzbar. Seit den Arbeiten von Kantorovich [1] und Dantzig [2] zum Simplexverfahren hat auch die Entwicklung effektiver numerischer Verfahren der Optimierung eine stürmische Entwicklung genommen. Ihre theoretische Begründung und sachgerechte Implementierung stellt inzwischen einen eigenständigen Problemkreis dar, welcher als Numerik der Optimierung (in englischer Sprache als „Computational Mathematical Programming“, in russischer Sprache als „Vycislitelnye metody programmirovanija“) bezeichnet wird. Die Aneignung der auf diesem Gebiet vorhandenen Erkenntnisse, noch mehr aber das Erleben des Zusammenhangs von beschriebenem Algorithmus, umgesetztem Programm und bereitgestellter Nutzeroberfläche werden zum Bedürfnis des an der Optimierung interessierten Praktikers. Gegenstand des Buches sind deshalb nicht in erster Linie theoretische Grundlagen, sondern Fragen der praktischen Realisierung der Verfahren mit modernen Mitteln der Informatik. Es soll einen Einstieg in die Behandlung von Optimierungsaufgaben auf Computern ermöglichen.

Für praktische Hilfeleistungen beim Zustandekommen des Buches bin ich Klaus Schönefeld zu Dank verpflichtet. In gleicher Weise danke ich Thomas Cassebaum für die Möglichkeit, die von ihm bereitgestellte Entwicklungsumgebung „SmallCpp“ nutzen zu können und in C++-Fragen in ihm jederzeit einen guten Gesprächspartner gefunden zu haben. Ermutigende Worte und gute Ratschläge vieler Kollegen, insbesondere von Diethard Pallaschke, Oleg Burdakov, Manfred Grauer und Gerd Langensiepen, haben den Entstehungsprozess befördert. Dem Wiley-Verlag danke ich für die Möglichkeit, die Ergebnisse meiner Überlegungen zu publizieren. Schließlich möchte ich meiner Frau Hannelore für das Verständnis danken, mit dem sie die Belastung mitgetragen hat, welche dem Autor aus dem Schreiben eines Buches erwächst. Die Publikation von Algorithmen und Programmen schließt zu erwartende Kritiken und Hinweise von vornherein ein. Sie werden von mir sorgfältig berücksichtigt und in die Aufbereitung weiterer Programmversionen eingearbeitet.

Claus Richter