2017-07-12 4 views
0

Ich verwende Gurobi 7.0.2 (+ Python 3.5, das heißt, gurobipy) einige harte Optimierungsprobleme (MIPs) zu lösen. Das Finden optimaler Ergebnisse dauert normalerweise Tage oder sogar Wochen. Es ist möglich, Gurobi zu unterbrechen, bevor eine optimale Lösung gefunden wurde, d. H. Gap> 0%, und die derzeit beste Lösung wird zurückgegeben.Erhalten Sie Zwischenergebnisse Gurobi Optimierung

Allerdings wäre es viel schöner sein, um ein Zwischenergebnis mit Gap> 0% abrufen, aber ohne Gurobi vollständig zu unterbrechen. Gurobi sollte weiterhin versuchen, die aktuelle Lösung zu verbessern, aber ich konnte bereits mit der Zwischenlösung arbeiten.

Ist das irgendwie möglich? Wenn nicht, füge es bitte der nächsten Gurobi-Version hinzu.

+2

nachschlagen [Rückrufe] (https://www.gurobi.com/documentation/7.0/refman/py_callbacks.html), wo Sie * definieren würden, wenn * einiger Rückruf (zB neue beste Lösung genannt wird; hier beginnt vielleicht [ ] (https://www.gurobi.com/documentation/7.0/refman/py_model_cbgetsolution.html#pythonmethod:Model.cbGetSolution)). – sascha

Antwort

1

Schreibe eine Callback-Funktion, mit dem == MIPSOL. Rufen Sie dann Model.cbGetSolution(); Siehe den Beispielcode für Model.cbGetSolution().

Verwandte Themen