Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only

passing a 2D array to a cp model in Flow control in opl script

  • 1.  passing a 2D array to a cp model in Flow control in opl script

    Posted 07/21/12 11:57 AM

    Originally posted by: SystemAdmin


    Hi , I want to pass a 2D array from a model to another model ,
    i tried this :
    var AssignmentSrc = new IloOplModelSource("CPlexTest.mod"); //Assignment is the first model
    var AssignmentDef = new IloOplModelDefinition(AssignmentSrc);
    var AssignmentCplex = cplex ;
    var Assignment = new IloOplModel(AssignmentDef,AssignmentCplex);
    var AssignmentData = new IloOplDataElements();
    Assignment.generate();

    if(AssignmentCplex.solve())
    {
    Assignment.postProcess();
    writeln("\nsolved cplex"); //Scheduling is the second model
    var SchedulingSrc = new IloOplModelSource("CPTest.mod");
    var SchedulingDef = new IloOplModelDefinition(SchedulingSrc);
    var SchedulingCP = new IloCP();
    var Scheduling = new IloOplModel(SchedulingDef,SchedulingCP);
    var SchedulData = new IloOplDataElements();
    SchedulData.TaskNum = thisOplModel.TaskNum;
    SchedulData.CoreNum = thisOplModel.CoreNum;
    SchedulData.tasks = thisOplModel.tasks ;
    var M = Assignment.X ;
    SchedulData.allocation = M; //my problem is here M is a 2D array
    }

    when i print the SchedulData.allocation (writeln("i = ",i," j = ",j," -->",allocation[i][j]);) i get this :
    i = 1 j = 1 -->a IloNumVar
    i = 1 j = 2 -->a IloNumVar
    i = 1 j = 3 -->a IloNumVar
    i = 2 j = 1 -->a IloNumVar
    i = 2 j = 2 -->a IloNumVar
    i = 2 j = 3 -->a IloNumVar
    i = 3 j = 1 -->a IloNumVar
    i = 3 j = 2 -->a IloNumVar
    i = 3 j = 3 -->a IloNumVar
    i = 4 j = 1 -->a IloNumVar
    i = 4 j = 2 -->a IloNumVar
    i = 4 j = 3 -->a IloNumVar
    i = 5 j = 1 -->a IloNumVar
    i = 5 j = 2 -->a IloNumVar
    i = 5 j = 3 -->a IloNumVar
    i = 6 j = 1 -->a IloNumVar
    i = 6 j = 2 -->a IloNumVar
    i = 6 j = 3 -->a IloNumVar
    i = 7 j = 1 -->a IloNumVar
    i = 7 j = 2 -->a IloNumVar
    i = 7 j = 3 -->a IloNumVar
    i = 8 j = 1 -->a IloNumVar
    i = 8 j = 2 -->a IloNumVar
    i = 8 j = 3 -->a IloNumVar
    i = 9 j = 1 -->a IloNumVar
    i = 9 j = 2 -->a IloNumVar
    i = 9 j = 3 -->a IloNumVar
    i = 10 j = 1 -->a IloNumVar
    i = 10 j = 2 -->a IloNumVar
    i = 10 j = 3 -->a IloNumVar
    i = 11 j = 1 -->a IloNumVar
    i = 11 j = 2 -->a IloNumVar
    i = 11 j = 3 -->a IloNumVar
    i = 12 j = 1 -->a IloNumVar
    i = 12 j = 2 -->a IloNumVar
    i = 12 j = 3 -->a IloNumVar
    i = 13 j = 1 -->a IloNumVar
    i = 13 j = 2 -->a IloNumVar
    i = 13 j = 3 -->a IloNumVar
    i = 14 j = 1 -->a IloNumVar
    i = 14 j = 2 -->a IloNumVar
    i = 14 j = 3 -->a IloNumVar
    i = 15 j = 1 -->a IloNumVar
    i = 15 j = 2 -->a IloNumVar
    i = 15 j = 3 -->a IloNumVar

    and value of them is zero

    can anyone help me how i should pass the array to this model?

    thanks in advance
    #DecisionOptimization
    #OPLusingCPLEXOptimizer