docs: public static void main(String[] args) throws Exception {
      BinaryProblem problem;
      Algorithm<BinarySolution> algorithm;
      CrossoverOperator<BinarySolution> crossover;
      MutationOperator<BinarySolution> mutation;
      SelectionOperator<List<BinarySolution>, BinarySolution> selection;
  
      problem = new OneMax(1024) ;
  
      crossover = new SinglePointCrossover(0.9) ;
  
      double mutationProbability = 1.0 / problem.getNumberOfBits(0) ;
      mutation = new BitFlipMutation(mutationProbability) ;
  
      selection = new BinaryTournamentSelection<BinarySolution>();
  
      algorithm = new GeneticAlgorithmBuilder<>(problem, crossover, mutation)
          .setPopulationSize(50)
          .setMaxEvaluations(25000)
          .setSelectionOperator(selection)
          .setVariant(GeneticAlgorithmBuilder.GeneticAlgorithmVariant.STEADY_STATE)
          .build() ;
  
      AlgorithmRunner algorithmRunner = new AlgorithmRunner.Executor(algorithm)
          .execute() ;
  
      long computingTime = algorithmRunner.getComputingTime() ;
  
      BinarySolution solution = algorithm.getResult() ;
      List<BinarySolution> population = new ArrayList<>(1) ;
      population.add(solution) ;
  
      new SolutionListOutput(population)
              .setSeparator("\t")
              .setVarFileOutputContext(new DefaultFileOutputContext("VAR.tsv"))
              .setFunFileOutputContext(new DefaultFileOutputContext("FUN.tsv"))
              .print();
  
      JMetalLogger.logger.info("Total execution time: " + computingTime + "ms");
      JMetalLogger.logger.info("Objectives values have been written to file FUN.tsv");
      JMetalLogger.logger.info("Variables values have been written to file VAR.tsv");
  
      JMetalLogger.logger.info("Fitness: " + solution.getObjective(0)) ;
      JMetalLogger.logger.info("Solution: " + solution.getVariableValueString(0)) ;
    }