Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Modifiers for decision variables, local or global ?

    Posted 07/26/17 01:21 PM

    Originally posted by: stef44


    Hi all, 

    I was wondering if someone could clarify a doubt I had concerning the modifiers for decision variables. For example I am trying to use setMin() which I understand is a modifier for an expression.  I was wondering if it is used to set the minimum locally or globally throughout the program ? 

    Any answer would be appreciated, thank you!
     


    #CPOptimizer
    #DecisionOptimization


  • 2.  Re: Modifiers for decision variables, local or global ?

    Posted 07/27/17 03:25 AM

    Originally posted by: PhilippeLaborie


    On which class are you calling setMin ?

    If you are calling it on a concert model variables (e.g. IloIntVar::setMin(20)), it will change the domain of the variable *in the model*, not in the engine.

    If you are calling it during the searcj on an engine variable (e.g. IlcIntVar::setMin(20)), then it will change it in a reversive way in the engine: any search node below the current one will see the new domain but the new domain restriction will be removed if you backtrack above the current node. This is typically used for taking decisions in the search tree or during constraint propagation.

    You get the engine variable (e.g. IlcIntVar) from a concert model variable (e.g. IloIntVar) by calling the adequate function on IloCP (e.g. IloCP::getIntVar(IloIntVar)).

    Philippe


    #CPOptimizer
    #DecisionOptimization


  • 3.  Re: Modifiers for decision variables, local or global ?

    Posted 08/02/17 01:57 AM

    Originally posted by: stef44


    Thank you very much for clarifying my question!

    I was questioning setMin() when it is called on an engine variable.


    #CPOptimizer
    #DecisionOptimization


  • 4.  Re: Modifiers for decision variables, local or global ?

    Posted 01/11/19 06:19 AM

    Originally posted by: istenc


    Hello,

    I want to set minimum of a decision variable globally (irreversibly) during a search.

    I can set minimum of IlcCPOFloatVar variable in propagate phase. 

    Is there any way to reach out to IloNumVar corresponding to the engine variable IlcCPOFloatVar  and set minimum of IloNumVar to make that update / setting irreversible?

     

    Best,

    İstenç


    #CPOptimizer
    #DecisionOptimization


  • 5.  Re: Modifiers for decision variables, local or global ?

    Posted 01/11/19 08:25 AM

    Originally posted by: Petr Vilím


    Hello,

    if you want to do that in the search then the answer is no, you cannot do that. All the changes to variable bounds are always reversed during backtrack.

    I guess that it is related to your other question about setting global bound on objective. So one more thought: you can also create your own search and then affect the lower bound of the variable in every search decision. But that's probably too big hammer for the problem.

    Best regards, Petr


    #CPOptimizer
    #DecisionOptimization


  • 6.  Re: Modifiers for decision variables, local or global ?

    Posted 01/11/19 09:12 AM

    Originally posted by: istenc


    You are right,  it is  related to my other question. For the moment, as you suggest, I will write my own goal to update the objective value.

    Thanks again, İstenç


    #CPOptimizer
    #DecisionOptimization


  • 7.  Re: Modifiers for decision variables, local or global ?

    Posted 04/25/19 07:54 AM

    Originally posted by: beyondzhao


    I am not very clear about what you said about "write goals to update objective value", can you explain more specificly how to implemention it ?
    Appreciate for you reply.


    #CPOptimizer
    #DecisionOptimization


  • 8.  Re: Modifiers for decision variables, local or global ?

    Posted 05/01/19 07:03 AM

    Originally posted by: istenc


    I didnt implement it because of its high burden of coding. Yet, it is simply to develop your own search algorithm using the tools - and methods- provided by cpoptimizer. As you have control on the course of search process, you can determine where to update the objective value as well.


    #CPOptimizer
    #DecisionOptimization