← Back to context

Comment by nabla9

8 years ago

It's an example of overspecialization and finding weird local minimum trough loophole in the way the problem is encoded.

Genetic algorithms have the ability to capture the imagination of public and computer science students because they can find very messy and random solutions if you run them long enough.

In the general context of search and optimization algorithms they are not impressive. When you can't use anting better, like Mote Carlo or simulated annealing, evolutionary algorithms are often the last hope before brute forcing it. GA can be very impressive when you can restrict the search space and find good representation for the problem.

I get the advantages of generic algorithms. But sometimes overfitting can be very useful. Imagine wind or water turbines where this method could be used to increase their efficiency based on the individual hardware.

  • Its also likely the solution it found would not work across the operating temperature range of the device. To do it properly would take a lot longer and need a lot more test cases.

Assuming proper instrumentation, GAs provide much better performance vs. brute force in locating software defects. E.g. http://lcamtuf.coredump.cx/afl/

  • Yes they do. I didn't mean to imply that they are useless.

    Evolutionary algorithms and swarm optimization algorithms are the next step above brute force and random search. In the space of optimization algorithms are below everything else.

    Usually they are the last option. Using them to locate software defects means that you have no special insight into software defects but you hope to generate something better than random.