miesmuschel offers both an Optimizer and a Tuner for general MIES-optimization, as well as all the building blocks for building a custom optimization algorithm that is more flexible and can be used for research into novel evolution strategies.

The call-graph of the default algorithm in OptimizerMies / TunerMies is as follows, and is shown here as an overview over the mies_* functions, and how they are usually connected. (Note that only the exported mies_* functions are shown.) See the help information of these functions for more info.

OptimizerMies$.optimize(inst)
|- mies_prime_operators()  # prime operators on instance's search_space
|- mies_init_population()  # sample and evaluate first generation
|  `- mies_evaluate_offspring()  # evaluate sampled individuals
|     `- inst$eval_batch()  # The OptimInst's evaluation method
`- repeat # Repeat the following until terminated
   |- mies_step_fidelity()  # Evaluate individuals with changing fidelity
   |  `- inst$eval_batch()  # The OptimInst's evaluation method
   |- mies_generate_offspring()  # Sample parents, recombine, mutate
   |  `- mies_select_from_archive()  # Use 'Selector' on 'Archive'
   |     `- mies_get_fitnesses()  # Get objective values as fitness matrix
   |- mies_evaluate_offspring()  # evaluate sampled individuals
   |  `- inst$eval_batch()  # The OptimInst's evaluation method
   `- mies_survival_plus() / mies_survival_comma()  # survival
      `- mies_select_from_archive()  # Use 'Selector' on 'Archive'

Author

Maintainer: Martin Binder mlr.developer@mb706.com

Other contributors: