Conscience Core
CscNeuralNetworkGeneticAlgorithm.h
Go to the documentation of this file.
1 /*
2  * CscNeuralNetworkGeneticAlgorithm.h
3  *
4  * Created on: 13 mai 2024
5  * Author: Max Lhermitte
6  */
7 
8 #ifndef CSCNEURALNETWORKGENETICALGORITHM_H_
9 #define CSCNEURALNETWORKGENETICALGORITHM_H_
10 
11 #include "CscNeuralNetwork.h"
13 
14 namespace conscience_core::ai::nn {
15 
17 public:
18  CscNeuralNetworkGeneticAlgorithm(unsigned nbGenerations, unsigned populationSize, unsigned nbInputs, unsigned nbOutputs, CscNeuralNetwork::DataSet *trainingDataSet, CscNeuralNetwork::DataSet *validationDataSet, unsigned copyPercentOfChance, unsigned crossoverPercentOfChance, unsigned mutationPercentOfChance, CscNeuralNetworkGeneticAlgorithmIndividualGenerator::AllPossibilitiesHyperparameters *allPossibilitiesHyperparameters);
20 
21  // getters
22  const unsigned getNbGenerations() const;
23  const unsigned getNbNeuralNetworkInputs() const;
24  const unsigned getNbNeuralNetworkOutputs() const;
25  CscNeuralNetwork::DataSet *getTrainingDataSet() const;
26  CscNeuralNetwork::DataSet *getValidationDataSet() const;
27  CscNeuralNetworkGeneticAlgorithmGenerationGenerator *getGenerationGenerator() const;
28 
29 
48  CscNeuralNetworkTensorFlow *launchGeneticAlgorithm();
49 
50 private:
51  // Attributes
52  const unsigned nbGenerations;
53  CscNeuralNetwork::DataSet *trainingDataSet = nullptr;
54  CscNeuralNetwork::DataSet *validationDataSet = nullptr;
55  unique_ptr<CscLogger> logger;
56  CscNeuralNetworkGeneticAlgorithmGenerationGenerator *generationGenerator = nullptr;
57 
58  void setResultTrainingForAllCurrentGenerationAndSortByResult();
59 };
60 };
61 
62 #endif /* CSCNEURALNETWORKGENETICALGORITHM_H_ */
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
conscience_core::ai::nn::CscNeuralNetwork::DataSet
Definition: CscNeuralNetwork.h:101
conscience_core::ai::logger
unique_ptr< CscLogger > logger
Definition: CscMrptAutonomousExploration.cpp:49
conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmIndividualGenerator::AllPossibilitiesHyperparameters
Definition: CscNeuralNetworkGeneticAlgorithmIndividualGenerator.h:38
conscience_core::ai::nn
Definition: CscNeuralNetwork.cpp:12
conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithmGenerationGenerator
Generates generations for a neural network genetic algorithm.
Definition: CscNeuralNetworkGeneticAlgorithmGenerationGenerator.h:28
CscNeuralNetworkGeneticAlgorithmGenerationGenerator.h
CscNeuralNetwork.h
conscience_core::ai::nn::CscNeuralNetworkGeneticAlgorithm
Definition: CscNeuralNetworkGeneticAlgorithm.h:16
conscience_core::ai::nn::CscNeuralNetworkTensorFlow
Definition: CscNeuralNetworkTensorFlow.h:24