如何在pyomo的目标函数中使用min和max。



我对Pyomo非常陌生,正在处理一个用例,其中我的目标函数系数是动态的&需要一个最小-最大函数。

目标函数=最大值(sum(p*UC(-sum(p-min(p((*UC其中P是需要优化的变量,UC是基于某些计算得出的值的函数。

我几乎不怀疑

  1. 如何在目标函数中使用min或max函数,我尝试过np.min或调用函数,但由于函数具有if-else条件,它会出错

我试过很多东西,但似乎都不起作用。如果有人能帮我处理伪代码,那就太好了。

提前感谢。

Min可以通过定义一个新的变量min_P来实现,该变量需要小于任何P,用约束表示:

所有i 的min_P <= P[i]

这将确保min_P不大于最小的P。然后你可以在你的目标函数中使用min_P。我想你知道如何定义这样的约束。这可能会导致一个未绑定变量的问题,具体取决于您的优化方式,但这应该会让您走上正轨。

如果为表达式sum (P * UC) - sum ( P - min(P))定义另一个值,则最大情况类似。

目前尚不清楚UC是一个参数还是一个变量本身(在另一个约束中计算(。在后一种情况下,整个问题将是高度非线性的,应该重新考虑。

我不理解你的抽象模型与具体模型的问题。如果您有可用的数据,请使用ConcreteModel。除此之外,请参阅此处。

相关内容

  • 没有找到相关文章

最新更新