docs: private List<DoubleSolution> getNonDominatedSolutions(ExperimentProblem<?> problem) throws FileNotFoundException {
      NonDominatedSolutionListArchive<DoubleSolution> nonDominatedSolutionArchive =
          new NonDominatedSolutionListArchive<DoubleSolution>() ;
  
      for (ExperimentAlgorithm<?,?> algorithm : experiment.getAlgorithmList()
                                                          .stream()
                                                          .filter(s->s.getProblemTag().equals(problem.getTag()))
                                                          .collect(Collectors.toCollection(ArrayList::new))) {
        String problemDirectory = experiment.getExperimentBaseDirectory() + "/data/" +
            algorithm.getAlgorithmTag() + "/" + problem.getTag() ;
  
        String frontFileName = problemDirectory + "/" + experiment.getOutputParetoFrontFileName() +
            algorithm.getRunId() + ".tsv";
        String paretoSetFileName = problemDirectory + "/" + experiment.getOutputParetoSetFileName() +
            algorithm.getRunId() + ".tsv";
        Front frontWithObjectiveValues = new ArrayFront(frontFileName) ;
        Front frontWithVariableValues = new ArrayFront(paretoSetFileName) ;
        List<DoubleSolution> solutionList =
            createSolutionListFrontFiles(algorithm.getAlgorithmTag(), frontWithVariableValues, frontWithObjectiveValues) ;
        for (DoubleSolution solution : solutionList) {
          nonDominatedSolutionArchive.add(solution) ;
        }
      }
  
      return nonDominatedSolutionArchive.getSolutionList() ;
    }