int c_peers = 0;
int c_mechs = 0;
int result;
+ int solution;
int c_c_ressources = 0;
int c_q_metrics = 0;
glp_load_matrix(prob, array_index-1, ia, ja, ar);
- /* Solve the LP problem */
- glp_smcp opt ;
- glp_init_smcp(&opt);
+ glp_iocp opt;
+ glp_init_iocp(&opt);
- /* maximum iterations */
- opt.it_lim = max_it;
+ /* Use LP presolver (if not, valid LP solution has to be provided)*/
+ opt.presolve =GLP_ON;
/* maximum duration */
opt.tm_lim = max_dur;
- opt.presolve = GLP_ON;
/* output level */
- if (DEBUG_ATS)
+ if (VERBOSE_ATS)
opt.msg_lev = GLP_MSG_ALL;
else
opt.msg_lev = GLP_MSG_OFF;
-
- result = glp_simplex(prob, &opt);
+ result = glp_intopt (prob, &opt);
+ solution = glp_mip_status (prob);
switch (result) {
case GLP_ESTOP : /* search terminated by application */
break;
default:
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Optimal solution\n");
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Problem has been solved\n");
break;
}
+ switch (solution) {
+ case GLP_UNDEF:
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "MIP solution is undeļ¬ned\n");
+ break;
+ case GLP_OPT:
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "MIP solution is integer optimal\n");
+ break;
+ case GLP_FEAS:
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "MIP solution is integer feasible, however, its optimality (or non-optimality) has not been proven, \n");
+ break;
+ case GLP_NOFEAS:
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "MI problem has no integer feasible solution\n");
+ break;
+ break;
+ default:
+ break;
+ }
+
char * debug_solution = NULL;
char * old = NULL;
for (c=1; c<= 2*c_mechs; c++ )