outputspace_exploration

Provides a genetic algorithm based on novelty search for output space exploration.

The algorithm is inspired by Chérel et al (2015). In short, from Chérel et al, we have taken the idea of the HitBox. Basically, this is an epsilon archive where one keeps track of how many solutions have fallen into each grid cell. Next, tournament selection based on novelty is used as the selective pressure. Novelty is defined as 1/nr. of solutions in same grid cell. This is then combined with auto-adaptive population sizing as used in e-NSGAII. This replaces the use of adaptive Cauchy mutation as used by Chérel et al. There is also an more sophisticated algorithm that adds auto-adaptive operator selection as used in BORG.

The algorithm can be used in combination with the optimization functionality of the workbench. Just pass an OutputSpaceExploration instance as algorithm to optimize.

class ema_workbench.em_framework.outputspace_exploration.AutoAdaptiveOutputSpaceExploration(problem, grid_spec=None, population_size=100, generator=<platypus.operators.RandomGenerator object>, variator=None, **kwargs)

A combination of auto-adaptive operator selection with OutputSpaceExploration.

The parametrization of all operators is based on the default values as used in Borg 1.9.

Parameters:
  • problem (a platypus Problem instance)

  • grid_spec (list of tuples) – with min, max, and epsilon for each outcome of interest

  • population_size (int, optional)

Notes

Limited to RealParameters only.

class ema_workbench.em_framework.outputspace_exploration.OutputSpaceExploration(problem, grid_spec=None, population_size=100, generator=<platypus.operators.RandomGenerator object>, variator=None, **kwargs)

Basic genetic algorithm for output space exploration using novelty search.

Parameters:
  • problem (a platypus Problem instance)

  • grid_spec (list of tuples) – with min, max, and epsilon for each outcome of interest

  • population_size (int, optional)

The algorithm defines novelty using an epsilon-like grid in the output space. Novelty is one divided by the number of seen solutions in a given grid cell. Tournament selection using novelty is used to create offspring. Crossover is done using simulated binary crossover and mutation is done using polynomial mutation.

The epsilon like grid structure for tracking novelty is implemented using an archive, the Hit Box. Per epsilon grid cell, a single solution closes to the centre of the cell is maintained. This makes the algorithm behave virtually identical to ε-NSGAII. The archive is returned as results and epsilon progress is defined.

To deal with a stalled search, adaptive time continuation, identical to ε-NSGAII is used.

Notes

Output space exploration relies on the optimization functionality of the workbench. Therefore, outcomes of kind INFO are ignored. For output space exploration the direction (i.e. minimize or maximize) does not matter.