/* Array of quality preferences */
double f_q[GNUNET_ATS_QualityPropertiesCount];
+ /* Legacy preference value */
+ double f;
+
+ /* constraint 2: 1 address per peer*/
+ unsigned int r_c2;
+
+ /* constraint 9: relativity */
+ unsigned int r_c9;
struct ATS_Address *head;
struct ATS_Address *tail;
void *prob;
#endif
+ double BIG_M;
+
/**
* GLPK LP control parameter
*/
*/
unsigned int max_iterations;
+ /**
+ * Solve the problem automatically when updates occur?
+ * Default: GNUNET_YES
+ * Can be disabled for test and measurements
+ */
+ int auto_solve;
+
/* state information */
/**
unsigned int cm_size;
unsigned int ci;
+ /* Row index constraint 2: */
+ unsigned int r_c2;
/* Row index constraint 4: minimum connections */
unsigned int r_c4;
/* Row index constraint 6: maximize diversity */
unsigned int r_c6;
+ /* Row index constraint 8: utilization*/
+ unsigned int r_c8;
+ /* Row index constraint 9: relativity*/
+ unsigned int r_c9;
/* column index Diversity (D) column */
int c_d;
/* column index quality metrics */
int c_q[GNUNET_ATS_QualityPropertiesCount];
+ /* column index quality metrics */
+ int r_q[GNUNET_ATS_QualityPropertiesCount];
+
/* quality metric coefficients*/
double co_Q[GNUNET_ATS_QualityPropertiesCount];
/* constraint 3: minimum bandwidth */
unsigned int r_c3;
+
+ /* Quality information row indices */
+ unsigned int r_q[GNUNET_ATS_QualityPropertiesCount];
+
+ /* Quality information column indices */
+ unsigned int c_q[GNUNET_ATS_QualityPropertiesCount];
+
+ /* Quality information */
+ double q[GNUNET_ATS_QualityPropertiesCount];
};
struct GNUNET_TIME_Relative max_duration,
unsigned int max_iterations);
+/**
+ * Solves the MLP problem on demand
+ *
+ * @param mlp the MLP Handle
+ * @return GNUNET_OK if could be solved, GNUNET_SYSERR on failure
+ */
+int
+GAS_mlp_solve_problem (struct GAS_MLP_Handle *mlp);
+
/**
* Updates a single address in the MLP problem