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.


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

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

Emits solutions by adding Gaussian noise to existing archive solutions.

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

Emits solutions that are nudged towards other archive solutions.

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

Base class for emitters.