# shrinkage_fraction

Decrease the population size by a percentage

**Specification**

*Alias:*shrinkage_percentage*Arguments:*REAL*Default:*0.9

**Description**

As of JEGA v2.0, all replacement types are common to both MOGA and
SOGA. They include the `roulette_wheel`

, `unique_roulette_wheel`

,
`elitist`

, and `below_limit`

selectors. 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 `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.