我有一个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
。所以我减少了一切,直到到达上面。
我在做什么错了?
答案 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声称无界,并提供有效的原始光线。