SoPlex产生错误的答案

时间:2018-12-12 15:06:16

标签: linear-programming scip

我有一个CPLEX LP格式的LP,文件为LP.tmp

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.

背景:最初,我有目标0,但是由于框的限制,我总是得到infeasible。所以我减少了一切,直到到达上面。

我在做什么错了?

2 个答案:

答案 0 :(得分:2)

此模型不是无限的。所有变量的隐含边界都为0,因此唯一可行且因此最佳的解决方案是SoPlex返回值。

.lp数据格式中,默认情况下所有变量均为非负数。

答案 1 :(得分:2)

默认情况下,所有变量在lp文件格式中均为非负数,请参见https://www.ibm.com/support/knowledgecenter/SSSA5P_12.5.0/ilog.odms.cplex.help/CPLEX/FileFormats/topics/LP.html

因此,您的约束将所有变量固定为0。将x5以外的任何变量的系数更改为-1或在其中将其定义为自由的范围部分添加边界,例如Set ,SoPlex声称无界,并提供有效的原始光线。