21 #ifndef __ABSTRACTIAFCONTROLLER_H
22 #define __ABSTRACTIAFCONTROLLER_H
26 #include <selforg/matrix.h>
28 #include <selforg/configurable.h>
95 virtual void init(
int sensornumber,
int motornumber,
RandGen* randGen = 0);
101 virtual void step(
const sensor* sensors,
int sensornumber,
motor* motors,
int motornumber);
107 virtual bool store(FILE* f)
const {
return true; }
109 virtual bool restore(FILE* f) {
return true; }
150 double rand = g->
rand();
151 return x < -rand ? -1. : (x < rand ? 0. : 1.);
157 return x < -threshold ? -1. : (x < threshold ? 0. : 1.);
164 double damp = *(
double*)r;
165 return x < -damp ? x+damp : (x > damp ? x-damp : 0.);
170 return (fired==1 || fired==-1) ? 0 : x ;
175 double value = *(
double*)r;
176 return (fired==1 || fired==-1) ? value : x ;
184 double rand = g->
rand();
185 return x < rand ? 0. : 1.;
190 return x < threshold ? 0. : 1.;
Matrix type.
Definition: matrix.h:65
double range
Definition: abstractiafcontroller.h:120
double rand()
returns a value in [0,1)
Definition: randomgenerator.h:42
Configurable::paramval * numberIAFNeuronsPerOutput
simulate a population if >1
Definition: abstractiafcontroller.h:49
virtual int getSensorNumber() const
Definition: abstractiafcontroller.h:97
Abstract class for robot controller (with some basic functionality).
Definition: abstractcontroller.h:46
static double toTristateWithThreshold(double x, double threshold)
returns -1 if below -threshold, 0 if above -threshold and threshold, otherwise 1, for map2 ...
Definition: abstractiafcontroller.h:156
charArray paramkey
Definition: avrtypes.h:36
static double toDualStateWithThreshold(double x, double threshold)
returns 0 if below threshold, otherwise 1, for map2
Definition: abstractiafcontroller.h:189
Configurable::paramval * leakI
Definition: abstractiafcontroller.h:54
double sensor
Definition: types.h:29
~AbstractIAFControllerConf()
Definition: abstractiafcontroller.h:42
random generator with 48bit integer arithmentic
Definition: randomgenerator.h:34
static double toDualStateWithProbability(void *r, double x)
returns 0 if probability is to low, otherwise 1 for mapP
Definition: abstractiafcontroller.h:181
virtual ~AbstractIAFController()
Definition: abstractiafcontroller.h:74
Configurable::paramval * wIInitScale
scaling factor of weights, initialized random
Definition: abstractiafcontroller.h:50
Configurable::paramval * wOInitScale
between [-1*wInitScale,1*wInitScale]
Definition: abstractiafcontroller.h:51
virtual void init(int sensornumber, int motornumber, RandGen *randGen=0)
ABSTRACTCONTROLLER INTERFACE.
Definition: abstractiafcontroller.cpp:51
RandGen * randG
Definition: abstractiafcontroller.h:116
virtual void stepNoLearning(const sensor *sensors, int sensornumber, motor *motors, int motornumber)
performs one step without learning.
Definition: abstractiafcontroller.cpp:66
static double dampToZero(void *r, double x)
damps the value, if <0, damp value is added if >0, damp value is subtracted and threshold, otherwise 1, for map2
Definition: abstractiafcontroller.h:163
virtual bool store(FILE *f) const
STORABLE INTERFACE.
Definition: abstractiafcontroller.h:107
double sensor
Definition: abstractcontroller.h:48
virtual void step(const sensor *sensors, int sensornumber, motor *motors, int motornumber)
performs one step (includes learning).
Definition: abstractiafcontroller.cpp:62
matrix::Matrix tI
Definition: abstractiafcontroller.h:127
static double toZeroIfFired(double x, double fired)
Definition: abstractiafcontroller.h:169
double paramval
Definition: configurable.h:88
matrix::Matrix wO
Definition: abstractiafcontroller.h:124
matrix::Matrix xO
Definition: abstractiafcontroller.h:122
matrix::Matrix tO
Definition: abstractiafcontroller.h:128
static double toTristateWithProbability(void *r, double x)
returns -1 if probability is to low, otherwise 1 for mapP
Definition: abstractiafcontroller.h:147
AbstractIAFControllerConf conf
Definition: abstractiafcontroller.h:115
Configurable::paramval * thresholdO
Definition: abstractiafcontroller.h:53
matrix::Matrix wI
Definition: abstractiafcontroller.h:123
void initMatrices()
inits the internal used matrices If you change something on dimensions, you should call this function...
Definition: abstractiafcontroller.cpp:145
static double toValueIfFired(void *r, double x, double fired)
Definition: abstractiafcontroller.h:174
virtual bool restore(FILE *f)
loads the object from the given file stream (ASCII preferred).
Definition: abstractiafcontroller.h:109
double g(double z)
neuron transfer function
Definition: regularisation.h:35
struct AbstractIAFControllerConf AbstractIAFControllerConf
virtual void forwardStep(const sensor *sensors, int number_sensors, motor *motors, int number_motors)
makes a forward step (without any learning)
Definition: abstractiafcontroller.cpp:88
AbstractIAFController(const AbstractIAFControllerConf &conf=getDefaultConf())
Definition: abstractiafcontroller.cpp:25
Definition: abstractiafcontroller.h:30
double motor
Definition: types.h:30
virtual void notifyOnChange(const paramkey &key)
CONFIGURABLE INTERFACE.
Definition: abstractiafcontroller.cpp:71
matrix::Matrix sumO
Definition: abstractiafcontroller.h:126
matrix::Matrix sumI
Definition: abstractiafcontroller.h:125
Configurable::paramval * leakO
Definition: abstractiafcontroller.h:55
int motorNumber
Definition: abstractiafcontroller.h:119
bool initialised
Definition: abstractiafcontroller.h:117
Configurable::paramval * restingPotential
Definition: abstractiafcontroller.h:56
Configurable::paramval * numberIAFNeuronsPerInput
simulate a population if >1
Definition: abstractiafcontroller.h:48
Configurable::paramval * thresholdI
Definition: abstractiafcontroller.h:52
double motor
Definition: abstractcontroller.h:49
virtual int getMotorNumber() const
Definition: abstractiafcontroller.h:99
AbstractIAFControllerConf()
Definition: abstractiafcontroller.h:31
int sensorNumber
Definition: abstractiafcontroller.h:118
static AbstractIAFControllerConf getDefaultConf()
Definition: abstractiafcontroller.h:77
matrix::Matrix xI
Definition: abstractiafcontroller.h:121
int c
Definition: hexapod.cpp:56
Abstract class (interface) for robot controller that uses an integrate and fire neuron model...
Definition: abstractiafcontroller.h:69