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:

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ż

Media użyte na tej stronie

MaximumParaboloid.png
Autor: Oryginalnym przesyłającym był Sam Derbyshire z angielskiej Wikipedii, Licencja: CC-BY-SA-3.0
The graph of a 3D paraboloid given by f(x,y) = -(x²+y²)+4.

Shown is the global maximum of the surface, at (0,0,4).

Selfmade with MuPad.