Plus formellement, l'optimisation est l’étude des problèmes qui sont de la forme :
Étant donné : une fonction f:A→R d’un ensemble A dans l'ensemble des nombre réels
Rechercher : un élément x0 de A tel que f(x0)≥f(x) pour tous les x en A (« maximisation ») ou tel que f(x0)≤f(x) pour tous les x en A (« minimisation »).
Une telle formulation est parfois appelée programme mathématique (terme non directement lié à la programmation informatique, mais utilisé par exemple pour la programmation linéaire - voir l’historique ci-dessous). Plusieurs problèmes théoriques et pratiques peuvent être étudiés dans cet encadrement général.
Étant donné que la maximisation de f est équivalente à la minimisation de − f, une méthode pour trouver le minimum (ou le maximum) suffit à résoudre le problème d'optimisation.
Il arrive fréquemment que A soit un sous-ensemble donné de l’espace euclidien Rn, souvent spécifié par un ensemble de contraintes, des égalités ou des inégalités que les éléments de A doivent satisfaire. Les éléments de A sont appelées les solutions admissibles et la fonction f est appelée la fonction objectif. Une solution possible qui maximise (ou minimise, si c’est le but) la fonction objectif est appelée une solution optimale. Dans le cas particulier où A est un sous-ensemble de Nn ou de Np×Rq, on parle d'optimisation combinatoire.
Un minimum local x est défini comme un point tel qu'il existe un voisinage V de x tel que pour tout x∈V, f(x)≥f(x∗) ; c’est-à-dire que dans un voisinage de x toutes les valeurs de la fonction sont plus grandes que la valeur en ce point. Lorsque A est un sous-ensemble de Rn, ou plus généralement un espace vectoriel normé, cela s'écrit : pour un δ > 0 donné et tous les x tels que ∣∣x−x∗∣∣≤δ on a f(x)≥f(x∗). Les maximums locaux sont définis semblablement. En général, il est facile de trouver les minimums (maximums) locaux, qui sont parfois nombreux. Pour vérifier que la solution trouvée est un minimum (maximum) global, il est nécessaire de recourir à des connaissances additionnelles sur le problème (par exemple la convexité de la fonction objectif).