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