Originally posted by: SystemAdmin
It seems that I still do not understand exactly what you are trying to do.
Let us first try to clarify what you want to do on a theoretical level, and then we can discuss how to actually implement this with CPLEX.
Assume the restricted master problem (RMP) is
min cx s.t. Ax <= b x >= 0 x_i integer
for i in I
As far as I understand, the full problem (FP) is
min cx + f(y) s.t. Ax + g(y) <= b h(y) <= d x >= 0 x_i integer
for i in I y_j integer
for j in J
f, g, and h can be anything: linear functions, non-linear functions, or just zero. It would be interesting which of them are actually zero in your application.
Now, in a typical Bender's decomposition approach you solve (RMP) using a MIP solver. Whenever the MIP solver encounters a feasible solution x' for (RMP), you need to find a y' vector such that (x',y') is feasible for (FP). If there is no such y', then you need to prune x' from (RMP), either by just rejecting it and letting the MIP solver continue, or by even introducing a Bender's cut to actively cut off x and hopefully an even larger part of the (RMP) search space.
If you find a y' such that (x',y') is feasible for (FP), then it would be good to restrict (RMP) in such a way that no or at least fewer solutions x" for which cx" + f(y") >= cx' + f(y') for all feasible extensions y" are generated by the (RMP) MIP solve.
If f == 0, this is very easy: just accept x' as feasible solution to (RMP), and the MIP solver will do the rest. If f(y) >= 0 for all y, then you can introduce the objective cutoff cx <= cx' + f(y'). If f(y) can be negative, then it is not so easy.
Does your application fit into this framework? If not, please explain in more detail what you want to do.
What exactly do you mean by "optimality cuts"? Is this the "cx <= cx' + f(y')"?
Why do you think that zillions of solutions would pile up in your queue? The queue would just store all heuristic solutions that are generated between two consecutive calls to your cut callback. Shouldn't be that many.
#DecisionOptimization#MathematicalProgramming-General