views:

883

answers:

5

I was wondering how common it is to find genetic algorithm approaches in commercial code.

It always seemed to me that some kinds of schedulers could benefit from a GA engine, as a supplement to the main algorithm.

+2  A: 

I haven't but I've heard of this company (can't remember their name) which uses mutating, genetic algos to calculate placements and lengths of antennas (or something) from a friend of mine. And they're supposed to (according to my friend) have huge success with this. I guess GA is just too complex for "average Joe developer" to become mainstream. Kinf of like Map Reduce - spectacularly cool, but WAY too advanced to hit the "mainstream"...

Thomas Hansen
http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/8/27408/01219605.pdf?arnumber=1219605
e.James
I dont think it is too complex. The bigger problem is that it is a non-deterministic algorithm and therefor you often cant guarantee a certain quality of the results and so the people prefer other heuristics (where they can).
flolo
+4  A: 

If you want to find an example, look at Postgres's Query Planner. It uses many techniques, and one just so happens to be genetic.

http://developer.postgresql.org/pgdocs/postgres/geqo-pg-intro.html

Kent Fredric
A: 

I used GA in my Master's thesis, but after that I haven't found anything in my daily work a GA could solve that I couldn't solve faster with some other Algorithm.

Robert Gould
+8  A: 

Genetic Algorithms have been widely used commercially. Optimizing train routing was an early application. More recently fighter planes have used GAs to optimize wing designs. I have used GAs extensively at work to generate solutions to problems that have an extremely large search space.

Many problems are unlikely to benefit from GAs. I disagree with Thomas that they are too hard to understand. A GA is actually very simple. We found that there is a huge amount of knowledge to be gained from optimizing the GA to a particular problem that might be difficult and as always managing large amounts of parallel computation continue to be a problem for many programmers.

A problem that would benefit from a GA is going to have the following characteristics:

  • A good way to encode potential solutions
  • A way to compute an a numerical score to evaluate the quality of the solution
  • A large multi-dimensional search space where the answer is non-obvious
  • A good solution is good enough and a perfect solution is not required

There are many problems that could probably benefit from GAs and in the future they will probably be more widely deployed. I believe that GAs are used in cutting edge engineering more than people think however most people (like my company does) guards those secrets extremely closely. It is only long after the fact that it is revealed that GAs were used.

Most people that deal with "normal" applications probably don't have much use for them though.

Steve
+1 but I think genetic algorithms are only simple for people who "get" the basic principle of evolution/natural selection. I've never been able to successfully explain GA to people who deny evolution (a large bunch, unfortunately).
MusiGenesis
+1  A: 

I don't think it is particularly common to find genetic algorithms in everyday-commercial code. They are more commonly found in academic/research code where the need to find the "best algorithm" is less important than the need to just find a good solution to a problem.

Nonetheless, I have consulted on a couple of commercial projects that do use GAs (chiefly as a result of my involvement with GAUL). I think the most interesting example was at a Biotech company. They used the GA to optimise scoring functions that were used for virtual screening, as part of their drug discovery application.

Earlier this year, with my current company, I added a new feature to one of our products that uses another GA. I think we might be marketing this from next month. Basically, the GA is used to explore molecules that have the potential for binding to a protein, and could therefore be further investigated as drugs targeting that protein. A competing product that also uses a GA is EA inventor.

Stewart