2017-12-14 5 views
0

Kann ich scipy.optimize.minimize Solver mit method=SLSQP in pyomo integrieren? Modellierung in Pyomo ist viel schneller als in Scipy, aber pyomo Dokumentation scheint nicht explizit zu sagen, wenn dies machbar ist.Call scipy.optimize in pyomo

+0

Entschuldigung, die ersten paar Wörter wurden irgendwie ausgeschnitten. Ich wollte fragen, ob ich scipy.optimize.minimize Löser mit Pyomo integrieren könnte. Danke –

+0

Warum möchten Sie SLSQP verwenden, wenn IPOPT verfügbar ist? – sascha

+0

Weil ich auf die Genehmigung zum Download von HSL unbestimmten linearen Lösern warten, die in IPOPT verwendet werden, also wollte ich etwas in der Freizeit versuchen ... –

Antwort

0

Momentan (Dezember 2017) gibt es keine integrierte Unterstützung für die Weitergabe eines Pyomo-Modells an scipy.optimize. Allerdings wäre es keine sehr schwierige Aufgabe, ein relativ allgemeines Objekt zu schreiben, das die notwendigen Bewertungsfunktionen (Wert, Jacobi, Hessisch) zur Weiterleitung an scipy.optimize.minimize() erzeugen könnte.

+0

Got it. Schlägst du vor, ich benutze ein Auto-Differenzierungspaket, um die Jacobi-Matrix zu bekommen? –

+0

Ja. Pyomo-Ausdrücke können aufgerufen werden, um sie auszuwerten. Jacobische und hessische Information kann durch symbolische Differenzierung erhalten werden. Angenommen, Sie haben 'sympy', können Sie' pyomo.core.base.symbolic.differentiate' verwenden, um Jacobi & Hessian Ausdrücke zu erhalten (mit einer bescheidenen Menge an Code). Sie müssen sich in pyomo.core vertiefen, um zu verstehen, wie Constraint Informationen enthält, und ich kann Ihnen keine Garantie für die Leistung der Verwendung von 'sympy' oder' scipy.optimize' geben. (Ich würde erwarten, dass das Pyomo-Modell durch ipopt wesentlich schneller läuft.) – jsiirola