2016-05-16 8 views
0

Ich möchte ein System linearer Ungleichungen in Matlab lösen, wo die Unbekannten x(1), x(2), x(3), x(4) sind. Ich möchte die gesamte Reihe von Lösungen x(1), x(2), x(3), x(4). Daher kann ich linprog nicht verwenden, weil es mir nur einen möglichen Punkt gibt.Ein System von linearen Ungleichungen in Matlab lösen und den gesamten Satz von Lösungen erhalten

Erläuterung: Diese Frage https://stackoverflow.com/questions/37258835/how-to-set-the-objective-function-when-using-linprog-in-matlab-to-solve-a-system war über linprogr, die jedoch nur eine mögliche Lösung gibt. Hier erkundige ich mich, wie ich die gesamte Lösung finden kann.

Dies ist die Menge der Ungleichungen. Irgendein Vorschlag?

5x(1)+3x(2)+3x(3)+5x(4)<5 
-5x(1)-3x(2)-3x(3)-5x(4)<-3 
-x(2)-x(3)<0 
x(2)+x(3)<1 
-x(1)-x(4)<0 
x(1)+x(4)<1 
-3x(3)-5x(4)<-1 
3x(3)+5x(4)>3 
x(3)<1 
-x(3)<0 
x(4)<1 
-x(4)<0 
-5x(1)-3x(2)<0 
5x(1)+3x(2)<2 
x(2)<1 
-x(2)<0 
x(1)<1 
-x(1)<0 
+0

Es ist kein Duplikat. Die andere Frage war über Linprogr. Hier stelle ich explizit fest, dass ich keinen Linprogr verwenden möchte. – user3285148

+0

Ich stimme dem Poster zu: Es ist keine doppelte Frage. –

Antwort

1

Mit stetigen Variablen haben wir grundsätzlich null, eine oder unendlich viele Lösungen. Natürlich ist es nicht möglich, alle Lösungen zu zeigen. Es gibt jedoch ein Konzept von Eckpunkten in der linearen Programmierung, und diese Punkte können wir aufzählen, wenn auch mit viel Aufwand.

Hier sind einige Links für Tools, die dies tun können:

Ein anderer Ansatz ist es, die optimale Basen mit zusätzlichen Binärgrößen aufzuzählen. (Sie haben ein Ziel von Null, so wird dies effektiv: Aufzählung aller möglichen LP-Basen). Dieser Ansatz macht das Problem zu einem MIP. Wir können dies wie durch einen Algorithmus aufzählen:

  1. lösen mip
  2. wenn undurchführbar: stop
  3. Einschränkung hinzufügen aktuellen Punkt
  4. gehe zu Schritt 1

Hier ist ein link, das verbieten veranschaulicht diesen Ansatz, um alle optimalen Basen eines (kontinuierlichen) LP-Problems aufzuzählen.

Beachten Sie, dass das Aufzählen aller Ganzzahl-Lösungen eines Ungleichungssystems einfacher ist. Viele Constraint-Programmierwerkzeuge erledigen das automatisch für Sie. Zusätzlich können wir die oben beschriebene "Schneidebene" -Technik verwenden.

+0

Gut gesagt, Ja, wenn Sie nach einem SET von Lösungen suchen, müssen die Variablen ganze Zahlen sein, sonst gibt es keine Möglichkeit, die Menge der Lösungen zu definieren (außer den erwähnten Ungleichungen). –