Dokumentacja klasy NelderMead::Simplex

#include <NelderMead.h>

Lista wszystkich składowych.


Opis szczegółowy

Klasa wewnętrzna, której obiekt reprezentuje sympleks złożony z obiektów klasy PointWithValue.

Punkty są posortowane zgodnie ze wzrostem wartości funkcji celu.


Metody publiczne

 Simplex ()
 Konstruktor domyślny.
 Simplex (const FunctionBase *function)
 Konstruktor.
 Simplex (const ColumnVector &centralPoint, const DoubleParameter &sideLength, const FunctionBase *pFunction)
 Konstruktor.
 Simplex (const vector< ColumnVector > &startingPoints, const FunctionBase *function)
 Konstruktor.
 Simplex (const NelderMead::Simplex &from)
 Kostruktor kopiujący.
 ~Simplex ()
 Destruktor.
NelderMead::Simplexoperator= (const NelderMead::Simplex &from)
const PointWithValue Centroid (size_t firstIndex, size_t lastIndex) const
 Znajdź punkt cieżkości ciągu punktów sympleksu.
void ShrinkTowardBest (double shrinkageCoefficient)
 Zmniejsz sympleks w kierunku najlepszego punktu.
void SubstituteNewForWorst (const PointWithValue &newPoint)
 Zastąp najgorszy punkt nowym.
const PointWithValuerBest () const
 Referencja na najlepszy punkt sympleksu.
const PointWithValuerWorst () const
 Referencja na najgorszy punkt sympleksu.
const PointWithValuerNextToWorst () const
 Referencja na drugi najgorszy punkt sympleksu.
const vector< PointWithValue > & rPoints () const
 Referencja na punkty sympleksu.
double Circumference () const
 Obwód sympleksu.
double ValueSpan () const
 Szerokość przedziału wartości przyjmowanych przez funkcję celu w punktach sympleksu.
size_t Size () const
 Liczba wierzchołków sympleksu.

Statyczne metody publiczne

static double Delta1 (const DoubleParameter &sideLength, size_t dimensions)
 Współczynnika $ \delta_1 $.
static double Delta2 (const DoubleParameter &sideLength, size_t dimensions)
 Współczynnika $ \delta_2 $.

Metody chronione

void GenerateVertices (const ColumnVector centralPoint, const DoubleParameter &sideLength)
 Wygeneruj wokół punktu regularny sympleks o zadanej długości boku.
void Sort ()
 Posortuj punkty sympleksu.

Atrybuty chronione

vector< PointWithValuemPoints
 Punkty sympleksu.
const FunctionBasempFunction
 Wskaźnik na funkcję celu.


Dokumentacja konstruktora i destruktora

NelderMead::Simplex::Simplex const FunctionBase function  ) 
 

Konstruktor.

Parametry:
function Referencja na funkcję celu

NelderMead::Simplex::Simplex const vector< ColumnVector > &  startingPoints,
const FunctionBase function
 

Konstruktor.

Konstruktor tworzy sympleks z gotowego zestawu punktów.

Parametry:
startingPoints Punkty, z których tworzymy sympleks
function Wskaźnik na funkcję celu

NelderMead::Simplex::Simplex const NelderMead::Simplex from  ) 
 

Kostruktor kopiujący.

Parametry:
from sympleks, z którego kopiujemy.


Dokumentacja funkcji składowych

const PointWithValue NelderMead::Simplex::Centroid size_t  firstIndex,
size_t  lastIndex
const
 

Znajdź punkt cieżkości ciągu punktów sympleksu.

Funkcja zwraca punkt znajdujący się pośrodku wybranych punktów sympleksu.

Parametry:
firstElem pierwszy element z ciągu do wyliczenia środka ciężkości
firstElem ostatni element z ciągu do wyliczenia środka ciężkości
Zwraca:
Punkt ciężkości wybranych punktów sympleksu

double NelderMead::Simplex::Circumference  )  const
 

Obwód sympleksu.

Zwraca:
obwód sympleksu.

double NelderMead::Simplex::Delta1 const DoubleParameter sideLength,
size_t  dimensions
[static]
 

