diff options
Diffstat (limited to 'src/ats')
-rwxr-xr-x | src/ats/plugin_ats_ril.c | 42 |
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; |