Consider a genetic algorithm that uses only selection and mutation(no crossover). How is this similar to a hill climbing algorithm ?
I found this statement in an article, but I dont seem to understand why?
Consider a genetic algorithm that uses only selection and mutation(no crossover). How is this similar to a hill climbing algorithm ?
I found this statement in an article, but I dont seem to understand why?
This statement is risky and it is hard to see. I believe that many would not necessairly (or fully) agree with it.
I believe that the author of this statement wants to say that it is possible to use only mutation and selection to achieve hill-climbing algorithm.
Imagine that each mutation of your Chromosome (X) can improve or deteriorate value of your fitness function (Y) (imagine it is height). We want to find X for which Y is the biggest.
Because at every stage you are rejecting poor values - you will be able to get (nearly) maximum value of Y.
I think this is what the author was trying to say.
When mutations affect Chromosomes to a great extent - the algorithm will not converge easily to the maximum. This is when too many genes in a chromosome are affected at each mutation;
When chromosome after mutation does not resemble its original set of genes - you are only introducing noise. In the effect it is a bit like using random generator for (X) to find maxmimum (Y). Every time you mutate (X) you are getting something that has nothing to do with its original. You may find maximum value, but it has little to do with hill climbing.
Both hill climbing and genetic algorithms without crossover are local search techniques. In that sense, they are similar, but I would not say they are the same.
Hill climbing comes in different forms but all share some properties that the genetic algorithm does not have:
In practice, choosing a good neighbor function can have a huge impact on the effectiveness of a hill climbing algorithm. Here, you can sometimes use additional domain knowledge.
In genetic algorithms, as far as I have seen, domain knowledge is not used for mutators. Mostly, they use simple techniques like flipping bits or adding random noise to numbers.
Hill climbing can work well as a deterministic algorithm without any randomness. Depending on your problem, that may be a critical property or not. If not, then random-restart hill climbing will often lead to better results.
In summary, if you use a genetic algorithm without crossovers, you end up with a rather bad local search algorithm. I would expect a good hill climbing algorithm to outperform it, especially in a scenario where you are under strict time contraints (real-time systems).