2017-12-19 4 views
0

In Kapitel 16 von the documentation folgendes gesagt:Pyomo: Einstellung variable Verzweigung Prioritäten

exportieren Informationen zu einem Löser oder Algorithmus zur Lösung eines mathematischen Programm (zB Warmstartinformationen, variable Verzweigung Prioritäten zu unterstützen).

Ich kann jedoch kein Beispiel finden, wie variable Prioritäten gesetzt werden könnten (für kompatible Löser). Ich kann dazu im Quellcode nichts finden.

Als einstellbare variable Prioritäten ist Löser-spezifisch: Mit welchen Lösern funktioniert das? Genauer gesagt: Wie geht das mit CPLEX oder Gurobi? Und kann es auch für Open-Source-Löser funktionieren?

Antwort

0

Pyomo verfügt über ein System zum Übergeben von Optionen an die Solver. In den meisten Fällen werden diese genau so übergeben, wie Sie es angegeben haben. In der Dokumentation zu Gurobi oder CPLEX finden Sie die akzeptierten Schlüsselwörter und Werte.

+0

Aber wie werden diese Anforderungen an den Löser übergeben? [In der Solver-Quelldatei scheint es nur möglich, Daten aus dem Solver zu extrahieren, anstatt sie in den Solver zu importieren] (https://github.com/Pyomo/pyomo/blob/master/pyomo/solvers /plugins/solvers/CPLEX.py). – Jasper

+0

Entschuldigung für die Verzögerung in der Antwort. Die Suffices werden abhängig davon, welche Schnittstelle Sie im Hintergrund verwenden, unterschiedlich übergeben. Pyomo kann eine * .lp-Dateischnittstelle, eine * .nl-Dateischnittstelle oder für bestimmte Solver eine direkte Python-Schnittstelle (neben anderen Optionen) verwenden. Für die Benutzeroberfläche der AMPL Solver Library sollten Sie sich https://github.com/Pyomo/pyomo/blob/master/pyomo/repn/ampl_repn.py ansehen. Für Gurobi direkt, https://github.com/Pyomo/pyomo/blob/master/pyomo/solvers/plugins/solvers/GUROBI_RUN.py –