Ist es möglich (und wenn ja, wie), eine Zielfunktion zu verwenden, die einen bedingten Ausdruck hat?Pyomo und bedingte Zielfunktion
ändern Beispiel aus den Dokumenten, würde ich einen Ausdruck wie mag:
def objective_function(model):
return model.x[0] if model.x[1] < const else model.x[2]
model.Obj = Objective(rule=objective_function, sense=maximize)
Kann diese direkt wie folgt modelliert werden oder muss ich eine Art von Transformation betrachten (und wenn ja, wie würde diese aussehen mögen)?
Gerade Ausführung die oben gibt eine Fehlermeldung wie:
Evaluating Pyomo variables in a Boolean context, e.g.
if expression <= 5:
is generally invalid. If you want to obtain the Boolean value of the
expression based on the current variable values, explicitly evaluate the
expression using the value() function:
if value(expression) <= 5:
or
if value(expression <= 5):
, die ich denke, weil Pyomo denkt würde Ich mag einen Wert erhalten, anstelle einen Ausdruck mit den Variablen.