1 00:00:10,110 --> 00:00:12,660 PATRICK WINSTON: Many of you, maybe most of you, will never 2 00:00:12,660 --> 00:00:14,850 have to work another search problem by hand in your 3 00:00:14,850 --> 00:00:17,510 natural life. 4 00:00:17,510 --> 00:00:19,870 Others will want to take another run 5 00:00:19,870 --> 00:00:22,100 at it on the final. 6 00:00:22,100 --> 00:00:25,030 I've been much criticized for this way of doing 7 00:00:25,030 --> 00:00:26,000 grading in the class. 8 00:00:26,000 --> 00:00:31,490 But the way I look at it is that the relationship between 9 00:00:31,490 --> 00:00:34,330 students and instructors ought to be less adversarial than it 10 00:00:34,330 --> 00:00:39,910 used to be in the good old days when I was a student. 11 00:00:39,910 --> 00:00:44,100 I especially remember an examination we took-- 12 00:00:44,100 --> 00:00:46,450 all of us took-- on Rayleigh scattering. 13 00:00:46,450 --> 00:00:48,670 That was 803, I think. 14 00:00:48,670 --> 00:00:51,720 And back in the old days, we had to take four physics 15 00:00:51,720 --> 00:00:53,640 courses, not just two. 16 00:00:53,640 --> 00:00:57,100 And we had to take four math courses, not just two. 17 00:00:57,100 --> 00:00:59,830 Back in the days when-- 18 00:00:59,830 --> 00:01:01,450 well, I was going to say men were men. 19 00:01:01,450 --> 00:01:03,130 But most of us were men in those days. 20 00:01:03,130 --> 00:01:06,110 I think we only had 20 women in our class. 21 00:01:06,110 --> 00:01:09,950 Anyway, we had a quiz on Rayleigh scattering. 22 00:01:09,950 --> 00:01:11,910 And I thought, well, this is pretty hard. 23 00:01:11,910 --> 00:01:16,789 And then I got my quiz back. 24 00:01:16,789 --> 00:01:19,370 26. 25 00:01:19,370 --> 00:01:22,730 I thought, well, I've been found out. 26 00:01:22,730 --> 00:01:25,030 I'm going to flunk out. 27 00:01:25,030 --> 00:01:28,350 My father will make me go to law school. 28 00:01:28,350 --> 00:01:31,810 I'll never attract anyone to marry. 29 00:01:31,810 --> 00:01:34,479 Horrible things will happen. 30 00:01:34,479 --> 00:01:36,884 Then the instructor announced the class average was 18. 31 00:01:36,884 --> 00:01:39,220 I was two standard deviations above that. 32 00:01:41,960 --> 00:01:44,420 They gave us the same exam two weeks later, 33 00:01:44,420 --> 00:01:46,030 and accounts vary. 34 00:01:46,030 --> 00:01:49,340 Some people say that the class average went down. 35 00:01:49,340 --> 00:01:51,720 Anyway, today we're going to study some stuff. 36 00:01:54,759 --> 00:01:56,780 We're going to study some stuff that will make it 37 00:01:56,780 --> 00:02:00,230 possible for you to understand how you can do that 38 00:02:00,230 --> 00:02:02,990 computation in just a couple of seconds, even with the 39 00:02:02,990 --> 00:02:06,610 delays introduced by the redrawing. 40 00:02:06,610 --> 00:02:09,660 Now this particular program-- 41 00:02:09,660 --> 00:02:11,970 I'm not real sure and I don't have a proof, but I think it 42 00:02:11,970 --> 00:02:15,530 will take more than the lifetime of the universe to 43 00:02:15,530 --> 00:02:19,910 find a legitimate coloring of the continental United States. 44 00:02:19,910 --> 00:02:21,860 But by the end of the next class, you'll see how to do 45 00:02:21,860 --> 00:02:24,820 that lickety-split in just couple of seconds, even with 46 00:02:24,820 --> 00:02:26,579 the re-display delays. 47 00:02:31,750 --> 00:02:36,590 Now we could, of course, do this in two ways. 48 00:02:36,590 --> 00:02:39,950 One way is I could start off by saying, let C be a 49 00:02:39,950 --> 00:02:42,490 constraint satisfaction problem and just 50 00:02:42,490 --> 00:02:45,170 give you the result. 51 00:02:45,170 --> 00:02:46,950 And anybody can do that. 52 00:02:46,950 --> 00:02:48,406 That's great. 53 00:02:48,406 --> 00:02:53,030 And you needed to learn some stuff that way. 54 00:02:53,030 --> 00:02:55,740 But there are some things that you needed to learn, I think, 55 00:02:55,740 --> 00:02:56,630 a different way. 56 00:02:56,630 --> 00:02:59,100 And that different way involves my telling you the 57 00:02:59,100 --> 00:03:01,750 story of how it all came to be. 58 00:03:01,750 --> 00:03:06,440 This is a new field, pretty much, and therefore I know 59 00:03:06,440 --> 00:03:07,730 most of the people in it. 60 00:03:07,730 --> 00:03:09,730 And I know all of the people who did the work that I'm 61 00:03:09,730 --> 00:03:10,720 going to tell you about today. 62 00:03:10,720 --> 00:03:13,220 I'm going to tell you a little bit about the struggle for 63 00:03:13,220 --> 00:03:23,160 coming up with the ideas that led to one of the most 64 00:03:23,160 --> 00:03:26,130 powerful methods you'll learn about in the subject. 65 00:03:26,130 --> 00:03:29,670 It all has to do, originally, with an attempt to make a 66 00:03:29,670 --> 00:03:31,832 computer capable of seeing. 67 00:03:31,832 --> 00:03:33,890 And everybody said to themselves, well, let's start 68 00:03:33,890 --> 00:03:37,280 with seeing simple things, like children's blocks. 69 00:03:37,280 --> 00:03:40,040 And so Adolfo Guzman, a graduate student of Marvin 70 00:03:40,040 --> 00:03:43,480 Minsky's, was charged with the summer project, which led to 71 00:03:43,480 --> 00:03:47,590 his Ph.D. thesis, of writing a program that could look at a 72 00:03:47,590 --> 00:03:50,440 line drawing and determine how many objects 73 00:03:50,440 --> 00:03:52,730 are in the line drawing. 74 00:03:52,730 --> 00:04:00,870 So for example, there behind my outline is a line drawing. 75 00:04:00,870 --> 00:04:06,400 And you believe instantly that there are two objects there, 76 00:04:06,400 --> 00:04:08,690 even though in some deep sense, it's ambiguous. 77 00:04:08,690 --> 00:04:12,540 There are all sorts of ways that you could, through 78 00:04:12,540 --> 00:04:16,579 trickery, arrange something with even seven objects that 79 00:04:16,579 --> 00:04:17,709 look that way. 80 00:04:17,709 --> 00:04:21,269 But most people would say there are two objects. 81 00:04:21,269 --> 00:04:23,350 So Guzman set about the problem of figuring 82 00:04:23,350 --> 00:04:24,650 out how to do that. 83 00:04:24,650 --> 00:04:26,860 And then his work was followed by Dave Huffman. 84 00:04:26,860 --> 00:04:29,440 And his work was followed up by Dave Waltz. 85 00:04:29,440 --> 00:04:31,850 And his work was followed up by Jane [? Froyter ?], who's 86 00:04:31,850 --> 00:04:33,880 not listed there quite yet. 87 00:04:33,880 --> 00:04:35,580 And I want to tell you a little bit of story how that 88 00:04:35,580 --> 00:04:37,510 all happened. 89 00:04:37,510 --> 00:04:40,440 So Guzman took a lot of pictures. 90 00:04:40,440 --> 00:04:44,870 He went to Boston Baby, the precursor to Toys R Us, 91 00:04:44,870 --> 00:04:51,990 purchased a large block set on a government contract, and 92 00:04:51,990 --> 00:04:54,640 went about the business of taking a lot of pictures of 93 00:04:54,640 --> 00:04:57,390 them so he'd get a feel for the domain. 94 00:04:57,390 --> 00:05:00,370 And eventually he decided that he could build a program that 95 00:05:00,370 --> 00:05:03,910 could determine that there are two objects here by using the 96 00:05:03,910 --> 00:05:10,800 lines as a quanta of evidence about which faces belong 97 00:05:10,800 --> 00:05:13,090 together in an object. 98 00:05:13,090 --> 00:05:16,870 So he said, after studying these for a long time, that 99 00:05:16,870 --> 00:05:20,060 these drawings tend to have a lot of arrow-type junctions 100 00:05:20,060 --> 00:05:22,460 and a lot of fork-type junctions. 101 00:05:22,460 --> 00:05:24,980 And when you see an arrow, it's a little bit of evidence 102 00:05:24,980 --> 00:05:27,490 that the objects on either side of the shaft are the 103 00:05:27,490 --> 00:05:30,010 same-- the face on either side of the shaft belong to the 104 00:05:30,010 --> 00:05:31,880 same object. 105 00:05:31,880 --> 00:05:37,590 And over here, the fork-type junction suggests that 106 00:05:37,590 --> 00:05:40,590 pairwise, three pairs of faces seem to 107 00:05:40,590 --> 00:05:42,909 belong to the same object. 108 00:05:42,909 --> 00:05:46,659 So with that idea, he could come back to a drawing like 109 00:05:46,659 --> 00:05:49,570 this and start decorating it with these so-called links, 110 00:05:49,570 --> 00:05:53,090 these quanta of evidence that faces 111 00:05:53,090 --> 00:05:54,340 belong to the same object. 112 00:06:00,408 --> 00:06:02,200 And if I've done it right, you get something 113 00:06:02,200 --> 00:06:04,230 that looks like so. 114 00:06:04,230 --> 00:06:06,650 It's a little hard to see what's going on 115 00:06:06,650 --> 00:06:07,920 on the drawing itself. 116 00:06:07,920 --> 00:06:09,170 So let me number these. 117 00:06:26,550 --> 00:06:29,180 Now I have an easier-to-deal-with picture. 118 00:06:29,180 --> 00:06:35,080 There are two links between 1 and 2 and 1 and 3. 119 00:06:35,080 --> 00:06:37,890 One link between 2 and 3. 120 00:06:37,890 --> 00:06:39,820 One between 2 and 4. 121 00:06:39,820 --> 00:06:41,470 Two here. 122 00:06:41,470 --> 00:06:43,120 Two here. 123 00:06:43,120 --> 00:06:46,700 And one each from all of these. 124 00:06:46,700 --> 00:06:49,760 So Guzman produces this evidence for how the problem 125 00:06:49,760 --> 00:06:52,960 ought to be solved and then he begins to think about various 126 00:06:52,960 --> 00:06:55,050 ways of using the evidence. 127 00:06:55,050 --> 00:07:01,830 So he could, and did, decide that one link is enough to 128 00:07:01,830 --> 00:07:04,720 presume that the faces belong to the same object. 129 00:07:04,720 --> 00:07:07,730 And you can see that that's a little bit too liberal. 130 00:07:07,730 --> 00:07:08,840 Because that says that the whole 131 00:07:08,840 --> 00:07:11,710 thing is just one object. 132 00:07:11,710 --> 00:07:17,695 So Guzman rejected the one-link theory and went to 133 00:07:17,695 --> 00:07:18,945 the two-link theory. 134 00:07:22,330 --> 00:07:27,110 And the two-link theory says, oh, well, let's see. 135 00:07:27,110 --> 00:07:30,390 If we insist that two links should be there before we are 136 00:07:30,390 --> 00:07:35,909 willing to decide that it's the same object, then these 137 00:07:35,909 --> 00:07:39,090 three faces are pulled together into one object. 138 00:07:39,090 --> 00:07:41,790 These three are pulled together into one object. 139 00:07:41,790 --> 00:07:44,409 But alas, 7 doesn't share two links with anything, so it's 140 00:07:44,409 --> 00:07:46,830 left dangling out there. 141 00:07:46,830 --> 00:07:50,990 So plainly, the two-link theory is too conservative. 142 00:07:50,990 --> 00:07:54,110 So that as you would soon discover in any [INAUDIBLE] 143 00:07:54,110 --> 00:07:57,030 project, would lead you to a third theory, which is two 144 00:07:57,030 --> 00:08:01,960 lengths repeated. 145 00:08:01,960 --> 00:08:07,430 So now that we've formed these super regions, we can come 146 00:08:07,430 --> 00:08:11,270 back and say we'll merge super regions if they're connected 147 00:08:11,270 --> 00:08:14,130 together by two or more links. 148 00:08:14,130 --> 00:08:16,240 So nothing new happens up here. 149 00:08:16,240 --> 00:08:19,440 But this super region is joined at 7 150 00:08:19,440 --> 00:08:21,440 by two or more links. 151 00:08:21,440 --> 00:08:25,270 So it pulls everything together like so. 152 00:08:25,270 --> 00:08:26,480 So that worked fine. 153 00:08:26,480 --> 00:08:27,480 Well, it didn't work fine. 154 00:08:27,480 --> 00:08:29,620 There were lots of examples of situations 155 00:08:29,620 --> 00:08:32,850 where it didn't work-- 156 00:08:32,850 --> 00:08:36,230 in situations that were considered nonsensical by us 157 00:08:36,230 --> 00:08:41,620 humans because it seemed silly, the kind of conclusions 158 00:08:41,620 --> 00:08:44,770 that it reached. 159 00:08:44,770 --> 00:08:48,870 So when Guzman presented this work in his Ph.D. thesis 160 00:08:48,870 --> 00:08:52,830 defense, it's said-- 161 00:08:52,830 --> 00:08:54,770 and who knows if it's true-- but it's said that Marvin 162 00:08:54,770 --> 00:08:56,630 Minsky thought it was great work and we 163 00:08:56,630 --> 00:08:59,250 should make him a professor. 164 00:08:59,250 --> 00:09:03,070 It happens that Dave Huffman was also on the committee and 165 00:09:03,070 --> 00:09:07,440 said that it was ad hoc and the thesis should be rejected. 166 00:09:07,440 --> 00:09:10,580 So we had two polar opposites of impressions there. 167 00:09:10,580 --> 00:09:11,920 Dave Huffman, by the way-- 168 00:09:11,920 --> 00:09:15,160 you've heard that name before, I imagine. 169 00:09:15,160 --> 00:09:18,830 It's the guy who invented Huffman coating as a term 170 00:09:18,830 --> 00:09:22,720 paper in a information theory course taught by Bob Fano. 171 00:09:22,720 --> 00:09:23,970 He got an A, they say. 172 00:09:26,720 --> 00:09:27,840 So Huffman didn't like it. 173 00:09:27,840 --> 00:09:29,860 He thought it was a little bit too ad hoc. 174 00:09:29,860 --> 00:09:31,430 It was too heuristic. 175 00:09:31,430 --> 00:09:33,365 It didn't take advantage of anything we 176 00:09:33,365 --> 00:09:35,120 might know about physics. 177 00:09:35,120 --> 00:09:37,500 And so people began to say, well, why does it work? 178 00:09:37,500 --> 00:09:39,570 And when does it not work? 179 00:09:39,570 --> 00:09:42,130 And that's just about the best question you can answer in a 180 00:09:42,130 --> 00:09:43,832 situation like this. 181 00:09:43,832 --> 00:09:48,300 And by playing with some more of Guzman's pictures and 182 00:09:48,300 --> 00:09:50,870 reflecting on them, it turned out that it worked because the 183 00:09:50,870 --> 00:09:53,670 world is full of three-face junctions. 184 00:09:58,350 --> 00:10:01,180 Or let me say three-face vertexes because they're out 185 00:10:01,180 --> 00:10:02,940 there in the world. 186 00:10:02,940 --> 00:10:06,950 We'll reserve the word junction for something else. 187 00:10:06,950 --> 00:10:12,540 And three-face vertexes generally project into either 188 00:10:12,540 --> 00:10:16,430 an arrow or a fork. 189 00:10:16,430 --> 00:10:21,410 So Guzman's whole program worked on the weak backward 190 00:10:21,410 --> 00:10:24,700 conclusion that if you see one of those, it probably came 191 00:10:24,700 --> 00:10:25,890 from one of these. 192 00:10:25,890 --> 00:10:27,320 So this is in the drawing. 193 00:10:27,320 --> 00:10:29,160 That's in the world. 194 00:10:29,160 --> 00:10:32,130 So by a process that's neither deduction or induction, but 195 00:10:32,130 --> 00:10:35,410 rather abduction, you see one of those guys. 196 00:10:35,410 --> 00:10:38,840 And you say, well, they often come from three-face vertexes 197 00:10:38,840 --> 00:10:41,610 in the world, so if you see one, it probably came from a 198 00:10:41,610 --> 00:10:42,670 three-face vertex in the world. 199 00:10:42,670 --> 00:10:45,520 That's abduction. 200 00:10:45,520 --> 00:10:51,670 So once Huffman saw all that, being a mathematician, he 201 00:10:51,670 --> 00:10:55,135 began to think about how one might develop a different and 202 00:10:55,135 --> 00:10:56,430 better theory. 203 00:10:56,430 --> 00:11:02,510 But we have to recognize that all this work started off with 204 00:11:02,510 --> 00:11:05,496 the efforts of Guzman, who was an experimentalist. 205 00:11:13,610 --> 00:11:16,775 And Huffman was a mathematician. 206 00:11:20,460 --> 00:11:25,520 So naturally, they approached the problem differently. 207 00:11:25,520 --> 00:11:29,140 So Huffman says, I'm not going to concern myself too much 208 00:11:29,140 --> 00:11:32,600 with the actual problem that Guzman was trying to solve. 209 00:11:32,600 --> 00:11:35,750 Rather, I'm going to work in a very simple world, which I can 210 00:11:35,750 --> 00:11:38,390 deal with mathematically. 211 00:11:38,390 --> 00:11:41,560 So he decided that he was going to work in a world which 212 00:11:41,560 --> 00:11:44,490 had several characteristics. 213 00:11:44,490 --> 00:11:47,760 Characteristic number one was that the world would be 214 00:11:47,760 --> 00:11:49,550 presented in general position. 215 00:11:58,969 --> 00:12:02,190 That is to say, no screw cases. 216 00:12:02,190 --> 00:12:05,920 So if you see a cube, it's going to look like this. 217 00:12:09,660 --> 00:12:14,540 And it's not going to look like this. 218 00:12:14,540 --> 00:12:15,970 So that's out. 219 00:12:15,970 --> 00:12:17,360 And this is in. 220 00:12:17,360 --> 00:12:19,550 And the idea here is that that's not general position, 221 00:12:19,550 --> 00:12:21,930 because if you perturb your point of view a little bit, 222 00:12:21,930 --> 00:12:23,340 you'll change those T junctions 223 00:12:23,340 --> 00:12:25,810 into forks and arrows. 224 00:12:25,810 --> 00:12:27,430 So we know it had to deal with those kinds of 225 00:12:27,430 --> 00:12:31,210 weird kinds of cases. 226 00:12:31,210 --> 00:12:34,820 So that's presumption number one. 227 00:12:34,820 --> 00:12:38,760 Presumption number two is that we're going to be dealing with 228 00:12:38,760 --> 00:12:40,010 a world that's trihedral. 229 00:12:45,650 --> 00:12:49,080 That means all vertexes out there are going to be formed 230 00:12:49,080 --> 00:12:50,330 from three planes. 231 00:12:52,770 --> 00:12:55,720 So you're going to have the intersection of three planes. 232 00:12:55,720 --> 00:12:58,840 So how many kinds of junctions can you see if the world is 233 00:12:58,840 --> 00:13:04,040 composed that way is the question that Huffman sent 234 00:13:04,040 --> 00:13:06,225 himself upon. 235 00:13:06,225 --> 00:13:10,990 The next assumption was that there are going to be four 236 00:13:10,990 --> 00:13:11,840 kinds of lines. 237 00:13:11,840 --> 00:13:14,820 See, Guzman only recognized two kinds of lines-- lines 238 00:13:14,820 --> 00:13:17,350 that have a length and lines that don't have a link. 239 00:13:17,350 --> 00:13:20,160 And they don't have very much to do with the physical world. 240 00:13:20,160 --> 00:13:22,060 So Huffman says, I want to get the constraint out of the 241 00:13:22,060 --> 00:13:23,610 physical world. 242 00:13:23,610 --> 00:13:26,590 So I'm going to deal with four kinds of lines-- 243 00:13:26,590 --> 00:13:34,660 concave, convex, and boundary. 244 00:13:42,820 --> 00:13:46,030 So each of those kinds of lines is going to 245 00:13:46,030 --> 00:13:47,240 have its own notation. 246 00:13:47,240 --> 00:13:52,080 We'll call the convex lines plus, the concave lines minus, 247 00:13:52,080 --> 00:13:54,600 and a boundary lines are going to get an arrow on them, 248 00:13:54,600 --> 00:14:00,330 depending on which side of the object-- 249 00:14:00,330 --> 00:14:02,510 which side you would see the object if you walk along the 250 00:14:02,510 --> 00:14:05,364 direction of this little arrow. 251 00:14:05,364 --> 00:14:06,614 STUDENT: Question. 252 00:14:11,220 --> 00:14:12,684 Which is concave and which is convex? 253 00:14:12,684 --> 00:14:14,636 You said something and you wrote the opposite. 254 00:14:14,636 --> 00:14:15,612 PATRICK WINSTON: Yeah, sorry. 255 00:14:15,612 --> 00:14:18,060 Thank you. 256 00:14:18,060 --> 00:14:19,480 So concave, convex, and boundary. 257 00:14:19,480 --> 00:14:20,270 Thank you. 258 00:14:20,270 --> 00:14:23,345 So this down here, that's a concave line. 259 00:14:23,345 --> 00:14:26,550 And that would get a minus label. 260 00:14:26,550 --> 00:14:28,190 Oh, I don't know. 261 00:14:28,190 --> 00:14:31,290 These lines you're seeing here, if there were stuff 262 00:14:31,290 --> 00:14:33,440 behind them instead of me, then all those 263 00:14:33,440 --> 00:14:36,960 would be convex lines. 264 00:14:36,960 --> 00:14:38,220 Many times you see a boundary line. 265 00:14:38,220 --> 00:14:41,720 For example, now you don't see both sides of that line down 266 00:14:41,720 --> 00:14:42,370 here at the bottom. 267 00:14:42,370 --> 00:14:43,750 So that's a boundary line. 268 00:14:43,750 --> 00:14:46,250 And the arrow would point in that direction, so as to keep 269 00:14:46,250 --> 00:14:49,330 the stuff of the object on the right as you walk along a kind 270 00:14:49,330 --> 00:14:52,160 of mathematical convention. 271 00:14:52,160 --> 00:14:54,710 So three kinds of lines, four kinds of labels. 272 00:14:54,710 --> 00:14:56,620 And there's some things left out. 273 00:14:56,620 --> 00:14:59,860 That's because Huffman wanted to keep his problem simple, 274 00:14:59,860 --> 00:15:01,690 something he could manage by hand. 275 00:15:01,690 --> 00:15:02,780 What's left out? 276 00:15:02,780 --> 00:15:04,060 Cracks are left out. 277 00:15:04,060 --> 00:15:07,160 Shadows are left out. 278 00:15:07,160 --> 00:15:10,750 There's a presumption that there's nothing of interest 279 00:15:10,750 --> 00:15:12,000 here with respect to that. 280 00:15:14,940 --> 00:15:20,260 So let's have a little vocabulary before I go on. 281 00:15:20,260 --> 00:15:21,560 And I'll try to stick to it. 282 00:15:21,560 --> 00:15:24,100 But there's the stuff out there, and that consists of 283 00:15:24,100 --> 00:15:29,540 vertexes and edges. 284 00:15:32,570 --> 00:15:35,700 And over here, on the blackboard, we'll have 285 00:15:35,700 --> 00:15:42,950 junctions and lines. 286 00:15:42,950 --> 00:15:44,490 And I'll try to stick to that vocabulary. 287 00:15:44,490 --> 00:15:44,870 All right? 288 00:15:44,870 --> 00:15:45,660 Yes, Christopher? 289 00:15:45,660 --> 00:15:47,590 STUDENT: Didn't you say there were four types of lines? 290 00:15:47,590 --> 00:15:49,630 PATRICK WINSTON: Yeah, there are four kinds of-- 291 00:15:49,630 --> 00:15:50,940 the question is, didn't I say there were 292 00:15:50,940 --> 00:15:51,840 four kinds of lines? 293 00:15:51,840 --> 00:15:53,860 There are three kinds of lines, but since we can label 294 00:15:53,860 --> 00:15:55,100 a boundary line in either direction, 295 00:15:55,100 --> 00:15:55,980 we have four labels. 296 00:15:55,980 --> 00:15:58,010 OK? 297 00:15:58,010 --> 00:16:01,210 It depends on which side of the object the stuff is on. 298 00:16:01,210 --> 00:16:02,765 And that will be clear, I think, as 299 00:16:02,765 --> 00:16:05,670 soon as I do an example. 300 00:16:05,670 --> 00:16:08,650 So one, two, three assumptions. 301 00:16:08,650 --> 00:16:11,170 A little bit of vocabulary. 302 00:16:11,170 --> 00:16:16,280 So we have the possibility of making a complete catalog. 303 00:16:16,280 --> 00:16:17,220 This is so simple. 304 00:16:17,220 --> 00:16:20,200 We have the possibility of making a complete catalog of 305 00:16:20,200 --> 00:16:22,510 all the ways that lines can come together to form a 306 00:16:22,510 --> 00:16:26,576 junction with respect to these four labels. 307 00:16:26,576 --> 00:16:31,730 Now at first you might say, oh my god, that will take a 308 00:16:31,730 --> 00:16:34,230 couple of years. 309 00:16:34,230 --> 00:16:36,380 But maybe it won't take a couple of years. 310 00:16:36,380 --> 00:16:43,320 And in the end, to perhaps your surprise, you discover 311 00:16:43,320 --> 00:16:47,660 that there are only 18 ways to arrange the labels around a 312 00:16:47,660 --> 00:16:49,760 junction in this world. 313 00:16:49,760 --> 00:16:52,220 Everything else is excluded. 314 00:16:52,220 --> 00:16:54,040 If you have something that's not in the set we're going to 315 00:16:54,040 --> 00:16:58,930 produce now, it can't be built with trihedral vertexes. 316 00:17:01,600 --> 00:17:10,400 So I've listed up there six L's, five forks, four T's, and 317 00:17:10,400 --> 00:17:12,650 three arrows. 318 00:17:12,650 --> 00:17:16,319 Let's see if I can figure out why there are those 18 and 319 00:17:16,319 --> 00:17:17,569 nothing else. 320 00:17:19,910 --> 00:17:25,300 Well, if we have three vertexes coming together, that 321 00:17:25,300 --> 00:17:28,010 means there are eight octants, right? 322 00:17:28,010 --> 00:17:32,840 And the stuff of the object may fill 1, 2, 3, 4, 5, 6, 7 323 00:17:32,840 --> 00:17:35,030 or all eight octants. 324 00:17:35,030 --> 00:17:36,450 Now of course, if you fill all eight 325 00:17:36,450 --> 00:17:37,330 octants, there's no junction. 326 00:17:37,330 --> 00:17:40,250 So we don't consider that case. 327 00:17:40,250 --> 00:17:43,080 If we don't fill any the octants, there's no junction. 328 00:17:43,080 --> 00:17:43,890 There's no vertex. 329 00:17:43,890 --> 00:17:46,540 So we don't consider that case. 330 00:17:46,540 --> 00:17:51,080 But if just one of the eight octants is filled with stuff, 331 00:17:51,080 --> 00:17:53,130 then we can look at it from any of the 332 00:17:53,130 --> 00:17:55,760 seven remaining octants. 333 00:17:55,760 --> 00:17:59,360 So right now, you're looking at it from one of the seven 334 00:17:59,360 --> 00:18:00,880 remaining octants. 335 00:18:00,880 --> 00:18:02,750 And if I'm not mistaken, you're going to see a 336 00:18:02,750 --> 00:18:05,800 fork-style junction there, right? 337 00:18:05,800 --> 00:18:07,600 And you're going to see a fork-style junction in which 338 00:18:07,600 --> 00:18:09,905 all of the edges are convex. 339 00:18:14,350 --> 00:18:16,850 An unfortunate selection of names, because the linguists 340 00:18:16,850 --> 00:18:18,600 tell me that we index all of our words 341 00:18:18,600 --> 00:18:19,500 by the first forename. 342 00:18:19,500 --> 00:18:21,210 And those have the same first forename, so 343 00:18:21,210 --> 00:18:23,840 they're easily confused. 344 00:18:23,840 --> 00:18:25,830 So here's a fork-style junction. 345 00:18:25,830 --> 00:18:29,160 And we know that one way that's legitimate for the 346 00:18:29,160 --> 00:18:33,050 lines to come in is with four pluses. 347 00:18:33,050 --> 00:18:35,120 Now that's not the only way you can see that. 348 00:18:35,120 --> 00:18:37,170 And here's another way. 349 00:18:37,170 --> 00:18:39,200 There's an L-style junction, right? 350 00:18:39,200 --> 00:18:41,650 And both of those are boundary lines. 351 00:18:41,650 --> 00:18:45,810 And we want to draw the boundary line indicators on 352 00:18:45,810 --> 00:18:49,550 there so that if we walk along the arrows, the stuff of the 353 00:18:49,550 --> 00:18:52,180 object would be on the right. 354 00:18:52,180 --> 00:18:54,730 So I suppose, to make it easier to me do my drawing, I 355 00:18:54,730 --> 00:18:56,520 should look at it this way. 356 00:18:56,520 --> 00:19:00,650 And then I would say, well, that has to be a legitimate 357 00:19:00,650 --> 00:19:03,350 way of labeling a junction. 358 00:19:03,350 --> 00:19:05,160 Are there any more? 359 00:19:05,160 --> 00:19:08,230 Well, there's seven altogether, but many of them 360 00:19:08,230 --> 00:19:09,760 are the same. 361 00:19:09,760 --> 00:19:12,010 There is one more that's a little different, though. 362 00:19:12,010 --> 00:19:14,470 I can hold this guy up like so. 363 00:19:14,470 --> 00:19:17,070 And if I'm holding at the right angle for you, you see 364 00:19:17,070 --> 00:19:19,020 an arrow-style junction, right? 365 00:19:19,020 --> 00:19:21,275 Two boundaries, and the barb is convex. 366 00:19:24,430 --> 00:19:27,143 So in this particular case, I've got that. 367 00:19:27,143 --> 00:19:28,365 I've got that. 368 00:19:28,365 --> 00:19:31,840 And I've got a plus there. 369 00:19:31,840 --> 00:19:34,350 And that's there happen to be for the one octant filled with 370 00:19:34,350 --> 00:19:36,100 stuff case. 371 00:19:36,100 --> 00:19:37,890 I happen to be able to reverse this, though. 372 00:19:37,890 --> 00:19:41,200 And here's the seven octants filled case. 373 00:19:41,200 --> 00:19:44,940 So that tells us that it's possible to have a vertex out 374 00:19:44,940 --> 00:19:48,340 there in a space that when reduced to a junction on the 375 00:19:48,340 --> 00:19:51,760 board deserves three minus labels, because all of these 376 00:19:51,760 --> 00:19:54,680 that you're seeing now are concave. 377 00:19:54,680 --> 00:20:00,920 So another fork-style junction looks like so. 378 00:20:00,920 --> 00:20:06,210 And since there's only one octant to look at from, that 379 00:20:06,210 --> 00:20:11,280 completes our analysis of the seven octants filled case. 380 00:20:11,280 --> 00:20:14,360 Now we have a couple of other possibilities here. 381 00:20:14,360 --> 00:20:16,440 We might have five octants filled with stuff. 382 00:20:22,770 --> 00:20:27,420 So that means there are three octants that we can look from. 383 00:20:27,420 --> 00:20:29,030 So let's suppose that these little chalk 384 00:20:29,030 --> 00:20:32,860 pieces are little people. 385 00:20:32,860 --> 00:20:38,580 And they're looking at this junction down there, where 386 00:20:38,580 --> 00:20:41,930 this white object is fused with the table. 387 00:20:41,930 --> 00:20:43,760 I'm fusing it with the table because I want to consider it 388 00:20:43,760 --> 00:20:45,100 to be one object. 389 00:20:45,100 --> 00:20:47,280 We can view it from the three objects indicated by those 390 00:20:47,280 --> 00:20:49,190 three little chalk pieces. 391 00:20:49,190 --> 00:20:52,580 And ask ourselves, well, in the event that we look at it 392 00:20:52,580 --> 00:20:55,110 from those three places, what do we see? 393 00:20:55,110 --> 00:20:59,000 And if we look at it from the perspective of the piece of 394 00:20:59,000 --> 00:20:59,780 purple chalk-- 395 00:20:59,780 --> 00:21:01,610 I'll have to walk around and be sure-- 396 00:21:01,610 --> 00:21:03,960 looks like an arrow junction with two 397 00:21:03,960 --> 00:21:05,575 concaves and a convex. 398 00:21:09,020 --> 00:21:10,270 Did I get that right? 399 00:21:12,460 --> 00:21:14,080 So I'm looking at it from this perspective. 400 00:21:14,080 --> 00:21:15,210 It's an arrow. 401 00:21:15,210 --> 00:21:18,460 This is convex and these two are concave because I fused 402 00:21:18,460 --> 00:21:22,350 the paper box with the table. 403 00:21:22,350 --> 00:21:24,840 Looking at it from the perspective of this blue guy-- 404 00:21:24,840 --> 00:21:27,580 let me rotate it so you can have a better understanding of 405 00:21:27,580 --> 00:21:28,610 the blue guy-- 406 00:21:28,610 --> 00:21:32,250 it looks like a concave line and a boundary. 407 00:21:32,250 --> 00:21:36,750 So it's an L. And this one is a boundary. 408 00:21:36,750 --> 00:21:38,400 And that's concave. 409 00:21:38,400 --> 00:21:41,710 And by a kind of symmetry, we're also going to get that 410 00:21:41,710 --> 00:21:46,250 one from the other side, the third of the three octants. 411 00:21:46,250 --> 00:21:47,300 Well, we're off and running. 412 00:21:47,300 --> 00:21:50,660 But we still have an awful lot to go. 413 00:21:50,660 --> 00:21:56,760 And we could manage to deal with it by thinking about this 414 00:21:56,760 --> 00:21:59,640 object once again. 415 00:21:59,640 --> 00:22:06,290 But instead of this situation out here, to turn it around 416 00:22:06,290 --> 00:22:09,310 and look at this vertex. 417 00:22:09,310 --> 00:22:11,580 Think about the junctions that it can produce. 418 00:22:11,580 --> 00:22:12,860 I think I'll do that for you. 419 00:22:12,860 --> 00:22:14,610 Because you really have to play with this and move it 420 00:22:14,610 --> 00:22:19,000 around a little bit to see how things are going to look. 421 00:22:19,000 --> 00:22:23,480 So let me think about how that's going to work out. 422 00:22:23,480 --> 00:22:27,150 I know that one of the possibilities is going 423 00:22:27,150 --> 00:22:29,480 to look like so. 424 00:22:29,480 --> 00:22:31,830 I might as well not hide that from you. 425 00:22:31,830 --> 00:22:34,080 It's going to be what happens when there's a little man 426 00:22:34,080 --> 00:22:36,770 looking up at the junction. 427 00:22:36,770 --> 00:22:39,720 And this one's going to be minus. 428 00:22:39,720 --> 00:22:43,954 And now we've got two more that are just like that. 429 00:22:43,954 --> 00:22:45,204 Look like so. 430 00:22:50,980 --> 00:22:52,270 And you say, oops. 431 00:23:01,820 --> 00:23:04,230 You say, aren't those just a rotational 432 00:23:04,230 --> 00:23:05,780 variance of each other? 433 00:23:05,780 --> 00:23:07,530 And the answer is sure. 434 00:23:07,530 --> 00:23:11,280 I write them all down, because if you get a fork-style 435 00:23:11,280 --> 00:23:13,870 junction in space, there are three different ways it could 436 00:23:13,870 --> 00:23:14,300 be labeled. 437 00:23:14,300 --> 00:23:18,640 Depending on which of the lines you put 438 00:23:18,640 --> 00:23:20,160 the minus label on. 439 00:23:25,680 --> 00:23:26,920 So that takes care of that. 440 00:23:26,920 --> 00:23:30,310 And then there's one more of these fork-style junctions. 441 00:23:30,310 --> 00:23:36,200 And that's plus, plus, minus that derives from this case. 442 00:23:36,200 --> 00:23:39,150 And there appear to be three more of 443 00:23:39,150 --> 00:23:41,120 these L-style junctions. 444 00:23:41,120 --> 00:23:50,280 And they look like, let's see, plus, then plus. 445 00:23:50,280 --> 00:23:53,860 I'm having to think this through as I go. 446 00:23:53,860 --> 00:23:55,110 And then-- 447 00:23:57,910 --> 00:24:00,490 and that's it. 448 00:24:00,490 --> 00:24:01,980 Well, what about the T's? 449 00:24:01,980 --> 00:24:05,420 Well, in this world, the only way you can get a T is if some 450 00:24:05,420 --> 00:24:07,605 object is obscuring another object. 451 00:24:07,605 --> 00:24:10,050 And if an object is obscuring a line, it can 452 00:24:10,050 --> 00:24:12,130 be any line at all. 453 00:24:12,130 --> 00:24:15,980 So that's why the four remaining ones are easy beyond 454 00:24:15,980 --> 00:24:19,470 description to label. 455 00:24:19,470 --> 00:24:22,820 And of course, the cross pieces of the T are all 456 00:24:22,820 --> 00:24:25,930 boundary lines, with the obscuring object on the right. 457 00:24:29,720 --> 00:24:30,520 Now let's see. 458 00:24:30,520 --> 00:24:37,110 We've taken care now of the one, three, five, and seven 459 00:24:37,110 --> 00:24:38,480 octants filled cases. 460 00:24:38,480 --> 00:24:42,060 What about two, four, and six? 461 00:24:42,060 --> 00:24:46,480 Well, it turns out you can have vertexes that are made 462 00:24:46,480 --> 00:24:47,930 that way too. 463 00:24:47,930 --> 00:24:50,180 But they will have more than three faces. 464 00:24:50,180 --> 00:24:51,730 They'll have six faces. 465 00:24:51,730 --> 00:24:57,255 They'll be like what happens when an object comes together 466 00:24:57,255 --> 00:24:58,505 at a point, like so. 467 00:25:01,308 --> 00:25:02,760 Like that. 468 00:25:02,760 --> 00:25:04,500 You can play with it a little bit and see that if you have 469 00:25:04,500 --> 00:25:07,090 two, four, or six objects filled with stuff, there are 470 00:25:07,090 --> 00:25:08,010 more than three faces. 471 00:25:08,010 --> 00:25:09,690 So we're going to ignore those. 472 00:25:09,690 --> 00:25:16,040 So our constraint is going to be a little more severe than 473 00:25:16,040 --> 00:25:18,640 would be suggested by the terminology Huffman uses. 474 00:25:18,640 --> 00:25:20,850 They're going to be trihedral all right, but they're also 475 00:25:20,850 --> 00:25:22,100 going to be three faces. 476 00:25:25,620 --> 00:25:26,830 So we went to a lot of work there. 477 00:25:26,830 --> 00:25:27,670 But what have we discovered? 478 00:25:27,670 --> 00:25:31,120 We've discovered that in this world, this is a complete, 479 00:25:31,120 --> 00:25:33,970 100% percent, nothing excluded, nothing else can be 480 00:25:33,970 --> 00:25:38,680 there, catalog of all possible ways the junctions can have 481 00:25:38,680 --> 00:25:41,770 line labels arranged around them. 482 00:25:41,770 --> 00:25:44,010 There's nothing else in this world. 483 00:25:44,010 --> 00:25:46,970 So that's a very powerful constraint. 484 00:25:46,970 --> 00:25:48,620 So now let's see what we can do with it. 485 00:25:53,770 --> 00:25:56,340 This example is usually more fun when the Red Sox are doing 486 00:25:56,340 --> 00:25:58,340 better, but they're not. 487 00:25:58,340 --> 00:25:59,870 Yet we'll use it any way. 488 00:25:59,870 --> 00:26:01,870 We're going to start with an object that 489 00:26:01,870 --> 00:26:03,120 looks like home plate. 490 00:26:10,990 --> 00:26:12,900 And I'll ask you the question. 491 00:26:12,900 --> 00:26:16,210 Can you build one of those? 492 00:26:16,210 --> 00:26:17,940 I don't know. 493 00:26:17,940 --> 00:26:20,640 Let's give it a shot. 494 00:26:20,640 --> 00:26:22,790 We're going to assume that this object is hanging, 495 00:26:22,790 --> 00:26:24,250 floating in space. 496 00:26:24,250 --> 00:26:28,130 So therefore, all of these lines around the boundary are 497 00:26:28,130 --> 00:26:31,490 boundary lines, like so. 498 00:26:31,490 --> 00:26:34,140 Now that gets us off to a good-- it's just hanging in 499 00:26:34,140 --> 00:26:35,040 space, Christopher, all right? 500 00:26:35,040 --> 00:26:35,570 You look confused. 501 00:26:35,570 --> 00:26:38,230 It's just hanging in space so that all the lines around the 502 00:26:38,230 --> 00:26:45,770 edges are places where you see only one side has stuff on it. 503 00:26:45,770 --> 00:26:49,650 So that enables us to just quickly run around the 504 00:26:49,650 --> 00:26:54,210 periphery and put arrow labels on all those outside lines. 505 00:26:54,210 --> 00:26:55,690 Now we have a lot of arrow-style 506 00:26:55,690 --> 00:26:57,020 junctions on the boundary. 507 00:26:57,020 --> 00:26:59,340 That's commonly the case. 508 00:26:59,340 --> 00:27:02,900 So we can run over to our catalog of all possible 509 00:27:02,900 --> 00:27:07,410 labels, and we see that if we have an arrow with boundaries 510 00:27:07,410 --> 00:27:10,490 on its barbs, there's only one of those. 511 00:27:10,490 --> 00:27:14,790 So I know instantly that there must be a plus on the shaft. 512 00:27:14,790 --> 00:27:18,070 So we can come back here and take all these arrows here. 513 00:27:18,070 --> 00:27:22,310 And label them with plus lines on their shafts. 514 00:27:22,310 --> 00:27:25,810 Now a line can't change its nature along its length. 515 00:27:25,810 --> 00:27:28,390 So if it's a plus line on one end, it's going to be a plus 516 00:27:28,390 --> 00:27:29,705 line on the other end. 517 00:27:29,705 --> 00:27:32,970 All right? 518 00:27:32,970 --> 00:27:34,220 So what else can we do? 519 00:27:34,220 --> 00:27:37,840 Here deep inside is a fork-style junction. 520 00:27:37,840 --> 00:27:43,840 It's got convex markers on both of those two lines. 521 00:27:43,840 --> 00:27:47,130 So we go over to our catalog and say, what can we say about 522 00:27:47,130 --> 00:27:50,660 it, given that there are pluses on two of its lines? 523 00:27:50,660 --> 00:27:52,230 Whoop, that means that the third one has to 524 00:27:52,230 --> 00:27:53,480 be a plus as well. 525 00:27:57,820 --> 00:27:58,390 And now we're done. 526 00:27:58,390 --> 00:27:59,370 We've labeled everything. 527 00:27:59,370 --> 00:28:00,830 Except-- 528 00:28:00,830 --> 00:28:02,540 look at this. 529 00:28:02,540 --> 00:28:05,930 What about that guy? 530 00:28:05,930 --> 00:28:08,140 There's an L-style junction with pluses on 531 00:28:08,140 --> 00:28:10,240 both of its two lines. 532 00:28:10,240 --> 00:28:13,020 Is there one of those in my catalog? 533 00:28:13,020 --> 00:28:14,280 No. 534 00:28:14,280 --> 00:28:18,180 Therefore, I haven't passed a necessary condition for 535 00:28:18,180 --> 00:28:21,020 constructability in the world that I've made. 536 00:28:21,020 --> 00:28:22,080 You can't make it. 537 00:28:22,080 --> 00:28:23,330 You can't construct it. 538 00:28:25,950 --> 00:28:30,470 So Huffman's ideas give us a way of testing something to 539 00:28:30,470 --> 00:28:35,600 see if it's not possible for it to be in this world. 540 00:28:41,360 --> 00:28:45,200 If it passes the test, does that mean it's possible? 541 00:28:45,200 --> 00:28:45,740 No. 542 00:28:45,740 --> 00:28:48,740 It's a necessary but not sufficient condition. 543 00:28:48,740 --> 00:28:51,730 On this one-- 544 00:28:51,730 --> 00:28:53,580 blue-collar occupation-- 545 00:28:53,580 --> 00:28:55,910 on this one, maybe it will help if we 546 00:28:55,910 --> 00:28:58,060 put in another line. 547 00:28:58,060 --> 00:29:01,100 For example, we could put a line like so. 548 00:29:01,100 --> 00:29:03,760 You feel better about it now? 549 00:29:03,760 --> 00:29:04,530 I don't know. 550 00:29:04,530 --> 00:29:06,290 Let's see. 551 00:29:06,290 --> 00:29:09,390 This has to be a plus for the same argument we used on 552 00:29:09,390 --> 00:29:11,200 several other arrows before. 553 00:29:11,200 --> 00:29:15,120 That gives us an arrow-style junction here with a plus on 554 00:29:15,120 --> 00:29:17,140 everything. 555 00:29:17,140 --> 00:29:20,298 Is there such a junction label? 556 00:29:20,298 --> 00:29:21,510 No. 557 00:29:21,510 --> 00:29:22,445 We lose. 558 00:29:22,445 --> 00:29:23,670 It doesn't help. 559 00:29:23,670 --> 00:29:27,632 You think you can make it, but you can't. 560 00:29:27,632 --> 00:29:29,272 STUDENT: You could actually construct it as 561 00:29:29,272 --> 00:29:30,584 a 3-D object, though. 562 00:29:34,260 --> 00:29:34,900 PATRICK WINSTON: He thinks you can 563 00:29:34,900 --> 00:29:37,570 construct it as a 3-D object. 564 00:29:37,570 --> 00:29:40,790 Let me show you the next example, Christopher. 565 00:29:40,790 --> 00:29:42,040 Consider this example. 566 00:29:52,956 --> 00:29:56,570 Can you make that? 567 00:29:56,570 --> 00:29:58,300 Your intuition is yes. 568 00:29:58,300 --> 00:29:59,550 So let's label it. 569 00:30:11,126 --> 00:30:12,480 Oh, I've already lost. 570 00:30:16,500 --> 00:30:18,890 We just boost that up a little bit to make the 571 00:30:18,890 --> 00:30:20,140 situation more clear. 572 00:30:25,780 --> 00:30:28,670 So already, I've got myself in a situation where I can't 573 00:30:28,670 --> 00:30:31,230 label that. 574 00:30:31,230 --> 00:30:33,090 But you feel like you can make it. 575 00:30:33,090 --> 00:30:36,290 So what's wrong? 576 00:30:36,290 --> 00:30:37,560 What's wrong is-- 577 00:30:37,560 --> 00:30:38,220 what, Elliott? 578 00:30:38,220 --> 00:30:39,350 STUDENT: You have an obscured-- 579 00:30:39,350 --> 00:30:44,126 or, we're presuming that we have an obscured [INAUDIBLE] 580 00:30:44,126 --> 00:30:51,400 alley from the upper-left corner to the [INAUDIBLE]. 581 00:30:51,400 --> 00:30:53,490 PATRICK WINSTON: Putting a little interpretation on what 582 00:30:53,490 --> 00:30:55,660 Elliott has said. 583 00:30:55,660 --> 00:30:59,410 If you look at this situation back here, you get a 584 00:30:59,410 --> 00:31:02,600 four-faced junction there. 585 00:31:02,600 --> 00:31:03,700 So you can make it. 586 00:31:03,700 --> 00:31:06,000 But not with three faces. 587 00:31:06,000 --> 00:31:10,030 So some of these look like you could make it. 588 00:31:10,030 --> 00:31:12,900 But they can't be labeled because you need more than 589 00:31:12,900 --> 00:31:16,300 four faces at a junction. 590 00:31:16,300 --> 00:31:18,650 And we can carry that idea back here. 591 00:31:18,650 --> 00:31:19,780 You can make this OK. 592 00:31:19,780 --> 00:31:22,810 But this junction, you've got two in the back and two here. 593 00:31:22,810 --> 00:31:24,970 So it has four faces. 594 00:31:24,970 --> 00:31:27,720 Same idea. 595 00:31:27,720 --> 00:31:37,970 So that's Guzman's contribution. 596 00:31:37,970 --> 00:31:40,080 That's Huffman's contribution. 597 00:31:40,080 --> 00:31:41,900 Huffman was a mathematician. 598 00:31:41,900 --> 00:31:43,900 But we wanted to build robots back in those days. 599 00:31:43,900 --> 00:31:46,790 And neither one of these guys solved the problem of dealing 600 00:31:46,790 --> 00:31:51,530 with natural objects with shadows, with cracks, with 601 00:31:51,530 --> 00:31:55,710 more than trihedral vertexes in space, and 602 00:31:55,710 --> 00:31:57,585 what to do about that? 603 00:31:57,585 --> 00:32:02,110 Well, that was a problem that another graduate student, 604 00:32:02,110 --> 00:32:03,840 David Waltz, set about to solve. 605 00:32:06,820 --> 00:32:15,310 So Waltz decided that he would not be content unless he added 606 00:32:15,310 --> 00:32:25,170 cracks, shadows, non-trihedral vertexes. 607 00:32:29,123 --> 00:32:30,560 Uh-- 608 00:32:30,560 --> 00:32:31,810 yeah, non-trihedral vertexes. 609 00:32:38,330 --> 00:32:39,580 And light. 610 00:32:42,210 --> 00:32:48,630 These considerations led Waltz to go from 611 00:32:48,630 --> 00:32:53,450 four labels to 50-plus. 612 00:32:53,450 --> 00:32:55,810 Because he had to pack a lot of information into each of 613 00:32:55,810 --> 00:32:57,760 the labels he put on a line. 614 00:32:57,760 --> 00:32:59,110 What kind of light was on the right? 615 00:32:59,110 --> 00:33:00,310 What kind of light was on the left? 616 00:33:00,310 --> 00:33:01,140 Maybe it's a crack. 617 00:33:01,140 --> 00:33:02,630 Maybe it's a crack that-- 618 00:33:02,630 --> 00:33:05,850 all sorts of considerations. 619 00:33:05,850 --> 00:33:08,360 Here we had 18 ways that lines can come 620 00:33:08,360 --> 00:33:09,610 together around junctions. 621 00:33:12,060 --> 00:33:18,130 That went to thousands of junctions in Waltz's world. 622 00:33:18,130 --> 00:33:19,380 So here's Guzman. 623 00:33:22,630 --> 00:33:24,410 He writes a program that sort of works. 624 00:33:27,500 --> 00:33:29,500 Down below, we have Huffman. 625 00:33:41,990 --> 00:33:48,090 Huffman, who has a theory but solves the wrong problem. 626 00:33:48,090 --> 00:33:50,500 So here comes Waltz, and he's trying to solve the right 627 00:33:50,500 --> 00:33:55,810 problem with a satisfying theory that has a 628 00:33:55,810 --> 00:33:57,720 generalizable principle. 629 00:33:57,720 --> 00:34:00,710 So when we get all through this, we'll talk about 630 00:34:00,710 --> 00:34:01,960 criteria for success. 631 00:34:01,960 --> 00:34:04,060 And we'll conclude that to have a really successful 632 00:34:04,060 --> 00:34:07,670 thing, you need a problem, to start with. 633 00:34:07,670 --> 00:34:08,790 You need a method that works. 634 00:34:08,790 --> 00:34:09,850 And you have to show that it works 635 00:34:09,850 --> 00:34:12,040 because of some principal. 636 00:34:12,040 --> 00:34:17,040 So Guzman had the problem and something that worked. 637 00:34:17,040 --> 00:34:20,219 Huffman had a method which worked on the wrong problem. 638 00:34:20,219 --> 00:34:22,790 And it's left to Waltz to bring it all together. 639 00:34:22,790 --> 00:34:24,770 So Waltz does all this work. 640 00:34:24,770 --> 00:34:28,530 And now he has, instead at 18 labels, he has thousands. 641 00:34:28,530 --> 00:34:32,469 Instead of four-line labels, he has more than 50. 642 00:34:32,469 --> 00:34:34,280 So naturally, it becomes difficult to 643 00:34:34,280 --> 00:34:36,659 work these by hand. 644 00:34:36,659 --> 00:34:42,639 We were able to work those Huffman examples by hand. 645 00:34:42,639 --> 00:34:45,018 We started with labeling everything on the boundary and 646 00:34:45,018 --> 00:34:45,580 worked our way in. 647 00:34:45,580 --> 00:34:46,960 There's no particular method there. 648 00:34:46,960 --> 00:34:50,650 It was just easy to work out the puzzle. 649 00:34:50,650 --> 00:34:55,500 But poor Waltz, he didn't have that luxury. 650 00:34:55,500 --> 00:34:58,910 So he might have, in a typical scene, he might have tens or 651 00:34:58,910 --> 00:35:04,130 even hundreds of junctions to label and no easy way of 652 00:35:04,130 --> 00:35:04,930 dealing with it. 653 00:35:04,930 --> 00:35:11,060 So naturally writes himself a depth-first search program. 654 00:35:11,060 --> 00:35:19,420 So here is vertex, or rather junction number 1. 655 00:35:19,420 --> 00:35:25,080 There are many choices for which label can be used on it. 656 00:35:25,080 --> 00:35:29,070 And for each of those choices, whatever he's decided junction 657 00:35:29,070 --> 00:35:34,090 number 2 is has its own suite of possibilities. 658 00:35:34,090 --> 00:35:35,670 And so it becomes a simple depth-first 659 00:35:35,670 --> 00:35:39,040 search problem, right? 660 00:35:39,040 --> 00:35:42,580 So in actuality, as soon as Waltz-- 661 00:35:42,580 --> 00:35:43,940 he was my office mate at the time. 662 00:35:43,940 --> 00:35:45,960 I can tell you this for a fact. 663 00:35:45,960 --> 00:35:48,080 As soon as he wrote this program, he kept looking over 664 00:35:48,080 --> 00:35:48,900 at the computer-- 665 00:35:48,900 --> 00:35:50,290 they were big in those days. 666 00:35:50,290 --> 00:35:51,540 They all had lights. 667 00:35:51,540 --> 00:35:53,270 So you looked over at the computer to see if the lights 668 00:35:53,270 --> 00:35:54,860 were still blinking. 669 00:35:54,860 --> 00:35:58,290 Because he'd start this depth-first search program up 670 00:35:58,290 --> 00:36:00,080 and nothing would happen. 671 00:36:00,080 --> 00:36:02,820 He thought the computer had crashed. 672 00:36:02,820 --> 00:36:04,520 Nothing happened. 673 00:36:04,520 --> 00:36:07,550 Why did nothing happen? 674 00:36:07,550 --> 00:36:11,350 Because the search base is exponential and much too big 675 00:36:11,350 --> 00:36:13,570 for an ordinary computer, or maybe 676 00:36:13,570 --> 00:36:15,970 even an ordinary universe. 677 00:36:15,970 --> 00:36:20,490 So Waltz has to do something else. 678 00:36:20,490 --> 00:36:24,130 He has to come up with a new method for using all these 679 00:36:24,130 --> 00:36:27,080 labels that he's-- 680 00:36:27,080 --> 00:36:29,410 after about a year and a half's worth of hard work, 681 00:36:29,410 --> 00:36:31,990 with lots of paper on his desk in little blocks. 682 00:36:31,990 --> 00:36:35,230 After year and a half of hard work getting all these 683 00:36:35,230 --> 00:36:37,560 junction labels figured out, he then has to come up with a 684 00:36:37,560 --> 00:36:40,850 method for figuring out how to use them. 685 00:36:40,850 --> 00:36:43,210 And so we don't know whether to think his biggest 686 00:36:43,210 --> 00:36:46,390 contribution was that label set or his method. 687 00:36:46,390 --> 00:36:50,328 And probably both deserve about equal billing. 688 00:36:50,328 --> 00:36:54,710 Oh, I don't know how to explain what Waltz did. 689 00:36:54,710 --> 00:36:57,470 Well, one way is to do an example. 690 00:36:57,470 --> 00:36:58,875 And I think I will hazard an example. 691 00:37:11,560 --> 00:37:12,000 Let's see. 692 00:37:12,000 --> 00:37:13,165 Let me find some space. 693 00:37:13,165 --> 00:37:15,000 I think I'm reduced to going over here. 694 00:37:15,000 --> 00:37:16,835 But that will be convenient, since the 695 00:37:16,835 --> 00:37:18,085 line labels are here. 696 00:37:24,380 --> 00:37:25,630 Here's my example. 697 00:37:36,372 --> 00:37:39,650 And you say, how can I give you just part of a picture? 698 00:37:39,650 --> 00:37:42,140 Well, you can assume I'm looking at 699 00:37:42,140 --> 00:37:43,690 this through a window. 700 00:37:43,690 --> 00:37:46,290 So the edge of the window form boundary lines, and they exert 701 00:37:46,290 --> 00:37:49,350 no constraint whatsoever on what's behind them. 702 00:37:49,350 --> 00:37:50,760 So this is a legitimate drawing to 703 00:37:50,760 --> 00:37:53,470 have to think about. 704 00:37:53,470 --> 00:37:54,950 By the way, is this ambiguous? 705 00:37:54,950 --> 00:37:57,630 Or do you get a firm sense that there's a unique 706 00:37:57,630 --> 00:38:00,650 interpretation of all those lines? 707 00:38:00,650 --> 00:38:02,760 I think there's a unique interpretation 708 00:38:02,760 --> 00:38:04,640 of all those lines. 709 00:38:04,640 --> 00:38:07,130 What I'm going to do is I'm actually going to solve this 710 00:38:07,130 --> 00:38:11,510 problem using Huffman's labels but Waltz's method. 711 00:38:11,510 --> 00:38:14,900 Because I can't simulate on the blackboard something with 712 00:38:14,900 --> 00:38:17,650 50 line types and thousands of line junctions. 713 00:38:17,650 --> 00:38:20,950 So I'm going to use Huffman's set to 714 00:38:20,950 --> 00:38:23,390 demonstrate Waltz's algorithm. 715 00:38:23,390 --> 00:38:32,040 So Waltz's algorithm involves starting out by plopping on 716 00:38:32,040 --> 00:38:39,080 some junction all of the possible labels that the 717 00:38:39,080 --> 00:38:41,120 answer has to be drawn from. 718 00:38:41,120 --> 00:38:43,670 So let me number these in the order that we're going to 719 00:38:43,670 --> 00:38:45,876 visit them. 720 00:38:45,876 --> 00:38:47,070 Like so. 721 00:38:47,070 --> 00:38:53,080 And so far, I've just put down the three fork options that 722 00:38:53,080 --> 00:38:57,010 are resident on that first junction. 723 00:38:57,010 --> 00:39:00,650 And I have to take note of exactly what they do with the 724 00:39:00,650 --> 00:39:03,660 lines that come out of the junction. 725 00:39:03,660 --> 00:39:04,160 So let's see. 726 00:39:04,160 --> 00:39:05,920 I'll just copy them down. 727 00:39:05,920 --> 00:39:08,760 One possibility is this one. 728 00:39:08,760 --> 00:39:11,350 Another possibility is this one. 729 00:39:11,350 --> 00:39:17,590 And another possibility is plus, plus, minus. 730 00:39:17,590 --> 00:39:18,840 Oops, I've got plus, plus. 731 00:39:18,840 --> 00:39:20,020 No, that's right. 732 00:39:20,020 --> 00:39:21,410 So that right so far? 733 00:39:21,410 --> 00:39:23,840 All I've done is copy the junction 734 00:39:23,840 --> 00:39:27,045 labelings from my library. 735 00:39:27,045 --> 00:39:31,760 And at this point, Waltz's algorithm says there's nothing 736 00:39:31,760 --> 00:39:34,810 else to do but go on to junction number two. 737 00:39:34,810 --> 00:39:40,630 And unfortunately, sadly, there are lots of labelings 738 00:39:40,630 --> 00:39:43,260 that have to be considered on junction number 2. 739 00:39:43,260 --> 00:39:46,170 Six of them. 740 00:39:46,170 --> 00:39:49,960 1, 2, 3, 4, 5, 6. 741 00:39:49,960 --> 00:39:52,090 So one of them looks like that. 742 00:39:52,090 --> 00:39:54,250 Another one looks like that. 743 00:39:54,250 --> 00:39:57,180 One of them is plus here, arrow in. 744 00:39:59,840 --> 00:40:06,890 Another one is plus here, arrow out. 745 00:40:06,890 --> 00:40:14,130 Another one is minus here, arrow down. 746 00:40:14,130 --> 00:40:16,020 And minus here, arrow up. 747 00:40:16,020 --> 00:40:19,615 I think I've copied those all right. 748 00:40:19,615 --> 00:40:23,950 But now, having copied those down, Waltz's algorithm looks 749 00:40:23,950 --> 00:40:27,760 around at the neighboring junctions and says, are any of 750 00:40:27,760 --> 00:40:32,130 the things that I just placed on junction two disallowed by 751 00:40:32,130 --> 00:40:36,250 what I've already placed on a neighboring junction? 752 00:40:36,250 --> 00:40:42,100 So it looks over here in step number two. 753 00:40:42,100 --> 00:40:49,050 And it sees that these three arrows require the line that 754 00:40:49,050 --> 00:40:54,540 joins junctions 1 and 2 to be either minus or plus. 755 00:40:57,480 --> 00:41:01,690 So of the six possibilities, I can only keep the ones that 756 00:41:01,690 --> 00:41:04,730 are likewise content to put a plus on that line 757 00:41:04,730 --> 00:41:07,160 that joins the two. 758 00:41:07,160 --> 00:41:12,760 So that means that the influence flowing from 759 00:41:12,760 --> 00:41:19,870 junction 1 eliminates that one, eliminates that one, 760 00:41:19,870 --> 00:41:23,590 eliminates that one, and eliminates that one. 761 00:41:23,590 --> 00:41:26,670 So half of them are gone. 762 00:41:26,670 --> 00:41:31,540 All the ones that try to put a boundary line on that line 763 00:41:31,540 --> 00:41:34,335 between 1 and 2 are disallowed. 764 00:41:34,335 --> 00:41:36,740 All right? 765 00:41:36,740 --> 00:41:39,730 Now likewise, we could say, well, of the remaining ones, 766 00:41:39,730 --> 00:41:43,550 do they restrict what I can do at junction 1? 767 00:41:43,550 --> 00:41:44,050 So let's see. 768 00:41:44,050 --> 00:41:45,520 Here's a minus. 769 00:41:45,520 --> 00:41:46,680 And here's a plus. 770 00:41:46,680 --> 00:41:54,300 So all these possibilities over here are still alive. 771 00:41:54,300 --> 00:41:58,690 So now, continuing on, we have to see what we can do at 772 00:41:58,690 --> 00:42:00,550 junction 3. 773 00:42:00,550 --> 00:42:03,360 These are arrow labels again. 774 00:42:03,360 --> 00:42:06,030 So we have to copy exactly the same labels 775 00:42:06,030 --> 00:42:07,280 set as we had before. 776 00:42:13,980 --> 00:42:18,810 And now we look down at junction 2 and say, well, what 777 00:42:18,810 --> 00:42:22,920 does that tell me about the three that I've just placed? 778 00:42:22,920 --> 00:42:26,820 If we look up from junction 2 to see what kind of 779 00:42:26,820 --> 00:42:31,000 constraints it puts on here, we have this one alive and 780 00:42:31,000 --> 00:42:31,710 this one alive. 781 00:42:31,710 --> 00:42:34,040 I guess we've eliminated four of the six. 782 00:42:34,040 --> 00:42:36,010 So we have these two alive. 783 00:42:36,010 --> 00:42:38,990 And they both but boundary lines-- 784 00:42:38,990 --> 00:42:41,920 I think I must have had this boundary line wrong, right? 785 00:42:41,920 --> 00:42:43,170 No, that's right. 786 00:42:45,510 --> 00:42:46,760 Oh yes, I see. 787 00:42:49,370 --> 00:42:51,130 Plus. 788 00:42:51,130 --> 00:42:52,920 This one goes-- 789 00:42:52,920 --> 00:42:54,655 hang on a second. 790 00:42:54,655 --> 00:42:56,020 You let me do something wrong. 791 00:42:58,840 --> 00:43:02,396 So plus is out. 792 00:43:02,396 --> 00:43:03,770 And that must be one that goes-- 793 00:43:03,770 --> 00:43:06,360 this minus goes up. 794 00:43:06,360 --> 00:43:08,040 Oh, yes. 795 00:43:08,040 --> 00:43:11,980 I'm too hasty and uncertain about what I was doing. 796 00:43:11,980 --> 00:43:13,570 So let's see. 797 00:43:13,570 --> 00:43:15,660 This guy has a boundary going down. 798 00:43:15,660 --> 00:43:18,140 And this guy has a boundary going up. 799 00:43:18,140 --> 00:43:20,390 All of the others have been eliminated. 800 00:43:20,390 --> 00:43:22,780 So that means that something that tries to put a concave 801 00:43:22,780 --> 00:43:24,580 line there is gone. 802 00:43:24,580 --> 00:43:28,340 And something that tries to put a plus line there is gone. 803 00:43:28,340 --> 00:43:32,490 So the influence flowing up in this direction in the third 804 00:43:32,490 --> 00:43:36,300 step eliminates that guy and eliminates that guy, leaving 805 00:43:36,300 --> 00:43:39,460 only this guy. 806 00:43:39,460 --> 00:43:41,200 But now, the thing I was worried about is you have to 807 00:43:41,200 --> 00:43:44,810 also at this point go down to 2 and see if there's any 808 00:43:44,810 --> 00:43:50,030 further constraint on what can survive down there, based on 809 00:43:50,030 --> 00:43:53,440 what has happened over here at junction 3. 810 00:43:53,440 --> 00:43:55,170 Now let's see. 811 00:43:55,170 --> 00:43:58,190 This one goes up, which is compatible with a survivor. 812 00:43:58,190 --> 00:43:59,860 But this one goes down, which is not 813 00:43:59,860 --> 00:44:02,020 compatible with a survivor. 814 00:44:02,020 --> 00:44:05,930 So when I bring this down in step three, this guy is 815 00:44:05,930 --> 00:44:07,470 eliminated. 816 00:44:07,470 --> 00:44:12,590 So now I'm down to just one interpretation for what can be 817 00:44:12,590 --> 00:44:15,140 going on at vertex number 2. 818 00:44:15,140 --> 00:44:20,290 And one interpretation for vertex number 3. 819 00:44:20,290 --> 00:44:21,190 Now let's see. 820 00:44:21,190 --> 00:44:22,360 This can propagate. 821 00:44:22,360 --> 00:44:25,840 So now that I've made a change on vertex number 2, I have to 822 00:44:25,840 --> 00:44:30,640 also see if that causes a change at vertex number 1. 823 00:44:30,640 --> 00:44:32,540 So it's propagating through. 824 00:44:32,540 --> 00:44:36,030 And now I can see that the only possibility here is a 825 00:44:36,030 --> 00:44:39,730 minus, the label that's coming down from our survivor. 826 00:44:39,730 --> 00:44:42,730 So that eliminates these two. 827 00:44:42,730 --> 00:44:43,620 Whew! 828 00:44:43,620 --> 00:44:46,560 It's hard to do this by hand, but I've got three of the four 829 00:44:46,560 --> 00:44:48,530 things labeled. 830 00:44:48,530 --> 00:44:51,940 And even with just three of the four labeled, I'm down to 831 00:44:51,940 --> 00:44:54,870 a single interpretation for all of the junctions and the 832 00:44:54,870 --> 00:44:57,120 lines between them. 833 00:44:57,120 --> 00:44:58,370 So there's one left. 834 00:45:01,250 --> 00:45:03,080 We have to deal with that fork vertex. 835 00:45:03,080 --> 00:45:05,240 We better deal with it, because for all we know, this 836 00:45:05,240 --> 00:45:09,140 is not a legal drawing in this world. 837 00:45:09,140 --> 00:45:15,180 We have five fork vertexes to place. 838 00:45:15,180 --> 00:45:16,370 But you know what? 839 00:45:16,370 --> 00:45:18,860 I don't have to draw much here, because I know this is 840 00:45:18,860 --> 00:45:20,640 forced to be a plus now. 841 00:45:20,640 --> 00:45:22,840 And this is forced to be a plus now. 842 00:45:22,840 --> 00:45:24,730 And there's only one fork vertex with any 843 00:45:24,730 --> 00:45:26,940 pluses on it at all. 844 00:45:26,940 --> 00:45:29,800 So now I can come through and say, well, the only possible 845 00:45:29,800 --> 00:45:32,580 survivor is this one. 846 00:45:32,580 --> 00:45:34,440 These are gone. 847 00:45:34,440 --> 00:45:36,540 And now I have an interpretation 848 00:45:36,540 --> 00:45:39,850 for all of the junctions. 849 00:45:39,850 --> 00:45:42,830 And I see that the winners are this one. 850 00:45:42,830 --> 00:45:45,310 And this one. 851 00:45:45,310 --> 00:45:47,900 And this one. 852 00:45:47,900 --> 00:45:50,240 And this one. 853 00:45:50,240 --> 00:45:52,120 So I've got a unique interpretation. 854 00:45:52,120 --> 00:45:54,260 This line is convex. 855 00:45:54,260 --> 00:45:55,620 This one is concave. 856 00:45:55,620 --> 00:45:56,830 This is a boundary. 857 00:45:56,830 --> 00:45:57,560 That's a boundary. 858 00:45:57,560 --> 00:45:59,604 And this line is convex, and that's convex. 859 00:46:02,770 --> 00:46:04,655 Now that's a lot of work. 860 00:46:04,655 --> 00:46:07,020 So I better check and make sure I got it right. 861 00:46:07,020 --> 00:46:08,840 You'd like to see this demonstrated to make sure I 862 00:46:08,840 --> 00:46:09,840 haven't made a mistake. 863 00:46:09,840 --> 00:46:11,090 I'm sure of that. 864 00:46:15,440 --> 00:46:18,545 Let's see. 865 00:46:18,545 --> 00:46:19,795 That it? 866 00:46:24,380 --> 00:46:28,940 So each of the places where a line is obscured has four 867 00:46:28,940 --> 00:46:32,190 possibilities, labeled E. The arrow junctions are labeled A. 868 00:46:32,190 --> 00:46:35,710 The forks-- there are five of them-- at the fork junction 5. 869 00:46:35,710 --> 00:46:39,890 So let's just step through here and see what happens. 870 00:46:39,890 --> 00:46:40,340 Boom. 871 00:46:40,340 --> 00:46:42,320 I've got it. 872 00:46:42,320 --> 00:46:43,570 I did do it right. 873 00:46:49,080 --> 00:46:50,330 So let's try some more. 874 00:46:54,010 --> 00:46:55,820 What do you think will happen with this one? 875 00:46:55,820 --> 00:46:57,070 Unique solution? 876 00:47:03,000 --> 00:47:04,746 It stopped. 877 00:47:04,746 --> 00:47:07,390 Bug in my program? 878 00:47:07,390 --> 00:47:09,500 Unthinkable. 879 00:47:09,500 --> 00:47:11,280 What's happened? 880 00:47:11,280 --> 00:47:14,220 It is genuinely ambiguous. 881 00:47:14,220 --> 00:47:17,790 It can be something hanging down from the ceiling. 882 00:47:17,790 --> 00:47:22,920 Or it could be something that we can think of as a step 883 00:47:22,920 --> 00:47:26,170 going up from left to right. 884 00:47:26,170 --> 00:47:27,420 Let's look at something more complicated. 885 00:47:33,910 --> 00:47:36,490 You think it'll work? 886 00:47:36,490 --> 00:47:38,960 Not enough constraint for us to figure that one out. 887 00:47:38,960 --> 00:47:43,530 It's equally ambiguous, but a little bit larger example. 888 00:47:43,530 --> 00:47:44,780 What about this one? 889 00:47:48,250 --> 00:47:50,130 Yeah, but the stuff is creeping up from the lower 890 00:47:50,130 --> 00:47:53,710 left up to the upper right. 891 00:47:53,710 --> 00:47:54,500 Yeah, bingo. 892 00:47:54,500 --> 00:47:55,210 It worked. 893 00:47:55,210 --> 00:47:56,800 It's unambiguous. 894 00:47:56,800 --> 00:47:59,410 It's variation on the same theme we had before. 895 00:47:59,410 --> 00:48:01,980 But let me, just for fun, take these two lines out. 896 00:48:05,260 --> 00:48:06,510 What do you think will happen now? 897 00:48:09,190 --> 00:48:13,810 Seems to be doing just fine until it hits the upper 898 00:48:13,810 --> 00:48:15,560 right-hand corner and discovers 899 00:48:15,560 --> 00:48:17,240 it can't label stuff. 900 00:48:17,240 --> 00:48:19,530 So it propagates back down. 901 00:48:19,530 --> 00:48:22,200 And what looked OK in the lower left is 902 00:48:22,200 --> 00:48:23,190 no good after all. 903 00:48:23,190 --> 00:48:28,510 So these results are kind of consistent with what we humans 904 00:48:28,510 --> 00:48:30,510 do when we look at these kinds of things. 905 00:48:30,510 --> 00:48:34,120 So it's very likely that we, in our heads, do have some 906 00:48:34,120 --> 00:48:35,740 constraint propagation apparatus 907 00:48:35,740 --> 00:48:37,590 that we use in vision. 908 00:48:37,590 --> 00:48:40,200 But putting that aside, we can think about other kinds of 909 00:48:40,200 --> 00:48:42,940 intelligence different from human, that might use this 910 00:48:42,940 --> 00:48:46,070 kind of mechanism to solve problems that involve a lot of 911 00:48:46,070 --> 00:48:48,480 constraint in finding a solution. 912 00:48:48,480 --> 00:48:52,780 So here, we saw the constraint propagation activity at work 913 00:48:52,780 --> 00:48:54,380 on line drawing analysis. 914 00:48:54,380 --> 00:48:55,780 But next time, what we're going do is we're going to see 915 00:48:55,780 --> 00:48:56,910 at work in map coloring. 916 00:48:56,910 --> 00:48:58,970 And who cares about map coloring? 917 00:48:58,970 --> 00:49:01,100 People who do scheduling, because that turns out to be 918 00:49:01,100 --> 00:49:02,350 the same problem.