let update_groups_size glist =
let gsl = List.map (fun t ->
let num = List.fold_left (fun x y -> if ((y.group)=t)
then (x+1) else x) 0 glist in
(t,num)) !num_groups in
List.iter (fun gnum -> update_group_size gnum (List.assoc gnum gsl))
!num_groups