如何在 Python 中将 if-else 语句转换为线性规划约束

vp_050

我有两个变量E[i]and Y[i],其中E是一个连续变量并且Y是二元的。所以条件是:

if E[i] <= rmin:
        Y[i]==1
    else:
        Y[i]==0

如何if-else使用 Python将此循环转换为线性约束?

保罗·汉金

为了简化一点,让E'[i] = E[i] - rmin

你要表达Y[i] = 1 if E'[i] <= 0, and 0 otherwise

如果E'(严格)受某个 number 的限制c,则很容易:Y[i] > -E'[i]/cY[i] < E'[i]/c

否则,我认为您不能仅使用约束来做到这一点,但是如果您可以使用最大化子句和松弛变量,则可以。您可以编写k = max(min(E'[i], 0.5), -0.5), Y[i] > -k, Y[i] < k,然后使用标准 LP 技巧来表达maxmin

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章