From 7ec790f5a5d5c9f82f7f984cbea4a5b886968902 Mon Sep 17 00:00:00 2001 From: velho Date: Wed, 18 Apr 2007 16:12:44 +0000 Subject: [PATCH] Corrected some bugs in when computting mu. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3431 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/surf/lagrange.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/surf/lagrange.c b/src/surf/lagrange.c index 8adc5c66b0..01e22449c2 100644 --- a/src/surf/lagrange.c +++ b/src/surf/lagrange.c @@ -59,7 +59,6 @@ void lagrange_solve(lmm_system_t sys) xbt_swag_t var_list = NULL; - //lmm_variable_t var = NULL; lmm_variable_t var1 = NULL; lmm_variable_t var2 = NULL; @@ -93,7 +92,7 @@ void lagrange_solve(lmm_system_t sys) var_list = &(sys->variable_set); i=0; xbt_swag_foreach(var1, var_list) { - if((var1->bound > 0.0) || (var1->weight <= 0.0)){ + if((var1->bound < 0.0) || (var1->weight <= 0.0)){ DEBUG1("#### NOTE var1(%d) is a boundless variable", i); var1->mu = -1.0; } else{ @@ -126,6 +125,7 @@ void lagrange_solve(lmm_system_t sys) */ while(overall_error > epsilon_min_error && iteration < max_iterations){ iteration++; + /* d Dual * Compute the value of ----------- (\lambda^k, \mu^k) this portion * d \mu_i^k @@ -134,10 +134,10 @@ void lagrange_solve(lmm_system_t sys) var_list = &(sys->variable_set); xbt_swag_foreach(var1, var_list) { mu_partial = 0; - if((var1->bound > 0) || (var1->weight <=0) ){ + if((var1->bound >= 0) && (var1->weight > 0) ){ //for each link with capacity cnsts[i] that uses flow of variable var1 do for(i=0; icnsts_number; i++) - mu_partial += (var1->cnsts[i].constraint)->lambda; + mu_partial += (var1->cnsts[i].constraint)->lambda + var1->mu; mu_partial = -1.0 / mu_partial + var1->bound; var1->new_mu = var1->mu - sigma_step * mu_partial; -- 2.20.1