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

Niniejszy dokument został półautomatycznie wycięty z dokumentacji kodu źródłowego programu Eduoptim 2. Pełna dokumentacja dostępna jest wraz ze źródłami bądź osobno w dziale pliki.
Hierarchia klas w programie nie odpowiada klasyfikacji metod optymalizacji.