Optimization 如何在pyomo中编写表示如果p或q然后r的约束?

Optimization 如何在pyomo中编写表示如果p或q然后r的约束?,optimization,constraints,mathematical-optimization,pyomo,Optimization,Constraints,Mathematical Optimization,Pyomo,您好,我正在学习使用pyomo进行优化,我遇到了一个问题,即只有当其他两个变量中的一个或两个都得到值时,一个变量才应该得到值 这就像重言式中的(pvq)=>R。有人能帮我把它写成pyomo的约束吗 示例:如果我使用3种成分来制作产品,那么如果使用了1,2中的任何一种或同时使用了1,2,则应始终使用第三种成分。我不知道优化中的“获取值”是什么。模型中的所有变量“获取一个值”。把它看作一个方程组+一个目标 但是,当然 (P V Q) => R 相当于 R >= P R >

您好,我正在学习使用pyomo进行优化,我遇到了一个问题,即只有当其他两个变量中的一个或两个都得到值时,一个变量才应该得到值

这就像重言式中的(pvq)=>R。有人能帮我把它写成pyomo的约束吗

示例:如果我使用3种成分来制作产品,那么如果使用了1,2中的任何一种或同时使用了1,2,则应始终使用第三种成分。

我不知道优化中的“获取值”是什么。模型中的所有变量“获取一个值”。把它看作一个方程组+一个目标

但是,当然

 (P V Q) => R
相当于

  R >= P
  R >= Q

其中R、p和Q是二进制变量。

您所描述的是析取编程。Pyomo通过Pyomo.GDP:提供了这方面的支持,更多的逻辑表达式支持即将推出


对于简单的问题,欧文建议的直接代数公式可能是最简单的。

我的意思是“p或q”意味着r。我不明白R大于或等于P是什么,来吧。布尔变量可以被认为是0或1(0=false,1=true)。谢谢,我想这样就可以了。我将努力实现这一点。