From 7e8dce7224214cbb82e9191917de9f234fe38cb7 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Sat, 1 Aug 2015 14:35:58 +0200 Subject: Implemented structure of network --- include/brain/bias_node.h | 10 ++++++++++ include/brain/neural_link.h | 3 ++- include/brain/neural_network.h | 4 ++-- include/brain/neural_node.h | 11 ++++++++++- include/brain/neuron.h | 5 ++++- include/brain/sensor.h | 11 +++++++---- 6 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 include/brain/bias_node.h (limited to 'include') diff --git a/include/brain/bias_node.h b/include/brain/bias_node.h new file mode 100644 index 0000000..501a0a0 --- /dev/null +++ b/include/brain/bias_node.h @@ -0,0 +1,10 @@ +#pragma once + +#include "brain/neural_node.h" + +class BiasNode: public NeuralNode +{ +public: + BiasNode(); + virtual double activation() const { return 1; } +}; diff --git a/include/brain/neural_link.h b/include/brain/neural_link.h index 447b26f..42ee2f9 100644 --- a/include/brain/neural_link.h +++ b/include/brain/neural_link.h @@ -7,7 +7,8 @@ class NeuralLink { public: - double weightedActivation(); + NeuralLink(double weight); + double weightedActivation() const; private: std::shared_ptr _input; diff --git a/include/brain/neural_network.h b/include/brain/neural_network.h index 37eb3a1..bb53079 100644 --- a/include/brain/neural_network.h +++ b/include/brain/neural_network.h @@ -15,8 +15,8 @@ public: void setInput(int inputIndex, double activation); int findMaxOutputIndex(); - int numberOfSensors() { return _sensors.size(); } - int numberOfOutputs() { return _outputs.size(); } + int numberOfSensors() const { return _sensors.size(); } + int numberOfOutputs() const { return _outputs.size(); } private: std::vector> _nodes; diff --git a/include/brain/neural_node.h b/include/brain/neural_node.h index abc27b8..3c2a6cb 100644 --- a/include/brain/neural_node.h +++ b/include/brain/neural_node.h @@ -3,5 +3,14 @@ class NeuralNode { public: - virtual double activation() = 0; + NeuralNode(char type, int id); + virtual ~NeuralNode() {}; + + virtual double activation() const = 0; + + char type() const { return _type; } + int id() const { return _id; } +private: + char _type; + int _id; }; diff --git a/include/brain/neuron.h b/include/brain/neuron.h index 27d7202..1607cf0 100644 --- a/include/brain/neuron.h +++ b/include/brain/neuron.h @@ -9,8 +9,11 @@ class Neuron : public NeuralNode { public: - virtual double activation() {} + Neuron(int id); + virtual ~Neuron() {} + virtual double activation() const; private: std::vector> _inputLinks; + double sigmoid(double input) const; }; diff --git a/include/brain/sensor.h b/include/brain/sensor.h index 06b96d0..b33080b 100644 --- a/include/brain/sensor.h +++ b/include/brain/sensor.h @@ -4,10 +4,13 @@ class Sensor: public NeuralNode { -private: - double _activation; - public: + Sensor(int id); + virtual ~Sensor() {} + void setActivation(double activation) { _activation = activation; } - virtual double activation() { return _activation; } + virtual double activation() const { return _activation; } + +private: + double _activation; }; -- cgit v1.2.3