diff options
Diffstat (limited to 'include/brain')
-rw-r--r-- | include/brain/neural_link.h | 4 | ||||
-rw-r--r-- | include/brain/neural_network.h | 14 | ||||
-rw-r--r-- | include/brain/neural_node.h | 7 | ||||
-rw-r--r-- | include/brain/neuron.h | 5 | ||||
-rw-r--r-- | include/brain/sensor.h | 13 | ||||
-rw-r--r-- | include/brain/sensor_neuron.h | 7 |
6 files changed, 37 insertions, 13 deletions
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 <memory> +#include "neural_node.h" + class NeuralLink { public: double weightedActivation(); private: - std::shared_ptr<Neuron> _input; + std::shared_ptr<NeuralNode> _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 <istream> #include <vector> +#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<std::shared_ptr<Neuron>> _neurons; - std::vector<std::shared_ptr<SensorNeuron>> _sensors; - std::vector<std::shared_ptr<Neuron>> _outputs; + std::vector<std::shared_ptr<NeuralNode>> _nodes; + std::vector<std::shared_ptr<Sensor>> _sensors; + std::vector<std::shared_ptr<NeuralNode>> _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 <memory> #include <vector> -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); -}; |