Optymalizacja (matematyka)

Optymalizacja – problem polegający na znalezieniu ekstremum zadanej funkcji celu.

Definicja formalna 
Niech dana będzie funkcja 
 

gdzie  Zadanie optymalizacji polega na znalezieniu takiej wartości  że dla każdego  zachodzi:
 

Problemem równoważnym jest znalezienie maksimum funkcji – problem zdefiniowany jest tak samo jak powyżej z wyjątkiem zmiany znaku funkcji 

O ile definicja matematyczna optymalizacji jest prosta, tak praktyczne wyznaczanie optimum już nie jest. W wielu problemach rzeczywistych mamy do czynienia z bardzo skomplikowaną daną funkcją, dla której wyszukanie optimum globalnego lub w zadanym zakresie nie jest łatwe. Na przestrzeni lat stworzono wiele algorytmów wyszukiwania optimum (algorytmy optymalizacji) oraz rozwinął się nowy dział badań naukowych, nazywany badaniami operacyjnymi.

Optymalizacja statyczna i dynamiczna 
Zadania optymalizacji dzielimy na dwie podstawowe klasy:
 optymalizację statyczną (sprowadzającą się do poszukiwania ekstremum funkcji) oraz
 optymalizację dynamiczną, sprowadzającą się do poszukiwania ekstremum funkcjonału.

Optymalizacja statyczna zajmuje się poszukiwaniem optymalnego punktu pracy, czyli takiego, w którym wartość funkcji celu jest najlepsza. Zależnie od sformułowania zadania będzie to wartość największa i najmniejsza, ale zawsze ekstremalna. Poszukiwanie ekstremum może się odbywać w pewnym ograniczonym obszarze zawierającym tylko jedno ekstremum – mówimy wówczas o poszukiwaniu ekstremum lokalnego. Może też odbywać się w całej przestrzeni argumentów i wówczas mówimy o poszukiwaniu ekstremum globalnego. Zadanie nie zawsze udaje się rozwiązać poprawnie. Mimo bowiem istnienia ekstremum globalnego procedura poszukiwania może się zakończyć w punkcie będącym ekstremum lokalnym. Większość algorytmów numerycznych to algorytmy poszukiwania ekstremum lokalnego. Skuteczność działania takich procedur jest więc w dużym stopniu uwarunkowana wyborem odpowiedniego punktu startowego.

Wśród metod optymalizacji statycznej wyróżnia się dwie zasadnicze grupy: programowanie liniowe i programowanie nieliniowe. Programowanie liniowe polega na poszukiwaniu ekstremum liniowej funkcji celu przy ograniczeniach będących również funkcjami liniowymi. W zagadnieniach programowania liniowego ekstremum jest zawsze globalne w danym obszarze poszukiwań. Programowanie nieliniowe polega na poszukiwaniu ekstremum funkcji celu dowolnej postaci, przy ograniczeniach będących również wyrażonymi przez dowolne funkcje.

Typowe zagadnienie optymalizacji dynamicznej polega na poszukiwaniu takiego ciągu decyzji w danym przedziale czasu, który zapewni ekstremum pewnego wskaźnika jakości zależącego od przebiegu zmian tej decyzji, określanym na całym przedziale czasu. Wskaźnik jakości jest więc funkcjonałem tej decyzji, określanym na danym przedziale czasu.

Metody optymalizacji 
 algorytm punktu wewnętrznego
 metoda Newtona (optymalizacja)
 programowanie kwadratowe
 programowanie liniowe
 przeszukiwanie tabu
 wyszukiwanie binarne

Zobacz też 
 kryterium sterowania
 optymalizacja
 sterowanie minimalno-kwadratowe
 sterowanie optymalne
 zasada maksimum Pontriagina
 metody numeryczne

Bibliografia 
 Boyd, Stephen P.; Vandenberghe, Lieven (2004). Convex Optimization. Cambridge: Cambridge University Press. ISBN 0-521-83378-7. Link

 Gill, P. E.; Murray, W.; Wright, M. H. (1982). Practical Optimization. London: Academic Press. ISBN 0-12-283952-8.

 Lee, Jon (2004). A First Course in Combinatorial Optimization. Cambridge: Cambridge University Press. ISBN 0-521-01012-8.

 Nocedal, Jorge; Wright, Stephen J. (2006). Numerical Optimization. 2nd edition. Berlin: Springer. ISBN 0-387-30303-0. Link

Metody numeryczne
Metody optymalizacji