A Tutorial on Solving Single-Leader-Multi-Follower Problems using SOS1 Reformulations

In this tutorial we consider single-leader-multi-follower games in which the models of the lower-level players have polyhedral feasible sets and convex objective functions. This situation allows for classic KKT reformulations of the separate lower-level problems, which lead to challenging single-level reformulations of MPCC type. The main contribution of this tutorial is to present a ready-to-use reformulation of this MPCC using SOS1 conditions. These conditions are readily available in all modern MILP solvers that then solve the single-leader-multi-follower problem to optimality. After formally stating the problem class under consideration as well as deriving its reformulations, we present explicit Python code that shows how these techniques can be realized using the MILP solver Gurobi. Finally, we also show the effect of the SOS1-based reformulation using the real-world example of industrial eco-park modeling.

Article

Download

View A Tutorial on Solving Single-Leader-Multi-Follower Problems using SOS1 Reformulations