cellular encoding
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
#pragma once
|
||||
|
||||
#include "./Instruction.h"
|
||||
#include "../Cell.h"
|
||||
#include "../CelularEncoding.h"
|
||||
|
||||
namespace NeuralNetworks {
|
||||
namespace ConstructiveAlgorithms {
|
||||
namespace CelularEncoding {
|
||||
namespace Instruction{
|
||||
class IncBias : public Instruction{
|
||||
public:
|
||||
virtual void run(Cell &cell, CelularEncoding &, const std::vector<double> &) override {
|
||||
cell.setBias(cell.getBias()+1.0);
|
||||
cell.setCodePointer(cell.getCodePointer()->c1);
|
||||
}
|
||||
|
||||
virtual std::size_t numberOfNodes() const override {
|
||||
return 1;
|
||||
}
|
||||
|
||||
virtual std::string toString() const override {
|
||||
return "IncBias";
|
||||
}
|
||||
};
|
||||
|
||||
class DecBias : public Instruction{
|
||||
public:
|
||||
virtual void run(Cell &cell, CelularEncoding &, const std::vector<double> &) override {
|
||||
cell.setBias(cell.getBias()-1.0);
|
||||
cell.setCodePointer(cell.getCodePointer()->c1);
|
||||
}
|
||||
|
||||
virtual std::size_t numberOfNodes() const override {
|
||||
return 1;
|
||||
}
|
||||
|
||||
virtual std::string toString() const override {
|
||||
return "DecBias";
|
||||
}
|
||||
|
||||
};
|
||||
class MulBias : public Instruction{
|
||||
public:
|
||||
virtual void run(Cell &cell, CelularEncoding &, const std::vector<double> &) override {
|
||||
cell.setBias(cell.getBias()*2.0);
|
||||
cell.setCodePointer(cell.getCodePointer()->c1);
|
||||
}
|
||||
|
||||
virtual std::size_t numberOfNodes() const override {
|
||||
return 1;
|
||||
}
|
||||
|
||||
virtual std::string toString() const override {
|
||||
return "MulBias";
|
||||
}
|
||||
};
|
||||
|
||||
class DivBias : public Instruction{
|
||||
public:
|
||||
virtual void run(Cell &cell, CelularEncoding &, const std::vector<double> &) override {
|
||||
cell.setBias(cell.getBias()*0.5);
|
||||
cell.setCodePointer(cell.getCodePointer()->c1);
|
||||
}
|
||||
|
||||
virtual std::size_t numberOfNodes() const override {
|
||||
return 1;
|
||||
}
|
||||
|
||||
virtual std::string toString() const override {
|
||||
return "DivBias";
|
||||
}
|
||||
};
|
||||
|
||||
class SetBiasZero : public Instruction{
|
||||
public:
|
||||
SetBiasZero(bool terminal = true) : _nodes(terminal ? 0 : 1) {
|
||||
|
||||
}
|
||||
|
||||
virtual void run(Cell &cell, CelularEncoding &, const std::vector<double> &) override {
|
||||
cell.setBias(0.0);
|
||||
cell.setCodePointer(cell.getCodePointer()->c1);
|
||||
}
|
||||
|
||||
virtual std::size_t numberOfNodes() const override {
|
||||
return _nodes;
|
||||
}
|
||||
|
||||
virtual std::string toString() const override {
|
||||
return "SetBiasZero";
|
||||
}
|
||||
protected:
|
||||
std::size_t _nodes;
|
||||
};
|
||||
|
||||
class SetBiasOne : public Instruction{
|
||||
public:
|
||||
SetBiasOne(bool terminal = true) : _nodes(terminal ? 0 : 1) {
|
||||
|
||||
}
|
||||
|
||||
virtual void run(Cell &cell, CelularEncoding &, const std::vector<double> &) override {
|
||||
cell.setBias(1.0);
|
||||
cell.setCodePointer(cell.getCodePointer()->c1);
|
||||
}
|
||||
|
||||
virtual std::size_t numberOfNodes() const override {
|
||||
return _nodes;
|
||||
}
|
||||
|
||||
virtual std::string toString() const override {
|
||||
return "SetBiasZero";
|
||||
}
|
||||
protected:
|
||||
std::size_t _nodes;
|
||||
};
|
||||
|
||||
class SetBiasMinusOne : public Instruction{
|
||||
public:
|
||||
SetBiasMinusOne(bool terminal = true) : _nodes(terminal ? 0 : 1) {
|
||||
|
||||
}
|
||||
|
||||
virtual void run(Cell &cell, CelularEncoding &, const std::vector<double> &) override {
|
||||
cell.setBias(-1.0);
|
||||
cell.setCodePointer(cell.getCodePointer()->c1);
|
||||
}
|
||||
|
||||
virtual std::size_t numberOfNodes() const override {
|
||||
return _nodes;
|
||||
}
|
||||
|
||||
virtual std::string toString() const override {
|
||||
return "SetBiasZero";
|
||||
}
|
||||
protected:
|
||||
std::size_t _nodes;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user