1: \begin{abstract}
2: This paper introduces a method that globally converges to B-stationary points of mathematical programs with equilibrium constraints \sloppy(MPECs) in a finite number of iterations.
3: B-stationarity is necessary for optimality and means that no feasible first-order direction improves the objective.
4: Given a feasible point of an \MPEC, B-stationarity can be certified by solving a linear program with equilibrium constraints (\LPCC) constructed at this point.
5: The proposed method solves a sequence of \LPCCs, which either certify B-stationarity or provide an active-set estimate for the complementarity constraints, and nonlinear programs (NLPs) -- referred to as branch NLPs (BNLPs) -- obtained by fixing the active set in the \MPEC.
6: A BNLP is more regular than the \MPEC, easier to solve, and with the correct active set, its solution coincides with the solution of the \MPEC.
7: The method has two phases: the first phase identifies a feasible BNLP or certifies local infeasibility, and the second phase solves a finite sequence of BNLPs until a B-stationary point of the \MPEC is found.
8: The paper provides a detailed convergence analysis and discusses implementation details.
9: In addition, extensive numerical experiments and an open-source software implementation are provided.
10: The experiments demonstrate that the proposed method is more robust and faster than relaxation-based methods, while also providing a certificate of B-stationarity without requiring the usual too-restrictive assumptions.
11:
12: \keywords{MPEC \and MPCC \and nonlinear programming \and complementarity constraints \and equilibrium constraints}
13: % \PACS{PACS code1 \and PACS code2 \and more}
14: \subclass{90C30 \and 90C33 \and 49M37 \and 65K10\and 90C11 }
15: \end{abstract}
16: