我有一个代码,我正在调用Cplex来解决它(在Visual Studio中)。它给出了这个错误:
Unhandled exception at 0x00229ced in For-Calling-Cplex.exe: 0xC0000005: Access violation reading location 0xbaadf01d.
这是代码:
...
//parameter:
NumMatrix C(env, I);
for(IloInt i = 0; i < I; ++i)
C[i]=IloNumArray(env,J);
readMaData("C.txt", C, I, J);
/// variables ///
IloNumVarArray u(env,I,-IloInfinity,IloInfinity);
NumVarMatrix v(env, I);
for(IloInt i = 0; i < I; ++i)
v[i]=IloNumVarArray(env,J,0,IloInfinity);
IloNumVar z(env);
IloNumVarArray q(env,J,0,IloInfinity);
NumVarMatrix r(env, I);
for(IloInt i = 0; i < I; ++i)
r[i]=IloNumVarArray(env,J,0,IloInfinity);
/// Constructe a model ///
IloModel Model(env);
/// objective function
IloExpr obj(env);
for(IloInt i=0; i<I; ++i)
obj+=u[i];
obj+=z*P;
for(IloInt j=0; j<J; ++j)
{
obj-=q[j];
for(IloInt i=0; i<I; ++i)
obj-=r[i][j];
}
Model.add(IloMaximize(env,obj));
obj.end();
...
此处u[i]
和z
是自由变量,其余为正数。
是什么原因?这是我定义变量或约束的方式吗?