Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only

未经处理的异常: 0xC0000005: 读取位置 0xbaadf011 时发生访问冲突

  • 1.  未经处理的异常: 0xC0000005: 读取位置 0xbaadf011 时发生访问冲突

    Posted 07/19/12 03:07 AM

    Originally posted by: Ximenes


    Hi, everybody, I run a program in C++ calling cplex. But it returns following problem.
    
    
    
    try etsp.exe 中的 0x0130a144 处有未经处理的异常: 0xC0000005: 读取位置 0xbaadf011 时发生访问冲突
    

    The codes are as follows:
    
    #include <ilcplex/ilocplex.h>   ILOSTLBEGIN   typedef IloArray<IloBoolVarArray> BoolVarMatrix; typedef IloArray<IloNumArray> NumMatrix; typedef IloArray<IloNumVarArray> NumVarMatrix; typedef IloArray<BoolVarMatrix> BoolVar3Matrix;       
    
    int main(
    
    int argc, char** argv) 
    { IloEnv env;   
    
    try 
    { 
    
    const char* filename; 
    
    if (argc > 1) filename = argv[1]; 
    
    else filename = 
    "C:\\Users\\Ximenes\\Desktop\\try1.txt"; ifstream f(filename, ios::in); 
    
    if (!f) 
    { cerr << 
    "No such file: " << filename << endl; 
    
    throw(1); 
    } IloNum T; IloNumArray2 r(env); IloNumArray2 p1(env); IloNumArray2 p2(env); IloNumArray2 s(env); f >> T; f >> r; f >> p1; f >> p2; f>>s; cout<<
    "T="<<T<<endl; cout<<
    "r="<<r<<endl; cout<<
    "p1="<<p1<<endl; cout<<
    "p2="<<p2<<endl; cout<<
    "s="<<s<<endl;   
    
    int N=r.getSize(); cout<<
    "N="<<N<<endl; 
    
    for(
    
    int i=0;i<N;i++)
    { cout<<
    "r["<<i<<
    "]="<<r[i]<<endl; cout<<
    "p1["<<i<<
    "]="<<p1[i]<<endl; cout<<
    "p2["<<i<<
    "]="<<p2[i]<<endl; 
    } IloIntArray n(env,N); IloInt total=0; 
    
    for(
    
    int i=0;i<N;i++)
    { n[i]=r[i].getSize(); cout<<
    "n["<<i<<
    "]="<<n[i]<<
    ","; total+=n[i]; 
    }   cout<<
    "total="<<total<<endl;       IloModel model(env); BoolVar3Matrix z(env,N); 
    
    for(
    
    int i=0;i<N;i++)
    { z[i]=BoolVarMatrix(env,n[i]); 
    
    for(
    
    int j=0;j<n[i];j++)
    { z[i][j]=IloBoolVarArray(env,total); 
    } 
    }   BoolVarMatrix y(env,N); 
    
    for(
    
    int i=0;i<N;i++) y[i]=IloBoolVarArray(env,n[i]); BoolVarMatrix t(env,total-1); 
    
    for(
    
    int i=0;i<total-1;i++) t[i]=IloBoolVarArray(env,total-i-1);   IloNumVarArray I(env,total-1,0,T); IloNumVarArray W(env,total,0,T); IloExpr expr(env); 
    
    for(
    
    int i=0;i<N;i++)
    { 
    
    for(
    
    int j=0;j<n[i];j++)
    { expr+=z[i][j][0]*p1[i][j]*y[i][j]; expr+=p2[i][j]*y[i][j]; 
    } 
    } 
    
    for(
    
    int i=0;i<total-1;i++)
    { expr+=I[i]; 
    }   
    
    for(
    
    int m=0;m<total-1;m++)
    { 
    
    for(
    
    int h=m+1;h<total;h++)
    { 
    
    for(
    
    int i=0;i<N;i++)
    { 
    
    for(
    
    int k=0;k<n[i];k++)
    { 
    
    for(
    
    int j=0;j<N;j++)
    { 
    
    for(
    
    int l=0;l<n[j];l++) expr+=z[i][k][m]*y[i][k]*z[j][l][h]*y[j][l]*s[i][j]*t[m][h];
    //读取位置 0xbaadf011 时发生访问冲突!!!!!! 
    } 
    } 
    } 
    } 
    } model.add(expr<=T); expr.end();
    

    Thank you.
    #CPLEXOptimizers
    #DecisionOptimization