Designing environments to select designs

In the last few posts we reasoned that “growing cars” would mean somehow creating them without a human planning out all the details of the design. We then saw that any such “automated” design process will involve a feedback loop where some computation determines whether a candidate design is “good” or “bad.” If we try specifying this computation “by hand,” it may be quite challenging to remember about all the design criteria we care about. This is actually one of the key worries in AI-risks research: that one such design criterion we might forget to specify is “don’t kill all humans while you’re designing a better toaster.”

In contrast, this illustrates why natural selection in biology is so cool — instead of comparing a design against a long list of performance metrics, we simply throw it into its target environment and see how well performs. Here by “how well” we usually mean something like “how robustly is its genetic code propagated.” In this same sense, we might try to use stability or robustness in the face of environmental mayhem as a “natural selection” principle for designing artificial things (hehe, the irony). The key with such approach is to construct such an environment, where the only way to be stable is to exhibit the behaviors and performances that we want from our design. To give a biological metaphor, if we want to find an animal that performs well at cold temperatures, we look for it in environments that are cold. If we could wait a bit, we might even design the appropriate target environment, and wait for animals to evolve to survive there. The cool thing then is that the design that this “natural selection” will pick out may be unlike anything we could have ourselves planned for, and yet will achieve the performance goals our environment set for it.

This might seem somewhat sci-fi, but actually it roughly describes what our recent paper in Science magazine is about! [also check out some videos] In it, we used the above idea to get a swarm of simple robots to achieve collective behaviors we wanted. Designing a specific behavior for a swarm using traditional methods is notoriously hard (e.g., it will often fail if any one of the robots is slightly off for any reason). Here we used precisely such a “natural selection” perspective described above (which we termed the “low-rattling selection principle”) to get the swarm to spontaneously organize into a collective pattern, which was then extremely robust.

The robots we played with in our paper

Anyway, this is pretty exciting for a ton of reasons that I might talk about in some later post. For now you can check out the podcast where I go a bit more into this, or the less technical press-release article.

P.S.: Check out this really neat near-example of what I’m talking about: living-root bridges that indigenous people build in India. You can think of the scaffolding as an environment that selects for the desired root shape. =)

No comments.