aboutsummaryrefslogtreecommitdiff
path: root/src/ats
diff options
context:
space:
mode:
authorFabian Oehlmann <oehlmann@in.tum.de>2013-12-16 13:54:11 +0000
committerFabian Oehlmann <oehlmann@in.tum.de>2013-12-16 13:54:11 +0000
commita5615e7283a532416870bfdc90d5e3a51751f73e (patch)
tree133227dd04c1d51adfd72faea9adab20ac29b646 /src/ats
parent43be71f6a0131816ec2b3c568a23de976967dea1 (diff)
downloadgnunet-a5615e7283a532416870bfdc90d5e3a51751f73e.tar.gz
gnunet-a5615e7283a532416870bfdc90d5e3a51751f73e.zip
check config parameters for validity and set default values
Diffstat (limited to 'src/ats')
-rwxr-xr-xsrc/ats/plugin_ats_ril.c42
1 files changed, 36 insertions, 6 deletions
diff --git a/src/ats/plugin_ats_ril.c b/src/ats/plugin_ats_ril.c
index 0e66a4d60..db6ce5411 100755
--- a/src/ats/plugin_ats_ril.c
+++ b/src/ats/plugin_ats_ril.c
@@ -40,7 +40,7 @@
40#define RIL_DEFAULT_STEP_TIME_MIN GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500) 40#define RIL_DEFAULT_STEP_TIME_MIN GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500)
41#define RIL_DEFAULT_STEP_TIME_MAX GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 3000) 41#define RIL_DEFAULT_STEP_TIME_MAX GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 3000)
42#define RIL_DEFAULT_ALGORITHM RIL_ALGO_SARSA 42#define RIL_DEFAULT_ALGORITHM RIL_ALGO_SARSA
43#define RIL_DEFAULT_DISCOUNT_BETA 1 43#define RIL_DEFAULT_DISCOUNT_BETA 1.0
44#define RIL_DEFAULT_DISCOUNT_GAMMA 0.5 44#define RIL_DEFAULT_DISCOUNT_GAMMA 0.5
45#define RIL_DEFAULT_GRADIENT_STEP_SIZE 0.1 45#define RIL_DEFAULT_GRADIENT_STEP_SIZE 0.1
46#define RIL_DEFAULT_TRACE_DECAY 0.5 46#define RIL_DEFAULT_TRACE_DECAY 0.5
@@ -1443,8 +1443,8 @@ ril_calculate_discount (struct GAS_RIL_Handle *solver)
1443 / (double) solver->parameters.step_time_min.rel_value_us; 1443 / (double) solver->parameters.step_time_min.rel_value_us;
1444 1444
1445 //calculate reward discounts (once per step for all agents) 1445 //calculate reward discounts (once per step for all agents)
1446 solver->global_discount_variable = pow (M_E, ((-1.) * ((double) solver->parameters.beta) * tau)); 1446 solver->global_discount_variable = pow (M_E, ((-1.0) * ((double) solver->parameters.beta) * tau));
1447 solver->global_discount_integrated = (1. - solver->global_discount_variable) 1447 solver->global_discount_integrated = (1.0 - solver->global_discount_variable)
1448 / (double) solver->parameters.beta; 1448 / (double) solver->parameters.beta;
1449} 1449}
1450 1450
@@ -1842,6 +1842,11 @@ libgnunet_plugin_ats_ril_init (void *cls)
1842 { 1842 {
1843 solver->parameters.beta = strtod (string, NULL); 1843 solver->parameters.beta = strtod (string, NULL);
1844 GNUNET_free (string); 1844 GNUNET_free (string);
1845 if (!(solver->parameters.beta > 0))
1846 {
1847 LOG (GNUNET_ERROR_TYPE_WARNING, "RIL_DISCOUNT_BETA not configured as positive number. Set to default value of %f instead.\n", RIL_DEFAULT_DISCOUNT_BETA);
1848 solver->parameters.beta = RIL_DEFAULT_DISCOUNT_BETA;
1849 }
1845 } 1850 }
1846 else 1851 else
1847 { 1852 {
@@ -1851,6 +1856,11 @@ libgnunet_plugin_ats_ril_init (void *cls)
1851 { 1856 {
1852 solver->parameters.gamma = strtod (string, NULL); 1857 solver->parameters.gamma = strtod (string, NULL);
1853 GNUNET_free (string); 1858 GNUNET_free (string);
1859 if (!(solver->parameters.gamma < 1) || (solver->parameters.gamma < 0))
1860 {
1861 LOG (GNUNET_ERROR_TYPE_WARNING, "RIL_DISCOUNT_GAMMA not configured in range [0,1[. Set to default value of %f instead.\n", RIL_DEFAULT_DISCOUNT_GAMMA);
1862 solver->parameters.gamma = RIL_DEFAULT_DISCOUNT_GAMMA;
1863 }
1854 } 1864 }
1855 else 1865 else
1856 { 1866 {
@@ -1861,6 +1871,11 @@ libgnunet_plugin_ats_ril_init (void *cls)
1861 { 1871 {
1862 solver->parameters.alpha = strtod (string, NULL); 1872 solver->parameters.alpha = strtod (string, NULL);
1863 GNUNET_free (string); 1873 GNUNET_free (string);
1874 if (!(solver->parameters.alpha > 0) || solver->parameters.alpha > 1)
1875 {
1876 LOG (GNUNET_ERROR_TYPE_WARNING, "RIL_GRADIENT_STEP_SIZE not configured in range ]0,1]. Set to default value of %f instead.\n", RIL_DEFAULT_GRADIENT_STEP_SIZE);
1877 solver->parameters.alpha = RIL_DEFAULT_GRADIENT_STEP_SIZE;
1878 }
1864 } 1879 }
1865 else 1880 else
1866 { 1881 {
@@ -1870,6 +1885,11 @@ libgnunet_plugin_ats_ril_init (void *cls)
1870 { 1885 {
1871 solver->parameters.lambda = strtod (string, NULL); 1886 solver->parameters.lambda = strtod (string, NULL);
1872 GNUNET_free (string); 1887 GNUNET_free (string);
1888 if (solver->parameters.lambda < 0 || solver->parameters.lambda > 1)
1889 {
1890 LOG (GNUNET_ERROR_TYPE_WARNING, "RIL_TRACE_DECAY not configured in range [0,1]. Set to default value of %f instead.\n", RIL_DEFAULT_TRACE_DECAY);
1891 solver->parameters.lambda = RIL_DEFAULT_TRACE_DECAY;
1892 }
1873 } 1893 }
1874 else 1894 else
1875 { 1895 {
@@ -1879,6 +1899,11 @@ libgnunet_plugin_ats_ril_init (void *cls)
1879 { 1899 {
1880 solver->parameters.explore_ratio = strtod (string, NULL); 1900 solver->parameters.explore_ratio = strtod (string, NULL);
1881 GNUNET_free (string); 1901 GNUNET_free (string);
1902 if (solver->parameters.explore_ratio < 0 || solver->parameters.explore_ratio > 1)
1903 {
1904 LOG (GNUNET_ERROR_TYPE_WARNING, "RIL_EXPLORE_RATIO not configured in range [0,1]. Set to default value of %f instead.\n", RIL_DEFAULT_EXPLORE_RATIO);
1905 solver->parameters.explore_ratio = RIL_DEFAULT_EXPLORE_RATIO;
1906 }
1882 } 1907 }
1883 else 1908 else
1884 { 1909 {
@@ -1888,6 +1913,11 @@ libgnunet_plugin_ats_ril_init (void *cls)
1888 { 1913 {
1889 solver->parameters.reward_global_share = strtod (string, NULL); 1914 solver->parameters.reward_global_share = strtod (string, NULL);
1890 GNUNET_free (string); 1915 GNUNET_free (string);
1916 if (solver->parameters.reward_global_share < 0 || solver->parameters.reward_global_share > 1)
1917 {
1918 LOG (GNUNET_ERROR_TYPE_WARNING, "RIL_GLOBAL_REWARD_SHARE not configured in range [0,1]. Set to default value of %f instead.\n", RIL_DEFAULT_GLOBAL_REWARD_SHARE);
1919 solver->parameters.reward_global_share = RIL_DEFAULT_GLOBAL_REWARD_SHARE;
1920 }
1891 } 1921 }
1892 else 1922 else
1893 { 1923 {
@@ -2117,7 +2147,7 @@ GAS_ril_address_delete (void *solver, struct ATS_Address *address, int session_o
2117 { 2147 {
2118 ril_cut_from_vector ((void **) &agent->W[i], sizeof(double), 2148 ril_cut_from_vector ((void **) &agent->W[i], sizeof(double),
2119 //((s->networks_count * RIL_FEATURES_NETWORK_COUNT) 2149 //((s->networks_count * RIL_FEATURES_NETWORK_COUNT)
2120 ((RIL_FEATURES_NETWORK_COUNT) //TODO! replace, when adding more networks 2150 ((RIL_FEATURES_INIT_COUNT) //TODO! replace, when adding more networks
2121 + (address_index * RIL_FEATURES_ADDRESS_COUNT)), RIL_FEATURES_ADDRESS_COUNT, agent->m); 2151 + (address_index * RIL_FEATURES_ADDRESS_COUNT)), RIL_FEATURES_ADDRESS_COUNT, agent->m);
2122 } 2152 }
2123 GNUNET_free(agent->W[RIL_ACTION_TYPE_NUM + address_index]); 2153 GNUNET_free(agent->W[RIL_ACTION_TYPE_NUM + address_index]);
@@ -2137,11 +2167,11 @@ GAS_ril_address_delete (void *solver, struct ATS_Address *address, int session_o
2137 LOG(GNUNET_ERROR_TYPE_DEBUG, "third\n"); 2167 LOG(GNUNET_ERROR_TYPE_DEBUG, "third\n");
2138 ril_cut_from_vector ((void **) &agent->s_old, sizeof(double), 2168 ril_cut_from_vector ((void **) &agent->s_old, sizeof(double),
2139 //((s->networks_count * RIL_FEATURES_NETWORK_COUNT) 2169 //((s->networks_count * RIL_FEATURES_NETWORK_COUNT)
2140 ((RIL_FEATURES_NETWORK_COUNT) //TODO! replace when adding more networks 2170 ((RIL_FEATURES_INIT_COUNT) //TODO! replace when adding more networks
2141 + (address_index * RIL_FEATURES_ADDRESS_COUNT)), RIL_FEATURES_ADDRESS_COUNT, agent->m); 2171 + (address_index * RIL_FEATURES_ADDRESS_COUNT)), RIL_FEATURES_ADDRESS_COUNT, agent->m);
2142 ril_cut_from_vector ((void **) &agent->e, sizeof(double), 2172 ril_cut_from_vector ((void **) &agent->e, sizeof(double),
2143 //((s->networks_count * RIL_FEATURES_NETWORK_COUNT) 2173 //((s->networks_count * RIL_FEATURES_NETWORK_COUNT)
2144 ((RIL_FEATURES_NETWORK_COUNT) //TODO! replace when adding more networks 2174 ((RIL_FEATURES_INIT_COUNT) //TODO! replace when adding more networks
2145 + (address_index * RIL_FEATURES_ADDRESS_COUNT)), RIL_FEATURES_ADDRESS_COUNT, agent->m); 2175 + (address_index * RIL_FEATURES_ADDRESS_COUNT)), RIL_FEATURES_ADDRESS_COUNT, agent->m);
2146 agent->m = m_new; 2176 agent->m = m_new;
2147 agent->n = n_new; 2177 agent->n = n_new;