diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-01-18 13:38:43 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-01-18 13:38:43 +0000 |
commit | b435918c10c47f73401a8b93fdb739469b9c7056 (patch) | |
tree | 5d08f4f06af5c8d609b1e97de94948e9a95fa56c /src/ats | |
parent | 7e5155c6686807af805491f7e7cfc68de91c1963 (diff) | |
download | gnunet-b435918c10c47f73401a8b93fdb739469b9c7056.tar.gz gnunet-b435918c10c47f73401a8b93fdb739469b9c7056.zip |
- constraint min conne
Diffstat (limited to 'src/ats')
-rw-r--r-- | src/ats/gnunet-service-ats_addresses_mlp.c | 13 | ||||
-rw-r--r-- | src/ats/gnunet-service-ats_addresses_mlp.h | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/ats/gnunet-service-ats_addresses_mlp.c b/src/ats/gnunet-service-ats_addresses_mlp.c index 54abd9d89..c3a7cfb5c 100644 --- a/src/ats/gnunet-service-ats_addresses_mlp.c +++ b/src/ats/gnunet-service-ats_addresses_mlp.c | |||
@@ -249,6 +249,14 @@ create_constraint_it (void *cls, const GNUNET_HashCode * key, void *value) | |||
249 | mlp->ar[mlp->ci] = -mlp->b_min; | 249 | mlp->ar[mlp->ci] = -mlp->b_min; |
250 | mlp->ci++; | 250 | mlp->ci++; |
251 | 251 | ||
252 | /* c 4) minimum connections | ||
253 | * (1)*n_1 + ... + (1)*n_m >= n_min | ||
254 | */ | ||
255 | mlp->ia[mlp->ci] = mlp->r_c4; | ||
256 | mlp->ja[mlp->ci] = mlpi->c_n; | ||
257 | mlp->ar[mlp->ci] = 1; | ||
258 | mlp->ci++; | ||
259 | |||
252 | return GNUNET_OK; | 260 | return GNUNET_OK; |
253 | } | 261 | } |
254 | 262 | ||
@@ -322,8 +330,13 @@ mlp_add_constraints_all_addresses (struct GAS_MLP_Handle *mlp, struct GNUNET_CON | |||
322 | 330 | ||
323 | /* c 1) bandwidth capping */ | 331 | /* c 1) bandwidth capping */ |
324 | /* c 3) minimum bandwidth */ | 332 | /* c 3) minimum bandwidth */ |
333 | /* c 4) minimum number of connections */ | ||
334 | mlp->r_c4 = glp_add_rows (mlp->prob, 1); | ||
335 | glp_set_row_bnds (mlp->prob, mlp->r_c4, GLP_LO, mlp->n_min, 0.0); | ||
336 | |||
325 | GNUNET_CONTAINER_multihashmap_iterate (addresses, create_constraint_it, mlp); | 337 | GNUNET_CONTAINER_multihashmap_iterate (addresses, create_constraint_it, mlp); |
326 | 338 | ||
339 | |||
327 | } | 340 | } |
328 | 341 | ||
329 | /** | 342 | /** |
diff --git a/src/ats/gnunet-service-ats_addresses_mlp.h b/src/ats/gnunet-service-ats_addresses_mlp.h index bb86d2251..3878b0f5f 100644 --- a/src/ats/gnunet-service-ats_addresses_mlp.h +++ b/src/ats/gnunet-service-ats_addresses_mlp.h | |||
@@ -146,6 +146,9 @@ struct GAS_MLP_Handle | |||
146 | unsigned int cm_size; | 146 | unsigned int cm_size; |
147 | unsigned int ci; | 147 | unsigned int ci; |
148 | 148 | ||
149 | /* Row index constraint 4: minimum connections */ | ||
150 | unsigned int r_c4; | ||
151 | |||
149 | /* column index Diversity (D) column */ | 152 | /* column index Diversity (D) column */ |
150 | int c_d; | 153 | int c_d; |
151 | double co_D; | 154 | double co_D; |