Wie kann ich bei Lingo modellieren, dass mindestens 3 Variablen größer gleich 0 sein müssen?

Antwort

Um in LINGO zu modellieren, dass mindestens drei Variablen größer oder gleich 0 sein müssen, kannst du eine binäre Hilfsvariable für jede der Variablen einführen und dann eine Nebenbedingung hinzufügen, die sicherstellt, dass mindestens drei dieser Hilfsvariablen den Wert 1 annehmen. Hier ist ein Beispiel, wie das aussehen könnte: 1. Definiere deine Variablen \( x_1, x_2, x_3, \ldots, x_n \). 2. Füge binäre Hilfsvariablen \( y_1, y_2, y_3, \ldots, y_n \) hinzu, die anzeigen, ob die entsprechenden \( x \)-Variablen größer oder gleich 0 sind. 3. Füge Nebenbedingungen hinzu, die die Beziehung zwischen den \( x \)-Variablen und den \( y \)-Variablen definieren. 4. Füge eine Nebenbedingung hinzu, die sicherstellt, dass die Summe der \( y \)-Variablen mindestens 3 ist. Hier ist ein Beispiel in LINGO-Syntax: ```lingo ! Definiere die Variablen; @VARIABLES: x1, x2, x3, x4, x5; @BINARY( y1, y2, y3, y4, y5 ); @ENDVARIABLES ! Definiere die Nebenbedingungen; @CONSTRAINTS: x1 >= 0 - M * (1 - y1); x2 >= 0 - M * (1 - y2); x3 >= 0 - M * (1 - y3); x4 >= 0 - M * (1 - y4); x5 >= 0 - M * (1 - y5); y1 + y2 + y3 + y4 + y5 >= 3; @ENDCONSTRAINTS ! Definiere die Zielfunktion (falls erforderlich); @OBJECTIVE: ! Beispiel-Zielfunktion; MAX = x1 + x2 + x3 + x4 + x5; @ENDOBJECTIVE ``` In diesem Beispiel ist \( M \) eine ausreichend große Konstante, die sicherstellt, dass die \( x \)-Variablen nicht durch die Hilfsvariablen eingeschränkt werden, wenn die Hilfsvariablen 0 sind. Die Nebenbedingung \( y1 + y2 + y3 + y4 + y5 >= 3 \) stellt sicher, dass mindestens drei der \( x \)-Variablen größer oder gleich 0 sind.

Frage stellen und sofort Antwort erhalten