Follow the slope to converge towards the local maxima. This is defined by a function (like a Heuristic Function).
Idea: escape local maxima by allowing some "bad" moves.
But gradually decrease their size and frequency
Idea: keep
Problem: quite often, all
Close analogy to natural selection!
All methods of evolutionary computation simulate natural evolution by creating a population of individuals, evaluating their fitness, generating a new population through genetic operations, and repeating this process a number of times.
A chromosome represents a solution in some way. These could be:
The crossover operator combines the information from two "parents" without changing the data itself.
Mutation represents a change in the gene (unlike a crossover). The role of this is to provide a guarantee that the search algorithm is not trapped on a local optimum. This value is usually kept very low, usually between 0.001 and 0.01.
This decodes a chromosome and assigns it a fitness. This is the only relationship between the GA and the problem it is solving.
Removes a chromosome from the population.
GA represents an iterative process. Each iteration is called a generation. A typical number of generations for a simple GA can range from 50 to over 500. The entire set of generations is called a run.
Because GAs use a stochastic search method, the fitness of a population may remain stable for a
number of generations before a superior chromosome appears.
We will represent each solution as an ordered list of city indicies. This is known as an order-based GA.
These lists can be crossed over, or cities can be switched.
Keep track of changes from parent to child
Determine whether that change was detrimental or supplemental (did the fitness go up or down)
If it was supplemental then duplicate it and cross it with another supplemental chromosome.
If it was detrimental then replace it with the most supplemental chromosome that happened in the last generation.
In other words rather than crossing based on total fitness, cross based on the change in fitness.
The base case for this (since you have to start with some change) would be that sufficiently neutral changes are always mutated.
A mutation would be applied to each supplemental duplicate chromosome and each detrimental chromosome. This mutation would either change a single city to a random other city, or swap two of it's own cities.
So: