我正在尝试使用CPLEX Python API进行一些性能实验,发现大多数CPLEX行或列更新都是通过稀疏对或稀疏三元组进行的。在大型矩阵(数百万列)上,它变得太慢了。
我正在寻找更有效的方式(相当于Callable Library中的int CPXaddcols(CPXENVptr env,CPXLPptr lp,int ccnt,int nzcnt,double *obj,int *cmatbeg,int *cmatind,double *cmatval, double *lb, double *ub,char **colname)
)
我发现这些方法位于cplex._internal._procedural
,但无法真正称之为成功。
任何人都使用CPLEX Python进行大规模LP?任何人在python cplex中使用addcols(env, lp, ccnt, nzcnt, obj, cmat, lb, ub, colname, enc=default_encoding)
方法?
非常感谢任何帮助。
由于
import cplex
import os
WORKDIR = "data1"
filename = "matrix1.prefix.LP"
os.chdir(WORKDIR)
problem = cplex.Cplex(filename)
theEnv = problem._env
theLP = problem._lp
returnCols = cplex._proc.getcols(theEnv, theLP, 0,10)
print( returnCols)
文件“C:/TSWork/Misc/Calendar_Year_2018/Experiments/MtrxDnst/CPX_Proc_V1.py”,第15行,in returnCols = cplex._proc.getcols(theEnv,theLP,0,10)
文件“C:\ Software \ Anaconda3 \ envs \ cplex \ lib \ site-packages \ cplex_internal_procedural.py”,第861行,在getcols中 status = CR.CPXXgetcols(env,lp,inout_list)
TypeError:在'CPXXgetcols'方法中,类型'CPXCENVptr'的参数1