Je souhaite créer une fonction qui renvoie une valeur par défaut (= 0) chaque fois que j'essaie d'accéder à une variable indexée avec un index non valide. C'est ce que j'ai jusqu'ici.Fonction Pyomo qui renvoie une valeur par défaut lorsqu'une erreur d'index se produit
def SafeguardIdx(object, index_set):
print("Guarded {} with index {}".format(object.name, index_set), index_set in object.index_set())
return base.expr.Expr_if(IF=index_set in object.index_set(), THEN=object[index_set], ELSE=0)
C'est ce que je veux:
Guarded ENDINVW_jwt with index (1, 1, 0) False
KeyError: "Error accessing indexed component: Index '(1, 1, 0)' is not valid for array component 'ENDINVW_jwt'"
Pourquoi accéder à l'index, même si le "IF =" est évaluée comme False?
EDIT: Je voudrais aussi vous demander si ma mise en œuvre d'une fonction min() est correcte:
def PyomoMin(a, b):
return base.expr.Expr_if(IF=(a > b), THEN=(a), ELSE=(b))
Merci à l'avance!