transcript - New Mexico Computer Science for All

advertisement
Artificial Life
[Title Slide] Today, I want to talk about artificial life, something that I worked on
for a lot of years. It underlies a lot of the research I’ve done more recently. This is
another New Mexico CS For All Video for a class we’re doing on computational
thinking and programming.
All right. [Slide 1] The very idea of artificial life is kind of weird, because we
normally think of life as natural. Nature is full of life. We need to come up with a
definition broad enough so that we can see other kinds of things as being life or
lifelike. In fact, that’s the distinction that we’ll talk about immediately after. The
weak claim is that the systems are merely lifelike. The strong claim is that the
systems are actually life. Whether it actually makes a concrete difference in any
particular system is unclear, but it does make a difference in our expectations.
We’ll take a look at some demos and then try to wrap up as quick as we can. This
is my big area, so I like to talk about it. [Slide 2]
The meaning of life. Not just a movie by Monty Python. Here’s a dictionary
definition: “The state of being which begins with generation, birth, or
germination, ends with death, anything that happens in the middle.” This is a
catchall. It’s not completely satisfying. It’s a description of what happens during
a life, rather than some necessary and sufficient conditions for what it means for
anything to be a life.
Many people have taken cracks [Slide 3] at coming up with such a definition.
Here’s two: “a self-sustaining chemical system capable of undergoing Darwinian
evolution”; “a self-organized non-equilibrium system such that its processes are
governed by a program stored symbolically and can reproduce itself.” [00:02:00]
Both of these talk about systems. They both talk about them doing something on
their own, sustaining, organizing. They have slightly different emphases. Gerald
Joyce is a chemist, perhaps not surprisingly. Lee Smolin is a physicist.
When I, as a computer person, see “program” and particularly see things like
“symbolically,” those are little red flags to me. There’s a lot of stuff that has to
be explained when someone invokes programs, symbolic representations, and so
on. I want to boil it away and make it as simple as I possibly can.
My favorite definition. [Slide 4] I got this from my dad. The internet seems to
think that this is maybe from Doctor Who, I’m not sure. If anybody actually has
any references to this in print, that’d be interesting to see the citation. The key
point of this is the preservation, preserving. A big umbrella definition [Slide 5]:
life is a system that dynamically preserves pattern.
ArtificialLife_Ackley
Page 1 of 8
You might think you’d be able to preserve a pattern without being dynamic
about it, like Mount Rushmore. You just make it big, and you make it out of rock,
and the pattern will persist. The pattern will be preserved. In fact, even the
mountains come down eventually. It turns out Mount Rushmore, every fall, the
National Park Service gets out there and repairs it, plasters up Lincoln’s nose or
whatever it is what they do. The larger system of Mount Rushmore plus people
are dynamically preserving that pattern, but the lifelike part of it is really the
people more than the Mount Rushmore.
This is clearly extremely general. We’re going to have [00:04:00] to admit that
there might be some things that aren’t really as lifelike as other things. Even a
little eddy whirlpool in a stream that if you moved one pebble, it would
disappear. It has a dynamically preserved pattern. The water flows by, and you
see it. It lasts for some period of time. That’s got to have a little bit of life,
according to this view, according to this definition.
This, fundamentally, is computational paganism. Wherever you look out in the
world, if you see a pattern being dynamically preserved, that is a little bit of life.
That is a system that’s a little lifelike. Then it’s a spectrum. This is plenty of room
for what we need.
Okay. Now, we can build computers … computer programs, whatever … that will
display this kind of property, that will dynamically preserve their pattern. [Slide
5] What are those computer systems that we build? That depends on the stance
that we want to take to them. We could take the weak claim and say that this
computational system is a model of some living system. When we do that, our
goal is to understand something about life, or understand something about
whatever system we’re claiming it’s a model of. Ideally, we’d like to be able to
make predictions about whatever it is that it’s a model of.
Okay. Let’s take a look at an example. [Slide 6] All right. Here is a model of the
world, everything. It’s been running for a while here, Day 2,400 and something.
What it is is a 100 by 100 grid with mountains all around it that nothing can get
through, and spaces inside that can hold things. You may see these little
[00:06:00] flashes every so often. Those are, I’m imagining, lightning bolts. On
any given time step, any given square has some probability of just zapping
whatever is there. That’s our model of stuff happening. Whatever else goes on it
a system, if it’s going to be a realistic model at all, it’s got to have some process
of tearing down, decay, time passing.
Let’s dynamically preserve our pattern. Let’s stick a straw man first. Here, okay.
This guy, he’s now sitting in one of these squares. All of these little creatures that
I’ve implemented, they way they work is they look at, when it’s their turn to go
… we’re scattering the turns around into every square in a random order, and
ArtificialLife_Ackley
Page 2 of 8
then doing it again … When it’s this guy’s turn to go, he looks at one random
spot in his neighborhood and does something about it. Maybe he moves there.
Maybe he destroys and eats whatever’s there. Maybe he has an offspring.
Whatever we want to do.
This particular guy does nothing. When it’s his turn, he just says, “I’m done.” He’s
preserving his pattern fine, but we know that sooner or later, the odds are going
to catch up with him. He’s doing pretty well. He’s the only instance of the guy.
Down here, we have the list, the amount of time that we’ve got, the total
number of living things. We’re calling this guy living. I call him Type S, because he
just stands there. He’s the standing guy. We’ll even let him live. Sooner or later,
he’s going to get zapped by lightning, and then he’s gone.
How do we fight against that? We fight against that by [00:08:00] reproduction.
We fight against that by building a system that can make copies of itself. Here is
such a thing. This little green square is like a plant that just grows under the
influence of sunlight, or some resource that’s generally available. It goes from
one, to two, now it’s four … well, one of them got zapped. It would have gone
four … Oh, we lost our standing guy. Okay. He wasn’t very satisfying anyway. He
was Mount Rushmore. Mount Rushmore just got … lightning hit it.
On the other hand, it’s very, very, very unlikely at this point, that enough
lightning is going to hit all of these little Type P plant guys to wipe them out.
Their pattern is being preserved by copying. That’s the basic living trick. We start
out with one guy, then we had two, then we had four. It’s often used as an
example … let this speed up a little … of an exponential growth process. One
times two is two, times two is four, and so on.
It’s worth noting that this growth process that we’re watching right here … time,
3,800, 3,900, 4,000 coming up … this is not actually growing exponentially. Why
not? Because very quickly, the plants are not limited by their ability to
reproduce. The way I programmed these guys, they can reproduce fast. They’re
limited by the ability to find empty space to put an offspring in. These guys never
actually move. When they wake up, they look at one of the randomly picked
neighbors. If it’s empty, and it they have enough energy [00:10:00], they split.
They give some to … They create a new plant in that position. Then they reduce
their size by somewhat more than what they gave.
All right. I’ll let this go even faster. All right. What we end up with is this ocean
full of plants that are occasionally zapped by lightning. That creates an empty
spot, and then one of the neighbors fills it in, it re-grows, and so on. The basic
pattern preservation idea of life, it’s about amplification. It’s about reproduction.
It’s doing great.
ArtificialLife_Ackley
Page 3 of 8
Obviously, we could have other things show up in this world, like, in particular, a
herbivore. Whoa. What happened there? We missed it, it was so quick. The
herbivores, when they get a chance to move, they look at a random square. If it’s
empty, they move into it. If it’s occupied by a plant, they eat it. If they have
enough energy, they might create an offspring where they used to be. That’s
basically it. They just move around randomly and if they happen to have a plant
next to them, they try to eat it. What happened? We had an absolute explosion
in the population of these … Oh, and now they’re extinct, the herbivores, the H’s.
They’re gone.
If we let this speed up, the plants regenerate themselves. If we look at the
classical mathematics governing predators … in this case, the prey is the plant,
and the predator is the herbivore. It’s like if the plants had lookouts, they’d be
go, “Look out, here come the vegetarians.”[00:12:00] In the classical
mathematics of it, the continuous mathematics of it, it’s not possible for
anything to actually go extinct. The herbivores would become very small in
number. That would allow the plants to rebound. Then there’d be plenty of food,
so the herbivores would reproduce and eat them up. Here, of course, there’s
always that possibility of, the last guy dies. In fact, that’s what happened here.
Let’s try it again. We’ll stick in a herbivore. He eats. He reproduces. They
reproduce, 200, 300, 400, reproducing very rapidly. Basically, a plague on the
land, just sweeping across it, eating everything. Once again, they’ve all starved to
death. We actually, if we can get lucked out … let’s see what happens here … we
will get a system which … this might do it. Yeah, I think this might do it. If we can
get a system where there’s enough small patches of plants that have a few of the
herbivores scattered around in them, then in fact, we can get to a rather stable
circumstance. This will do it. Let’s go to full speed here.
All right. The herbivores are chasing around after the plants. The plants are
getting eaten. Then the herbivores are having famines and starving. Plants are
re-growing. This is quite stable for as long as I’ve been watching it, as I’ve been
setting up this video. [00:14:00] It’s only a small piece of what we would
normally consider a living system. If the standing guy wasn’t very realistic,
because he just sat there and tried to preserve one single pattern flawlessly, the
limitation here is that whenever the plant reproduces itself, its offspring is
always absolutely identical, down to every last teeny bit of behavior in every
possible parameter. Same thing with the herbivores. The copying process is
absolutely faithful.
Let’s take a look at another example. All right. We’ve got our stuff happening
again. Let’s put in one of these evolutionary plants, which you can’t really see
there. The idea here is this plant has some genetic information that tells him …
ArtificialLife_Ackley
Page 4 of 8
one, two … tells him what kind of color he wants to be. This is sort of a pale bluegreen.
Now, we’re going through the exponential growth phase … one, two, four …
which will quickly give way to a quadratic growth phase in this case, because our
world is two-dimensional. The periphery only grows that fast. The difference
here is that every time one of these plants has an offspring, the offspring’s color
… either its hue or how intense it is … may shift slightly. You may already be able
to see that off on the one side here, the color’s a little different. If we let it speed
up, it should become more apparent. Yeah. Now we’re getting some blue, purple
stuff, and we’re getting some greener, yellow stuff. It’s starting to look like a
clown wig, or something like that.
Why are these colors changing? [00:16:00] They’re just changing because of
drift, because the only way that these plants move is by having offspring. The
offspring have little mutations. The further we get from the center, where we
started the guy, the more generations down in terms of the plant lineage that
we are.
All right. We’ve got a evolving herbivore. Let’s get one of him going. The idea
with him is … whoops … he has a particular color that he’d most like to eat, so
the main color of his face, this guy would like to eat a light cream color. The food
that’s around him, the plants around him not his favorite food, that means when
he tries to interact with one, tries to eat it, he won’t succeed as often. That’s the
way I’ve made this work, that when you get a good color match, yum, and you
chomp it down. When it’s a bad match, you’re more likely to just not be able to
swallow it, and you don’t get any energy that day. Once again, when you have a
kid, the kid’s preference for what color and what amount of saturation … how
intense the color … slightly modified compared to yours.
Okay. These guys are starting to reproduce and spread a little bit. Let’s speed
this up. All right. What’s going on here? The 200, 250 … they’re spreading. Unlike
the original herbivores, which just ate everything, these guys are more selective.
It seems like, down here anyway, they like the greenish stuff, and they’re leaving
the bluer-purpler stuff behind. As a result [00:18:00], the green stuff is starting
to disappear from the world, and the blue and purpler stuff is filling in the empty
space left behind.
We now have an evolutionary system where the plants are evolving under the
pressure of the herbivores. The herbivores, in turn, are evolving under the
pressure of the food sources provided by the plants. Okay. What’s going to
happen in the long run here? Maybe we should let this cook for a while and talk
about some other stuff, and then come back and see what’s happened here.
ArtificialLife_Ackley
Page 5 of 8
[Slide 7] All right. Was that model … all right, is it a model of a living system? If
so, what living system is it a model of? Was that green stuff supposed to be
algae, or these little white dots, they’re snails? It was not actually a model of any
specific system. One of the terrible problems with the weak claim of artificial life
is that it’s really hard to make a specific, accurate model of an actual living
system, because actual living systems are so gnarly. They depend on all sorts of
different things.
Because they have that amplification step, because they have that reproductive
step, with a system that has amplification, small differences at one time become
big differences later on. They can become big differences. As a result, the small
details of the living system may, in fact, make a big difference how the system
works over time.
To make an accurate artificial life model of any natural system … specific species
interaction, what have you … is very challenging. There’s a [00:20:00] lot of
parameters that have to be set. How fast do these plants grow? How fast do
they gain energy? When do they try to split? How much energy do they give to
their offspring? I just made up parameter values for all that stuff in order to
make a demo that showed some effect. Coming up with predictability is a
challenge.
On the other hand, if you back up a little bit and say, “Well, I’m not trying to
model algae or any specific living system in the natural world. I’m just seeking to
understand how living systems act in general, across many different systems.”
They act a lot like this. They have reproduction, with amplification, and so on.
Okay. If we’re not talking about the weak claim that this is a computer program
which is just a model, as we’ve been talking about all through this class, [Slide 8]
then the alternative is making the strong claim. The strong claim is that a
computational system can be, literally be, a living system, and that we need to
bend the definition of living system and/or computational system until that can
actually be true.
The difference between taking the strong claim and the weak claim, again, is a
matter of emphasis. With the strong claim, we don’t necessarily care about
modeling any particular system. It’s the difference between trying to model
flight by making bird wings, and modeling flight by making jet engines and
aluminum wings. With the strong claim for artificial life, the focus is just on
building systems that actually do something that potentially is useful, or at least
useful to somebody.
Do we have examples of this, artificial systems that are out in the world doing
work [00:22:00], that are reproducing? Here’s one example. [Slide 9] This is data
ArtificialLife_Ackley
Page 6 of 8
from 2001 … it’s kind of old now … from UCSD, showing the infections of the
Code Red computer virus. We can watch it over time. At midnight, there was a
few hundred. By six, seven AM, there’s thousands. By the afternoon, there’s tens
of thousands. By the evening, there’s hundreds of thousands all over the globe.
What we end up with, essentially, is a map of Microsoft software usage as of
2001 on the entire globe. This’ll go around one more time.
Unlike the demo that we looked at first, little world in a box, this is confined to
being inside computers, yes, but it’s all over the planet. Since then, there have
been many other sorts of these things out in the wild, getting transmitted by
internet, or floppy disks, or picture frames, all sorts of things, USB keys. [Slide 10]
They actually do stuff. They may do stuff just to computers. The Stuxnet virus
last year did stuff in the physical world. It caused physical machines to wobble
and destroy themselves.
How real do you need it to be before you say, “Well, that thing went out, it
worked its way through communication channels, reproducing itself, found its
target, and [00:24:00] destroyed stuff in the actual world”? I think there’s some
pretty strong basis for the strong claim that computational systems can be living
systems. Since I think I am a computational system, I need the strong claim. You
do, too.
All right. Let’s check back … [Slide 11] Whoa. What has happened here? The blue
stuff has gotten eaten up. Look at this now. We’ve got these red guys in the red
patch. We’ve got some blue guys down here, and all kinds of things. Oh, there’s
some green guys down here, there will be some ... Okay. All right. It looks like
what’s happening now is yellow plants seem to be spreading out of the
southeast, because there isn’t anybody who’s really eating them. We know what
will happen soon enough. It looked like they were red guys here. They’re already
getting lighter up here. Where we used to have a big, solid, blue monoculture of
one type, now we’ve got lots of little patches of quite different colors near each
other in what looks like an endlessly churning but, if you step back, kind of stable
ecology.
All right. [Slide 12] Let’s mop it up. If we take the strong claim that
computational systems [00:26:00] can be living systems, these days we can start
… There’s a new area called living technology, which is focused specifically on the
strong claim. It’s saying we can build living systems that are lifelike in some way.
We can build them out of hardware … that’s like robots and stuff like that. We
can build them purely out of software … that’s the kind of stuff that we just saw
here. We can build them out of wetware … that’s carbon-based chemistry, water
solvents, the stuff that we’re made up. Hopefully, we can do something useful
with them for society.
ArtificialLife_Ackley
Page 7 of 8
It drives me crazy that if you look at artificial living systems today, the example of
the strong claim of A-life that I picked is a bad one. It’s one that is tearing stuff
down … the Code Red virus, Stuxnet. It’s difficult, not impossible, but it’s difficult
to find really decent examples of using reproducing systems for good, for the
overall benefit of society. I think that’s got to change. My current research area
is focused on how can we reengineer computing, how can we rethink computing,
to take advantage of more of these lifelike principles.
[Slide 13] Oh. Now it looks like the plants are cycling back towards white to some
degree. The important point … There’s a lot of important points, but one
important point about life is like what Woody Allen said, 90 percent of success is
just showing up. Life fills space wherever there’s enough resources to support it.
That means it can be there when the extraordinary event just happens
[00:28:00] to happen somewhere.
Okay. That’s it. Thanks for watching. [Slide 14]
ArtificialLife_Ackley
Page 8 of 8
Download