aboutsummaryrefslogtreecommitdiff
path: root/src/ats
diff options
context:
space:
mode:
authorFabian Oehlmann <oehlmann@in.tum.de>2013-11-20 10:41:28 +0000
committerFabian Oehlmann <oehlmann@in.tum.de>2013-11-20 10:41:28 +0000
commit622a6de8fa308d19e3c82941233447963660f2c0 (patch)
tree3b1d1cb926ac0d0a030c9bfb6a4872c1ddfd8d7d /src/ats
parentc87507bac73d736093ecf3af783945f33d53d751 (diff)
downloadgnunet-622a6de8fa308d19e3c82941233447963660f2c0.tar.gz
gnunet-622a6de8fa308d19e3c82941233447963660f2c0.zip
global/local reward ratio made adjustable
Diffstat (limited to 'src/ats')
-rwxr-xr-xsrc/ats/libgnunet_plugin_ats_ril.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/ats/libgnunet_plugin_ats_ril.c b/src/ats/libgnunet_plugin_ats_ril.c
index 376d7e0c3..336efede1 100755
--- a/src/ats/libgnunet_plugin_ats_ril.c
+++ b/src/ats/libgnunet_plugin_ats_ril.c
@@ -40,6 +40,7 @@
40#define RIL_DEFAULT_GRADIENT_STEP_SIZE 0.3 40#define RIL_DEFAULT_GRADIENT_STEP_SIZE 0.3
41#define RIL_DEFAULT_TRACE_DECAY 0.5 41#define RIL_DEFAULT_TRACE_DECAY 0.5
42#define RIL_DEFAULT_EXPLORE_RATIO 0.1 42#define RIL_DEFAULT_EXPLORE_RATIO 0.1
43#define RIL_DEFAULT_GLOBAL_REWARD_SHARE 0.5
43 44
44/** 45/**
45 * ATS reinforcement learning solver 46 * ATS reinforcement learning solver
@@ -107,11 +108,16 @@ struct RIL_Learning_Parameters
107 double lambda; 108 double lambda;
108 109
109 /** 110 /**
110 * 111 * Ratio, whith what probability an agent should explore in the e-greed policy
111 */ 112 */
112 double explore_ratio; 113 double explore_ratio;
113 114
114 /** 115 /**
116 * How big the share of the global part of the reward signal is
117 */
118 double reward_global_share;
119
120 /**
115 * Minimal interval time between steps in milliseconds 121 * Minimal interval time between steps in milliseconds
116 */ 122 */
117 struct GNUNET_TIME_Relative step_time_min; 123 struct GNUNET_TIME_Relative step_time_min;
@@ -891,9 +897,10 @@ envi_get_reward (struct GAS_RIL_Handle *solver, struct RIL_Peer_Agent *agent)
891 return 0; 897 return 0;
892 } 898 }
893 899
894 reward += envi_reward_global (solver); 900 reward += envi_reward_global (solver) * (solver->parameters.reward_global_share);
895 reward += envi_reward_local (solver, agent); 901 reward += envi_reward_local (solver, agent) * (1 - solver->parameters.reward_global_share);
896 return reward * 0.5; 902
903 return reward;
897} 904}
898 905
899/** 906/**
@@ -1678,6 +1685,15 @@ libgnunet_plugin_ats_ril_init (void *cls)
1678 { 1685 {
1679 solver->parameters.explore_ratio = RIL_DEFAULT_EXPLORE_RATIO; 1686 solver->parameters.explore_ratio = RIL_DEFAULT_EXPLORE_RATIO;
1680 } 1687 }
1688 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats", "RIL_GLOBAL_REWARD_SHARE", &string))
1689 {
1690 solver->parameters.reward_global_share = strtod (string, NULL);
1691 GNUNET_free (string);
1692 }
1693 else
1694 {
1695 solver->parameters.reward_global_share = RIL_DEFAULT_GLOBAL_REWARD_SHARE;
1696 }
1681 1697
1682 env->sf.s_add = &GAS_ril_address_add; 1698 env->sf.s_add = &GAS_ril_address_add;
1683 env->sf.s_address_update_property = &GAS_ril_address_property_changed; 1699 env->sf.s_address_update_property = &GAS_ril_address_property_changed;