Cplex Python错误在基行状态中获取错误



语句cplexProblem.solution.basis.get_row_basis()给出以下错误TypeError: 'NoneType' object is not subscriptable

检查了一下代码,在_procedural.py中,getbase_r中似乎有一个错误。请检查最后一行return LAU.array_to_list(cstat,numrows(,如果它不是return LAU.array_to_list

_procedural.py
def getbase_c(env, lp):
numcols = CR.CPXXgetnumcols(env, lp)
cstat   = _safeIntArray(numcols)
rstat   = LAU.int_list_to_array([])
status = CR.CPXXgetbase(env, lp, cstat, rstat)
check_status(env, status)
return LAU.array_to_list(cstat, numcols)
def getbase_r(env, lp):
numrows = CR.CPXXgetnumrows(env, lp)
cstat   = LAU.int_list_to_array([])
rstat   = _safeIntArray(numrows)
status = CR.CPXXgetbase(env, lp, cstat, rstat)
check_status(env, status)
return LAU.array_to_list(cstat, numrows)

有人看到这个问题了吗?

谢谢。

您确实发现了一个错误。CPLEX 12.7.1中修复了该问题。

但是,作为一种变通方法,您可以使用Cplex.solution.base.get_basis((。例如:cplexProblem.solution.basis.get_basis()[1]

事实上,get_row_basisget_col_basis方法在12.7.1中被弃用,取而代之的是使用get_basis(请参阅此处发行说明中被弃用的部分(,随后在12.8中被删除。

最新更新