AIX

AIX

Connect with fellow AIX users and experts to gain knowledge, share insights, and solve problems.


#Power
#Power
#Operatingsystems
#Servers
 View Only

Change upper bound or objective function during branch-and-cut process in C

  • 1.  Change upper bound or objective function during branch-and-cut process in C

    Posted 07/14/12 12:46 PM

    Originally posted by: SystemAdmin


    Hi,

    I am using CPLEX 12.4 with C to solve a special Mixed-Integer Quadratic Programming (MIQP)
    with the form: min {q(x): x\in X}, where X is a mixed-integer set and q(x) is a convex quadratic function.

    The special structure of the problem allows me to dynamically generate special cuts at each node of the
    branch-and-cut process, but the cut (valid inequality) expression has an additional variable v and the
    the objective function q'(x,v) of the subproblem at each node is different from q(x), it is a relaxation:
    q'(x,v)<=q(x). If I feed CPLEX with q'(x,v) as an objective function, then CPLEX only gives me a
    feasible solution to the original problem, not the optimal one, because the objective function q(x)
    has been changed to q'(x,v).

    In order to get the correct optimal solution to the original problem, I need to change
    the upper bound from q'(x,v) to q(x) whenever CPLEX finds a feasible solution x.
    My question: Is it possible to do this using cutcallback (or incumbent callback, branching callback),
    or implement this using other tricks?

    Thanks a lot!

    Xiaojing Zheng
    #AIX-Forum