fix eligibility traces
[oweals/gnunet.git] / src / ats / libgnunet_plugin_ats_ril.c
index 5d83f30350e13970f751ea91cc55db4e2ce72cf3..7dcc29efd8a33cea69ab4e582431774436e4918d 100755 (executable)
@@ -529,7 +529,7 @@ agent_modify_eligibility (struct RIL_Peer_Agent *agent, enum RIL_E_Modification
       e[i] = 1;
       break;
     case RIL_E_SET:
-      e[i] = agent->envi->discount_variable * agent->envi->parameters.lambda;
+      e[i] *= agent->envi->discount_variable * agent->envi->parameters.lambda;
       break;
     case RIL_E_ZERO:
       e[i] = 0;
@@ -1486,6 +1486,7 @@ libgnunet_plugin_ats_ril_init (void *cls)
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats", "RIL_ALGORITHM", &string))
   {
     solver->parameters.algorithm = !strcmp (string, "SARSA") ? RIL_ALGO_SARSA : RIL_ALGO_Q;
+    GNUNET_free (string);
   }
   else
   {
@@ -1494,6 +1495,7 @@ libgnunet_plugin_ats_ril_init (void *cls)
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats", "RIL_DISCOUNT_BETA", &string))
   {
     solver->parameters.beta = strtod (string, NULL);
+    GNUNET_free (string);
   }
   else
   {
@@ -1503,6 +1505,7 @@ libgnunet_plugin_ats_ril_init (void *cls)
       == GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats", "RIL_GRADIENT_STEP_SIZE", &string))
   {
     solver->parameters.alpha = strtod (string, NULL);
+    GNUNET_free (string);
   }
   else
   {
@@ -1511,6 +1514,7 @@ libgnunet_plugin_ats_ril_init (void *cls)
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats", "RIL_TRACE_DECAY", &string))
   {
     solver->parameters.lambda = strtod (string, NULL);
+    GNUNET_free (string);
   }
   else
   {
@@ -1519,6 +1523,7 @@ libgnunet_plugin_ats_ril_init (void *cls)
   if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats", "RIL_EXPLORE_RATIO", &string))
   {
     solver->parameters.explore_ratio = strtod (string, NULL);
+    GNUNET_free (string);
   }
   else
   {