WORHP [wɔːrp], 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” („Wir optimieren richtig große Probleme“), 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]

WORHP

Logo und Motto von WORHP. Das Logo zeigt ein stilisiertes Lotus-Blatt
Konsolenansicht von WORHP bei Lösung eines kleinen Beispielproblems Identifikationsproblem: Ausgangssituation Identifikationsproblem: Optimale Lösung mit WORHP ermittelt
Konsolenansicht, Ausgangssituation und Optimale Lösung
Basisdaten

Entwickler Christof Büskens, Matthias Gerdts et al.
Erscheinungsjahr 2010
Aktuelle Version 1.16
(7. Mai 2024)
Betriebssystem Linux, Microsoft Windows
Programmier­sprache ANSI C, FORTRAN 77, Fortran 95 und Fortran 2003
Kategorie Mathematik, Optimierung
Lizenz Proprietär, Kostenfrei für akademische Zwecke
deutschsprachig nein
worhp.de

Formulierung des Problems

Bearbeiten

WORHP wurde entwickelt, um Probleme der Form

 
unter
 

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

Ableitungen

Bearbeiten

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 entstehende sehr hohe Anzahl an Funktionsauswertungen 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. WORHP implementiert als erstes NLP-Verfahren ein strukturerhaltendes (ggf. also dünnbesetztes) SBFGS-Verfahren, für das ein Konvergenzbeweis existiert.[2]

Struktur

Bearbeiten

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

Bearbeiten

Die Entwicklung von WORHP startete 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[3] fortgesetzt. Ziel war die Implementierung eines NLP-Lösers zur Bestimmung optimaler Trajektorien, zur Missionsanalyse und für Raumfahrtanwendungen im Allgemeinen.[4] (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 Universität der Bundeswehr München arbeiten an der weiteren Entwicklung von WORHP.[5] Die Entwickler von WORHP betonen, dass es trotz seines akademischen Ursprungs von Beginn an als industriell nutzbares Werkzeug entwickelt wurde, statt als reine Forschungsplattform.[6]

Anwendungen

Bearbeiten

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

Bearbeiten

Einzelnachweise

Bearbeiten
  1. WORHP Interfaces. In: worhp.de. Archiviert vom Original am 7. Dezember 2013; abgerufen am 28. Januar 2024 (englisch).
  2. Patrik Kalmbach: Effiziente Ableitungsbestimmung bei hochdimensionaler nichtlinearer Optimierung. Universität Bremen, Bremen 23. Juni 2011, urn:nbn:de:gbv:46-00102087-10 (Dissertation).
  3. Luis Vicente, Renata Silva, Michael Ulbrich, Stefan Ulbrich: ipfilter – An NLP Solver based on a primal-dual interior-point filter algorithm. In: mat.uc.pt. Abgerufen am 27. Mai 2013 (englisch).
  4. Sven Erb: eNLP: application-centric NLP-based optimization in the aerospace market. In: ensta-paris.fr. ITN Sadco First Industrial Workshop, 2. März 2011, abgerufen am 23. Oktober 2013 (englisch).
  5. Entwicklerteam WORHP. In: worhp.de. Abgerufen am 28. Januar 2024.
  6. Christof Büskens, Dennis Wassel: The ESA NLP Solver WORHP. In: Giorgio Fasano, János D. Pintér (Hrsg.): Modeling and Optimization in Space Engineering (= Springer Optimization and Its Applications). Band 73. Springer, 2013, ISBN 978-1-4614-4469-5, doi:10.1007/978-1-4614-4469-5_4.
  7. J. L. Cano, M. Bello, J. Rodriguez-Canabal: Navigation and Guidance for Low-Thrust Trajectories, LOTNAV. 2004, bibcode:2004ESASP.548..609C
  8. CasADi wiki. In: github.com. Abgerufen am 27. Mai 2013 (englisch).
  9. Francesco Castellini: PRESTIGE MDO research, Research Achievements. 2009, ehemals im Original (nicht mehr online verfügbar); abgerufen am 23. März 2011.@1@2Vorlage:Toter Link/www.aero.polimi.it (Seite nicht mehr abrufbar. Suche in Webarchiven)
  10. Universities selected for PRESTIGE programme. In: esa.int. ESA, 17. Februar 2009, archiviert vom Original am 21. Oktober 2012; abgerufen am 28. Januar 2024 (englisch).