General bi-level optimization problems are nested optimization problems in which one problem is constrained by another optimization problem. Bi-level optimization problems model the objective of a decision maker knowing that some part of the final decision is not under its control. The inclusion of an additional problem (lower-level) inside the upper-level constraints set stems from the need to forecast/determine the part that is not under control. This is closely related to Game Theory where a player searches for an efficient strategy by guessing the possible optimal responses of its opponent. Unfortunately, it presupposes that a bi-level feasible solution should provide a lower-level optimal solution. Strongly N-P hard by nature, even for linear and continuous levels, Fig. 1 illustrates the general mathematical formulation of bilevel optimization problems: