在AMPL中我有一组变量x [e],对于某些计算,我需要一个二进制变量w [e],当x [e]>时,它等于1。 0和0,如果x [e] = 0.我尝试了很多东西来制定这个约束,但我没有想出一些东西。这可能吗?
答案 0 :(得分:1)
我已通过以下方式解决了您的问题:
var u binary;
这是我们的二进制变量,它将是0或1。 然后我们提出以下约束:
subject to U_constraint :
x <= 999999 * u;
现在当x = 0时,AMPL将使u = 0,当x!= 0时,u = 1。