From fc6933f34f7ce4efb522e4af34f94e9e437ec31c Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Mon, 27 Jul 2015 08:02:41 +0200 Subject: Added interface for neural network --- include/brain/neural_link.h | 13 +++++++++++++ include/brain/neural_network.h | 20 ++++++++++++++++++++ include/brain/neuron.h | 13 +++++++++++++ include/brain/sensor_neuron.h | 7 +++++++ 4 files changed, 53 insertions(+) create mode 100644 include/brain/neural_link.h create mode 100644 include/brain/neural_network.h create mode 100644 include/brain/neuron.h create mode 100644 include/brain/sensor_neuron.h (limited to 'include') diff --git a/include/brain/neural_link.h b/include/brain/neural_link.h new file mode 100644 index 0000000..d89ac18 --- /dev/null +++ b/include/brain/neural_link.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +class NeuralLink +{ +public: + double weightedActivation(); + +private: + std::shared_ptr _input; + double _weight; +}; diff --git a/include/brain/neural_network.h b/include/brain/neural_network.h new file mode 100644 index 0000000..d62112c --- /dev/null +++ b/include/brain/neural_network.h @@ -0,0 +1,20 @@ +#pragma once + +#include +#include +#include + +class NeuralNetwork +{ +public: + NeuralNetwork(std::istream &&networkConfigFile, int numberOfSensors, int numberOfOutputs); + + void setInput(int inputIndex, double activation); + int findOutputIndex(); + +private: + std::vector> _neurons; + std::vector> _sensors; + std::vector> _outputs; +}; + diff --git a/include/brain/neuron.h b/include/brain/neuron.h new file mode 100644 index 0000000..dd658cd --- /dev/null +++ b/include/brain/neuron.h @@ -0,0 +1,13 @@ +#pragma once + +#include +#include + +class Neuron +{ +public: + virtual double activation(); + +private: + std::vector> _inputLinks; +}; diff --git a/include/brain/sensor_neuron.h b/include/brain/sensor_neuron.h new file mode 100644 index 0000000..fb3d4df --- /dev/null +++ b/include/brain/sensor_neuron.h @@ -0,0 +1,7 @@ +#pragma once + +class SensorNeuron: public Neuron +{ +public: + setActivation(double activation); +}; -- cgit v1.2.3