Współczynnika $ \delta_1 $.

Wyliczanie współczynnika $ \delta_1 $ potrzebnego przy generacji regularnego sympleksu.

Parametry:
sideLength zadana długość boku sympleksu
dimensions liczba wymiarów problemu
Zwraca:
wartość współczynnika

double NelderMead::Simplex::Delta2 const DoubleParameter sideLength,
size_t  dimensions
[static]
 

Współczynnika $ \delta_2 $.

Wyliczanie współczynnika $ \delta_2 $ potrzebnego przy generacji regularnego sympleksu.

Parametry:
sideLength zadana długość boku sympleksu
dimensions liczba wymiarów problemu
Zwraca:
wartość współczynnika

void NelderMead::Simplex::GenerateVertices const ColumnVector  centralPoint,
const DoubleParameter sideLength
[protected]
 

Wygeneruj wokół punktu regularny sympleks o zadanej długości boku.

Parametry:
centralPoint punkt, wokół którego funkcja buduje sympleks
sideLength zadana długość boku sympleksu

const PointWithValue & NelderMead::Simplex::rBest  )  const
 

Referencja na najlepszy punkt sympleksu.

Funkcja zwraca referencję na najlepszy punkt sympleksu czyli na ten znajdujący się na pierwszym miejscu w wektorze.

Zwraca:
Najlepszy punkt sympleksu.

const PointWithValue & NelderMead::Simplex::rNextToWorst  )  const
 

Referencja na drugi najgorszy punkt sympleksu.

Funkcja zwraca referencję na drugi najgorszy punkt sympleksu czyli na ten znajdujący się na przedostatnim miejscu w wektorze.

Zwraca:
Referencja na prawie najgorszy punkt sympleksu.

const vector< PointWithValue > & NelderMead::Simplex::rPoints  )  const
 

Referencja na punkty sympleksu.

Funkcja zwraca referencję na wektor obiektów klasy PointWithValue składających się na sympleks.

Zwraca:
Punkty sympleksu

const PointWithValue & NelderMead::Simplex::rWorst  )  const
 

Referencja na najgorszy punkt sympleksu.

Funkcja zwraca referencję na najgorszy punkt sympleksu czyli na ten znajdujący się na ostatnim miejscu w wektorze.

Zwraca:
Referencja na najgorszy punkt sympleksu.

void NelderMead::Simplex::ShrinkTowardBest double  shrinkageCoefficient  ) 
 

Zmniejsz sympleks w kierunku najlepszego punktu.

Funkcja zmniejsza wszystkie krawędzie sympleksu o w kierunku najlepszego punktu.

Parametry:
shrinkageCoefficient współczynnik, o który skracane są boki sympleksu.

size_t NelderMead::Simplex::Size  )  const
 

Liczba wierzchołków sympleksu.

Zwraca:
liczba wierzchołków sympleksu

void NelderMead::Simplex::Sort  )  [protected]
 

Posortuj punkty sympleksu.

Funkcja sortuje punkty sympleksu zgodnie ze wzrostem wartości funkcji celu. Z uwagi na małe prawdopodobieństwo występowania sympleksu dużych rozmiarów, użyto prostego algorytmu sortowania bąbelkowego.

void NelderMead::Simplex::SubstituteNewForWorst const PointWithValue newPoint  ) 
 

Zastąp najgorszy punkt nowym.

Funkcja podstawia nowy punkt pod dotychczas najgorszy. Nowy punkt jest od razu wstawiany na przysługujące mu miejsce.

Parametry:
newPoint Nowy punkt

double NelderMead::Simplex::ValueSpan  )  const
 

Szerokość przedziału wartości przyjmowanych przez funkcję celu w punktach sympleksu.

Metoda zwraca różnicę pomiędzy wartością funkcji celu w najgorszym i najlepszym punkcie.

Zwraca:
Różnica pomiędzy wartościami funkcji w najgorszym i najlepszym punkcie


Dokumentacja dla tej klasy została wygenerowana z plików:
Wygenerowano Fri Sep 29 21:04:52 2006 dla EduOptim2 programem  doxygen 1.4.6