Bi-level programming is a holistic modeling technique that results in hierarchical optimization problems with two levels of decision makers, where one decision maker’s problem is constrained by another’s optimization problem. The most common approach for addressing bi-level programming involves reducing them into single-level problems by replacing the convex lower-level optimization problem with its necessary and sufficient Karush-Kuhn-Tucker (KKT) optimality conditions. However, the KKT method is not applicable for reformulating the original structure when the lower-level problems involve discrete variables. Even though several successful algorithms that use branch-and-bound [1], branch-and-sandwich [2], and parametric optimization [3] are developed to tackle such problems, achieving guaranteed feasible solutions for problems with highly nonlinear and nonconvex mixed-integer nonlinear programming (MINLP) lower-levels is still an open research question.
Therefore, to tackle such types of problems, data-driven algorithms are proposed to approximate the global solution.
In this work, we introduce DOMINOpy, a ready-to-use Python implementation of the Data-driven Optimization of bi-level Mixed-Integer NOnlinear problems (DOMINO) framework [4]. DOMINOpy enables flexible construction of bi-level MINLP optimization models and leverages data-driven strategies to solve them. It supports: (a) Constructing models from basic problem information; (b) Incorporating user-defined models, including GAMSPy, Pyomo, and scikit-learn workflows; (c) Using deterministic solvers (e.g., BARON [5], GUROBI, IPOPT, CPLEX) to find the global optima at the lower level; (d) Data-driven algorithms for constrained, bound-constrained, or unconstrainted optimization at the upper level (e.g., Particle Swarm Optimization, DIRECT, NOMAD [6], etc.). The application of DOMINOpy is examined across a diverse range of bi-level benchmark problems with varying complexity and hyperparameter optimization for machine-learning models as an example of user-defined models at the lower level.
References:
[1] Gümüş, Z.H. and Floudas, C.A., 2001. Nonlinear bilevel programming: A deterministic global optimization framework. In Computer Aided Chemical Engineering (Vol. 9, pp. 393-400). Elsevier.
[2] Kleniati, P.M. and Adjiman, C.S., 2014. Branch-and-Sandwich: a deterministic global optimization algorithm for optimistic bilevel programming problems. Part I: Theoretical development. Journal of Global Optimization, 60, pp.425-458.
[3] Avraamidou, S. and Pistikopoulos, E.N., 2019. B-POP: Bi-level parametric optimization toolbox. Computers & Chemical Engineering, 122, pp.193-202.
[4] Beykal, B., Avraamidou, S., Pistikopoulos, I.P., Onel, M. and Pistikopoulos, E.N., 2020. Domino: Data-driven optimization of bi-level mixed-integer nonlinear problems. Journal of Global Optimization, 78, pp.1-36.
[5] Sahinidis, N.V., 1996. BARON: A general purpose global optimization software package. Journal of global optimization, 8, pp.201-205.
[6] Le Digabel, S., 2011. Algorithm 909: NOMAD: Nonlinear optimization with the MADS algorithm. ACM Transactions on Mathematical Software (TOMS), 37(4), pp.1-15.