← Documentation
ADS-IDAC Engine 5.0.0
Activation.cpp
Go to the documentation of this file.
1// Activation.cpp: implementation of the Activation class.
2//
4
5#include "Activation.h"
6
7//using namespace std;
8
10// Construction/Destruction
12
14{
15 this->m_activation = 0.01;
16 this->m_activation_baseline = 0.1;
17 this->m_change_ratio = 1;
18}
19
21{
22
23}
24
25void Activation::ActivationDecay(double _lamda)
26{
27 double delta;
28 if(this->m_activation > this->m_activation_baseline)
29 {
30 delta = -0.5*(_lamda)*(this->m_activation -this->m_activation_baseline);
31 this->m_activation += delta;
32 }
33
34 //decay of the baseline
35 if(this->m_activation_baseline <= 0.1)
36 {return;}
37 float base_decay_lamda;
38 base_decay_lamda = _lamda/0.9 * (this->m_activation_baseline - 0.1);
39 delta = -0.5*(base_decay_lamda)*(this->m_activation_baseline - 0.1);
40 this->m_activation_baseline += delta;
41}
42
44{
45 this->m_activation = _new;
46}
47
49{
50 this->m_activation = _pt->m_activation;
52 this->m_change_ratio = _pt->m_change_ratio;
53}
54
56{
57 float ratio;
58 ratio = std::min<float>(_ratio, 1/this->m_activation);
59
60 this->m_activation = this->m_activation * ratio;
61 this->m_change_ratio = this->m_change_ratio * ratio;
62 return;
63}
64
66{
67 this->m_change_ratio = 1;
68}
69
71{
73}
74
76{//this should be called in the following situation: 1)after cranking a sentence's activation 2)after one round activation spreading
77 float delta_base;
78 if(this->m_activation == this->m_old_activation)
79 {return;}
80
81 delta_base = (this->m_activation - this->m_old_activation)*_decay_lamda * (1 - this->m_activation_baseline);
82 this->m_activation_baseline += std::min<float>(delta_base, 1-this->m_activation_baseline);
83 this->m_old_activation = this->m_activation;
84 return;
85}
double m_change_ratio
Definition: Activation.h:19
void UpdateChangeRatio()
Definition: Activation.cpp:70
void ChangeActivationByRatio(float)
Definition: Activation.cpp:55
double m_activation_baseline
Definition: Activation.h:20
void UpdateTheBaseLineValueAfterAChange(float _decay_lamda)
Definition: Activation.cpp:75
double m_old_activation
Definition: Activation.h:23
double m_activation
Definition: Activation.h:22
void CopyActivationToRestartInfo(Activation *)
Definition: Activation.cpp:48
void ActivationDecay(double)
Definition: Activation.cpp:25
virtual ~Activation()
Definition: Activation.cpp:20
void SetNewActivation(double)
Definition: Activation.cpp:43
void ResetChangeRatio()
Definition: Activation.cpp:65