anchor.diff:    }
   
   //  map.forEach((g, s) => print("score du group ${g.id} => $s"));
  +  
  +  groups.forEach((g) => map.putIfAbsent(g, () => 0));
     return map;
   }
   
  
positive.code: }
  
  Map<Group, int> scoreLow(
      List<Installation> optim, DataCenter datacenter) {
    Map<Group, int> map = new Map();
    for (int i = 0; i < datacenter.rows; i++) {
      final newOptim = optim.where((f) => f.row != i).toList();
  
negative.code:   showMe(machines, optim);
  
    scoreUp(optim, dataCenter);
    scoreLow(optim, dataCenter, new Iterable.generate(info.groups).map((i) => new Group(i)).toList());
  
    final finalScore = score(optim, dataCenter, new Iterable.generate(info.groups).map((i) => new Group(i)).toList());
    print("Score $finalScore");
  }
  
  int score(List<Installation> optim, DataCenter dataCenter, List<Group> groups) {
    Map<Group, int> scores = scoreLow(optim, dataCenter, groups);
    return scores.values.fold(20000000, (o, s) => min(o, s));
  }
  
  