„WORHP“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Sgeffken (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Sgeffken (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
„WORHP“, ausgesprochen wie das englische Wort „warp“, bei der [[ESA|ESA]] auch bekannt als „eNLP“ ([[Nonlinear programming|NLP]] solver), ist ein mathematisches Programm bzw. eine [[Programmbibliothek|Bibliothek]] zur numerischen Lösung stetiger hochdimensionaler [[Optimierung_(Mathematik)#Nichtlineare_Optimierung|nichtlinearer Optimierungsprobleme]]. Die Abkürzung WORHP bedeutet ausgeschrieben „“W“e“ „“O“ptimize“ „“R“eally“ „“H“uge“ „“P“roblems“, dies stellt das primäre Anwendungsgebiet der Software dar. WORHP ist hybrid in den Sprachen [[Fortran]] und [[C_(Programmiersprache)‎|C]] implementiert und bietet zusätzlich die Möglichkeit über verschiedene Schnittstellen in C/[[C++]]- und Fortran-Programmen integriert zu werden. Zusätzlich existieren Schnittstellen zur Einbindung in die Modellierungsumgebungen MATLAB, CasADi und AMPL.
„WORHP“, ausgesprochen wie das englische Wort „warp“, bei der [[ESA|ESA]] auch bekannt als „eNLP“ ([[Nonlinear programming|NLP]] solver), ist ein mathematisches Programm bzw. eine [[Programmbibliothek|Bibliothek]] zur numerischen Lösung stetiger hochdimensionaler [[Optimierung_(Mathematik)#Nichtlineare_Optimierung|nichtlinearer Optimierungsprobleme]]. Die Abkürzung WORHP bedeutet ausgeschrieben "'''W'''e '''O'''ptimize '''R'''eally '''H'''uge '''P'''roblems", dies stellt das primäre Anwendungsgebiet der Software dar. WORHP ist hybrid in den Sprachen [[Fortran]] und [[C_(Programmiersprache)‎|C]] implementiert und bietet zusätzlich die Möglichkeit über verschiedene Schnittstellen in C/[[C++]]- und Fortran-Programmen integriert zu werden. Zusätzlich existieren Schnittstellen zur Einbindung in die Modellierungsumgebungen [[MATLAB]], CasADi und [[AMPL]].<ref name="Interfaces">
{{cite web |url=http://worhp.de/content/interfaces |title=WORHP interfaces}}
</ref>


== Formulerung des Problems ==
== Formulerung des Problems ==
Zeile 10: Zeile 12:


=== Ableitungen ===
=== Ableitungen ===
WORHP benötigt die erste Ableitung ([[Gradient]]) von <math>f</math> und von <math>g</math> ([[Jacobian_matrix_and_determinant|Jacobian]]) und die zweite Ableitung ([[Hessian matrix]]) der [[Lagrange function]]; in einer Modellierungsumgebung wie AMPL können diese durch automatische Differentiation zur Verfügung gestellt werden, aber in anderen Anwendungen müssen diese durch den Benutzer übergeben werden. Erste und zweite Ableitungen können durch WORHP mit Hilfe von [[finiten Differenzen]] ermittelt werden. Um die typischerweise dadurch enstehende sehr hohe Anzahl an Funkionsauswertungen in hochdimensionalen dünnbesetzten Anwendungen zu vermeiden, wird die [[graph colouring]] Theorie ausgenutzt um erste und zweite Ableitungen zu gruppieren. Zweite Ableitungen können außerdem durch Variationen der klassischen BFGS Verfahren, inklusive block-diagonaler und dünnbesetzter Variante, approximiert werden.
WORHP benötigt die erste Ableitung ([[Gradient]]) von <math>f</math> und von <math>g</math> ([[Jacobi-Matrix]]) und die zweite Ableitung ([[Hesse-Matrix]]) der [[Lagrange-Multiplikator|Lagrange-Funktion]]; in einer Modellierungsumgebung wie AMPL können diese durch [[Automatisches_Differenzieren|automatische Differentiation]] zur Verfügung gestellt werden, aber in anderen Anwendungen müssen diese durch den Benutzer übergeben werden. Erste und zweite Ableitungen können durch WORHP mit Hilfe von finiten Differenzen ermittelt werden. Um die typischerweise dadurch enstehende sehr hohe Anzahl an Funkionsauswertungen in hochdimensionalen dünnbesetzten Anwendungen zu vermeiden, wird die [[Färbung_(Graphentheorie)|Graphenfärbungstheorie]] ausgenutzt um erste und zweite Ableitungen zu gruppieren. Zweite Ableitungen können außerdem durch Variationen der klassischen [[Quasi-Newton-Verfahren|BFGS]] Verfahren, inklusive block-diagonaler und dünnbesetzter Variante, approximiert werden.


== Struktur ==
== Struktur ==
Auf NLP-Ebene basiert WORHP auf einem klassischen SQP-Algorithmus, wohingegen die quadratischen Teilprobleme mit Hilfe von innere-Punkte-Verfahren gelöst werden. Dieser Aufbau wurde gewählt um von der Robustheit von SQP-Verfahren und dem zuverlässigen numerischen Aufwand von IP-Verfahren zu profitieren, da klassische Aktive-Mengen-Strategien bei hochdimensionalen Problemen ungeeignet sind.
Auf NLP-Ebene basiert WORHP auf einem klassischen SQP-Algorithmus, wohingegen die quadratischen Teilprobleme mit Hilfe von [[Innere-Punkte-Verfahren]] gelöst werden. Dieser Aufbau wurde gewählt um von der Robustheit von SQP-Verfahren und dem zuverlässigen numerischen Aufwand von IP-Verfahren zu profitieren, da klassische Aktive-Mengen-Strategien bei hochdimensionalen Problemen ungeeignet sind.


== Entwicklung ==
== Entwicklung ==
Die Entwicklung von WORHP startete in 2006 mit einer Finanzierung des deutschen Zentrums für Luft- und Raumfahrt und wurde unter dem Namen „eNLP“ nach 2008 mit Unterstützung der ESA / ESTEC zusammen mit dem Innere-Punkte-Löser ipfilter fortgesetzt. Ziel war die Implementierung eines NLP-Lösers zur Bestimmung optimaler Trajektorien, zur Missionsanalyse und für Raumfahrtanwendungen im Allgemeinen. (Die Benutzung von Ipfilter in WORHP wurde nach 2010 nicht weiter verfolgt.)
Die Entwicklung von WORHP startete in 2006 mit einer Finanzierung des [[Deutsches_Zentrum_für_Luft-_und_Raumfahrt|deutschen Zentrums für Luft- und Raumfahrt]] und wurde unter dem Namen „eNLP“ nach 2008 mit Unterstützung der ESA / [[Europäisches_Weltraumforschungs-_und_Technologiezentrum|ESTEC]] zusammen mit dem Innere-Punkte-Löser ipfilter<ref name="ipfilter">
{{cite web |url=http://www.mat.uc.pt/ipfilter |title=ipfilter — An NLP Solver based on a primal-dual interior-point filter algorithm |author=Luis Vicente, Renata Silva, Michael Ulbrich, Stefan Ulbrich}}
Das Steinbeis-Forschungszentrum Optimierung, Steuerung und Regelung und Wissenschaftler der Arbeitsgruppe Optimierung und Optimale Steuerung an der Universität Bremen und der Universtität der Bundeswehr München arbeiten an der weiteren Entwicklung von WORHP. Die Entwickler verbessern WORHP zur Zeit verstärkt, so dass es im Gegensatz zu seinen akademischen Ursprüngen, als Werkzeug zur Anwendung in der Industrie dienen kann.
</ref> fortgesetzt. Ziel war die Implementierung eines NLP-Lösers zur Bestimmung optimaler [[Trajektorie_(Physik)|Trajektorien]], zur Missionsanalyse und für Raumfahrtanwendungen im Allgemeinen.<ref name="eNLP talk">
{{cite web |url=http://uma.ensta.fr/itn-sadco/?module=conf_aero&action=programme |title=eNLP: application-centric NLP-based optimization in the aerospace market |location=ITN Sadco First Industrial Workshop |author=Sven Erb |date=2011-03-02}}
</ref> (Die Benutzung von Ipfilter in WORHP wurde nach 2010 nicht weiter verfolgt.)
Das [http://www.stw.de/su/1118 Steinbeis-Forschungszentrum Optimierung, Steuerung und Regelung] und Wissenschaftler der Arbeitsgruppe [http://www.math.uni-bremen.de/zetem/o2c/de Optimierung und Optimale Steuerung] an der [[Universität_Bremen|Universität Bremen]] und der [[Universität_der_Bundeswehr_München|Universtität der Bundeswehr München]] arbeiten an der weiteren Entwicklung von WORHP.<ref name="Development Team">
{{cite web |url=http://worhp.de/content/team-worhp |title=Development Team |accessdate=2013-05-27}}
</ref> Die Entwickler verbessern WORHP zur Zeit verstärkt, so dass es im Gegensatz zu seinen akademischen Ursprüngen, als Werkzeug zur Anwendung in der Industrie dienen kann.<ref name="The ESA NLP Solver WORHP">
{{cite web |url=http://link.springer.com/chapter/10.1007%2F978-1-4614-4469-5_4 |author=Christof Büskens, Dennis Wassel |title=The ESA NLP Solver WORHP |accessdate=2013-05-27}}
</ref>


== Anwendungen ==
== Anwendungen ==

Version vom 30. Mai 2013, 13:54 Uhr

„WORHP“, ausgesprochen wie das englische Wort „warp“, bei der ESA auch bekannt als „eNLP“ (NLP solver), ist ein mathematisches Programm bzw. eine Bibliothek zur numerischen Lösung stetiger hochdimensionaler nichtlinearer Optimierungsprobleme. Die Abkürzung WORHP bedeutet ausgeschrieben "We Optimize Really Huge Problems", dies stellt das primäre Anwendungsgebiet der Software dar. WORHP ist hybrid in den Sprachen Fortran und C implementiert und bietet zusätzlich die Möglichkeit über verschiedene Schnittstellen in C/C++- und Fortran-Programmen integriert zu werden. Zusätzlich existieren Schnittstellen zur Einbindung in die Modellierungsumgebungen MATLAB, CasADi und AMPL.[1]

Formulerung des Problems

WORHP wurde entwickelt um Probleme der Form

unter

mit hinreichend glatten Funktionen (Zielfunktion) und (Nebenbedingungen) welche nichtlinear sein dürfen, und nicht notwendig konvex sein müssen, zu lösen. Sogar Probleme mit sehr großen Dimensionen und können effizient gelöst werden, wenn das Problem hinreichend dünnbesetzt ist. Problemstellungen in denen es nicht möglich ist Zielfunktion und Nebenbedingungen separat oder in denen es möglich ist die Nebenbedingungen elementweise auszuwerten, können von WORHP ausgenutzt werden um die Berechnung effizient zu gestalten.

Ableitungen

WORHP benötigt die erste Ableitung (Gradient) von und von (Jacobi-Matrix) und die zweite Ableitung (Hesse-Matrix) der Lagrange-Funktion; in einer Modellierungsumgebung wie AMPL können diese durch automatische Differentiation zur Verfügung gestellt werden, aber in anderen Anwendungen müssen diese durch den Benutzer übergeben werden. Erste und zweite Ableitungen können durch WORHP mit Hilfe von finiten Differenzen ermittelt werden. Um die typischerweise dadurch enstehende sehr hohe Anzahl an Funkionsauswertungen in hochdimensionalen dünnbesetzten Anwendungen zu vermeiden, wird die Graphenfärbungstheorie ausgenutzt um erste und zweite Ableitungen zu gruppieren. Zweite Ableitungen können außerdem durch Variationen der klassischen BFGS Verfahren, inklusive block-diagonaler und dünnbesetzter Variante, approximiert werden.

Struktur

Auf NLP-Ebene basiert WORHP auf einem klassischen SQP-Algorithmus, wohingegen die quadratischen Teilprobleme mit Hilfe von Innere-Punkte-Verfahren gelöst werden. Dieser Aufbau wurde gewählt um von der Robustheit von SQP-Verfahren und dem zuverlässigen numerischen Aufwand von IP-Verfahren zu profitieren, da klassische Aktive-Mengen-Strategien bei hochdimensionalen Problemen ungeeignet sind.

Entwicklung

Die Entwicklung von WORHP startete in 2006 mit einer Finanzierung des deutschen Zentrums für Luft- und Raumfahrt und wurde unter dem Namen „eNLP“ nach 2008 mit Unterstützung der ESA / ESTEC zusammen mit dem Innere-Punkte-Löser ipfilter[2] fortgesetzt. Ziel war die Implementierung eines NLP-Lösers zur Bestimmung optimaler Trajektorien, zur Missionsanalyse und für Raumfahrtanwendungen im Allgemeinen.[3] (Die Benutzung von Ipfilter in WORHP wurde nach 2010 nicht weiter verfolgt.) Das Steinbeis-Forschungszentrum Optimierung, Steuerung und Regelung und Wissenschaftler der Arbeitsgruppe Optimierung und Optimale Steuerung an der Universität Bremen und der Universtität der Bundeswehr München arbeiten an der weiteren Entwicklung von WORHP.[4] Die Entwickler verbessern WORHP zur Zeit verstärkt, so dass es im Gegensatz zu seinen akademischen Ursprüngen, als Werkzeug zur Anwendung in der Industrie dienen kann.[5]

Anwendungen

WORHP wurde in Programmen zur Analyse von Trajektorien wie LOTNAV[6] und ASTOS integriert, und wird am ESOC und am ESTEC genutzt. Es ist auch möglich WORHP als Optimierer in CasADi (since version 1.5.0beta)[7] einzubinden und es wird als lokaler Optimierer im SVAGO MDO[8] Programm, entwickelt an der Universität Bremen und am Politecnico di Milano zur Multidisciplinary design optimization im ESA PRESTIGE Programm, genutzt.[9]

  1. WORHP interfaces.
  2. Luis Vicente, Renata Silva, Michael Ulbrich, Stefan Ulbrich: ipfilter — An NLP Solver based on a primal-dual interior-point filter algorithm.
  3. Sven Erb: eNLP: application-centric NLP-based optimization in the aerospace market. 2. März 2011;.
  4. Development Team. Abgerufen am 27. Mai 2013.
  5. Christof Büskens, Dennis Wassel: The ESA NLP Solver WORHP. Abgerufen am 27. Mai 2013.
  6. J. L. Cano, M. Bello, J. Rodriguez-Canabal: Navigation and Guidance for Low-Thrust Trajectories, LOTNAV. 2004;.
  7. CasADi wiki. Abgerufen am 27. Mai 2013.
  8. Francesco Castellini: PRESTIGE MDO research, Research Achievements. 2009, abgerufen am 23. März 2011.
  9. ESA education: Universities selected for PRESTIGE programme. 2009, abgerufen am 23. März 2011.