Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  problem with IloSolution using vc++

    Posted 11/12/07 09:27 AM

    Originally posted by: SystemAdmin


    [nidhi said:]

    void LRprob(IloEnv env, IloInt  M, IloIntArray wlp, NumMatrix qjmlp, NumMatrix duedates,int **blmlp, NumMatrix remainingtime,
    NumMultiDimensional lamda, NumMultiDimensional delta,int **aljmlp, int *jm)
    {
    IloInt ilp,jlp,klp;
    IloInt L = wlp.getSize();
    IntMatrix ylmlp(env,L);
    IntVarMultiDimensional zljmlp(env,L);
    IntVarMultiDimensional xljmlp(env,L);

    ilp=0; jlp = 0;
    std::cout<<"inside LRProb"<<endl;<br /> for(ilp=0;ilp<L;ilp++)<br /> ylmlp[ilp] = IloIntArray(env,M,0,1);

          IloSolution solxljmlp(env);
            solxljmlp = solveSP1(env,M,lamda,wlp,jm,qjmlp);
            std::cout<<solxljmlp.getValue(xljmlp&#91;0&#93;&#91;0&#93;&#91;0&#93;);<br />
    // ylmlp = solveSP2(env,delta,blmlp,aljmlp,L,jm,M);
    for(ilp=0;ilp<L;ilp++)<br /> {
    zljmlp[ilp] = IntVarMatrix(env,M);
    for(jlp=0;jlp<M;jlp++)<br /> zljmlp[ilp][jlp] = IloIntVarArray(env,jm[jlp],0,1);
    }
    //zljmlp =
    for(ilp=0;ilp<M;ilp++)<br /> solveSP3(M, jm, wlp, lamda, remainingtime, duedates, aljmlp, ilp);
    }

    IloSolution solveSP1(IloEnv env, IloInt M,NumMultiDimensional lamda, IloIntArray wlp, int *jmlp, NumMatrix qjmlp)
    {

    IloModel model(env);
    IloInt ilp, jlp,klp;
    IloInt temp;
    IloInt L = wlp.getSize();
    IntVarMultiDimensional xljmlp(env,L);

    for(ilp=0;ilp<L;ilp++)<br /> {
    xljmlp[ilp] = IntVarMatrix(env,M);
    for(jlp=0;jlp<M;jlp++)<br /> xljmlp[ilp][jlp] = IloIntVarArray(env,jmlp[jlp],0,25);
    }
    //constraint 1
      for(ilp=0;ilp<M;ilp++)<br /> for(jlp=0;jlp<jmlp&#91;ilp&#93;;jlp++)<br /> {
    IloExpr cons1(env);
    for(klp=0;klp<L;klp++)<br /> cons1 = cons1 + xljmlp[klp][ilp][jlp];
    model.add(cons1 == qjmlp[ilp][jlp]);
    }
    //Constraint 2
    for(ilp=0;ilp<L;ilp++)<br /> {
    IloExpr cons2(env);
    for(jlp=0;jlp<M;jlp++)<br />   for(klp=0;klp<jmlp&#91;jlp&#93;;klp++)<br />   cons2 = cons2 + xljmlp[ilp][jlp][klp];
    model.add(cons2 <= wlp[ilp]);<br /> }

    IloExpr spobj1(env);
          for(ilp=0;ilp<L;ilp++)<br /> for(jlp=0;jlp<M;jlp++)<br />     spobj1 = IloScalProd(lamda[ilp][jlp],xljmlp[ilp][jlp]);
    spobj1 = spobj1 * (-1);
        IloObjective spobj = IloMinimize(env,spobj1);   
        model.add(spobj);
        spobj1.end();

    IloCplex cplex1(env);
    cplex1.extract(model);

    if(!cplex1.solve())
    env.error()<<"failed to optimize lp. "<<endl;<br /><br /> std::fstream write_data; <br /> write_data.open("input.txt",ios::out);

    write_data<<L;<br /> write_data<<" "<<M;<br /> for(int i=0;i<M;i++)<br /> write_data<<jmlp[i]<<" ";
    write_data<<endl;<br /> IloSolution solution(env);
    solution.add(spobj);
    solution.setValue(spobj, cplex1.getObjValue());
    std::cout<<"vlaues of xljmlp are :"<<endl;<br /> for(ilp=0;ilp<L;ilp++)<br /> {for(jlp=0;jlp<M;jlp++)<br /> for(klp=0;klp<jmlp&#91;jlp&#93;;klp++)<br /> {
    solution.add(xljmlp[ilp][jlp][klp]);
    solution.setValue(xljmlp[ilp][jlp][klp], cplex1.getValue(xljmlp[ilp][jlp][klp]));
    std::cout<<cplex1.getValue(xljmlp[ilp][jlp][klp])<<" "; <br /> write_data<<cplex1.getValue(xljmlp[ilp][jlp][klp])<<" ";
    }
    std::cout<<endl; write_data<<endl;}<br /> write_data.close();
    return solution;
    }

    the code works without error and solves SP1 but terminates abnormally after writing the values inside function SP1 i.e it does not execute after returning from the function.
    Can anyone  help.
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: problem with IloSolution using vc++

    Posted 11/13/07 06:46 PM

    Originally posted by: SystemAdmin


    [alain.chabrier said:]

    Hello,

    I don't think this is anyway related to OPL, so I am surprised this is posted in the OPL part.
    May be this is just a mistake.

    Alain
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: problem with IloSolution using vc++

    Posted 11/14/07 03:41 AM

    Originally posted by: SystemAdmin


    [Tom said:]

    Hello

    The goal of the discussion forums is for the community-at-large to connect and assist on such requests, but as we are just days into the launch of the public forums, if you are looking for a timely response, you may wish to submit your request through regular Customer Support channels.

    Tom
    #DecisionOptimization
    #OPLusingCPLEXOptimizer