Dokumentacja klasy RouletteSelection

#include <RouletteSelection.h>

Diagram dziedziczenia dla RouletteSelection

SelectionMethod Lista wszystkich składowych.

Opis szczegółowy

Klasa reprezentująca selekcję proporcjonalną.

Metoda selekcji ruletkowej w swej istocie polega na umożliwieniu lepszym chromosomom namnożenia się z większym prawdopodobieństwem niż chromosomom gorszym. W niniejszej klasie nie zaimplementowano tej metody w jej ogólnie przyjętej wersji w celu uniknięcia utworzenia kilku kopii tego samego chromosomu. Ogólne założenie metody jest zachowane: lepsze chromosomy mają większą szansę na znalezienie się w następnej generacji.

W pierwszym kroku algorytmu każdemu chromosomowi nadawane jest prawdopodobnieństwo jego eliminacji z populacji proporcjonalne do funkcji celu dla tego chromosomu. To wstępne pradopodobieństwo wyliczane jest ze wzoru:

\[ p^t(x) = \frac{f(x)}{ \sum_{y \in P} f(y)} \]

Otrzymane wstępne prawdopodobieństwa modyfikujemy następnie tak, by największe z nich było równe 1, a proporcje między nimi pozostały zachowane:

\[ p^k(x) = p^t(x) * \frac{1}{\max_{y \in P} p(y)} \]

Gdybyśmy nie dokonali tej modyfikacji prawdopodobieństwo usunięcia nawet dla najgorszego chromosomu w populacji byłoby znikome i ciężar odpowiedzialności za podążanie algorytmu w kierunku minimum spadłby na operator mutacji, co praktycznie uniemożliwiałoby znalezienie dobrego rozwiązania w rozsądnym czasie.

Zobacz również:
EvolutionaryMethod


Metody publiczne

 ~RouletteSelection (void)
 Destruktor.
virtual std::auto_ptr< SelectionMethodClone () const
 Utwórz nowy egzemplarz metody z prototypu.
virtual void Select (Population &population, double partOfPopulationToLeave, EvolutionaryMethodIteration &iteration) const
 Funkcja dokonująca selekcji populacji bazowej.
virtual wxString ToString () const
 Przedstaw opis metody.
virtual wxString Name () const
 Zwróć nazwę metody.


Dokumentacja funkcji składowych

wxString RouletteSelection::Name  )  const [virtual]
 

Zwróć nazwę metody.

Zwraca:
Nazwa metody.

Implementuje SelectionMethod.

void RouletteSelection::Select Population &  population,
double  partOfPopulationToLeave,
EvolutionaryMethodIteration iteration
const [virtual]
 

Funkcja dokonująca selekcji populacji bazowej.

Funkcja dokonująca selekcji populacji metodą ruletkową (proporcjonalną).

Parametry:
population Populacja bazowa, z której osobniki będą wybierane.
survivalRate Współczynnik selekcji ignorowany w tej metodzie.
iteration Obiekt, do którego zapisywany jest przebieg iteracji metody optymalizacji.

Implementuje SelectionMethod.

wxString RouletteSelection::ToString  )  const [virtual]
 

Przedstaw opis metody.

Zwraca:
Opis metody.

Implementuje SelectionMethod.


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