Est-il possible (et si oui comment) d'utiliser une fonction objectif qui a une expression conditionnelle?Pyomo et fonction objectif conditionnelle
Changer l'exemple de la documentation, je voudrais une expression comme:
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)
peut-il être modélisé directement comme ceci ou dois-je envisager une sorte de transformation (et si oui, comment ce regard comme)?
Juste exécuter ce qui précède donne un message d'erreur comme:
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):
que je pense parce que Pyomo pense que je voudrais obtenir une valeur, au lieu d'une expression à la variable.