Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

Removing infeasible arcs in preprocessing

  • 1.  Removing infeasible arcs in preprocessing

    Posted Thu January 03, 2019 04:51 AM

    Originally posted by: Doulee


    Hello,

     

    I've been struggling with my model for a good week. Right now I either get Infeasibility row 'c2':  0  = 1 (with j in FentCEnd in the first constraint) or Row 'c38' infeasible, all entries at implied bounds. (with j in C0End in the first constraint). 

    In my model I have 2 nodes to represent 1 charging station : an entry node and an exit node. I've been thinking about merging these two into just one charging station node. Either way, some arcs are infeasible in the model : either arcs that go from a customer to an exit charging node, or arcs that exceed the capacity/charge/time constraints without having to look at routing. I was thinking that getting rid of these arcs before running the model might help me solve the errors I get but I have no idea how I can do that in cplex. Would it be possible to do that in an execute INITIALIZE{} ? Or will doing this not solve anything and my model is just wrong at its core ?

     

    Thanks a lot in advance !


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Removing infeasible arcs in preprocessing

    Posted Thu January 03, 2019 06:40 AM

    Hi,

    you could label your constraints and then you ll get some info about what has to be relaxed.

    For instance

    forall (i in C) ct1:sum(k in Vehicles, j in C0End:i!=j) x[i][j][k]==1; //all the customers are visited
        //forall (i in Fent) sum(k in Vehicles,j in Nend:i!=j) x[i][j][k]<=1; //you can or cannot visit a recharging station
         forall (k in Vehicles, j in N) ct2:sum(i in Nend:i!=j) x[j][i][k]-sum(i in N0:i!=j) x[i][j][k]==0;
        //forall (k in Vehicles,i in P) sum(j in N:i!=j) x[j][i][k]-sum(j in N:i!=j) x[j][n+i][k]==0;
        forall(k in Vehicles) ct3:sum(j in Pend) x[1][j][k]==1;
        forall(k in Vehicles) ct4: sum(j in D0) x[j][2*n+6][k]==1;

    will give you some conflicts and relaxation

     

    regards

     

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Removing infeasible arcs in preprocessing

    Posted Thu January 03, 2019 07:09 AM

    Originally posted by: Doulee


    Yes of course here's an updated version of the model/data.

    I thought cplex named them automatically thanks for the hint !


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Removing infeasible arcs in preprocessing

    Posted Thu January 03, 2019 07:17 AM

    Hi,

    in OPL documentation you could read

    IDE and OPL > CPLEX Studio IDE > IDE Tutorials

    Relaxing infeasible models

    Uses the nurses example to demonstrate how the IDE detects conflicts and searches for relaxations in OPL models that appear infeasible after execution.

     

    regards


    #CPLEXOptimizers
    #DecisionOptimization