.. _method-moga-niching_type-distance:

""""""""
distance
""""""""


Enforce minimum Euclidean distance between designs


.. toctree::
   :hidden:
   :maxdepth: 1



**Specification**

- *Alias:* None

- *Arguments:* REALLIST


**Description**


Currently, the only niche pressure operators available are the
``radial`` nicher, the ``distance`` nicher, and the ``max_designs`` nicher.
The ``radial`` niche pressure applicator works by enforcing a minimum
Euclidean distance between designs in the performance space at each
generation.  The algorithm proceeds by starting at the (or one of the)
extreme designs along objective dimension 0 and marching through the
population removing all designs that are too close to the current
design.  One exception to the rule is that the algorithm will never
remove an extreme design which is defined as a design that is maximal
or minimal in all but 1 objective dimension (for a classical 2
objective problem, the extreme designs are those at the tips of the
non-dominated frontier).  The ``distance`` nicher enforces a minimimum
distance in each dimension.

The designs that are removed by the nicher are not discarded.  They
are buffered and re-inserted into the population during the next
pre-selection operation.  This way, the selector is still the only
operator that discards designs and the algorithm will not waste time
"re-filling" gaps created by the nicher.


