public override List <bool> Fill(List <bool> solution) { solution = brg.Fill(solution); if (_greedyIterations.HasValue) { for (int i = 0; i < _greedyIterations.Value; i++) { solution = ga.Greedy(solution); } } else { List <bool> lastSolution; do { lastSolution = solution; solution = ga.Greedy(lastSolution); } while (solution != lastSolution); } return(solution); }