aboutsummaryrefslogtreecommitdiff
path: root/src/ats
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2012-01-18 13:38:43 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2012-01-18 13:38:43 +0000
commitb435918c10c47f73401a8b93fdb739469b9c7056 (patch)
tree5d08f4f06af5c8d609b1e97de94948e9a95fa56c /src/ats
parent7e5155c6686807af805491f7e7cfc68de91c1963 (diff)
downloadgnunet-b435918c10c47f73401a8b93fdb739469b9c7056.tar.gz
gnunet-b435918c10c47f73401a8b93fdb739469b9c7056.zip
- constraint min conne
Diffstat (limited to 'src/ats')
-rw-r--r--src/ats/gnunet-service-ats_addresses_mlp.c13
-rw-r--r--src/ats/gnunet-service-ats_addresses_mlp.h3
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;