0

Ich versuche ein MILP Problem mit PuLP und CBC zu lösen.COIN-OR: Welche Werte nimmt eine beschränkte positive ganze Zahl in einen Optimierungsprozess ein, der durch CBC gelöst wird?

Bis auf den Rest des Problems habe ich ein Problem mit einer Reihe von positiven Integer-Variablen. Ich habe eine Einschränkung mit Relaxation, was bedeutet, dass einige der Variablen in den positiven Integer-Variablen aufgrund der Einschränkungen nicht auf einen bestimmten Wert festgelegt werden.

Also, umformuliert, aus einer Reihe von positiven Integer-Constraints, einige erhalten Werte aufgrund einer Contraint, aber wenn diese Einschränkung gelockert ist (große M Entspannung), müssen die restlichen Variablen nicht eine bestimmte bekommen Wert.

Es ist CBC überlassen, ihnen Werte zu geben. Die meisten von ihnen gehen auf 0, aber einige von ihnen erhalten den Wert der oberen Grenze der Variablen, die 1440 ist. Warum ist das? Gibt CBC randonly diese Werte an diese Variablen? Gibt es irgendeine Regel, der der Sovler folgt?

Wenn Sie etwas nicht verstehen, lassen Sie mich wissen, damit ich Informationen hinzufügen oder umformulieren kann, ich bin neu dazu. Vielen Dank.

Antwort

1

Ich glaube, dass der CBC-Löser in der Regel einen "Standard" B & B Suche, löst eine Reihe von LP-Lockerungen, wie es den Baum durchsucht. Wenn Sie ein LP mit einer der Simplex-Methoden lösen, wird normalerweise der Suchprozess für dieses LP um die Oberfläche des machbaren Raums herumlaufen, so dass ansonsten unterbeschränkte Variablen normalerweise ihren oberen oder unteren Begrenzungswert verwenden .

+0

Vielen Dank für die Antwort. Glauben Sie, dass das Festlegen der Variablen auf einen bestimmten Wert (z. B. 0) eine gute Vorgehensweise ist? Vergeudet es zu viel Rechenleistung für nichts? Oder lassen Sie das Ausgabeprogramm wissen, dass wenn der Wert eine der zwei Grenzen ist, sollte es ignorieren? – dimrizo

+1

In der Regel helfen alle Informationen, die Sie dem Solver über die Lösung (en) geben können, die Sie erwarten oder suchen. Ich habe Variablen häufig auf einen bekannten Wert gesetzt - dies ist besonders nützlich, um das Modell mit einer bekannten Lösung zu debuggen – TimChippingtonDerrick