Conscience Core
Classes | Public Member Functions | List of all members
conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator Class Reference

Generates generations for a neural network genetic algorithm. More...

#include <CscNeuralNetworkGeneticAlgorithmGenerationGenerator.h>

Classes

struct  NeuralNetworkGeneticAlgorithmGeneration
 Represents a generation in the neural network genetic algorithm. More...
 

Public Member Functions

 CscNeuralNetworkGeneticAlgorithmGenerationGenerator (unsigned populationSizeInit, unsigned nbNeuralNetworkInputsInit, unsigned nbNeuralNetworkOutputsInit, unsigned copyPercentOfChanceInit, unsigned crossoverPercentOfChanceInit, unsigned mutationPercentOfChanceInit, CscNeuralNetworkGeneticAlgorithmIndividualGenerator::AllPossibilitiesHyperparameters *allPossibilitiesHyperparameters)
 
virtual ~CscNeuralNetworkGeneticAlgorithmGenerationGenerator ()
 
CscNeuralNetworkGeneticAlgorithmIndividualGeneratorgetIndividualGenerator () const
 
NeuralNetworkGeneticAlgorithmGenerationgetPreviousGeneration () const
 
NeuralNetworkGeneticAlgorithmGenerationgetCurrentGeneration () const
 
const unsigned getPopulationSize () const
 
const unsigned getCopyPercentOfChance () const
 
const unsigned getCrossoverPercentOfChance () const
 
const unsigned getMutationPercentOfChance () const
 
CscNeuralNetworkGeneticAlgorithmIndividualGenerator::HyperparametersIndividualselectParentByTournament (const unsigned nbParticipantsInTournament=DEFAULT_NB_PARTICIPANTS_IN_TOURNAMENT, const float probaForBestInTournament=DEFAULT_PROBA_FOR_BEST_IN_TOURNAMENT)
 Selects a parent for the next generation using the tournament selection method. More...
 
void sortCurrentGenerationByResult ()
 
void fillCurrentGenerationRandomly ()
 
void fillNewCurrentGeneration (unsigned nthGeneration)
 
void printResultsGenerationCreation ()
 

Detailed Description

Generates generations for a neural network genetic algorithm.

This class is responsible for managing and generating generations of a neural network genetic algorithm. It includes methods for selecting parents, sorting generations, and creating new individuals.

Constructor & Destructor Documentation

◆ CscNeuralNetworkGeneticAlgorithmGenerationGenerator()

conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::CscNeuralNetworkGeneticAlgorithmGenerationGenerator ( unsigned  populationSizeInit,
unsigned  nbNeuralNetworkInputsInit,
unsigned  nbNeuralNetworkOutputsInit,
unsigned  copyPercentOfChanceInit,
unsigned  crossoverPercentOfChanceInit,
unsigned  mutationPercentOfChanceInit,
CscNeuralNetworkGeneticAlgorithmIndividualGenerator::AllPossibilitiesHyperparameters allPossibilitiesHyperparameters 
)

◆ ~CscNeuralNetworkGeneticAlgorithmGenerationGenerator()

conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::~CscNeuralNetworkGeneticAlgorithmGenerationGenerator ( )
virtual

Member Function Documentation

◆ fillCurrentGenerationRandomly()

void conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::fillCurrentGenerationRandomly ( )

◆ fillNewCurrentGeneration()

void conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::fillNewCurrentGeneration ( unsigned  nthGeneration)

◆ getCopyPercentOfChance()

const unsigned conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::getCopyPercentOfChance ( ) const

◆ getCrossoverPercentOfChance()

const unsigned conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::getCrossoverPercentOfChance ( ) const

◆ getCurrentGeneration()

CscNeuralNetworkGeneticAlgorithmGenerationGenerator::NeuralNetworkGeneticAlgorithmGeneration * conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::getCurrentGeneration ( ) const

◆ getIndividualGenerator()

CscNeuralNetworkGeneticAlgorithmIndividualGenerator * conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::getIndividualGenerator ( ) const

◆ getMutationPercentOfChance()

const unsigned conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::getMutationPercentOfChance ( ) const

◆ getPopulationSize()

const unsigned conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::getPopulationSize ( ) const

◆ getPreviousGeneration()

CscNeuralNetworkGeneticAlgorithmGenerationGenerator::NeuralNetworkGeneticAlgorithmGeneration * conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::getPreviousGeneration ( ) const

◆ printResultsGenerationCreation()

void conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::printResultsGenerationCreation ( )

◆ selectParentByTournament()

CscNeuralNetworkGeneticAlgorithmIndividualGenerator::HyperparametersIndividual * conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::selectParentByTournament ( const unsigned  nbParticipantsInTournament = DEFAULT_NB_PARTICIPANTS_IN_TOURNAMENT,
const float  probaForBestInTournament = DEFAULT_PROBA_FOR_BEST_IN_TOURNAMENT 
)

Selects a parent for the next generation using the tournament selection method.

This method conducts a tournament selection process, which is a stochastic method used to select the best individual based on their fitness scores from a subset of the current generation. It randomly picks a specified number of participants from the previous generation, sorts them based on their performance, and then probabilistically selects one to be a parent based on their rank. The probability of selecting each participant decreases for lower-ranked individuals, ensuring that the best performers have a higher chance of being chosen, while still allowing for genetic diversity.

  1. Randomly select a set number of individuals for the tournament.
  2. Sort these individuals by their fitness scores in descending order.
  3. Select a winner based on a probabilistic model where higher-ranked individuals are more likely to win.
Returns
Pointer to the HyperparametersIndividual that wins the tournament and will contribute to creating the new generation.

◆ sortCurrentGenerationByResult()

void conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator::sortCurrentGenerationByResult ( )

The documentation for this class was generated from the following files: