NMCS4ALL: Artificial Life (full version)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

He was my professor at the University of New Mexico for three of my undergrad CS classes. Incredibly knowledgeable teacher. All of his presentations were done in emacs...

👍︎︎ 11 👤︎︎ u/wazts 📅︎︎ Apr 30 2017 🗫︎ replies

Was the audio stuttering for anyone else? It's driving me batshit.

👍︎︎ 5 👤︎︎ u/zer0t3ch 📅︎︎ Apr 30 2017 🗫︎ replies

This is cool and all, but why?

👍︎︎ 3 👤︎︎ u/_Skuzzzy 📅︎︎ Apr 29 2017 🗫︎ replies

So the last seconds of the video the program evolved itself and escaped the inpenetratable wall? :)

👍︎︎ 2 👤︎︎ u/holoduke 📅︎︎ Apr 30 2017 🗫︎ replies
Captions
Today I want to talk about artificial life. It's something that I worked on for a lot of years, and it sort of 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. Alright, Now, the very idea of artificial life is is kind of weird because we normally think of life as natural -- nature is full of life. But we need to come up with a definition broad enough so that so that we can see other kinds of things as being life -- or lifelike.. And in fact that's the distinction that we'll talk about immediately after: The weak claim is that these systems are merely lifelike. Strong claim is that these 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! 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. Uhm.. This is a catch-all. It's not completely satisfying. It's a description of what happens during a life, rather than some sort of necessary and sufficient conditions for what it means for anything to be a life Many people have taken cracks 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 it can reproduce itself. Now 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. That's a.. there's a lot of stuff that has to be explained when someone invokes 'program', 'symbolic representations' and so on. I want to boil it away, and make it as simple as I possibly can. My favorite defininition: Umm.. Now, I got this from my dad. The internets seems to think that this is may be from Dr. Who. I'm not sure (If anybody actually has any references to this in print I'd be interested to see a citation.) The key point of this is the preservation-- preserving. So, a big umbrella definition: Life is a system that dynamically preserves pattern, OK? Now, you might think you'd be able to preserve pattern without being dynamic about it. Like Mount Rushmore. You know, you just make it big, and you make it out of rock, and the pattern will persist. The pattern will be preserved. But in fact, even the mountains come down eventually. And, it turns out, Mount Rushmore -- every fall the National Park Service gets out there and and repairs it, you know, plasters up Lincoln's nose or whatever it is what they do. So 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. OK. So this is clearly extremely general, and we're gonna have to admit that there might be some things that aren't really as lifelike as other things. I mean, even a little eddy, whirlpool, in a stream--that, you know, if you move one pebble it will disappear-- it has a dynamically preserved pattern. The water flows by, and you see it, it lasts for some period of time. That's gonna have a little bit of life, according to this view; according to this definition. So this, fundamentally, is sort of '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. And then it's a spectrum. OK? This is plenty of room for what we need. OK. So, now we can build computers, computer programs, whatever, that will display this kind of property; that will dynamically preserve their pattern. What _are_ those computer systems that we build? Well, 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. And 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. And ideally, we'd like to be able to make predictions about whatever it is that it's a model of. OK. Let's take a look at an example. Alright. Here is a model of the world, everything. It's been running for a while here: Day two thousand four hundred 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 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. And that's our model of.. 'stuff' happening. That, whatever else goes on in the system, if it's going to be a realistic model at all, it's going to have some process of tearing down, decay, time passing. OK. So, let's dynamically preserve our pattern.. Well, let's take a strawman first here. OK, this guy, he's now sitting in one of these squares. And all of these little creatures that i've implemented, the way they work is they look at -- when it's their turn to go -- we're scattering turns around into every square in a random order, and 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, OK? When it's his turn he just says "I'm done." Alright? And he's preserving his pattern fine, right? But we know that sooner or later, the odds are gonna catch up with him. And.. he's doing pretty well, um. But he's the only instance of the guy. So down here we have the list: The amount of time we've got, the total number of living things -- we're calling this guy 'living'. I call him 'Type S' 'cause he just stands there. He's the standing guy. Well, we'll even let him live. But sooner or later, he's going to get zapped by lightning and then he's gone. So how do we fight against that? We fight against that by reproduction. We fight against that by building a system that can make copies of itself. So, here is such a thing. This is -- the little green square -- is like a plant that just grows under the influence of sunlight, or some resource that's generally available. And 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. OK. He wasn't very satisfying anyway. He was Mount Rushmore. Mount Rushmore just got, you know, 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. And that's the basic living trick. We start out with one guy, then we had two, then we had four. And it's often used as an example of -- let's let this speed up a little -- of an exponential growth process. One times two is four -- uh, times two is _two_ -- times two is four, and so on. Umm.. It's worth noting that this growth process that we're watching -- right here time thirty eight hundred, thirty-nine hundred, four thousand coming up -- this is not actually growing exponentially. Why not? Well, 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 their 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, and if it's empty, and if they have enough energy, they split. They give some to -- they create a new plant in that position. And then they reduce their size by somewhat more than what they gave. Alright. Let this go even faster. Alright. And and what we end up with is this, you know, ocean full of plants, that are occasionally zapped by lightning. And that creates an empty spot, and then one of the neighbors fills it in and it regrows and so on. OK? The basic pattern preservation idea of life. It's about amplification It's about reproduction. And it's doing great.. Obviously, we could have other things show up in this world. Like, in particular, a herbivore. Woah... So what happened there? We sort of 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. And that's basically it. So they just sort of move around randomly, and if they happen to have a plant next to them they try to eat it. And what happened? Well, we had an absolute explosion in the population of these.. and now they're extinct: The herbivores, the 'H's. They're gone. So if we let this speed up, The plants regenerate themselves. And and now 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 going, you know, "Look out! Here come the vegetarians!" Umm. In the classical mathematics.. With continuous mathematics of it is not possible for anything to actually go extinct. So the herbivores would become very small in number, that would allow the plants to rebound, and 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. And in fact that's what happened here. Let's try it again. We'll stick in a herbivore. And he eats, he reproduces. They reproduce.. Two hundred, three hundred, four hundred. Reproducing very rapidly, and basically a plague on the land. Just sweeping across it eating everything. And once again they've all starved to death. Now, you can, if we actually, if we can get, luck out, Umm.. Let's see what happens here.. We will get a system which -- this might do it -- yeah I think uh... 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 sort of scattered around them, then in fact we can get to a rather stable circumstance.. And this will do it... Let's go to full-speed here. Alright. So, herbivores are chasing around after the plants. The plants are getting eaten, but then the herbivores are having famines and starving. Plants are regrowing. This is quite stable for as long as I've been watching it, as I've been setting up this video. OK. It's only a small piece of what we put 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, and every possible parameter. Same thing with the herbivores: the copying process is absolutely faithful. Let's take a look at another example. Alright. So we've got our 'stuff' happening again. And let's put it 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 it -- one, two -- tells 'em what kind of color he wants to be. So this is sort of a pale blue green. And 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, 'cause our world is two-dimensional. So the periphery only grows that fast. But the difference here is that every time that one of these plants has an offspring, the offspring's color-- either its hue, or how intense it is, may shift slightly. Okay, and you may already be able to see that off on one side here. The color's a little different. If we let it speed up, it should become more apparent. Yeah. so now we're sort of getting some blue, purple stuff, and we're getting some sort of greener, yellow stuff. And it's kind of starting to look like a clown wig, or something like that. Now, why are these colors changing? They're just changing because of drift. Because--the only way that these plants move is by having offspring. The offspring have little mutations. So, 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. Alright. We've got an evolving herbivore. Let's get one of him going Umm.. And the idea with him is--whups-- he has a particular color that he'd most like to eat. So the main color of his face--this guy would sorta like to eat a sort of light cream color. So, the food that's around him, the plants around him: Not his favorite food. That means he has a less.. When he tries to interact with one -- tries to eat it -- he won't succeed as often. That's the way I made this work. That when you get a good color match, yum, 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. But 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. OK? And these guys are starting to reproduce and spread a little bit. Let's speed this up. Alright. What's going on here? Two hundred.. two fifty.. They're spreading now. Unlike the original herbivores that just ate everything, these guys are more selective. It seems, like down here anyway, they kind of like the greenish stuff. And they're sort of leaving the bluer, purpler stuff behind. And as a result, 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, and the herbivores in turn are evolving under the pressure of the food sources provided by the plants. So, what's gonna happen in the long run here? Maybe.. Maybe we should let this cook for awhile, and talk about some other stuff, and then come back and see what's happened here. Alright. So, was that model.. Alright, is it a model of a living system? if so what living system is it a model of? Is is..was that green stuff supposed to be algae? Are these little white dots there snails? It was not actually a model of any specific system. And 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, 'cause actual living systems are so sort of gnarly. They kind of depend on all sorts of different things. And 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, and as a result, the small details of the living system may in fact make a big difference how the system works over time. So to make an accurate artificial life model of any natural system -- specific species interaction, what have you-- is very challenging. There's a lot of parameters that have to be set. I mean, you know: 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 sort of made up parameter values for all that stuff, in order to make a demo that showed some effect. So, coming up with predictability is a challenge. But on the other hand, if you sort of 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. According.. across many different systems, they act a lot like this. They have reproduction-- amplification-- and so on. OK. Well, 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) -- then the alternative is making a 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, that are reproducing? You know? Well, here's one example. This is data from 2001. It's kind of old now. From UCSD. Showing the infections of the Code Red computer virus. And we can watch it over time. At midnight there was a few hundred. By noon.. Well, by six, seven a.m., there's thousands. By the afternoon, 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.) So, unlike the demo that we looked at first -- a 'world in a box' -- this, it's confined to being inside computers, yes, but it's all over the planet. And since then, there have been many other sorts of these things. out in the wild, getting transmitted by internet, or floppy disks or uh... picture frames. All sorts of things, USB keys Umm.. And 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, worked its way through communication channels, reproducing itself, found its target, and destroyed stuff, in the actual world? So 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. Alright. Let's check back -- oh, woah! What has happened here? Umm.. Well, the blue stuff has sort of gotten eaten up. And 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 will be some. Well OK, alright, so. So it looks like what's happening now is yellow plants seem to be kind of spreading out of the southeast, because there isn't anybody who's really eating them. But we know what'll happen soon. enough, The -- it looked like they were red guys here -- they're already getting lighter up here. So, where we used to have sort a big solid blue -- a monoculture of one type -- now we've got a lots of little patches of quite different colors near each other. And what looks like an endlessly churning, but -- if you step back -- kind of stable ecology. Hmm. OK. So let's mop it up. If we take the strong claim, that computational systems can be living systems.. These days we can start.. Well 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 sort of carbon-based chemistry water solvents, the stuff that we're made of. And hopefully we can do something useful with them for society. It drives me crazy that if you look at artificial living systems today.. The example of the strong claim of alife 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. And I think that's got to change. So 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? And -- oh, so now it looks like the plants are cycling back towards white to some degree.. I mean, you know, the important point -- well, there's a lot of important points -- but one important point about life is like what Woody Allen said, you know: 90% of success is just showing up. Life fills space, wherever there's enough resources to support it. And that means it can be there, when the extraordinary event just happens to happen, somewhere. OK. That's it. Thanks for watching.
Info
Channel: Dave Ackley
Views: 43,908
Rating: 4.962461 out of 5
Keywords: nmcs4all, artificial life, robust-first computing, Dave Ackley, evolution, code red, stuxnet, computational paganism, alife, living technology
Id: YJRRu4dJnTI
Channel Id: undefined
Length: 28min 41sec (1721 seconds)
Published: Sat May 04 2013
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.