1 00:00:02,490 --> 00:00:04,500 So this week we spend a lot of time 2 00:00:04,500 --> 00:00:08,130 on elementary cellular automata, or elementary CA, 3 00:00:08,130 --> 00:00:12,300 and next week, we'll start building our own models using 4 00:00:12,300 --> 00:00:14,970 more spatial dimensions, stochastic rules, 5 00:00:14,970 --> 00:00:18,210 more states for the cells, but I wanted to give you 6 00:00:18,210 --> 00:00:22,020 a little fun preview of really the kind 7 00:00:22,020 --> 00:00:25,740 of complexity that can emerge from spatially explicit models 8 00:00:25,740 --> 00:00:29,580 beyond what we can do with elementary CA, 9 00:00:29,580 --> 00:00:32,430 and so, I said it in the very first video, 10 00:00:32,430 --> 00:00:35,460 if anything, what cellular automata are really good 11 00:00:35,460 --> 00:00:39,930 for is illustrating this idea that the whole 12 00:00:39,930 --> 00:00:41,880 is more than the sum of its parts 13 00:00:41,880 --> 00:00:43,560 and that you have emergent behavior. 14 00:00:43,560 --> 00:00:46,140 What do I mean by that, by that flowery language? 15 00:00:46,140 --> 00:00:48,510 Where really, when you look at the rule set 16 00:00:48,510 --> 00:00:50,820 of an elementary CA, it's really, 17 00:00:50,820 --> 00:00:53,370 really hard, unless you've seen it before, 18 00:00:53,370 --> 00:00:55,770 to determine what kind of behavior is gonna come 19 00:00:55,770 --> 00:00:58,320 out of that model at a global scale, 20 00:00:58,320 --> 00:01:00,360 and so it shows how complexity can emerge 21 00:01:00,360 --> 00:01:03,960 from deterministic, simple, local rules. 22 00:01:03,960 --> 00:01:05,700 Now, I wanted to give an example 23 00:01:05,700 --> 00:01:08,640 of how quickly that complexity can grow, 24 00:01:08,640 --> 00:01:12,423 and that's Conway's famous "Game of Life" model, 25 00:01:13,470 --> 00:01:16,588 and so while this video plays, you'll get an introduction. 26 00:01:16,588 --> 00:01:19,533 It's a binary CA in two dimensions, 27 00:01:20,520 --> 00:01:24,330 so each cell is, they're alive or dead, a one or a zero, 28 00:01:24,330 --> 00:01:27,480 just like we saw in elementary CA, 29 00:01:27,480 --> 00:01:29,610 and the model takes place on an infinite, 30 00:01:29,610 --> 00:01:32,400 two-dimensional grid, and every cell interacts 31 00:01:32,400 --> 00:01:35,610 with each of its eight neighbors. 32 00:01:35,610 --> 00:01:38,400 So the diagonals top-down, left-right, 33 00:01:38,400 --> 00:01:41,940 which we'll see next week is called the More Neighborhood, 34 00:01:41,940 --> 00:01:44,730 and so that's a lot of rules by the way, right? 35 00:01:44,730 --> 00:01:47,310 So that's nine cells total, and 36 00:01:47,310 --> 00:01:49,983 so we'll use coarse grain rules, 37 00:01:51,960 --> 00:01:53,880 like the ones you're seeing on screen, 38 00:01:53,880 --> 00:01:56,490 to describe the system, right? 39 00:01:56,490 --> 00:01:59,160 So with too many alive neighbors, 40 00:01:59,160 --> 00:02:01,743 you die as if by overcrowding. 41 00:02:02,910 --> 00:02:06,600 With enough alive neighbor in a dead cell, 42 00:02:06,600 --> 00:02:10,200 you can create life through reproduction, 43 00:02:10,200 --> 00:02:12,750 and as we saw in the first rule, if you're alive 44 00:02:12,750 --> 00:02:17,370 with no alive neighbors, you die because you need, 45 00:02:17,370 --> 00:02:19,383 you know, some neighbors to sustain you, 46 00:02:20,550 --> 00:02:23,400 and so we see, like, extremely interesting behavior come 47 00:02:23,400 --> 00:02:24,900 out of these very simple rules, 48 00:02:24,900 --> 00:02:27,480 and I wanted to stress, in the elementary CA, 49 00:02:27,480 --> 00:02:30,753 we saw that we had 256 models. 50 00:02:31,914 --> 00:02:34,481 That came out of the size of the rule set. 51 00:02:34,481 --> 00:02:38,400 Well, here, really, with nine cells, the rule set 52 00:02:38,400 --> 00:02:41,160 for binary CA with nine cells in 53 00:02:41,160 --> 00:02:44,760 each neighborhood is 512 rules, 54 00:02:44,760 --> 00:02:49,760 so we need to specify 512 numbers to set our model. 55 00:02:50,490 --> 00:02:52,860 So how many models are there for binary CA 56 00:02:52,860 --> 00:02:55,200 with a rule set of size 512? 57 00:02:55,200 --> 00:02:59,737 Well, two to the 512 is 10, oh, no, it's two to the 154. 58 00:03:01,740 --> 00:03:03,810 That's more than the number of atoms 59 00:03:03,810 --> 00:03:06,030 in the universe squared, right? 60 00:03:06,030 --> 00:03:10,380 There's an incredibly rich diversity of models that you 61 00:03:10,380 --> 00:03:15,120 can create in two dimensions even with binary states, 62 00:03:15,120 --> 00:03:17,640 and so it's no surprise that incredibly complex 63 00:03:17,640 --> 00:03:21,090 can exist somewhere in that very, very large space, 64 00:03:21,090 --> 00:03:23,410 very, very complex models and behavior 65 00:03:24,270 --> 00:03:26,070 in an otherwise large space where 66 00:03:26,070 --> 00:03:28,323 most models are probably boring. 67 00:03:35,520 --> 00:03:37,680 As we see, like, output of this model 68 00:03:37,680 --> 00:03:40,530 that look very much like living machine, 69 00:03:40,530 --> 00:03:43,060 I think it's important to explain 70 00:03:43,950 --> 00:03:47,940 that this is an infinite grid, right? 71 00:03:47,940 --> 00:03:49,440 So if you think about the number 72 00:03:49,440 --> 00:03:52,620 of parameters needed to initiate a simulation 73 00:03:52,620 --> 00:03:55,230 like this, it's essentially infinite. 74 00:03:55,230 --> 00:03:57,000 Remember that in dynamical systems, 75 00:03:57,000 --> 00:03:59,460 we had to specify our initial conditions, 76 00:03:59,460 --> 00:04:02,160 just like extra parameters, in order to be able 77 00:04:02,160 --> 00:04:04,773 to run the model where this is no different, 78 00:04:06,180 --> 00:04:09,180 and in two dimensions, the number of initial conditions, 79 00:04:09,180 --> 00:04:13,320 the number of buttons that you get to control, is huge, 80 00:04:13,320 --> 00:04:16,530 and so you get to create this really rich myriad 81 00:04:16,530 --> 00:04:19,050 of behaviors out of it, and in fact, 82 00:04:19,050 --> 00:04:21,490 you can show that the rules are sufficient 83 00:04:22,530 --> 00:04:24,270 to give you elementary computation. 84 00:04:24,270 --> 00:04:26,730 You can create four-loop, conditional loops, 85 00:04:26,730 --> 00:04:31,730 and this very large space give you just enough memory 86 00:04:32,340 --> 00:04:34,860 to essentially have a universal computer, 87 00:04:34,860 --> 00:04:36,630 or any model that we've seen so far 88 00:04:36,630 --> 00:04:39,960 could be coded in Conway's "Game of Life." 89 00:04:39,960 --> 00:04:43,500 So Conway's "Game of Life" could be running Euler's Method 90 00:04:43,500 --> 00:04:47,310 on the SIS Model, or on the the Lotka-Volterra Model, 91 00:04:47,310 --> 00:04:49,680 helping you solve some of the assignments we've seen 92 00:04:49,680 --> 00:04:54,680 in class already, and what's important 93 00:04:55,380 --> 00:04:59,100 to remember at that point is that having 94 00:04:59,100 --> 00:05:02,260 a universal computer does not imply 95 00:05:03,360 --> 00:05:07,230 that there is something about this particular CA that gets 96 00:05:07,230 --> 00:05:09,690 to the algorithmic nature of the world. 97 00:05:09,690 --> 00:05:11,490 In some sense, this is no different 98 00:05:11,490 --> 00:05:14,940 than inventing a new programming language, 99 00:05:14,940 --> 00:05:19,940 and no one calls C++ the algorithmic nature of the world, 100 00:05:20,850 --> 00:05:24,570 and so it's important to distinguish, essentially, 101 00:05:24,570 --> 00:05:27,000 the computation that we run wanna run, 102 00:05:27,000 --> 00:05:28,800 which is the models we come up with, 103 00:05:28,800 --> 00:05:31,383 and the computers that run that computation, 104 00:05:32,640 --> 00:05:35,730 and so I think this is a good place to end it. 105 00:05:35,730 --> 00:05:38,730 I'll pause the video and I'll see you 106 00:05:38,730 --> 00:05:40,710 in the next one where we'll explore some 107 00:05:40,710 --> 00:05:44,193 of our own very complex, two-dimensional CAs.