【发布时间】:2020-11-25 09:11:45
【问题描述】:
在 CVXPY 中,如何像这样收缩“或”约束?
我正在寻找的约束是 x 可以是 1 或 2。优化器最小化 x 并获得最优 x = 1。
例如,[x == 1 or x == 2] 无效,[x == 1, x == 2] 表示 x == 1 AND x == 2 无效。
我正在寻找将 x 限制为 1 或 2 的约束:x == 1 OR x == 2。是否可以创建这样的 CVXPY 约束?
import cvxpy as cp
x = cp.Variable(name='x')
## x is 1 or 2
## constraints = [ x...] # x is 1 or 2; for example, 'constraints = [x == 1 or x == 2]' does not work
objective = cp.Minimize(x)
problem = cp.Problem(objective, constraints)
problem.solve()
print("x.value = " , x.value)
【问题讨论】: