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

#include <CscNeuralNetworkGeneticAlgorithm.h>

Public Member Functions

 CscNeuralNetworkGeneticAlgorithm (unsigned nbGenerations, unsigned populationSize, unsigned nbInputs, unsigned nbOutputs, CscNeuralNetwork::DataSet *trainingDataSet, CscNeuralNetwork::DataSet *validationDataSet, unsigned copyPercentOfChance, unsigned crossoverPercentOfChance, unsigned mutationPercentOfChance, CscNeuralNetworkGeneticAlgorithmIndividualGenerator::AllPossibilitiesHyperparameters *allPossibilitiesHyperparameters)
 
virtual ~CscNeuralNetworkGeneticAlgorithm ()
 
const unsigned getNbGenerations () const
 
const unsigned getNbNeuralNetworkInputs () const
 
const unsigned getNbNeuralNetworkOutputs () const
 
CscNeuralNetwork::DataSetgetTrainingDataSet () const
 
CscNeuralNetwork::DataSetgetValidationDataSet () const
 
CscNeuralNetworkGeneticAlgorithmGenerationGeneratorgetGenerationGenerator () const
 
CscNeuralNetworkTensorFlowlaunchGeneticAlgorithm ()
 Launches the genetic algorithm to generate neural network configurations. More...
 

Constructor & Destructor Documentation

◆ CscNeuralNetworkGeneticAlgorithm()

conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm::CscNeuralNetworkGeneticAlgorithm ( unsigned  nbGenerations,
unsigned  populationSize,
unsigned  nbInputs,
unsigned  nbOutputs,
CscNeuralNetwork::DataSet trainingDataSet,
CscNeuralNetwork::DataSet validationDataSet,
unsigned  copyPercentOfChance,
unsigned  crossoverPercentOfChance,
unsigned  mutationPercentOfChance,
CscNeuralNetworkGeneticAlgorithmIndividualGenerator::AllPossibilitiesHyperparameters allPossibilitiesHyperparameters 
)

◆ ~CscNeuralNetworkGeneticAlgorithm()

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

Member Function Documentation

◆ getGenerationGenerator()

CscNeuralNetworkGeneticAlgorithmGenerationGenerator * conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm::getGenerationGenerator ( ) const

◆ getNbGenerations()

const unsigned conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm::getNbGenerations ( ) const

◆ getNbNeuralNetworkInputs()

const unsigned conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm::getNbNeuralNetworkInputs ( ) const

◆ getNbNeuralNetworkOutputs()

const unsigned conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm::getNbNeuralNetworkOutputs ( ) const

◆ getTrainingDataSet()

CscNeuralNetwork::DataSet * conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm::getTrainingDataSet ( ) const

◆ getValidationDataSet()

CscNeuralNetwork::DataSet * conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm::getValidationDataSet ( ) const

◆ launchGeneticAlgorithm()

CscNeuralNetworkTensorFlow * conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm::launchGeneticAlgorithm ( )

Launches the genetic algorithm to generate neural network configurations.

This method initiates and runs a genetic algorithm to create and optimize neural network configurations over multiple generations. The process involves generating an initial population randomly, evaluating their performance, and iteratively producing new generations by selecting and modifying the best performers.

Returns
CscNeuralNetworkTensorFlow* Pointer to the best neural network configuration found.
Exceptions
std::exceptionIf an error occurs during the execution of the genetic algorithm, a nullptr is returned and an error is logged.

The genetic algorithm process is as follows:

  1. Randomly create the first generation.
  2. Evaluate and sort the population based on their performance.
  3. Iteratively create new generations and evaluate their performance until the desired number of generations is reached.
  4. Return the best neural network configuration from the final generation.

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