Dokumentacja klasy SectionLineSearch

#include <SectionLineSearch.h>

Diagram dziedziczenia dla SectionLineSearch

LineSearch Method Observable AlphaDivision BolzanoDivision DichotomousDivision FibonacciDivision QuadraticApproximation SecantDivision UniformDivision Lista wszystkich składowych.

Opis szczegółowy

Klasa bazowa dla metod optymalizacji w kierunku polegających na podziale i redukcji odcinka.

Metody polegają na skracaniu zadanego odcinka $[a, b]$. Jeśli dana metoda z tej rodziny służy do rozwiązania samodzielnego problemu optymalizacji funkcji jednej zmiennej, odcinek ten jest zadany przez użytkownika. W przypadku, gdy wykonuje tylko minimalizację kierunkową jako część metody optymalizacji funkcji wielu zmiennych, odcinek $[a, b]$ jest znajdowany automatycznie (patrz FindInitialSection).

Odcinek $[a, b]$ jest skracany w taki sposób, aby był zbieżny do odcinka o niewielkiej długości, obejmującego punkt, w którym znajduje się minimum.

TODO: Karolu, czy wynikiem optymalizacji samodzielnej nie jest cały przebieg optymalizacji? Pamiętam gdy Simon o tym mówił, dlatego wrzucam to TODO W przypadku gdy metoda działa samodzielnie, wynikiem jest odcinek $[a^k, b^k]$; jeśli służy tylko do minimalizacji kierunkowej przy rozwiązywaniu problemu optymalizacji funkcji wielu zmiennych, wynikiem jest punkt - najczęściej środek tego odcinka: $\frac{a^k + b^k}{2}$.


Metody publiczne

 ~SectionLineSearch (void)
 Destruktor.
virtual void UpdateStartingConditions (const Result *result) const
virtual void ResetStartingConditions () const
void AddCommonParameterDescriptions (wxArrayString &descriptions, bool standalone) const
virtual wxString ToString (bool standalone=true) const
 Zwraca opis tekstowy metody (nazwa + parametry).
virtual bool CanAssist (const ProblemBase *pProblem) const
 Sprawdza, czy metoda może wspomóc rozwiązanie danego zadania.

Metody chronione

 SectionLineSearch (void)
 Konstruktor domyślny.
 SectionLineSearch (const SectionLineSearch &from)
 Konstruktor kopiujący.
void FindInitialSection (const UnivariateFunction &function, double &rA, double &rB, double initialSectionLength) const
 Znajduje odcinek, w którym znajduje się minimum.

Atrybuty chronione

DoubleParameter mA
 Początek przeszukiwanego odcinka (gdy metoda działa samodzielnie).
DoubleParameter mB
 Koniec przeszukiwanego odcinka.
DoubleParameter mInitialA
DoubleParameter mInitialB
DoubleParameter mEpsilon
 Dokładność ($\varepsilon$).
DoubleParameter mSectionContractionOnUpdate

Przyjaciele

class InitialSectionValidator


Dokumentacja konstruktora i destruktora

SectionLineSearch::SectionLineSearch const SectionLineSearch from  )  [protected]
 

Konstruktor kopiujący.

Parametry:
from Obiekt, którego wartość jest kopiowana.


Dokumentacja funkcji składowych

bool SectionLineSearch::CanAssist const ProblemBase pProblem  )  const [virtual]
 

Sprawdza, czy metoda może wspomóc rozwiązanie danego zadania.

Dokładniej rzecz biorąc sprawdzane jest, czy metoda może być wykorzystana przez metodę optymalizacji wielu zmiennych do optymalizacji w kierunku przy rozwiązywaniu danego zadania optymalizacji.

Implementuje LineSearch.

Reimplementowana w BolzanoDivision i SecantDivision.

void SectionLineSearch::FindInitialSection const UnivariateFunction function,
double &  rA,
double &  rB,
double  initialSectionLength
const [protected]
 

Znajduje odcinek, w którym znajduje się minimum.

Poszukiwanie rozpoczyna się od przedziału [0, initialSectionLength]. W kolejnych krokach następuje podwajanie długości przedziału poprzez przesuwanie dodatniego końca. Algorytm kończy się, gdy wartość funkcji w punkcie środkowym jest mniejsza niż na krańcach.

W przypadku, gdy przed pierwszą iteracją wartości funkcji w punktach środkowym oraz initialSectionLength są większe niż w punkcie 0, obszar jest poszerzany do: [-initialSectionLength, initialSectionLength] i zmieniany jest kierunek poszukiwań na ujemny.

Punkty wynikowe spełniają zależność rA < rB.

Parametry:
function Funkcja celu.
rA Referencja na początek odcinka wynikowego.
rB Referencja na koniec odcinka wynikowego.
initialSectionLength Długość przesuwanego odcinka.


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