Ist es möglich, die optimale Lösung für ein gemischt-ganzzahliges Problem zu finden? Zum Beispiel würde ich das vereinfachte Problem unten wünschen:
%Vor% gibt x=[0;0;1]
zurück, da dies die nächstliegende Ganzzahllösung für den Zielwert von 0.16
ist. Stattdessen gibt es zur Zeit
Intlinprog wurde angehalten, weil kein Punkt die Einschränkungen erfüllt.
Muss nicht unbedingt intlinprog
ausführen. Im Idealfall müsste es auch funktionieren, wenn beq
niedrig ist, zum Beispiel 0.14
.
Sie können einige Slack-Variablen einführen, um bei Bedarf eine Constraint-Verletzung wie folgt zuzulassen:
%Vor%Anmerkungen
Ich habe zwei (positive) Slack-Variablen hinzugefügt, eine für eine positive Constraint-Verletzung und eine weitere für eine negative Constraint-Verletzung.
Sie sollten die Puffervariablen mit einem großen Wert bestrafen, andernfalls ist es vorteilhaft, Ihre Beschränkungen mehr als unbedingt notwendig zu verletzen. Ein allgemeinerer Ansatz bestünde darin, einen guten Bestrafungswert basierend auf den Werten in f
und Aeq
zu bestimmen, zum Beispiel
Tags und Links optimization matlab approximation mixed-integer-programming