Emitters generate new candidate solutions in QD algorithms.

More formally, emitters are algorithms that generate solutions and adapt to objective, measure, and archive insertion feedback.

The emitters in this module follow a one-layer hierarchy, with all emitters inheriting from EmitterBase.


Emitters provided here take on the data type of the archive passed to their constructor. For instance, if an archive has dtype np.float64, then an emitter created with that archive will emit solutions with dtype np.float64.


Adapts a distribution of solutions with an ES.

ribs.emitters.GaussianEmitter(archive, *, sigma)

Emits solutions by adding Gaussian noise to existing archive solutions.

ribs.emitters.GeneticAlgorithmEmitter(archive, *)

Emits solutions by using operator provided.


Generates solutions with a gradient arborescence, with coefficients parameterized by an evolution strategy.

ribs.emitters.GradientOperatorEmitter(...[, ...])

Generates solutions by first applying a genetic operator, then applying a gradient arborescence with coefficients parameterized by a fixed Gaussian.

ribs.emitters.IsoLineEmitter(archive, *[, ...])

Emits solutions that are nudged towards other archive solutions.

ribs.emitters.EmitterBase(archive, *, ...)

Base class for emitters.