gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r26360 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r26360 - gnunet/src/ats
Date: Fri, 8 Mar 2013 15:27:00 +0100

Author: wachs
Date: 2013-03-08 15:26:59 +0100 (Fri, 08 Mar 2013)
New Revision: 26360

Modified:
   gnunet/src/ats/gnunet-service-ats_addresses_mlp.c
   gnunet/src/ats/gnunet-service-ats_addresses_mlp.h
   gnunet/src/ats/test_ats_mlp.c
Log:
writing solutions and MPS dumps


Modified: gnunet/src/ats/gnunet-service-ats_addresses_mlp.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses_mlp.c   2013-03-08 14:16:33 UTC 
(rev 26359)
+++ gnunet/src/ats/gnunet-service-ats_addresses_mlp.c   2013-03-08 14:26:59 UTC 
(rev 26360)
@@ -136,11 +136,6 @@
 #define LOG(kind,...) GNUNET_log_from (kind, "ats-mlp",__VA_ARGS__)
 
 /**
- * Write MLP problem to disk
- */
-#define WRITE_MLP GNUNET_NO
-
-/**
  * Print debug output for mlp problem creation
  */
 #define DEBUG_MLP_PROBLEM_CREATION GNUNET_YES
@@ -917,6 +912,7 @@
 GAS_mlp_solve_problem (void *solver, struct GNUNET_CONTAINER_MultiHashMap * 
addresses)
 {
        struct GAS_MLP_Handle *mlp = solver;
+       char *filename;
        int res_lp = 0;
        int res_mip = 0;
        struct GNUNET_TIME_Absolute start_build;
@@ -985,17 +981,20 @@
        if ((GNUNET_OK == res_lp) && (GNUNET_OK == res_mip))
                GNUNET_CONTAINER_multihashmap_iterate (addresses, 
&mlp_propagate_results, mlp);
 
+       struct GNUNET_TIME_Absolute time = GNUNET_TIME_absolute_get();
+       if (GNUNET_YES == mlp->write_mip_mps)
+       {
        /* Write problem and solution to disk */
-#if WRITE_MLP
-       char *filename;
-       struct GNUNET_TIME_Absolute time = GNUNET_TIME_absolute_get();
-       GNUNET_asprintf (&filename, "problem_%llu.lp", time.abs_value);
-       glp_write_lp(mlp->p.prob, 0, filename);
+       GNUNET_asprintf (&filename, "problem_p_%u_a%u_%llu.mps", 
mlp->p.num_peers, mlp->p.num_addresses, time.abs_value);
+       glp_write_mps(mlp->p.prob, GLP_MPS_FILE, NULL, filename);
        GNUNET_free (filename);
-       GNUNET_asprintf (&filename, "problem_%llu.mip", time.abs_value);
-       glp_print_mip (mlp->p.prob, filename );
-       GNUNET_free (filename);
-#endif
+       }
+       if (GNUNET_YES == mlp->write_mip_sol)
+       {
+               GNUNET_asprintf (&filename, "problem_p_%u_a%u_%llu.sol", 
mlp->p.num_peers, mlp->p.num_addresses, time.abs_value);
+               glp_print_mip (mlp->p.prob, filename );
+               GNUNET_free (filename);
+       }
 
        /* Reset change and update marker */
        mlp->control_param_lp.presolve = GLP_NO;
@@ -1778,6 +1777,8 @@
   mlp->pv.b_min = b_min;
   mlp->pv.n_min = n_min;
   mlp->pv.m_q = GNUNET_ATS_QualityPropertiesCount;
+  mlp->write_mip_mps = GNUNET_NO;
+  mlp->write_mip_sol = GNUNET_NO;
   mlp->mlp_prob_changed = GNUNET_NO;
   mlp->mlp_prob_updated = GNUNET_NO;
   mlp->mlp_auto_solve = GNUNET_YES;

Modified: gnunet/src/ats/gnunet-service-ats_addresses_mlp.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses_mlp.h   2013-03-08 14:16:33 UTC 
(rev 26359)
+++ gnunet/src/ats/gnunet-service-ats_addresses_mlp.h   2013-03-08 14:26:59 UTC 
(rev 26360)
@@ -273,6 +273,17 @@
    * Can be disabled for test and measurements
    */
   int mlp_auto_solve;
+
+  /**
+   * Write MILP problem to a MPS file
+   */
+  int write_mip_mps;
+
+  /**
+   * Write MILP problem to a MPS file
+   */
+  int write_mip_sol;
+
 };
 
 

Modified: gnunet/src/ats/test_ats_mlp.c
===================================================================
--- gnunet/src/ats/test_ats_mlp.c       2013-03-08 14:16:33 UTC (rev 26359)
+++ gnunet/src/ats/test_ats_mlp.c       2013-03-08 14:26:59 UTC (rev 26360)
@@ -272,6 +272,9 @@
   GAS_mlp_get_preferred_address (mlp, addresses, &p[0]);
   GAS_mlp_get_preferred_address (mlp, addresses, &p[1]);
 
+  mlp->write_mip_mps = GNUNET_YES;
+  mlp->write_mip_sol = GNUNET_YES;
+
   GAS_mlp_solve_problem (mlp, addresses);
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]