如何在 pyomo 中写出 if p or q then r 的约束?
How to write constraint which says if p or q then r in pyomo?
您好,我正在学习使用 pyomo 进行优化,我遇到一个问题,即只有当其他两个变量之一或两者都获得值时,一个变量才应该获得值。
就像重言式中的 (P V Q) => R。有人可以帮助如何将其写为 pyomo 中的约束。
示例:如果我使用 3 种成分制作产品,如果使用了 1,2 中的任何一种或同时使用了 1,2,则应始终使用第 3 种。
我不知道"get a value"在优化什么。模型中的所有变量 "get a value"。将其视为一个方程组 + objective.
但是,当然,
(P V Q) => R
相当于
R >= P
R >= Q
其中 R、P 和 Q 是二进制变量。
您所描述的是析取编程。 Pyomo 通过 Pyomo.GDP 提供支持:https://pyomo.readthedocs.io/en/latest/modeling_extensions/gdp.html,即将提供更多逻辑表达式支持。
对于简单的问题,Erwin 建议的直接代数公式可能是最简单的。
您好,我正在学习使用 pyomo 进行优化,我遇到一个问题,即只有当其他两个变量之一或两者都获得值时,一个变量才应该获得值。
就像重言式中的 (P V Q) => R。有人可以帮助如何将其写为 pyomo 中的约束。
示例:如果我使用 3 种成分制作产品,如果使用了 1,2 中的任何一种或同时使用了 1,2,则应始终使用第 3 种。
我不知道"get a value"在优化什么。模型中的所有变量 "get a value"。将其视为一个方程组 + objective.
但是,当然,
(P V Q) => R
相当于
R >= P
R >= Q
其中 R、P 和 Q 是二进制变量。
您所描述的是析取编程。 Pyomo 通过 Pyomo.GDP 提供支持:https://pyomo.readthedocs.io/en/latest/modeling_extensions/gdp.html,即将提供更多逻辑表达式支持。
对于简单的问题,Erwin 建议的直接代数公式可能是最简单的。