searchgenetic-algorithmgenetic-programming

Difference between exploration and exploitation in genetic algorithm


In evolutionary algorithms two main abilities maintained which are Exploration and Exploitation.

In Exploration the algorithm searching for new solutions in new regions, while Exploitation means using already exist solutions and make refinement to it so it's fitness will improve.

In my case I am concern about genetic algorithm,and my question is I read many different article and I figured out three different explanation for the exploration and exploitation these views are as follow:

  1. in one article it talks that exploration is done by crossover and exploitation done by mutation

  2. in one article the inverse of first one, exploration by mutation and exploitation by crossover

  3. and in last one which is a paper "On Evolutionary Exploration and Exploitation" (1998) by A. E. Eiben and C.A. Schippers, it says that exploitation is done through selection process, while exploration is done by operator whatever it is crossover or mutation

I see from my little point of view that both crossover and mutation gives us a new solution which was not there in the population which is the random part of the algorithm so it's exploration process ,and when selecting individuals for mating or reproduction I select from already existed solutions and according to it fitness which is the heuristic part so it exploitation.

Which is the correct one? Which step or operator responsible for exploration and which responsible of exploitation?

Please I need reasoning logical answer for that.


Solution

  • Number 3 appears to be the correct explanation.

    Crossover and mutation are both methods of exploring the problem space. Selection is used to exploit the 'good' genetic material in the current set.

    However I think you are suggesting that these are two separate and diverse concepts when they are not. They are both methods of traversing the problem space, both are almost always used in conjunction. An algorithm should explore the problem space through crossover and mutation but it should do so by preferencing solutions near to other good solutions.

    The trick is always in finding the right balance. Go too far into exploitation and you will get stuck in local maxima, go too far to exploration and you will waste time on solutions that are less likely to be good and ignore the information you have already gathered.