搜索MILP约束以防止整数变量交替

时间:2018-08-29 12:38:19

标签: optimization mixed-integer-programming

这正是我的情况: 假设变量x[t]的NonNegativeInteger小于或等于3。

因此x[t]可以是{0,1,2,3}。它由时间序列索引。

我想防止x[t]交替出现。 表示我想禁止

x[0] = 0
x[1] = 1
x[2] = 0

而且

x[0] = 1
x[1] = 2
x[2] = 1

x[0] = 2
x[1] = 3
x[2] = 2

我正在寻找禁止这样做的约束。该约束必须包含三个时间步骤。

我尝试了一些约束。我不确定是否可以通过简单的约束来实现。

也许我必须添加一个变量才能使其正常工作。您是否有处理此类问题的经验?

先谢谢您!

1 个答案:

答案 0 :(得分:0)

您可以通过以下限制条件确保升序或降序:

x [t] + M(y-1)<= x [t + 1]

x [t] +我的> = x [t + 1]

y:二进制变量(所有方程式中都使用y)

M:大数字(大于可能的最大值)