有可能在pyomo中提出以下形式的最小-最大-优化问题:
min(max(g_m(x)) s.t. L
其中g_m是非线性函数(实际上是另一个模型的约束),而L是一组线性约束?
如何为模型的目标函数创建表达式?
问题在于,在约束对象列表上使用max()
只会返回在给定点具有最大值的约束。
答案 0 :(得分:0)
我认为是的,但是除非您找到重新构造模型的聪明方法,否则它可能不是很有效。
您可以解决max(g_m(x))
的所有可能性,然后选择目标函数值最低的解决方案。
我担心max
运算不是您可以添加到最小化模型中的东西,因为它不是数学运算,而是求解器运算。此操作处于问题级别。请记住,在求解模型时,Pyomo仅需要一个sense
优化(最小或最大)作为参数,因此使其无法理解最小-最大意义。即使这样做,它又如何知道最大化或最小化什么呢?这就是为什么我建议您将问题分成两部分,除非您着手解决它。