« October 2004 | Main | December 2004 »

November 14, 2004

The Subsumption Architecture

I try and keep up on a number of different weblogs; by and large, I pay the most attention to weblogs of people I know. By that metric, I find weblogs by CSCS members and people in and around UKC more interesting/important than random blogs found on the 'net.

Jonathan posted some thoughts regarding the modeling of cockroaches in LEGO. In particular, part of his post relates to something Brad brought up in our discussion:

Brad raised a very interesting point in CSCS that destroyed a lot of my theory when discussing how to model the cockroach. He brought to the table the idea of what I’ll call (for want of a real term) a ‘hierarchy of procedures’ that determine the behavior of the overall entity.

Brad is referring to the subsumption architecture put forward by Rodney Brooks. There are a number of resources available on the net regarding this work, as it has done a great deal to shape how we think about modeling the behavior of things in the real world. From some pages at the University of Michigan, I found a good, one-sentence summary of the subsumption architecture; I've only edited it slightly

All design decisions are made with the goal of producing observable behavior in the real world.

I think this might be more important than the notion of a hierarchy; Brad is certainly right in that a subsumption architecture (literally meaning "to subsume") is hierarchical, the more important fact when we're engaging in this modeling is that we only work to produce observable behaviors--and we do that in the most simple way possible.

So, in this respect, we certainly might have a "wander around" behavior.


wander-around.png

However, is this the simplest behavior? And should other behaviors "subsume" (override) it, or should it "subsume" (override) others?

From this page, I've pulled a nice paragraph that sums up what Brad was saying quite nicely:

The subsumption architecture originally developed by Brooks in 1986 provided a method for structuring reactive systems from the bottom up using layered sets of rules. (Brooks 1986) Bottom-layer behaviors such as avoid-collision should be the most basic and should have the highest priority. Top-layer behaviors such as "go to goal" encapsulate high-level-intention and may be built from lower behaviors or may function only when lower behaviors such as "avoid collision" are satisfied. To reduce complexity, there should be minimal interaction between behaviors. The idea is that each should function simultaneously but asynchronously with no dependence on the others. This independence should reduce interference between behaviors and prevent overcomplexity.

So, really, we should make the simplest thing some kind of behavior that registers bumping into things.

avoid-objects.png

This is probably the most basic thing we can imagine. So, the first thing we would do when trying to design our cockroach is to build something that, when it bumps into things, it (perhaps) backs up and tries another direction. This is because any cockroach that can't handle this simple behavior is going to die very quickly the first time it wanders into a corner.

There's more to consider, but this is a simple, two or three process occam program that I think is within the reach of the CSCSers at this point. We'll give it a go over the next two weeks and see where we end up. It's always an experiment--we'll see what we learn.

If you want to discover more about Rodney Brooks and the subsumption architecture, you might start with his homepage, or search the web for terms like "subsumption architecture," "braitenburg vehicles," and so on.

The internal memo in the MIT Artificial Intelligence Labs that started it all is hereacrobat, for those who are interested. It's an interesting, and in some ways historical, read.

Posted by mjadud at 02:29 PM | Comments (0)

November 09, 2004

Integrating technologies

I've now tied the weblog into the mailing list.

What does this mean? It means that whenever the weblog is updated, a note will go to the mailing list. Why does that matter? Well, I'm going to go through and create accounts and passwords for everyone in CSCS---everyone will have permissions to write to the weblog. This moves it from being an infrequently updated cite that only I and a few others can add to into a site that lots of people can add to... but it will possibly still be infrequent.

Anyway. This post is just to let you know that things are connected up.

Posted by mjadud at 02:28 PM | Comments (0)