[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r32028 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r32028 - gnunet/src/ats |
Date: |
Sat, 25 Jan 2014 14:51:27 +0100 |
Author: oehlmann
Date: 2014-01-25 14:51:27 +0100 (Sat, 25 Jan 2014)
New Revision: 32028
Modified:
gnunet/src/ats/plugin_ats_ril.c
Log:
-eligibility trace fixes
Modified: gnunet/src/ats/plugin_ats_ril.c
===================================================================
--- gnunet/src/ats/plugin_ats_ril.c 2014-01-24 17:25:00 UTC (rev 32027)
+++ gnunet/src/ats/plugin_ats_ril.c 2014-01-25 13:51:27 UTC (rev 32028)
@@ -683,8 +683,9 @@
agent_update (struct RIL_Peer_Agent *agent, double reward, double *s_next, int
a_prime)
{
int i;
+ int k;
double delta;
- double *theta = agent->W[agent->a_old];
+ double **theta = agent->W;
delta = agent->envi->global_discount_integrated * reward; //reward
delta += agent->envi->global_discount_variable * agent_q (agent, s_next,
a_prime); //discounted future value
@@ -699,14 +700,17 @@
// agent_q (agent, s_next, a_prime),
// delta);
- for (i = 0; i < agent->m; i++)
+ for (k = 0; k < agent->n; k++)
{
-// LOG(GNUNET_ERROR_TYPE_INFO, "alpha = %f delta = %f e[%d] = %f\n",
-// agent->envi->parameters.alpha,
-// delta,
-// i,
-// agent->e[i]);
- theta[i] += agent->envi->parameters.alpha * delta *
agent->E[agent->a_old][i];
+ for (i = 0; i < agent->m; i++)
+ {
+ // LOG(GNUNET_ERROR_TYPE_INFO, "alpha = %f delta = %f e[%d] = %f\n",
+ // agent->envi->parameters.alpha,
+ // delta,
+ // i,
+ // agent->e[i]);
+ theta[k][i] += agent->envi->parameters.alpha * delta * agent->E[k][i];
+ }
}
}
@@ -739,7 +743,7 @@
agent->E[action][i] += feature[i];
break;
case RIL_E_REPLACE:
- agent->E[action][i] = (agent->envi->global_discount_variable *
agent->envi->parameters.lambda * agent->E[action][i]) > feature[i] ?
agent->E[action][i] : feature[i];
+ agent->E[action][i] = agent->E[action][i] > feature[i] ?
agent->E[action][i] : feature[i];
break;
case RIL_E_DISCOUNT:
for (k = 0; k < agent->n; k++)
@@ -1004,24 +1008,24 @@
return 1;
}
-static double
-envi_penalty_share (struct GAS_RIL_Handle *solver, struct RIL_Peer_Agent
*agent)
-{
- struct RIL_Scope *net;
- double util_ratio_in;
- double util_ratio_out;
- double util_ratio_max;
- double sigmoid_x;
+//static double
+//envi_penalty_share (struct GAS_RIL_Handle *solver, struct RIL_Peer_Agent
*agent)
+//{
+// struct RIL_Scope *net;
+// double util_ratio_in;
+// double util_ratio_out;
+// double util_ratio_max;
+// double sigmoid_x;
+//
+// net = agent->address_inuse->solver_information;
+//
+// util_ratio_in = (double) net->bw_in_utilized / (double)
net->bw_in_available;
+// util_ratio_out = (double) net->bw_out_utilized / (double)
net->bw_out_available;
+// util_ratio_max = GNUNET_MAX (util_ratio_in, util_ratio_out);
+// sigmoid_x = util_ratio_max - 1;
+// return 1 - (1 / (1 + exp(5 * sigmoid_x)));
+//}
- net = agent->address_inuse->solver_information;
-
- util_ratio_in = (double) net->bw_in_utilized / (double) net->bw_in_available;
- util_ratio_out = (double) net->bw_out_utilized / (double)
net->bw_out_available;
- util_ratio_max = GNUNET_MAX (util_ratio_in, util_ratio_out);
- sigmoid_x = util_ratio_max - 1;
- return 1 - (1 / (1 + exp(5 * sigmoid_x)));
-}
-
static double
envi_get_penalty (struct GAS_RIL_Handle *solver, struct RIL_Peer_Agent *agent)
{
@@ -1032,7 +1036,6 @@
net = agent->address_inuse->solver_information;
- //TODO make sure in tests to have utilization property updated
if (net->bw_in_utilized > net->bw_in_available)
{
over_in = net->bw_in_utilized - net->bw_in_available;
@@ -1087,7 +1090,8 @@
steady = (RIL_ACTION_NOTHING == agent->a_old) ? agent->nop_bonus : 0;
- pen_share = envi_penalty_share(solver, agent);
+ //pen_share = envi_penalty_share(solver, agent); TODO revert
+ pen_share = 0.5;
penalty = envi_get_penalty(solver, agent);
reward = delta + steady;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r32028 - gnunet/src/ats,
gnunet <=