我有一个非常大的线性规划问题(超过10,000个方程和20,000个变量)。优化问题甚至包含在循环中,需要多次求解。因此,我想使用稀疏矩阵和高效的求解器来进行优化。我知道cvxopt可以使用商业求解器如Cplex和Gurobi,但我需要许可证吗?我该如何在cvxopt中调用Cplex?
当我使用以下代码:
solvers.lp(f, Ain, Bin, Aeq, Beq, solver='gurobi')
solvers.lp(f, Ain, Bin, Aeq, Beq, solver='cplex')
问题无法被解决(显示为infeasible)。我认为这是因为我没有包含许可证。
我是一名学生,拥有免费的Cplex许可证,但不知道如何在Python cvxopt中包含它。
以下是我的代码:
while(1):
# some code before
f=matrix(OPT['c1M'].T)
Ain=sparse_to_spmatrix(OPT['AinM'])
OPT['Xu']=np.reshape(OPT['Xu'],(len(OPT['Xu']),1))
OPT['Xd'] = np.reshape(OPT['Xd'], (len(OPT['Xd']), 1))
Bin=matrix(np.vstack([OPT['BinM'], OPT['Xu'], -OPT['Xd']]))
Aeq=sparse_to_spmatrix(OPT['AeqM'])
Beq=matrix(OPT['BeqM'])
sol = solvers.lp(f, Ain, Bin, Aeq, Beq,solver='glpk',options={'glpk':{'msg_lev':'GLP_MSG_OFF'}})
# some code after