Foundations of Bilevel Programming Applications Linear Bilevel Problems Parametric Optimization Optimality Conditions Solution Algorithms Nonunique Lower Level Solution Discrete Bilevel Problems. Bilevel programming problems are hierarchical optimization problems where the constraints of one problem (the so called upper level problem) are defined in part by a second parametric optimization problem (the lower level problem). If the lower level problem has a unique optimal solution for all parameter values this problem is equivalent to a one level optimization problem having an implicitly defined objective function. Special emphasize in the book is on problems having non unique lower level optimal solutions the optimistic (or weak) and the pessimistic (or strong) approaches are discussed. The book starts with the required results in parametric nonlinear optimization. This is followed by the main theoretical results including necessary and sufficient optimality conditions and solution algorithms for bilevel problems. Stationarity conditions can be applied to the lower level problem to transform the optimistic bilevel programming problem into a one level problem. Properties of the resulting problem are highlighted and its relation to the bilevel problem is investigated. Stability properties numerical complexity and problems having additional integrality conditions on the variables are also discussed. Audience: Applied mathematicians and economists working in optimization operations research and economic modelling. Students interested in optimization will also find this book useful.