summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJustin Worthe <justin.worthe@gmail.com>2015-07-27 20:56:04 +0200
committerJustin Worthe <justin.worthe@gmail.com>2015-07-27 20:56:04 +0200
commit650a2f680ec403d8b2a044674e296b9cab7af793 (patch)
treecaa88427a7c12aca0d3770d1647bee441334a0b9 /include
parentfc6933f34f7ce4efb522e4af34f94e9e437ec31c (diff)
Added test and abstract neural node
Diffstat (limited to 'include')
-rw-r--r--include/brain/neural_link.h4
-rw-r--r--include/brain/neural_network.h14
-rw-r--r--include/brain/neural_node.h7
-rw-r--r--include/brain/neuron.h5
-rw-r--r--include/brain/sensor.h13
-rw-r--r--include/brain/sensor_neuron.h7
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);
-};