Program: 64468
Project: 64468
Buggy source:
/** 
 * The algorithm list is composed of pairs   {@link Algorithm} + {@link Problem} which form part ofa  {@link ExperimentAlgorithm}, which is a decorator for class   {@link Algorithm}.
 */
static List<ExperimentAlgorithm<BinarySolution,List<BinarySolution>>> configureAlgorithmList(List<ExperimentProblem<BinarySolution>> problemList){
  List<ExperimentAlgorithm<BinarySolution,List<BinarySolution>>> algorithms=new ArrayList<>();
  for (int i=0; i < problemList.size(); i++) {
    Algorithm<List<BinarySolution>> algorithm=new NSGAIIBuilder<BinarySolution>(problemList.get(i).getProblem(),new SinglePointCrossover(1.0),new BitFlipMutation(1.0 / ((BinaryProblem)problemList.get(i).getProblem()).getNumberOfBits(0))).setMaxEvaluations(25000).setPopulationSize(100).build();
    algorithms.add(new ExperimentAlgorithm<>(algorithm,problemList.get(i).getTag()));
  }
  for (int i=0; i < problemList.size(); i++) {
    Algorithm<List<BinarySolution>> algorithm=new SPEA2Builder<BinarySolution>(problemList.get(i).getProblem(),new SinglePointCrossover(1.0),new BitFlipMutation(1.0 / ((BinaryProblem)problemList.get(i).getProblem()).getNumberOfBits(0))).setMaxIterations(250).setPopulationSize(100).build();
    algorithms.add(new ExperimentAlgorithm<>(algorithm,problemList.get(i).getTag()));
  }
  for (int i=0; i < problemList.size(); i++) {
    Algorithm<List<BinarySolution>> algorithm=new MOCellBuilder<BinarySolution>(problemList.get(i).getProblem(),new SinglePointCrossover(1.0),new BitFlipMutation(1.0 / ((BinaryProblem)problemList.get(i).getProblem()).getNumberOfBits(0))).setMaxEvaluations(25000).setPopulationSize(100).build();
    algorithms.add(new ExperimentAlgorithm<>(algorithm,problemList.get(i).getTag()));
  }
  for (int i=0; i < problemList.size(); i++) {
    CrossoverOperator<BinarySolution> crossoverOperator;
    MutationOperator<BinarySolution> mutationOperator;
    SelectionOperator<List<BinarySolution>,BinarySolution> parentsSelection;
    SelectionOperator<List<BinarySolution>,List<BinarySolution>> newGenerationSelection;
    crossoverOperator=new HUXCrossover(1.0);
    parentsSelection=new RandomSelection<BinarySolution>();
    newGenerationSelection=new RankingAndCrowdingSelection<BinarySolution>(100);
    mutationOperator=new BitFlipMutation(0.35);
    Algorithm<List<BinarySolution>> algorithm=new MOCHCBuilder((BinaryProblem)problemList.get(i).getProblem()).setInitialConvergenceCount(0.25).setConvergenceValue(3).setPreservedPopulation(0.05).setPopulationSize(100).setMaxEvaluations(25000).setCrossover(crossoverOperator).setNewGenerationSelection(newGenerationSelection).setCataclysmicMutation(mutationOperator).setParentSelection(parentsSelection).setEvaluator(new SequentialSolutionListEvaluator<BinarySolution>()).build();
    algorithms.add(new ExperimentAlgorithm<>(algorithm,problemList.get(i).getTag()));
  }
  return algorithms;
}

Fixed version (ground truth):
/** 
 * The algorithm list is composed of pairs   {@link Algorithm} + {@link Problem} which form part ofa  {@link ExperimentAlgorithm}, which is a decorator for class   {@link Algorithm}.
 */
static List<ExperimentAlgorithm<BinarySolution,List<BinarySolution>>> configureAlgorithmList(List<ExperimentProblem<BinarySolution>> problemList){
  List<ExperimentAlgorithm<BinarySolution,List<BinarySolution>>> algorithms=new ArrayList<>();
  for (int run=0; run < INDEPENDENT_RUNS; run++) {
    for (int i=0; i < problemList.size(); i++) {
      Algorithm<List<BinarySolution>> algorithm=new NSGAIIBuilder<BinarySolution>(problemList.get(i).getProblem(),new SinglePointCrossover(1.0),new BitFlipMutation(1.0 / ((BinaryProblem)problemList.get(i).getProblem()).getNumberOfBits(0))).setMaxEvaluations(25000).setPopulationSize(100).build();
      algorithms.add(new ExperimentAlgorithm<>(algorithm,problemList.get(i).getTag(),run));
    }
    for (int i=0; i < problemList.size(); i++) {
      Algorithm<List<BinarySolution>> algorithm=new SPEA2Builder<BinarySolution>(problemList.get(i).getProblem(),new SinglePointCrossover(1.0),new BitFlipMutation(1.0 / ((BinaryProblem)problemList.get(i).getProblem()).getNumberOfBits(0))).setMaxIterations(250).setPopulationSize(100).build();
      algorithms.add(new ExperimentAlgorithm<>(algorithm,problemList.get(i).getTag(),run));
    }
    for (int i=0; i < problemList.size(); i++) {
      Algorithm<List<BinarySolution>> algorithm=new MOCellBuilder<BinarySolution>(problemList.get(i).getProblem(),new SinglePointCrossover(1.0),new BitFlipMutation(1.0 / ((BinaryProblem)problemList.get(i).getProblem()).getNumberOfBits(0))).setMaxEvaluations(25000).setPopulationSize(100).build();
      algorithms.add(new ExperimentAlgorithm<>(algorithm,problemList.get(i).getTag(),run));
    }
    for (int i=0; i < problemList.size(); i++) {
      CrossoverOperator<BinarySolution> crossoverOperator;
      MutationOperator<BinarySolution> mutationOperator;
      SelectionOperator<List<BinarySolution>,BinarySolution> parentsSelection;
      SelectionOperator<List<BinarySolution>,List<BinarySolution>> newGenerationSelection;
      crossoverOperator=new HUXCrossover(1.0);
      parentsSelection=new RandomSelection<BinarySolution>();
      newGenerationSelection=new RankingAndCrowdingSelection<BinarySolution>(100);
      mutationOperator=new BitFlipMutation(0.35);
      Algorithm<List<BinarySolution>> algorithm=new MOCHCBuilder((BinaryProblem)problemList.get(i).getProblem()).setInitialConvergenceCount(0.25).setConvergenceValue(3).setPreservedPopulation(0.05).setPopulationSize(100).setMaxEvaluations(25000).setCrossover(crossoverOperator).setNewGenerationSelection(newGenerationSelection).setCataclysmicMutation(mutationOperator).setParentSelection(parentsSelection).setEvaluator(new SequentialSolutionListEvaluator<BinarySolution>()).build();
      algorithms.add(new ExperimentAlgorithm<>(algorithm,problemList.get(i).getTag(),run));
    }
  }
  return algorithms;
}