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

Matlab: Integer linear progamm with nonzero constraint

所以我要解决以下问题:

我想知道如何用Matlab的intlinprog解决这个问题。如果我有 "less than or equal to" 而不是 "not equal to" ,那么解决起来就很简单了。

有什么建议吗?

约束条件

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.