0

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

所以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

我正在寻找一个不允许这样做的约束。该约束必须涉及三个时间步长。

我已经尝试了几个约束。我不确定这是否可以通过简单的约束来实现。

也许我必须添加一个变量才能使这项工作。你有遇到这种问题的经验吗?

先感谢您!

4

1 回答 1

0

您可以确保具有以下约束的递增或递减顺序:

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

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

y:二元变量(所有方程都使用相同的 y)

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

于 2018-08-29T13:10:34.140 回答