Geeks With Blogs
The Right Tempo A blog by Felipe M. G. Ceotto

Emergent behavior. :) That's a behavior that emerges from something, thus creating the so called emergence. Obvious, right? :) Hehehe... Just kidding.

Emergent behavior is a complex behavior or pattern formation that appears from a set of very simple rules. Example: birds flying in the sky in a V formation. Usually, people think there is a leader or something like that, but there isn't. The birds are actually following a very small set of simple rules, like "fly nearby another bird", "don't get too near another bird" and "try to stay where you'll feel less resistance from the air". If you "program" birds with that set of instructions and put some quantity of them flying together, after a while they will form a V, and that V is a pattern formation that came from a much simpler set of rules, that is, it's an emergent behavior. Just out of curiosity: because of that set of rules, the bird in front of all the others will, at some point, leave that position, since he is not obeying the third rule, and that will create a rotation among the birds and their positions.

Emergent behaviors happen all the time in Nature, as well as in human society. Colonies of ants and bees work because of their emergent behaviors. The way human cities grow (when unplanned, and sometimes, even when planned) is also an emergent behavior, because people that are making the cities grow, usually don't have a view of the whole city. That's all very interesting, but our point here is focusing in technology, so, what are we gonna do with emergent behaviors?

"The answer is out there, Neo." :) Well, it is! Many computer systems are now using emergent behavior to solve problems. Example? Mr. Danny Hillis created a genetic algorithm to explore and solve one of the most classic abstract problems in computer science: sorting. He created an analogy with many biology concepts like survival of the fittest, the predator-prey dynamic and mutations, and Danny's algorithm created many algorithms to sort numbers, with an efficiency close to the best ingenious sort algorithms that exists today. The record for the classic problem was 60 comparisons, and the best algorithm created by Danny's system came with a solution that made 61 comparisons. The amazing thing is that not even Mr. Hillis understood immediately how the new created sorting algorithm worked!

There are many other examples, and the games industry has been using emergent behaviors a lot. For instance, the game The Sims uses it to create a range of different situations, and so on. That means that if you do exactly the same things twice in that game, it won't necessarily generates the same result. Emergent behavior can create many interesting possibilities for computer systems where the computer can actually learn and create unexpected results.

This kind of behavior is not only being used to create intelligence. It was first used to create animations where the animated elements could behave naturally. Check out this web site about boids. It's a type of behavioral animation, very well done and very well explained. This type of animation was used in films such as Batman Returns, to control the penguins.

I guess that's it. I'll probably be writing some more about emergence, but I hope the above attempt of an explanation makes people understand a little bit more about it. If you have any doubts I will be happy to discuss it! If you have problems posting comments, contact me through e-mail.

Posted on Wednesday, November 16, 2005 8:07 AM Development | Back to top


Comments on this post: Emergence 2

No comments posted yet.
Your comment:
 (will show your gravatar)


Copyright © Felipe Martino Gagno Ceotto | Powered by: GeeksWithBlogs.net