Как исправить ошибку нарушения доступа при решении с Cplex - PullRequest
0 голосов
/ 26 марта 2012

У меня есть код, и я вызываю 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 - свободные переменные, а остальные положительные.

какова причина?Это способ, которым я определяю переменные или ограничения?

...