____ __ __ __
/\ _`\ /\ \ /\ \ __/\ \
\ \ \L\ \ __ ___ \_\ \ __ _ __ ____\ \ \ /\_\ \ \____
\ \ _ <' /'__`\/' _ `\ /'_` \ /'__`\/\`'__\/',__\\ \ \ __\/\ \ \ '__`\
\ \ \L\ \/\ __//\ \/\ \/\ \L\ \/\ __/\ \ \//\__, `\\ \ \L\ \\ \ \ \ \L\ \
\ \____/\ \____\ \_\ \_\ \___,_\ \____\\ \_\\/\____/ \ \____/ \ \_\ \_,__/
\/___/ \/____/\/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/___/ \/_/\/___/
BendersLib is a Benders decomposition library written in Python.
Supported Benders decomposition variants:
- Classical Benders decomposition
- Combinatorial Benders decomposition
- Generalized Benders decomposition
- Logic-based Benders decomposition
Classical Benders decomposition (BD) solves mixed-integer linear programming (MILP) with linear mixed-integer master problem and linear continues sub problem.
Combinatorial Benders decomposition (CBD) can handle 0-1 integer master problem and feasibility checking subproblem (a programming with objective function be set to 0).
Generalized Benders decomposition (GBD) solves nonlinear programming for which the subproblem is a convex program.
Logic-based Benders decomposition (LBBD) can be used for problems which can be decomposed into any type of master and sub problem.
- Benders, J.F., 1962. Partitioning procedures for solving mixed-variables programming problems. Numer. Math. 4, 238–252. https://doi.org/10.1007/BF01386316
- Codato, G., Fischetti, M., 2006. Combinatorial Benders’ Cuts for Mixed-Integer Linear Programming. Operations Research 54, 756–766. https://doi.org/10.1287/opre.1060.0286
- Geoffrion, A.M., 1972. Generalized Benders decomposition. J Optim Theory Appl 10, 237–260. https://doi.org/10.1007/BF00934810
- Hooker, J.N., Ottosson, G., 2003. Logic-based Benders decomposition. Math. Program., Ser. A 96, 33–60. https://doi.org/10.1007/s10107-003-0375-9
- Rahmaniani, R., Crainic, T.G., Gendreau, M., Rei, W., 2017. The Benders decomposition algorithm: A literature review. European Journal of Operational Research 259, 801–817. https://doi.org/10.1016/j.ejor.2016.12.005