Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Stupid me! Bug fix in the maxmin algorithm (occurs only when using
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 24 Jan 2007 16:56:26 +0000 (16:56 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 24 Jan 2007 16:56:26 +0000 (16:56 +0000)
FATPIPES).

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3078 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/surf/maxmin.c

index 9a01021..5396bee 100644 (file)
@@ -419,21 +419,22 @@ void lmm_solve(lmm_system_t sys)
     cnst->remaining = cnst->bound;
     cnst->usage = 0;
     elem_list = &(cnst->element_set);
+    cnst->usage = 0.0;
     xbt_swag_foreach(elem, elem_list) {
       if(elem->variable->weight <=0) break;
       if ((elem->value > 0)) {
        if(cnst->shared)
          cnst->usage += elem->value / elem->variable->weight;
        else 
-         cnst->usage = 1;
+         if(cnst->usage<elem->value / elem->variable->weight)
+           cnst->usage = elem->value / elem->variable->weight;
+       DEBUG2("Constraint Usage %p : %f",cnst,cnst->usage);
        make_elem_active(elem);
       }
     }
-
     /* Saturated constraints update */
     saturated_constraint_set_update(sys, cnst, &min_usage);
   }
-
   saturated_variable_set_update(sys);
 
   /* Saturated variables update */
@@ -458,6 +459,8 @@ void lmm_solve(lmm_system_t sys)
       int i;
 
       var->value = min_usage / var->weight;
+      DEBUG5("Min usage: %f, Var(%p)->weight: %f, Var(%p)->value: %f ",min_usage,var,var->weight,var,var->value);
+
 
       /* Update usage */