SoPlex 产生错误答案

SoPlex yields wrong answer

我在文件 LP.tmp

中有一个 CPLEX LP 格式的 LP
Maximize
    obj: x0 + 2 x1 + 3 x2 + 4 x3 + 5 x4 + 7 x5
Subject To
    c0: 1 x0 + 1 x1 + 1 x2 + 1 x3 + 1 x4 + 1 x5 + 1 x6 + 1 x7 + 1 x8 = 0
End

对此我称之为soplex -X -x -o0 -f0 -v3 LP.tmp 这显然是无限的,但是调用 Soplex 给了我答案(还有一些其他行)。

SoPlex status       : problem is solved [optimal]
Solving time (sec)  : 0.00
Iterations          : 0
Objective value     : 0.00000000e+00


Primal solution (name, value):
All other variables are zero (within 1.0e-16). Solution has 0 nonzero entries.

背景:本来我有objective0,但是框的限制,一直都是infeasible。所以我减少了一切,直到我到达上面。

我做错了什么?

这个模型不是无界的。所有变量都存在 0 的隐式边界,因此唯一可行的最佳解决方案是 SoPlex returns.

.lp数据格式中,默认所有变量都是非负的。

lp文件格式默认所有变量都是非负的,见https://www.ibm.com/support/knowledgecenter/SSSA5P_12.5.0/ilog.odms.cplex.help/CPLEX/FileFormats/topics/LP.html

因此,您的约束将所有变量固定为 0。只要您将除 x5 以外的任何变量的系数更改为 -1 或添加一个边界部分,您将其定义为自由,例如,x1 free, SoPlex 声明无界性并提供有效的原始射线。