The optimization problem is best described as the search for a local maximum or minimum value of a scalar-valued function f(x). This search can be performed for all possible input values in the domain of f (and, in this case, we refer to this problem as an unconstrained optimization), or for a specific subset of it that is expressible by a finite set of identities and inequalities (and we refer to this other problem as a constrained optimization). In this section, we are going to explore both modalities in several settings.