diff options
author | Fabian Oehlmann <oehlmann@in.tum.de> | 2013-11-20 10:41:28 +0000 |
---|---|---|
committer | Fabian Oehlmann <oehlmann@in.tum.de> | 2013-11-20 10:41:28 +0000 |
commit | 622a6de8fa308d19e3c82941233447963660f2c0 (patch) | |
tree | 3b1d1cb926ac0d0a030c9bfb6a4872c1ddfd8d7d /src/ats | |
parent | c87507bac73d736093ecf3af783945f33d53d751 (diff) | |
download | gnunet-622a6de8fa308d19e3c82941233447963660f2c0.tar.gz gnunet-622a6de8fa308d19e3c82941233447963660f2c0.zip |
global/local reward ratio made adjustable
Diffstat (limited to 'src/ats')
-rwxr-xr-x | src/ats/libgnunet_plugin_ats_ril.c | 24 |
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; |