Die CUTEr Testbibliothek Slide 1
Motivation Softwarepakete mit vollkommen verschiedenen Anwendungsschwerpunkten Optimierung entweder nur einer von vielen Schwerpunkten oder sogar nur Nebenprodukt zur Lösung anderer Probleme Vergleich von Spezialprogrammen Computeralgebrasysteme und Numerikpakete Slide 2
Testprozedur 1.Aufstellen des Testproblems (Testbibliothek) 2.Lösen des Problems mit verschiedener Software 3.Analyse und Vergleich der Ergebnisse Slide 3
Testumgebung Eine Testumgebung ist besonders geeignet für die manuelle Parameterschätzung und Eingabe Den Vergleich von Algorithmen und einen generellen Benchmark Test Black Box Test & White Box Test Slide 4
Übersicht Bibliotheken/Systeme mit Optimierungsalgorithmen NAG Matlab Port 3 Kleine bis mittlere Systeme CFSQP/FFSQP NPSOL Große Systeme SNOPT MINOS LANCELOT Slide 5
Klassifizierung von Optimierungsproblemen Slide 6
CUTEr Constrained and Unconstrained Testing Environment, revisited beschränkte und unbeschränkte Testumgebung für Optimierungsprobleme Testbibliothek zur Analyse von verschiedenen Testfällen Ziel: Vergleich und Verbesserung von Lösern bzw. Neuimplementierung Slide 7
CUTEr Mehr als 1000 Problemstellungen in folgenden Bereichen: Lineare Optimierung Konvexe und nichtkonvexe quadratische Programmierung lineare and nichtlineare least squares Methoden Large scale nichtlineare Opt. & beschränkte Ungleichungen Slide 8
CUTEr Geschichte 1993 wurde die CUTE Umgebung entwickelt Ursprünglich: Testbeispiele für die Performanz von LANCELOT eigenständige Testbibliothek mit einfachen Schnittstellen zu vielen Optimierungsprogrammen weltweite Verbreitung und ständige Verbesserung von CUTE Slide 9
LANCELOT Fortran 77 Paket zum Lösen von kontinuierliche nichtlineare Probleme: unbeschränkte Optimierungsprobleme, beschränkte Optimierungsprobleme, Nichtlinearen Gleichungssysteme, nichtlineare least squares Probleme Verwendete Algorithmen: Trust Region, Gradientenverfahren, iterative Löser, quasi Newton, Finite Differenz Slide 10
CUTE / CUTEr CUTEr ist Nachfolger von CUTE und beeinhaltet neue Tools Option zur Auswertung der Performanz Neue Schnittstellen zu Optimierungssoftware Fortran 90 / 95 Unterstützung Slide 11
CUTEr Design CUTEr Aufbau: SIF Decoder Ausschließlich auf UNIX Systemen installierbar Keine gleichzeitige Nutzung auf einer Mehrfachplattform Nur auf einem einzelnen Rechner lauffähig Slide 12
CUTEr Tools CUTEr bietet Werkezuge für beschränkte und unbeschränkte Optimierung Erlaubt Forscher und Anwender verschiedene Löser auf ein bestimmtes Problem anzuwenden Suche nach einem geeigneten Algorithmus für ähnliche Probleme Verbesserung der Effizienz und Automatisierung Slide 13
CUTEr Tools Slide 14
CUTEr Tools Slide 15
CUTEr Schnittstellen CUTEr besitzt eine Vielzahl von Schnittstellen, z.b.: SNOPT ( sparse nonlinear opt ) ist effizient für nichtlineare Zielfunktionen mit einer großen Anzahl von Nebenbedingungen KNITRO FilterSQP Matlab Slide 16
KNITRO Kommerzielle Software zum numerischen Lösen von Optimierungsprobleme Spezialisiert auf lineare, nichtlineare & quadratische Probleme / Gleichungssysteme, mixed integer etc. Modellierungsprache ist AML, AMPL, Mathematica oder auch C, C++, Fortran oder Java Bietet drei verschiedene Algorithmen/Löser: Direktes Innere Punkt Verfahren Innere Punkte Verfahren mit CG Active Set Slide 17
KNITRO Slide 18
Schnittstelle zu MATLAB Matlab bietet eine Schnittstelle zu C und Fortran 77, d.h. Es können C Funktionen in Matlab eingebunden werden, durch sogenannte MEX Dateien: Kompiliere mex mex_beispiel.c Oder in Fortran: matlab% mex Beispiel.f Die Funktion kann in Matlab aufgerufen werden als sei es eine m Datei. Slide 19
CUTEr and MEX Files Der Zugang zu CUTEr wird in drei Bereiche ermöglicht: utools.f (Unbeschränkte Optimierungs Tool) ctools.f (beschränktes Optimierungs Tool) gtools.f (allgemeine Werkzeuge) Aufruf von MATLAB aus: Beispiel: matlab% [x,bl,bu]=usetup; Erzeuge MEX Datei aus CUTEr Testproblem TEST.SIF: Prompt% sdmx u TEST ( u Parameter steht für unconstrained) Slide 20
SIF Decoder SIF Decoder wurde im Gegensatz zur vorherigen Version nun getrennt von CUTE und als eigentständigen Decoder zur Verfügung gestellt Gründe sind zum einen die Nutzbarkeit für andere Programme, z.b. LANCELOT Einfachere Aktalisierung und Pflege des Decoders Erweiterung des Decoders für die Erzeugung von Funktionsauswertungen als Eingabe in das HSL Paket für autmatische Differentation Slide 21
Standard Data Input Format Zielfunktion repräsentiert eine Gruppe von separabeln Funktionen. Mit der Absicht, dass man einer der Untergruppen als quadratische Gruppe extrahieren kann. Folglich erhält man folgende Gestalt der Zielfunktion: Slide 22
Standard Data Input Format x=(x1...xn= sind in dem Fall die Variablen und der Term repräsentiert die quadratische Untergruppe (½ ist Konvention) Beispiel: In diesem Beispiel entstehen zwei Untergruppen: 1. Und die quadratische Untergruppe: Slide 23
Standard Data Input Format Die quadratische Gruppe wird noch einmal in SIF Datei explizit spezifiziert, in dem man das Schlüsselwort QUADRATIC eingibt. Syntax: Slide 24
Standard Data Input Format Beispiel: SIF Format: Slide 25
Standard Data Input Format Eingabe und Änderungen von Parameter: Mit dem Befehl $ Parameter ist es möglich einen Parameter zu kennzeichnen, der beim kompilieren mit dem Befehl param verändert werden kann: Beispiel: N=400 und THETA=3.5 Slide 26
Beispiel: Rosenbrock Funktion Die Rosenbrock Funktion ist eine nichtkonvexe Funktion, die von Howard H. Rosenbrock in 1960 aufgestellt wurde und oft benutzt wird, um die Performanz für eine Optimierungsalgorithmus zu untersuchen. Slide 27
NEOS Solver http://www.neos server.org/neos/solvers/index.html Online Webseite zum Lösen von Optimierungsproblemen: Hochladen des Modells in verschiedenen Sprachen möglich: C, AMPL, TSP, Fortran usw... Probleme werden je nach Auswahl des Optimieres weitergeleitet an die gewünschte Optimierungssoftware (SNOPT, KNITRO...) Slide 28
CUTEr Entwickler Nicholas I.M. Gould nick.gould@stfc.ac.uk Dominique Orban Dominique.Orban@polymtl.ca Ecole Polytechnique Philippe L. Toint Philippe.Toint@fundp.ac.be FUNDP Slide 29