Evolutionary algorithms require quantitative object functions. The set of problems that have those are pretty small. Lots of design has to do with beauty, which almost by definition isn't easily quantifiable.
Another issue is the complexity of the problem, which might make convergence on even a semi-optimal solution difficult or extremely time consuming to find. Complexity, even of a quantitative problem, makes for difficult objective functions. Different dimensions of optimization require fairly arbitrary weighting.
But the future is still exciting. iRobot is working on a new software architecture for robotics, called Aware2. It will allow EA to permute fairly high level pieces of code and behaviors. The system is still under development, but it has great potential. If you're curious, it is in C++ for component speed with boost.Python for glue & configuration. Similar systems can be made for other complex problems, not just robotics.
"Another issue is the complexity of the problem, which might make convergence on even a semi-optimal solution difficult or extremely time consuming to find."
Huh? Ant colony optimization and other such stuff can do quite a nice job on a variety of classic NP-complete problems.
The set of problems where a quantitative objective function can be introduced is fucking enormous. Do a Google scholar search for "evolutionary computation" and look at all the different engineering/scientific fields it's used it. There are thousands and thousands of papers on this stuff every year.
There's lots of tricks for controlling how individuals evolve - a lot of them so obvious they aren't published. The perpetual challenge is always finding the right balance between convergence speed and premature convergence.
The behavior of ants is certainly amazing. But take a look at behavior based robotics to see how well it scales. You won't find something as capable as, say, a cat. At least not by human design. The system needed to evolve such behaviors through EA would need to be quite complicated. We've seen systems that can do a pretty good job on mobility -- like that flopping starfish from Cornell. But locomotion is exactly the type of problem that has a very precise, quantitative objective function.
But perhaps I was too broad. I should have said orderable, which is really all that matters. You have to know something is better than something else. But you can't just take a euclidean distance in high dimensional objectives. Things just don't work like that. A real-world example: work-life balance. The two parts are just not really comparable, making optimization difficult. That's what I'm talking about.
Also, EA has lots of potential for lots of areas, but you have to compare it to other methods of solving a problem to talk about quality of the approach. Machine Learning offers a host of methods. Here is a great list of them
http://www.cs.cmu.edu/~awm/
Another issue is the complexity of the problem, which might make convergence on even a semi-optimal solution difficult or extremely time consuming to find. Complexity, even of a quantitative problem, makes for difficult objective functions. Different dimensions of optimization require fairly arbitrary weighting.
But the future is still exciting. iRobot is working on a new software architecture for robotics, called Aware2. It will allow EA to permute fairly high level pieces of code and behaviors. The system is still under development, but it has great potential. If you're curious, it is in C++ for component speed with boost.Python for glue & configuration. Similar systems can be made for other complex problems, not just robotics.