 Today I want to talk about artificial life something I've worked on for a lot of years and it sort of underlies a lot of research I've done more recently This is another New Mexico CS for all video for the past. We're doing on computational thinking and programming All right that very idea of artificial life is is kind of a weird because we normally think of life as is natural Nature is full of life But we need to come up with a definition broad enough so that we can see other kinds of things as being life or Life-like and in fact, that's the distinction that we'll talk about Immediately after though we claim is that these systems are merely life-like 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 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 sort of a catch-all. It's 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 to a self-sustaining chemical system capable of undergoing Darwinian evolution a Self-organized non-equilibrium system such that it's processed governed by a program stored symbolically and creeped 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 Least moment as 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 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 definition Now 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 and 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 Okay, now you might think you'd be able to preserve a 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 repairs it, you know plaster's up Lincoln's nose or whatever it is what they do so the larger system of Mount Rushmore plus people Dynamically preserving that pattern, but the lifelike part of it is really the people more than the Mount Rushmore Okay, 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 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 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 Okay, this is plenty of room for what we need Okay, 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 Okay, let's take a look at an example. All right Here is a model of the world everything It's been running for a while here a 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 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 got to have some process of tearing down decay Time-passing, okay, so let's dynamically preserve our pattern. Well, let's just draw a man first here Okay, this guy He's now setting in one of these squares and all of these little creatures that I've implemented The way they work is they look at once their turn to go We're scattering the turns around into every square in random order and then doing it again when this 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 awesome Whatever we want to do this particular guy does nothing. Okay, once his turn. He just says I'm done All right, 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 Yeah, but he's the only Instance of the guy so 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 look he I call him type s because he just stands there. He's the standing guy Well, we'll even let him live but sooner or later. He's gonna get zapped by lightning and then he's gone Hmm 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 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 for oh we lost our standing guy. Okay? 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 trek We start out with one guy then we had two then we had four and it's often used as an example Let this speed up a little of An exponential growth process one times two is four 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 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 program these guys They can reproduce fast They're limited by the ability to find empty space 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 All right Let this go even faster All right 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 that regrows and so on Okay 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 Urbivore whoa So what happened there we sort of missed it was so quick The Urbivores 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 Another extinct the Urbivores the H's They're gone. So if we let this speed up the plants regenerate themselves and Now if we look at the classical mathematics governing predators in this case The prey is the plant and the predators the herbivores like if the plants had lookouts they'd be go, you know look out here come the vegetarians In the classical mathematics of it the continuous mathematics of it It's not possible for anything to actually go extinct. So the Urbivores become very small in number that would allow the plants to rebound and then there'd be plenty of food So the Urbivores 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 Urbivore He eats he reproduces they reproduce 200 300 400 reproducing very rapidly and Basically a plague oh my I'm just sweeping across it eating everything and Once again, they will all start to death now You can 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 well. 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 Urbivore sort of scattered around in them then in fact we can get to a rather stable Circumstance and this this will do it. Let's go to full speed here All right So the Urbivores are chasing around after the plants the plants are getting eaten But then the Urbivores 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 setting up this video 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. It's offspring is always absolutely identical down to the every last teeny bit of behavior and every possible parameter Same thing with the Urbivores The copying process is absolutely faithful Let's take a look at another example All right, so we've got our stuff happening again Let's put in and 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 them what kind of color he wants to be all right, 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 because our world is two-dimensional, so the periphery Only grows that fast But the difference here is that every time one of these plants has an offspring the offspring's color either It's it's you or how intense it is May shift slightly. Okay, and you can you may already be able to see that off on one side here The color is 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 green or 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 with 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 And the idea with him is whoops he has a Particular color that he'd most like to eat so the the main color of his face this guy would you know sort of like to eat a sort of light Cream color so the the food that's around in the plants around not his favorite food That means he has a lot when he tries to interact 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, you chump 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 kids Preference for what color and what amount of saturation how intense the color slightly modified compared to yours Okay, and these guys are starting to Reproduce and spread a little bit Speed this up All right, what's going on here the 200 to 50 There they're they're spreading now unlike the original herbivores which just ate everything these guys are more selective It seems like I'm here anyway. They kind of like the greenish stuff And they're sort of leaving the bluer purple or stuff behind And as a result the green stuff is starting to disappear from the world and the blue and Purple or 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, okay, so what's gonna happen in the long run here? Maybe 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 all right, so Was that model? All right, is it a model of a living system? If so what living system is it a model of it was that 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 and one of the terrible problems With you 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 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 a 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 they gain energy? How well when do they try to split how much energy do they give to the 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 the 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 with amplification and so on Okay 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 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 a 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 up just on building systems that actually do something That potentially is useful or at least useful to somebody So do we have examples of this? Artificial systems that are out in the world doing work That are reproducing Maybe you know Well, here's one example This is data from 2001 kind of old now from use DSD 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 6 7 a.m. 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 will go around one more time So unlike the demo that we looked at first The 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 picture frames all sorts of things USB keys and They actually do stuff They may do stuff just to computers the Stuxnet virus last year Did stuff in the physical world that 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 the 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 play you do too all right Let's check back. Oh, whoa What has happened here? Well, the blue stuff has sort of got 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. There'll be some Well, okay. All right, 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 of big solid blue Monoculture of one type now we've got lots of little patches of quite different colors near each other And what looks like a endlessly churning, but if you step back Kind of stable ecology okay so Let's mop it up if we take the strong claim that Computational systems can be living systems These days we can start and 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 It's the kind of stuff that we just saw here We can build them out of wet wear that sort of carbon-based chemistry water solvents the stuff that we are 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 Strong the strong claim of a life that I picked is a bad one It's 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 for the overall benefit of society and I think that's got to change and so my current research area is focused on How can we re-engineer computing? How can we rethink? computing to take advantage of more of these lifelike principles and Oh, and 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 That's it. Thanks for watching