Seeking Guidance on Binary Variable Behavior in Benders Decomposition
Awaiting user inputHey,
I am currently working on a complex mathematical model that involves multiple stages and is solved using a logic-based Benders decomposition approach. While working on this model, I encountered an issue in the master problem, and I would greatly appreciate your insights on how to address it.
In my model, I have a binary variable (u[t, f, i, n]), and there are numerous constraints that determine when this variable can be either 0 or 1. However, in specific scenarios, this binary variable can assume both values (0 and 1) without impacting the objective function in any meaningful way. Due to various model considerations, I am unable to include this variable directly in the objective function of the master problem.
My primary challenge lies in ensuring that the binary variable (u[t, f, i, n]) takes the value 1 when it is feasible to do so, even when it does not explicitly appear in the objective function. Currently, the variable tends to take the value 0 in these situations.
I would greatly appreciate your guidance on how to encourage the binary variable to assume the value 1 when it is feasible, without introducing it directly into the master problem's objective function.
Thanks a lot
-
Hello Abdalrahman,
Do I understand correctly that you have a model where a binary variable \(u\) does not impact the optimal objective value but you would still like to have it set to \(1\) in the optimal solution? Is this correct?
If yes, then you could try the following:
- If you know a priori that this is a model where the binary variable has no effect, then just fix the variable to \(1\).
- If you know after solving the model that the specific binary variable has no effect, then you can fix the binary variable to \(1\), use the rest of the solution vector as MIP start, and re-solve the model. If you are sure that the binary has no effect on the optimal solution vector, then you don't have to re-solve.
- If the binary variable has any impact on other variables, maybe you could use those in the objective function to favor when the respective binary is \(1\).
Best regards,
Jaromił0
Please sign in to leave a comment.
Comments
1 comment