summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/brain/bias_node.h10
-rw-r--r--include/brain/neural_link.h3
-rw-r--r--include/brain/neural_network.h4
-rw-r--r--include/brain/neural_node.h11
-rw-r--r--include/brain/neuron.h5
-rw-r--r--include/brain/sensor.h11
6 files changed, 35 insertions, 9 deletions
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<NeuralNode> _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<std::shared_ptr<NeuralNode>> _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<std::shared_ptr<NeuralLink>> _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;
};