1 00:00:00,080 --> 00:00:02,579 NARRATOR: The following content is provided under a Creative 2 00:00:02,579 --> 00:00:03,810 Commons license. 3 00:00:03,810 --> 00:00:06,060 Your support will help MIT OpenCourseWare 4 00:00:06,060 --> 00:00:10,150 continue to offer high-quality educational resources for free. 5 00:00:10,150 --> 00:00:12,690 To make a donation or to view additional materials 6 00:00:12,690 --> 00:00:16,600 from hundreds of MIT courses, visit MIT OpenCourseWare 7 00:00:16,600 --> 00:00:17,305 at ocw.mit.edu. 8 00:00:26,065 --> 00:00:26,940 PROFESSOR: All right. 9 00:00:26,940 --> 00:00:29,660 You guys ready for some more games? 10 00:00:29,660 --> 00:00:34,650 Today, we will finish off two-player games in particular. 11 00:00:34,650 --> 00:00:38,940 So last time, we were in this world of two-player games 12 00:00:38,940 --> 00:00:42,290 with a polynomial-bounded number of moves. 13 00:00:42,290 --> 00:00:46,740 We proved that Othello reversi is PSPACE complete. 14 00:00:46,740 --> 00:00:49,950 All these games live in PSPACE. 15 00:00:49,950 --> 00:00:55,000 And we ended with constraint logic in the two-player case. 16 00:00:55,000 --> 00:00:56,560 We proved that's PSPACE complete. 17 00:00:56,560 --> 00:00:59,020 I'll just show you that again in a moment. 18 00:00:59,020 --> 00:01:01,220 And then, in the rest of today, we'll 19 00:01:01,220 --> 00:01:03,720 talk about various other games that don't fit in this table, 20 00:01:03,720 --> 00:01:07,510 but in particular two-player and unbounded number of moves. 21 00:01:07,510 --> 00:01:10,450 So exponential number of moves, where you get x time 22 00:01:10,450 --> 00:01:13,150 completeness for constraint logic 23 00:01:13,150 --> 00:01:18,670 and for various practical games like checkers, chess, and go. 24 00:01:18,670 --> 00:01:21,220 But I won't prove all of this. 25 00:01:21,220 --> 00:01:27,570 So this is bounded to player constraint logic. 26 00:01:27,570 --> 00:01:31,160 Remember, we could simulate these formulas, 27 00:01:31,160 --> 00:01:35,270 where here the setup was you can only flip each edge once. 28 00:01:35,270 --> 00:01:37,820 And in particular, players could take 29 00:01:37,820 --> 00:01:40,570 turns deciding whether to-- white player 30 00:01:40,570 --> 00:01:43,290 can set variables to true by flipping these edges. 31 00:01:43,290 --> 00:01:46,140 Black player can set variables false by flipping those edges. 32 00:01:46,140 --> 00:01:48,980 Then, if the formula satisfied, white wins. 33 00:01:48,980 --> 00:01:51,640 And that was hard and in particular constraint logic 34 00:01:51,640 --> 00:01:54,410 could simulate that problem. 35 00:01:58,450 --> 00:02:04,090 So what I want to show you next is three real-life games 36 00:02:04,090 --> 00:02:07,360 that can be reduced from bounded to player constraint logic. 37 00:02:07,360 --> 00:02:10,479 And for those, we'll need two additional facts. 38 00:02:10,479 --> 00:02:13,020 One is that planar-bounded two-player constraint 39 00:02:13,020 --> 00:02:16,210 logic is PSPACE complete with this crossover gadget. 40 00:02:16,210 --> 00:02:21,120 We just need the addition of a choice variable 41 00:02:21,120 --> 00:02:25,000 with three red edges, two in, one out. 42 00:02:25,000 --> 00:02:26,800 This is what we will need. 43 00:02:26,800 --> 00:02:31,310 And also that we can make protected ORs, 44 00:02:31,310 --> 00:02:33,620 an OR where you're guaranteed at most one of these 45 00:02:33,620 --> 00:02:37,370 comes in by allowing an additional gadget which 46 00:02:37,370 --> 00:02:38,530 is a free edge. 47 00:02:38,530 --> 00:02:41,120 So only one of our constructions will use this. 48 00:02:41,120 --> 00:02:44,770 But in that setting, we can make a free edge 49 00:02:44,770 --> 00:02:45,990 and we need the protected OR. 50 00:02:45,990 --> 00:02:47,880 So they go together well . 51 00:02:47,880 --> 00:02:52,320 And so this is review from last class. 52 00:02:52,320 --> 00:02:55,580 So first real game we're going to look at 53 00:02:55,580 --> 00:02:58,790 is called Amazons from the late '80s 54 00:02:58,790 --> 00:03:02,250 but became popular in the common material game theory 55 00:03:02,250 --> 00:03:05,560 world I think in the mid-2000s, at least that's 56 00:03:05,560 --> 00:03:06,840 when I heard about it. 57 00:03:06,840 --> 00:03:10,320 So the usual game is played on an 8x8 checkerboard-- 58 00:03:10,320 --> 00:03:13,859 chessboard, I should say-- with four black queens and four 59 00:03:13,859 --> 00:03:14,400 white queens. 60 00:03:14,400 --> 00:03:15,820 Those are the Amazons. 61 00:03:15,820 --> 00:03:18,920 The Amazons, as you may know, carry bows and arrows. 62 00:03:18,920 --> 00:03:25,010 So a move in this game is to take a queen of your color, 63 00:03:25,010 --> 00:03:26,610 move it in a queen-like way. 64 00:03:26,610 --> 00:03:31,080 So in this example, we're moving the clean up to this position. 65 00:03:31,080 --> 00:03:35,350 And then, you fire an arrow by another queen move from there. 66 00:03:35,350 --> 00:03:38,710 So from here, we're shooting an arrow 67 00:03:38,710 --> 00:03:42,330 to this position diagonally visible. 68 00:03:42,330 --> 00:03:44,430 You're not allowed to move through other players 69 00:03:44,430 --> 00:03:45,472 or through arrows. 70 00:03:45,472 --> 00:03:47,680 And you're not allowed to shoot through other players 71 00:03:47,680 --> 00:03:49,050 or through arrows. 72 00:03:49,050 --> 00:03:52,794 So this the square is destroyed forever. 73 00:03:52,794 --> 00:03:54,210 So this is clearly a bounded game. 74 00:03:54,210 --> 00:03:56,040 Every move we destroy square. 75 00:03:56,040 --> 00:03:57,940 You have to do both of those things, 76 00:03:57,940 --> 00:04:00,140 move between by a non-zero amount 77 00:04:00,140 --> 00:04:02,760 and then shoot an arrow somewhere other than yourself. 78 00:04:02,760 --> 00:04:06,530 You're never allowed to land on a dead square. 79 00:04:06,530 --> 00:04:07,590 So a typical game. 80 00:04:07,590 --> 00:04:09,548 After you play it for a while, it's really fun. 81 00:04:09,548 --> 00:04:10,380 You should try it. 82 00:04:10,380 --> 00:04:13,590 We'll end up the situation where you've partitioned the queens 83 00:04:13,590 --> 00:04:16,050 into independent components. 84 00:04:16,050 --> 00:04:18,860 And so then, it's basically a bunch of Hamiltonian cycle 85 00:04:18,860 --> 00:04:20,410 problems, or longest path. 86 00:04:20,410 --> 00:04:21,910 Now, these guys have to walk around. 87 00:04:21,910 --> 00:04:24,060 It's a little bit weird, because you can shoot not exactly where 88 00:04:24,060 --> 00:04:25,100 you're landing. 89 00:04:25,100 --> 00:04:27,090 But in particular, you could shoot where you just came from. 90 00:04:27,090 --> 00:04:29,180 So if each of these components-- usually they're 91 00:04:29,180 --> 00:04:31,590 Hamiltonian or have a Hamiltonian path-- 92 00:04:31,590 --> 00:04:33,560 and then with the queen moves. 93 00:04:33,560 --> 00:04:36,640 And then, you just sum up the areas then, 94 00:04:36,640 --> 00:04:40,052 and whether white or black has more area is the winner. 95 00:04:40,052 --> 00:04:42,510 Because in general, once you can't move, you lose the game. 96 00:04:42,510 --> 00:04:45,600 The goal is to move last. 97 00:04:45,600 --> 00:04:48,120 So in general, your goal is to partition up the space 98 00:04:48,120 --> 00:04:50,680 so you have more territory. 99 00:04:50,680 --> 00:04:55,340 So we're going to prove PSPACE completeness of this game using 100 00:04:55,340 --> 00:04:57,220 bounded two-player constraint logic. 101 00:05:00,300 --> 00:05:07,270 So here's the basic gadgets, in particular the idea of a wire. 102 00:05:07,270 --> 00:05:10,430 We're imagining this is an upward traveling signal. 103 00:05:10,430 --> 00:05:14,010 And for it to travel up-- think of this 104 00:05:14,010 --> 00:05:15,860 as an edge reversing from downward 105 00:05:15,860 --> 00:05:18,520 pointing to upward pointing. 106 00:05:18,520 --> 00:05:24,170 If the A queen has to move down and also shoot down, 107 00:05:24,170 --> 00:05:27,750 so leaving two black squares, in that situation B can 108 00:05:27,750 --> 00:05:30,760 move down and shoot down one or move down two and shoot up one, 109 00:05:30,760 --> 00:05:32,260 either way consume these two squares 110 00:05:32,260 --> 00:05:34,670 but leave two for the next guy. 111 00:05:34,670 --> 00:05:36,100 This is a parity shift. 112 00:05:36,100 --> 00:05:39,390 It also works if this guy moves down, shoots down, 113 00:05:39,390 --> 00:05:40,480 leaving these two squares. 114 00:05:40,480 --> 00:05:43,510 Then, B can move down and shoot diagonally and so on. 115 00:05:43,510 --> 00:05:44,540 So that's our wire. 116 00:05:44,540 --> 00:05:45,998 That's how we're going to propagate 117 00:05:45,998 --> 00:05:50,090 the signal, because we only need single-use gadgets you 118 00:05:50,090 --> 00:05:52,610 can do a turn, A moves down, shoots down. 119 00:05:52,610 --> 00:05:54,860 B moves down, shoots down. 120 00:05:54,860 --> 00:05:57,170 C moves over, shoots diagonally. 121 00:05:57,170 --> 00:06:01,960 D moves over, shoots diagonally, and so on. 122 00:06:01,960 --> 00:06:04,420 Variable gadget, so this is what we 123 00:06:04,420 --> 00:06:06,620 had on the bottom of the construction. 124 00:06:06,620 --> 00:06:09,882 This is a white or black edge. 125 00:06:09,882 --> 00:06:12,215 And we'll never have to connect black edges to anything, 126 00:06:12,215 --> 00:06:14,200 so they're just hanging out. 127 00:06:14,200 --> 00:06:17,430 Here, if black moves first here and obliterates these two 128 00:06:17,430 --> 00:06:21,600 squares, this wire's dead. 129 00:06:21,600 --> 00:06:26,370 If white moves first then, the white can activate the chain. 130 00:06:26,370 --> 00:06:29,515 So that's going to simulate the usual setup, where 131 00:06:29,515 --> 00:06:31,890 white and black are taking turns, setting their variables 132 00:06:31,890 --> 00:06:33,060 the way they want them. 133 00:06:33,060 --> 00:06:36,550 And then, if white can succeed and satisfy the formula-- 134 00:06:36,550 --> 00:06:38,280 we have to get to AND and OR gadgets. 135 00:06:38,280 --> 00:06:42,540 But if white can succeed and this guy can move down, 136 00:06:42,540 --> 00:06:48,990 then B can move to this place and shoot here, and then 137 00:06:48,990 --> 00:06:51,350 move over here and shoot into this giant room. 138 00:06:51,350 --> 00:06:55,990 And then, we'll spend tons of moves in here. 139 00:06:55,990 --> 00:06:59,510 And then, come back here, shoot there, back there, 140 00:06:59,510 --> 00:07:03,500 shoot there, ther, shoot there, and get to the other room 141 00:07:03,500 --> 00:07:07,674 But if this guy does not move down first, 142 00:07:07,674 --> 00:07:09,340 this guy-- whichever way he goes-- he'll 143 00:07:09,340 --> 00:07:13,880 have to either destroy the room he is walking to 144 00:07:13,880 --> 00:07:16,620 or destroy the other room that he could have gone. 145 00:07:16,620 --> 00:07:19,030 So you only get half of the points 146 00:07:19,030 --> 00:07:20,640 if this is not activated. 147 00:07:20,640 --> 00:07:22,390 And we're going to set it up so that black 148 00:07:22,390 --> 00:07:25,500 has a bunch of other moves and some other room that's already 149 00:07:25,500 --> 00:07:26,650 been cut off. 150 00:07:26,650 --> 00:07:29,350 And it will be roughly equal to one of these rooms. 151 00:07:29,350 --> 00:07:33,810 And so only if you get both of them do you win. 152 00:07:33,810 --> 00:07:36,230 And because we can't control which way B goes, 153 00:07:36,230 --> 00:07:38,757 these two rooms have to be the same size. 154 00:07:38,757 --> 00:07:41,340 So you happen to win by a factor of 2 and the number of moves. 155 00:07:41,340 --> 00:07:46,980 But that's not essential to the proof, just for symmetry. 156 00:07:46,980 --> 00:07:48,380 So those are the basic gadgets. 157 00:07:48,380 --> 00:07:55,230 Now, we have AND and OR and SPLIT and CHOICE. 158 00:07:57,790 --> 00:08:03,790 Usually, in NCL, we think of AND and SPLIT 159 00:08:03,790 --> 00:08:05,520 as being the same thing. 160 00:08:05,520 --> 00:08:08,320 But in this setting, especially in the bounded situation, 161 00:08:08,320 --> 00:08:09,840 they're really different. 162 00:08:09,840 --> 00:08:12,547 Remember, it corresponds to whether initially 163 00:08:12,547 --> 00:08:15,130 the red things are pointing in or the blue things are pointing 164 00:08:15,130 --> 00:08:18,230 in, red edges or the blue edge. 165 00:08:18,230 --> 00:08:21,420 And they behave quite differently in this setting. 166 00:08:21,420 --> 00:08:24,390 So for the AND gate, these are the two inputs. 167 00:08:24,390 --> 00:08:27,270 If both of them move out of the way, then C can move here, 168 00:08:27,270 --> 00:08:28,380 shoot here. 169 00:08:28,380 --> 00:08:32,370 And D can move here and shoot there. 170 00:08:32,370 --> 00:08:35,030 And if you only move one of the two, 171 00:08:35,030 --> 00:08:36,200 you won't have enough room. 172 00:08:36,200 --> 00:08:36,824 AUDIENCE: Wait. 173 00:08:36,824 --> 00:08:37,595 Why? 174 00:08:37,595 --> 00:08:38,220 PROFESSOR: Why? 175 00:08:38,220 --> 00:08:41,150 If B moves out of the way, C can move and shoot here. 176 00:08:41,150 --> 00:08:44,280 But D only has one one square. 177 00:08:44,280 --> 00:08:46,410 If A moves out if the way, C can't move. 178 00:08:50,590 --> 00:08:55,000 On the other hand, an OR gadget, these are the two inputs 179 00:08:55,000 --> 00:08:56,450 and this is the output. 180 00:08:56,450 --> 00:08:58,710 If either one of these moves, we sort of already 181 00:08:58,710 --> 00:08:59,380 have one square. 182 00:08:59,380 --> 00:09:01,570 We just need a second square for C to shoot into. 183 00:09:01,570 --> 00:09:02,659 It could be here or here. 184 00:09:02,659 --> 00:09:05,075 As long as one of them moves out of the way, we are happy. 185 00:09:07,710 --> 00:09:14,080 As a CHOICE gadget, so this is three blues coming in 186 00:09:14,080 --> 00:09:17,913 but the orientations are different. 187 00:09:24,810 --> 00:09:28,700 So a CHOICE is we have an input coming up from the bottom. 188 00:09:28,700 --> 00:09:32,810 And we want to activate one of the two but only one. 189 00:09:32,810 --> 00:09:34,830 So that corresponds to A moving out 190 00:09:34,830 --> 00:09:36,910 of the way leaving two squares. 191 00:09:36,910 --> 00:09:40,020 Either B can take it and hit those two squares or C can 192 00:09:40,020 --> 00:09:42,460 take it, but only one of them. 193 00:09:42,460 --> 00:09:44,234 So the same gadget does both. 194 00:09:44,234 --> 00:09:45,650 That makes sense because we're not 195 00:09:45,650 --> 00:09:49,770 really distinguishing between red and blue very much here. 196 00:09:49,770 --> 00:09:52,774 SPLIT is a little bit trickier. 197 00:09:52,774 --> 00:09:53,690 Let's walk through it. 198 00:09:53,690 --> 00:09:55,840 A moves down. 199 00:09:55,840 --> 00:09:59,300 B moves over and shoots here. 200 00:09:59,300 --> 00:10:04,340 Then, C can move down here and shoot here. 201 00:10:04,340 --> 00:10:10,960 And then, D can move over here and shoot there. 202 00:10:10,960 --> 00:10:13,800 Using our queen moves, so that leaves 203 00:10:13,800 --> 00:10:16,480 these four spaces unoccupied. 204 00:10:16,480 --> 00:10:19,080 Now, E can move down here and shoot there. 205 00:10:19,080 --> 00:10:20,610 F can move here and shoot there. 206 00:10:20,610 --> 00:10:22,140 And now, we've got the four squares 207 00:10:22,140 --> 00:10:26,960 necessary to trigger both H and G. 208 00:10:26,960 --> 00:10:28,460 So that's a SPLIT. 209 00:10:28,460 --> 00:10:31,060 And that is Amazons. 210 00:10:31,060 --> 00:10:33,364 Therefore Amazons is PSPACE complete. 211 00:10:33,364 --> 00:10:34,190 Done. 212 00:10:34,190 --> 00:10:34,911 Question. 213 00:10:34,911 --> 00:10:36,604 AUDIENCE: What is CHOICE needed for? 214 00:10:36,604 --> 00:10:38,770 PROFESSOR: CHOICE is needed for the crossover gadget 215 00:10:38,770 --> 00:10:40,910 in particular. 216 00:10:40,910 --> 00:10:43,252 Next game we'll look at-- these proofs 217 00:10:43,252 --> 00:10:44,710 are going to start to look similar. 218 00:10:44,710 --> 00:10:46,668 But I think it's helpful to see a few examples. 219 00:10:46,668 --> 00:10:47,540 This is Konane. 220 00:10:47,540 --> 00:10:50,730 It's a very old game-- we don't know how old-- invented 221 00:10:50,730 --> 00:10:52,970 by Hawaiian Polynesians. 222 00:10:52,970 --> 00:10:58,310 First documented in 1778 by Captain Cook. 223 00:10:58,310 --> 00:11:02,176 And this was a world championship. 224 00:11:02,176 --> 00:11:02,675 No. 225 00:11:02,675 --> 00:11:05,620 This is a regional championship in 2005 226 00:11:05,620 --> 00:11:07,350 that I probably lost at. 227 00:11:07,350 --> 00:11:11,940 But we like to play it with go stones. 228 00:11:11,940 --> 00:11:13,590 That's not the original formulation. 229 00:11:13,590 --> 00:11:16,360 But you have two colors of stones on a square grid. 230 00:11:16,360 --> 00:11:22,050 And it's something like peg solitaire, but with two colors. 231 00:11:22,050 --> 00:11:25,277 So let me maybe show you a bigger image. 232 00:11:25,277 --> 00:11:26,860 The type of move you can do, if you're 233 00:11:26,860 --> 00:11:31,060 white you can jump over a sequence of black stones. 234 00:11:31,060 --> 00:11:32,670 You can only jump over one at a time. 235 00:11:32,670 --> 00:11:35,437 So if I had two in a row, you wouldn't be able to jump it. 236 00:11:35,437 --> 00:11:37,770 And furthermore, you're not allowed to change directions 237 00:11:37,770 --> 00:11:38,580 in a single move. 238 00:11:38,580 --> 00:11:40,130 In a single move, I could jump over 239 00:11:40,130 --> 00:11:45,320 any chain of black blank blank blank things. 240 00:11:45,320 --> 00:11:46,400 And they are removed. 241 00:11:46,400 --> 00:11:48,080 I captured them. 242 00:11:48,080 --> 00:11:50,610 And it has to be in a straight line. 243 00:11:50,610 --> 00:11:53,390 So that's the rules. 244 00:11:53,390 --> 00:11:55,870 And of course, every move I make I capture somebody, 245 00:11:55,870 --> 00:11:59,760 so it's a polynomial-bounded number of moves. 246 00:11:59,760 --> 00:12:03,920 This is the general idea for a wire 247 00:12:03,920 --> 00:12:08,680 is that with white will be doing most of the action here. 248 00:12:08,680 --> 00:12:11,580 And so white will be jumping here. 249 00:12:11,580 --> 00:12:13,840 At this point, I have to change directions. 250 00:12:13,840 --> 00:12:17,890 But luckily after I obliterate those two pieces, 251 00:12:17,890 --> 00:12:20,720 black can't do anything to me. 252 00:12:20,720 --> 00:12:22,880 I'm safe between these two black squares. 253 00:12:22,880 --> 00:12:25,590 So black will do something else, and then white 254 00:12:25,590 --> 00:12:28,380 is free to start jumping in the direction they want to. 255 00:12:31,130 --> 00:12:32,830 That will be critical. 256 00:12:32,830 --> 00:12:35,280 Here is a variable where if black moves 257 00:12:35,280 --> 00:12:38,230 first in this scenario, it can capture the white thing 258 00:12:38,230 --> 00:12:40,100 and prevent it from activating this wire. 259 00:12:40,100 --> 00:12:43,130 If white moves first, they can activate the wire. 260 00:12:43,130 --> 00:12:46,570 So whoever goes there first sets the variable. 261 00:12:46,570 --> 00:12:48,870 AUDIENCE: What's the start configuration for this game? 262 00:12:48,870 --> 00:12:50,370 PROFESSOR: Oh, in the original game, 263 00:12:50,370 --> 00:12:53,980 the whole board is filled where the color of your pieces 264 00:12:53,980 --> 00:12:56,110 equal the color of the square of the checkerboard, 265 00:12:56,110 --> 00:12:59,650 except for the center two places are blank. 266 00:12:59,650 --> 00:13:02,490 But we're not considering it from the actual initial 267 00:13:02,490 --> 00:13:03,120 configuration. 268 00:13:03,120 --> 00:13:06,190 We're considering it from a half-played configuration. 269 00:13:06,190 --> 00:13:08,090 Because the original configuration, 270 00:13:08,090 --> 00:13:10,770 the answer is the function of the board size. 271 00:13:10,770 --> 00:13:13,060 And that's not enough information 272 00:13:13,060 --> 00:13:15,060 to be interesting from a complexity standpoint. 273 00:13:15,060 --> 00:13:15,230 Yeah? 274 00:13:15,230 --> 00:13:16,646 AUDIENCE: Do you have any problems 275 00:13:16,646 --> 00:13:19,342 that have significant hardness results for sort 276 00:13:19,342 --> 00:13:21,907 of the standard start but generalized? 277 00:13:21,907 --> 00:13:22,490 PROFESSOR: No. 278 00:13:22,490 --> 00:13:24,160 In general, none of those problems 279 00:13:24,160 --> 00:13:28,370 can be hard in the sense that we want, because they're sparse. 280 00:13:28,370 --> 00:13:31,600 They have very few inputs of a given size, 281 00:13:31,600 --> 00:13:33,300 so there is no such result. 282 00:13:33,300 --> 00:13:35,880 Unless you have a variable initial setup, 283 00:13:35,880 --> 00:13:38,400 like maybe games where you-- what do you 284 00:13:38,400 --> 00:13:40,569 call it-- draft your deck in the beginning. 285 00:13:40,569 --> 00:13:42,860 I mean, if you consider that part of the initial setup, 286 00:13:42,860 --> 00:13:44,840 then that could be much more interesting. 287 00:13:48,100 --> 00:13:48,870 Right. 288 00:13:48,870 --> 00:13:50,590 Haven't done the OR and the CHOICE. 289 00:13:50,590 --> 00:13:55,870 So again if we-- let's do the OR. 290 00:13:55,870 --> 00:13:58,367 If we are activating from here, we can just keep going. 291 00:13:58,367 --> 00:14:00,450 It'd be bad to stop here, because then black could 292 00:14:00,450 --> 00:14:01,560 capture us. 293 00:14:01,560 --> 00:14:02,809 But we can go straight. 294 00:14:02,809 --> 00:14:04,850 On the other hand, if we come from this position, 295 00:14:04,850 --> 00:14:06,810 we killed those two guys who were safe 296 00:14:06,810 --> 00:14:09,420 and then we can go up. 297 00:14:09,420 --> 00:14:14,380 And a CHOICE gadget would be coming-- the input 298 00:14:14,380 --> 00:14:16,120 for a CHOICE would be here. 299 00:14:16,120 --> 00:14:18,120 So you can jump here and then you have a choice 300 00:14:18,120 --> 00:14:20,160 whether to go up or down. 301 00:14:20,160 --> 00:14:24,700 So again, same gadget does OR and CHOICE. 302 00:14:24,700 --> 00:14:26,830 And here's one gadget that does AND, SPLIT, 303 00:14:26,830 --> 00:14:31,460 and a SHIFT, which is convenient for various ways to use it. 304 00:14:31,460 --> 00:14:33,670 But what if what it really does is 305 00:14:33,670 --> 00:14:36,910 there's two traversal paths, input 1 to output 1 306 00:14:36,910 --> 00:14:38,660 and input 2 to output 2. 307 00:14:38,660 --> 00:14:40,980 And they have to happen in that order. 308 00:14:40,980 --> 00:14:45,417 If you try to activate path 2, you have to stop here. 309 00:14:45,417 --> 00:14:47,250 I mean, I guess you could jump here and then 310 00:14:47,250 --> 00:14:48,500 be captured that way. 311 00:14:48,500 --> 00:14:51,400 If you stop here, you'll be captured by that guy. 312 00:14:51,400 --> 00:14:52,960 So that's bad news. 313 00:14:52,960 --> 00:14:56,520 But if we first do the input 1 traversal-- this is safe-- 314 00:14:56,520 --> 00:15:00,260 and then go to the output traversal, this guy's gone. 315 00:15:00,260 --> 00:15:03,090 And so then we can do input 2, pause, 316 00:15:03,090 --> 00:15:05,460 and then go up to output 2. 317 00:15:05,460 --> 00:15:09,570 So that's what the gadget does by itself. 318 00:15:09,570 --> 00:15:13,940 If we ignore what happens out here, 319 00:15:13,940 --> 00:15:17,240 then we can think of this as an AND gate, 320 00:15:17,240 --> 00:15:21,850 where first this input has to come in, kill that guy, 321 00:15:21,850 --> 00:15:26,470 and then go off Neverneverland. 322 00:15:26,470 --> 00:15:28,640 And then, if the second input comes in, 323 00:15:28,640 --> 00:15:29,880 then we activate the output. 324 00:15:29,880 --> 00:15:31,840 So that would be the output of the AND gate. 325 00:15:31,840 --> 00:15:33,390 That's garbage. 326 00:15:33,390 --> 00:15:35,140 And these are the two inputs. 327 00:15:35,140 --> 00:15:37,410 Now, there is an issue of you have to make this one 328 00:15:37,410 --> 00:15:38,880 trigger before this one. 329 00:15:38,880 --> 00:15:41,550 But in all these setups, we have these posits 330 00:15:41,550 --> 00:15:44,080 where the piece can wait. 331 00:15:44,080 --> 00:15:46,990 So if we have a turn gadget right before the input, 332 00:15:46,990 --> 00:15:49,625 it can just sit there and wait for the other input to the AND 333 00:15:49,625 --> 00:15:50,850 to activate. 334 00:15:50,850 --> 00:15:53,550 And then, this one can go ahead and activate the second one. 335 00:15:53,550 --> 00:15:57,040 So we're very flexible on timing. 336 00:15:57,040 --> 00:16:00,560 So we can make input 1 go before input 2 for AND. 337 00:16:00,560 --> 00:16:06,600 For a SPLIT, we can just have a white token sitting here 338 00:16:06,600 --> 00:16:10,130 ready to go in that's in a safe position. 339 00:16:10,130 --> 00:16:13,209 And then, once this input comes in, it gets output there. 340 00:16:13,209 --> 00:16:15,000 Then, this one can trigger an output there. 341 00:16:15,000 --> 00:16:17,810 So we get both of the outputs for one input. 342 00:16:17,810 --> 00:16:21,530 And for a SHIFT, we do both of these things. 343 00:16:21,530 --> 00:16:23,070 We treat this is garbage. 344 00:16:23,070 --> 00:16:25,750 And we have a safe white token here. 345 00:16:25,750 --> 00:16:28,170 So if this comes in, then that can go out. 346 00:16:28,170 --> 00:16:29,460 So we end up shifting by one. 347 00:16:29,460 --> 00:16:32,870 And that fixes any parity issues. 348 00:16:32,870 --> 00:16:34,240 Cool. 349 00:16:34,240 --> 00:16:37,200 So that's Konane PSPACE complete. 350 00:16:37,200 --> 00:16:45,360 AUDIENCE: How do you guarantee that black doesn't screw you? 351 00:16:45,360 --> 00:16:48,400 PROFESSOR: By checking all the cases. 352 00:16:48,400 --> 00:16:51,410 In general, I mean, there's a question 353 00:16:51,410 --> 00:16:55,060 of what black is doing. 354 00:16:55,060 --> 00:16:56,570 Basically, within all these gadgets, 355 00:16:56,570 --> 00:16:59,020 we're preventing black from doing anything. 356 00:16:59,020 --> 00:17:03,157 So the main place where we care about black's motion is here. 357 00:17:03,157 --> 00:17:05,490 So there's going to be an initial phase where everyone's 358 00:17:05,490 --> 00:17:06,240 setting variables. 359 00:17:06,240 --> 00:17:07,230 We're taking turns. 360 00:17:07,230 --> 00:17:08,569 And white's going to set half of them. 361 00:17:08,569 --> 00:17:09,985 Black's going to set half of them. 362 00:17:09,985 --> 00:17:12,980 Their black is screwing you, but in a controlled fashion. 363 00:17:12,980 --> 00:17:16,720 After that, there's going to be a pile of extra moves 364 00:17:16,720 --> 00:17:18,119 that black can just do. 365 00:17:18,119 --> 00:17:20,990 And black will always be forced to do those extra useless 366 00:17:20,990 --> 00:17:23,300 moves. 367 00:17:23,300 --> 00:17:25,660 If we happen to satisfy the final output 368 00:17:25,660 --> 00:17:28,339 to the overall thing, then white will 369 00:17:28,339 --> 00:17:31,254 have a zillion free moves and then white will win. 370 00:17:31,254 --> 00:17:31,920 That's the idea. 371 00:17:31,920 --> 00:17:35,640 But within these gadgets, as long 372 00:17:35,640 --> 00:17:37,595 as we don't do something intelligent 373 00:17:37,595 --> 00:17:39,720 like going here and then getting captured by black, 374 00:17:39,720 --> 00:17:42,120 and therefore destroying the whole construction. 375 00:17:42,120 --> 00:17:45,350 Then, white will lose, probably. 376 00:17:45,350 --> 00:17:47,810 We're always careful to go to positions that are safe. 377 00:17:47,810 --> 00:17:50,700 Black cannot jump us if we're there. 378 00:17:50,700 --> 00:17:52,610 So by checking all those cases, you 379 00:17:52,610 --> 00:17:55,470 can guarantee black doesn't hurt you. 380 00:17:55,470 --> 00:17:58,190 I didn't mention what's black doing when we're not 381 00:17:58,190 --> 00:18:00,730 allowing it to play at all. 382 00:18:00,730 --> 00:18:01,230 Cool. 383 00:18:01,230 --> 00:18:03,740 So that's Konane. 384 00:18:03,740 --> 00:18:06,080 Next, is a game called Cross Purposes. 385 00:18:06,080 --> 00:18:08,540 This is a fairly new game by Michael Albert 386 00:18:08,540 --> 00:18:12,820 who's a fun guy in the common material game theory scene. 387 00:18:12,820 --> 00:18:17,300 So again we're going to play with go stones, 388 00:18:17,300 --> 00:18:19,730 but what you should imagine is that black stones 389 00:18:19,730 --> 00:18:22,710 are towers of two blocks. 390 00:18:22,710 --> 00:18:25,360 And then, you can push them over. 391 00:18:25,360 --> 00:18:28,100 So in this case, we took this tower, pushed it up, 392 00:18:28,100 --> 00:18:31,006 and so it occupied those two spots. 393 00:18:31,006 --> 00:18:32,880 But once it's pushed over, it's kind of dead. 394 00:18:32,880 --> 00:18:34,650 So we draw it in white. 395 00:18:34,650 --> 00:18:37,620 And then, for example, we could take this tower pop it over 396 00:18:37,620 --> 00:18:39,790 to the right and get those two. 397 00:18:39,790 --> 00:18:43,070 Now, to make this a fun two-player game-- this 398 00:18:43,070 --> 00:18:45,715 would be a natural enough solitaire game. 399 00:18:45,715 --> 00:18:47,090 But to make it a two-player game, 400 00:18:47,090 --> 00:18:49,631 we're going to have two players, one called horizontal, which 401 00:18:49,631 --> 00:18:54,060 can only do this type of move, and another player 402 00:18:54,060 --> 00:18:57,950 called vertical, which can only do this type of move. 403 00:18:57,950 --> 00:19:02,400 So what's fun here is that it's the same black pieces used 404 00:19:02,400 --> 00:19:04,310 by both players. 405 00:19:04,310 --> 00:19:06,370 But one of them can tip them left to right. 406 00:19:06,370 --> 00:19:09,560 And the other can tip them up or down. 407 00:19:09,560 --> 00:19:12,020 But again it's bounded, because once you top over a tower 408 00:19:12,020 --> 00:19:12,610 it's dead. 409 00:19:12,610 --> 00:19:15,370 So this is going to be PSPACE complete by reduction 410 00:19:15,370 --> 00:19:18,700 from bounded two-player constraint logic. 411 00:19:18,700 --> 00:19:20,400 So some-- question. 412 00:19:20,400 --> 00:19:22,215 AUDIENCE: What's the goal of the game? 413 00:19:22,215 --> 00:19:24,220 PROFESSOR: The goal the game is to move last. 414 00:19:24,220 --> 00:19:26,510 If you can't move, you lose. 415 00:19:26,510 --> 00:19:28,060 And that can be asymmetric. 416 00:19:28,060 --> 00:19:31,695 Some pieces are only going to be flippable up or down. 417 00:19:31,695 --> 00:19:33,070 A lot of games have that feature. 418 00:19:33,070 --> 00:19:36,140 It's called normal play, in fact, it's so common. 419 00:19:36,140 --> 00:19:38,030 That the last player to move wins. 420 00:19:38,030 --> 00:19:40,730 So a wire is going to look something like this. 421 00:19:40,730 --> 00:19:43,746 In general, I think vertical is the player that we're 422 00:19:43,746 --> 00:19:45,370 rooting for, and we're trying to decide 423 00:19:45,370 --> 00:19:47,490 whether vertical can win. 424 00:19:47,490 --> 00:19:49,432 And we're going to set up horizontal-- 425 00:19:49,432 --> 00:19:51,890 unlike the previous game-- we're going to set up horizontal 426 00:19:51,890 --> 00:19:55,470 in a position that it never has any moves except the one 427 00:19:55,470 --> 00:19:57,280 that you give it right then. 428 00:19:57,280 --> 00:20:00,320 So the idea is that as soon as we move A down, 429 00:20:00,320 --> 00:20:04,530 then horizontal has a move, namely the playing B. 430 00:20:04,530 --> 00:20:06,030 And then, we have a move and so on. 431 00:20:06,030 --> 00:20:07,850 So that will trigger. 432 00:20:07,850 --> 00:20:09,940 That better not stop at any point. 433 00:20:09,940 --> 00:20:13,250 We always want to set it up so when we're switching gadgets, 434 00:20:13,250 --> 00:20:16,440 it's our turn to move, because the horizontal player 435 00:20:16,440 --> 00:20:19,565 will never have another move to make. 436 00:20:19,565 --> 00:20:20,940 This is what it looks like after. 437 00:20:20,940 --> 00:20:22,356 I mean, things are just filling in 438 00:20:22,356 --> 00:20:24,390 if you've partially filled in this thing. 439 00:20:24,390 --> 00:20:26,740 Here's how we make a variable. 440 00:20:26,740 --> 00:20:28,780 So here in the initial phase of the game, 441 00:20:28,780 --> 00:20:30,050 horizontal will have moves. 442 00:20:30,050 --> 00:20:32,540 Horizontal could play this, filling those two squares, 443 00:20:32,540 --> 00:20:36,300 preventing us from playing this wire. 444 00:20:36,300 --> 00:20:39,390 So whoever goes here first will claim the thing. 445 00:20:39,390 --> 00:20:43,055 And if it's vertical, then it triggers the true value. 446 00:20:45,900 --> 00:20:47,625 We can also terminate a wire like this. 447 00:20:47,625 --> 00:20:49,030 This is always good for us. 448 00:20:49,030 --> 00:20:53,320 We can just trigger it whenever we want as vertical. 449 00:20:53,320 --> 00:20:56,810 So we need that for free edges, which 450 00:20:56,810 --> 00:21:00,930 we need for the protected OR. 451 00:21:00,930 --> 00:21:06,890 So to clarify or to fix what I said before, for the initial n 452 00:21:06,890 --> 00:21:09,250 moves, horizontal and vertical are 453 00:21:09,250 --> 00:21:13,440 going to exchange variables, take turns picking them. 454 00:21:13,440 --> 00:21:15,930 At that point onwards, horizontal has no moves 455 00:21:15,930 --> 00:21:18,330 except the one right after-- we're 456 00:21:18,330 --> 00:21:21,400 forcing horizontal to always play the way we want. 457 00:21:21,400 --> 00:21:24,720 So after this is done, then as soon as you move this, 458 00:21:24,720 --> 00:21:26,200 then horizontal has a unique move. 459 00:21:26,200 --> 00:21:27,900 So it will cooperate. 460 00:21:27,900 --> 00:21:32,200 Horizontal has to cooperate with us to fill in wires. 461 00:21:32,200 --> 00:21:36,410 So here is a protected OR. 462 00:21:36,410 --> 00:21:39,415 So if we trigger this, then this triggers, then this triggers, 463 00:21:39,415 --> 00:21:42,370 then this triggers, then that triggers, and so on. 464 00:21:42,370 --> 00:21:44,220 So that's all good. 465 00:21:44,220 --> 00:21:51,590 The reason it's a protected OR-- the trouble 466 00:21:51,590 --> 00:21:55,890 if we activated this twice, so first we activate through here, 467 00:21:55,890 --> 00:21:58,440 and then we activate here, and then here. 468 00:21:58,440 --> 00:22:00,980 And then, as vertical, we move B down. 469 00:22:00,980 --> 00:22:02,885 Now, horizontal has no move. 470 00:22:02,885 --> 00:22:07,350 So that would be bad news, if we sort of waste 471 00:22:07,350 --> 00:22:09,672 a trigger like that. 472 00:22:09,672 --> 00:22:11,380 And so that's why we need a protected OR, 473 00:22:11,380 --> 00:22:15,680 where only at most one of the two sides will trigger. 474 00:22:15,680 --> 00:22:18,014 CHOICE gadget is the same, but rotated 90 degrees. 475 00:22:18,014 --> 00:22:20,680 And that makes a big difference, because horizontal and vertical 476 00:22:20,680 --> 00:22:21,740 are flipped. 477 00:22:21,740 --> 00:22:27,120 So input is here. 478 00:22:27,120 --> 00:22:30,790 So if we trigger this, and then this, and then this, 479 00:22:30,790 --> 00:22:31,840 and then this. 480 00:22:31,840 --> 00:22:33,839 Then, as vertical, we get to choose 481 00:22:33,839 --> 00:22:35,880 whether this one activates or this one activates. 482 00:22:35,880 --> 00:22:37,796 So it's important to make it the right player. 483 00:22:41,110 --> 00:22:46,040 And here's the omega gadget that does AND, SPLIT, and SHIFT. 484 00:22:46,040 --> 00:22:51,840 If we try to activate input 2, these topple over. 485 00:22:51,840 --> 00:22:53,770 This topples down. 486 00:22:53,770 --> 00:22:56,020 And now, horizontal gets a choice. 487 00:22:56,020 --> 00:22:58,260 And horizontal's going to be mean and push B 488 00:22:58,260 --> 00:23:01,941 over and prevent this thing from activating, because it 489 00:23:01,941 --> 00:23:04,190 wants to prevent you from doing whatever you're doing. 490 00:23:04,190 --> 00:23:06,273 Because eventually, you're going to get to a place 491 00:23:06,273 --> 00:23:09,330 where you win, where you have a single move 492 00:23:09,330 --> 00:23:13,080 and then horizontal doesn't have a move. 493 00:23:13,080 --> 00:23:16,100 So that's in horizontal's interest to block you. 494 00:23:16,100 --> 00:23:18,250 But if you first did all of these toppling, 495 00:23:18,250 --> 00:23:23,390 topple this down, over down, over down, over down, over. 496 00:23:23,390 --> 00:23:25,590 Then, in particular, you put a white token here 497 00:23:25,590 --> 00:23:27,630 and so B won't be able to do that. 498 00:23:27,630 --> 00:23:30,840 So when you activate these guys, D will have to go over 499 00:23:30,840 --> 00:23:33,660 and out you go. 500 00:23:33,660 --> 00:23:36,410 So and then, it's the same thing either putting 501 00:23:36,410 --> 00:23:41,690 a free wire in input 2 and/or ignoring the output from output 502 00:23:41,690 --> 00:23:43,920 1, we get AND, SPLIT, and SHIFT. 503 00:23:46,810 --> 00:23:49,961 And I think that's it for Cross Purposes. 504 00:23:49,961 --> 00:23:50,460 Question. 505 00:23:50,460 --> 00:23:51,960 AUDIENCE: I probably misinterpreted. 506 00:23:51,960 --> 00:23:53,400 Did you show TURN gadget? 507 00:23:53,400 --> 00:23:57,894 PROFESSOR: I maybe did not show a TURN gadget. 508 00:23:57,894 --> 00:23:58,810 There's a TURN gadget. 509 00:23:58,810 --> 00:23:59,310 Good. 510 00:23:59,310 --> 00:24:00,700 I didn't talk about it. 511 00:24:00,700 --> 00:24:02,740 It works in the obvious way. 512 00:24:02,740 --> 00:24:04,940 But, yeah, it is definitely a little tricky 513 00:24:04,940 --> 00:24:06,300 to make sure you can do it. 514 00:24:06,300 --> 00:24:07,620 But it works. 515 00:24:07,620 --> 00:24:10,844 AUDIENCE: Back to the normal play condition, 516 00:24:10,844 --> 00:24:13,360 if you use games different from the [INAUDIBLE] 517 00:24:13,360 --> 00:24:17,770 version of the rule set? 518 00:24:17,770 --> 00:24:19,870 PROFESSOR: In general, those games 519 00:24:19,870 --> 00:24:25,560 are different when you can't move then you win. 520 00:24:25,560 --> 00:24:27,960 But from a PSPACE completeness perspective, 521 00:24:27,960 --> 00:24:28,880 it should be the same. 522 00:24:28,880 --> 00:24:31,420 It's really whether you are starting the quantifying 523 00:24:31,420 --> 00:24:33,580 sequence with an exists or a for all. 524 00:24:33,580 --> 00:24:35,740 And both end up with the class PSPACE. 525 00:24:35,740 --> 00:24:38,640 So there may be a way to distinguish. 526 00:24:38,640 --> 00:24:43,772 But at our level of granularity, we're not distinguishing. 527 00:24:43,772 --> 00:24:44,736 Yeah. 528 00:24:44,736 --> 00:24:46,664 AUDIENCE: Do you know whether it's PSPACE 529 00:24:46,664 --> 00:24:52,930 complete for arbitrary setups with only black starting 530 00:24:52,930 --> 00:24:53,910 tokens? 531 00:24:53,910 --> 00:24:54,630 PROFESSOR: Oh. 532 00:24:54,630 --> 00:24:55,130 I see. 533 00:24:55,130 --> 00:24:55,672 No obstacles. 534 00:24:55,672 --> 00:24:57,546 AUDIENCE: It's a more natural starting place, 535 00:24:57,546 --> 00:24:58,590 than starting with a-- 536 00:24:58,590 --> 00:24:59,256 PROFESSOR: Yeah. 537 00:24:59,256 --> 00:25:00,730 That's definitely not known. 538 00:25:00,730 --> 00:25:04,700 I think it would be cool to think about only black tokens, 539 00:25:04,700 --> 00:25:05,680 no initial whites. 540 00:25:08,310 --> 00:25:09,830 All right. 541 00:25:09,830 --> 00:25:13,940 So that's all I want to say about PSPACE. 542 00:25:13,940 --> 00:25:15,560 I think we're done with PSPACE. 543 00:25:15,560 --> 00:25:19,870 We first did PSPACE here, then PSPACE here last class, 544 00:25:19,870 --> 00:25:22,230 and then PSPACE here. 545 00:25:22,230 --> 00:25:25,590 So now we're going to move up to EXPTIME, 2 players, 546 00:25:25,590 --> 00:25:27,490 unbounded number of moves. 547 00:25:27,490 --> 00:25:30,035 EXPTIME turns out to be the right class. 548 00:25:33,310 --> 00:25:34,233 Oh. 549 00:25:34,233 --> 00:25:34,733 I lied. 550 00:25:37,284 --> 00:25:41,280 I have one more PSPACE class, which I don't have slides for. 551 00:25:45,180 --> 00:25:48,680 This is a short topic, but it's a cool one, 552 00:25:48,680 --> 00:25:52,620 I think something that deserves more study. 553 00:25:52,620 --> 00:25:56,160 But at the moment there are no natural games 554 00:25:56,160 --> 00:25:57,820 like real-life games that have been 555 00:25:57,820 --> 00:26:02,260 shown to fall into this class or to be complete in this class. 556 00:26:02,260 --> 00:26:04,050 So this is stochastic games. 557 00:26:04,050 --> 00:26:08,220 The idea is you're playing against a random opponent. 558 00:26:08,220 --> 00:26:16,280 So you have two players, and one of the players is random. 559 00:26:16,280 --> 00:26:18,590 So it's hard to identify with randomness. 560 00:26:18,590 --> 00:26:20,240 So the other player is you. 561 00:26:20,240 --> 00:26:22,350 Your goal is to win the game. 562 00:26:22,350 --> 00:26:25,430 And you know that your player's just flipping a coin every time 563 00:26:25,430 --> 00:26:27,130 and playing randomly, say uniformly 564 00:26:27,130 --> 00:26:31,970 or some distribution that's known to you. 565 00:26:31,970 --> 00:26:36,050 Think of games where you're rolling dice, or drawing cards, 566 00:26:36,050 --> 00:26:38,790 or there's some random aspect to the game. 567 00:26:38,790 --> 00:26:40,910 How hard are these games? 568 00:26:40,910 --> 00:26:44,700 Well, what's been studied-- this is a [INAUDIBLE] paper-- 569 00:26:44,700 --> 00:26:48,870 is for bounded two-player stochastic games. 570 00:26:48,870 --> 00:26:50,070 The answer is PSPACE again. 571 00:26:55,960 --> 00:27:02,160 So, for example, here's a game, a formula game, stochastic SAT. 572 00:27:02,160 --> 00:27:04,320 We want to know is there a move such 573 00:27:04,320 --> 00:27:07,790 that for a randomly chosen move-- I like this notation. 574 00:27:07,790 --> 00:27:09,530 We have exist and for all. 575 00:27:09,530 --> 00:27:13,170 Backwards R is a random quantifier. 576 00:27:13,170 --> 00:27:17,210 There exists an x3 such that a random x4, 577 00:27:17,210 --> 00:27:22,580 so this is uniform random over 0 and 1, the binary choice 01. 578 00:27:22,580 --> 00:27:26,200 We want the probability-- this gives a distribution. 579 00:27:26,200 --> 00:27:28,450 We want the probability of the formula being satisfied 580 00:27:28,450 --> 00:27:30,014 being greater than a half. 581 00:27:30,014 --> 00:27:32,680 I'm guessing you could pump that up to be with high probability. 582 00:27:32,680 --> 00:27:35,640 But just deciding whether you could 583 00:27:35,640 --> 00:27:40,360 win by probability strictly more than half, is PSPACE complete. 584 00:27:42,960 --> 00:27:44,205 So this is cool. 585 00:27:44,205 --> 00:27:46,680 And to me intuitively randomness should be weaker 586 00:27:46,680 --> 00:27:49,010 than an adversarial player, where 587 00:27:49,010 --> 00:27:50,460 you replace these with for all. 588 00:27:53,550 --> 00:27:56,820 But it turns out they behave roughly the same essentially 589 00:27:56,820 --> 00:27:58,800 by a probability amplification argument. 590 00:27:58,800 --> 00:28:01,500 It's a little too detailed to go into here. 591 00:28:01,500 --> 00:28:03,560 And so far, there are no reductions 592 00:28:03,560 --> 00:28:05,867 from this to what I would call natural games. 593 00:28:05,867 --> 00:28:07,450 There are a few examples in the paper, 594 00:28:07,450 --> 00:28:11,590 but none around rolling dice. 595 00:28:11,590 --> 00:28:14,540 I would love to apply this to like playing Tetris, 596 00:28:14,540 --> 00:28:17,400 or in the paper they mention backgammon 597 00:28:17,400 --> 00:28:19,420 as a candidate, something like that, 598 00:28:19,420 --> 00:28:21,700 where you'd like to get PSPACE completeness 599 00:28:21,700 --> 00:28:24,640 in a bounded setting. 600 00:28:24,640 --> 00:28:28,760 So throwing that out there is an interesting direction to study, 601 00:28:28,760 --> 00:28:32,190 but I'll end it there. 602 00:28:32,190 --> 00:28:36,650 Now, we can go to EXPTIME, two players, unbounded game, 603 00:28:36,650 --> 00:28:40,092 adversarial player, no randomness. 604 00:28:40,092 --> 00:28:41,740 And we get EXPTIME completeness. 605 00:29:00,370 --> 00:29:02,570 So we're going to start out with-- I guess, 606 00:29:02,570 --> 00:29:05,870 similar to what we do it down here-- I'm going to start 607 00:29:05,870 --> 00:29:09,670 with some formula games which are EXPTIME complete 608 00:29:09,670 --> 00:29:12,120 and then some graph games that are EXPTIME complete, 609 00:29:12,120 --> 00:29:14,940 then constraint logic game which is EXPTIME complete. 610 00:29:14,940 --> 00:29:18,340 And along the way will prove something some hardness. 611 00:29:18,340 --> 00:29:20,730 There are fewer results here, in general, I would say. 612 00:29:20,730 --> 00:29:22,950 In particular, I don't have a good example 613 00:29:22,950 --> 00:29:27,586 of using constraint logic to prove a fun game hard, 614 00:29:27,586 --> 00:29:28,710 though they probably exist. 615 00:29:28,710 --> 00:29:30,960 We just haven't gotten there yet. 616 00:29:30,960 --> 00:29:34,530 So it's more open problems. 617 00:29:34,530 --> 00:29:38,290 But there are a lot of cool base problems out there. 618 00:29:38,290 --> 00:29:42,360 And this field started by a paper by Stockmeyer and Chandra 619 00:29:42,360 --> 00:29:44,689 in 1979. 620 00:29:44,689 --> 00:29:46,480 And it's been the basis for pretty much all 621 00:29:46,480 --> 00:29:48,180 EXPTIME hardness proofs. 622 00:29:48,180 --> 00:29:50,020 EXPTIME hardness is really cool, because it 623 00:29:50,020 --> 00:29:53,270 implies exponential time. 624 00:29:53,270 --> 00:29:56,490 Any problems EXPTIME hard cannot be solved faster than 625 00:29:56,490 --> 00:29:58,020 exponential time. 626 00:29:58,020 --> 00:30:00,170 Whereas all these other classes, we 627 00:30:00,170 --> 00:30:04,090 need to assume P does not equal NP or P is not equal to PSPACE. 628 00:30:04,090 --> 00:30:06,600 P we know does not equal EXPTIME. 629 00:30:06,600 --> 00:30:08,880 So these games require exponential time. 630 00:30:12,219 --> 00:30:15,570 It's kind of fun. 631 00:30:15,570 --> 00:30:17,870 And I'm pretty sure the first results in this category 632 00:30:17,870 --> 00:30:20,218 were these games. 633 00:30:20,218 --> 00:30:22,890 So it's power of games. 634 00:30:29,500 --> 00:30:32,160 So in general, we're going to have some formula, maybe 635 00:30:32,160 --> 00:30:34,600 a couple formulas. 636 00:30:34,600 --> 00:30:36,944 But definitely we have a variable assignment. 637 00:30:36,944 --> 00:30:38,360 And the state of the game is going 638 00:30:38,360 --> 00:30:39,901 to be a variable assignment and who's 639 00:30:39,901 --> 00:30:45,820 going to move next, player 1 or player 2, black or white. 640 00:30:45,820 --> 00:30:49,050 Again, we'll use that notation. 641 00:30:49,050 --> 00:30:51,647 And we're going to start with some variable arbitrary 642 00:30:51,647 --> 00:30:52,480 variable assignment. 643 00:30:52,480 --> 00:30:55,820 That's part of the initial state of the game, the board if you 644 00:30:55,820 --> 00:30:56,940 will. 645 00:30:56,940 --> 00:31:04,180 And in general, you can set variables to 0 or 1 646 00:31:04,180 --> 00:31:05,275 as many times as you like. 647 00:31:07,800 --> 00:31:11,070 That's what distinguishes this from bounded games. 648 00:31:11,070 --> 00:31:14,925 And all of these games are going to be partisan, 649 00:31:14,925 --> 00:31:18,859 a term we used last class, so meaning 650 00:31:18,859 --> 00:31:20,775 we're going to have black and white variables. 651 00:31:26,780 --> 00:31:33,295 And I'm going to cheat a little bit. 652 00:31:33,295 --> 00:31:34,920 There's going to be one variable that's 653 00:31:34,920 --> 00:31:37,180 black and white, but only in one of the games. 654 00:31:37,180 --> 00:31:38,744 So we'll get there. 655 00:31:38,744 --> 00:31:40,910 So black player can only change the black variables. 656 00:31:40,910 --> 00:31:43,118 The white player can only change the white variables, 657 00:31:43,118 --> 00:31:44,940 except for how I'm going to cheat. 658 00:31:44,940 --> 00:31:47,757 So let's start. 659 00:31:47,757 --> 00:31:49,340 These games are very creatively named. 660 00:31:49,340 --> 00:31:51,894 First one's called G1. 661 00:31:51,894 --> 00:31:53,810 And it's amazing how consistent the literature 662 00:31:53,810 --> 00:31:57,020 is about the naming of these games. 663 00:31:57,020 --> 00:32:01,674 So in G1, I move my player is to set all 664 00:32:01,674 --> 00:32:02,840 the variables of your color. 665 00:32:05,940 --> 00:32:09,140 So if you're white, you're going to set all the white variables. 666 00:32:09,140 --> 00:32:11,500 If black, you're going to set all black variables. 667 00:32:11,500 --> 00:32:14,140 And set here means you get to choose whether it's 0 or 1. 668 00:32:14,140 --> 00:32:16,710 So you're just going to completely rewrite all 669 00:32:16,710 --> 00:32:18,730 of the variables of your color. 670 00:32:18,730 --> 00:32:20,090 And then, here's the cheat. 671 00:32:20,090 --> 00:32:23,070 We're also going to have a single variable that's 672 00:32:23,070 --> 00:32:24,440 shared between black and white. 673 00:32:27,470 --> 00:32:29,000 Call it t. 674 00:32:29,000 --> 00:32:34,870 And it's going to be 0 if it's a player 2's move, 675 00:32:34,870 --> 00:32:36,690 1 if it's player 1's move. 676 00:32:36,690 --> 00:32:38,240 I mean, it doesn't really matter. 677 00:32:38,240 --> 00:32:41,580 But I guess 1 and 1 is nice. 678 00:32:41,580 --> 00:32:42,720 So that's the moves. 679 00:32:42,720 --> 00:32:45,040 What's the goal of the game? 680 00:32:45,040 --> 00:32:56,990 You're going to lose the game if, by making your move, 681 00:32:56,990 --> 00:33:02,433 you satisfy a common between the two players 4DNF formula. 682 00:33:09,132 --> 00:33:10,590 So there's one formula in the game. 683 00:33:10,590 --> 00:33:13,492 It's DNF, which is very simple to think about. 684 00:33:13,492 --> 00:33:14,700 It's just a bunch of options. 685 00:33:14,700 --> 00:33:15,870 If this happens, you lose. 686 00:33:15,870 --> 00:33:16,800 If this happens, you lose. 687 00:33:16,800 --> 00:33:17,883 If this happens, you lose. 688 00:33:17,883 --> 00:33:19,580 It's an OR with various conditions. 689 00:33:19,580 --> 00:33:21,340 So you want to move in such a way 690 00:33:21,340 --> 00:33:24,612 that you do not satisfy that formula every time. 691 00:33:24,612 --> 00:33:26,820 And in each move, you can rewrite all your variables. 692 00:33:26,820 --> 00:33:29,500 But this formula does involve t, which 693 00:33:29,500 --> 00:33:32,220 lets you care about who's turn it was. 694 00:33:32,220 --> 00:33:34,570 So that's cool, very clean. 695 00:33:34,570 --> 00:33:37,180 I mean, the players have a lot of power here. 696 00:33:37,180 --> 00:33:41,135 This is the first game proved hard. 697 00:33:41,135 --> 00:33:43,260 A little tricky to work with, because in most games 698 00:33:43,260 --> 00:33:45,611 you can't set all the variables at once. 699 00:33:45,611 --> 00:33:47,860 Generally, you're only setting one variable at a time. 700 00:33:47,860 --> 00:33:49,443 So all the other games are going to be 701 00:33:49,443 --> 00:33:52,840 setting one variable at a time. 702 00:33:52,840 --> 00:33:54,900 At this point, we're just defining. 703 00:33:54,900 --> 00:33:59,170 Then, we'll use these games to prove some hardness. 704 00:33:59,170 --> 00:34:05,090 G2, the next game, is a move was going to be 705 00:34:05,090 --> 00:34:06,870 set one variable of your color. 706 00:34:12,980 --> 00:34:15,949 So in particular, if you set the variable to its original value, 707 00:34:15,949 --> 00:34:17,030 that's like passing. 708 00:34:17,030 --> 00:34:18,900 So passing is allowed in this game. 709 00:34:18,900 --> 00:34:20,480 Passing is also allowed here. 710 00:34:20,480 --> 00:34:22,389 You could not change any of the variables. 711 00:34:22,389 --> 00:34:23,639 You wouldn't win in that case. 712 00:34:23,639 --> 00:34:26,810 You only win if your opponent loses in this setup. 713 00:34:26,810 --> 00:34:31,171 When the question is can you win. 714 00:34:31,171 --> 00:34:33,254 In this case, we're going to have a win condition. 715 00:34:48,350 --> 00:34:49,960 In this case, white and black have 716 00:34:49,960 --> 00:34:52,239 their own winning formulas. 717 00:34:52,239 --> 00:34:56,580 They're in 12DNF, still DNF but a little bigger. 718 00:34:56,580 --> 00:35:00,460 And if you satisfy your formula at the end of your turn, 719 00:35:00,460 --> 00:35:03,370 you win and vice versa. 720 00:35:03,370 --> 00:35:06,970 And move is just change one variable at a time. 721 00:35:06,970 --> 00:35:10,980 So that's a very useful game. 722 00:35:10,980 --> 00:35:12,075 Next is G3. 723 00:35:15,160 --> 00:35:18,490 A slight variation to G3, we're going 724 00:35:18,490 --> 00:35:22,530 to flip one variable of your color. 725 00:35:27,670 --> 00:35:47,515 And then, we're going to lose if you satisfy your 12DNF formula. 726 00:35:53,367 --> 00:35:54,450 One thing to keep in mind. 727 00:35:54,450 --> 00:35:56,120 Losing and winning are quite different, 728 00:35:56,120 --> 00:35:58,550 because losing is essentially negating the formula, which 729 00:35:58,550 --> 00:36:00,140 turns DNF into DNF. 730 00:36:00,140 --> 00:36:01,640 So you can think of this as winning. 731 00:36:01,640 --> 00:36:03,515 In the CNF condition, you could think of this 732 00:36:03,515 --> 00:36:04,910 as losing in a DNF condition. 733 00:36:04,910 --> 00:36:07,160 But they're not interchangeable. 734 00:36:07,160 --> 00:36:09,740 So here we flipped between DNF and DNF. 735 00:36:09,740 --> 00:36:11,830 But we've also changed the definition of a move. 736 00:36:11,830 --> 00:36:14,070 A flip, you're not allowed to pass. 737 00:36:14,070 --> 00:36:17,120 You must change a variable to its opposite value. 738 00:36:17,120 --> 00:36:19,286 Here, we're allowed to just pass. 739 00:36:19,286 --> 00:36:21,160 So we changed the move definition and the win 740 00:36:21,160 --> 00:36:22,210 condition. 741 00:36:22,210 --> 00:36:23,260 That is also hard. 742 00:36:23,260 --> 00:36:24,760 This is a common one. 743 00:36:24,760 --> 00:36:27,810 I would say most EXPTIME hardness proofs use this one. 744 00:36:30,870 --> 00:36:31,370 G4. 745 00:36:38,290 --> 00:36:39,630 Move is going to be like this. 746 00:36:39,630 --> 00:36:42,130 You can set one variable of your color. 747 00:36:46,270 --> 00:36:50,000 And here, we're going to have a common win condition. 748 00:36:50,000 --> 00:36:51,710 This is nice. 749 00:36:51,710 --> 00:37:04,500 You win if satisfy a common 12DNF formula. 750 00:37:04,500 --> 00:37:05,230 Whoops. 751 00:37:05,230 --> 00:37:07,146 13DNF. 752 00:37:07,146 --> 00:37:08,100 We need a little more. 753 00:37:11,440 --> 00:37:14,480 So every move, we're both checking 754 00:37:14,480 --> 00:37:16,200 the same formula in this case. 755 00:37:16,200 --> 00:37:17,697 And here, the set happens to win. 756 00:37:17,697 --> 00:37:18,780 So it's a variation of G2. 757 00:37:21,940 --> 00:37:23,680 G5 does not exist. 758 00:37:23,680 --> 00:37:28,400 G6-- there is a G5 in the paper, but it's 759 00:37:28,400 --> 00:37:30,376 a generalization of G6. 760 00:37:30,376 --> 00:37:33,292 So I'll tell you what is in a second. 761 00:37:33,292 --> 00:37:35,130 Not important. 762 00:37:35,130 --> 00:37:39,140 So G6, same thing for the move. 763 00:37:39,140 --> 00:37:45,120 You set one of your variables to whatever you want. 764 00:37:45,120 --> 00:37:47,560 But we're going to make it asymmetric in the sense 765 00:37:47,560 --> 00:37:52,040 that-- and this will be very helpful for constraint logic-- 766 00:37:52,040 --> 00:37:56,120 player 1 wins-- player 1 is the one that we care about. 767 00:37:56,120 --> 00:38:01,680 We're trying to decide whether they win-- if anyone satisfies 768 00:38:01,680 --> 00:38:02,660 a particular formula. 769 00:38:18,050 --> 00:38:19,275 So there's one CNF formula. 770 00:38:19,275 --> 00:38:21,740 If it's ever satisfied, player 1 wins. 771 00:38:21,740 --> 00:38:24,560 If it's never satisfied, you get a tie. 772 00:38:24,560 --> 00:38:27,800 And we want to know whether player 1 can force a win. 773 00:38:27,800 --> 00:38:30,660 So this is very compatible with this sort of thing 774 00:38:30,660 --> 00:38:33,670 we were doing before with it was the game 775 00:38:33,670 --> 00:38:36,600 problem from last class, but in particular the constraint logic 776 00:38:36,600 --> 00:38:37,230 games. 777 00:38:37,230 --> 00:38:39,280 So we'll use G6 for constraint logic. 778 00:38:39,280 --> 00:38:40,930 G3 is most other proofs. 779 00:38:45,200 --> 00:38:49,430 So these are all EXPTIME complete formula games. 780 00:38:49,430 --> 00:38:49,930 Yeah? 781 00:38:49,930 --> 00:38:49,980 AUDIENCE: All right. 782 00:38:49,980 --> 00:38:51,730 I'm a know; little confused about G1. 783 00:38:51,730 --> 00:38:54,430 So I can pass by just setting down any of my variables, 784 00:38:54,430 --> 00:38:55,345 right? 785 00:38:55,345 --> 00:38:55,970 PROFESSOR: Yes. 786 00:38:55,970 --> 00:38:57,678 AUDIENCE: So then, how could I ever lose? 787 00:38:57,678 --> 00:38:58,324 Because if-- 788 00:38:58,324 --> 00:39:02,276 AUDIENCE: You can lose if the turn variable changed 789 00:39:02,276 --> 00:39:05,687 satisfies the [INAUDIBLE]. 790 00:39:05,687 --> 00:39:06,228 AUDIENCE: Oh. 791 00:39:06,228 --> 00:39:06,728 Yeah. 792 00:39:06,728 --> 00:39:07,710 [INTERPOSING VOICES] 793 00:39:07,710 --> 00:39:08,700 AUDIENCE: Sorry. 794 00:39:08,700 --> 00:39:12,599 PROFESSOR: Well, it changes every time so, yeah, right. 795 00:39:12,599 --> 00:39:14,890 I think you could set your variables in such a way when 796 00:39:14,890 --> 00:39:17,610 it's the opponents turn, no matter what they do, 797 00:39:17,610 --> 00:39:21,920 the formula becomes satisfied and then they lose. 798 00:39:21,920 --> 00:39:22,772 Yeah. 799 00:39:22,772 --> 00:39:23,597 Good. 800 00:39:23,597 --> 00:39:25,680 AUDIENCE: But then it became satisfied on my turn. 801 00:39:25,680 --> 00:39:26,400 Sorry. 802 00:39:26,400 --> 00:39:28,260 PROFESSOR: But t was a different value. 803 00:39:28,260 --> 00:39:32,810 So when it's your turn, you set t to 0 or set t to 1. 804 00:39:32,810 --> 00:39:35,050 And so then, maybe the formula's not satisfied. 805 00:39:35,050 --> 00:39:37,260 When it's the opponents turn, even if they pass, 806 00:39:37,260 --> 00:39:38,720 t is set to 0. 807 00:39:38,720 --> 00:39:40,619 Yes. t is part of the formula. 808 00:39:40,619 --> 00:39:42,118 AUDIENCE: Where does the 12 come up? 809 00:39:42,118 --> 00:39:43,559 Is that from the previous? 810 00:39:43,559 --> 00:39:45,600 PROFESSOR: I think it's from the previous result. 811 00:39:45,600 --> 00:39:46,099 Yeah. 812 00:39:46,099 --> 00:39:47,470 Didn't we have an 11 or 12? 813 00:39:47,470 --> 00:39:48,350 AUDIENCE: It was 12. 814 00:39:48,350 --> 00:39:49,160 PROFESSOR: Yeah. 815 00:39:49,160 --> 00:39:51,720 All right. 816 00:39:51,720 --> 00:39:55,510 In case, you prefer real games, as I do. 817 00:39:55,510 --> 00:39:58,460 Here is a physical instantiation-- 818 00:39:58,460 --> 00:40:00,020 it could be many of the games. 819 00:40:00,020 --> 00:40:03,470 The one they chose to highlight was G4. 820 00:40:03,470 --> 00:40:05,240 So this is a game called Peek. 821 00:40:05,240 --> 00:40:08,790 And that name has been reappropriated 822 00:40:08,790 --> 00:40:11,850 for many other games, which we'll talk about in a moment. 823 00:40:11,850 --> 00:40:14,130 But the idea is you have a bunch of trays. 824 00:40:14,130 --> 00:40:16,410 Each tray has a bunch of holes in it. 825 00:40:16,410 --> 00:40:18,820 Everybody knows where all the holes are. 826 00:40:18,820 --> 00:40:20,520 Each tray has exactly two positions 827 00:40:20,520 --> 00:40:22,970 in all the way and out all the way. 828 00:40:22,970 --> 00:40:25,240 It's like here. 829 00:40:25,240 --> 00:40:31,290 And there are white trays and black trays. 830 00:40:31,290 --> 00:40:35,390 So G4, white player can take any of the trays of their variable, 831 00:40:35,390 --> 00:40:37,722 and if they want to, toggle its state. 832 00:40:37,722 --> 00:40:39,930 They can either push it in or pull it out or leave it 833 00:40:39,930 --> 00:40:42,020 as it is. 834 00:40:42,020 --> 00:40:47,020 And then, you're going to win if, viewed from above, 835 00:40:47,020 --> 00:40:50,131 there's a hole that sees all the way down to the ground. 836 00:40:50,131 --> 00:40:51,630 So you could put something red here. 837 00:40:51,630 --> 00:40:55,640 And if you see red at the top, then you've 838 00:40:55,640 --> 00:40:57,134 satisfied the DNF formula. 839 00:40:57,134 --> 00:40:58,300 It's common between the two. 840 00:40:58,300 --> 00:40:59,790 So the first player to make a move 841 00:40:59,790 --> 00:41:01,660 where you could see a hole the way through, 842 00:41:01,660 --> 00:41:03,880 that is expressing DNF formula. 843 00:41:03,880 --> 00:41:05,850 So that's kind of a fun way, geometric way, 844 00:41:05,850 --> 00:41:07,715 to think about these games. 845 00:41:07,715 --> 00:41:09,590 And you could adapt it to all of these games, 846 00:41:09,590 --> 00:41:12,320 just with slightly different geometric setups. 847 00:41:12,320 --> 00:41:13,830 We'll see one in a little bit. 848 00:41:19,080 --> 00:41:20,230 Cool. 849 00:41:20,230 --> 00:41:22,550 I have here the next thing to mention 850 00:41:22,550 --> 00:41:25,250 is why are all these games in EXPTIME. 851 00:41:25,250 --> 00:41:28,070 I think that's worth talking about. 852 00:41:33,330 --> 00:41:36,540 The idea is pretty simple. 853 00:41:36,540 --> 00:41:39,290 All these games-- I mean, you can represent a state 854 00:41:39,290 --> 00:41:41,910 in a polynomial number of bits. 855 00:41:41,910 --> 00:41:45,080 It's just the current setting of the variables and maybe 856 00:41:45,080 --> 00:41:47,220 whose turn it is. 857 00:41:47,220 --> 00:41:49,030 Therefore, there are an exponential number 858 00:41:49,030 --> 00:41:51,170 of possible states. 859 00:41:51,170 --> 00:41:56,370 And the approach is basically to build the entire state graph 860 00:41:56,370 --> 00:42:01,320 and then rank for each position whether it's 861 00:42:01,320 --> 00:42:03,900 a win for one player or a win for the other player. 862 00:42:03,900 --> 00:42:05,580 And I think the easiest way to think 863 00:42:05,580 --> 00:42:08,370 about this is you start with all the configurations 864 00:42:08,370 --> 00:42:11,570 that satisfy the win condition. 865 00:42:11,570 --> 00:42:13,760 You call those mate-in-0 positions. 866 00:42:13,760 --> 00:42:23,540 And then, from there in exponential time 867 00:42:23,540 --> 00:42:27,450 you can compute, find all of the moves, where 868 00:42:27,450 --> 00:42:30,380 all the places where you can make a move in any response 869 00:42:30,380 --> 00:42:31,920 lead you to a win position. 870 00:42:31,920 --> 00:42:34,040 And those are the mate-in-1 positions. 871 00:42:34,040 --> 00:42:38,520 Or in two ply, one move, one pair of moves. 872 00:42:38,520 --> 00:42:41,650 And so on and so forth. 873 00:42:41,650 --> 00:42:44,300 And so then, at most you are going 874 00:42:44,300 --> 00:42:47,570 to be mate in exponential, because they're only 875 00:42:47,570 --> 00:42:48,770 exponentially many states. 876 00:42:48,770 --> 00:42:51,100 So the longest mate path is going to be exponential. 877 00:42:51,100 --> 00:42:58,850 So you can do like 4k equals 0 to the total number of states, 878 00:42:58,850 --> 00:43:04,730 which is an exponential compute mate-in-k. 879 00:43:08,310 --> 00:43:11,750 And then, you've characterized the whole state space 880 00:43:11,750 --> 00:43:14,030 in nearly exponential time. 881 00:43:14,030 --> 00:43:16,080 And now you know which ones are winning states. 882 00:43:16,080 --> 00:43:18,410 And then, you check whether yours is one of them. 883 00:43:18,410 --> 00:43:20,460 So there's probably other ways to do it. 884 00:43:20,460 --> 00:43:22,874 You could probably start from your initial configuration. 885 00:43:22,874 --> 00:43:25,290 But this makes it clear that it's at most exponential time 886 00:43:25,290 --> 00:43:27,360 that you'll be spending. 887 00:43:27,360 --> 00:43:29,944 Not polynomial space, because we're building the entire graph 888 00:43:29,944 --> 00:43:30,860 here for this to work. 889 00:43:30,860 --> 00:43:34,080 We have to remember for all the states that we visited, 890 00:43:34,080 --> 00:43:37,354 so we can check for duplicates. 891 00:43:37,354 --> 00:43:39,770 So that's intuitively why we're an exponential time bigger 892 00:43:39,770 --> 00:43:41,877 than PSPACE, assuming PSPACE does not equal 893 00:43:41,877 --> 00:43:42,960 EXPTIME, which we believe. 894 00:43:47,880 --> 00:43:49,150 Cool. 895 00:43:49,150 --> 00:43:51,845 So let's do some graph games next. 896 00:43:54,730 --> 00:43:58,100 I have two games to mention and a proof for one of them. 897 00:44:13,280 --> 00:44:19,260 First game is based on Hamiltonian cycle. 898 00:44:19,260 --> 00:44:21,010 So this is a funny kind of game. 899 00:44:25,335 --> 00:44:27,960 And the claim is that you can do this for a lot of different NP 900 00:44:27,960 --> 00:44:28,790 complete problems. 901 00:44:28,790 --> 00:44:31,690 But in general, we have a graph. 902 00:44:31,690 --> 00:44:34,610 Every edge of the graph is either black or white. 903 00:44:34,610 --> 00:44:37,085 And black player can only play black edges. 904 00:44:37,085 --> 00:44:38,710 White player can only play black edges. 905 00:44:38,710 --> 00:44:43,830 In addition, every edge either in or out, in the graph 906 00:44:43,830 --> 00:44:47,490 or currently out of the graph. 907 00:44:47,490 --> 00:44:53,030 And that's what these variables are going to correspond to. 908 00:44:53,030 --> 00:44:56,370 I mean, we're going to convert into a corresponding game. 909 00:44:56,370 --> 00:45:01,520 In this case, it's going to be a G6 style game. 910 00:45:01,520 --> 00:45:08,100 So the winning condition is that the set of in edges 911 00:45:08,100 --> 00:45:11,910 form a Hamiltonian cycle in the graph. 912 00:45:11,910 --> 00:45:14,330 So you could think in means in the cycle, 913 00:45:14,330 --> 00:45:16,500 out means not in the cycle. 914 00:45:16,500 --> 00:45:20,210 If we ever get to a state where the in edges 915 00:45:20,210 --> 00:45:22,640 form a Hamiltonian cycle, player 1 wins. 916 00:45:22,640 --> 00:45:25,390 Player 2's goal is to try to avoid that. 917 00:45:25,390 --> 00:45:27,690 Player 2 can only control the black edges. 918 00:45:27,690 --> 00:45:29,770 Player 1 can only control the white edges. 919 00:45:29,770 --> 00:45:33,420 At the end of each turn, you can change, if you want to, 920 00:45:33,420 --> 00:45:36,060 one of the edges between in and out 921 00:45:36,060 --> 00:45:38,780 and one of the edges of your color. 922 00:45:38,780 --> 00:45:43,685 So I'm just going to leave it at that, because the proof is not 923 00:45:43,685 --> 00:45:44,560 terribly interesting. 924 00:45:47,340 --> 00:45:51,310 No gadgets, but this next game is 925 00:45:51,310 --> 00:45:54,810 I think a lot more fun, more surprisingly hard. 926 00:45:54,810 --> 00:46:00,650 And it has a nice clean reduction also from G3. 927 00:46:00,650 --> 00:46:01,565 So what's the game? 928 00:46:05,060 --> 00:46:09,325 We are given three graphs on the same vertices. 929 00:46:12,590 --> 00:46:17,450 So really you can think of this as a three-edge colored graph. 930 00:46:17,450 --> 00:46:20,040 There's the red graph, the blue graph, the green graph, 931 00:46:20,040 --> 00:46:22,090 same set of vertices. 932 00:46:22,090 --> 00:46:27,350 And we are going to have tokens on vertices. 933 00:46:30,100 --> 00:46:33,380 And we're going to have at most one per vertex. 934 00:46:36,170 --> 00:46:37,965 There are white tokens and black tokens. 935 00:46:40,610 --> 00:46:46,710 A move by a player is going to, call it, 936 00:46:46,710 --> 00:47:06,970 slide a token, exactly one of them, of your color along path 937 00:47:06,970 --> 00:47:08,030 in one of the graphs. 938 00:47:10,374 --> 00:47:11,290 There's three of them. 939 00:47:19,770 --> 00:47:23,030 And that slide has to satisfy a few conditions. 940 00:47:25,780 --> 00:47:29,140 One condition which is that the target vertex 941 00:47:29,140 --> 00:47:33,030 you get to and all intermediate vertices that you follow 942 00:47:33,030 --> 00:47:37,200 along the path must be empty. 943 00:47:41,290 --> 00:47:42,415 They should have no tokens. 944 00:47:47,640 --> 00:47:49,900 So you pick up any token of your color-- 945 00:47:49,900 --> 00:47:51,970 you pick a color red, green, or blue-- 946 00:47:51,970 --> 00:47:54,830 and you follow a red path or you follow a green path 947 00:47:54,830 --> 00:47:56,450 or you follow a blue path. 948 00:47:56,450 --> 00:47:58,990 As long as that path doesn't hit any other tokens, 949 00:47:58,990 --> 00:48:01,300 then you drop your token, erase it 950 00:48:01,300 --> 00:48:03,290 from where it was originally, and you 951 00:48:03,290 --> 00:48:05,397 keep making moves like that. 952 00:48:05,397 --> 00:48:06,605 What about the win condition? 953 00:48:10,860 --> 00:48:14,100 We look at a player-- I'm going to come the players 1 and 2. 954 00:48:14,100 --> 00:48:27,920 Player i will win if they get one of their tokens 955 00:48:27,920 --> 00:48:32,500 to a node in the win set WI. 956 00:48:32,500 --> 00:48:36,250 So also we're going to color the nodes as winning for white 957 00:48:36,250 --> 00:48:38,560 or winning for black. 958 00:48:38,560 --> 00:48:42,430 And if you ever get a token to a winning spot for your color, 959 00:48:42,430 --> 00:48:43,000 games over. 960 00:48:43,000 --> 00:48:45,300 You win. 961 00:48:45,300 --> 00:48:48,190 So this is a pretty natural token-sliding game. 962 00:48:48,190 --> 00:48:50,500 As EXPTIME complete, very hard. 963 00:48:53,020 --> 00:48:56,850 And this one we're going to proof. 964 00:48:56,850 --> 00:48:58,880 So this is a variable gadget. 965 00:49:01,960 --> 00:49:03,547 So we're going to reduce from G3. 966 00:49:03,547 --> 00:49:04,380 I think I said that. 967 00:49:04,380 --> 00:49:04,900 This one. 968 00:49:04,900 --> 00:49:08,040 So G3, a move corresponds to you're 969 00:49:08,040 --> 00:49:10,980 forced to flip a variable of your color. 970 00:49:10,980 --> 00:49:14,120 Although we could switch that to the other version. 971 00:49:14,120 --> 00:49:20,060 And you're going to lose the game if you satisfy your DNF 972 00:49:20,060 --> 00:49:20,710 formula. 973 00:49:20,710 --> 00:49:25,050 So there's lots of edges here. 974 00:49:25,050 --> 00:49:29,475 But in particular, there's solid edges, dashed edges, 975 00:49:29,475 --> 00:49:30,350 and the dotted edges. 976 00:49:30,350 --> 00:49:32,240 That's red, green, and blue. 977 00:49:32,240 --> 00:49:35,230 This is before color journals. 978 00:49:35,230 --> 00:49:35,730 Question. 979 00:49:35,730 --> 00:49:37,438 AUDIENCE: I didn't catch what the purpose 980 00:49:37,438 --> 00:49:39,240 of coloring the edges is. 981 00:49:39,240 --> 00:49:40,700 PROFESSOR: Oh. 982 00:49:40,700 --> 00:49:42,250 It's basically to decompose the graph 983 00:49:42,250 --> 00:49:44,470 into a bunch of different types of paths. 984 00:49:44,470 --> 00:49:47,980 So when you follow a path, it must 985 00:49:47,980 --> 00:49:50,089 be a path of a single color. 986 00:49:50,089 --> 00:49:50,630 AUDIENCE: Oh. 987 00:49:50,630 --> 00:49:51,200 OK. 988 00:49:51,200 --> 00:49:51,550 PROFESSOR: Yes. 989 00:49:51,550 --> 00:49:54,120 So you can only follow the solid path or follow a dashed path 990 00:49:54,120 --> 00:49:55,520 or follow a dotted path. 991 00:49:55,520 --> 00:49:59,025 You can't mix edges of different colors. 992 00:49:59,025 --> 00:50:00,150 So that's the three graphs. 993 00:50:04,439 --> 00:50:05,230 So what's going on? 994 00:50:05,230 --> 00:50:07,700 We've got a white token here, black token here, 995 00:50:07,700 --> 00:50:08,480 white token here. 996 00:50:08,480 --> 00:50:11,010 This is a win position for white. 997 00:50:11,010 --> 00:50:13,292 These are win positions for black. 998 00:50:13,292 --> 00:50:15,000 So there's a lot of things going on here. 999 00:50:15,000 --> 00:50:20,070 But the main idea is that white can move the token to here. 1000 00:50:20,070 --> 00:50:22,250 That corresponds to EXPTIME being false. 1001 00:50:22,250 --> 00:50:23,500 Or it can move it to here. 1002 00:50:23,500 --> 00:50:26,700 That corresponds to EXPTIME being true. 1003 00:50:26,700 --> 00:50:29,580 And that's essentially all you can do in this picture. 1004 00:50:29,580 --> 00:50:30,080 Why? 1005 00:50:30,080 --> 00:50:35,109 Because if this guy moves to here, for example, 1006 00:50:35,109 --> 00:50:35,900 then black can win. 1007 00:50:35,900 --> 00:50:39,500 Black can go along this path and get to a win state. 1008 00:50:39,500 --> 00:50:43,640 And symmetrically, if white also goes off the track, 1009 00:50:43,640 --> 00:50:45,840 then black can go to the win state. 1010 00:50:45,840 --> 00:50:49,550 Also, we had to put this vertex here, put this token here, 1011 00:50:49,550 --> 00:50:50,300 to make that true. 1012 00:50:50,300 --> 00:50:52,220 You might worry, maybe black tries 1013 00:50:52,220 --> 00:50:55,840 to move out of that position to there or to there or to there. 1014 00:50:55,840 --> 00:50:58,190 But then white will win by going like that. 1015 00:50:58,190 --> 00:51:02,870 So under optimal play, if you don't make silly losing moves, 1016 00:51:02,870 --> 00:51:07,570 all you can do is move the white token between here and here. 1017 00:51:07,570 --> 00:51:10,050 And I didn't say it, but the path here 1018 00:51:10,050 --> 00:51:12,205 is supposed to be a non-zero length path. 1019 00:51:12,205 --> 00:51:14,460 So you have to move your token. 1020 00:51:14,460 --> 00:51:16,480 And therefore, that represents this constraint 1021 00:51:16,480 --> 00:51:18,380 that you must put the variable. 1022 00:51:18,380 --> 00:51:21,570 You must flip exactly one variable of your color. 1023 00:51:21,570 --> 00:51:23,450 So that's the variable gadget. 1024 00:51:23,450 --> 00:51:26,209 And for a while, that's just going to happen. 1025 00:51:26,209 --> 00:51:28,125 But now we have to implement the win condition 1026 00:51:28,125 --> 00:51:31,120 or the lose condition. 1027 00:51:31,120 --> 00:51:34,100 So that's this thing. 1028 00:51:34,100 --> 00:51:36,570 This is a clause. 1029 00:51:36,570 --> 00:51:38,380 This is a DNF clause. 1030 00:51:38,380 --> 00:51:42,510 Is it x3 is false and y5 is true. 1031 00:51:42,510 --> 00:51:45,200 In that case, we want to lose or win. 1032 00:51:45,200 --> 00:51:46,700 It doesn't particularly matter here. 1033 00:51:46,700 --> 00:51:49,910 We want to lose, I guess. 1034 00:51:49,910 --> 00:51:52,250 Obviously, black can't move first in this configuration, 1035 00:51:52,250 --> 00:51:54,250 because then white could just win. 1036 00:51:54,250 --> 00:51:56,810 So black can't move first, so what can happen in this gadget 1037 00:51:56,810 --> 00:51:59,480 is that white must move here because you're not 1038 00:51:59,480 --> 00:52:01,255 allowed to collide. 1039 00:52:01,255 --> 00:52:03,130 Once you move there, the threat is that white 1040 00:52:03,130 --> 00:52:04,470 will win in the next turn. 1041 00:52:04,470 --> 00:52:06,630 So black must move up. 1042 00:52:06,630 --> 00:52:09,420 And then, if this is empty, white can move here. 1043 00:52:12,030 --> 00:52:15,010 It could actually move to here, because that's a path. 1044 00:52:15,010 --> 00:52:16,680 And then, the threat is white will win. 1045 00:52:16,680 --> 00:52:19,770 So black must move up. 1046 00:52:19,770 --> 00:52:23,940 Also, there's a black win there, but we'll get to that. 1047 00:52:23,940 --> 00:52:25,120 Actually, I'll do it now. 1048 00:52:25,120 --> 00:52:28,460 So if this was blocked by x3, because x3 is currently 1049 00:52:28,460 --> 00:52:32,030 set to true, then you won't be able to move this way. 1050 00:52:32,030 --> 00:52:34,060 So you'll basically be stuck here. 1051 00:52:34,060 --> 00:52:36,670 And then, black can win like that. 1052 00:52:36,670 --> 00:52:38,470 So you don't want to activate this gadget 1053 00:52:38,470 --> 00:52:39,820 unless this is clear. 1054 00:52:39,820 --> 00:52:41,560 Similarly, we don't want to activate it 1055 00:52:41,560 --> 00:52:42,540 unless this is clear. 1056 00:52:42,540 --> 00:52:45,100 So if we're up to here, then white 1057 00:52:45,100 --> 00:52:46,860 can move up, threatening to win. 1058 00:52:46,860 --> 00:52:48,820 Therefore, black must move up. 1059 00:52:48,820 --> 00:52:52,600 And then, if this is clear, white can move up to there. 1060 00:52:52,600 --> 00:52:56,030 And then, black has to go there to prevent this win. 1061 00:52:56,030 --> 00:52:58,740 But white can win that way. 1062 00:52:58,740 --> 00:53:01,490 So white is going to win if this clause was 1063 00:53:01,490 --> 00:53:02,780 satisfied or unsatisfied. 1064 00:53:02,780 --> 00:53:05,530 And I'm a little confused about how many times we negated. 1065 00:53:05,530 --> 00:53:08,710 But I think you get the spirit. 1066 00:53:08,710 --> 00:53:16,440 And if this DNF clause is satisfied, then white wins. 1067 00:53:16,440 --> 00:53:18,690 And you can have a bunch of these clauses just sitting 1068 00:53:18,690 --> 00:53:19,780 around. 1069 00:53:19,780 --> 00:53:22,680 These are all vertices unique to the clause, 1070 00:53:22,680 --> 00:53:25,000 except for these guys, which are shared 1071 00:53:25,000 --> 00:53:27,294 with the variable gadgets here. 1072 00:53:27,294 --> 00:53:28,960 So those are the same as these vertices. 1073 00:53:28,960 --> 00:53:30,410 They're all glued together. 1074 00:53:30,410 --> 00:53:31,310 No planarity here. 1075 00:53:34,040 --> 00:53:34,650 Cool. 1076 00:53:34,650 --> 00:53:38,470 So that's EXPTIME completeness of this game called Block. 1077 00:53:43,846 --> 00:53:44,345 All right. 1078 00:53:47,280 --> 00:53:48,780 This is a little ambitious. 1079 00:53:48,780 --> 00:53:50,520 But the next one I'd like to prove 1080 00:53:50,520 --> 00:53:54,800 is a real-life classic game, namely checkers. 1081 00:53:54,800 --> 00:53:57,160 This is most of the proof in one slide. 1082 00:53:57,160 --> 00:53:58,580 It's a little bit complicated. 1083 00:53:58,580 --> 00:54:03,760 But let me give you the high level idea. 1084 00:54:03,760 --> 00:54:06,780 It's actually a really cool proof. 1085 00:54:06,780 --> 00:54:09,050 It's also from my birth years. 1086 00:54:09,050 --> 00:54:11,440 So it's cool. 1087 00:54:11,440 --> 00:54:14,230 So don't worry about this too much, 1088 00:54:14,230 --> 00:54:17,210 but our construction is going to be this little square 1089 00:54:17,210 --> 00:54:18,310 inside this little square. 1090 00:54:18,310 --> 00:54:19,810 And then there's this giant spiral 1091 00:54:19,810 --> 00:54:22,250 outside that will cause everything to self-destruct 1092 00:54:22,250 --> 00:54:23,800 when the game ends. 1093 00:54:23,800 --> 00:54:25,270 I'll talk about that later. 1094 00:54:25,270 --> 00:54:27,120 Let's focus in first on what's happening 1095 00:54:27,120 --> 00:54:29,270 within this little square. 1096 00:54:29,270 --> 00:54:31,940 But that will be the context, and we'll get to that again. 1097 00:54:31,940 --> 00:54:34,260 So inside the square is this thing. 1098 00:54:41,190 --> 00:54:44,200 So I mean, I think the perspective is from white. 1099 00:54:44,200 --> 00:54:46,010 So the goal is for white to win. 1100 00:54:46,010 --> 00:54:49,560 And in checkers, there's two types of pieces. 1101 00:54:49,560 --> 00:54:52,280 And the circles are going to be pieces 1102 00:54:52,280 --> 00:54:55,377 that are going this way for white and that way for black. 1103 00:54:55,377 --> 00:54:56,960 And the squares are going to be kings. 1104 00:54:56,960 --> 00:54:59,360 They can move up or down. 1105 00:54:59,360 --> 00:55:02,390 So white and has some variables that it can set 1106 00:55:02,390 --> 00:55:04,136 between true and false up here. 1107 00:55:04,136 --> 00:55:05,510 Black has some variables that can 1108 00:55:05,510 --> 00:55:06,718 be set between true or false. 1109 00:55:06,718 --> 00:55:10,640 I didn't mention, but we are going to be playing G3. 1110 00:55:10,640 --> 00:55:12,740 We are going to be simulating G3. 1111 00:55:12,740 --> 00:55:15,670 So a move is going to be forcing to flip something. 1112 00:55:15,670 --> 00:55:18,320 And we're going to lose if the formula ends up 1113 00:55:18,320 --> 00:55:19,880 being satisfied. 1114 00:55:19,880 --> 00:55:23,030 So then there's this computation done in the middle. 1115 00:55:23,030 --> 00:55:24,680 Basically, each of these boxes is going 1116 00:55:24,680 --> 00:55:26,360 to correspond to a DNF clause. 1117 00:55:26,360 --> 00:55:28,110 What makes it tricky is each clause 1118 00:55:28,110 --> 00:55:31,120 involves some black variables and some white variables. 1119 00:55:31,120 --> 00:55:33,120 And those are going to behave quite differently. 1120 00:55:33,120 --> 00:55:35,760 But this construction is going to make that happen. 1121 00:55:35,760 --> 00:55:39,620 And overall, let's see. 1122 00:55:39,620 --> 00:55:41,080 Where to go? 1123 00:55:41,080 --> 00:55:43,090 Let's start with the variable gadget. 1124 00:55:43,090 --> 00:55:45,804 So this is a white variable gadget. 1125 00:55:45,804 --> 00:55:47,220 Black variable gadget is symmetric 1126 00:55:47,220 --> 00:55:49,060 with all the colors flipped I believe. 1127 00:55:49,060 --> 00:55:49,730 Yeah. 1128 00:55:49,730 --> 00:55:51,110 That should be fine. 1129 00:55:51,110 --> 00:55:54,730 And the key actor is this king right here. 1130 00:55:54,730 --> 00:55:56,200 I've drawn it at the intersection. 1131 00:55:56,200 --> 00:55:59,510 But it could be on the t position or the f position. 1132 00:55:59,510 --> 00:56:01,645 t corresponds to variables being said true. 1133 00:56:01,645 --> 00:56:03,910 f corresponds to the variables being set false. 1134 00:56:03,910 --> 00:56:06,950 And so most of the game is going to be all the players moving 1135 00:56:06,950 --> 00:56:08,776 their kings back and forth between these t 1136 00:56:08,776 --> 00:56:10,040 and f positions. 1137 00:56:10,040 --> 00:56:11,415 Those will correspond to flipping 1138 00:56:11,415 --> 00:56:14,030 a variable of your color. 1139 00:56:14,030 --> 00:56:17,960 Now, constantly you're worrying about the threats. 1140 00:56:17,960 --> 00:56:22,960 These attack zones and defend paths are the threats. 1141 00:56:22,960 --> 00:56:28,150 And if ever a threat is satisfied, 1142 00:56:28,150 --> 00:56:29,230 somebody's going to win. 1143 00:56:29,230 --> 00:56:31,040 And the game will end. 1144 00:56:31,040 --> 00:56:35,470 So when that happens, players in the variable position 1145 00:56:35,470 --> 00:56:39,070 can choose to activate a variable of their color. 1146 00:56:39,070 --> 00:56:41,980 And the way you would do that, a key rule 1147 00:56:41,980 --> 00:56:44,800 which you may have forgotten about checkers, 1148 00:56:44,800 --> 00:56:47,990 is that if you can capture you must capture. 1149 00:56:47,990 --> 00:56:50,140 So that's how we're going to force the opponent 1150 00:56:50,140 --> 00:56:52,130 to do lots of things we want them to do. 1151 00:56:52,130 --> 00:56:56,870 If we move this white token up and to the right, then suddenly 1152 00:56:56,870 --> 00:56:58,590 this black token can capture. 1153 00:56:58,590 --> 00:57:02,901 And it must capture along the unique path boom, boom, boom, 1154 00:57:02,901 --> 00:57:03,400 boom. 1155 00:57:03,400 --> 00:57:06,810 Assuming that we're in the true position, 1156 00:57:06,810 --> 00:57:10,810 he must jump there, jump there, jump there, and activate 1157 00:57:10,810 --> 00:57:12,519 some stuff down here. 1158 00:57:12,519 --> 00:57:14,310 Conversely, if we're in the false position, 1159 00:57:14,310 --> 00:57:16,780 we're going to move this B guy up and to the left. 1160 00:57:16,780 --> 00:57:19,740 And then, black token will have to go off into this position. 1161 00:57:22,550 --> 00:57:24,700 So far so good. 1162 00:57:24,700 --> 00:57:29,720 Now, so this variable may occur in several different clauses. 1163 00:57:29,720 --> 00:57:34,270 There's one clause that matters, because this is a DNF thing. 1164 00:57:34,270 --> 00:57:37,530 We're just trying to prove that one clause has been satisfied. 1165 00:57:37,530 --> 00:57:41,190 So white's going to want to send things that satisfy it. 1166 00:57:41,190 --> 00:57:45,080 Black is going to want to send its variables that 1167 00:57:45,080 --> 00:57:46,880 cause it to be not satisfied. 1168 00:57:46,880 --> 00:57:50,690 So there's going to be some white variables 1169 00:57:50,690 --> 00:57:53,190 and some black variables involved in this one clause. 1170 00:57:53,190 --> 00:57:56,900 But we need the ability to send the copy of this variable 1171 00:57:56,900 --> 00:57:58,980 to the clause that matters. 1172 00:57:58,980 --> 00:58:02,290 So the threatening player, white, 1173 00:58:02,290 --> 00:58:05,110 is going to be sending their thing to a particular cause. 1174 00:58:05,110 --> 00:58:09,850 They do that using this fork gadget. 1175 00:58:09,850 --> 00:58:11,430 So if you're coming from up here, 1176 00:58:11,430 --> 00:58:15,660 you jump here, and jump here. 1177 00:58:15,660 --> 00:58:17,050 Black jumps here. 1178 00:58:17,050 --> 00:58:19,150 And that's the end of black's turn. 1179 00:58:19,150 --> 00:58:22,280 Now, white is going to move this position to either H or I, 1180 00:58:22,280 --> 00:58:25,940 forcing black to go follow the next path. 1181 00:58:25,940 --> 00:58:28,019 So white's always in control for this path. 1182 00:58:28,019 --> 00:58:29,810 There's going to be a symmetric thing where 1183 00:58:29,810 --> 00:58:30,643 black is in control. 1184 00:58:30,643 --> 00:58:35,735 And black and send their token to where they want it to go, 1185 00:58:35,735 --> 00:58:36,610 one of these squares. 1186 00:58:40,180 --> 00:58:42,160 Cool. 1187 00:58:42,160 --> 00:58:45,810 Now, maybe at this point I should 1188 00:58:45,810 --> 00:58:51,780 mention that there are these letters here, MWD and MBD. 1189 00:58:51,780 --> 00:58:54,840 And this is relevant to the overall architecture 1190 00:58:54,840 --> 00:58:56,440 of the game. 1191 00:58:56,440 --> 00:59:00,760 What we're essentially trying to do is get free moves. 1192 00:59:00,760 --> 00:59:03,290 Free moves will win the game, because 1193 00:59:03,290 --> 00:59:05,150 of the spiral on the outside. 1194 00:59:05,150 --> 00:59:06,820 But before I get to the spiral, here's 1195 00:59:06,820 --> 00:59:08,028 a way to generate free moves. 1196 00:59:08,028 --> 00:59:12,170 Suppose right here I'm going to throw in a whole bunch-- 1197 00:59:12,170 --> 00:59:15,270 think of infinity-- copies of this gadget, so-called white 1198 00:59:15,270 --> 00:59:16,150 delay. 1199 00:59:16,150 --> 00:59:19,422 So black is forced to jump here and just keeps going through. 1200 00:59:19,422 --> 00:59:20,630 There's no options for black. 1201 00:59:20,630 --> 00:59:22,320 It just has to keep going. 1202 00:59:22,320 --> 00:59:28,670 But after that move, white has a penalty, 1203 00:59:28,670 --> 00:59:31,940 because white is forced to capture that token. 1204 00:59:31,940 --> 00:59:34,689 So white essentially lost a move sometime in the future. 1205 00:59:34,689 --> 00:59:36,730 As long as there are still capture moves it's OK. 1206 00:59:36,730 --> 00:59:40,681 But that's kind of bad for white. 1207 00:59:40,681 --> 00:59:42,430 And there's a symmetric version for black. 1208 00:59:42,430 --> 00:59:45,490 I didn't bring the picture, but it's pretty similar. 1209 00:59:45,490 --> 00:59:50,310 And black will be forced afterwards to jump. 1210 00:59:50,310 --> 00:59:52,980 So the point is if we essentially stopped 1211 00:59:52,980 --> 00:59:56,740 here, black would win actually. 1212 00:59:56,740 --> 00:59:58,440 Because there's so many moves here 1213 00:59:58,440 --> 01:00:01,000 that white is forced to waste, they'll 1214 01:00:01,000 --> 01:00:03,750 end up being able to win the whole game in a way 1215 01:00:03,750 --> 01:00:05,630 that I will get to. 1216 01:00:05,630 --> 01:00:08,520 For that reason, you better not trigger this thing 1217 01:00:08,520 --> 01:00:10,640 unless the king is in the right spot. 1218 01:00:10,640 --> 01:00:14,650 Otherwise, black will stop there and then black will win. 1219 01:00:14,650 --> 01:00:19,190 But there's a matching MBD down here for black. 1220 01:00:19,190 --> 01:00:23,176 And so we're forced to use both of them. 1221 01:00:23,176 --> 01:00:24,550 Then, they cancel each other out. 1222 01:00:24,550 --> 01:00:26,810 Because if black has n free moves 1223 01:00:26,810 --> 01:00:28,805 and white as n free moves, they'll 1224 01:00:28,805 --> 01:00:32,150 just make all those captures and then get back to the game. 1225 01:00:32,150 --> 01:00:35,500 So, in general, the gadgets use these things 1226 01:00:35,500 --> 01:00:39,960 to force you to not stop in the middle of the construction. 1227 01:00:39,960 --> 01:00:44,130 The heart of the matter is this gadget, the clause. 1228 01:00:44,130 --> 01:00:46,390 So there's numbers here. 1229 01:00:46,390 --> 01:00:49,010 If you look closely, these are 1's and then these are 1230 01:00:49,010 --> 01:00:53,150 2's and then these are 3's. 1231 01:00:53,150 --> 01:00:55,020 So the idea is let's suppose that there 1232 01:00:55,020 --> 01:01:00,900 are three white variables and two black variables 1233 01:01:00,900 --> 01:01:02,920 in this clause that you can generalize. 1234 01:01:02,920 --> 01:01:04,870 That's what the figure shows. 1235 01:01:04,870 --> 01:01:07,310 So the idea is that first white's trying to win. 1236 01:01:07,310 --> 01:01:10,200 So it's going to send its variables 1237 01:01:10,200 --> 01:01:14,381 of the appropriate truth assignment into the one clause. 1238 01:01:14,381 --> 01:01:15,880 It's going to activate whichever one 1239 01:01:15,880 --> 01:01:18,950 happens to be glued to the one clause first or the one 1240 01:01:18,950 --> 01:01:19,810 position. 1241 01:01:19,810 --> 01:01:22,660 And what will happen is the white token will go here. 1242 01:01:22,660 --> 01:01:25,110 I forgot to mention we've switched colors 1243 01:01:25,110 --> 01:01:26,199 from white to black. 1244 01:01:26,199 --> 01:01:27,740 That's because there's a color change 1245 01:01:27,740 --> 01:01:30,198 gadget, where you can convert white wires into black wires. 1246 01:01:30,198 --> 01:01:31,610 So don't worry about it. 1247 01:01:31,610 --> 01:01:34,110 So now we have a white token that captures all these pieces. 1248 01:01:34,110 --> 01:01:35,735 Notice it captures this one, which will 1249 01:01:35,735 --> 01:01:37,900 enable the two path next time. 1250 01:01:37,900 --> 01:01:39,340 So it is first you send in this. 1251 01:01:39,340 --> 01:01:41,900 It just stops, nothing to do there. 1252 01:01:41,900 --> 01:01:43,410 Then, we send in the 2's. 1253 01:01:43,410 --> 01:01:44,990 And if this has been done already, 1254 01:01:44,990 --> 01:01:47,700 so this is basically a conjunction of 1 and 2. 1255 01:01:47,700 --> 01:01:51,500 2 will be able to get here if and only if both 1 and 2 1256 01:01:51,500 --> 01:01:52,600 are set. 1257 01:01:52,600 --> 01:01:55,110 Also capture this position and this position, 1258 01:01:55,110 --> 01:01:59,230 enabling both of these 3's. 1259 01:01:59,230 --> 01:02:02,010 Basically, we have two copies of the 3 wire 1260 01:02:02,010 --> 01:02:05,530 just because the opponent could mess things up 1261 01:02:05,530 --> 01:02:07,830 for us by moving one of these. 1262 01:02:07,830 --> 01:02:09,440 Black can move this over here. 1263 01:02:09,440 --> 01:02:11,330 And then, we're kind of annoyed. 1264 01:02:11,330 --> 01:02:13,010 But we have two copies for redundancy. 1265 01:02:13,010 --> 01:02:17,450 So even if black messes up one of them, we'll be OK. 1266 01:02:17,450 --> 01:02:20,880 The worry is after you activate this thing black has a turn. 1267 01:02:20,880 --> 01:02:23,580 And so maybe instead of doing something else, black 1268 01:02:23,580 --> 01:02:25,390 could just move this. 1269 01:02:25,390 --> 01:02:27,810 But we have enough redundancy. 1270 01:02:27,810 --> 01:02:29,000 That won't hurt us. 1271 01:02:29,000 --> 01:02:33,090 Finally, if we can send 1, 2, and 3 together, 1272 01:02:33,090 --> 01:02:37,180 then black will waste n moves. 1273 01:02:37,180 --> 01:02:38,690 And so white is in the lead. 1274 01:02:38,690 --> 01:02:40,440 And then, white will win the game in a way 1275 01:02:40,440 --> 01:02:42,280 that I haven't shown you. 1276 01:02:42,280 --> 01:02:47,310 Conversely, black has a blocking strategy, a defense strategy, 1277 01:02:47,310 --> 01:02:55,910 which is after 2 has activated, if black 1278 01:02:55,910 --> 01:02:58,710 has either of these variable set to the right value, 1279 01:02:58,710 --> 01:03:01,300 they can trigger them with a corresponding black variable 1280 01:03:01,300 --> 01:03:02,020 gadget. 1281 01:03:02,020 --> 01:03:05,620 And then, the white token will come up here 1282 01:03:05,620 --> 01:03:08,900 and hit this gadget MWD, which is a whole bunch of these. 1283 01:03:08,900 --> 01:03:10,299 And then, white is behind. 1284 01:03:10,299 --> 01:03:11,840 And then, black will immediately win. 1285 01:03:11,840 --> 01:03:17,292 Before white gets to do this, black will win. 1286 01:03:17,292 --> 01:03:22,460 So overall structure make sense? 1287 01:03:22,460 --> 01:03:27,190 Basically, this gadget is active as soon 1288 01:03:27,190 --> 01:03:30,500 as the white player sends down the one thing 1289 01:03:30,500 --> 01:03:32,280 and then sends down the two thing. 1290 01:03:32,280 --> 01:03:34,510 And then, if black happens to have a response which 1291 01:03:34,510 --> 01:03:36,524 blocks it, what that corresponds to 1292 01:03:36,524 --> 01:03:37,940 is that one of the black variables 1293 01:03:37,940 --> 01:03:40,270 is in the wrong setting for this clause. 1294 01:03:40,270 --> 01:03:42,790 Then, black will have a defense strategy and win the game. 1295 01:03:42,790 --> 01:03:44,490 And so you only want to activate a thing 1296 01:03:44,490 --> 01:03:46,698 if all the black variables are in the correct setting 1297 01:03:46,698 --> 01:03:48,360 currently and the white variables 1298 01:03:48,360 --> 01:03:51,000 in the correct setting, so you could do the 1, 2, 3, and then 1299 01:03:51,000 --> 01:03:52,530 win. 1300 01:03:52,530 --> 01:03:55,360 And symmetrically, there are things like this for black. 1301 01:03:55,360 --> 01:03:57,380 But that is the game. 1302 01:03:57,380 --> 01:03:58,970 Now, let me tell you how once you 1303 01:03:58,970 --> 01:04:01,950 have n free moves, how you could win the game. 1304 01:04:01,950 --> 01:04:04,470 This is the outer spiral. 1305 01:04:04,470 --> 01:04:05,970 So everything we're talking about 1306 01:04:05,970 --> 01:04:09,530 was in here very far away from the spiral, like n squared away 1307 01:04:09,530 --> 01:04:10,790 or something. 1308 01:04:10,790 --> 01:04:13,720 And the spiral in more detail looks like this. 1309 01:04:13,720 --> 01:04:18,840 We have a whole bunch of kings, and white king, black king. 1310 01:04:18,840 --> 01:04:21,005 And if you have a bunch of free moves-- 1311 01:04:21,005 --> 01:04:22,880 you don't actually need very many free moves. 1312 01:04:22,880 --> 01:04:24,115 It's like five or something. 1313 01:04:24,115 --> 01:04:25,740 But they didn't feel like computing it, 1314 01:04:25,740 --> 01:04:29,610 so they just called it x and then figured out for x. 1315 01:04:29,610 --> 01:04:32,090 You can make a few moves and get from this position 1316 01:04:32,090 --> 01:04:35,110 to this position. 1317 01:04:35,110 --> 01:04:36,780 So far so good. 1318 01:04:36,780 --> 01:04:38,150 Still have a free move. 1319 01:04:38,150 --> 01:04:44,770 Iam going to move this A king to the B position. 1320 01:04:44,770 --> 01:04:46,597 At that point, black has a forced jump. 1321 01:04:46,597 --> 01:04:48,180 Now, they may have other forced jumps. 1322 01:04:48,180 --> 01:04:49,590 We'll just just sit there and wait for them 1323 01:04:49,590 --> 01:04:51,140 to do all their forced jumps. 1324 01:04:51,140 --> 01:04:56,200 And then, black will have to make this jump, capturing 1325 01:04:56,200 --> 01:04:57,627 one of these kings. 1326 01:04:57,627 --> 01:04:59,210 So this guy's basically to prevent you 1327 01:04:59,210 --> 01:05:00,500 from jumping that way. 1328 01:05:00,500 --> 01:05:03,450 So this guy moves down, which forces this guy to jump here. 1329 01:05:03,450 --> 01:05:05,860 And then, from here, you can jump here, here, here, 1330 01:05:05,860 --> 01:05:07,640 here, here, so satisfying. 1331 01:05:07,640 --> 01:05:10,180 Take all the black kings on the outside. 1332 01:05:10,180 --> 01:05:12,420 Now, you own the entire spiral, which 1333 01:05:12,420 --> 01:05:14,440 is a huge number of things. 1334 01:05:14,440 --> 01:05:16,300 The number of rings of the spiral 1335 01:05:16,300 --> 01:05:20,420 is greater than the number of pieces in there. 1336 01:05:20,420 --> 01:05:24,070 And also, these things are very far away. 1337 01:05:24,070 --> 01:05:26,820 So you have plenty of moves. 1338 01:05:26,820 --> 01:05:28,260 So whatever's happening in here-- 1339 01:05:28,260 --> 01:05:30,600 chaos could be happening-- you can 1340 01:05:30,600 --> 01:05:35,050 rearrange the white spiral into a bunch of white rectangles. 1341 01:05:35,050 --> 01:05:38,870 And it's already been shown conveniently that if you have 1342 01:05:38,870 --> 01:05:43,205 n white rectangles in this sense, less 1343 01:05:43,205 --> 01:05:46,620 or equal to n pieces, then you win. 1344 01:05:46,620 --> 01:05:48,220 So it doesn't matter what's in here. 1345 01:05:48,220 --> 01:05:50,240 You can come in and use each ring 1346 01:05:50,240 --> 01:05:52,580 to destroy one black token at a time. 1347 01:05:52,580 --> 01:05:54,580 And game over. 1348 01:05:54,580 --> 01:05:55,386 [LAUGHTER] 1349 01:05:55,386 --> 01:05:58,770 PROFESSOR: Isn't that fun? 1350 01:05:58,770 --> 01:06:01,000 So that's checkers EXPTIME complete. 1351 01:06:01,000 --> 01:06:01,980 A very cool proof. 1352 01:06:01,980 --> 01:06:02,880 There are details I didn't show. 1353 01:06:02,880 --> 01:06:04,671 There's a parity shift, a few other things. 1354 01:06:04,671 --> 01:06:07,460 But that's pretty much everything. 1355 01:06:07,460 --> 01:06:09,060 And that's the power of G3. 1356 01:06:13,410 --> 01:06:16,820 I'll just show pictures for chess. 1357 01:06:16,820 --> 01:06:18,530 It's even more complicated. 1358 01:06:18,530 --> 01:06:22,310 But chess is also EXPTIME complete. 1359 01:06:22,310 --> 01:06:24,210 Now, I mean, both checkers and chess 1360 01:06:24,210 --> 01:06:26,870 in the real game sometimes in some versions of the rules 1361 01:06:26,870 --> 01:06:29,530 it says you can make at most 200 moves or 500 1362 01:06:29,530 --> 01:06:30,420 moves or something. 1363 01:06:30,420 --> 01:06:32,170 Those games are of course PSPACE complete, 1364 01:06:32,170 --> 01:06:35,650 if you add an artificial move bound of n or something. 1365 01:06:35,650 --> 01:06:37,400 But if you don't, the natural game I think 1366 01:06:37,400 --> 01:06:39,233 is when you don't bound the number of moves, 1367 01:06:39,233 --> 01:06:43,100 then they become EXPTIME complete. 1368 01:06:43,100 --> 01:06:44,910 This is also from G3. 1369 01:06:44,910 --> 01:06:46,680 That's I'll say about chess. 1370 01:06:46,680 --> 01:06:49,850 AUDIENCE: Do you know in chess what pieces are used? 1371 01:06:49,850 --> 01:06:53,160 PROFESSOR: I think it's just pawns and bishops, which 1372 01:06:53,160 --> 01:06:54,110 is pretty cool. 1373 01:06:54,110 --> 01:06:55,027 One of these figures-- 1374 01:06:55,027 --> 01:06:55,568 AUDIENCE: Oh. 1375 01:06:55,568 --> 01:06:56,350 It's on the left. 1376 01:06:56,350 --> 01:06:56,540 PROFESSOR: Yeah. 1377 01:06:56,540 --> 01:06:58,665 White pawn, black pawn, white bishop, black bishop. 1378 01:06:58,665 --> 01:07:00,960 I'm pretty sure that's all of them. 1379 01:07:00,960 --> 01:07:03,270 But it's a little hard to tell him from this figure. 1380 01:07:03,270 --> 01:07:05,561 I think you need a better scan to know which are which. 1381 01:07:08,500 --> 01:07:09,000 And 1382 01:07:09,000 --> 01:07:12,770 This paper's a little hard to find, but I got a scanned copy. 1383 01:07:12,770 --> 01:07:15,990 Go is EXPTIME hard. 1384 01:07:15,990 --> 01:07:19,431 So how many people know Go? 1385 01:07:19,431 --> 01:07:19,930 Good. 1386 01:07:19,930 --> 01:07:22,220 Almost everyone. 1387 01:07:22,220 --> 01:07:25,017 So Go is a little funny, because you might 1388 01:07:25,017 --> 01:07:26,100 think it's a bounded game. 1389 01:07:26,100 --> 01:07:30,110 Every time you place a token, you consume area. 1390 01:07:30,110 --> 01:07:37,250 But captures remove area, and furthermore kos are the action. 1391 01:07:37,250 --> 01:07:41,500 So kos are these threats that when I capture and someone else 1392 01:07:41,500 --> 01:07:43,457 can capture me back. 1393 01:07:43,457 --> 01:07:45,915 And you can flip back and forth from those types of states. 1394 01:07:45,915 --> 01:07:49,260 There are actually different rules for Go. 1395 01:07:49,260 --> 01:07:53,120 The Japanese rule set says that you are not 1396 01:07:53,120 --> 01:07:56,580 allowed to repeat the position you were just at. 1397 01:07:56,580 --> 01:07:59,040 And this is the subtlety of a ko. 1398 01:08:06,770 --> 01:08:08,830 So this is the canonical simplest ko. 1399 01:08:08,830 --> 01:08:13,800 So if you move white here, you capture this stone. 1400 01:08:13,800 --> 01:08:15,300 And under Japanese rules, you're not 1401 01:08:15,300 --> 01:08:17,020 allowed to repeat the previous position, which 1402 01:08:17,020 --> 01:08:19,061 means you're not allowed to immediately play back 1403 01:08:19,061 --> 01:08:20,244 here and capture this stone. 1404 01:08:20,244 --> 01:08:20,910 You can see why. 1405 01:08:20,910 --> 01:08:23,451 It'd be kind of a boring game if you just went back and forth 1406 01:08:23,451 --> 01:08:24,510 capturing the same guy. 1407 01:08:24,510 --> 01:08:26,710 But as long as you play anywhere else, 1408 01:08:26,710 --> 01:08:28,410 then you can come back and capture. 1409 01:08:28,410 --> 01:08:29,569 That's the ko threat. 1410 01:08:33,069 --> 01:08:36,990 That game is in EXPTIME. 1411 01:08:36,990 --> 01:08:39,890 And Go is EXPTIME complete under Japanese rules. 1412 01:08:43,899 --> 01:08:45,960 In some sense, because the number of states 1413 01:08:45,960 --> 01:08:47,422 is still only exponential, you just 1414 01:08:47,422 --> 01:08:49,380 need to remember the current state and the very 1415 01:08:49,380 --> 01:08:50,140 previous state. 1416 01:08:50,140 --> 01:08:52,056 Because the ko rule is that you're not allowed 1417 01:08:52,056 --> 01:08:54,590 to repeat the previous state. 1418 01:08:54,590 --> 01:08:57,367 In the USA and China, there is something called a super ko 1419 01:08:57,367 --> 01:08:58,950 rule, which is that you're not allowed 1420 01:08:58,950 --> 01:09:02,760 to repeat any previous state of the game ever seen. 1421 01:09:02,760 --> 01:09:06,370 That means that you are not necessarily still in EXPTIME, 1422 01:09:06,370 --> 01:09:09,060 because you might need to remember all past states, which 1423 01:09:09,060 --> 01:09:10,880 could be exponentially long. 1424 01:09:10,880 --> 01:09:15,279 So it's like double the exponential size. 1425 01:09:15,279 --> 01:09:19,479 In general, you are in EXPSPACE. 1426 01:09:19,479 --> 01:09:24,460 And it's an open problem whether Go with super ko 1427 01:09:24,460 --> 01:09:26,250 is EXPSPACE complete. 1428 01:09:26,250 --> 01:09:29,250 Currently, best known lower bound is EXPTIME hardness. 1429 01:09:29,250 --> 01:09:31,870 I won't cover the gadgets here. 1430 01:09:31,870 --> 01:09:34,199 I mean, it's even more subtle, because you can't really 1431 01:09:34,199 --> 01:09:34,740 be capturing. 1432 01:09:34,740 --> 01:09:36,979 It's all about ko threats. 1433 01:09:36,979 --> 01:09:38,851 Or you can't really be adding pieces. 1434 01:09:38,851 --> 01:09:40,350 You have to constantly be capturing, 1435 01:09:40,350 --> 01:09:41,830 because you must conserve volume. 1436 01:09:41,830 --> 01:09:44,202 You're running for exponential time. 1437 01:09:44,202 --> 01:09:46,160 It would be quite an interesting game to watch. 1438 01:09:46,160 --> 01:09:49,170 But it's a reduction I think from G3 again. 1439 01:09:53,939 --> 01:09:55,340 That's Go. 1440 01:09:55,340 --> 01:09:58,480 Let me tell you a little bit about constraint logic. 1441 01:09:58,480 --> 01:10:00,051 So we got a question. 1442 01:10:00,051 --> 01:10:00,717 AUDIENCE: Sorry. 1443 01:10:00,717 --> 01:10:02,300 I was just wondering if you're allowed 1444 01:10:02,300 --> 01:10:05,690 to use superpolynomial reductions for EXPTIME purpose. 1445 01:10:05,690 --> 01:10:07,865 PROFESSOR: So in fact, all the proofs 1446 01:10:07,865 --> 01:10:11,280 I've seen in this world use LOGSPACE, which is even 1447 01:10:11,280 --> 01:10:13,402 stronger than polynomial time. 1448 01:10:13,402 --> 01:10:14,110 I don't know why. 1449 01:10:14,110 --> 01:10:15,401 Probably just because they can. 1450 01:10:15,401 --> 01:10:16,570 And it's slightly better. 1451 01:10:16,570 --> 01:10:19,410 It makes sense to use LOGSPACE reductions for PSPACE hardness. 1452 01:10:19,410 --> 01:10:21,810 But they ended up still doing LOGSPACE reductions 1453 01:10:21,810 --> 01:10:23,170 for EXPTIME hardness. 1454 01:10:23,170 --> 01:10:26,220 For my purposes, I think polynomial time would be fine. 1455 01:10:26,220 --> 01:10:28,240 You could imagine using a little bit more time. 1456 01:10:28,240 --> 01:10:29,620 Definitely you don't want to use exponential time, 1457 01:10:29,620 --> 01:10:31,494 because that wouldn't preserve a lower bound. 1458 01:10:31,494 --> 01:10:33,800 But you could use quasi-polynomial or polynomial 1459 01:10:33,800 --> 01:10:36,450 spaces or some crazy thing. 1460 01:10:36,450 --> 01:10:39,640 But all the claims I've made don't even 1461 01:10:39,640 --> 01:10:41,645 need polynomial time reductions. 1462 01:10:41,645 --> 01:10:45,190 It's pretty strong. 1463 01:10:45,190 --> 01:10:46,072 Yeah. 1464 01:10:46,072 --> 01:10:51,080 AUDIENCE: That rule confuses me a lot. 1465 01:10:51,080 --> 01:10:54,247 So that means I can't ever go in the erased area? 1466 01:10:54,247 --> 01:10:55,080 PROFESSOR: Well, no. 1467 01:10:55,080 --> 01:10:59,940 You could play here as long as something else changed. 1468 01:10:59,940 --> 01:11:03,090 You cannot repeat the entire board configuration. 1469 01:11:03,090 --> 01:11:06,790 So the local configuration can repeat. 1470 01:11:06,790 --> 01:11:08,660 So as long as something else has changed, 1471 01:11:08,660 --> 01:11:09,927 then you can play here. 1472 01:11:09,927 --> 01:11:11,870 AUDIENCE: But then it's the same rule, right? 1473 01:11:11,870 --> 01:11:13,120 PROFESSOR: It's the same rule. 1474 01:11:13,120 --> 01:11:16,504 But if you have five of these, so in the ko rule, 1475 01:11:16,504 --> 01:11:18,170 as long as you're basically playing them 1476 01:11:18,170 --> 01:11:20,450 in a different order, you can keep playing around 1477 01:11:20,450 --> 01:11:22,470 and ko, ko, ko. 1478 01:11:22,470 --> 01:11:24,630 But in the super-ko rule, at some point, 1479 01:11:24,630 --> 01:11:26,300 you're going to run out of ko patterns. 1480 01:11:26,300 --> 01:11:29,077 And at some point, you won't be able to repeat something. 1481 01:11:29,077 --> 01:11:30,660 And that changes how the game behaves. 1482 01:11:30,660 --> 01:11:33,120 Of course, we don't have a hardness proof for that case, 1483 01:11:33,120 --> 01:11:36,150 or a stronger hardness proof. 1484 01:11:36,150 --> 01:11:37,650 It's subtle. 1485 01:11:37,650 --> 01:11:40,060 Two-player constraint logic unbounded 1486 01:11:40,060 --> 01:11:41,880 is also EXPTIME complete. 1487 01:11:41,880 --> 01:11:45,040 This is a reduction from G6. 1488 01:11:45,040 --> 01:11:47,930 You can set one of your variables however you want. 1489 01:11:47,930 --> 01:11:52,180 And player 1 is going to win if we satisfy a CNF formula. 1490 01:11:52,180 --> 01:11:56,130 So the formula is out here or here or here. 1491 01:11:56,130 --> 01:11:57,699 This is a white variable. 1492 01:11:57,699 --> 01:11:58,740 This is a black variable. 1493 01:11:58,740 --> 01:12:00,698 The only difference is this edge is white here. 1494 01:12:00,698 --> 01:12:02,666 This edge is black there. 1495 01:12:02,666 --> 01:12:04,540 So the idea is this can be set left to right. 1496 01:12:04,540 --> 01:12:06,600 If it's left, that corresponds to false. 1497 01:12:06,600 --> 01:12:09,830 If it's to the right, it corresponds to true. 1498 01:12:09,830 --> 01:12:11,840 And so most of the time, players are just 1499 01:12:11,840 --> 01:12:14,430 going to be flipping their edges back and forth. 1500 01:12:14,430 --> 01:12:15,800 It'd be a pretty boring game. 1501 01:12:15,800 --> 01:12:18,740 But at some point, there's this constant threat network, 1502 01:12:18,740 --> 01:12:23,490 which is if the formula is satisfied, 1503 01:12:23,490 --> 01:12:27,840 then the white player is going to be able to win. 1504 01:12:27,840 --> 01:12:30,050 How do they win? 1505 01:12:30,050 --> 01:12:32,860 First thing they do is lock a variable. 1506 01:12:32,860 --> 01:12:36,244 So this is pointing to the true state-- sorry, also left 1507 01:12:36,244 --> 01:12:38,160 and right pictures are symmetric, so symmetric 1508 01:12:38,160 --> 01:12:39,826 that we didn't even draw it in the book. 1509 01:12:39,826 --> 01:12:43,300 So I reflected the image and all the letters are backwards. 1510 01:12:43,300 --> 01:12:46,040 So let's say the variable's pointing to the right. 1511 01:12:46,040 --> 01:12:49,060 So white is going to lock the variable, 1512 01:12:49,060 --> 01:12:52,650 prevent it from flipping anymore, by flipping this edge. 1513 01:12:52,650 --> 01:12:55,540 Now, we enter attack face. 1514 01:12:55,540 --> 01:12:56,850 And lots of things happen. 1515 01:12:56,850 --> 01:12:58,490 So this is a SPLIT gadget. 1516 01:12:58,490 --> 01:13:00,200 So immediately, for example, black 1517 01:13:00,200 --> 01:13:02,380 could flip here and start winning the game. 1518 01:13:02,380 --> 01:13:04,170 There's a long path here. 1519 01:13:04,170 --> 01:13:06,100 It's slow, so it's a long path. 1520 01:13:06,100 --> 01:13:08,530 But eventually black will win the game. 1521 01:13:08,530 --> 01:13:10,920 The timer starts ticking now potentially, 1522 01:13:10,920 --> 01:13:13,230 if black chooses to follow that path. 1523 01:13:13,230 --> 01:13:16,270 Simultaneously, white is going to flip this guy, 1524 01:13:16,270 --> 01:13:18,020 then flip this guy, and then flip this guy 1525 01:13:18,020 --> 01:13:21,450 and activate the formula. 1526 01:13:21,450 --> 01:13:25,080 Now, it's a little awkward, because we 1527 01:13:25,080 --> 01:13:30,130 needed 1, 2, 3, 4 moves to trigger the formula. 1528 01:13:30,130 --> 01:13:33,245 We basically want to consume four moves of black 1529 01:13:33,245 --> 01:13:35,140 so that things remain balanced. 1530 01:13:35,140 --> 01:13:39,680 And that's this 1, 2, 3, 4 flips. 1531 01:13:39,680 --> 01:13:43,620 If black does not flip all these edges, 1532 01:13:43,620 --> 01:13:46,810 then white can flip this and then flip this and then 1533 01:13:46,810 --> 01:13:49,170 flip this and then instantly win. 1534 01:13:49,170 --> 01:13:51,230 That's the fast win track. 1535 01:13:51,230 --> 01:13:54,254 So to prevent that, black must flip this edge. 1536 01:13:54,254 --> 01:13:56,420 It can't flip this edge until it's flipped this one. 1537 01:13:56,420 --> 01:13:58,545 It can't flip this one until it's flipped this one. 1538 01:13:58,545 --> 01:14:00,830 So as soon as you lock a variable, 1539 01:14:00,830 --> 01:14:04,660 black must respond with A. At that point, 1540 01:14:04,660 --> 01:14:06,710 white can afford to flip here. 1541 01:14:06,710 --> 01:14:09,570 And black must respond with B. And then flip here, 1542 01:14:09,570 --> 01:14:12,090 black must respond with C. And then flip here, 1543 01:14:12,090 --> 01:14:16,670 black must respond-- I guess, flip here first and then 1544 01:14:16,670 --> 01:14:19,410 flip B. And then you can activate the formula. 1545 01:14:19,410 --> 01:14:22,450 So then white and black are balanced again. 1546 01:14:22,450 --> 01:14:26,190 What's cool about that is it means white cannot only lock 1547 01:14:26,190 --> 01:14:28,930 this variable but lock all of the variables. 1548 01:14:28,930 --> 01:14:30,810 Every variable behaves the same way. 1549 01:14:30,810 --> 01:14:33,840 And the goal for white is to get all the variables locked 1550 01:14:33,840 --> 01:14:36,400 so it can start triggering the formula. 1551 01:14:36,400 --> 01:14:39,840 So every time you lock a variable, 1552 01:14:39,840 --> 01:14:43,090 black is forced to respond in a particular way. 1553 01:14:43,090 --> 01:14:47,520 And so after that, white can lock the next variable, both 1554 01:14:47,520 --> 01:14:50,240 the white ones and the black ones, locks all of them. 1555 01:14:50,240 --> 01:14:52,670 And now, the formula's basically primed, ready to go. 1556 01:14:52,670 --> 01:14:54,152 The variables can't change anymore. 1557 01:14:54,152 --> 01:14:55,610 And now, we're in full attack mode. 1558 01:14:59,491 --> 01:14:59,990 Cool. 1559 01:14:59,990 --> 01:15:03,220 And then, the formula happens. 1560 01:15:03,220 --> 01:15:06,610 Meanwhile, this slow win is probably happening, fusing. 1561 01:15:06,610 --> 01:15:11,630 And we set up the formula so that if it's satisfied, 1562 01:15:11,630 --> 01:15:16,110 you end up flipping the win edge in a certain amount of time. 1563 01:15:16,110 --> 01:15:17,520 And this is slightly longer. 1564 01:15:17,520 --> 01:15:19,530 So if you don't end up satisfying the formula, 1565 01:15:19,530 --> 01:15:20,100 black wins. 1566 01:15:20,100 --> 01:15:21,600 And then, it was not a valid threat. 1567 01:15:21,600 --> 01:15:26,200 You shouldn't have triggered this attack mode. 1568 01:15:26,200 --> 01:15:29,280 There's another threat here, the slower win. 1569 01:15:33,170 --> 01:15:35,870 So I assume that people were flipping these edges. 1570 01:15:35,870 --> 01:15:38,770 But it could be actually black flips A early. 1571 01:15:38,770 --> 01:15:40,840 If it does that, then white will eventually 1572 01:15:40,840 --> 01:15:41,980 win through that path. 1573 01:15:41,980 --> 01:15:45,100 So this win path is just to prevent A from flipping 1574 01:15:45,100 --> 01:15:47,290 before it's locked. 1575 01:15:47,290 --> 01:15:49,030 And the timing is to setup right. 1576 01:15:49,030 --> 01:15:50,620 Obviously, lots of timing issues here, 1577 01:15:50,620 --> 01:15:54,090 so we have to build an equalizer gadget that ends up 1578 01:15:54,090 --> 01:15:56,765 slowing down the traversal of an edge basically 1579 01:15:56,765 --> 01:15:57,700 in a particular way. 1580 01:15:57,700 --> 01:16:00,680 And these are all of the vertices need. 1581 01:16:00,680 --> 01:16:04,569 It's a fair number, including some white and black edges, 1582 01:16:04,569 --> 01:16:05,860 which is a little bit annoying. 1583 01:16:05,860 --> 01:16:07,970 It'd be nice to simplify instead of gadgets. 1584 01:16:07,970 --> 01:16:12,090 But that's the best we have so far. 1585 01:16:12,090 --> 01:16:17,400 And you can use the regular NCL crossover appropriately, 1586 01:16:17,400 --> 01:16:21,270 making everything else slower so that crossover doesn't 1587 01:16:21,270 --> 01:16:24,610 slow things down too much. 1588 01:16:24,610 --> 01:16:25,780 Cool. 1589 01:16:25,780 --> 01:16:27,880 A couple more minutes. 1590 01:16:27,880 --> 01:16:29,930 I want to mention a couple of games 1591 01:16:29,930 --> 01:16:33,460 that do not fit into the table. 1592 01:16:33,460 --> 01:16:35,480 In some sense, they are higher than the table. 1593 01:16:35,480 --> 01:16:37,970 So we have polynomial bounded number of moves. 1594 01:16:37,970 --> 01:16:42,760 And then, above that, we have exponential number of moves. 1595 01:16:42,760 --> 01:16:45,390 But if you take those exponential number of moves 1596 01:16:45,390 --> 01:16:54,420 and add an extra rule, so this is entirely motivated by Go 1597 01:16:54,420 --> 01:16:56,750 with super-ko rule. 1598 01:16:56,750 --> 01:17:00,190 And you take any of these games like G1 through G6. 1599 01:17:03,550 --> 01:17:05,840 So you have the same win rule. 1600 01:17:05,840 --> 01:17:08,367 But in addition you will lose if you ever repeat a past game 1601 01:17:08,367 --> 01:17:08,950 configuration. 1602 01:17:08,950 --> 01:17:11,570 So it's forbidden to do that. 1603 01:17:11,570 --> 01:17:17,070 Then, Robson, same guy who proved Go is EXPTIME hard, 1604 01:17:17,070 --> 01:17:20,320 proved that G1, G2, and G3, and chess and checkers 1605 01:17:20,320 --> 01:17:24,710 become EXPSPACE complete, which is cool. 1606 01:17:24,710 --> 01:17:27,120 That's a little harder. 1607 01:17:27,120 --> 01:17:28,730 And it makes sense they're in EXPSPACE 1608 01:17:28,730 --> 01:17:32,420 because it can sort of walk the graph in exponential space. 1609 01:17:32,420 --> 01:17:36,100 But they actually become that hard. 1610 01:17:36,100 --> 01:17:39,180 And even crazier to me is this rule. 1611 01:17:39,180 --> 01:17:41,165 It seems almost the same. 1612 01:17:41,165 --> 01:17:43,540 So we're going to have two extra variables x and y, which 1613 01:17:43,540 --> 01:17:45,660 can appear in the formula. 1614 01:17:45,660 --> 01:17:47,680 And instead of this lose rule, we 1615 01:17:47,680 --> 01:17:51,450 add this lose rule which is if you ever repeat a past game 1616 01:17:51,450 --> 01:17:55,340 configuration-- and between now and that past configuration 1617 01:17:55,340 --> 01:17:59,500 at most one of x and y have changed and that in turn-- then 1618 01:17:59,500 --> 01:18:00,767 you lose. 1619 01:18:00,767 --> 01:18:02,350 So if both of them get changed, you're 1620 01:18:02,350 --> 01:18:04,682 allowed to repeat it again. 1621 01:18:04,682 --> 01:18:07,140 I don't have a great intuition why this makes the game even 1622 01:18:07,140 --> 01:18:10,550 harder, but it pushes it up to the next level which 1623 01:18:10,550 --> 01:18:13,640 is double the exponential time. 1624 01:18:13,640 --> 01:18:15,160 AUDIENCE: This is change and changed 1625 01:18:15,160 --> 01:18:18,560 back [INAUDIBLE] configuration? 1626 01:18:18,560 --> 01:18:21,080 PROFESSOR: Well, right. 1627 01:18:21,080 --> 01:18:24,110 One of them will have changed, x or y. 1628 01:18:24,110 --> 01:18:25,492 Hm. 1629 01:18:25,492 --> 01:18:26,950 You're repeating the configuration. 1630 01:18:26,950 --> 01:18:29,360 So you changed something-- it be some other variable z-- 1631 01:18:29,360 --> 01:18:30,360 and then change it back. 1632 01:18:30,360 --> 01:18:32,800 As long as you didn't also change both x and y, 1633 01:18:32,800 --> 01:18:34,024 that's considered invalid. 1634 01:18:34,024 --> 01:18:36,440 Once you change x and y, you are free to repeat everything 1635 01:18:36,440 --> 01:18:41,480 again, until the next time something gets repeated. 1636 01:18:41,480 --> 01:18:43,700 So I guess you have to keep track of when 1637 01:18:43,700 --> 01:18:44,870 the x and y changes are. 1638 01:18:44,870 --> 01:18:47,890 So it's even harder to know the history of the game, 1639 01:18:47,890 --> 01:18:50,239 which repeats are valid and which are invalid. 1640 01:18:50,239 --> 01:18:51,780 In this case, all that he could prove 1641 01:18:51,780 --> 01:18:55,500 is the G1 becomes double the exponential time. 1642 01:18:58,501 --> 01:18:59,000 Cool. 1643 01:19:01,810 --> 01:19:04,550 I could say a little more. 1644 01:19:04,550 --> 01:19:09,710 In this world, it's probably good to know this fun fact. 1645 01:19:09,710 --> 01:19:11,960 Normally, when we think of non-determinism, 1646 01:19:11,960 --> 01:19:14,380 we think of an NP. 1647 01:19:14,380 --> 01:19:16,760 We have existential quantifiers on the guesses. 1648 01:19:16,760 --> 01:19:19,550 If there's at least one branch that works, then we're happy. 1649 01:19:19,550 --> 01:19:21,050 Then, we return, yes. 1650 01:19:21,050 --> 01:19:24,650 You could also think of universal quantifiers, where 1651 01:19:24,650 --> 01:19:28,160 if all of the paths going out of here end up with yes, then 1652 01:19:28,160 --> 01:19:28,990 we're happy. 1653 01:19:28,990 --> 01:19:32,520 You can also think of an alternating guess machine, 1654 01:19:32,520 --> 01:19:38,110 or alternating lucky machine, where every other time 1655 01:19:38,110 --> 01:19:41,770 it's an existential guess branch and the opposite times 1656 01:19:41,770 --> 01:19:44,470 it's a universal guess branch. 1657 01:19:44,470 --> 01:19:46,830 That corresponds to two-player games in a natural way. 1658 01:19:52,830 --> 01:20:00,400 Alternating polynomial time thing corresponds to queue set. 1659 01:20:00,400 --> 01:20:03,810 So that would give you PSPACE. 1660 01:20:03,810 --> 01:20:07,110 Alternating polynomial time gives you polynomial space. 1661 01:20:07,110 --> 01:20:10,490 Alternating polynomial space gives you exponential time. 1662 01:20:10,490 --> 01:20:13,295 Alternating exponential time gives you exponential space. 1663 01:20:13,295 --> 01:20:14,920 Alternating exponential space gives you 1664 01:20:14,920 --> 01:20:16,740 double the exponential time. 1665 01:20:16,740 --> 01:20:18,580 So in fact, this result is stated 1666 01:20:18,580 --> 01:20:21,290 as alternating exponential space complete, 1667 01:20:21,290 --> 01:20:23,310 which is the same as double exponential time. 1668 01:20:23,310 --> 01:20:27,320 So time and space are interleaved in the natural way. 1669 01:20:27,320 --> 01:20:29,080 And if you add alternation to one layer, 1670 01:20:29,080 --> 01:20:30,890 you get to the next layer. 1671 01:20:30,890 --> 01:20:32,850 So it's just fun facts. 1672 01:20:32,850 --> 01:20:35,260 And it's useful for reasoning about these games. 1673 01:20:35,260 --> 01:20:37,630 One more class. 1674 01:20:37,630 --> 01:20:40,120 We've so far talked about perfect information games, 1675 01:20:40,120 --> 01:20:43,030 where everybody knows all the states of all the variables. 1676 01:20:43,030 --> 01:20:44,590 You can define a private information 1677 01:20:44,590 --> 01:20:47,322 game, where you can see some but not 1678 01:20:47,322 --> 01:20:48,530 all of your opponent's state. 1679 01:20:48,530 --> 01:20:51,050 You know all of your variable settings. 1680 01:20:51,050 --> 01:20:53,789 In this setting, a slight variation on G1 and G2. 1681 01:20:53,789 --> 01:20:55,830 We have to generalize the formula's a little bit, 1682 01:20:55,830 --> 01:20:58,490 become double the exponential time complete, just as hard 1683 01:20:58,490 --> 01:21:01,510 as the weird repeat rule. 1684 01:21:01,510 --> 01:21:05,630 Private information gives you a very hard thing. 1685 01:21:05,630 --> 01:21:09,060 A more restricted form is when player 1 can't see anything 1686 01:21:09,060 --> 01:21:09,840 about player 2. 1687 01:21:09,840 --> 01:21:12,180 But player 2 can see a little bit of player 1. 1688 01:21:12,180 --> 01:21:14,580 This is sort of a semi-blind game. 1689 01:21:14,580 --> 01:21:18,430 In this case, G2 at least is exponential space complete. 1690 01:21:18,430 --> 01:21:20,890 That's weaker than here. 1691 01:21:20,890 --> 01:21:24,360 So lots of weird separations here. 1692 01:21:24,360 --> 01:21:26,960 There are no well-known games in these categories 1693 01:21:26,960 --> 01:21:29,262 that have been proofed hard. 1694 01:21:29,262 --> 01:21:30,595 But here is the version of Peek. 1695 01:21:30,595 --> 01:21:33,134 You can redesign the Peek structure. 1696 01:21:33,134 --> 01:21:34,300 So you have some walls here. 1697 01:21:34,300 --> 01:21:37,300 So you can't see whether this guy's in or this guy's out. 1698 01:21:37,300 --> 01:21:39,579 Player 0 can only play on these guys. 1699 01:21:39,579 --> 01:21:41,120 Player 1 can only plan on these guys. 1700 01:21:41,120 --> 01:21:42,850 Player 1 can see all of this state, 1701 01:21:42,850 --> 01:21:44,080 a little bit of the state. 1702 01:21:44,080 --> 01:21:47,180 In the blind version, you can't see anything to the right. 1703 01:21:47,180 --> 01:21:50,840 And because they couldn't do G4, this 1704 01:21:50,840 --> 01:21:57,550 is the G2 version, which is there's also a wall here. 1705 01:21:57,550 --> 01:21:59,657 And you can only see red through these holes. 1706 01:21:59,657 --> 01:22:01,740 And your opponent can see red through these holes. 1707 01:22:01,740 --> 01:22:04,000 So you've got two different win conditions. 1708 01:22:04,000 --> 01:22:05,070 That's G2. 1709 01:22:05,070 --> 01:22:09,100 And so that's a version of Peek. 1710 01:22:09,100 --> 01:22:10,900 This one is double the exponential time 1711 01:22:10,900 --> 01:22:12,630 hard and complete. 1712 01:22:12,630 --> 01:22:16,100 And this one is exponential space complete. 1713 01:22:16,100 --> 01:22:21,040 So these are like way in the deep end. 1714 01:22:21,040 --> 01:22:25,134 But next class we'll talk about this category of team 1715 01:22:25,134 --> 01:22:26,300 imperfect information games. 1716 01:22:26,300 --> 01:22:27,930 And then, we even get undecidability, 1717 01:22:27,930 --> 01:22:31,070 which is the ultimate hardness. 1718 01:22:31,070 --> 01:22:33,190 But that's all for today.