LPSolve IDE 找不到解

LPSolve IDE cannot find solution

我尝试使用 LPSolve 解决以下问题 IDE:

min: x1;
r_1: 1.08 - k <= x1;
r_2: -1.08 + k <= x1;
c_1: y1 + y2 + y3 = k;
c_2: 2.29 a1 y1 + 2.28 a2 y1 + 2.27 a3 y1 = 1;
c_3: 1.88 b1 y2 + 1.89 b2 y2 + 1.9 b3 y2 = 1;
c_4: 8.98 c1 y3 + 8.99 c2 y3 + 9.0 c3 y3 = 1;

c_14: a1+a2+a3=1;
c_15: b1+b2+b3=1;
c_16: c1+c2+c3=1;


bin a1,a2,a3,b1,b2,b3,c1,c2,c3;

当我可以使用以下参数值来解决这个问题时,不确定为什么我从 LPSolve 得到的输出为 INFEASIBLE

a1=0, a2=1, a3=0
b1=0, b2=1, b3=0
c1=0, c2=1, c3=0

0 + 2.28 0.438596491 + 0 = 1
0 + 1.89 0.529100529 + 0 = 1
0 + 8.99 0.111234705 + 0 = 1

0.438596491 + 0.529100529 + 0.111234705 = 1.0789 (this is k)

1.08 - 1.0789 == 0.0011 <= x1
-1.08 + 1.0789 == -0.0011 <= x1

x1 = 0.0011

我是不是以错误的方式表述了问题,或者做错了什么?如果我将 =1 约束放宽到 >=1 会有一些结果,但我需要它为 1(因为它在我的解决方案中)。

Lpsolve 仅适用于线性模型。您在模型中有变量的乘积,例如 2.29 a1 y1。 Lpsolve 无法求解此类二次模型。

很遗憾您没有收到正确的错误消息。我猜他们从没想过这个输入。

请注意,二进制变量和连续变量的乘积可以线性化,从而产生所谓的大 M 约束(参见 link)。

这实际上是 的副本。令人尴尬的是,这是同一发帖人之前的问题!