在 CVXPY 中实现“OR”约束

问题描述

所以我有一个简短的问题,但我无法找到答案...

我想对 CVXPY 实施“OR”约束:

要么 x = 0 要么 x_min

其中 x 是一个真正的正值。我们如何在代码中实现这样的约束? 我试图用混合整数形式来制定约束,但我没有成功...... 任何帮助将不胜感激!

解决方法

凸优化中没有严格不等式。

假设,我们要表达:

Either x = 0 OR x_min <= x <= x_max
(x_min,x_max: scalar constants)

这通常由(混合整数编程!)完成:

Add binary variable y
Add constraint: x <= x_max * y
Add constraint: x >= x_min * y

严格的不等式需要先验定义epsilons