
"The Most Complex Piece of Engineering Known to Man" - jsomers
http://groups.google.com/group/fa.linux.kernel/msg/52f04d4ab1121c9b
======
marcus
Thats why I have always loved genetic algorithms.

They are creating some patent worthy inventions using them now. Check John
Koza's work.

[http://www.popsci.com/popsci/science/0e13af26862ba010vgnvcm1...](http://www.popsci.com/popsci/science/0e13af26862ba010vgnvcm1000004eecbccdrcrd/2.html)

~~~
pixcavator
Genetic algorithms are fun but let's not overhype them. They solve
optimization problems by following an iteration procedure. And we all know
that iteration commonly produces a _local_ maximum.

~~~
sadiq
Are you sure you're not getting GAs mixed up with gradient descent? The whole
point of a GA is that they're a global search. Mutation and crossover (with
certain conditions) generally mean you don't get stuck in local maxima.

Of course, there are conditions on that. The quality of your RNG, the
probabilities of mutation/crossover, etc..

~~~
pixcavator
Marcus replied to that <http://news.ycombinator.com/item?id=90115>.

~~~
sadiq
Exactly. He's describing gradient descent (and possibly simulated annealing),
not a genetic algorithm.

Mutation, especially burst mutation with population stagnation, is what stops
you getting stuck in local maxima.

~~~
pixcavator
It does not matter _how_ it is done, it is still an iteration. You may have
several iterations going on but at best you can expect to find several local
maxima - at any given time. Further, if there is no "stagnation", how do you
know that you've found a solution?

~~~
sadiq
Stagnation is the case where the best individuals in the populations fitness
hasn't increased by some value for a certain period of time.

I'm not sure I understand what you mean by 'a solution'? You know you've not
arrived at an acceptable solution when your fitness is below your required
level.

Granted, you never know there is a configuration with a fitness greater than
your required fitness but this is generally considered when constructing the
fitness function.

~~~
pixcavator
I understand that when a certain level of fitness is reached the procedure
stops. But, it may stop too early - missing the global max. And second, it may
never stop!

~~~
sadiq
True.

I've seen some interesting work on the latter case that produces upper and
lower bounds for time to an acceptable solution but so far it seems to be
limited in it's application to real world tasks.

Missing the global max less of an issue, an acceptable level of fitness is
generally all that's required for most applications. Though I guess there are
several tasks for which a global max would be useful.

------
mynameishere
It's not a good comparison. In the very, very long-term, the "fit" inventions
do tend to win out, but that says nothing about the processes by which they
were built. That is, unless you get really loose with the definition. If I'm
designing a bridge, and I come up with 10 blueprints, and select the best
one...that's not really an evolutionary process, and neither would it be if 10
different engineers came up with a blueprint. If we build 10 bridges and wait
for nine to collapse, well, that would be an evolutionary engineering process.
(Again, over centuries and centuries, that very thing occurs.)

A better analogy would be comparing the marketplace with a harsh environment.
There, Linux survives for a mundane reason--just like mammals needed less heat
from the atmosphere, linux needs less money from its customers. So, it may win
out in the end.

~~~
some
Its not a comparison at all.

Linus replied to someone who said Linux coding style is not improving because
no one sets the rules. Linus said that it is improving via evolution. Style
liked by many will be taken over by others, style liked by few will fade out.

Not a comparison. Just a fact.

------
jey
Orgel's Second Rule: "Evolution is cleverer than you are."

But that's just because humans are pretty stupid in the grand scheme of
things.

------
cellis
Cue Matrix

------
downer
Yeah, but making a new "most complex piece of engineering" is fire-and-forget
(at least if you move out of state and change your name).

    
    
     >apt-get install human-2.0
      Building dependency tree
      Reading state information... Done
    
      After delivery $2.5 million will be used.
      Do you want to continue [Y/n]? n
      Abort.

