無効なインデックスを持つインデックス付き変数にアクセスしようとすると、デフォルト値(= 0)を返す関数を作成します。これは私が今までに得たものです。インデックスエラーが発生したときにデフォルト値を返すPyomo関数
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)
これは私が取得していますものです:
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'"
はなぜインデックスにアクセスん "IF =" falseと評価しても?
EDIT:分()関数の私の実装が正しければ、私もお願いしたいと思います:
def PyomoMin(a, b):
return base.expr.Expr_if(IF=(a > b), THEN=(a), ELSE=(b))
感謝を事前に!