[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r14787 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r14787 - gnunet/src/transport |
Date: |
Wed, 30 Mar 2011 17:37:21 +0200 |
Author: wachs
Date: 2011-03-30 17:37:21 +0200 (Wed, 30 Mar 2011)
New Revision: 14787
Modified:
gnunet/src/transport/gnunet-service-transport.c
Log:
Constraint 9 implemented
MLP is solvable and afaik well defined
Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c 2011-03-30 15:27:52 UTC
(rev 14786)
+++ gnunet/src/transport/gnunet-service-transport.c 2011-03-30 15:37:21 UTC
(rev 14787)
@@ -5689,7 +5689,7 @@
if (VERBOSE_ATS) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Creating problem
with: %i peers, %i mechanisms\n", c_peers, c_mechs);
- int size = 1 + 8 *c_mechs +2;
+ int size = 1 + 8 *c_mechs +2 + c_mechs + c_peers;
int row_index;
int array_index=1;
int * ia = GNUNET_malloc (size * sizeof (int));
@@ -5847,16 +5847,16 @@
glp_add_cols(prob, 3 + c_q_metrics);
glp_set_col_name(prob, (2*c_mechs) + 1, "d");
glp_set_obj_coef(prob, (2*c_mechs) + 1, D);
- glp_set_col_bnds(prob, (2*c_mechs) + 1, GLP_LO, 0.0, 0);
+ glp_set_col_bnds(prob, (2*c_mechs) + 1, GLP_LO, 0.0, 0.0);
//glp_set_col_kind(prob, c, GLP_IV);
glp_set_col_name(prob, (2*c_mechs) + 2, "u");
glp_set_obj_coef(prob, (2*c_mechs) + 2, U);
- glp_set_col_bnds(prob, (2*c_mechs) + 2, GLP_LO, 0.0, 0);
+ glp_set_col_bnds(prob, (2*c_mechs) + 2, GLP_LO, 0.0, 0.0);
//glp_set_col_bnds(prob, c, GLP_DB, 0.0, 1.0);
//glp_set_col_kind(prob, c, GLP_IV);
glp_set_col_name(prob, (2*c_mechs) + 3, "r");
glp_set_obj_coef(prob, (2*c_mechs) + 3, R);
- //glp_set_col_bnds(prob, (2*c_mechs) + 3, GLP_DB, 0.0, 100.0);
+ glp_set_col_bnds(prob, (2*c_mechs) + 3, GLP_LO, 0.0, 0.0);
//glp_set_col_kind(prob, c, GLP_IV);
for (c=1; c<= c_q_metrics; c++)
{
@@ -5941,6 +5941,34 @@
GNUNET_assert (row_index-1==c_peers+(2*c_mechs)+3);
GNUNET_assert (array_index-1==8*c_mechs+2);
+ // Constraint 9: optimize relativity
+ if (VERBOSE_ATS) GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Constraint 9\n");
+ glp_add_rows(prob, c_peers);
+ for (c=1; c<=c_peers; c++)
+ {
+ glp_set_row_bnds(prob, row_index, GLP_LO, 0.0, 0.0);
+
+ struct ATS_mechanism *m = peers[c].m_head;
+ while (m!=NULL)
+ {
+ ia[array_index] = row_index;
+ ja[array_index] = m->col_index;
+ ar[array_index] = 1;
+ if (VERBOSE_ATS) GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"[index]=[%i]: [%i,%i]=%f \n",array_index, ia[array_index], ja[array_index],
ar[array_index]);
+ array_index++;
+ m = m->next;
+ }
+ ia[array_index] = row_index;
+ ja[array_index] = (2*c_mechs) + 3;
+ ar[array_index] = -1;
+ if (VERBOSE_ATS) GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"[index]=[%i]: [%i,%i]=%f \n",array_index, ia[array_index], ja[array_index],
ar[array_index]);
+ array_index++;
+
+ row_index++;
+ }
+ GNUNET_assert (row_index-1==2*c_peers+(2*c_mechs)+3);
+ GNUNET_assert (array_index-1==9*c_mechs+2+c_peers);
+
glp_load_matrix(prob, array_index-1, ia, ja, ar);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r14787 - gnunet/src/transport,
gnunet <=