Matlab:具有非零约束的整数线性程序

时间:2019-11-01 14:48:51

标签: matlab integer constraints linear-programming

所以我必须解决以下问题:

problem

我想知道如何使用Matlab的intlinprog解决此问题。如果我有“小于或等于” 而不是“不等于” ,那么解决起来很简单。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

约束

Ax <= 0

是微不足道的。但是约束

Ax <> 0

不是那么容易。我们可以将其重写为

y = Ax
y(i) >= 0.0001
or
y(i) <= -0.0001

此表述立即表明此问题已变得不凸。我们可能需要二进制变量来帮助我们。例如:

y = Ax
y(i) >= 0.0001 - 1000*b(i)
y(i) <= -0.0001 + 1000*(1-b(i))
b(i) in {0,1}

我在这里假设-1000 <= Ax <= 1000