Frage

Ist es möglich, den MSF-api zu verwenden, um eine Variable als halb-integer zu spezifizieren (V = 0 oder a <= V <= b)?

Im Folgenden ist ein Beispiel in lp_solve, die das „s“ und „int“ Schlüsselwörter verwendet die Variablen sind halbkontinuierliche und integer anzuzeigen.

max: 0.5 Q1 + 0.55 Q2 ;

Q1 >= 5;
Q1 <= 10 ;
Q2 >= 5;
Q2 <= 10;
Q1 + Q2 <= 10;

sec Q1,Q2 ;
int Q1,Q2 ;

Etwas Ähnliches in MSF wäre schön. Ich nehme zur Kenntnis, dass es möglich ist, eine Gurobi Plugin DLL innerhalb MSF rufen jedoch ich keinen Platz in dieser api korrekt den Typ der Variablen einstellen können finden kann (man denke ich Gurobi den VTYPE nennt), so dass ich es annehmen, ist entweder in ihrer .net api oder nicht verfügbar in der Version von Gurobi dass MSF Anwendungen nicht ausgesetzt? Alternativ gibt es eine schöne Art und Weise lp_solve von .NET?

zu nennen
War es hilfreich?

Lösung

Sie können dies mit Solver-Stiftung tun, aber es gibt kein Äquivalent für die „sec“ Schlüsselwort. Stattdessen können Sie eine Dummy-0-1 Entscheidung für jeden Halb Integer-Variable hinzufügen. Für Ihr ursprüngliches Beispiel „V“ beteiligt, hier ist, wie Sie es in OML tun konnten:

Model[
  Decisions[
    Integers[0, 1],
    VPositive
  ],
  Decisions[
    Reals,
    V
  ],
  Constraints[
    constraint -> 10 * VPositive<= V <= 20 * VPositive
  ]
]

Wenn Sie die Solver Foundation API verwenden, dann würden Sie die analogen Entscheidungen hinzufügen, Einschränkungen, Ziele des Objektmodell verwenden. Die Art und Weise der Art einer Entscheidung angeben, wird unter Verwendung einer Domain, in der Ctor zur Verfügung gestellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top