Abstract
When working with evolutionary algorithms, a balance between exploration and
exploitation has to be maintained. The main driver of exploration is the reproduction
operation, which is dependent on population diversity to enable effective exploration.
The lack of population diversity can thus become a problem if exploration
is required during the later stages of the algorithm. One example where this
is relevant is when working with dynamic environments. If a change occurs in the
environment, the algorithm might require some exploration to adapt to the change.
This research aims to demonstrate that if an algorithm is able to maintain population
diversity during the latter of its execution, it will be able to adapt to changes more
effectively. This research produced a set of novel algorithms to explore different
methods of maintaining population diversity. The first group of developed algorithms
draws inspiration from gene methylation by adding non-coding genes to the
chromosome. The non-coding genes can then act as a reservoir of genetic diversity
after the algorithm converges and the diversity in the expressed genes diminishes.
The second algorithm implemented parapatric speciation in an evolutionary algorithm.
The algorithm attempts to divide the population into separate species, which
then populate different areas of the search space. Testing of the developed algorithm
showed that it is possible to maintain more diversity in the latter generations of the
algorithm. The developed algorithms were also able to adapt more effectively to
change in the environment, indicating that the algorithms were able to use the increased
diversity when required. Finally, the research showed that the maintaining
of diversity is not the only option for allowing exploration in the latter stages of an
algorithm. Algorithms that are less effective at maintaining diversity, but are able to
rapidly produce diversity when required are also able to shift focus to exploration
when adapting to change in the environment.