A tutorial on solving single‐leader‐multi‐follower problems using SOS1 reformulations
Abstract
Abstract 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 Karush–Kuhn–Tucker reformulations of the separate lower‐level problems, which lead to challenging single‐level reformulations of Mathematical Programing with Complementarity Constraints (MPCC) type. The main contribution of this tutorial is to present a ready‐to‐use reformulation of this MPCC using special‐ordered‐sets of type 1 (SOS1) conditions. These conditions are readily available in all modern mixed‐integer linear optimization solvers that 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 solver Gurobi . Finally, we also show the effect of the SOS1‐based reformulation using the real‐world example of industrial eco‐park modeling.