问题描述
问题来了。我有这个变量 Z 遵循以下规则:
我猜 Z 应该这样定义:
Z = cvxpy.Variable(shape=shape_j_t,name="Z",boolean=True)
所以 Z 被约束(?)到平衡“B”。如果 B 为正数,我如何通知求解器 Z 应为 1,否则为 0?特别是考虑到 B 本身由其他 cvxpy.Variables
组成。
解决方法
假设B
上的边界(通常需要)的先验知识,一般方法如下:
b <= UB * z
b >= LB * z
z in {0,1}
其中描述:
z = 0 <-> b = 0
z = 1 <-> LB <= b <= UB
但这只是一般的东西,这些东西通常是在设计时考虑到完整的模型。在这里,我们不知道您在做什么。有时我们不需要等价,而只需要暗示(例如,忽略 LB 约束...)
也许定义正平衡的概念并非易事,因为您只有不等式,而使用 LB=0
表示非负性 em>,但不是严格的积极性。对于后者,需要一些epsilon(例如0.001
)的a-priori定义。