Bilevel optimization problems involve two levels of optimization. A solution at the upper level may be considered feasible only if it is optimal for a parametric lower level optimization problem. Such optimization problems are commonly found in transportation, engineering design, game playing and business models. They are also known as Stackelberg games in the operations research community. These problems are too complex to be solved using classical optimization methods simply due to the "nestedness" of one optimization task into another.
Evolutionary Algorithms (EAs) provide some amenable ways to solve such problems due to their flexibility and ability to handle non-differentiable, discontinuous and non-linear constrained search spaces effectively. In the recent past, there has been a surge in research activities towards solving bilevel optimization problems using evolutionary algorithms. In this tutorial, we will introduce principles of bilevel optimization for single and multiple objectives, and discuss the difficulties in solving such problems in general. With a brief survey of the existing literature, we will present a few viable evolutionary algorithms for both single and multi-objective EAs for bilevel optimization. Recent studies on bilevel test problems and some application studies will be discussed. Finally, a number of immediate and future research ideas on bilevel optimization will also be highlighted.