Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
Expand all | Collapse all

How detect infeasibilities from a tentative solution

  • 1.  How detect infeasibilities from a tentative solution

    Posted 09/26/13 04:09 AM

    Originally posted by: emiliomartin


    Hi,
     
    We are working on a scheduling project which requires detect errors or infeasibilities from a given tentative solution. A user can generate a solution and our system has to check if the provided solution is valid or not. In the latter case our application must specifies all detected infeasibilities. 
     
    We've already used Conflict Refiner, but is not enough due to it detects the minimal conflict set, and we need the whole set. Moreover the way that CP provides the detected errors is difficult to handle (is given in a text string). 
     
    Other doubt is the following. During search phase, and using our custom goal,  if a fail is thrown we would like to know which constraint is responsible of that fail.

    Thanks for your time. 

    Regards. 


    #CPOptimizer
    #DecisionOptimization


  • 2.  Re: How detect infeasibilities from a tentative solution

    Posted 10/01/13 12:20 PM

    Originally posted by: ChrisBr


    Hello Emilio,

    Sorry for the late answer.

    I suggest that you have a look at the sample
            <Install_dir>/cpoptimizer/examples/src/cpp/sched_conflict.cpp
    especially the Scenario 4.

    I hope this helps,

    Chris.
     


    #CPOptimizer
    #DecisionOptimization


  • 3.  Re: How detect infeasibilities from a tentative solution

    Posted 10/01/13 03:07 PM

    Originally posted by: emiliomartin


     

    Hi Chris,
     
    Many thanks for your answer. The scenario 4 is just what we're looking for... I put the scenario's description below for other users:
     
    " Scenario 4: Find a minimal conflict partition that is, a set of disjoint  minimal conflicts S1,...,Sn such that when all constraints in S1 U S2 U... U Sn are removed from the model, the model becomes feasible.
     
    After having a look on it I have a new question.
     
    There is any way to recover the same information printed by the method cp.writeConflict(cp. out()).?
     
    I mean, we can know if a constraint belongs to the current set of conflicts, using method cp. getConflict(constrain[i]). However, as far as we know there is no way to know which variable/s (IloIntervalVar) is related to which constraint, unless we use an external data structure. This information is critical for us in order to compose human-readable messages for users.  
     
    Should we construct a parser to translate information provided  by cp.writeConflict(...) into human-readable messages? Or there exist other way to compose these messages? 

    Kind Regards.


    #CPOptimizer
    #DecisionOptimization


  • 4.  Re: How detect infeasibilities from a tentative solution

    Posted 10/03/13 11:11 AM

    Originally posted by: ChrisBr


    Hello Emilio,

    I'm not sure to understand what you want to do.
    I suggest that you try
       cp.getConflict(IloIntervalVar)
    after have set
       cp.setParameter(IloCP::ConflictRefinerOnVariables, IloCP::On)

    A way to know which variables are related to which constraints is to maintain the links yourselves.

    Regards,

    Chris.
     


    #CPOptimizer
    #DecisionOptimization