声明cplexProblem.solution.basis.get_row_basis()
给出以下错误TypeError: 'NoneType' object is not subscriptable
稍微检查一下代码,然后在_procedural.py中, getbase_r 中似乎存在一个错误。如果不是返回LAU.array_to_list(rstat,numrows)
,请检查最后一行返回LAU.array_to_list(cstat,numrows)_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)
有人见过这个问题吗?
谢谢。
答案 0 :(得分:0)
您确实发现了一个错误。此问题已在CPLEX 12.7.1中修复。
但是,作为解决方法,您可以改用Cplex.solution.basis.get_basis()。例如:
cplexProblem.solution.basis.get_basis()[1]
实际上,在12.7.1中不推荐使用get_row_basis
和get_col_basis
方法,而是推荐使用get_basis
(请参见发行说明here中不推荐使用的部分) ,随后在12.8中删除。