From 650a2f680ec403d8b2a044674e296b9cab7af793 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Mon, 27 Jul 2015 20:56:04 +0200 Subject: Added test and abstract neural node --- include/brain/neural_link.h | 4 +++- include/brain/neural_network.h | 14 ++++++++++---- include/brain/neural_node.h | 7 +++++++ include/brain/neuron.h | 5 ++++- include/brain/sensor.h | 13 +++++++++++++ include/brain/sensor_neuron.h | 7 ------- 6 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 include/brain/neural_node.h create mode 100644 include/brain/sensor.h delete mode 100644 include/brain/sensor_neuron.h (limited to 'include') diff --git a/include/brain/neural_link.h b/include/brain/neural_link.h index d89ac18..447b26f 100644 --- a/include/brain/neural_link.h +++ b/include/brain/neural_link.h @@ -2,12 +2,14 @@ #include +#include "neural_node.h" + class NeuralLink { public: double weightedActivation(); private: - std::shared_ptr _input; + std::shared_ptr _input; double _weight; }; diff --git a/include/brain/neural_network.h b/include/brain/neural_network.h index d62112c..99e5f60 100644 --- a/include/brain/neural_network.h +++ b/include/brain/neural_network.h @@ -4,17 +4,23 @@ #include #include +#include "brain/neural_node.h" +#include "brain/sensor.h" + class NeuralNetwork { public: NeuralNetwork(std::istream &&networkConfigFile, int numberOfSensors, int numberOfOutputs); void setInput(int inputIndex, double activation); - int findOutputIndex(); + int findMaxOutputIndex(); + + int numberOfSensors(); + int numberOfOutputs(); private: - std::vector> _neurons; - std::vector> _sensors; - std::vector> _outputs; + std::vector> _nodes; + std::vector> _sensors; + std::vector> _outputs; }; diff --git a/include/brain/neural_node.h b/include/brain/neural_node.h new file mode 100644 index 0000000..abc27b8 --- /dev/null +++ b/include/brain/neural_node.h @@ -0,0 +1,7 @@ +#pragma once + +class NeuralNode +{ +public: + virtual double activation() = 0; +}; diff --git a/include/brain/neuron.h b/include/brain/neuron.h index dd658cd..1878752 100644 --- a/include/brain/neuron.h +++ b/include/brain/neuron.h @@ -3,7 +3,10 @@ #include #include -class Neuron +#include "neural_node.h" +#include "neural_link.h" + +class Neuron : public NeuralNode { public: virtual double activation(); diff --git a/include/brain/sensor.h b/include/brain/sensor.h new file mode 100644 index 0000000..cdee218 --- /dev/null +++ b/include/brain/sensor.h @@ -0,0 +1,13 @@ +#pragma once + +#include "brain/neural_node.h" + +class Sensor: public NeuralNode +{ +private: + double _activation; + +public: + void setActivation(double activation); + virtual double activation(); +}; diff --git a/include/brain/sensor_neuron.h b/include/brain/sensor_neuron.h deleted file mode 100644 index fb3d4df..0000000 --- a/include/brain/sensor_neuron.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -class SensorNeuron: public Neuron -{ -public: - setActivation(double activation); -}; -- cgit v1.2.3