1 00:00:00,000 --> 00:00:01,924 >> [Glazbom] 2 00:00:01,924 --> 00:00:10,600 3 00:00:10,600 --> 00:00:13,280 >> SPEAKER: Dobrodošli natrag, svakoga. 4 00:00:13,280 --> 00:00:15,440 Ovo je CS50. 5 00:00:15,440 --> 00:00:21,040 I danas, imamo mnogo zanimljivosti o čemu razgovarati. 6 00:00:21,040 --> 00:00:25,500 Prvo, iako, moram podsjetiti ste od rijetkih upravnih stvari. 7 00:00:25,500 --> 00:00:30,160 Ovaj tjedan je kviz jedan, srijeda ili dijelu Yale 8 00:00:30,160 --> 00:00:32,940 utorkom i četvrtkom, u četvrtak. 9 00:00:32,940 --> 00:00:38,170 Postoji kviz recenzije Večeras na Yaleu, 5:30 do 7:00. 10 00:00:38,170 --> 00:00:40,030 Na Harvardu, snimili su jednu jučer. 11 00:00:40,030 --> 00:00:43,000 I svatko može gledati tu online. 12 00:00:43,000 --> 00:00:49,406 >> Također, ovaj tjedan ili početkom sljedećeg tjedna, imamo posljednju CS50 predavanje. 13 00:00:49,406 --> 00:00:51,450 [Uzdiše] Znam. 14 00:00:51,450 --> 00:00:54,140 Tako brzo je došao. 15 00:00:54,140 --> 00:00:57,820 Yale studenti će imati live predavanje ovdje u pravni fakultet 16 00:00:57,820 --> 00:00:59,920 Gledalište je u petak. 17 00:00:59,920 --> 00:01:01,140 Tu će biti kolač. 18 00:01:01,140 --> 00:01:05,570 Harvardski studenti će imati Posljednji predavanje u Sandersa u ponedjeljak. 19 00:01:05,570 --> 00:01:08,050 Tu će također biti torta. 20 00:01:08,050 --> 00:01:14,000 >> Također, ovaj tjedan u petak, za one od vas koji dolazite u New Havenu, 21 00:01:14,000 --> 00:01:15,740 imamo CS50 Expo. 22 00:01:15,740 --> 00:01:18,850 Imamo više od 30 registrirana različite skupine 23 00:01:18,850 --> 00:01:22,530 vam pokazati sve od autonomnih jedrilicama, 24 00:01:22,530 --> 00:01:27,170 sustava koje prepoznaju digitalne portreta, na računalu 25 00:01:27,170 --> 00:01:32,100 glazba i računalno proizvedene glazbe. 26 00:01:32,100 --> 00:01:33,610 Dakle, molimo Vas da nam se pridružite. 27 00:01:33,610 --> 00:01:36,460 Mislim da će to biti sjajna prilika. 28 00:01:36,460 --> 00:01:40,320 >> Danas, međutim, možemo doći do i dalje govorimo o AI, 29 00:01:40,320 --> 00:01:43,150 o umjetnoj inteligenciji. 30 00:01:43,150 --> 00:01:46,070 I jedna od stvari koje ćemo doći do danas 31 00:01:46,070 --> 00:01:51,750 je ideja kako koristiti AI za rješavanje problema. 32 00:01:51,750 --> 00:01:54,690 Sada, kao i uvijek, krenimo s nečim jednostavnim. 33 00:01:54,690 --> 00:01:57,120 A mi ćemo za početak s jednostavnom idejom. 34 00:01:57,120 --> 00:01:59,920 I to je pomoću pretraživanja. 35 00:01:59,920 --> 00:02:06,990 >> Pa zamislite na trenutak da sam imaju zadatak da trebam obaviti. 36 00:02:06,990 --> 00:02:11,970 I ja bih da se taj zadatak automatizirani neki programski agent. 37 00:02:11,970 --> 00:02:17,100 Zamislite da pokušavam rezervirati set letova iz, recimo, Boston 38 00:02:17,100 --> 00:02:20,040 u San Francisco. 39 00:02:20,040 --> 00:02:24,230 Mogao sam proći i sam mogao koristiti jedan od prekrasnih online pretraživanja 40 00:02:24,230 --> 00:02:28,790 alata, koji će učiniti u osnovi isti proces koji smo 41 00:02:28,790 --> 00:02:30,030 će prošetati do danas. 42 00:02:30,030 --> 00:02:34,100 Ali ako nisu imali da alat, što biste učinili? 43 00:02:34,100 --> 00:02:37,570 >> Pa, što bi moglo izgledati i vidjeti i reći, ja sam u Bostonu. 44 00:02:37,570 --> 00:02:41,520 Koji letovi su mi dostupni? 45 00:02:41,520 --> 00:02:44,390 Sad, možda imam tri Mogući letovi iz Bostona 46 00:02:44,390 --> 00:02:47,180 koji će stati vrijeme kad trebam otići. 47 00:02:47,180 --> 00:02:48,830 Mogao sam letjeti u Chicago. 48 00:02:48,830 --> 00:02:50,130 Ili bih mogao letjeti u Miamiju. 49 00:02:50,130 --> 00:02:53,340 Ili sam mogao odletjeti u New York. 50 00:02:53,340 --> 00:02:56,980 I onda mogao tražiti od svakog jedan od onih odredište gradova 51 00:02:56,980 --> 00:03:00,650 i razmišljati o tome što mjestima Ja eventualno mogao doći 52 00:03:00,650 --> 00:03:03,020 iz svake od tih pojedinih gradova. 53 00:03:03,020 --> 00:03:07,390 >> Dakle, možda iz Chicaga, mogu dobiti izravni let za San Francisco. 54 00:03:07,390 --> 00:03:09,550 To je izvrsno. 55 00:03:09,550 --> 00:03:12,360 Ili bih mogao dobiti let za Denver. 56 00:03:12,360 --> 00:03:16,970 Sad, možda je let za San Francisco je idealno rješenje za mene, 57 00:03:16,970 --> 00:03:19,530 ali možda i ne. 58 00:03:19,530 --> 00:03:22,180 Možda sam u potrazi za nečim to je malo jeftinije 59 00:03:22,180 --> 00:03:24,920 ili malo bolje za moj raspored. 60 00:03:24,920 --> 00:03:29,197 I tako sam mogao tražiti ono što drugima mogućnosti može biti vani. 61 00:03:29,197 --> 00:03:30,280 Tako sam mogao gledati u Denveru. 62 00:03:30,280 --> 00:03:33,870 I iz Denvera, dobro, možda Ja mogu dobiti let za Austinu. 63 00:03:33,870 --> 00:03:37,080 A iz Austina, možda ja mogu dobiti let u Phoenix, a iz Phoenixa 64 00:03:37,080 --> 00:03:40,190 u San Francisco. 65 00:03:40,190 --> 00:03:42,730 Sad, nisam još učinio. 66 00:03:42,730 --> 00:03:45,640 Jer možda postoji izravni let iz New Yorka 67 00:03:45,640 --> 00:03:47,850 San Francisco koji je savršen za mene. 68 00:03:47,850 --> 00:03:53,354 Ili možda postoji let iz Miamija kroz Denver je to puno jeftinije. 69 00:03:53,354 --> 00:03:54,270 Tako sam i dalje moram ići. 70 00:03:54,270 --> 00:03:58,200 I dalje morati gledati na sve one gradovi koji još nisam istražuju. 71 00:03:58,200 --> 00:04:04,220 Moram iscrpno provjeriti sve mogućnosti, da bi se. 72 00:04:04,220 --> 00:04:09,610 >> Dakle, iz New Yorka, možda ja mogu dobiti let u Nashville, a od Nashville 73 00:04:09,610 --> 00:04:10,336 Austinu. 74 00:04:10,336 --> 00:04:11,460 A onda znam gdje sam. 75 00:04:11,460 --> 00:04:14,252 I onda ja znam iz Austina, mogu letjeti u Phoenix, a iz Phoenixa 76 00:04:14,252 --> 00:04:14,960 u San Francisco. 77 00:04:14,960 --> 00:04:18,240 78 00:04:18,240 --> 00:04:22,830 Ako sam letjeti prvi u Miami, ipak, možda mogu dobiti let iz Miamija 79 00:04:22,830 --> 00:04:25,080 u Nashville, ili iz Miamija u Austin. 80 00:04:25,080 --> 00:04:27,950 81 00:04:27,950 --> 00:04:30,860 >> I sada sam pokušao sve od mogućnosti. 82 00:04:30,860 --> 00:04:36,310 Ja sam izgradio ovaj graf koji mi pokazuje sve moguće rute 83 00:04:36,310 --> 00:04:37,790 da ću biti u mogućnosti uzeti. 84 00:04:37,790 --> 00:04:40,510 85 00:04:40,510 --> 00:04:43,640 Kada smo to predstavlja vrste problema, 86 00:04:43,640 --> 00:04:47,870 nećemo zastupati ih izričito kao ovaj graf, 87 00:04:47,870 --> 00:04:51,590 jer to graf ne predstavlja povijest, gdje smo otišli. 88 00:04:51,590 --> 00:04:55,260 Znajući da sam letio iz Phoenix u San Francisco 89 00:04:55,260 --> 00:05:01,690 ne mi reći da li sam došao preko Nashville, ili preko Denvera, ili putem Miamiju. 90 00:05:01,690 --> 00:05:06,430 >> Pa što ću učiniti umjesto toga je Ja ću uzeti ovaj isti problem, 91 00:05:06,430 --> 00:05:09,140 i ja ću ga predstavlja kao stablo. 92 00:05:09,140 --> 00:05:14,300 I u korijenu stabla, u top, ja ću staviti na mjesto koje sam započeo, 93 00:05:14,300 --> 00:05:16,590 Boston. 94 00:05:16,590 --> 00:05:19,310 A iz Bostona, ja ću gledati na sve moguće mjestima 95 00:05:19,310 --> 00:05:20,380 da mogu putovati u. 96 00:05:20,380 --> 00:05:25,480 Pa, u ovom slučaju, imao sam tri, Chicago, New York i Miami. 97 00:05:25,480 --> 00:05:29,850 A onda ću istražiti svaku od ta djeca u stablo. 98 00:05:29,850 --> 00:05:32,690 >> Iz Chicaga, vidio sam da sam imao dva leta. 99 00:05:32,690 --> 00:05:35,940 Mogao sam letjeti izravno San Francisco ili u Denver. 100 00:05:35,940 --> 00:05:37,740 Sada San Francisco, to je moj cilj. 101 00:05:37,740 --> 00:05:39,790 To je moje odredište. 102 00:05:39,790 --> 00:05:42,220 To će biti lista ovog drveta. 103 00:05:42,220 --> 00:05:45,340 To je, nikada neću otići negdje nakon San Francisca. 104 00:05:45,340 --> 00:05:47,850 105 00:05:47,850 --> 00:05:50,340 Iz Denvera, ipak, Ja mogu letjeti iz Denvera 106 00:05:50,340 --> 00:05:54,220 Austin, od Austin u Phoenix, a od Phoenixa do San Francisca. 107 00:05:54,220 --> 00:05:56,050 I sada opet, ja sam dosegla list. 108 00:05:56,050 --> 00:05:59,470 109 00:05:59,470 --> 00:06:03,980 >> I onda mogao vratiti na sljedeći grad koji nisam u potpunosti istraženi. 110 00:06:03,980 --> 00:06:07,440 To bi bilo u New Yorku, idite natrag na vrh mog stabla, 111 00:06:07,440 --> 00:06:09,160 doći u New York. 112 00:06:09,160 --> 00:06:12,700 Iz New Yorka, ja mogu letjeti Nashville, od Nashville u Austin, 113 00:06:12,700 --> 00:06:17,290 iz Austina u Phoenix, te iz Phoenixa do San Francisca. 114 00:06:17,290 --> 00:06:20,170 I na kraju, jedan grad sam nisu pogledao još, Miami. 115 00:06:20,170 --> 00:06:24,600 >> Pa, iz Miamija sam rekao imao sam dva mogućnosti, Nashville i Austin. 116 00:06:24,600 --> 00:06:28,810 Ako sam letjeti u Nashvilleu, i onda letim iz Nashvillea, Austinu, u Phoenix, 117 00:06:28,810 --> 00:06:29,640 u San Francisco. 118 00:06:29,640 --> 00:06:33,600 Ako sam letjeti u Austinu, letim Austin, u Phoenix, u San Franciscu. 119 00:06:33,600 --> 00:06:36,340 A sada imam stablo. 120 00:06:36,340 --> 00:06:37,230 To je potpuna stablo. 121 00:06:37,230 --> 00:06:41,890 To je sve mogućnosti i sve staze koje bih mogao poduzeti. 122 00:06:41,890 --> 00:06:44,310 To jest, ako sam početi na Korijen stabla na vrhu 123 00:06:44,310 --> 00:06:47,860 i ja ići dolje na jedan od ostavlja, on mi govori ne samo 124 00:06:47,860 --> 00:06:50,480 gdje ću završiti, San Francisco, 125 00:06:50,480 --> 00:06:53,670 ali to mi govori da je put Moram uzeti doći. 126 00:06:53,670 --> 00:06:56,400 127 00:06:56,400 --> 00:06:59,690 >> Sad, što je jedan od njih je najbolji? 128 00:06:59,690 --> 00:07:02,430 Pa, ništa o tome Problem još mi kaže 129 00:07:02,430 --> 00:07:04,710 koji od njih je najbolje rješenje. 130 00:07:04,710 --> 00:07:09,270 Možda mi je stalo najviše o koliko vremena sam u zrak, 131 00:07:09,270 --> 00:07:12,350 ili udaljenost da letim. 132 00:07:12,350 --> 00:07:16,410 U tom slučaju, Chicago i San Francisco može biti najkraći broj 133 00:07:16,410 --> 00:07:18,910 od milja u zraku. 134 00:07:18,910 --> 00:07:20,860 >> Možda mi je stalo cijeni. 135 00:07:20,860 --> 00:07:23,680 A svi znamo izravne letove su obično skuplji. 136 00:07:23,680 --> 00:07:26,610 Dakle, možda ako mi se ovo vrsta unatrag rute 137 00:07:26,610 --> 00:07:30,650 preko Miamija, Nashville, Austin, Phoenix, možda onda 138 00:07:30,650 --> 00:07:34,070 JA dobiti nižu cijenu. 139 00:07:34,070 --> 00:07:36,440 Ali sam mogla optimizirati na bilo Kriteriji koje mi je stalo. 140 00:07:36,440 --> 00:07:39,790 Tko ima najbolje u leta Wi-Fi, ili koji 141 00:07:39,790 --> 00:07:43,110 Zračne luke imaju najbolja hrana dostupna. 142 00:07:43,110 --> 00:07:47,280 I svaki od onih koji bi mogli daj mi drugu rješenje 143 00:07:47,280 --> 00:07:49,215 da vidim kao najbolji. 144 00:07:49,215 --> 00:07:51,990 145 00:07:51,990 --> 00:07:54,400 >> Ove vrste problema, kamo idemo 146 00:07:54,400 --> 00:07:58,480 izgraditi ovaj stablo mogućnosti, a potom 147 00:07:58,480 --> 00:08:02,100 pogled na svaku od onih pojedini putevi, i ispitati 148 00:08:02,100 --> 00:08:05,270 koji od tih ispunjava kriterij za nas, 149 00:08:05,270 --> 00:08:08,790 ćemo nazvati ti problemi pretraživanja. 150 00:08:08,790 --> 00:08:11,280 I mi imamo puno algoritama, od kojih su neki 151 00:08:11,280 --> 00:08:15,270 smo već vidjeli, ići i istraživati ​​one stabala. 152 00:08:15,270 --> 00:08:19,270 Mogli bismo to učiniti na način da upravo učinio, a dubina prvog pretragu, 153 00:08:19,270 --> 00:08:22,900 ide dolje koliko god možemo, dok ne hit list, a zatim vraća se, 154 00:08:22,900 --> 00:08:24,787 i ide natrag dolje. 155 00:08:24,787 --> 00:08:26,870 Ili bismo mogli učiniti ono što je zove širina prvo pretraživanja. 156 00:08:26,870 --> 00:08:29,675 Mogli bismo proširiti sve na vrhu, te 157 00:08:29,675 --> 00:08:31,550 sve jedan redak ispod toga, a onda 158 00:08:31,550 --> 00:08:35,240 sve jedan redak ispod toga. 159 00:08:35,240 --> 00:08:41,250 Ti drveće pretraživanje su temeljni za AI. 160 00:08:41,250 --> 00:08:46,570 Ali oni ne sasvim doći je u pravu. 161 00:08:46,570 --> 00:08:51,600 Zapravo, u mnogo slučajeva da mi stvarno stalo, 162 00:08:51,600 --> 00:08:54,430 želimo izgraditi stablo, ali zapravo ne 163 00:08:54,430 --> 00:08:57,140 doći da sve odluke. 164 00:08:57,140 --> 00:09:00,940 >> To su situacije nazivaju Neprijateljski pretraživanje, također poznat 165 00:09:00,940 --> 00:09:05,390 i kako napisati igranja sustavi i biti plaćen za to. 166 00:09:05,390 --> 00:09:07,940 No, to su vrste sustava gdje sam 167 00:09:07,940 --> 00:09:12,920 Možda ćete odabrati kad idem iz Boston, koji je grad idem dalje. 168 00:09:12,920 --> 00:09:19,990 Ali nakon toga, netko drugi može dobiti donijeti odluku o tome gdje sam letjeti. 169 00:09:19,990 --> 00:09:24,040 Dakle, za izgradnju tih vrste strukture, mi smo 170 00:09:24,040 --> 00:09:28,510 morati uzeti malo drugačiji pristup na njega. 171 00:09:28,510 --> 00:09:31,060 Nećemo biti u mogućnosti samo traži kroz stabla 172 00:09:31,060 --> 00:09:35,000 više, ne zato što smo onaj koji je u kontroli 173 00:09:35,000 --> 00:09:38,180 svakog od tih donositeljima bodova. 174 00:09:38,180 --> 00:09:42,590 >> Dakle, zamislimo jednostavna igra kao Tic-Tac-nožni prst. 175 00:09:42,590 --> 00:09:46,730 Mogao bih početi s potpuno prazan odbora. 176 00:09:46,730 --> 00:09:49,580 A u Tic-Tac-nožni prst, X dobiva igrati prvi. 177 00:09:49,580 --> 00:09:53,890 I tako sam mogao razmišljati o svim moguće poteze da X može napraviti. 178 00:09:53,890 --> 00:09:57,420 I ako sam onaj igranje X, to je super. 179 00:09:57,420 --> 00:10:01,020 Imam devet moguće potezi koji mogu napraviti. 180 00:10:01,020 --> 00:10:05,000 Mogao sam staviti X u bilo kojem tih devet pozicija. 181 00:10:05,000 --> 00:10:10,710 >> I onda iz svake od njih, ja mogao zamisliti što će se dogoditi sljedeći. 182 00:10:10,710 --> 00:10:14,130 Dakle, u ovom slučaju, druga Igrač će dobiti uzeti skretanje. 183 00:10:14,130 --> 00:10:15,660 O bi doći do skrenuti. 184 00:10:15,660 --> 00:10:19,510 I iz svakog od tih, tamo će biti osam različitih mjesta 185 00:10:19,510 --> 00:10:22,980 O da bi mogao staviti svoju oznaku. 186 00:10:22,980 --> 00:10:25,790 >> Recimo odlučio sam da sam bio će staviti X u sredini. 187 00:10:25,790 --> 00:10:28,810 To uvijek izgleda kao dobar otvaranje potez. 188 00:10:28,810 --> 00:10:34,870 Mogao bih pogledajte ispod toga, osam mogući potezi koje čini. O 189 00:10:34,870 --> 00:10:37,320 Sada, ako igram X, to je divno. 190 00:10:37,320 --> 00:10:41,740 JA dobiti da odaberete koji jedan I ići, onaj u sredini. 191 00:10:41,740 --> 00:10:45,000 Ali sada dobiva O odabrati. 192 00:10:45,000 --> 00:10:48,750 I nemam kontrolu preko te odluke. 193 00:10:48,750 --> 00:10:51,670 >> Ali iz svake od tih Mogući položaji odbora, 194 00:10:51,670 --> 00:10:54,020 postoji onda drugi skup mogućnosti. 195 00:10:54,020 --> 00:10:56,700 Kada je u pitanju bilo moj red opet bih 196 00:10:56,700 --> 00:11:01,500 doći do pokupiti i reći, dobro, ako O seli u, dobro, 197 00:11:01,500 --> 00:11:06,110 srednji mjesto na lijevoj strani, a zatim Imam set mogućnosti 198 00:11:06,110 --> 00:11:09,740 gdje mogu uzeti moj sljedeći potez. 199 00:11:09,740 --> 00:11:14,140 Od onih, mogao sam uzeti u obzir sve mogućnosti ispod njih. 200 00:11:14,140 --> 00:11:18,030 A onda će doći O odabrati među onima. 201 00:11:18,030 --> 00:11:22,290 >> A mogao sam držati izgradnju ovo Stablo se dok sam na mjestu 202 00:11:22,290 --> 00:11:26,960 Kada netko osvaja game-- koji je 203 00:11:26,960 --> 00:11:31,070 dobio bi se smatrati list node-- ili odbor je potpuno pun 204 00:11:31,070 --> 00:11:32,704 i nitko nije pobijedio. 205 00:11:32,704 --> 00:11:34,370 I to je također će biti čvor nultog stupnja. 206 00:11:34,370 --> 00:11:35,411 To će biti izjednačen. 207 00:11:35,411 --> 00:11:37,820 208 00:11:37,820 --> 00:11:41,680 >> No, lukav stvar s ovim je ako ovo su samo redoviti pretragu 209 00:11:41,680 --> 00:11:44,269 Problem, ja bih biti u mogućnosti recimo, dobro, X bi trebao ići ovdje. 210 00:11:44,269 --> 00:11:45,560 A O trebao ići put tamo. 211 00:11:45,560 --> 00:11:46,770 A onda je X trebao ići ovdje. 212 00:11:46,770 --> 00:11:48,269 A onda O trebao ići put tamo. 213 00:11:48,269 --> 00:11:51,860 A onda je X može dobiti tri u redu, a ja pobijediti. 214 00:11:51,860 --> 00:11:54,870 I igra će biti više u pet poteza, tri za mene, 215 00:11:54,870 --> 00:11:57,710 dva za moj protivnik. 216 00:11:57,710 --> 00:12:01,300 Ali ne uvijek dobiti odabrati koji. 217 00:12:01,300 --> 00:12:03,720 >> Dakle, umjesto što smo će morati raditi 218 00:12:03,720 --> 00:12:06,270 se da ćemo imati da imaju novu strategiju. 219 00:12:06,270 --> 00:12:09,350 A strategija koja igra-igranje algoritmi često koriste 220 00:12:09,350 --> 00:12:12,000 je ono što se naziva minimax. 221 00:12:12,000 --> 00:12:15,500 Glavna ideja minimax je da smo 222 00:12:15,500 --> 00:12:21,365 će odabrati potez koji naš protivnik najgori mogući set 223 00:12:21,365 --> 00:12:22,790 poteza koji se mogu napraviti. 224 00:12:22,790 --> 00:12:25,570 225 00:12:25,570 --> 00:12:28,870 To ne čini mi bilo dobro odabrati potez gdje 226 00:12:28,870 --> 00:12:31,952 Možda ću moći osvojiti nakon da, jer moj protivnik nije 227 00:12:31,952 --> 00:12:33,160 će mi dati tu priliku. 228 00:12:33,160 --> 00:12:37,770 Oni će izabrati neke strašno ishod za mene. 229 00:12:37,770 --> 00:12:42,010 Tako ću učiniti potez koji tjera suparnika 230 00:12:42,010 --> 00:12:45,760 učiniti nešto bolje za mene. 231 00:12:45,760 --> 00:12:46,260 U redu. 232 00:12:46,260 --> 00:12:48,410 Idemo vidjeti kako to se igra. 233 00:12:48,410 --> 00:12:51,640 Dakle, ovdje je naš algoritam u pseudokod. 234 00:12:51,640 --> 00:12:54,450 Idemo generirati cijela igra stablo. 235 00:12:54,450 --> 00:12:56,757 Idemo graditi cijela struktura. 236 00:12:56,757 --> 00:12:57,840 A onda ćemo proći. 237 00:12:57,840 --> 00:13:02,100 A na samom dnu, na svakom od terminalne čvorove, na svakoj od lišća, 238 00:13:02,100 --> 00:13:07,850 ćemo procijeniti koliko vrijedna je da je za mene? 239 00:13:07,850 --> 00:13:11,690 I mi ćemo vrijednost stvari koje su dobre za mene kao pozitivan. 240 00:13:11,690 --> 00:13:14,460 Stvari koje nisu dobre za mene će biti manje pozitivan ili nula, 241 00:13:14,460 --> 00:13:16,480 ili čak negativan. 242 00:13:16,480 --> 00:13:19,240 >> Tako je u Tic-Tac-nožni prst, možda win za mene je dobar. 243 00:13:19,240 --> 00:13:20,290 To je jedan. 244 00:13:20,290 --> 00:13:22,400 I kravata je nula. 245 00:13:22,400 --> 00:13:26,230 I nešto što je gubitak za ja, možda je to negativan. 246 00:13:26,230 --> 00:13:29,620 Sve što je bitno je da je bolje to je za mene, to je veći rezultat 247 00:13:29,620 --> 00:13:32,160 prima. 248 00:13:32,160 --> 00:13:36,690 Od tih mogućnosti Na dno, onda ćemo filtrirati prema gore. 249 00:13:36,690 --> 00:13:40,650 A kad je moja prilika da odaberete Među nizom alternativa, 250 00:13:40,650 --> 00:13:44,460 Ja ću izabrati onaj koji je dobio najvišu ocjenu. 251 00:13:44,460 --> 00:13:47,200 >> I kad god je moj Protivnici okrenuti odabrati, 252 00:13:47,200 --> 00:13:52,350 Ja ću pretpostaviti da oni će odaberite onaj s najmanjim brojem bodova. 253 00:13:52,350 --> 00:13:56,090 I ako ja to sve do vrha stabla, 254 00:13:56,090 --> 00:14:03,150 Ja ću izabrao put koji daje meni je najbolji rezultat da mogu dobiti, 255 00:14:03,150 --> 00:14:09,110 uz pretpostavku da je moj protivnik čini sve prave poteze. 256 00:14:09,110 --> 00:14:11,940 >> U redu, da vidimo to djelovanje na prvom mjestu. 257 00:14:11,940 --> 00:14:14,980 A onda ćemo se zapravo pogledajte kod za njega. 258 00:14:14,980 --> 00:14:16,780 Pa zamislite imam ovaj veliki stablo. 259 00:14:16,780 --> 00:14:18,280 I sad ja ne igram Tic-Tac-nožni prst. 260 00:14:18,280 --> 00:14:20,405 Htjela sam ti dati nešto malo bogatiji. 261 00:14:20,405 --> 00:14:23,560 Tako sam dobio neku igru ​​u kojoj postoji mnogo različitih rezultate 262 00:14:23,560 --> 00:14:26,390 da bih mogao imati na kraju. 263 00:14:26,390 --> 00:14:27,980 I tako sam izgraditi ovaj kompletnu stablo. 264 00:14:27,980 --> 00:14:29,070 I ja se presele na prvom mjestu. 265 00:14:29,070 --> 00:14:31,290 Ja sam na korijen stabla. 266 00:14:31,290 --> 00:14:36,150 >> I ja se birati that-- pa sam se kako bi se povećala preko tog prvog čvora. 267 00:14:36,150 --> 00:14:38,410 A onda je moj protivnik dobiva ići. 268 00:14:38,410 --> 00:14:41,910 A onda sam se ići još jednom. 269 00:14:41,910 --> 00:14:46,830 Tako se na dno, imam set mogućnosti koje se mogu izabrati iz, 270 00:14:46,830 --> 00:14:50,570 različite terminalne stanja u igri. 271 00:14:50,570 --> 00:14:54,980 Ako sam dolje da daleko lijevom kutu, 272 00:14:54,980 --> 00:14:58,867 i vidim da imam izbora između osam, sedam, i dva, 273 00:14:58,867 --> 00:15:00,450 dobro, ja sam taj koji dobiva odabrati. 274 00:15:00,450 --> 00:15:02,910 Zato ću odabrati najbolje jedan od onih. 275 00:15:02,910 --> 00:15:05,650 Idem izabrati osam. 276 00:15:05,650 --> 00:15:10,090 >> Pa znam da li sam ikada doći do te točke, 277 00:15:10,090 --> 00:15:13,890 Ja ću biti u mogućnosti da biste dobili da je osam bodova. 278 00:15:13,890 --> 00:15:17,410 Ako sam završiti na sljedećem mjestu više, sljedeći čvor više, 279 00:15:17,410 --> 00:15:20,760 devet, jedan ili šest, dobro, ja sam će odabrati najbolje od njih. 280 00:15:20,760 --> 00:15:21,950 Ja ću odabrati devet. 281 00:15:21,950 --> 00:15:24,880 Ako imam izbor između dva, četiri i, i on, 282 00:15:24,880 --> 00:15:28,240 Ja ću izabrati četiri, najviše. 283 00:15:28,240 --> 00:15:31,990 >> Sada, ako gledam na razini iznad toga, moj protivnik 284 00:15:31,990 --> 00:15:34,440 je jedan dobiva da bi taj izbor. 285 00:15:34,440 --> 00:15:37,040 Tako je moj protivnik dobiva birati, želim mu dati 286 00:15:37,040 --> 00:15:39,250 ono što se događa da bi mu osam bodova, 287 00:15:39,250 --> 00:15:41,916 ili ću mu dati stvar koja je će mu devet bodova, 288 00:15:41,916 --> 00:15:45,240 ili ono što se događa da će mu dati četiri boda? 289 00:15:45,240 --> 00:15:49,130 I moj protivnik, što je racionalna, ide 290 00:15:49,130 --> 00:15:53,470 odabrati najmanje onih, će izabrati četiri. 291 00:15:53,470 --> 00:15:56,020 >> I ja mogu učiniti kroz cijeli stabla. 292 00:15:56,020 --> 00:15:59,110 Ja mogu ići dolje da srednji set tri. 293 00:15:59,110 --> 00:16:01,517 I ja mogu birati između jedan, tri i pet. 294 00:16:01,517 --> 00:16:02,350 I ja se odabrati. 295 00:16:02,350 --> 00:16:03,810 Tako sam izabrati pet. 296 00:16:03,810 --> 00:16:05,340 Ja mogu izabrati tri, devet, ili dva. 297 00:16:05,340 --> 00:16:07,570 JA dobiti odabrati, pa sam se odlučio na devet. 298 00:16:07,570 --> 00:16:09,290 Šest, pet, ili dva, biram. 299 00:16:09,290 --> 00:16:11,539 JA dobiti odabrati šest. 300 00:16:11,539 --> 00:16:13,080 Razina iznad toga, tko će izabrati? 301 00:16:13,080 --> 00:16:16,280 302 00:16:16,280 --> 00:16:18,140 Tko dobiva odabrati? 303 00:16:18,140 --> 00:16:20,000 Drugi tip, moj protivnik. 304 00:16:20,000 --> 00:16:22,583 Tako su odlučili pet, devet, ili šest, koji? 305 00:16:22,583 --> 00:16:23,410 >> PUBLIKA: pet. 306 00:16:23,410 --> 00:16:25,250 >> SPEAKER: Oni izabrati pet. 307 00:16:25,250 --> 00:16:27,400 Oni su dobili odabrati minimum. 308 00:16:27,400 --> 00:16:29,690 A onda zadnji, odabrati jedan, dva ili tri. 309 00:16:29,690 --> 00:16:31,720 JA dobiti odabrati, tako da biram tri. 310 00:16:31,720 --> 00:16:34,370 Devet, sedam, ili dva, biram devet. 311 00:16:34,370 --> 00:16:37,070 I 11, šest, ili četiri, biram 11. 312 00:16:37,070 --> 00:16:41,190 Moj protivnik zatim odabire tri, devet, odnosno 11, odabire minimum. 313 00:16:41,190 --> 00:16:43,290 On mi daje tri. 314 00:16:43,290 --> 00:16:47,780 I konačno na vrhu stablo, sam se ponovno birati. 315 00:16:47,780 --> 00:16:51,190 I ja se birati između četiri, pet ili tri. 316 00:16:51,190 --> 00:16:52,270 Tako sam uzeti pet. 317 00:16:52,270 --> 00:16:55,070 318 00:16:55,070 --> 00:17:00,891 >> Ako moram kontrolirati sve, ja bih se put koji je vodio do 11. 319 00:17:00,891 --> 00:17:02,390 Ali ja ne bi da bi taj izbor. 320 00:17:02,390 --> 00:17:04,220 Ako odem dolje tom putu. 321 00:17:04,220 --> 00:17:10,710 Moj protivnik će me prisiliti na izbor koji vodi do tri. 322 00:17:10,710 --> 00:17:14,530 Tako je najbolje što mogu učiniti je da se taj srednji granu, 323 00:17:14,530 --> 00:17:19,859 bi taj izbor koji je na kraju će me dovesti do pet bodova. 324 00:17:19,859 --> 00:17:23,230 To je ono što minimax radi. 325 00:17:23,230 --> 00:17:23,807 >> U redu. 326 00:17:23,807 --> 00:17:24,890 Uzmimo pogled na to. 327 00:17:24,890 --> 00:17:27,480 328 00:17:27,480 --> 00:17:32,330 Dakle ovdje u CS50 IRO je program koji 329 00:17:32,330 --> 00:17:36,540 provodi minimax igrati Tic-Tac-nožni prst. 330 00:17:36,540 --> 00:17:40,100 Idemo graditi do reprezentacije. 331 00:17:40,100 --> 00:17:44,390 Mi ćemo imati dva opponent-- ili dva igrača, naše računalo 332 00:17:44,390 --> 00:17:46,090 igrač i čovjek igrač. 333 00:17:46,090 --> 00:17:48,980 334 00:17:48,980 --> 00:17:53,090 Igrač broj jedan će se igrati O. To će biti stroj igrač. 335 00:17:53,090 --> 00:17:55,747 Oni su dobili za kretanje drugo. 336 00:17:55,747 --> 00:17:57,830 A drugi igrač, naš ljudski igrač, bit će X. 337 00:17:57,830 --> 00:17:59,880 >> A da bi moj život malo jednostavan, idem 338 00:17:59,880 --> 00:18:03,060 označiti taj igrač negativan. 339 00:18:03,060 --> 00:18:05,026 Dakle, ja samo mogu razmnožavati negativne jedan swap 340 00:18:05,026 --> 00:18:06,400 između jednog igrača i druge. 341 00:18:06,400 --> 00:18:09,030 342 00:18:09,030 --> 00:18:12,250 U redu, pa neka je pogledati ono što zapravo učiniti. 343 00:18:12,250 --> 00:18:15,840 Idemo definirati našu odbora. 344 00:18:15,840 --> 00:18:19,060 To će biti, dobro, idemo dopustiti da bude tri za tri, 345 00:18:19,060 --> 00:18:21,580 ili ćemo čak mogu igrati pet od pet ili sedam 346 00:18:21,580 --> 00:18:28,870 od sedam Tic-Tac-nožni prst ako želite kao što su, na temelju nekih dimenzija D. 347 00:18:28,870 --> 00:18:31,260 >> I mi ćemo imati par pomoćnih funkcija 348 00:18:31,260 --> 00:18:34,360 da će učiniti stvari kao što su inicijalizirati screen-- ili žao, 349 00:18:34,360 --> 00:18:38,900 inicijalizirati naše varijable, jasno zaslon, crtanje odbora na zaslonu, 350 00:18:38,900 --> 00:18:41,060 onaj koji provjerava odbor da li ili ne 351 00:18:41,060 --> 00:18:44,520 tu je pobjednik, onaj koji analizira kroz naredbenog retka, 352 00:18:44,520 --> 00:18:50,670 samo da pomogne, onaj koji čita u ulaz, a jedna funkcija zove minimax. 353 00:18:50,670 --> 00:18:52,746 I to je jedan ćemo stalo najviše o tome. 354 00:18:52,746 --> 00:18:54,120 Ali pogledajmo prvo na glavni. 355 00:18:54,120 --> 00:18:57,490 356 00:18:57,490 --> 00:18:58,510 >> Što nam je činiti? 357 00:18:58,510 --> 00:19:00,570 Pa, idemo analizirati naše komandne linije, 358 00:19:00,570 --> 00:19:04,300 samo čitati i vidjeti što Dimenzija odbora bismo željeli imati. 359 00:19:04,300 --> 00:19:07,330 Mi ćemo inicijalizirati našu ploču. 360 00:19:07,330 --> 00:19:10,360 A onda ćemo ući jedno Velika divlja petlje, više puta 361 00:19:10,360 --> 00:19:16,630 prihvatiti poteze dok se igra osvojio, ili nema niti pomiče lijevo. 362 00:19:16,630 --> 00:19:20,560 Svaki put kad smo proći kroz to petlje, mi ćemo brisanje zaslona. 363 00:19:20,560 --> 00:19:23,290 Mi ćemo nacrtati ploču na zaslonu. 364 00:19:23,290 --> 00:19:28,750 I mi smo namjerno vrsta apstrahiranja to daleko kao potprograme, 365 00:19:28,750 --> 00:19:32,030 tako da ne morate brinuti previše o detaljima kako su se dogoditi. 366 00:19:32,030 --> 00:19:33,480 >> Vi ćete imati kôd kasnije danas. 367 00:19:33,480 --> 00:19:37,970 A ako želite gledati kroz i saznati, što ih sve može vidjeti. 368 00:19:37,970 --> 00:19:39,890 No, mi ćemo izvući ploču na zaslonu. 369 00:19:39,890 --> 00:19:43,620 A onda ćemo provjeriti i Vidite, imamo pobjednika? 370 00:19:43,620 --> 00:19:46,290 Je li netko osvojio ovu igru? 371 00:19:46,290 --> 00:19:49,260 Ako imaju, mi ćemo ispisati iz pobjedu poruke. 372 00:19:49,260 --> 00:19:51,680 A mi ćemo kraj igre. 373 00:19:51,680 --> 00:19:54,510 >> Također ćemo provjeriti i vidjeti ako postoji kravatu. 374 00:19:54,510 --> 00:19:56,620 To će biti lako vidjeti ako ima je kravata. 375 00:19:56,620 --> 00:20:00,700 To znači da su svi prostori su puni, ali nije bilo pobjednika još. 376 00:20:00,700 --> 00:20:03,580 Možemo proglasiti kravatu i biti učinjeno. 377 00:20:03,580 --> 00:20:10,530 Zatim pravi meat-- ako to je stroj igrač, 378 00:20:10,530 --> 00:20:14,120 ćemo dopustiti da Stroj igrač za pretraživanje 379 00:20:14,120 --> 00:20:19,500 kroz korištenje ove minimax algoritam, pronaći najbolji potez da se može. 380 00:20:19,500 --> 00:20:22,310 A onda ćemo staviti taj potez prema gore. 381 00:20:22,310 --> 00:20:27,640 >> Inače, ako je ljudski igrač, ćemo pročitati neke ulaz iz čovjeka. 382 00:20:27,640 --> 00:20:30,800 A onda je li to ljudski igrač ili stroj igrač, 383 00:20:30,800 --> 00:20:32,800 ćemo napraviti par malo komadići provjere pogreške, 384 00:20:32,800 --> 00:20:36,910 pobrinite se da ostane u granicama od stvarnih dimenzija ploče 385 00:20:36,910 --> 00:20:40,040 da imamo, pobrinite to da je prostor prazan, 386 00:20:40,040 --> 00:20:43,570 da nitko nije stavio komad tamo već. 387 00:20:43,570 --> 00:20:45,810 A onda ćemo samo staviti komad na ploči, 388 00:20:45,810 --> 00:20:51,550 promijenite uređaj na sljedeći sloj, a povećajte koliko poteza dogoditi. 389 00:20:51,550 --> 00:20:54,090 >> To je glavna petlja za naš Tic-Tac-Toe igre. 390 00:20:54,090 --> 00:20:57,000 391 00:20:57,000 --> 00:21:02,340 Minimax, onda je točno algoritam koji smo i prije. 392 00:21:02,340 --> 00:21:04,710 Jedini prilagodbe koje smo napravili kako bismo 393 00:21:04,710 --> 00:21:07,290 Možete igrati više dimenzionalni zajednice je imamo 394 00:21:07,290 --> 00:21:11,070 držati ovaj dodatni parametar zvan dubine. 395 00:21:11,070 --> 00:21:14,870 I dubina samo govori, ako sam traži prema dolje kroz tog stabla 396 00:21:14,870 --> 00:21:19,022 i ja se tako duboko izvan neke dubine razini 397 00:21:19,022 --> 00:21:20,730 da ja jednostavno ne želim ići dalje, 398 00:21:20,730 --> 00:21:25,630 Idem da se zaustavi i jednostavno ocijeniti ploču na tom mjestu. 399 00:21:25,630 --> 00:21:27,310 Ja ću provjeriti i vidjeti ako ima je pobjednik. 400 00:21:27,310 --> 00:21:29,240 Ako postoji pobjednik, ja ih vratiti. 401 00:21:29,240 --> 00:21:31,720 Inače, ja ću proći kroz petlju. 402 00:21:31,720 --> 00:21:34,380 A ja ću reći, za sve moguće lokacije 403 00:21:34,380 --> 00:21:38,080 da sam mogla uzeti kao moj potez, ja ću 404 00:21:38,080 --> 00:21:43,760 izgraditi hipotetski odbora koji uključuje svoj potez na tom brodu, 405 00:21:43,760 --> 00:21:45,960 a onda rekurzivno poziva Minimax. 406 00:21:45,960 --> 00:21:49,360 407 00:21:49,360 --> 00:21:53,900 >> Ako je moj potez, ja se nalaze onaj koji je dobio najveći broj bodova. 408 00:21:53,900 --> 00:21:58,710 Ako je moj protivnik potez, naći ćemo onaj koji je dobio minimalnu ocjenu. 409 00:21:58,710 --> 00:22:02,240 A sve ostalo je Samo vođenje evidencije. 410 00:22:02,240 --> 00:22:04,789 U redu, da vidimo taj rad. 411 00:22:04,789 --> 00:22:06,830 Zapravo, možda možemo dobili par volontera 412 00:22:06,830 --> 00:22:09,930 da se i igrati Tic-Tac-nožni prst. 413 00:22:09,930 --> 00:22:12,780 [Nečujan] jedan, a jedan više, dva, upravo tamo. 414 00:22:12,780 --> 00:22:13,550 Dođi gore. 415 00:22:13,550 --> 00:22:19,290 416 00:22:19,290 --> 00:22:23,650 >> Dakle, idemo naprijed i ponovno pokretanje to u potpunosti. 417 00:22:23,650 --> 00:22:24,150 Dakle, hi. 418 00:22:24,150 --> 00:22:24,920 >> PUBLIKA: Bok. 419 00:22:24,920 --> 00:22:25,420 >> SPEAKER: Koje je vaše ime? 420 00:22:25,420 --> 00:22:26,086 >> PUBLIKA: Gorav. 421 00:22:26,086 --> 00:22:26,840 SPEAKER: Gorav. 422 00:22:26,840 --> 00:22:27,800 >> PUBLIKA: Ja sam Layla. 423 00:22:27,800 --> 00:22:29,490 >> SPEAKER: I Layla i Layla, ispričavam se. 424 00:22:29,490 --> 00:22:30,384 Dođi gore. 425 00:22:30,384 --> 00:22:32,050 Gorav, ćemo imati idete prvi. 426 00:22:32,050 --> 00:22:37,710 I ja ću vas da se ne Strašno dobro Tic-Tac-Toe igrač. 427 00:22:37,710 --> 00:22:40,130 U redu, tako da sve je pritisak off na vas. 428 00:22:40,130 --> 00:22:44,660 Da vidimo, ipak, da je naš stroj Igrač zapravo može učiniti nešto pametno. 429 00:22:44,660 --> 00:22:45,310 Pa ići naprijed. 430 00:22:45,310 --> 00:22:49,830 Ideš upisati u kojem koordinatnom želite staviti svoje X u. 431 00:22:49,830 --> 00:22:55,170 A0, u redu, a stroj je otišao odmah i staviti svoj pečat u A1. 432 00:22:55,170 --> 00:22:56,640 >> Stavite O na brodu. 433 00:22:56,640 --> 00:22:58,970 U redu, sada ići naprijed. 434 00:22:58,970 --> 00:23:00,193 Gdje biste željeli otići? 435 00:23:00,193 --> 00:23:03,510 436 00:23:03,510 --> 00:23:05,090 C2. 437 00:23:05,090 --> 00:23:08,430 Naš stroj igrač uzima srednji kvadrat, blokirali vas. 438 00:23:08,430 --> 00:23:10,320 Tako da je dobar, pametna stvar za to učiniti. 439 00:23:10,320 --> 00:23:13,430 440 00:23:13,430 --> 00:23:14,250 Vi ste ga blokirali. 441 00:23:14,250 --> 00:23:15,210 To je izvrsno. 442 00:23:15,210 --> 00:23:16,390 Potrebno crte tamo. 443 00:23:16,390 --> 00:23:23,890 444 00:23:23,890 --> 00:23:30,430 >> I to će vas prisiliti da uzeti posljednji prostor, B0. 445 00:23:30,430 --> 00:23:32,220 A igra završava u kravatu. 446 00:23:32,220 --> 00:23:35,030 Ali to igrao razumna igra protiv tebe, zar ne? 447 00:23:35,030 --> 00:23:36,956 U redu, hvala vrlo velik, Gorav. 448 00:23:36,956 --> 00:23:40,860 >> [PLJESAK] 449 00:23:40,860 --> 00:23:44,723 >> U redu, Layla, idemo up igre na tebe ovdje. 450 00:23:44,723 --> 00:23:46,940 >> PUBLIKA: Oh, lijepo. 451 00:23:46,940 --> 00:23:49,950 >> SPEAKER: Idemo dati što četiri strane četiri Tic-Tac-nožni prst. 452 00:23:49,950 --> 00:23:54,760 Sada, u četiri po četiri, morate pobijediti s četiri u nizu, a ne tri u nizu. 453 00:23:54,760 --> 00:23:56,135 I to je sve tvoje. 454 00:23:56,135 --> 00:24:02,180 455 00:24:02,180 --> 00:24:04,420 Dakle, Layla je D1. 456 00:24:04,420 --> 00:24:11,730 Sada ćemo pratiti naše računalo igrača ovdje. 457 00:24:11,730 --> 00:24:16,910 Tri od tri Tic-Tac-Toe je vrsta stvar koja je lako za sve nas. 458 00:24:16,910 --> 00:24:21,960 No, to je još uvijek lijepo vidjeti Računalo igrač čineći pametne poteze. 459 00:24:21,960 --> 00:24:23,725 Četiri od četiri dobiva biti malo trickier. 460 00:24:23,725 --> 00:24:42,960 461 00:24:42,960 --> 00:24:44,230 >> Lijepo učinili. 462 00:24:44,230 --> 00:24:46,210 U redu, Layla je završio. 463 00:24:46,210 --> 00:24:48,270 Oh, i trebali smo završio tamo. 464 00:24:48,270 --> 00:24:51,870 Ali neka je učiniti još jedan ovdje. 465 00:24:51,870 --> 00:24:53,480 Dakle Layla, hvala. 466 00:24:53,480 --> 00:24:55,112 Lijepo učinili. 467 00:24:55,112 --> 00:24:57,517 >> [PLJESAK] 468 00:24:57,517 --> 00:25:00,410 469 00:25:00,410 --> 00:25:04,750 >> Dakle, naš Tic-Tac-Toe igrač ide kroz i nađe mjesta, 470 00:25:04,750 --> 00:25:07,040 rješava ih koristeći ovaj Minimax. 471 00:25:07,040 --> 00:25:08,990 I ja sam imao postavke dubine na to da njega 472 00:25:08,990 --> 00:25:11,010 ne bi pokrenuti prebrzo, što je vjerojatno razlog zašto 473 00:25:11,010 --> 00:25:16,790 Layla je bio u mogućnosti ići naprijed lijepo kao što je učinio, a učinio je vrlo dobro. 474 00:25:16,790 --> 00:25:20,450 No, ti sustavi koji samo proći i silu 475 00:25:20,450 --> 00:25:23,870 ići dublje i dublje, i dublje, i držati pronalaženju rješenja 476 00:25:23,870 --> 00:25:29,890 da im je potrebno, te vrste sustava su vrlo uspješni u njih, dobro, 477 00:25:29,890 --> 00:25:32,700 standardne igre na ploči. 478 00:25:32,700 --> 00:25:37,060 >> A u stvari, ako gledamo tri za tri Tic-Tac-Toe igre, 479 00:25:37,060 --> 00:25:40,040 to je u osnovi riješeno problema. 480 00:25:40,040 --> 00:25:45,430 I to je divno dijagram od Randall Munroe na Xkcd, 481 00:25:45,430 --> 00:25:52,130 prikazuje koje se kreću trebali poduzeti, s obzirom protivnikove poteze. 482 00:25:52,130 --> 00:25:56,420 To je nešto što smo mogli jednostavno odrediti unaprijed. 483 00:25:56,420 --> 00:26:00,180 No, što se događa dok smo dobili više složene igre, više zamršen igre, 484 00:26:00,180 --> 00:26:05,690 gdje postoje veći zajednice više, mogućnosti, dublja strategija? 485 00:26:05,690 --> 00:26:09,660 >> Ispada da je ovaj silu traži dalje 486 00:26:09,660 --> 00:26:14,150 radi prilično dobro, osim kada dođete do točke 487 00:26:14,150 --> 00:26:19,230 gdje je to stablo je tako velik da se ne može sve to predstavlja. 488 00:26:19,230 --> 00:26:22,370 489 00:26:22,370 --> 00:26:28,280 Ako ne možete izračunati cijeli stablo, kada ne možete ići naprijed i gurnite 490 00:26:28,280 --> 00:26:32,204 sebe do točke gdje ste dobivši cijeli stabla u memoriji, 491 00:26:32,204 --> 00:26:34,370 ili možete li ga dobiti u memoriji i da će samo 492 00:26:34,370 --> 00:26:39,200 odvesti put predug za pretraživanje to, što morate učiniti nešto pametnije. 493 00:26:39,200 --> 00:26:42,620 494 00:26:42,620 --> 00:26:46,450 >> Da bi to postigli, te morate učiniti dvije stvari. 495 00:26:46,450 --> 00:26:49,030 Prvo, morate pronaći neke način ograničavati vašu dubinu. 496 00:26:49,030 --> 00:26:50,370 Pa, to je u redu. 497 00:26:50,370 --> 00:26:55,740 Možemo pronaći neke lijepe, minimum i reći, možete samo ići tako duboko. 498 00:26:55,740 --> 00:27:00,890 Ali kada to učinite, to vam znači su ove djelomično nepotpune glačanje. 499 00:27:00,890 --> 00:27:04,770 I morate birati, ne volim ovo je djelomično nepotpuna odbora, 500 00:27:04,770 --> 00:27:08,600 ili to djelomično nepotpuna odbora? 501 00:27:08,600 --> 00:27:11,910 >> A na naša četiri strane četiri Tic-Tac-Toe igre, 502 00:27:11,910 --> 00:27:15,240 naše računalo igrač dobio dolje na dno i to rekao, 503 00:27:15,240 --> 00:27:16,800 Imam dvije različite zajednice. 504 00:27:16,800 --> 00:27:17,940 Niti jedna pobjeda. 505 00:27:17,940 --> 00:27:19,120 Niti jedan gubitak. 506 00:27:19,120 --> 00:27:22,070 Ni jedna je kravata. 507 00:27:22,070 --> 00:27:24,100 Kako odabrati između njih? 508 00:27:24,100 --> 00:27:26,200 I to nije imati pametan način da radi. 509 00:27:26,200 --> 00:27:28,910 510 00:27:28,910 --> 00:27:32,850 >> Vidimo ove vrste Procjena se dogoditi sve vrijeme 511 00:27:32,850 --> 00:27:35,290 kao što smo dobili u složenije igre. 512 00:27:35,290 --> 00:27:37,600 Šah je sjajan primjer. 513 00:27:37,600 --> 00:27:41,550 U šahu, imamo prvo od svega, veći odbora. 514 00:27:41,550 --> 00:27:43,370 Imamo daleko više komada. 515 00:27:43,370 --> 00:27:47,930 A pozicioniranje tih komada a način na koji su ti komadi premjestiti 516 00:27:47,930 --> 00:27:50,370 je kritički važno. 517 00:27:50,370 --> 00:27:53,700 Dakle, ako želim koristiti Minimax, Moram biti u mogućnosti odrediti 518 00:27:53,700 --> 00:27:58,240 i reći, ovaj forum, gdje nitko nije osvojio ili izgubio još, 519 00:27:58,240 --> 00:28:04,310 je nekako bolje od ovoga drugoga odbora, u kojem nitko nije pobijedio ili izgubio. 520 00:28:04,310 --> 00:28:06,740 >> Da biste to postigli, ja mogu učiniti stvari kao što ja mogu samo 521 00:28:06,740 --> 00:28:10,787 brojati koliko komada moram i koliko komada imate? 522 00:28:10,787 --> 00:28:12,870 Ili sam možda dati drugačiji komada različite točke. 523 00:28:12,870 --> 00:28:14,420 Moja kraljica vrijedi 20 bodova. 524 00:28:14,420 --> 00:28:16,500 Vaš pijun vrijedi jedan bod. 525 00:28:16,500 --> 00:28:18,920 Tko ima više bodova ukupno? 526 00:28:18,920 --> 00:28:22,300 Ili sam možda uzeti u obzir stvari kao što su, koji je dobio bolju poziciju na ploči? 527 00:28:22,300 --> 00:28:26,820 Čiji je to zaokret sljedeći, sve što mogu 528 00:28:26,820 --> 00:28:31,220 ne procijeniti točnije koji od tih mogućnosti 529 00:28:31,220 --> 00:28:34,660 Bolje je bez iscrpno obzirom 530 00:28:34,660 --> 00:28:36,565 svaki potez koji bi mogao doći nakon toga. 531 00:28:36,565 --> 00:28:39,740 532 00:28:39,740 --> 00:28:45,130 >> Sada bi taj posao, jedna od stvari koje ih godina 533 00:28:45,130 --> 00:28:48,680 će postati jako važno za nas nije samo kreće ravno 534 00:28:48,680 --> 00:28:53,720 do određene dubine granica, ali biti u mogućnosti reći, 535 00:28:53,720 --> 00:28:59,380 jedna od tih ideja koje sam ima toliko loše da je to 536 00:28:59,380 --> 00:29:02,280 Ne vrijedi s obzirom na sve moguće načine 537 00:29:02,280 --> 00:29:06,680 da stvari mogu ići od zla na gore. 538 00:29:06,680 --> 00:29:12,760 Da biste to postigli, mi ćemo dodati u Minimax načelo naziva alph-P. 539 00:29:12,760 --> 00:29:16,340 I alfa-beta, kaže, ako imate loša ideja, 540 00:29:16,340 --> 00:29:22,840 nemojte gubiti vrijeme pokušavajući saznati točno koliko je to loše. 541 00:29:22,840 --> 00:29:24,990 >> Evo što ćemo učiniti. 542 00:29:24,990 --> 00:29:28,620 Idemo uzeti isti Principi koje smo imali prije, 543 00:29:28,620 --> 00:29:32,200 isti minimax tipa traženja, samo smo 544 00:29:32,200 --> 00:29:37,570 ide pratiti, ne samo od Stvarne vrijednosti koje imamo, ali ćemo 545 00:29:37,570 --> 00:29:41,440 pratiti najbolji mogući Vrijednost da sam mogao dobiti, 546 00:29:41,440 --> 00:29:45,700 a najgore moguće Ishod sam mogao. 547 00:29:45,700 --> 00:29:50,470 I svaki put najgore moguće stvar je u potrazi vjerojatno, 548 00:29:50,470 --> 00:29:52,694 Ja ću napustiti taj dio stabla. 549 00:29:52,694 --> 00:29:54,610 A neću ni zamarati gledajući ga više. 550 00:29:54,610 --> 00:29:57,680 551 00:29:57,680 --> 00:30:02,600 >> U redu, zamislite da počnemo s tom istom točnim igre stabla. 552 00:30:02,600 --> 00:30:05,200 A sada ćemo ići opet dolje, sve na putu prema dolje 553 00:30:05,200 --> 00:30:07,200 u tom donjem lijevom kutu. 554 00:30:07,200 --> 00:30:11,180 I u tom donjem lijevom kutu, mi izgled i ocjenjujemo ovaj forum. 555 00:30:11,180 --> 00:30:15,700 Možda je četiri od četiri Tic-Tac-Toe odbora, ili možda je šahovskoj ploči. 556 00:30:15,700 --> 00:30:18,620 Ali mi gledamo na njega, a procjenjujemo da, i dobili smo vrijednost od osam. 557 00:30:18,620 --> 00:30:22,290 558 00:30:22,290 --> 00:30:28,030 >> U tom trenutku, znamo da je ćemo dobiti barem 559 00:30:28,030 --> 00:30:32,380 osam bodova iz ovog dna odluke. 560 00:30:32,380 --> 00:30:36,620 Nije bitno što druga dva su, da je sedam i to dvije. 561 00:30:36,620 --> 00:30:38,580 Oni mogu biti bilo vrijednosti oni su htjeli da bude. 562 00:30:38,580 --> 00:30:41,279 Idemo dobiti na Najmanje osam bodova. 563 00:30:41,279 --> 00:30:43,070 U redu, ali smo mogli ići naprijed i provjeriti. 564 00:30:43,070 --> 00:30:45,080 Možda je jedan od njih je bolji od osam. 565 00:30:45,080 --> 00:30:46,000 >> Mi gledamo na sedam. 566 00:30:46,000 --> 00:30:46,910 Je li bolji od osam? 567 00:30:46,910 --> 00:30:48,680 Ne, to ne mijenja Mišljenja smo na sve. 568 00:30:48,680 --> 00:30:49,460 Mi gledamo na dva. 569 00:30:49,460 --> 00:30:50,543 Je li bolji od osam? 570 00:30:50,543 --> 00:30:52,580 Ne, to ne mijenja Mišljenja smo na sve. 571 00:30:52,580 --> 00:30:55,480 Dakle, sada znamo da smo iscrpili sve mogućnosti tamo. 572 00:30:55,480 --> 00:30:58,330 Nećemo dobiti ništa bolji od osam. 573 00:30:58,330 --> 00:31:01,310 Ćemo dobiti točno osam. 574 00:31:01,310 --> 00:31:03,825 >> I tako smo promijeniti taj čvor i recimo, da je sada sigurna. 575 00:31:03,825 --> 00:31:07,010 576 00:31:07,010 --> 00:31:10,270 Idemo jednu razinu iznad toga. 577 00:31:10,270 --> 00:31:13,820 A sada znamo nešto O toj razini minimizacije. 578 00:31:13,820 --> 00:31:18,560 Znamo da nikada si idući u dobiti više od osam poena, ako idemo prema dolje 579 00:31:18,560 --> 00:31:20,910 tom smjeru. 580 00:31:20,910 --> 00:31:22,980 Jer, čak i ako oni druge dvije grane izadju 581 00:31:22,980 --> 00:31:26,170 biti fantastičan i vrijedan tisuće bodova svaki, 582 00:31:26,170 --> 00:31:31,666 naš protivnik će nam dati minimalno, i dati nam osam. 583 00:31:31,666 --> 00:31:32,790 Dobro, dobro, neka je vidjeti. 584 00:31:32,790 --> 00:31:35,190 Mi ćemo nastaviti niz taj put. 585 00:31:35,190 --> 00:31:38,490 Idemo do tog sredini s lijeve strane. 586 00:31:38,490 --> 00:31:40,560 Gledamo se i vidimo tamo je devet. 587 00:31:40,560 --> 00:31:45,590 Znamo da ćemo dobiti najmanje devet točaka po silazio 588 00:31:45,590 --> 00:31:47,720 da srednji put. 589 00:31:47,720 --> 00:31:52,110 I u ovom trenutku, možemo samo pauzirati. 590 00:31:52,110 --> 00:31:56,910 I možemo reći, sam znate u razini gore, 591 00:31:56,910 --> 00:32:01,160 Idem da se ne više od osam bodove ide dolje ovaj smjer. 592 00:32:01,160 --> 00:32:05,670 Ali, ako sam otišao dolje u sredini Put umjesto lijeve staze, 593 00:32:05,670 --> 00:32:08,980 Ja bih dobiti barem devet bodova. 594 00:32:08,980 --> 00:32:13,590 >> Moj protivnik nikada neće neka mi ići dolje da srednji put. 595 00:32:13,590 --> 00:32:14,650 Oni su dobili odabrati. 596 00:32:14,650 --> 00:32:18,140 I oni će izabrati Put u lijevo prema osam, 597 00:32:18,140 --> 00:32:23,650 umjesto po sredini prema što je najmanje devet bodova. 598 00:32:23,650 --> 00:32:25,334 Dakle, u tom trenutku, ja ću prestati. 599 00:32:25,334 --> 00:32:26,500 A ja ću reći, znate što? 600 00:32:26,500 --> 00:32:29,990 Ne morate tražiti više u tom smjeru. 601 00:32:29,990 --> 00:32:32,270 Jer ja nikada neću doći. 602 00:32:32,270 --> 00:32:36,660 >> Ja mogu preskočiti taj jedan, i ja mogu preskočiti tu šest, 603 00:32:36,660 --> 00:32:39,720 jer to nikada neće dogoditi. 604 00:32:39,720 --> 00:32:42,470 Dakle, ja ću otići dolje i ja ću razmislite sljedeći mogućnost. 605 00:32:42,470 --> 00:32:44,830 Idem dolje, a ja kažem, vidim dva. 606 00:32:44,830 --> 00:32:47,125 Znam da sam doći do ovdje, ja sam će dobiti najmanje dva. 607 00:32:47,125 --> 00:32:49,810 608 00:32:49,810 --> 00:32:50,470 U REDU. 609 00:32:50,470 --> 00:32:51,520 Ja zadržati ide. 610 00:32:51,520 --> 00:32:52,440 Vidim četiri. 611 00:32:52,440 --> 00:32:54,920 Znam da ću dobiti barem četiri. 612 00:32:54,920 --> 00:32:57,200 Ima još puno između četiri i osam, ipak. 613 00:32:57,200 --> 00:32:58,454 Tako sam zadržati ide. 614 00:32:58,454 --> 00:32:59,870 Gledam dolje i vidim da postoji jedan. 615 00:32:59,870 --> 00:33:01,614 U redu, znam da ako Idem dolje ovaj put, 616 00:33:01,614 --> 00:33:03,280 Ja ću biti u mogućnosti odabrati četiri. 617 00:33:03,280 --> 00:33:06,540 618 00:33:06,540 --> 00:33:08,980 Što je moj protivnik će učiniti? 619 00:33:08,980 --> 00:33:12,310 Između nešto što mi daje osam, nešto što mi daje četiri, 620 00:33:12,310 --> 00:33:14,730 i nešto što daje mi najmanje devet, 621 00:33:14,730 --> 00:33:17,550 dobro, on će mi dati četiri. 622 00:33:17,550 --> 00:33:20,110 I sada znam Na samom vrhu, idem 623 00:33:20,110 --> 00:33:23,145 biti u mogućnosti da biste dobili najmanje Četiri boda iz ove igre. 624 00:33:23,145 --> 00:33:27,030 625 00:33:27,030 --> 00:33:30,900 >> Cijela ideja alfa-beta je odsječen dijelovima stabla tako 626 00:33:30,900 --> 00:33:32,530 da ja ne gledati u njih više. 627 00:33:32,530 --> 00:33:35,964 No, to još uvijek izgleda kao da sam bio gledajući puno drveta. 628 00:33:35,964 --> 00:33:36,880 Idemo nastaviti padati. 629 00:33:36,880 --> 00:33:38,305 Mi ćemo ići dolje sljedeći sada. 630 00:33:38,305 --> 00:33:39,680 Dolje na dnu, sam pronaći jedan. 631 00:33:39,680 --> 00:33:41,030 Znam da ću dobiti barem jednu. 632 00:33:41,030 --> 00:33:41,690 Ja držati obličje. 633 00:33:41,690 --> 00:33:42,625 >> Nađem tri. 634 00:33:42,625 --> 00:33:44,250 Znam da ću dobiti barem tri. 635 00:33:44,250 --> 00:33:44,840 Ja zadržati ide. 636 00:33:44,840 --> 00:33:45,660 Nađem pet. 637 00:33:45,660 --> 00:33:49,760 Znam da ću dobiti pet ako bi se u tom putu. 638 00:33:49,760 --> 00:33:52,580 I ja također znam onda da je moj protivnik, ako sam 639 00:33:52,580 --> 00:33:55,510 odabrati sredine tri velika izbori, 640 00:33:55,510 --> 00:34:01,440 on će mi dati nešto što je pet ili manje. 641 00:34:01,440 --> 00:34:02,150 >> U REDU. 642 00:34:02,150 --> 00:34:03,400 Ja mogu zadržati ide tamo. 643 00:34:03,400 --> 00:34:06,470 Ja mogu pogledati dolje i ja Može se reći, što ću 644 00:34:06,470 --> 00:34:08,239 dobiti ako idem po sredini staze? 645 00:34:08,239 --> 00:34:09,909 Idem dobiti, dobro, tri tamo. 646 00:34:09,909 --> 00:34:12,080 Idem nešto to je najmanje tri. 647 00:34:12,080 --> 00:34:16,030 Ima još stvari između tri i pet, pa sam držati obličje. 648 00:34:16,030 --> 00:34:20,203 Oh, devet, ja ću svakako uzeti preko tri. 649 00:34:20,203 --> 00:34:22,744 Idem dobiti najmanje devet ako idem dolje da srednji put. 650 00:34:22,744 --> 00:34:25,530 651 00:34:25,530 --> 00:34:31,010 >> Sada moj protivnik zaustavlja i kaže: izgleda, nema smisla više. 652 00:34:31,010 --> 00:34:33,669 Znam da je moj minimizacija protivnik, on je 653 00:34:33,669 --> 00:34:36,210 će mi dati stvar koja je manji ili jednak do pet, 654 00:34:36,210 --> 00:34:39,030 nego stvar koja je veća od ili jednaka do devet. 655 00:34:39,030 --> 00:34:39,530 Ja zaustaviti. 656 00:34:39,530 --> 00:34:40,779 Ne gledati više na to. 657 00:34:40,779 --> 00:34:43,280 Ja zadržati ide. 658 00:34:43,280 --> 00:34:44,850 >> Gledam dolje na ovom jednom. 659 00:34:44,850 --> 00:34:46,370 Dolje na dnu, nađem šest. 660 00:34:46,370 --> 00:34:50,040 Znam da ću dobiti barem šest. 661 00:34:50,040 --> 00:34:53,130 I što mogu učiniti? 662 00:34:53,130 --> 00:34:54,877 Ja mogu zaustaviti. 663 00:34:54,877 --> 00:34:57,460 Budući da je izbor između nešto što je najmanje šest 664 00:34:57,460 --> 00:34:59,250 i nešto što je manje od pet, on je 665 00:34:59,250 --> 00:35:02,570 će mi dati ono to je manje od pet. 666 00:35:02,570 --> 00:35:04,779 A sada znam da ću da se upravo taj izbor. 667 00:35:04,779 --> 00:35:06,195 Idem dobiti taj pet izbora. 668 00:35:06,195 --> 00:35:08,980 669 00:35:08,980 --> 00:35:10,010 >> Vraćam se na vrh. 670 00:35:10,010 --> 00:35:11,450 Što ću birati između nečega 671 00:35:11,450 --> 00:35:14,449 To je veće od ili jednako do četiri, ili nešto što je jednako pet? 672 00:35:14,449 --> 00:35:17,140 Idem uzeti nešto to je najmanje pet. 673 00:35:17,140 --> 00:35:20,490 Idem dolje zadnji put, sve put do dna. 674 00:35:20,490 --> 00:35:21,260 Postoji jedan. 675 00:35:21,260 --> 00:35:23,410 U redu, barem ću dobiti jedan bod. 676 00:35:23,410 --> 00:35:24,427 Ja zadržati ide. 677 00:35:24,427 --> 00:35:25,760 Dva, oh, to je bolje od jedne. 678 00:35:25,760 --> 00:35:27,100 Idem dobiti najmanje dva. 679 00:35:27,100 --> 00:35:28,610 Nađem tri. 680 00:35:28,610 --> 00:35:31,450 Znam da ću dobiti tri. 681 00:35:31,450 --> 00:35:34,690 >> I točka iznad toga, moj protivnik ide 682 00:35:34,690 --> 00:35:38,540 da mi daju nešto što je manji ili jednak do tri. 683 00:35:38,540 --> 00:35:40,940 I sad ja mogu zaustaviti. 684 00:35:40,940 --> 00:35:46,290 Budući da u izbor između mene se moći dobiti pet i moj protivnik 685 00:35:46,290 --> 00:35:52,290 da mi nešto manje od tri, Ja sam uvijek uzeti da je pet. 686 00:35:52,290 --> 00:35:56,810 Pa ja ne procjenjuju da je donji dio stabla na sve. 687 00:35:56,810 --> 00:35:59,470 >> Sada, to može činiti manje. 688 00:35:59,470 --> 00:36:03,630 Ali kad malo komadići aritmetika, veći od i manje od, 689 00:36:03,630 --> 00:36:10,640 Možete izrezati daleko čitave dijelove to eksponencijalno raste stablo, 690 00:36:10,640 --> 00:36:14,280 koji vodi u veliki iznos štednje, štednja 691 00:36:14,280 --> 00:36:17,630 koji su dovoljno veliki da sam Možete početi igrati natječe 692 00:36:17,630 --> 00:36:21,330 na više složenih igara. 693 00:36:21,330 --> 00:36:27,030 >> U redu, ako ćemo gledati na veličinu i složenost različitih igara, 694 00:36:27,030 --> 00:36:29,470 Tic-Tac-Toe je bio naš jednostavan primjer. 695 00:36:29,470 --> 00:36:32,150 Imamo malu ploču, tri od tri. 696 00:36:32,150 --> 00:36:36,030 Mi smo dobili, najviše, u prosjeku oko četiri različita izbora 697 00:36:36,030 --> 00:36:38,440 kao što smo proći kroz igru. 698 00:36:38,440 --> 00:36:42,720 Imamo negdje oko 10 do Peti mogući različiti lišće. 699 00:36:42,720 --> 00:36:45,200 I izgradnju Tic-Tac-nožni prst igrač, dobro, samo mi je to učinio. 700 00:36:45,200 --> 00:36:47,460 To je lako. 701 00:36:47,460 --> 00:36:49,890 >> Ako idemo do nešto više kompleks, kao Connect Four. 702 00:36:49,890 --> 00:36:53,170 Sjećate li se ove igra u kojoj ispadne malo žetona u? 703 00:36:53,170 --> 00:36:58,490 To je šest od sedam odbora, Ne da mnogo veći, još uvijek 704 00:36:58,490 --> 00:37:00,770 ima istu grananja faktor kao Tic-Tac-nožni prst. 705 00:37:00,770 --> 00:37:05,410 Imam oko četiri izbora gdje mogu staviti stvari u. 706 00:37:05,410 --> 00:37:10,760 Ali sada, imam puno više vodi, 10 do 21. snage. 707 00:37:10,760 --> 00:37:14,440 To je nešto što je lako dovoljno da ga riješiti odmah. 708 00:37:14,440 --> 00:37:17,560 >> Dama, više vas complex-- dobio osam od osam odbora. 709 00:37:17,560 --> 00:37:20,570 Ti si samo na pola ih u bilo koje vrijeme, ipak. 710 00:37:20,570 --> 00:37:24,930 Imaš grananje čimbenik koji je oko 2.8. 711 00:37:24,930 --> 00:37:28,160 Pa, imamo par potezi koje možete poduzeti. 712 00:37:28,160 --> 00:37:33,870 Imaš oko 10 do 31. lišća, veće i veće, a veće prostore. 713 00:37:33,870 --> 00:37:37,340 Kao Moram pretraživanje one veće i veće prostore, 714 00:37:37,340 --> 00:37:42,220 to je kad stvari poput alfa-beta i biti u mogućnosti odsjeći cijele grane 715 00:37:42,220 --> 00:37:44,420 postaje bitan. 716 00:37:44,420 --> 00:37:47,440 >> Sada, dame je lako u 1992. 717 00:37:47,440 --> 00:37:51,400 Računalni program pod nazivom Chinook pobijedio svjetske dame 718 00:37:51,400 --> 00:37:53,590 prvak, Marion Tinsley. 719 00:37:53,590 --> 00:37:57,260 I od tada, nema ljudski gospodar igrač 720 00:37:57,260 --> 00:38:02,290 bio u mogućnosti pobijediti najbolji računalne sustave. 721 00:38:02,290 --> 00:38:06,570 Ako gledamo nešto poput šaha, sada opet, imamo osam od osam odbora. 722 00:38:06,570 --> 00:38:09,870 No, imamo mnogo više kompleks komada, mnogo složenije pokrete. 723 00:38:09,870 --> 00:38:14,610 Imamo grananje faktor od oko 35, 35 mogućih poteza u prosjeku 724 00:38:14,610 --> 00:38:20,030 da ja mogu uzeti i stanje Prostor, broj listova 725 00:38:20,030 --> 00:38:28,950 koja je narasla na 10 do 123. vlasti, enorman broj mogućnosti. 726 00:38:28,950 --> 00:38:35,570 >> Svejedno moderni procesori su u mogućnosti to učiniti uspješno. 727 00:38:35,570 --> 00:38:43,900 U 1995., a zatim u 1997, računala Program pod nazivom Deep Blue sagradio je IBM 728 00:38:43,900 --> 00:38:49,601 koji je vodio na divovski superračunalo pobijediti trenutni svjetski prvak, 729 00:38:49,601 --> 00:38:50,225 Gari Kasparov. 730 00:38:50,225 --> 00:38:54,000 731 00:38:54,000 --> 00:38:56,650 Ovo je bila prekretnica. 732 00:38:56,650 --> 00:39:00,620 Danas je, međutim, da je ista obrada Snaga sjedi na mom MacBook. 733 00:39:00,620 --> 00:39:04,180 734 00:39:04,180 --> 00:39:06,440 >> Brzina obrade čuva sve brže i brže. 735 00:39:06,440 --> 00:39:09,500 Možemo procijeniti sve više i više odbori brže i brže. 736 00:39:09,500 --> 00:39:14,550 Ali što je još važnije, imamo bolje evaluacije funkcije i bolje obrezivanje 737 00:39:14,550 --> 00:39:15,460 metode. 738 00:39:15,460 --> 00:39:19,560 Tako možemo pretražiti Prostor složenije. 739 00:39:19,560 --> 00:39:22,350 Najveći uprave igre koje možemo sjetiti, 740 00:39:22,350 --> 00:39:26,310 nešto slično Idi to dobio 19 po 19 odbora, 741 00:39:26,310 --> 00:39:32,490 sada odjednom, mi smo iza točke gdje računalni sustavi mogu pobijediti. 742 00:39:32,490 --> 00:39:34,530 Nema računalna Sustav vani 743 00:39:34,530 --> 00:39:38,880 koji može pobijediti profesionalni Go igrača. 744 00:39:38,880 --> 00:39:45,000 Najbolji sustavi danas se svrstavaju oko vrsta dobre amaterskoj razini. 745 00:39:45,000 --> 00:39:49,285 Dakle, tu je još vrlo malo van nema da ne može doći do još. 746 00:39:49,285 --> 00:39:51,840 747 00:39:51,840 --> 00:39:55,360 >> U redu, to tradicionalne igre na ploči, 748 00:39:55,360 --> 00:39:58,560 ove vrste sustava gdje smo izgraditi ovaj Minimax, bilo da je dobio 749 00:39:58,560 --> 00:40:06,300 alfa-beta ili ne, te algoritama rada jer postoje određena ograničenja. 750 00:40:06,300 --> 00:40:08,520 Imamo savršen informacije o svijetu. 751 00:40:08,520 --> 00:40:11,690 Mi znamo gdje su svi komadi su. 752 00:40:11,690 --> 00:40:13,570 Svijet je statična. 753 00:40:13,570 --> 00:40:16,220 Nitko ne dobiva za pomicanje komada oko dok sam 754 00:40:16,220 --> 00:40:20,640 sjedi tamo misleći, da je moj red. 755 00:40:20,640 --> 00:40:23,140 Postoji akcija prostor koji je diskretni. 756 00:40:23,140 --> 00:40:26,900 Ja mogu staviti moj pješaka ovdje ili mogu staviti moj pijun ovdje. 757 00:40:26,900 --> 00:40:30,520 Ne smijem staviti moje pješaka na crta između dva kvadrata. 758 00:40:30,520 --> 00:40:34,430 759 00:40:34,430 --> 00:40:36,520 >> I konačno, akcije su deterministička. 760 00:40:36,520 --> 00:40:39,790 Znam da ako kažem, top na viteza tri, 761 00:40:39,790 --> 00:40:44,660 moja vrana će završiti na viteza tri, koliko god je to valjan potez. 762 00:40:44,660 --> 00:40:47,830 Nema neizvjesnost o tome. 763 00:40:47,830 --> 00:40:52,490 Sada, kao što sam ići na više različite vrste igara, 764 00:40:52,490 --> 00:40:55,960 moramo razbiti one pretpostavke. 765 00:40:55,960 --> 00:41:00,020 >> Što ako idem na nešto poput klasičnih video igara? 766 00:41:00,020 --> 00:41:04,180 Evo izbor video Igre iz Atari 2600. 767 00:41:04,180 --> 00:41:05,180 Što ja imam tamo? 768 00:41:05,180 --> 00:41:08,440 Imam Frogger, prostor Invaders, Zamka, i Pac-Man. 769 00:41:08,440 --> 00:41:11,290 770 00:41:11,290 --> 00:41:14,840 Koje vrste okruženja moram sad ovdje? 771 00:41:14,840 --> 00:41:16,900 Koji od ovih pretpostavki moram razbiti? 772 00:41:16,900 --> 00:41:19,410 773 00:41:19,410 --> 00:41:21,570 >> Pa, to ovisi o igri. 774 00:41:21,570 --> 00:41:28,170 Mogao sam igrati šah na 2600, a to bi bilo kao što je bio prije. 775 00:41:28,170 --> 00:41:33,020 Za većinu tih sustava, tu je cjelovito znanje o svijetu. 776 00:41:33,020 --> 00:41:36,300 Postoji potpunosti deterministički akcije. 777 00:41:36,300 --> 00:41:38,330 Ali obično, u svijetu više nije statična. 778 00:41:38,330 --> 00:41:41,970 To je, dok sam sjedio čekao, nešto se kreće. 779 00:41:41,970 --> 00:41:44,320 Duhovi dolaze po mene. 780 00:41:44,320 --> 00:41:46,570 Škorpion je mene ispod. 781 00:41:46,570 --> 00:41:48,880 The Space Invaders su dolazi bliže i bliže. 782 00:41:48,880 --> 00:41:54,020 783 00:41:54,020 --> 00:41:55,510 Koliko dobro možemo učiniti protiv njih? 784 00:41:55,510 --> 00:41:58,640 785 00:41:58,640 --> 00:42:02,790 >> Prije nekoliko godina, Google je projekt pod nazivom 786 00:42:02,790 --> 00:42:12,030 DeepMind, gdje su obučeni računala Program igrati Atari 2600 igre. 787 00:42:12,030 --> 00:42:16,120 A ako mislite da je to nije ozbiljna posao, rezultati njihove studije 788 00:42:16,120 --> 00:42:19,920 objavljeni su u časopisu Nature, tako samo oko kao dobar publikacija 789 00:42:19,920 --> 00:42:22,500 kao što eventualno mogu dobiti. 790 00:42:22,500 --> 00:42:24,340 A evo kako su se dobro izvedena. 791 00:42:24,340 --> 00:42:29,220 >> Oni imaju algoritam koji sjedi i gledao samo na zaslon ulaza. 792 00:42:29,220 --> 00:42:34,080 On je dobio nikakve upute god o pravilima igre. 793 00:42:34,080 --> 00:42:42,610 I to je trebao shvatiti, temelji svoju ocjenu, koliko dobro to radi. 794 00:42:42,610 --> 00:42:46,560 To je sustav koji se koristi nešto zove učenje pojačanje. 795 00:42:46,560 --> 00:42:48,380 To jest, ona je pogledala s rezultatom. 796 00:42:48,380 --> 00:42:51,620 A ako je dobio dobre ocjene, on je rekao: I nemojte zaboraviti te stvari. 797 00:42:51,620 --> 00:42:53,310 A ja trebao učiniti oni opet. 798 00:42:53,310 --> 00:42:56,450 A ako je dobio lošu ocjenu, on je rekao: Ne treba raditi one stvari opet. 799 00:42:56,450 --> 00:42:59,750 800 00:42:59,750 --> 00:43:03,430 >> Ovo je predstava od onih obučenih sustava 801 00:43:03,430 --> 00:43:07,490 smiju igrati za nekoliko sati na svakoj utakmici, 802 00:43:07,490 --> 00:43:12,490 u odnosu na profesionalne igrače. 803 00:43:12,490 --> 00:43:19,670 Dakle, za sve igre koje su na lijevoj strani ove linije, 804 00:43:19,670 --> 00:43:25,920 Ovaj self-obučeni računalni program nadmašio profesionalne igrače. 805 00:43:25,920 --> 00:43:29,690 A za sve do pravo, profesionalni igrači 806 00:43:29,690 --> 00:43:30,920 su još uvijek najbolji. 807 00:43:30,920 --> 00:43:34,040 808 00:43:34,040 --> 00:43:36,850 Za nešto što je znao ništa o pravilima, da je 809 00:43:36,850 --> 00:43:43,020 ništa o strukturi znali igre, to je impresivan nastup. 810 00:43:43,020 --> 00:43:45,660 I to je ono što smo u stanju učiniti danas. 811 00:43:45,660 --> 00:43:50,239 >> U redu, vi kažete, ali ako smo razmišljati o AI u igrama, 812 00:43:50,239 --> 00:43:52,530 obično mislimo o stvari koje možemo zapravo 813 00:43:52,530 --> 00:43:54,180 sjesti i igrati protiv. 814 00:43:54,180 --> 00:43:58,760 Ako sam sjesti i ja igram StarCraft, ili igram Besplatno sito, 815 00:43:58,760 --> 00:44:01,870 računalo protivnik je Osoba kontrolu Zerg, 816 00:44:01,870 --> 00:44:06,770 ili upravljanje drugu civilizaciju. 817 00:44:06,770 --> 00:44:11,920 Kako ti igrači zapravo pronaći njihove poteze? 818 00:44:11,920 --> 00:44:18,810 >> Pa, ove igre su strukturirane mnogo na isti način kao i naše igre na ploči, 819 00:44:18,810 --> 00:44:22,250 ove igre koje ćemo kolektivno nazivaju četiri X Games, 820 00:44:22,250 --> 00:44:26,040 istraživanje, expand-- zaboraviti one. 821 00:44:26,040 --> 00:44:26,980 Što su oni? 822 00:44:26,980 --> 00:44:32,150 Istražite, proširiti, i ugasiti, Mislim da je zadnji. 823 00:44:32,150 --> 00:44:36,060 Ali oni su u osnovi istraživanje i osvajanje igre. 824 00:44:36,060 --> 00:44:41,020 Tipično, računalo protivnika ima ima ograničene informacije. 825 00:44:41,020 --> 00:44:45,486 Oni ne znaju točno što je događa iza magle rata. 826 00:44:45,486 --> 00:44:47,735 Ne vidim kako bi dobili što imate u inventaru. 827 00:44:47,735 --> 00:44:50,240 828 00:44:50,240 --> 00:44:52,800 >> Postoji okruženje koje je dinamičan. 829 00:44:52,800 --> 00:44:56,180 Sve se mijenja cijelo vrijeme. 830 00:44:56,180 --> 00:45:00,290 Ne ću sjediti i čekati da se vaš potez. 831 00:45:00,290 --> 00:45:02,810 No, većina stvari su još uvijek diskretna. 832 00:45:02,810 --> 00:45:04,200 Moram staviti moj grad ovdje. 833 00:45:04,200 --> 00:45:06,750 Ili moram staviti moj grad ovdje. 834 00:45:06,750 --> 00:45:08,950 I sve je deterministička. 835 00:45:08,950 --> 00:45:14,660 Kad kažem, premjestiti svoje jedinice ovdje, moje jedinice seli se ovdje, osim ako je prepreka odjednom 836 00:45:14,660 --> 00:45:17,700 dolazi u igru. 837 00:45:17,700 --> 00:45:21,610 Sada, to nije sve na računalu igre koje su tamo i danas. 838 00:45:21,610 --> 00:45:27,320 >> Ako idem i ja igrati prvi tip osobe igra, nešto poput lopov ili Fallout 839 00:45:27,320 --> 00:45:33,350 ili Skyrim, ili halo, sada Imam računalnih protivnika 840 00:45:33,350 --> 00:45:37,860 da su vani da imaju vrlo različite situacije. 841 00:45:37,860 --> 00:45:40,020 Oni su, opet, ograničene informacije. 842 00:45:40,020 --> 00:45:43,420 Oni mogu samo vidjeti sigurno vidno polje. 843 00:45:43,420 --> 00:45:45,180 Okoliš je uvijek dinamičan. 844 00:45:45,180 --> 00:45:48,280 Stvari se mijenjaju cijelo vrijeme. 845 00:45:48,280 --> 00:45:52,300 >> Ali sada imam puno više kontinuirano djelovanje prostor. 846 00:45:52,300 --> 00:45:57,170 Mogu biti samo vire malo izvan vrata. 847 00:45:57,170 --> 00:46:00,650 I neke igre, moj akcije su stohastički. 848 00:46:00,650 --> 00:46:04,590 Ja se pokušati skočiti preko tog zida, ali sam dobio priliku od neuspjeha. 849 00:46:04,590 --> 00:46:08,280 850 00:46:08,280 --> 00:46:14,550 Ove vrste igara su sve bliže i bliže vrste kontrolera 851 00:46:14,550 --> 00:46:17,330 koje gradimo u robotici. 852 00:46:17,330 --> 00:46:21,050 >> U robotike, moramo pretpostaviti da imamo ograničen podatke. 853 00:46:21,050 --> 00:46:23,070 Imamo senzora koji recite nam o svijetu. 854 00:46:23,070 --> 00:46:25,860 Imamo uvijek mijenja, dinamično okruženje. 855 00:46:25,860 --> 00:46:30,440 Imamo svijet u kojem je prostor kontinuirano, a ne diskretni. 856 00:46:30,440 --> 00:46:36,260 I naše akcije, kada pokušavamo ih, imaju šanse nedostatku. 857 00:46:36,260 --> 00:46:40,960 A u stvari, moderna igra Regulatori za vaše Halo protivnika, 858 00:46:40,960 --> 00:46:48,690 ili za one NPC u Skyrim, u osnovi pokrenuti male robotske arhitekture. 859 00:46:48,690 --> 00:46:50,380 >> Osjete svijet. 860 00:46:50,380 --> 00:46:52,910 Oni izgraditi model svijeta. 861 00:46:52,910 --> 00:46:57,950 Oni izračunati na temelju skupa ciljevi koji bi željeli ostvariti. 862 00:46:57,950 --> 00:47:03,110 Oni planiraju akcije temeljene na ono što oni znaju. 863 00:47:03,110 --> 00:47:07,940 A one su točno iste vrste sustava koje gradimo u robotici. 864 00:47:07,940 --> 00:47:11,420 Tako ove arhitekture, na dovesti natrag zajedno, 865 00:47:11,420 --> 00:47:14,500 često su sasvim isti. 866 00:47:14,500 --> 00:47:16,340 >> Dakle, neka je vidjeti ako možemo vidjeti da. 867 00:47:16,340 --> 00:47:19,210 Vratimo se na naš tic-tac-toe primjer. 868 00:47:19,210 --> 00:47:22,690 A ja ću postaviti nekoliko mojih post-docs doći i pomoći mi. 869 00:47:22,690 --> 00:47:26,970 Tako Chen Ming, i Alessandro i Olivier, ako ti dečki će doći. 870 00:47:26,970 --> 00:47:32,080 871 00:47:32,080 --> 00:47:35,440 I ja ću morati par volontera 872 00:47:35,440 --> 00:47:37,590 >> OK, vidio sam ruku pravo tamo u sredini. 873 00:47:37,590 --> 00:47:39,965 Dopustite mi da još jednom, netko dalje u leđima možda. 874 00:47:39,965 --> 00:47:40,881 U redu, tamo. 875 00:47:40,881 --> 00:47:41,490 Dođi gore. 876 00:47:41,490 --> 00:47:44,190 877 00:47:44,190 --> 00:47:45,335 U redu. 878 00:47:45,335 --> 00:47:49,490 Tako ćemo uzeti da je poklopac. 879 00:47:49,490 --> 00:48:03,700 A ako ti dečki će doći u pravu natrag ovdje za mene, fantastično. 880 00:48:03,700 --> 00:48:06,580 >> Dakle, ovo je robot zove Baxter. 881 00:48:06,580 --> 00:48:10,880 A Baxter je robot koji je komercijalna platforma, osmišljen 882 00:48:10,880 --> 00:48:13,030 tvrtka zove promisliti. 883 00:48:13,030 --> 00:48:16,580 I ovaj robot je osmišljen za proizvodnju malih. 884 00:48:16,580 --> 00:48:19,265 No, danas ćemo ga koristiti za igranje Tic-Tac-nožni prst. 885 00:48:19,265 --> 00:48:21,930 886 00:48:21,930 --> 00:48:27,150 Sada, ovaj robot je i nešto to je relativno jedinstven. 887 00:48:27,150 --> 00:48:32,950 Jer ako ja stajali nigdje u neposrednoj blizini standardnom tvornice automatizacije 888 00:48:32,950 --> 00:48:39,580 Sustav, ja bih se u samom grobu opasnost od ozljeda. 889 00:48:39,580 --> 00:48:45,600 >> Baxter, međutim, je dizajniran da bude relativno sigurno za interakciju s. 890 00:48:45,600 --> 00:48:48,680 I tako ja mogu gurati ovaj robota. 891 00:48:48,680 --> 00:48:52,350 I možete vidjeti da je malo malo fleksibilni dok se kreće oko. 892 00:48:52,350 --> 00:48:57,250 I mogu ga premjestiti gdje sam bih to ići. 893 00:48:57,250 --> 00:49:03,410 Sada u normalnom robotskom sustavu, bismo imali set zglobova ovdje 894 00:49:03,410 --> 00:49:07,970 kako bi se izravno reagirati na položaj naredbe. 895 00:49:07,970 --> 00:49:13,180 A oni ne bi nužno stalo ako su se kreće kroz otvorenom, 896 00:49:13,180 --> 00:49:15,555 ili ako su se kreće kroz moje prsnog koša. 897 00:49:15,555 --> 00:49:18,410 898 00:49:18,410 --> 00:49:19,120 >> U REDU. 899 00:49:19,120 --> 00:49:22,090 I obično, ako ste bili ovdje s industrijskim sustavom, 900 00:49:22,090 --> 00:49:23,400 ti bi ići nigdje u blizini. 901 00:49:23,400 --> 00:49:26,280 Tu će biti žuta Sigurnost Traka sve oko nje. 902 00:49:26,280 --> 00:49:28,310 Ovaj sustav ima malo drugačiji dizajn 903 00:49:28,310 --> 00:49:32,130 biti prijateljski i lakše za ljude u interakciji s, 904 00:49:32,130 --> 00:49:36,380 u da u svakom zglobu, postoji proljeća. 905 00:49:36,380 --> 00:49:39,110 I umjesto da kontrolira točan položaj, 906 00:49:39,110 --> 00:49:43,110 kontroliramo određenu količinu moment, određenu količinu snage, 907 00:49:43,110 --> 00:49:45,874 kako bismo željeli da se na tom izvoru. 908 00:49:45,874 --> 00:49:47,790 U redu, pa mi dopustite uzeti naše volontere ovdje. 909 00:49:47,790 --> 00:49:48,540 Bok, kako se zoveš? 910 00:49:48,540 --> 00:49:49,010 >> PUBLIKA: Louis. 911 00:49:49,010 --> 00:49:49,635 >> SPEAKER: Louis. 912 00:49:49,635 --> 00:49:50,490 Lijepo vas je vidjeti. 913 00:49:50,490 --> 00:49:50,990 I? 914 00:49:50,990 --> 00:49:51,610 >> PUBLIKA: David. 915 00:49:51,610 --> 00:49:51,960 >> SPEAKER: David. 916 00:49:51,960 --> 00:49:52,550 Drago nam je. 917 00:49:52,550 --> 00:49:54,508 Ako ti dečki će čekati upravo ovdje na trenutak, 918 00:49:54,508 --> 00:49:56,420 Ja ću vam dati priliku da to učinite. 919 00:49:56,420 --> 00:50:00,610 Dakle, ovaj robot, ako dođe do a ako gurnuti lagano na njega, 920 00:50:00,610 --> 00:50:03,780 ti si idući u vidjeti da se kreće malo. 921 00:50:03,780 --> 00:50:06,349 A ako ga zgrabite pravo ovdje na zapešću jednostavno 922 00:50:06,349 --> 00:50:09,390 gore gdje su ti gumbi, to Izgleda da treba zgrabiti gumbe, 923 00:50:09,390 --> 00:50:13,100 ali iskoristite odmah iznad njega umjesto toga, vi ćete moći vrlo lagano manipulirati 924 00:50:13,100 --> 00:50:14,545 kroz prostor. 925 00:50:14,545 --> 00:50:15,920 Louis, želite dati ga probati? 926 00:50:15,920 --> 00:50:19,465 Tako ga dati samo malo guranje za početak. 927 00:50:19,465 --> 00:50:23,190 A onda, ako ste stavili svoje prste upravo tamo i zadržati na njemu, 928 00:50:23,190 --> 00:50:24,807 jer će se pomaknuti za vas onda. 929 00:50:24,807 --> 00:50:27,824 930 00:50:27,824 --> 00:50:29,365 U redu, želite dati ga probati? 931 00:50:29,365 --> 00:50:29,980 Dođi gore. 932 00:50:29,980 --> 00:50:32,300 Tako ga dati samo nježna gurati tamo za početak. 933 00:50:32,300 --> 00:50:33,820 Možete osjetiti kako je to. 934 00:50:33,820 --> 00:50:40,060 I onda ako ga zgrabite pravo postoji, ćete biti u mogućnosti za manevriranje oko. 935 00:50:40,060 --> 00:50:41,280 >> U REDU. 936 00:50:41,280 --> 00:50:47,360 Tako obično, ova vrsta robota bi upotrijebiti za proizvodnju malih razmjera. 937 00:50:47,360 --> 00:50:50,980 I ja ću premjestiti ovu ruku samo dolje zabit malo ovdje. 938 00:50:50,980 --> 00:50:55,750 Ali danas, mi ćemo koristiti Isto Tic-Tac-Toe sustav reprodukcije 939 00:50:55,750 --> 00:50:59,520 na temelju Minimax da smo ranije izgradili. 940 00:50:59,520 --> 00:51:00,549 U REDU? 941 00:51:00,549 --> 00:51:02,340 Dakle, ti dečki su svaki će igrati igru. 942 00:51:02,340 --> 00:51:04,210 Louis, ti ćeš biti prvi. 943 00:51:04,210 --> 00:51:05,920 Dopustite mi da držite se ovdje na trenutak. 944 00:51:05,920 --> 00:51:10,949 Idem da stojite u redu ovdje, tako da svatko može vidjeti. 945 00:51:10,949 --> 00:51:11,990 Jeste li vi postaviti ovdje? 946 00:51:11,990 --> 00:51:13,120 >> ROBOT: Dobrodošli. 947 00:51:13,120 --> 00:51:15,910 Idemo igrati Tic-Tac-nožni prst. 948 00:51:15,910 --> 00:51:20,860 Nemojte shvatiti token prije Kažem da je tvoj red. 949 00:51:20,860 --> 00:51:22,050 Sam početak igre. 950 00:51:22,050 --> 00:51:27,900 951 00:51:27,900 --> 00:51:28,750 To je moj red. 952 00:51:28,750 --> 00:51:47,002 953 00:51:47,002 --> 00:51:50,210 Govornik: Sad, ako bi mogao uzeti jedan od Vaši komada i ići naprijed i stavite ga. 954 00:51:50,210 --> 00:51:51,446 ROBOT: To je tvoj red. 955 00:51:51,446 --> 00:51:53,430 [SMIJEH] 956 00:51:53,430 --> 00:51:54,836 To je moj red. 957 00:51:54,836 --> 00:51:56,820 [SMIJEH] 958 00:51:56,820 --> 00:52:12,196 959 00:52:12,196 --> 00:52:15,680 [SMIJEH] 960 00:52:15,680 --> 00:52:16,570 To je tvoj red. 961 00:52:16,570 --> 00:52:21,397 962 00:52:21,397 --> 00:52:23,688 SPEAKER: Ljudska rasa računaju na vas ovdje, Louis. 963 00:52:23,688 --> 00:52:27,440 964 00:52:27,440 --> 00:52:28,350 >> ROBOT: To je moj red. 965 00:52:28,350 --> 00:52:44,810 966 00:52:44,810 --> 00:52:47,015 >> SPEAKER: Pa Baxter uspješno blokiran ovdje. 967 00:52:47,015 --> 00:52:49,670 968 00:52:49,670 --> 00:52:52,480 >> ROBOT: To je tvoj red. 969 00:52:52,480 --> 00:52:53,360 To je moj red. 970 00:52:53,360 --> 00:53:14,730 971 00:53:14,730 --> 00:53:16,810 To je tvoj red. 972 00:53:16,810 --> 00:53:17,760 To je moj red. 973 00:53:17,760 --> 00:53:21,330 974 00:53:21,330 --> 00:53:23,830 SPEAKER: I mi ćemo pustiti Baxter završiti izvan svoje zadnji potez ovdje. 975 00:53:23,830 --> 00:53:36,622 976 00:53:36,622 --> 00:53:39,090 >> [SMIJEH] 977 00:53:39,090 --> 00:53:40,480 >> ROBOT: To je kravata. 978 00:53:40,480 --> 00:53:42,030 Ja ću osvojiti sljedeći put. 979 00:53:42,030 --> 00:53:43,365 >> [SMIJEH] 980 00:53:43,365 --> 00:53:45,210 >> Govornik: U redu, hvala vrlo velik, Louis. 981 00:53:45,210 --> 00:53:46,094 Hvala. 982 00:53:46,094 --> 00:53:46,980 Možete ići na ovaj način. 983 00:53:46,980 --> 00:53:49,759 >> ROBOT: Ja početak igre. 984 00:53:49,759 --> 00:53:51,800 SPEAKER: Pa neka mi objasni vam još jedan mali 985 00:53:51,800 --> 00:53:55,410 Malo prije nego što smo dobili naš revanš ovdje. 986 00:53:55,410 --> 00:53:57,200 Što se točno događa? 987 00:53:57,200 --> 00:53:59,430 Dakle, robot ima vrh fotoaparata ovdje. 988 00:53:59,430 --> 00:54:01,330 I to je izgleda dolje na brodu. 989 00:54:01,330 --> 00:54:04,470 I to je viđenje bilo to je dobio crveni O ili plava 990 00:54:04,470 --> 00:54:10,450 bijelo X. Kao one se stavljaju na odbora, koji je u osnovi isti ulaz 991 00:54:10,450 --> 00:54:13,890 da bi se čitanja iz naša struktura podataka iz našeg ekrana. 992 00:54:13,890 --> 00:54:17,290 To je trčanje isti minimax algoritam se 993 00:54:17,290 --> 00:54:21,010 mogućnosti pronaći gdje staviti dobar znak. 994 00:54:21,010 --> 00:54:24,820 >> I onda mi daju naredbu o gdje smo željeli token biti postavljeni. 995 00:54:24,820 --> 00:54:26,120 Ruka se kreće van. 996 00:54:26,120 --> 00:54:31,750 To je pomoću vakuumske hvataljku za primjenu neki usis na taj drveni dio, 997 00:54:31,750 --> 00:54:35,240 ga podići, to pomicanje udesno mjesto, a zatim otpustite usisavanje 998 00:54:35,240 --> 00:54:36,950 i ispustite ga. 999 00:54:36,950 --> 00:54:38,990 U redu, idemo da joj još jedan metak 1000 00:54:38,990 --> 00:54:40,930 s malo pametniji igrač ovdje. 1001 00:54:40,930 --> 00:54:42,290 Spreman? 1002 00:54:42,290 --> 00:54:46,150 U redu, ako želite stajati desno gore ovdje i dati A- ispalo ovako 1003 00:54:46,150 --> 00:54:47,955 tako da možete vidjeti sve. 1004 00:54:47,955 --> 00:54:48,830 I onda [nečujan]. 1005 00:54:48,830 --> 00:54:49,330 >> ROBOT: To je moj red. 1006 00:54:49,330 --> 00:54:50,455 >> SPEAKER: Baxter će početi. 1007 00:54:50,455 --> 00:55:10,750 1008 00:55:10,750 --> 00:55:11,730 To je tvoj red. 1009 00:55:11,730 --> 00:55:16,490 1010 00:55:16,490 --> 00:55:17,520 To je moj red. 1011 00:55:17,520 --> 00:55:38,740 1012 00:55:38,740 --> 00:55:39,690 To je tvoj red. 1013 00:55:39,690 --> 00:55:46,330 1014 00:55:46,330 --> 00:55:47,165 To je moj red. 1015 00:55:47,165 --> 00:56:01,252 1016 00:56:01,252 --> 00:56:06,192 >> [SMIJEH] 1017 00:56:06,192 --> 00:56:08,542 >> SPEAKER: [šapće] Samo neka ide naprijed i pobijediti. 1018 00:56:08,542 --> 00:56:09,500 ROBOT: To je tvoj red. 1019 00:56:09,500 --> 00:56:15,099 1020 00:56:15,099 --> 00:56:15,890 SPEAKER: To je u redu. 1021 00:56:15,890 --> 00:56:20,390 1022 00:56:20,390 --> 00:56:21,360 >> ROBOT: To je moj red. 1023 00:56:21,360 --> 00:56:24,825 1024 00:56:24,825 --> 00:56:26,805 >> [SMIJEH] 1025 00:56:26,805 --> 00:56:42,650 1026 00:56:42,650 --> 00:56:43,510 >> Pobijedim. 1027 00:56:43,510 --> 00:56:45,620 >> [SMIJEH] 1028 00:56:45,620 --> 00:56:46,595 >> Sam početak igre. 1029 00:56:46,595 --> 00:56:48,261 >> Govornik: U redu, puno hvala. 1030 00:56:48,261 --> 00:56:50,180 1031 00:56:50,180 --> 00:56:55,590 U redu, mislim da imamo vremena za još jedan izvrstan Tic-Tac-Toe igrač, 1032 00:56:55,590 --> 00:57:00,490 netko tko može staviti ovu stvar na odgovarati, tko zna što radi. 1033 00:57:00,490 --> 00:57:03,010 >> [SMIJEH] 1034 00:57:03,010 --> 00:57:05,560 >> Tko će biti naš prvak ovdje? 1035 00:57:05,560 --> 00:57:08,110 U redu, vaši prijatelji vas dobrovoljno. 1036 00:57:08,110 --> 00:57:11,190 To je dovoljno dobar za mene. 1037 00:57:11,190 --> 00:57:12,194 Reci mi svoje ime ponovno. 1038 00:57:12,194 --> 00:57:12,860 PUBLIKA: Tamir. 1039 00:57:12,860 --> 00:57:14,193 Govornik: Tamir, lijepo vas je vidjeti. 1040 00:57:14,193 --> 00:57:19,270 U redu, opet, mi ćemo vas staviti sve do ovdje, pa svatko može vidjeti. 1041 00:57:19,270 --> 00:57:22,070 Vi ste naš predstavnik u ovoj utakmici sada. 1042 00:57:22,070 --> 00:57:24,540 Baxter je jedan i oh oh. 1043 00:57:24,540 --> 00:57:26,300 Ili mi je, jedan oh i jedan. 1044 00:57:26,300 --> 00:57:27,490 I to je do vas ovdje. 1045 00:57:27,490 --> 00:57:29,340 Baxter će doći do premjestiti prvi, ipak. 1046 00:57:29,340 --> 00:57:30,435 Tako. 1047 00:57:30,435 --> 00:57:31,310 ROBOT: To je moj red. 1048 00:57:31,310 --> 00:57:45,226 1049 00:57:45,226 --> 00:57:48,208 >> [SMIJEH] 1050 00:57:48,208 --> 00:57:52,720 1051 00:57:52,720 --> 00:57:55,780 >> To je tvoj red. 1052 00:57:55,780 --> 00:57:56,845 To je moj red. 1053 00:57:56,845 --> 00:58:18,130 1054 00:58:18,130 --> 00:58:18,965 To je tvoj red. 1055 00:58:18,965 --> 00:58:28,751 1056 00:58:28,751 --> 00:58:30,248 To je moj red. 1057 00:58:30,248 --> 00:58:51,210 1058 00:58:51,210 --> 00:58:52,160 To je tvoj red. 1059 00:58:52,160 --> 00:59:00,854 1060 00:59:00,854 --> 00:59:03,365 >> [SMIJEH] 1061 00:59:03,365 --> 00:59:04,240 ROBOT: To je moj red. 1062 00:59:04,240 --> 00:59:06,930 SPEAKER: To je puno teže kada stojiš ovdje, ljudi. 1063 00:59:06,930 --> 00:59:19,400 1064 00:59:19,400 --> 00:59:21,840 [SMIJEH] 1065 00:59:21,840 --> 00:59:26,730 1066 00:59:26,730 --> 00:59:29,054 ROBOT: Ti su ljudi tako lako pobijediti. 1067 00:59:29,054 --> 00:59:30,803 [Smijeh i pljesak] 1068 00:59:30,803 --> 00:59:31,886 SPEAKER: Hvala puno. 1069 00:59:31,886 --> 00:59:34,692 ROBOT: pobijedim. 1070 00:59:34,692 --> 00:59:35,400 Sam početak igre. 1071 00:59:35,400 --> 00:59:39,500 >> Govornik: U redu, hvala vrlo mnogo Oliviera, i Alessandro, 1072 00:59:39,500 --> 00:59:41,616 i Chen Ming. 1073 00:59:41,616 --> 00:59:45,600 >> [PLJESAK] 1074 00:59:45,600 --> 00:59:47,040 >> Želim da posljednji bod. 1075 00:59:47,040 --> 00:59:51,630 Dakle Baxter na vrlo postoji kraj, varao. 1076 00:59:51,630 --> 00:59:54,160 1077 00:59:54,160 --> 00:59:56,310 I to je bilo neočekivano. 1078 00:59:56,310 --> 01:00:00,440 Jedan od fantastični stvari o AI je da smo 1079 01:00:00,440 --> 01:00:05,070 rade u AI, tako da možemo izgraditi stvarno zanimljivo i inteligentno 1080 01:00:05,070 --> 01:00:06,930 uređaji. 1081 01:00:06,930 --> 01:00:10,130 Ali, mi također rade u AI jer nam govori nešto 1082 01:00:10,130 --> 01:00:13,940 o tome kako su ljudi inteligentni. 1083 01:00:13,940 --> 01:00:17,280 >> Jedan od favorita Studije iz mog laboratorija je 1084 01:00:17,280 --> 01:00:23,660 gleda na ono što se događa kada strojevi neočekivano varati. 1085 01:00:23,660 --> 01:00:27,070 Mi to učinio izvorno ne s Baxter igrati Tic-Tac-nožni prst, 1086 01:00:27,070 --> 01:00:30,340 ali s manjim robota po imenu Nao, koji je igrao rock-papir-škare. 1087 01:00:30,340 --> 01:00:33,010 1088 01:00:33,010 --> 01:00:35,800 A ponekad nakon igrati puno puno 1089 01:00:35,800 --> 01:00:41,580 dosadno rock-papir-škare igre, robot bi baciti gestu, 1090 01:00:41,580 --> 01:00:48,616 izgubiti, a onda odjednom promijeniti njegova gesta i reći, ja pobijediti. 1091 01:00:48,616 --> 01:00:50,480 >> [SMIJEH] 1092 01:00:50,480 --> 01:00:56,090 >> Sada, ponekad mi bismo također imaju robota, samo kao kontrola, baciti gestu, 1093 01:00:56,090 --> 01:01:01,270 pobijediti, i promijeniti svoju gestu izgubiti, baciti utakmicu, 1094 01:01:01,270 --> 01:01:04,070 varati kako bi se izgubiti. 1095 01:01:04,070 --> 01:01:07,540 I to nije gotovo kao uvjerljiv. 1096 01:01:07,540 --> 01:01:09,890 Robot koji vara kako bi se pobijediti ljudi 1097 01:01:09,890 --> 01:01:14,660 reagiraju na kao što je kako bi ih dobili, kao što je to 1098 01:01:14,660 --> 01:01:17,690 je aktivno traže njihovo uništenje. 1099 01:01:17,690 --> 01:01:19,210 >> [SMIJEH] 1100 01:01:19,210 --> 01:01:20,990 >> Ona postaje sredstvo. 1101 01:01:20,990 --> 01:01:21,840 To je kao osoba. 1102 01:01:21,840 --> 01:01:23,970 To je uvjerenje i namjere. 1103 01:01:23,970 --> 01:01:27,470 I to nije dobro namjera. 1104 01:01:27,470 --> 01:01:33,790 A robot koji baca Igra je jednostavno neispravan. 1105 01:01:33,790 --> 01:01:36,990 To je samo slomljen uređaj. 1106 01:01:36,990 --> 01:01:41,405 Dopustite mi da vam pokazati par primjera to iz nekoliko naših polaznika. 1107 01:01:41,405 --> 01:01:43,990 1108 01:01:43,990 --> 01:01:45,600 Dakle ovdje je varanje kako bi se izgubiti. 1109 01:01:45,600 --> 01:01:46,266 >> [VIDEO PLAYBACK] 1110 01:01:46,266 --> 01:01:47,010 - [Nečujan] pobijediti. 1111 01:01:47,010 --> 01:01:49,550 Igrajmo. 1112 01:01:49,550 --> 01:01:50,538 >> -Čekaj, što? 1113 01:01:50,538 --> 01:01:54,490 1114 01:01:54,490 --> 01:01:55,352 >> - [Nečujan] pobijediti. 1115 01:01:55,352 --> 01:01:58,280 Igrajmo. 1116 01:01:58,280 --> 01:01:59,400 >> [Nečujan] pobijediti. 1117 01:01:59,400 --> 01:02:02,290 Igrajmo. 1118 01:02:02,290 --> 01:02:05,490 >> SPEAKER: I ovdje je varanje osvojiti. 1119 01:02:05,490 --> 01:02:06,438 >> -Da, Ja pobijediti. 1120 01:02:06,438 --> 01:02:07,394 Igrajmo. 1121 01:02:07,394 --> 01:02:08,828 >> -Ne Mogu to učiniti. 1122 01:02:08,828 --> 01:02:10,740 >> [SMIJEH] 1123 01:02:10,740 --> 01:02:12,174 1124 01:02:12,174 --> 01:02:13,979 >> -Da, Ja pobijediti. 1125 01:02:13,979 --> 01:02:14,520 -Vi Varao. 1126 01:02:14,520 --> 01:02:17,990 1127 01:02:17,990 --> 01:02:20,010 Varao si sada. 1128 01:02:20,010 --> 01:02:21,140 >> -Da, Ja pobijediti. 1129 01:02:21,140 --> 01:02:22,940 >> -Hej, Ti varalica. 1130 01:02:22,940 --> 01:02:26,670 Možete varati, varati super. 1131 01:02:26,670 --> 01:02:27,650 >> [END PLAYBACK] 1132 01:02:27,650 --> 01:02:31,130 >> SPEAKER: Ovi različiti Reakcije brzo 1133 01:02:31,130 --> 01:02:34,890 promijeniti našu percepciju uređaja. 1134 01:02:34,890 --> 01:02:36,780 Znači li to da je namjerno graditi 1135 01:02:36,780 --> 01:02:40,370 strojevi koji varaju jer je to najbolji inženjering što možemo učiniti? 1136 01:02:40,370 --> 01:02:44,680 Ne, ali to nam govori nešto stvarno zanimljivo o ljudima. 1137 01:02:44,680 --> 01:02:49,710 To je stvar koja vas i vara krade vaše pobjeda, to je 1138 01:02:49,710 --> 01:02:53,660 nešto što je živ, to je animirati, to je na vas. 1139 01:02:53,660 --> 01:02:54,680 To je mentalno stanje. 1140 01:02:54,680 --> 01:02:55,400 To je uvjerenje. 1141 01:02:55,400 --> 01:02:57,170 Ona ima namjeru. 1142 01:02:57,170 --> 01:03:01,540 >> To što se rukama igra za vas, to nije. 1143 01:03:01,540 --> 01:03:04,670 To je samo ispravno. 1144 01:03:04,670 --> 01:03:08,900 To je u mnogočemu zašto je lako baciti igra s djecom. 1145 01:03:08,900 --> 01:03:12,050 Ali ako ih pokušate prevariti i vrsta tvrde pobjedu 1146 01:03:12,050 --> 01:03:15,200 kada je, znate, samo skratiti Igra, oni će vas uhvatiti odmah. 1147 01:03:15,200 --> 01:03:19,040 1148 01:03:19,040 --> 01:03:23,140 Ove vrste učinaka koji vidimo dolaze iz AI, 1149 01:03:23,140 --> 01:03:26,490 oni nas uče puno o sebi. 1150 01:03:26,490 --> 01:03:28,076 >> U redu, to je to za danas. 1151 01:03:28,076 --> 01:03:30,450 Hvala vrlo velik Davidu i proizvodnja tim s Harvarda 1152 01:03:30,450 --> 01:03:32,350 došli. 1153 01:03:32,350 --> 01:03:33,820 >> [PLJESAK] 1154 01:03:33,820 --> 01:03:36,760 1155 01:03:36,760 --> 01:03:41,840 >> Vidimo se za kviz jedan, a onda za posljednji predavanje. 1156 01:03:41,840 --> 01:03:43,025 Ugodan dan. 1157 01:03:43,025 --> 01:03:44,965 >> [PLJESAK] 1158 01:03:44,965 --> 01:03:48,360 1159 01:03:48,360 --> 01:03:51,825 >> [Glazbom] 1160 01:03:51,825 --> 01:03:54,950 DAVID J Malan: Pa, vjerojatno trebamo uvesti neku vrstu enkripcije, 1161 01:03:54,950 --> 01:03:55,450 pravo? 1162 01:03:55,450 --> 01:03:58,650 Jer tada zaglavlja ovi HTTP zahtjevi će biti 1163 01:03:58,650 --> 01:04:01,530 kodirani tako da svatko pokušavajući njuškanje prometa 1164 01:04:01,530 --> 01:04:03,400 zapravo neće biti u mogućnosti da ih vidjeti. 1165 01:04:03,400 --> 01:04:05,254 Pa što je rješenje za ovaj problem? 1166 01:04:05,254 --> 01:04:07,920 Pa, moramo se zapravo uvesti šifriranje u formuli, 1167 01:04:07,920 --> 01:04:11,010 tako da kada je ta osoba prijenos podataka od A do B, 1168 01:04:11,010 --> 01:04:12,390 možemo sigurno send-- 1169 01:04:12,390 --> 01:04:14,590 >> [SMIJEH] 1170 01:04:14,590 --> 01:04:19,530 >> Informacije na način da je Protivnik ne može, u stvari, vidjeti.