Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Nested callback using macros is possible?

    Posted 04/22/12 04:48 AM

    Originally posted by: Soheilmn


    Hi all,

    I have a two-stage max-min problem with discrete variables in both first and second stages.
    I solve the problem using a cutting-plane algorithm, which is composed of a master problem and a separation problem that detects valid
    inequalities for the master problem. By solving the separation problem inside a ILOCUTCALLBACK macro, I generate the cuts and add them to branch-and-bound tree of the master problem.

    Because the separation problem is also a mixed-integer program, I need to employ another cutting-plane algorithm to solve the separation problem, i.e., this latter algorithm has its own master problem and subproblem. My intention is to also employ ILOCUTCALLBACK for the subproblem of separation problem.

    Now, my question is, can I use macros to employ nested callback? I am concerned about the fact that for different values of first-stage variable, say x, I have to solve different separation problems which are dependent on x, so the cuts that I generate to solve the separation problem are dependent on x, and hence, the second callback needs to be updated based on the value of x every time. (That is, x must be passed as an IloNumArray object to the second callback, and it needs to be updated when x changes.)

    Is this doable using macros, or I need to define my own callback objects? (I can explain my algorithm in more-detailed level if it helps clarifying my question.)

    Thanks,
    Soheil
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Nested callback using macros is possible?

    Posted 04/23/12 02:10 AM

    Originally posted by: SystemAdmin


    If I understand correctly this is what you want to do:
    1. Solve model A using callback CA.
    2. In callback CA solve model B using callback CB.
    In order to do this just define two separate callback classes CA and CB. This can be done using the callback macros.
    #CPLEXOptimizers
    #DecisionOptimization