# Multilevel program

The "level" refers to sets of variables. A bilevel program has two sets:

$LaTeX: \min \{ f(x, y): x \in X,\, y \in Y, \, h(x, y)=0, \, g(x, y)=0\}.$

A reason for identifying levels is to apply a decomposition principle for algorithm design. One example is the bilinear program. Another is when one set of variables is constrained to be a solution to an inner optimization problem:

$LaTeX: \min \{ f(x, y): x \in X,\, y \in Y,\, h(x, y)=0,\, g(x, y)=0,\, y \in \arg\max \{F(x, y): y \in S(x)\} \},$

where $LaTeX: S(x)$ is some subset of $LaTeX: Y$.