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 声明无界性并提供有效的原始射线。
我在文件 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.
背景:本来我有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 声明无界性并提供有效的原始射线。