Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

Pulse function using IloIntVar as height

  • 1.  Pulse function using IloIntVar as height

    Posted Fri December 18, 2015 11:38 AM

    Originally posted by: AdamGregory


    Hello all,

    I'm trying to model the resource requirements for a set of intervals and I'm running into a problem. Each interval has a corresponding IloIntVar "effort" which denotes the percentage of time spent by the workers on the completion of this interval. The completion time of each interval depends on this "effort value".

    I am trying to use the pulse function to limit the overall effort of workers to be less than 100%, but am having some difficulty using "effort" as the height for the pulse since it is an IloIntVar and not a static integer value.
    According to the documentation, the pulse function can not be used in this way.

    Is there a way to use the pulse function to model the sum of the effort at all times during the schedule? Or is there an alternative way to model the effort of workers which will not have this problem?

    Thank you in advance,
    Adam


    #CPOptimizer
    #DecisionOptimization


  • 2.  Re: Pulse function using IloIntVar as height

    Posted Fri December 18, 2015 03:40 PM

    Originally posted by: Petr Vilím


    Hello Adam,

    pulses can be created with either fixed or variable height. To create variable-height pulse simply pass minimum and maximum possible value for the height to the IloPulse function. A pulse with variable height is a kind of decision variable, the solver must assign the height value during the solve in order to obtain the solution (unless the underlying interval variable becomes absent, in this case the height is always zero regardless the minimum value given to IloPulse). To obtain the value of this variable use function IloHeightAtStart.

    You may also consider to remove integer variables for the pulse heights (IloIntVars) if they don't bring any new information.

    I hope it helps, Petr


    #CPOptimizer
    #DecisionOptimization


  • 3.  Re: Pulse function using IloIntVar as height

    Posted Sat December 19, 2015 09:45 AM

    Originally posted by: AdamGregory


    Thank you for your suggestion.

    This seems to be working as expected. One quick question though:
    When you use a pulse function with a variable height, does the height remain constant over the duration of the interval? The documentation seems to suggest that the height remains constant (Pulse covers the usage of a cumulative or renewable resource when an activity increases the resource usage function at its start and decreases usage when it releases the resource at its end time) but is not explicitly clear on this matter.

    Thank you,
    Adam


    #CPOptimizer
    #DecisionOptimization


  • 4.  Re: Pulse function using IloIntVar as height

    Posted Sat December 19, 2015 01:52 PM

    Originally posted by: Petr Vilím


    I'm glad it helps!

    Yes the pulse remains constant from the start to the end of the interval variable.

    Best regards, Petr


    #CPOptimizer
    #DecisionOptimization