how to obtain the solution information of sub-problem when using callback
Currently, I am trying to implement a Benders Decomposition. I can add a lazy constraint to limint the binary variables of the master problem. I can obtain the optimal solution of the master problem after many iterations.
Actually I can obtain more information from the sub-problem. I know the solution value of the subproblem actually gives a upper bound UB for the objective function Z of the master problem. I try to reduce the maximum possible value of Z by using the constraint Z<=UB-epsilon where epsilon is a very small value, such as epsilon =1. When adding the constraint, the master problem reports infeasible very soon. I want to know how to add the solution value of the subproblem to limit the objective function of the master problem.
Thanks very much
Are you sure that subtracting \(\epsilon=1\) from your upper bound is valid? E.g., the optimal objective value of your master problem is \(Z=2\) and the upper bound you get from one of your subproblems is \(UB=2.5\). Then, adding the constraint \(Z\leq UB-\epsilon\) may make your master problem infeasible. Is there a particular reason why you subtract the \(\epsilon\)? What happens if you don't subtract the \(\epsilon\) but still add the constraint \(Z\leq UB\)?
You are right. But I am trying to tighten the upper bound for speeding up the solution process. If the UB=10 and \(\epsilon=1\), \(Z=9\) for next iteration by using \(Z\leq UB-\epsilon\). But there is a risk to cause the model infeasible. Do you have any good suggestion? If I just add \(Z\le UB\), it is slow to help the model to find a good upper bound sometimes.0
We recently added a knowledge base article, which could provide some insight on your problem.
Please sign in to leave a comment.