我想創建一個函數,當我嘗試訪問帶有無效索引的索引變量時返回默認值(= 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 =」 的計算結果爲假?
編輯:我還想問一下,如果我的落實分鐘()函數是正確的:
def PyomoMin(a, b):
return base.expr.Expr_if(IF=(a > b), THEN=(a), ELSE=(b))
提前感謝!