整数规划:整数变量的模型唯一性

时间:2016-05-24 10:28:59

标签: optimization linear-programming

假设有三个整数变量用于整数编程,因此:

a \in {1,2,3}
b \in {1,2,3}
c \in {1,2,3}

现在我想模拟所有变量都不同。显然,我可以为每个组合(在这种情况下为三个)执行以下操作。我用a和b显示它。

a <= b - 1 + bin1 * bigM
a >= b + 1 - (1 - bin1) * bigM
bin1 \in {0, 1}

是否有更简单的方法可以不产生大量新约束,bigM和二元变量?

2 个答案:

答案 0 :(得分:1)

对不起,不是真的。此构造通常称为all-different constraint。这是一个参考:

  

威廉姆斯,洪燕,“各种不同的代表   整数规划中约束满足的谓词,“INFORMS   计算机杂志,Vol。 13(2001)96-103

另见讨论here

答案 1 :(得分:1)

我发现,也可以做以下事情:

j^2

嗯,显然现在有x_j个新的二进制变量。但是,您拥有b_i_j变量以及all-different constraint: \sum_{j=1}^{3} b_i_j = 1 for i \in {1,2,3} 变量,因此您可以更灵活地处理所有类型的约束。

{{1}}
好吧,不是吗?