.. _method-moga-replacement_type:

""""""""""""""""
replacement_type
""""""""""""""""


Select a replacement type for JEGA methods


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

   method-moga-replacement_type-elitist
   method-moga-replacement_type-roulette_wheel
   method-moga-replacement_type-unique_roulette_wheel
   method-moga-replacement_type-below_limit


**Specification**

- *Alias:* None

- *Arguments:* None

- *Default:* below_limit


**Child Keywords:**

+-------------------------+--------------------+---------------------------+-----------------------------------------------+
| Required/Optional       | Description of     | Dakota Keyword            | Dakota Keyword Description                    |
|                         | Group              |                           |                                               |
+=========================+====================+===========================+===============================================+
| Required (Choose One)   | Replacement Type   | `elitist`__               | Use the best designs to form a new population |
|                         |                    +---------------------------+-----------------------------------------------+
|                         |                    | `roulette_wheel`__        | Replace population                            |
|                         |                    +---------------------------+-----------------------------------------------+
|                         |                    | `unique_roulette_wheel`__ | Replace population                            |
|                         |                    +---------------------------+-----------------------------------------------+
|                         |                    | `below_limit`__           | Limit number of designs dominating those kept |
+-------------------------+--------------------+---------------------------+-----------------------------------------------+

.. __: method-moga-replacement_type-elitist.html
__ method-moga-replacement_type-roulette_wheel.html
__ method-moga-replacement_type-unique_roulette_wheel.html
__ method-moga-replacement_type-below_limit.html



**Description**


Replace the population with members selected to continue in the next
generation. The pool of potential members is the current population
and the current set of offspring. The ``replacement_type`` of
``roulette_wheel`` or ``unique_roulette_wheel`` may be used either with MOGA
or SOGA problems however they are not recommended for use with
MOGA. Given that the only two fitness assessors for MOGA are the
``layer_rank`` and ``domination_count``, the recommended selector is the
``below_limit`` selector. The ``below_limit`` replacement will only keep
designs that are dominated by fewer than a limiting number of other
designs.

In ``roulette_wheel`` replacement, each design is
conceptually allotted a portion of a wheel proportional to its fitness
relative to the fitnesses of the other Designs. Then,
portions of the wheel are chosen at random and the design occupying
those portions are duplicated into the next population. Those Designs
allotted larger portions of the wheel are more likely to be selected
(potentially many times). ``unique_roulette_wheel`` replacement is the
same as ``roulette_wheel`` replacement, with the exception that a design
may only be selected once. The ``below_limit`` selector attempts to keep
all designs for which the negated fitness is below a certain limit. The
values are negated to keep with the convention that higher fitness is better.
The inputs to the ``below_limit`` selector are the limit as a real value, and
a ``shrinkage_percentage`` as a real value. The ``shrinkage_percentage``
defines the minimum amount of selections that will take place if
enough designs are available. It is interpreted as a percentage of
the population size that must go on to the subsequent generation. To
enforce this, ``below_limit`` makes all the selections it would
make anyway and if that is not enough, it takes the remaining that it needs
from the best of what is left (effectively raising its limit as far as it must
to get the minimum number of selections). It continues until it has made
enough selections. The ``shrinkage_percentage`` is designed to prevent extreme
decreases in the population size at any given generation, and thus
prevent a big loss of genetic diversity in a very short time. Without
a shrinkage limit, a small group of "super" designs may appear and
quickly cull the population down to a size on the order of
the limiting value. In this case, all the diversity of the population
is lost and it is expensive to re-diversify and spread the population. The

The ``replacement_type`` for a SOGA may be ``roulette_wheel``,
``unique_roulette_wheel``, ``elitist``, or ``favor_feasible``. The
``elitist`` selector simply chooses the required number of designs taking
the most fit. For example, if 100 selections are requested, then the
top 100 designs as ranked by fitness will be selected and the
remaining will be discarded. The ``favor_feasible`` replacement type
first considers feasibility as a selection criteria. If that does not
produce a "winner" then it moves on to considering fitness
value. Because of this, any fitness assessor used with the
``favor_feasible`` selector must only account objectives in the creation
of fitness. Therefore, there is such a fitness assessor and it's use
is enforced when the ``favor_feasible`` selector is chosen. In that
case, and if the output level is set high enough, a message will be
presented indicating that the ``weighted_sum_only`` fitness assessor
will be used.


