我有一个二进制变量X_i和一个整数变量Y_i
我希望使用Y作为计数器,以便每次X_i = 1时Y_i重置为0
是否有可能找到允许我这样做的约束?
以下是一个例子:
X:001011001
Y:120100120
编辑:
以下是我发现的约束,使用
的线性化y(i) = (y(i-1)+1)*(1-x(i))
y[1] == (1-x[1])
for i in 2:N
y[i] <= 10000*(1-x[i])
y[i] <= y[i-1] + 1
y[i] >= y[i-1] + 1 - 10000*x[i]
以下是我得到的一些结果
x : 0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1
y : 1,2,3,4,5,6,7,8,0,1,2,3,0,1,0,0,0,-9999
或
x : 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1
y : 1,2,3,4,5,6,7,8,9,0,-9999,-19998,-29997,-39996,-49995,-49994,-59993,-69992
我做错了什么?