Metoda pełzającego simpleksu Neldera-Meada

Metoda Neldera-Meada jest bezgradientową metodą minimalizacji bez ograniczeń n-wymiarowych funkcji . Simpleks w n-wymiarowej przestrzeni jest zbiorem n+1 punktów – wielościanem o n+1 wierzchołkach. Metoda sprawdza się dobrze nawet dla mocno nieliniowych funkcji jednak wymaga sporych nakładów pracy numerycznej szczególnie przy dużej liczbie zmiennych decyzyjnych. Dlatego zaleca się ją stosować dla funkcji celu mających nie więcej niż 10 wymiarów.

Oznaczenia:

x0 – punkt startowy

d – początkowa odległość pomiędzy wierzchołkami simpleksu

α – współczynnik odbicia (α > 0)

β – współczynnik kontrakcji (0 < β < 1)

γ – współczynnik ekspansji (γ > 0)

ε – dokładność obliczeń

n – liczba zmiennych niezależnych

Pi – i-ty punkt simpleksu (i=1, 2, ..., n+1)

Ph – wybrany punkt simpleksu, w którym wartość funkcji osiąga największą wartość (najgorszy)

Pl – wybrany punkt simpleksu, w którym wartość funkcji osiąga najmniejszą wartość (najlepszy)

P' – środek symetrii simleksu liczony z wyłączeniem punktu Ph

Operacje:
Algorytm:
  1. Utworzenie simpleksu o n+1 wierzchołkach

  2. Obliczenie wartości funkcji w punktach wierzchołkowych simleksu

    Fi = f(Pi), i = 1, 2, ..., n+1

  3. Wyznaczenie h i l takich, że f(Ph) = max z wartości Fi, f(Pl) = min z Fi, dla i = 1, 2, ..., n+1

  4. Obliczenie środka symetrii simpleksu z wyłączeniem punktu Ph

    oraz wartości funkcji Fs = f(P')

  5. Odbicie P* punktu Ph względem P' i obliczenie wartości funkcji Fo = f(P*)

Jeżeli Fo < min, to:

  1. Obliczenie P** = (1 + γ) P* – γP' i Fe = f(P**)

    jeśli Fe < min, podstaw za Ph punkt P**,

    jeśli Fe min, podstaw za Ph punkt P*

  2. O ile nie jest spełnione kryterium stopu, idź do kroku 2.

Jeżeli Fo > min, to:

  1. Jeżeli Fo ≥ f(Pi) dla i = 1, 2, ..., n+1, i ≠ h

  1. Wykonaj kontrakcję P*** punktu Ph względem P' i oblicz Fk = f(P***)

  1. Jeżeli Fo < f(Pi) dla i = 1, 2, ..., n+1, i ≠ h, za Ph punkt P*

  2. Jeżeli warunek stopu nie jest spełniony, idź do kroku 2.

Warunek stopu może być sformułowany na kilka sposobów, np.:

Przykładowa trajektoria:

F(x, y) = x2+y2, punkt początkowy (2, 3)

po 11 iteracjach znaleziono przybliżony pkt. minimalny: (-0,08, -0,07)

legenda: żółty -początkowy symplex, niebieski -odbicie, zielony -ekspansja, czerwony -kontrakcja