1 00:00:00,000 --> 00:00:01,924 >> [MUSIC JOC] 2 00:00:01,924 --> 00:00:10,600 3 00:00:10,600 --> 00:00:13,280 >> Vorbitor: Bine ai revenit, toată lumea. 4 00:00:13,280 --> 00:00:15,440 Acest lucru este CS50. 5 00:00:15,440 --> 00:00:21,040 Și astăzi, avem o mulțime de lucruri interesante pentru a vorbi despre. 6 00:00:21,040 --> 00:00:25,500 În primul rând, deși, trebuie să reamintesc vă de câteva lucruri administrative. 7 00:00:25,500 --> 00:00:30,160 În această săptămână este un test, miercuri sau pentru secțiunea Yale 8 00:00:30,160 --> 00:00:32,940 în zilele de marți și joi, joi. 9 00:00:32,940 --> 00:00:38,170 Momentan nu sunt recenzii test in seara asta la Yale, 05:30 - 07:00. 10 00:00:38,170 --> 00:00:40,030 La Harvard, au înregistrat o ieri. 11 00:00:40,030 --> 00:00:43,000 Și toată lumea pot viziona on-line pe care. 12 00:00:43,000 --> 00:00:49,406 >> De asemenea, în această săptămână sau la începutul săptămânii viitoare, avem ultima noastră conferință CS50. 13 00:00:49,406 --> 00:00:51,450 [Geme] Știu. 14 00:00:51,450 --> 00:00:54,140 A venit așa de repede. 15 00:00:54,140 --> 00:00:57,820 Elevii Yale va avea un live prelegere aici, în Facultatea de Drept 16 00:00:57,820 --> 00:00:59,920 Auditorium vineri. 17 00:00:59,920 --> 00:01:01,140 Nu va fi tort. 18 00:01:01,140 --> 00:01:05,570 Elevii Harvard va avea Ultima prelegere în Sanders luni. 19 00:01:05,570 --> 00:01:08,050 Nu va fi, de asemenea, tort. 20 00:01:08,050 --> 00:01:14,000 >> De asemenea, în această săptămână, vineri, pentru cei dintre voi care vin la New Haven, 21 00:01:14,000 --> 00:01:15,740 avem Expo CS50. 22 00:01:15,740 --> 00:01:18,850 Avem mai mult de 30 diferite grupuri înregistrat 23 00:01:18,850 --> 00:01:22,530 să-ți arăt tot din panza autonome, 24 00:01:22,530 --> 00:01:27,170 la sistemele care recunosc portrete digitale, la calculator 25 00:01:27,170 --> 00:01:32,100 muzică și muzica produsă de calculator. 26 00:01:32,100 --> 00:01:33,610 Deci, vă rugăm să ne alătura. 27 00:01:33,610 --> 00:01:36,460 Cred ca va fi o mare de timp. 28 00:01:36,460 --> 00:01:40,320 >> Astăzi, însă, ajungem să continua vorbim despre AI, 29 00:01:40,320 --> 00:01:43,150 despre inteligența artificială. 30 00:01:43,150 --> 00:01:46,070 Și unul dintre lucrurile pe care vom ajunge la ziua de astazi 31 00:01:46,070 --> 00:01:51,750 este ideea de cum să utilizați AI pentru a rezolva problemele. 32 00:01:51,750 --> 00:01:54,690 Acum, ca întotdeauna, să începem cu ceva simplu. 33 00:01:54,690 --> 00:01:57,120 Și vom începe să cu o idee simpla. 34 00:01:57,120 --> 00:01:59,920 Și asta e, folosind căutare. 35 00:01:59,920 --> 00:02:06,990 >> Deci, imaginați-vă pentru un minut pe care am au o sarcina pe care am nevoie pentru a efectua. 36 00:02:06,990 --> 00:02:11,970 Și aș vrea să aibă această sarcină automate de unele agent software. 37 00:02:11,970 --> 00:02:17,100 Imaginați-vă că am încercat să rezervați un set pentru zboruri de la, să zicem, Boston 38 00:02:17,100 --> 00:02:20,040 la San Francisco. 39 00:02:20,040 --> 00:02:24,230 Am putea merge prin și am putea folosi unul de căutare on-line minunat 40 00:02:24,230 --> 00:02:28,790 instrumente, care este de gând să faci în esență același proces ca suntem 41 00:02:28,790 --> 00:02:30,030 de gând să meargă până astăzi. 42 00:02:30,030 --> 00:02:34,100 Dar, dacă nu au avut ca instrument, ce ai face? 43 00:02:34,100 --> 00:02:37,570 >> Ei bine, ai putea sa te uiti si a se vedea și spun, eu sunt în Boston. 44 00:02:37,570 --> 00:02:41,520 Ce zboruri sunt disponibile pentru mine? 45 00:02:41,520 --> 00:02:44,390 Acum, poate că am trei posibile zboruri din Boston 46 00:02:44,390 --> 00:02:47,180 care se va potrivi de timp atunci când am nevoie să plece. 47 00:02:47,180 --> 00:02:48,830 Aș putea zbura la Chicago. 48 00:02:48,830 --> 00:02:50,130 Sau aș putea zbura la Miami. 49 00:02:50,130 --> 00:02:53,340 Sau aș putea zbura la New York. 50 00:02:53,340 --> 00:02:56,980 Aș putea uita apoi la fiecare unul dintre acele orașe de destinație 51 00:02:56,980 --> 00:03:00,650 și cred despre ceea ce locații Am putea ajunge, eventual, 52 00:03:00,650 --> 00:03:03,020 de la fiecare dintre aceste orașe individuale. 53 00:03:03,020 --> 00:03:07,390 >> Deci, poate de la Chicago, pot obține un zbor direct la San Francisco. 54 00:03:07,390 --> 00:03:09,550 Asta e excelent. 55 00:03:09,550 --> 00:03:12,360 Sau am putea obține un bilet de avion pentru a Denver. 56 00:03:12,360 --> 00:03:16,970 Acum, poate că zborul la San Francisco este soluția perfectă pentru mine, 57 00:03:16,970 --> 00:03:19,530 dar poate că nu. 58 00:03:19,530 --> 00:03:22,180 Poate eu sunt în căutarea pentru ceva asta e un pic mai ieftin 59 00:03:22,180 --> 00:03:24,920 sau un pic mai bine pentru programul meu. 60 00:03:24,920 --> 00:03:29,197 Și așa că am putea uita pentru ce alte Posibilitățile ar putea fi acolo. 61 00:03:29,197 --> 00:03:30,280 Așa că am putea uita la Denver. 62 00:03:30,280 --> 00:03:33,870 Și de la Denver, bine, poate Pot obține un bilet de avion pentru a Austin. 63 00:03:33,870 --> 00:03:37,080 Și de la Austin, poate că pot obține un zbor de la Phoenix, și de la Phoenix 64 00:03:37,080 --> 00:03:40,190 la San Francisco. 65 00:03:40,190 --> 00:03:42,730 Acum, eu nu am terminat încă. 66 00:03:42,730 --> 00:03:45,640 Pentru că poate exista o zboruri directe din New York 67 00:03:45,640 --> 00:03:47,850 la San Francisco, care este perfect pentru mine. 68 00:03:47,850 --> 00:03:53,354 Sau poate e un zbor de la Miami prin Denver e mult mai ieftin. 69 00:03:53,354 --> 00:03:54,270 Așa că încă mai trebuie să meargă. 70 00:03:54,270 --> 00:03:58,200 Și eu încă mai trebuie să se uite la toate cele orașe care nu le-am investigat încă. 71 00:03:58,200 --> 00:04:04,220 Trebuie să verific exhaustiv toate posibilitățile pe care am putea avea. 72 00:04:04,220 --> 00:04:09,610 >> Deci, de la New York, poate că pot obține un zbor de la Nashville, și de la Nashville 73 00:04:09,610 --> 00:04:10,336 la Austin. 74 00:04:10,336 --> 00:04:11,460 Și atunci știu unde mă aflu. 75 00:04:11,460 --> 00:04:14,252 Și apoi eu știu de la Austin, pot zboară spre Phoenix, și de la Phoenix 76 00:04:14,252 --> 00:04:14,960 la San Francisco. 77 00:04:14,960 --> 00:04:18,240 78 00:04:18,240 --> 00:04:22,830 Dacă aș zbura în primul rând la Miami, deși, Poate pot obține un bilet de avion de la Miami 79 00:04:22,830 --> 00:04:25,080 la Nashville, sau de la Miami la Austin. 80 00:04:25,080 --> 00:04:27,950 81 00:04:27,950 --> 00:04:30,860 >> Și acum am încercat tot a posibilităților. 82 00:04:30,860 --> 00:04:36,310 Am construit acest grafic că imi arata toate rutele posibile 83 00:04:36,310 --> 00:04:37,790 că aș putea fi în măsură să ia. 84 00:04:37,790 --> 00:04:40,510 85 00:04:40,510 --> 00:04:43,640 Când ne-am reprezenta acestea tipuri de probleme, 86 00:04:43,640 --> 00:04:47,870 noi nu vom reprezenta le în mod explicit ca acest grafic, 87 00:04:47,870 --> 00:04:51,590 pentru că graficul nu reprezintă istoria unde am plecat. 88 00:04:51,590 --> 00:04:55,260 Știind că am zburat de la Phoenix la San Francisco 89 00:04:55,260 --> 00:05:01,690 nu-mi spuneți dacă am venit prin Nashville, sau prin Denver, sau prin Miami. 90 00:05:01,690 --> 00:05:06,430 >> Deci, ce voi face în schimb este Voi lua aceeași problemă, 91 00:05:06,430 --> 00:05:09,140 și voi reprezenta ca un copac. 92 00:05:09,140 --> 00:05:14,300 Și la rădăcina pomului, la top, voi pune în locul pe care am început, 93 00:05:14,300 --> 00:05:16,590 Boston. 94 00:05:16,590 --> 00:05:19,310 Și de la Boston, mă uit la toate locațiile posibile 95 00:05:19,310 --> 00:05:20,380 că pot călători în. 96 00:05:20,380 --> 00:05:25,480 Ei bine, în acest caz, am avut trei, Chicago, New York, și Miami. 97 00:05:25,480 --> 00:05:29,850 Și apoi voi explora fiecare dintre acești copii în copac. 98 00:05:29,850 --> 00:05:32,690 >> Din Chicago, am văzut că am avut două zboruri. 99 00:05:32,690 --> 00:05:35,940 Aș putea zbura direct la San Francisco sau la Denver. 100 00:05:35,940 --> 00:05:37,740 Acum San Francisco, asta e scopul meu. 101 00:05:37,740 --> 00:05:39,790 Asta e destinația mea. 102 00:05:39,790 --> 00:05:42,220 Asta va fi o frunză de acest copac. 103 00:05:42,220 --> 00:05:45,340 Asta este, eu nu am de gând să meargă undeva după San Francisco. 104 00:05:45,340 --> 00:05:47,850 105 00:05:47,850 --> 00:05:50,340 De la Denver, deși, Eu pot zbura de la Denver 106 00:05:50,340 --> 00:05:54,220 la Austin, de la Austin la Phoenix, și de la Phoenix la San Francisco. 107 00:05:54,220 --> 00:05:56,050 Și acum, din nou, am ajuns o frunză. 108 00:05:56,050 --> 00:05:59,470 109 00:05:59,470 --> 00:06:03,980 >> Am putea merge apoi din nou la următorul oraș că nu am pe deplin explorat. 110 00:06:03,980 --> 00:06:07,440 Asta ar fi New York, du-te înapoi până la partea de sus a copac meu, 111 00:06:07,440 --> 00:06:09,160 vin la New York. 112 00:06:09,160 --> 00:06:12,700 Din New York, pot zbura la Nashville, de la Nashville la Austin, 113 00:06:12,700 --> 00:06:17,290 de la Austin la Phoenix, și de la Phoenix la San Francisco. 114 00:06:17,290 --> 00:06:20,170 Și, în sfârșit, un oraș am nu s-au uitat la încă, Miami. 115 00:06:20,170 --> 00:06:24,600 >> Ei bine, de la Miami i-am spus am avut două posibilități, Nashville sau Austin. 116 00:06:24,600 --> 00:06:28,810 Dacă aș zbura la Nashville, ei bine atunci zbor de la Nashville, la Austin, la Phoenix, 117 00:06:28,810 --> 00:06:29,640 la San Francisco. 118 00:06:29,640 --> 00:06:33,600 Dacă aș zbura la Austin, zbor Austin, la Phoenix, la San Francisco. 119 00:06:33,600 --> 00:06:36,340 Și acum am un copac. 120 00:06:36,340 --> 00:06:37,230 Este un copac complet. 121 00:06:37,230 --> 00:06:41,890 Este toate posibilitățile și toate căile pe care am putut lua. 122 00:06:41,890 --> 00:06:44,310 Asta este, dacă am începe de la rădăcină de copac în partea de sus 123 00:06:44,310 --> 00:06:47,860 și mă duc în jos la unul dintre frunze, aceasta mi-a spus, nu numai 124 00:06:47,860 --> 00:06:50,480 în cazul în care am de gând să sfârșesc, San Francisco, 125 00:06:50,480 --> 00:06:53,670 dar mi-a spus că ruta Am nevoie pentru a lua pentru a ajunge acolo. 126 00:06:53,670 --> 00:06:56,400 127 00:06:56,400 --> 00:06:59,690 >> Acum, ceea ce unul dintre acestea este cel mai bun? 128 00:06:59,690 --> 00:07:02,430 Ei bine, nimic despre acest problemă mi-a spus încă 129 00:07:02,430 --> 00:07:04,710 care dintre acestea este cea mai bună soluție. 130 00:07:04,710 --> 00:07:09,270 Poate îmi pasă cel mai About cât de mult timp eu sunt în aer, 131 00:07:09,270 --> 00:07:12,350 sau distanța pe care am de zbor. 132 00:07:12,350 --> 00:07:16,410 În acest caz, Chicago la San Francisco ar putea fi cel mai scurt numărul 133 00:07:16,410 --> 00:07:18,910 de mile în aer. 134 00:07:18,910 --> 00:07:20,860 >> Poate îmi pasă de cost. 135 00:07:20,860 --> 00:07:23,680 Și știm cu toții zboruri directe sunt de obicei mai scumpe. 136 00:07:23,680 --> 00:07:26,610 Poate dacă iau această un fel de traseu spate 137 00:07:26,610 --> 00:07:30,650 prin Miami, Nashville, Austin, Phoenix, poate apoi 138 00:07:30,650 --> 00:07:34,070 I a lua un preț mai mic. 139 00:07:34,070 --> 00:07:36,440 Dar am putea optimiza cu privire la orice criterii care țin. 140 00:07:36,440 --> 00:07:39,790 Cine are cele mai bune din zbor Wi-Fi, sau care 141 00:07:39,790 --> 00:07:43,110 aeroporturi au cele mai bune alimente disponibile. 142 00:07:43,110 --> 00:07:47,280 Și fiecare dintre aceste s-ar putea da-mi o soluție diferită 143 00:07:47,280 --> 00:07:49,215 că văd ca fiind cel mai bun. 144 00:07:49,215 --> 00:07:51,990 145 00:07:51,990 --> 00:07:54,400 >> Aceste tipuri de probleme, unde mergem 146 00:07:54,400 --> 00:07:58,480 pentru a construi acest arbore de posibilități, și apoi 147 00:07:58,480 --> 00:08:02,100 uita-te la fiecare dintre aceste trasee individuale, și să examineze 148 00:08:02,100 --> 00:08:05,270 care dintre aceste îndeplinește un criteriu pentru noi, 149 00:08:05,270 --> 00:08:08,790 vom apela la aceste probleme de căutare. 150 00:08:08,790 --> 00:08:11,280 Și avem o mulțime de algoritmi, dintre care unele 151 00:08:11,280 --> 00:08:15,270 am văzut deja, pentru a merge și de a explora aceste copaci. 152 00:08:15,270 --> 00:08:19,270 Am putea-o face în modul în care am doar a făcut, o căutare profundă în primul rând, 153 00:08:19,270 --> 00:08:22,900 merge în jos în măsura în care putem până ne lovit o frunză, și apoi întoarce în sus, 154 00:08:22,900 --> 00:08:24,787 și merge înapoi în jos. 155 00:08:24,787 --> 00:08:26,870 Sau am putea face ceea ce este numit de căutare-lățime mai întâi. 156 00:08:26,870 --> 00:08:29,675 Am putea extinde tot în partea de sus, și apoi 157 00:08:29,675 --> 00:08:31,550 totul o linie dedesubt că, și apoi 158 00:08:31,550 --> 00:08:35,240 totul o linie sub care. 159 00:08:35,240 --> 00:08:41,250 Aceste copaci de căutare sunt fundamentale pentru AI. 160 00:08:41,250 --> 00:08:46,570 Dar ei nu chiar a lua dreapta pe ea tot timpul. 161 00:08:46,570 --> 00:08:51,600 De fapt, într-o mulțime de cazuri că ne pasă cu adevărat de, 162 00:08:51,600 --> 00:08:54,430 vrem să construim un copac, dar nu face de fapt 163 00:08:54,430 --> 00:08:57,140 ajunge să facă toate deciziile. 164 00:08:57,140 --> 00:09:00,940 >> Acestea sunt situații numite căutare contradictorie, de asemenea, cunoscut 165 00:09:00,940 --> 00:09:05,390 și modul de a scrie joc joc sisteme și plătit pentru asta. 166 00:09:05,390 --> 00:09:07,940 Dar acestea sunt tipurile sistemelor de unde am 167 00:09:07,940 --> 00:09:12,920 s-ar putea ajunge la a alege, atunci când mă duc la Boston, care oraș mă duc la următorul. 168 00:09:12,920 --> 00:09:19,990 Dar, după care, altcineva ar putea primi să ia decizia cu privire la cazul în care am zbura. 169 00:09:19,990 --> 00:09:24,040 Deci, pentru a construi aceste structuri tipurile, suntem 170 00:09:24,040 --> 00:09:28,510 va trebui să ia o ușor abordare diferită la acesta. 171 00:09:28,510 --> 00:09:31,060 Noi nu vom fi în măsură să doar de căutare prin copac 172 00:09:31,060 --> 00:09:35,000 mai, pentru că nu suntem cel care este în control 173 00:09:35,000 --> 00:09:38,180 de fiecare dintre aceste puncte de decizie. 174 00:09:38,180 --> 00:09:42,590 >> Așa că haideți să ne imaginăm un simplu joc ca tic-tac-toe. 175 00:09:42,590 --> 00:09:46,730 Am putea începe cu un bord complet gol. 176 00:09:46,730 --> 00:09:49,580 Și în tic-tac-toe, X ajunge să joace primul. 177 00:09:49,580 --> 00:09:53,890 Și așa că am putut gândi la toate posibile miscari care X ar putea face. 178 00:09:53,890 --> 00:09:57,420 Și dacă eu sunt cel redarea X, e minunat. 179 00:09:57,420 --> 00:10:01,020 Am nouă posibilă mișcă pe care le pot face. 180 00:10:01,020 --> 00:10:05,000 Aș putea pune un X în oricare dintre din cele nouă poziții. 181 00:10:05,000 --> 00:10:10,710 >> Și apoi de la fiecare dintre acestea, am putea imagina ce se întâmplă în continuare. 182 00:10:10,710 --> 00:10:14,130 Ei bine, în acest caz, cealaltă jucător ar ajunge la ia un viraj. 183 00:10:14,130 --> 00:10:15,660 O va ajunge la ia un viraj. 184 00:10:15,660 --> 00:10:19,510 Și de la fiecare dintre acestea, există ar fi de opt locuri diferite 185 00:10:19,510 --> 00:10:22,980 care ar putea pune O să îi trimită lor. 186 00:10:22,980 --> 00:10:25,790 >> Să spunem că am decis că am fost va pune un X în centru. 187 00:10:25,790 --> 00:10:28,810 Asta pare mereu ca o miscare buna deschidere. 188 00:10:28,810 --> 00:10:34,870 Am putea uita la sub aceasta, opt mișcări posibile care O face. 189 00:10:34,870 --> 00:10:37,320 Acum, dacă mă joc X, e minunat. 190 00:10:37,320 --> 00:10:41,740 I a lua de a alege pe care o am du-te la, cel din mijloc. 191 00:10:41,740 --> 00:10:45,000 Dar acum O ajunge la alege. 192 00:10:45,000 --> 00:10:48,750 Și nu am de control peste această decizie. 193 00:10:48,750 --> 00:10:51,670 >> Dar din fiecare dintre cele posibile poziții de bord, 194 00:10:51,670 --> 00:10:54,020 există apoi un alt set de posibilități. 195 00:10:54,020 --> 00:10:56,700 Când vine vorba de a fi rândul meu din nou, aș face- 196 00:10:56,700 --> 00:11:01,500 ajunge pentru a alege și să spună, ei bine, dacă O mută în, ei bine, 197 00:11:01,500 --> 00:11:06,110 la fața locului din mijloc de pe stânga, apoi Eu am un set de posibilități 198 00:11:06,110 --> 00:11:09,740 unde pot lua următoarea mea mișcare. 199 00:11:09,740 --> 00:11:14,140 Din acestea, am putut lua în considerare toate posibilitățile lor. dedesubt 200 00:11:14,140 --> 00:11:18,030 Și apoi O va primi de a alege dintre cei. 201 00:11:18,030 --> 00:11:22,290 >> Și am putut păstra construirea acestui copac până când am ajuns la punctul 202 00:11:22,290 --> 00:11:26,960 în cazul în care fie cineva câștigă JOCUL_ _selectați ORA_ Privire care este 203 00:11:26,960 --> 00:11:31,070 Trebuie să fie luate în considerare o frunză node-- sau placa este complet plin 204 00:11:31,070 --> 00:11:32,704 și nimeni nu a câștigat. 205 00:11:32,704 --> 00:11:34,370 Și asta, de asemenea, va fi un nod frunză. 206 00:11:34,370 --> 00:11:35,411 Asta va fi o cravată. 207 00:11:35,411 --> 00:11:37,820 208 00:11:37,820 --> 00:11:41,680 >> Dar lucrul dificil cu acest lucru este dacă acest lucru a fost doar o căutare regulat 209 00:11:41,680 --> 00:11:44,269 problemă, aș fi în stare să să zicem, bine, X ar trebui să meargă aici. 210 00:11:44,269 --> 00:11:45,560 Și O trebuie să meargă mult peste acolo. 211 00:11:45,560 --> 00:11:46,770 Și apoi X ar trebui să meargă pe aici. 212 00:11:46,770 --> 00:11:48,269 Și apoi ar trebui să meargă O cale acolo. 213 00:11:48,269 --> 00:11:51,860 Și apoi X minim trei într-un rând, și eu câștig. 214 00:11:51,860 --> 00:11:54,870 Și jocul va fi de peste în cinci mișcări, trei pentru mine, 215 00:11:54,870 --> 00:11:57,710 două pentru adversarul meu. 216 00:11:57,710 --> 00:12:01,300 Dar nu întotdeauna de a alege acest lucru. 217 00:12:01,300 --> 00:12:03,720 >> Astfel încât în ​​loc, ceea ce suntem Va trebui să faci 218 00:12:03,720 --> 00:12:06,270 este vom avea pentru a avea o nouă strategie. 219 00:12:06,270 --> 00:12:09,350 Și strategia pe care algoritmi joc-joc de multe ori folosi 220 00:12:09,350 --> 00:12:12,000 este ceea ce se numește minimax. 221 00:12:12,000 --> 00:12:15,500 Ideea centrală a minimax este că suntem 222 00:12:15,500 --> 00:12:21,365 O să alegeți în mișcare, care oferă adversarul nostru cel mai rău posibil set 223 00:12:21,365 --> 00:12:22,790 de miscari pe care le pot face. 224 00:12:22,790 --> 00:12:25,570 225 00:12:25,570 --> 00:12:28,870 Ea nu-mi faci nici un bine pentru a alege o mișcare în cazul în care 226 00:12:28,870 --> 00:12:31,952 S-ar putea fi capabil să câștige după că, pentru ca adversarul meu nu este 227 00:12:31,952 --> 00:12:33,160 O să-mi dea această șansă. 228 00:12:33,160 --> 00:12:37,770 Vor alege unele rezultat teribil pentru mine. 229 00:12:37,770 --> 00:12:42,010 Așa că am de gând să facă muta care forțează adversarul meu 230 00:12:42,010 --> 00:12:45,760 de a face ceva mai bun pentru mine. 231 00:12:45,760 --> 00:12:46,260 In regula. 232 00:12:46,260 --> 00:12:48,410 Să vedem cât de care joacă afară. 233 00:12:48,410 --> 00:12:51,640 Deci, aici e algoritmul nostru în pseudocod. 234 00:12:51,640 --> 00:12:54,450 Vom genera întregul copac joc. 235 00:12:54,450 --> 00:12:56,757 Vom construi întreaga structură. 236 00:12:56,757 --> 00:12:57,840 Și apoi vom trece prin. 237 00:12:57,840 --> 00:13:02,100 Și chiar în partea de jos la fiecare dintre noduri terminale, la fiecare a frunzelor, 238 00:13:02,100 --> 00:13:07,850 vom evalua modul în care valoros este că, pentru mine? 239 00:13:07,850 --> 00:13:11,690 Și vom lucruri de valoare pe care sunt bune pentru mine ca fiind pozitiv. 240 00:13:11,690 --> 00:13:14,460 Lucruri care nu sunt bune pentru mine va fi mai puțin pozitiv, sau la zero, 241 00:13:14,460 --> 00:13:16,480 sau chiar negativ. 242 00:13:16,480 --> 00:13:19,240 >> Deci, în tic-tac-toe, poate o victorie pentru mine este bun. 243 00:13:19,240 --> 00:13:20,290 Asta e una. 244 00:13:20,290 --> 00:13:22,400 Și o cravată este zero. 245 00:13:22,400 --> 00:13:26,230 Și ceva care este o pierdere pentru mine, poate că este unul negativ. 246 00:13:26,230 --> 00:13:29,620 Tot ce contează este că mai bine este pentru mine, cea mai mare scorul 247 00:13:29,620 --> 00:13:32,160 primește. 248 00:13:32,160 --> 00:13:36,690 Din aceste posibilități la de jos, atunci vom filtra sus. 249 00:13:36,690 --> 00:13:40,650 Și atunci când este șansa mea de a alege printre o serie de alternative, 250 00:13:40,650 --> 00:13:44,460 Voi alege pe cel care este a primit cel mai mare scor. 251 00:13:44,460 --> 00:13:47,200 >> Și ori de câte ori este meu adversarii rândul său de a alege, 252 00:13:47,200 --> 00:13:52,350 Voi presupune că au de gând să alege cel cu scorul cel mai mic. 253 00:13:52,350 --> 00:13:56,090 Și dacă fac asta tot drumul până la partea de sus a copac, 254 00:13:56,090 --> 00:14:03,150 Voi ales o cale care dă mi cel mai bun rezultat pe care le pot obține, 255 00:14:03,150 --> 00:14:09,110 presupunând că adversarul meu face toate miscarile potrivite. 256 00:14:09,110 --> 00:14:11,940 >> Bine, așa că să vedem această acțiune în primul. 257 00:14:11,940 --> 00:14:14,980 Iar apoi vom fapt uita-te la codul de ea. 258 00:14:14,980 --> 00:14:16,780 Deci, imaginați-vă că am acest copac mare. 259 00:14:16,780 --> 00:14:18,280 Și acum nu mă joc tic-tac-toe. 260 00:14:18,280 --> 00:14:20,405 Am vrut să vă dau ceva mai bogat un pic. 261 00:14:20,405 --> 00:14:23,560 Deci am un joc în cazul în care există mai multe note diferite 262 00:14:23,560 --> 00:14:26,390 pe care am putea avea la sfârșitul anului. 263 00:14:26,390 --> 00:14:27,980 Și așa am construi acest arbore complet. 264 00:14:27,980 --> 00:14:29,070 Și mă pentru a muta primul. 265 00:14:29,070 --> 00:14:31,290 Sunt la rădăcina copacului. 266 00:14:31,290 --> 00:14:36,150 >> Și am de a alege, așa că am obține that-- pentru a maximiza peste acest prim nod. 267 00:14:36,150 --> 00:14:38,410 Și apoi adversarul meu ajunge pentru a merge. 268 00:14:38,410 --> 00:14:41,910 Și apoi am putea merge din nou. 269 00:14:41,910 --> 00:14:46,830 Deci jos în partea de jos, am un set de Posibilitățile pe care le pot alege de la, 270 00:14:46,830 --> 00:14:50,570 diferite state terminale ale jocului. 271 00:14:50,570 --> 00:14:54,980 Dacă sunt în acel stângă colțul, 272 00:14:54,980 --> 00:14:58,867 și văd că am de ales între un opt, un șapte, și de două, 273 00:14:58,867 --> 00:15:00,450 Ei bine, eu sunt cel care ajunge la alege. 274 00:15:00,450 --> 00:15:02,910 Deci, am de gând să alegeți cel mai bun dintre cei. 275 00:15:02,910 --> 00:15:05,650 Am de gând să aleagă opt. 276 00:15:05,650 --> 00:15:10,090 >> Deci, eu știu că, dacă am vreodată trecem la acel moment, 277 00:15:10,090 --> 00:15:13,890 Voi fi în stare să mă că opt puncte. 278 00:15:13,890 --> 00:15:17,410 Dacă am ajunge la punctul următor peste, urmatorul nod de peste, 279 00:15:17,410 --> 00:15:20,760 un nouă, unul, sau un șase, ei bine, eu sunt de gând să alegeți cele mai bune dintre acestea. 280 00:15:20,760 --> 00:15:21,950 Voi alege nouă. 281 00:15:21,950 --> 00:15:24,880 Dacă am de ales între doua, patru, și unul, 282 00:15:24,880 --> 00:15:28,240 Voi alege patru, cea mai mare. 283 00:15:28,240 --> 00:15:31,990 >> Acum, dacă mă uit la nivelul de mai sus că, adversarul meu 284 00:15:31,990 --> 00:15:34,440 este cel ajunge să facă această alegere. 285 00:15:34,440 --> 00:15:37,040 Deci, adversarul meu ajunge la alege, nu vreau să-i dau 286 00:15:37,040 --> 00:15:39,250 lucrul care se întâmplă să-l opt puncte, 287 00:15:39,250 --> 00:15:41,916 sau pot i dau un lucru care este O să-i dea nouă puncte, 288 00:15:41,916 --> 00:15:45,240 sau lucrul care se întâmplă să-i dea patru puncte? 289 00:15:45,240 --> 00:15:49,130 Și adversarul meu, fiind rațională, se întâmplă 290 00:15:49,130 --> 00:15:53,470 să aleagă minimul de cei, va alege patru. 291 00:15:53,470 --> 00:15:56,020 >> Și eu pot face acest lucru prin tot arborele. 292 00:15:56,020 --> 00:15:59,110 Eu pot merge în jos în acest set de mijloc de trei. 293 00:15:59,110 --> 00:16:01,517 Și pot alege între unul, trei, cinci și. 294 00:16:01,517 --> 00:16:02,350 Și am de a alege. 295 00:16:02,350 --> 00:16:03,810 Așa că am alege un cinci. 296 00:16:03,810 --> 00:16:05,340 Pot alege trei, nouă, sau două. 297 00:16:05,340 --> 00:16:07,570 I a lua de a alege, așa că am ales nouă. 298 00:16:07,570 --> 00:16:09,290 Șase, cinci, sau două, aleg. 299 00:16:09,290 --> 00:16:11,539 I a lua de a alege șase. 300 00:16:11,539 --> 00:16:13,080 Nivelul de mai sus că, care ajunge la alege? 301 00:16:13,080 --> 00:16:16,280 302 00:16:16,280 --> 00:16:18,140 Care ajunge la alege? 303 00:16:18,140 --> 00:16:20,000 Celălalt tip, adversarul meu. 304 00:16:20,000 --> 00:16:22,583 Deci, ei aleg cinci, nouă, sau șase, pe care o? 305 00:16:22,583 --> 00:16:23,410 >> Audiența: Cei cinci. 306 00:16:23,410 --> 00:16:25,250 >> Vorbitor: Ei aleg cinci. 307 00:16:25,250 --> 00:16:27,400 Ei ajung să aleagă minim. 308 00:16:27,400 --> 00:16:29,690 Și apoi ultima, alege una, doua, sau trei. 309 00:16:29,690 --> 00:16:31,720 I a lua de a alege, asa ca aleg trei. 310 00:16:31,720 --> 00:16:34,370 Nouă, șapte, sau două, aleg nouă. 311 00:16:34,370 --> 00:16:37,070 Și 11, șase, sau patru, aleg 11. 312 00:16:37,070 --> 00:16:41,190 Adversarul meu alege apoi trei, noua, sau 11, alege minimul. 313 00:16:41,190 --> 00:16:43,290 El îmi dă de trei. 314 00:16:43,290 --> 00:16:47,780 Și apoi în cele din urmă la partea de sus a copac, I a lua de a alege din nou. 315 00:16:47,780 --> 00:16:51,190 Și mă să aleg între patru, cinci, sau trei. 316 00:16:51,190 --> 00:16:52,270 Așa că am să ia cinci. 317 00:16:52,270 --> 00:16:55,070 318 00:16:55,070 --> 00:17:00,891 >> Dacă am să controleze totul, mi-ar ia calea care a dus la 11. 319 00:17:00,891 --> 00:17:02,390 Dar eu nu primesc să facă această alegere. 320 00:17:02,390 --> 00:17:04,220 Dacă mă duc în jos această cale. 321 00:17:04,220 --> 00:17:10,710 Adversarul meu mă va forța în alegerea care duce la trei. 322 00:17:10,710 --> 00:17:14,530 Deci cel mai bun pe care le pot face este să ia această ramură de mijloc, 323 00:17:14,530 --> 00:17:19,859 face această alegere este în cele din urmă că O să mă conducă la cinci puncte. 324 00:17:19,859 --> 00:17:23,230 Asta e ceea ce face minimax. 325 00:17:23,230 --> 00:17:23,807 >> In regula. 326 00:17:23,807 --> 00:17:24,890 Să aruncăm o privire la asta. 327 00:17:24,890 --> 00:17:27,480 328 00:17:27,480 --> 00:17:32,330 Deci, aici, în CS50 IDE este un program care 329 00:17:32,330 --> 00:17:36,540 pune în aplicare minimax pentru a juca tic-tac-toe. 330 00:17:36,540 --> 00:17:40,100 Vom construi o reprezentare. 331 00:17:40,100 --> 00:17:44,390 Vom avea două opponent-- sau doi jucători, calculatorul nostru 332 00:17:44,390 --> 00:17:46,090 player și un jucător uman. 333 00:17:46,090 --> 00:17:48,980 334 00:17:48,980 --> 00:17:53,090 Numărul jucător se va juca O. Asta va fi jucătorul mașină. 335 00:17:53,090 --> 00:17:55,747 Ei ajung să se deplaseze de-al doilea. 336 00:17:55,747 --> 00:17:57,830 Și celălalt jucător, noastră jucător uman, va fi X. 337 00:17:57,830 --> 00:17:59,880 >> Și pentru a face viața mea o puțin simplu, am de gând 338 00:17:59,880 --> 00:18:03,060 de a eticheta ca un jucător negativ. 339 00:18:03,060 --> 00:18:05,026 Deci, eu pot multiplica doar de negativ pentru a schimba 340 00:18:05,026 --> 00:18:06,400 între un jucător și celălalt. 341 00:18:06,400 --> 00:18:09,030 342 00:18:09,030 --> 00:18:12,250 Bine, deci haideți să aruncăm o privire la ceea ce suntem de fapt de gând să faci. 343 00:18:12,250 --> 00:18:15,840 Vom defini bord noastre. 344 00:18:15,840 --> 00:18:19,060 O să fie, de asemenea, vom pentru a permite ca acesta să fie de trei de trei, 345 00:18:19,060 --> 00:18:21,580 sau ne putem juca chiar cinci cu cinci sau șapte 346 00:18:21,580 --> 00:18:28,870 de șapte tic-tac-toe dacă ai cum ar fi, pe baza unor dimensiune D. 347 00:18:28,870 --> 00:18:31,260 >> Și vom avea un cuplu funcțiilor helper 348 00:18:31,260 --> 00:18:34,360 care va face lucruri de genul inițializa screen-- sau rău, 349 00:18:34,360 --> 00:18:38,900 inițializa variabilele, clar ecran, trage placa de pe ecran, 350 00:18:38,900 --> 00:18:41,060 unul care verifică o placă pentru a vedea dacă este sau nu 351 00:18:41,060 --> 00:18:44,520 există un câștigător, una care analizează prin linia de comandă, 352 00:18:44,520 --> 00:18:50,670 doar pentru a ajuta, unul care citește în de intrare, și o funcție numită minimax. 353 00:18:50,670 --> 00:18:52,746 Și asta e cel vom pasa cel mai mult. 354 00:18:52,746 --> 00:18:54,120 Dar să ne uităm mai întâi la principal. 355 00:18:54,120 --> 00:18:57,490 356 00:18:57,490 --> 00:18:58,510 >> Ce facem? 357 00:18:58,510 --> 00:19:00,570 Ei bine, vom analiza linia noastra de comandă, 358 00:19:00,570 --> 00:19:04,300 doar citit și să vedem ce bord dimensiune ne-ar plăcea să aibă. 359 00:19:04,300 --> 00:19:07,330 Vom inițializa bord noastre. 360 00:19:07,330 --> 00:19:10,360 Și apoi vom intra unul bucla sălbatic mare, în mod repetat, 361 00:19:10,360 --> 00:19:16,630 accepta mută până când jocul este a castigat, sau nu exista nici mișcări stânga. 362 00:19:16,630 --> 00:19:20,560 De fiecare dată când trecem prin care bucla, vom goli ecranul. 363 00:19:20,560 --> 00:19:23,290 Vom trage placa de pe ecran. 364 00:19:23,290 --> 00:19:28,750 Și noi suntem în mod deliberat un fel de abstractizare acestea departe ca subrutine, 365 00:19:28,750 --> 00:19:32,030 astfel încât să nu trebuie să vă faceți griji prea mult despre detaliile despre cum se întâmplă. 366 00:19:32,030 --> 00:19:33,480 >> Veți avea codul mai târziu astăzi. 367 00:19:33,480 --> 00:19:37,970 Și dacă vrei să te uiți prin și de a afla, le puteți vedea pe toate. 368 00:19:37,970 --> 00:19:39,890 Dar vom trage o placa de pe ecran. 369 00:19:39,890 --> 00:19:43,620 Și apoi vom verifica și vezi, avem un câștigător? 370 00:19:43,620 --> 00:19:46,290 A câștigat cineva acest joc? 371 00:19:46,290 --> 00:19:49,260 Dacă au, vom imprima un mesaj victorie. 372 00:19:49,260 --> 00:19:51,680 Și vom termina jocul. 373 00:19:51,680 --> 00:19:54,510 >> Vom verifica, de asemenea, și a vedea dacă există o cravată. 374 00:19:54,510 --> 00:19:56,620 Va fi ușor pentru a vedea dacă există o cravată. 375 00:19:56,620 --> 00:20:00,700 Aceasta înseamnă că toate spațiile sunt pline, dar nu a fost un câștigător încă. 376 00:20:00,700 --> 00:20:03,580 Putem declara egalitate și de făcut. 377 00:20:03,580 --> 00:20:10,530 Apoi meat-- reală dacă este un jucător de mașini, 378 00:20:10,530 --> 00:20:14,120 vom permite asta mașină jucător pentru a căuta 379 00:20:14,120 --> 00:20:19,500 prin utilizarea acestui algoritm minimax, pentru a găsi cea mai frumoasă fază care se poate. 380 00:20:19,500 --> 00:20:22,310 Și apoi vom pune ca muta în sus. 381 00:20:22,310 --> 00:20:27,640 >> În caz contrar, dacă este un jucător uman, vom citi unele de intrare de la om. 382 00:20:27,640 --> 00:20:30,800 Și apoi, dacă este omul jucător sau player mașină, 383 00:20:30,800 --> 00:20:32,800 vom face un cuplu mic biți de verificarea erorilor, 384 00:20:32,800 --> 00:20:36,910 asigurați-vă că rămâne în limitele de dimensiunile reale ale consiliului 385 00:20:36,910 --> 00:20:40,040 pe care le avem, asigurați-vă că că spațiul este gol, 386 00:20:40,040 --> 00:20:43,570 că nimeni nu a pus-o piesă acolo deja. 387 00:20:43,570 --> 00:20:45,810 Și apoi vom pune doar o piesă de pe bord, 388 00:20:45,810 --> 00:20:51,550 schimba jucatorul din stratul următor, și incrementa câte mișcări s-au întâmplat. 389 00:20:51,550 --> 00:20:54,090 >> Asta e bucla principală pentru jocul nostru tic-tac-toe. 390 00:20:54,090 --> 00:20:57,000 391 00:20:57,000 --> 00:21:02,340 Minimax, atunci, este exact algoritmul pe care le înainte de. 392 00:21:02,340 --> 00:21:04,710 Singura schimbare pe care am făcut astfel încât să ne 393 00:21:04,710 --> 00:21:07,290 poate juca mai placi dimensionale este ne-am 394 00:21:07,290 --> 00:21:11,070 păstrat acest parametru suplimentar numit adâncime. 395 00:21:11,070 --> 00:21:14,870 Și adâncime doar spune dacă sunt căutarea jos prin acel copac 396 00:21:14,870 --> 00:21:19,022 și mă până în prezent în jos dincolo de unele adâncime nivel 397 00:21:19,022 --> 00:21:20,730 că pur și simplu nu vreau pentru a merge mai departe, 398 00:21:20,730 --> 00:21:25,630 Am de gând să se oprească și doar evalua pe forumurile de la acel moment. 399 00:21:25,630 --> 00:21:27,310 Voi verifica și a vedea dacă există un câștigător. 400 00:21:27,310 --> 00:21:29,240 Dacă există un câștigător, le-am întoarce. 401 00:21:29,240 --> 00:21:31,720 În caz contrar, voi merge printr-o buclă. 402 00:21:31,720 --> 00:21:34,380 Iar eu voi spune, pentru toate locațiile posibile 403 00:21:34,380 --> 00:21:38,080 pe care am putea, eventual, lua ca mutarea mea, voi 404 00:21:38,080 --> 00:21:43,760 construi un consiliu ipotetic care include mutarea mea la acel bord, 405 00:21:43,760 --> 00:21:45,960 și apoi solicită recursiv minimax. 406 00:21:45,960 --> 00:21:49,360 407 00:21:49,360 --> 00:21:53,900 >> Dacă e mutarea mea, am pentru a găsi una care are cel mai mare scor. 408 00:21:53,900 --> 00:21:58,710 Dacă e mutarea adversarului meu, vom găsi cel care are scorul minim. 409 00:21:58,710 --> 00:22:02,240 Și orice altceva este păstrarea doar record. 410 00:22:02,240 --> 00:22:04,789 Bine, așa că să vedem acest termen. 411 00:22:04,789 --> 00:22:06,830 De fapt, poate că putem obține un cuplu de voluntari 412 00:22:06,830 --> 00:22:09,930 de a veni și să se joace tic-tac-toe. 413 00:22:09,930 --> 00:22:12,780 [Auzite], și unul mai, două, chiar acolo. 414 00:22:12,780 --> 00:22:13,550 Haide sus. 415 00:22:13,550 --> 00:22:19,290 416 00:22:19,290 --> 00:22:23,650 >> Așa că hai să mergem mai departe și reporniți acest complet. 417 00:22:23,650 --> 00:22:24,150 Deci, hi. 418 00:22:24,150 --> 00:22:24,920 >> Audiența: Bună. 419 00:22:24,920 --> 00:22:25,420 >> Vorbitor: Care e numele tău? 420 00:22:25,420 --> 00:22:26,086 >> Audiența: Gorav. 421 00:22:26,086 --> 00:22:26,840 Vorbitor: Gorav. 422 00:22:26,840 --> 00:22:27,800 >> Audiența: Sunt Layla. 423 00:22:27,800 --> 00:22:29,490 >> Vorbitor: Și Layla, și Layla, îmi pare rău. 424 00:22:29,490 --> 00:22:30,384 Haide sus. 425 00:22:30,384 --> 00:22:32,050 Gorav, vom avea te duci mai întâi. 426 00:22:32,050 --> 00:22:37,710 Și am de gând să vă rog să fie o nu foarte bun jucător tic-tac-toe. 427 00:22:37,710 --> 00:22:40,130 OK, deci toată presiunea este oprit pe tine. 428 00:22:40,130 --> 00:22:44,660 Să vedem, însă, că mașina noastră jucător poate face de fapt ceva inteligent. 429 00:22:44,660 --> 00:22:45,310 Deci, mergeți mai departe. 430 00:22:45,310 --> 00:22:49,830 Ai de gând să tastați în care coordona doriți să pună X în. 431 00:22:49,830 --> 00:22:55,170 A0, OK, și mașina a plecat pune imediat și amprenta în A1. 432 00:22:55,170 --> 00:22:56,640 >> Pune O de pe placa. 433 00:22:56,640 --> 00:22:58,970 Bine, acum du-te mai departe. 434 00:22:58,970 --> 00:23:00,193 Unde ai vrea sa mergi? 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 Jucător noastră mașină a luat pătrat de mijloc, te-a blocat. 438 00:23:08,430 --> 00:23:10,320 Deci, asta a fost un bun, lucru perfect pentru o să facă. 439 00:23:10,320 --> 00:23:13,430 440 00:23:13,430 --> 00:23:14,250 L-ai blocat. 441 00:23:14,250 --> 00:23:15,210 Asta e excelent. 442 00:23:15,210 --> 00:23:16,390 Este nevoie de colț acolo. 443 00:23:16,390 --> 00:23:23,890 444 00:23:23,890 --> 00:23:30,430 >> Si va să te oblige să ia un ultim spațiu, B0. 445 00:23:30,430 --> 00:23:32,220 Și jocul se termină la egalitate. 446 00:23:32,220 --> 00:23:35,030 Dar el a jucat un rezonabil joc împotriva ta, nu? 447 00:23:35,030 --> 00:23:36,956 Bine, mulțumesc foarte mult, Gorav. 448 00:23:36,956 --> 00:23:40,860 >> [APLAUZE] 449 00:23:40,860 --> 00:23:44,723 >> Bine, Layla, vom la joc pe tine aici. 450 00:23:44,723 --> 00:23:46,940 >> Audiența: Oh, minunat. 451 00:23:46,940 --> 00:23:49,950 >> Vorbitor: Vom da te patru de patru tic-tac-toe. 452 00:23:49,950 --> 00:23:54,760 Acum, în patru de patru, va trebui să câștige cu patru într-un rând, nu trei într-un rând. 453 00:23:54,760 --> 00:23:56,135 Și e al tău. 454 00:23:56,135 --> 00:24:02,180 455 00:24:02,180 --> 00:24:04,420 Deci, Layla a luat D1. 456 00:24:04,420 --> 00:24:11,730 Ne acum de gând să urmeze jucător calculatorul nostru de aici. 457 00:24:11,730 --> 00:24:16,910 Trei de trei tic-tac-toe este un fel de lucru, care este ușor pentru noi toți. 458 00:24:16,910 --> 00:24:21,960 Dar este încă frumos pentru a vedea calculator jucător face mișcări inteligente. 459 00:24:21,960 --> 00:24:23,725 Patru de către patru ajunge la fi un pic mai complicat. 460 00:24:23,725 --> 00:24:42,960 461 00:24:42,960 --> 00:24:44,230 >> Bine făcut. 462 00:24:44,230 --> 00:24:46,210 Bine, așa că a Layla finalizat. 463 00:24:46,210 --> 00:24:48,270 Oh, și ar trebui să-au încheiat aici. 464 00:24:48,270 --> 00:24:51,870 Dar să facem o mai sus aici. 465 00:24:51,870 --> 00:24:53,480 Deci Layla, vă mulțumesc. 466 00:24:53,480 --> 00:24:55,112 Bine făcut. 467 00:24:55,112 --> 00:24:57,517 >> [APLAUZE] 468 00:24:57,517 --> 00:25:00,410 469 00:25:00,410 --> 00:25:04,750 >> Deci, jucătorul nostru tic-tac-toe merge prin și găsește locații, 470 00:25:04,750 --> 00:25:07,040 rezolvă-le folosind aceasta minimax. 471 00:25:07,040 --> 00:25:08,990 Și am avut o setare adâncime pe care astfel încât acesta 472 00:25:08,990 --> 00:25:11,010 nu ar fi prea repede, care este probabil, de ce 473 00:25:11,010 --> 00:25:16,790 Layla a fost capabil de a merge mai departe frumos ca ea a făcut, și a făcut foarte bine. 474 00:25:16,790 --> 00:25:20,450 Dar aceste sisteme pe care tocmai du-te prin brute force și 475 00:25:20,450 --> 00:25:23,870 du-te mai adânc, și mai adânc, și mai adânc, și să păstreze găsirea soluției 476 00:25:23,870 --> 00:25:29,890 care au nevoie, acele tipuri de sisteme sunt destul de succes la aceste, ei bine, 477 00:25:29,890 --> 00:25:32,700 jocuri standard. 478 00:25:32,700 --> 00:25:37,060 >> Și, de fapt, dacă ne uităm la o trei de trei joc tic-tac-toe, 479 00:25:37,060 --> 00:25:40,040 aceasta este de fapt o problemă rezolvată. 480 00:25:40,040 --> 00:25:45,430 Și aceasta este o diagramă minunat de la Randall Munroe la xkcd, 481 00:25:45,430 --> 00:25:52,130 arată care ar trebui să se mute te ia, având în vedere mută adversarului. 482 00:25:52,130 --> 00:25:56,420 Acest lucru este ceva ce am putea specificați cu ușurință înainte de timp. 483 00:25:56,420 --> 00:26:00,180 Dar ce se întâmplă pe măsură ce ajunge la mai mult Jocuri complexe, mai multe jocuri complicate, 484 00:26:00,180 --> 00:26:05,690 în cazul în care există panouri mari, mai posibilități, strategie mai profundă? 485 00:26:05,690 --> 00:26:09,660 >> Se pare că această forță brută căutarea încă 486 00:26:09,660 --> 00:26:14,150 nu destul de bine, cu excepția atunci când vei ajunge la punctul 487 00:26:14,150 --> 00:26:19,230 în cazul în care acel copac este atât de mare că nu se poate reprezenta toate. 488 00:26:19,230 --> 00:26:22,370 489 00:26:22,370 --> 00:26:28,280 Când nu se poate calcula întregul copac, atunci când nu se poate merge mai departe și de împingere 490 00:26:28,280 --> 00:26:32,204 te până la punctul în cazul în care le-ați ajuns întregul copac în memorie, 491 00:26:32,204 --> 00:26:34,370 sau dacă puteți să-l în memorie și se va doar 492 00:26:34,370 --> 00:26:39,200 luați prea mult timp pentru a căuta prin ea, trebuie să faci ceva mai inteligent. 493 00:26:39,200 --> 00:26:42,620 494 00:26:42,620 --> 00:26:46,450 >> În scopul de a face asta, trebuie să faci două lucruri. 495 00:26:46,450 --> 00:26:49,030 În primul rând, va trebui să găsească ceva mod de limitare a adâncimii dumneavoastră. 496 00:26:49,030 --> 00:26:50,370 Ei bine, asta e OK. 497 00:26:50,370 --> 00:26:55,740 Putem găsi unele minim frumos, bare și spune, poti sa te duci doar atât de adânc. 498 00:26:55,740 --> 00:27:00,890 Dar când faci asta, pe care le reprezintă au aceste placi parțial incomplete. 499 00:27:00,890 --> 00:27:04,770 Și trebuie să alegi, nu-mi place acest program parțial incomplete, 500 00:27:04,770 --> 00:27:08,600 sau acest program parțial incomplete? 501 00:27:08,600 --> 00:27:11,910 >> Și pe cele patru de patru joc tic-tac-toe, 502 00:27:11,910 --> 00:27:15,240 jucător calculatorul nostru coborat la partea de jos și a spus, 503 00:27:15,240 --> 00:27:16,800 Am două plăci diferite. 504 00:27:16,800 --> 00:27:17,940 Nici unul este un câștig. 505 00:27:17,940 --> 00:27:19,120 Nici unul este o pierdere. 506 00:27:19,120 --> 00:27:22,070 Nici unul este o cravată. 507 00:27:22,070 --> 00:27:24,100 Cum aleg între ele? 508 00:27:24,100 --> 00:27:26,200 Și nu a avut o mod inteligent de a face asta. 509 00:27:26,200 --> 00:27:28,910 510 00:27:28,910 --> 00:27:32,850 >> Vedem acest tip de Evaluarea se întâmplă tot timpul 511 00:27:32,850 --> 00:27:35,290 cum vom ajunge în jocuri mai complexe. 512 00:27:35,290 --> 00:27:37,600 Șahul este un exemplu foarte bun. 513 00:27:37,600 --> 00:27:41,550 În șah, avem, în primul rând de toate, un consiliu mare. 514 00:27:41,550 --> 00:27:43,370 Avem mult mai multe piese. 515 00:27:43,370 --> 00:27:47,930 Și poziționarea acestor piese și modul în care aceste piese se deplaseze 516 00:27:47,930 --> 00:27:50,370 este extrem de important. 517 00:27:50,370 --> 00:27:53,700 Deci, dacă vreau să utilizeze minimax, Trebuie să fie în măsură să precizeze 518 00:27:53,700 --> 00:27:58,240 și spune, acest consiliu, în cazul în care nimeni nu a câștigat sau pierdut încă, 519 00:27:58,240 --> 00:28:04,310 este oarecum mai bine decât acest alt bord, în cazul în care nimeni nu a câștigat sau pierdut. 520 00:28:04,310 --> 00:28:06,740 >> Pentru a face asta, s-ar putea face lucruri cum ar fi I s-ar putea doar 521 00:28:06,740 --> 00:28:10,787 conta cât de multe piese nu am și cât de multe piese ai? 522 00:28:10,787 --> 00:28:12,870 Sau s-ar putea da diferite piese diferite puncte. 523 00:28:12,870 --> 00:28:14,420 Regina mea este în valoare de 20 de puncte. 524 00:28:14,420 --> 00:28:16,500 Pion dvs. este în valoare de un punct. 525 00:28:16,500 --> 00:28:18,920 Cine are mai multe puncte totală? 526 00:28:18,920 --> 00:28:22,300 Sau s-ar putea lua în considerare lucruri de genul, care are poziția mai bine de bord? 527 00:28:22,300 --> 00:28:26,820 A cărui rândul său, este următoarea, tot ce pot 528 00:28:26,820 --> 00:28:31,220 nu pentru a evalua cu mai multă precizie care dintre aceste posibilități 529 00:28:31,220 --> 00:28:34,660 este mai bine fără având în vedere în mod exhaustiv 530 00:28:34,660 --> 00:28:36,565 fiecare miscare care ar putea veni după aceea. 531 00:28:36,565 --> 00:28:39,740 532 00:28:39,740 --> 00:28:45,130 >> Acum, pentru a face acest lucru, unul din lucrurile pe care e 533 00:28:45,130 --> 00:28:48,680 va deveni cu adevarat important pentru noi nu este doar în mișcare drept 534 00:28:48,680 --> 00:28:53,720 până la un anumit adâncime limită, dar fiind în măsură să spun, 535 00:28:53,720 --> 00:28:59,380 una dintre aceste idei pe care am au este atât de rău că este 536 00:28:59,380 --> 00:29:02,280 nu în valoare de vedere toate căile posibile 537 00:29:02,280 --> 00:29:06,680 că lucrurile pot merge din rău în mai rău. 538 00:29:06,680 --> 00:29:12,760 Pentru a face acest lucru, vom adăuga în minimax un principiu numit alph-beta. 539 00:29:12,760 --> 00:29:16,340 Și alfa-beta, spune, dacă aveți o idee rea, 540 00:29:16,340 --> 00:29:22,840 nu pierde timpul încercând să afla exact cât de rău este. 541 00:29:22,840 --> 00:29:24,990 >> Deci, aici e ceea ce vom face. 542 00:29:24,990 --> 00:29:28,620 Vom lua la fel principii pe care le-am avut înainte de, 543 00:29:28,620 --> 00:29:32,200 de același tip minimax de căutare, doar suntem 544 00:29:32,200 --> 00:29:37,570 va urmări nu numai a valorile efective pe care le avem, dar vom 545 00:29:37,570 --> 00:29:41,440 urmări cel mai bun posibil valoare care am putut obține, 546 00:29:41,440 --> 00:29:45,700 și cel mai rău posibil rezultat am putea avea. 547 00:29:45,700 --> 00:29:50,470 Și în orice moment cel mai rău posibil lucru este în căutarea probabil, 548 00:29:50,470 --> 00:29:52,694 Voi abandona acea parte a arborelui. 549 00:29:52,694 --> 00:29:54,610 Și nici măcar nu va deranja mai uita la ea. 550 00:29:54,610 --> 00:29:57,680 551 00:29:57,680 --> 00:30:02,600 >> Bine, asa ca ne imaginăm că vom începe cu aceeași copac exact joc. 552 00:30:02,600 --> 00:30:05,200 Și acum vom merge din nou, tot drumul în jos 553 00:30:05,200 --> 00:30:07,200 pentru că colțul din stânga jos. 554 00:30:07,200 --> 00:30:11,180 Și prin aceea că partea de jos colțul din stânga, avem arata si vom evalua acest forum. 555 00:30:11,180 --> 00:30:15,700 Poate e un patru de către patru tic-tac-toe bord, sau poate e o tabla de sah. 556 00:30:15,700 --> 00:30:18,620 Dar ne uităm la ea, și vom evalua l, si ajungem o valoare de opt. 557 00:30:18,620 --> 00:30:22,290 558 00:30:22,290 --> 00:30:28,030 >> În acel moment, știm că vom obține cel puțin 559 00:30:28,030 --> 00:30:32,380 opt puncte din această decizie jos. 560 00:30:32,380 --> 00:30:36,620 Nu contează ce celălalt două sunt, că șapte și două. 561 00:30:36,620 --> 00:30:38,580 Acestea ar putea fi orice valori au vrut să fie. 562 00:30:38,580 --> 00:30:41,279 Vom ajunge la puțin opt puncte. 563 00:30:41,279 --> 00:30:43,070 Bine, dar am putut mergeți mai departe și să verificați. 564 00:30:43,070 --> 00:30:45,080 Poate una dintre ele este mai bună decât opt. 565 00:30:45,080 --> 00:30:46,000 >> Ne uităm la șapte. 566 00:30:46,000 --> 00:30:46,910 E mai bine decât opt? 567 00:30:46,910 --> 00:30:48,680 Nu, nu se schimba opinia noastră, la toate. 568 00:30:48,680 --> 00:30:49,460 Ne uităm la două. 569 00:30:49,460 --> 00:30:50,543 E mai bine decât opt? 570 00:30:50,543 --> 00:30:52,580 Nu, nu se schimba opinia noastră, la toate. 571 00:30:52,580 --> 00:30:55,480 Deci, acum știm că am epuizat toate posibilitățile de acolo. 572 00:30:55,480 --> 00:30:58,330 Noi nu mergi la a lua ceva mai bun decât opt. 573 00:30:58,330 --> 00:31:01,310 Vom obține exact opt. 574 00:31:01,310 --> 00:31:03,825 >> Și așa ne-am schimba acel nod și să zicem, care este acum o certitudine. 575 00:31:03,825 --> 00:31:07,010 576 00:31:07,010 --> 00:31:10,270 Noi mergem sus cu un nivel mai sus, care. 577 00:31:10,270 --> 00:31:13,820 Și acum știm ceva despre acest nivel de reducere la minimum. 578 00:31:13,820 --> 00:31:18,560 Noi știm că nu mergi la a lua mai mult de opt puncte în cazul în care vom merge în jos 579 00:31:18,560 --> 00:31:20,910 această direcție. 580 00:31:20,910 --> 00:31:22,980 Pentru că, chiar dacă cele alte două ramuri se dovedesc 581 00:31:22,980 --> 00:31:26,170 să fie fantastic și merită mii de puncte fiecare, 582 00:31:26,170 --> 00:31:31,666 adversarul nostru ne va da minim, și să ne dea opt. 583 00:31:31,666 --> 00:31:32,790 Bine, bine, să vedem. 584 00:31:32,790 --> 00:31:35,190 Vom continua pe această cale. 585 00:31:35,190 --> 00:31:38,490 Mergem până la care mijloc pe stânga. 586 00:31:38,490 --> 00:31:40,560 Privim în jos și vom vedea există o nouă. 587 00:31:40,560 --> 00:31:45,590 Știm că vom pentru a obține cel puțin nouă puncte de merge în jos 588 00:31:45,590 --> 00:31:47,720 acest drum de mijloc. 589 00:31:47,720 --> 00:31:52,110 Și la acest punct, putem întrerupe doar. 590 00:31:52,110 --> 00:31:56,910 Și putem spune, uite, cunosc în nivelul de mai sus, 591 00:31:56,910 --> 00:32:01,160 Mă duc pentru a obține nu mai mult de opt subliniază de merge în jos această direcție. 592 00:32:01,160 --> 00:32:05,670 Dar dacă m-am dus în jos de mijloc calea în loc de calea din stânga, 593 00:32:05,670 --> 00:32:08,980 Mi-ar obține cel puțin nouă puncte. 594 00:32:08,980 --> 00:32:13,590 >> Adversarul meu nu este de gând să lasă-mă să merg în jos această cale de mijloc. 595 00:32:13,590 --> 00:32:14,650 Ei ajung să aleagă. 596 00:32:14,650 --> 00:32:18,140 Și ei vor alege calea spre stânga spre opt, 597 00:32:18,140 --> 00:32:23,650 mai degrabă decât în ​​jos de mijloc spre ceea ce este cel puțin nouă puncte. 598 00:32:23,650 --> 00:32:25,334 Deci, la acel moment, voi opri. 599 00:32:25,334 --> 00:32:26,500 Iar eu voi spune, știi ce? 600 00:32:26,500 --> 00:32:29,990 Nu trebuie să se uite nici o mai mult în această direcție. 601 00:32:29,990 --> 00:32:32,270 Pentru că nu am de gând să ajung acolo. 602 00:32:32,270 --> 00:32:36,660 >> Pot sări peste asta, și pot sări peste faptul că șase, 603 00:32:36,660 --> 00:32:39,720 pentru că niciodată nu se va întâmpla. 604 00:32:39,720 --> 00:32:42,470 Așa că voi merge în jos și voi ia în considerare posibilitatea următor. 605 00:32:42,470 --> 00:32:44,830 Mă duc acolo și spun, văd două. 606 00:32:44,830 --> 00:32:47,125 Eu știu dacă am ajunge la aici, eu sunt mergi la a lua cel puțin două. 607 00:32:47,125 --> 00:32:49,810 608 00:32:49,810 --> 00:32:50,470 BINE. 609 00:32:50,470 --> 00:32:51,520 Am continua. 610 00:32:51,520 --> 00:32:52,440 Văd o patru. 611 00:32:52,440 --> 00:32:54,920 Știu că mergi la a lua cel puțin patru. 612 00:32:54,920 --> 00:32:57,200 Există încă o mulțime între patru și opt, deși. 613 00:32:57,200 --> 00:32:58,454 Așa că am continua. 614 00:32:58,454 --> 00:32:59,870 Mă uit în jos și văd există un. 615 00:32:59,870 --> 00:33:01,614 Bine, știu dacă Am merge în jos această cale, 616 00:33:01,614 --> 00:33:03,280 Am de gând să fie în măsură de a alege patru. 617 00:33:03,280 --> 00:33:06,540 618 00:33:06,540 --> 00:33:08,980 Ce se adversarul meu de gând să faci? 619 00:33:08,980 --> 00:33:12,310 Între ceva care îmi dă opt, ceea ce îmi dă patru, 620 00:33:12,310 --> 00:33:14,730 si ceva care îmi dă cel puțin nouă, 621 00:33:14,730 --> 00:33:17,550 Ei bine, el va să-mi dea patru. 622 00:33:17,550 --> 00:33:20,110 Și știu acum la foarte sus, am de gând 623 00:33:20,110 --> 00:33:23,145 pentru a putea obține cel puțin patru puncte din acest joc. 624 00:33:23,145 --> 00:33:27,030 625 00:33:27,030 --> 00:33:30,900 >> Ideea de alfa-beta este să taie părți copac atât de 626 00:33:30,900 --> 00:33:32,530 că eu nu mai uita la ei. 627 00:33:32,530 --> 00:33:35,964 Dar încă arată ca am fost uita la o mulțime de copac. 628 00:33:35,964 --> 00:33:36,880 Să continuăm în jos. 629 00:33:36,880 --> 00:33:38,305 Vom merge pe următoarea acum. 630 00:33:38,305 --> 00:33:39,680 Jos în partea de jos, mi se pare unul. 631 00:33:39,680 --> 00:33:41,030 Știu că mergi la a lua cel puțin unul. 632 00:33:41,030 --> 00:33:41,690 Am sa mai caut. 633 00:33:41,690 --> 00:33:42,625 >> Mi se pare o perioada de trei. 634 00:33:42,625 --> 00:33:44,250 Știu că mergi la a lua cel puțin trei. 635 00:33:44,250 --> 00:33:44,840 Am continua. 636 00:33:44,840 --> 00:33:45,660 Mi se pare o perioada de cinci. 637 00:33:45,660 --> 00:33:49,760 Știu că mergi la a lua cinci dacă mă în această cale. 638 00:33:49,760 --> 00:33:52,580 Și eu știu, de asemenea, atunci că adversarul meu, dacă aș 639 00:33:52,580 --> 00:33:55,510 alege mijlocul de cele trei opțiuni mari, 640 00:33:55,510 --> 00:34:01,440 el va să-mi dea ceva care este mai puțin de cinci ori. 641 00:34:01,440 --> 00:34:02,150 >> BINE. 642 00:34:02,150 --> 00:34:03,400 Pot continua acolo. 643 00:34:03,400 --> 00:34:06,470 Mă pot uita în jos și am pot spune, ce am de gând 644 00:34:06,470 --> 00:34:08,239 pentru a obține în cazul în care mă duc pe calea de mijloc? 645 00:34:08,239 --> 00:34:09,909 Mă duc pentru a obține, de asemenea, trei acolo. 646 00:34:09,909 --> 00:34:12,080 Mă duc pentru a obține ceva asta e cel puțin trei. 647 00:34:12,080 --> 00:34:16,030 Există încă lucruri între trei și cinci, așa că sa mai caut. 648 00:34:16,030 --> 00:34:20,203 Oh, o nouă, voi cu siguranta ia că peste trei. 649 00:34:20,203 --> 00:34:22,744 Mă duc pentru a obține cel puțin nouă dacă mă duc în jos această cale de mijloc. 650 00:34:22,744 --> 00:34:25,530 651 00:34:25,530 --> 00:34:31,010 >> Acum adversarul meu se oprește și spune, uite, nu există nici un punct mai. 652 00:34:31,010 --> 00:34:33,669 Știu că-mi adversar minimizarea, e 653 00:34:33,669 --> 00:34:36,210 O să-mi dea un lucru care este mai mică sau egală cu cinci, 654 00:34:36,210 --> 00:34:39,030 mai degrabă decât un lucru care este mai mare sau egală cu noua. 655 00:34:39,030 --> 00:34:39,530 Ma opresc. 656 00:34:39,530 --> 00:34:40,779 Eu nu mai uita la asta. 657 00:34:40,779 --> 00:34:43,280 Am continua. 658 00:34:43,280 --> 00:34:44,850 >> Mă uit în jos pe asta. 659 00:34:44,850 --> 00:34:46,370 Jos la partea de jos, mi se pare o șase. 660 00:34:46,370 --> 00:34:50,040 Știu că mergi la a lua cel puțin șase. 661 00:34:50,040 --> 00:34:53,130 Și ce pot face? 662 00:34:53,130 --> 00:34:54,877 Mă pot opri. 663 00:34:54,877 --> 00:34:57,460 Pentru că există o alegere între ceva care este de cel puțin șase 664 00:34:57,460 --> 00:34:59,250 și ceva care este mai puțin de cinci, el este 665 00:34:59,250 --> 00:35:02,570 O să-mi dea un lucru care este mai mic de cinci. 666 00:35:02,570 --> 00:35:04,779 Și acum știu că voi pentru a obține exact această alegere. 667 00:35:04,779 --> 00:35:06,195 Am de gând pentru a obține că cinci alegere. 668 00:35:06,195 --> 00:35:08,980 669 00:35:08,980 --> 00:35:10,010 >> Mă duc înapoi până la partea de sus. 670 00:35:10,010 --> 00:35:11,450 Care am de gând să alege între ceva 671 00:35:11,450 --> 00:35:14,449 e mai mare sau egal cu patru, sau ceva care este egal cu cinci? 672 00:35:14,449 --> 00:35:17,140 Am de gând să ia ceva asta e cel puțin cinci. 673 00:35:17,140 --> 00:35:20,490 Mă duc pe ultimul drum, toate drumul până la partea de jos. 674 00:35:20,490 --> 00:35:21,260 Există un singur. 675 00:35:21,260 --> 00:35:23,410 OK, cel puțin am de gând pentru a obține un punct. 676 00:35:23,410 --> 00:35:24,427 Am continua. 677 00:35:24,427 --> 00:35:25,760 Două, oh, e mai bine decât unul. 678 00:35:25,760 --> 00:35:27,100 Mă duc pentru a obține cel puțin două. 679 00:35:27,100 --> 00:35:28,610 Mi se pare o perioada de trei. 680 00:35:28,610 --> 00:35:31,450 Știu că mergi la a lua trei. 681 00:35:31,450 --> 00:35:34,690 >> Și punctul de mai sus care, adversarul meu se întâmplă 682 00:35:34,690 --> 00:35:38,540 să-mi dea ceva care este mai mică sau egală cu trei. 683 00:35:38,540 --> 00:35:40,940 Și acum mă pot opri. 684 00:35:40,940 --> 00:35:46,290 Pentru că în alegerea între mine fiind capabil de a obține un cinci și adversarul meu 685 00:35:46,290 --> 00:35:52,290 să-mi dea ceva mai puțin de trei, Sunt mereu va avea ca cinci. 686 00:35:52,290 --> 00:35:56,810 Deci, eu nu evaluează că partea de jos a arborelui, la toate. 687 00:35:56,810 --> 00:35:59,470 >> Acum, acest lucru poate părea minor. 688 00:35:59,470 --> 00:36:03,630 Dar când biți mici de aritmetică, mai mare decât și mai puțin, 689 00:36:03,630 --> 00:36:10,640 poate tăia părți întregi ale acest copac exponențial în creștere, 690 00:36:10,640 --> 00:36:14,280 care duce la o imensă cantitatea de economii, economii 691 00:36:14,280 --> 00:36:17,630 că sunt suficient de mare pe care am poate începe să joci competitiv 692 00:36:17,630 --> 00:36:21,330 mai multe jocuri complexe. 693 00:36:21,330 --> 00:36:27,030 >> În regulă, dacă ne uităm la dimensiunea și complexitatea diferitelor jocuri, 694 00:36:27,030 --> 00:36:29,470 tic-tac-toe a fost exemplul nostru simplu. 695 00:36:29,470 --> 00:36:32,150 Avem un consiliu de mic, trei de trei. 696 00:36:32,150 --> 00:36:36,030 Primim, la cele mai multe, o medie de aproximativ patru opțiuni diferite 697 00:36:36,030 --> 00:36:38,440 cum trecem prin joc. 698 00:36:38,440 --> 00:36:42,720 Avem undeva în jur de 10 la cincea posibile frunze diferite. 699 00:36:42,720 --> 00:36:45,200 Și construirea unui tic-tac-toe jucător, ei bine, ne-am făcut-o. 700 00:36:45,200 --> 00:36:47,460 Este ușor. 701 00:36:47,460 --> 00:36:49,890 >> Dacă mergem până la ceva mai mult complex, cum ar fi Connect Four. 702 00:36:49,890 --> 00:36:53,170 Îți amintești acest joc în cazul în care picătură mici jetoanele in? 703 00:36:53,170 --> 00:36:58,490 Este un șase de șapte bord, nu atât de mult mai mare, încă 704 00:36:58,490 --> 00:37:00,770 are aproximativ aceeași ramificare ca factor tic-tac-toe. 705 00:37:00,770 --> 00:37:05,410 Am vreo patru opțiuni unde pot pune lucrurile în. 706 00:37:05,410 --> 00:37:10,760 Dar acum, am o mult mai mult conduce, 10 la puterea 21. 707 00:37:10,760 --> 00:37:14,440 Asta e ceva care este ușor destul că am rezolvat imediat. 708 00:37:14,440 --> 00:37:17,560 >> Dame, mai mult te complex-- primit un opt de opt bord. 709 00:37:17,560 --> 00:37:20,570 Ești doar pe jumătate din le în orice moment, totuși. 710 00:37:20,570 --> 00:37:24,930 Ai o ramificare factor care e aproximativ 2,8. 711 00:37:24,930 --> 00:37:28,160 Ei bine, ne-am luat o pereche se mută puteți lua. 712 00:37:28,160 --> 00:37:33,870 Ai aproximativ 10 până la frunze 31-, spații mai mari, și mai mari, și mai mari. 713 00:37:33,870 --> 00:37:37,340 După cum am să căutați prin acele spații mai mari, 714 00:37:37,340 --> 00:37:42,220 că atunci lucruri ca alfa-beta și posibilitatea de a tăia ramuri întregi 715 00:37:42,220 --> 00:37:44,420 devine esențială. 716 00:37:44,420 --> 00:37:47,440 >> Acum, dame a fost destul de ușor în 1992. 717 00:37:47,440 --> 00:37:51,400 Un program de calculator numit Chinook bate dame lume 718 00:37:51,400 --> 00:37:53,590 campion, Marion Tinsley. 719 00:37:53,590 --> 00:37:57,260 Și de atunci, nici un jucător maestru uman are 720 00:37:57,260 --> 00:38:02,290 fost în măsură să bată cel mai bun sisteme de calcul. 721 00:38:02,290 --> 00:38:06,570 Dacă ne uităm la ceva de genul șah, acum din nou, avem un opt de opt bord. 722 00:38:06,570 --> 00:38:09,870 Dar avem mult mai complex piese, mult mai complexe. mișcări 723 00:38:09,870 --> 00:38:14,610 Avem un factor de ramificare de aproximativ 35, 35 posibile miscari, în medie, 724 00:38:14,610 --> 00:38:20,030 care pot lua, și o stare spațiu, un număr de frunze 725 00:38:20,030 --> 00:38:28,950 care este crescut la 10 la puterea 123, număr enorm de posibilități. 726 00:38:28,950 --> 00:38:35,570 >> Chiar și așa, procesoarele moderne sunt în măsură să facă acest lucru cu succes. 727 00:38:35,570 --> 00:38:43,900 În 1995 și apoi în 1997, un calculator program numit Deep Blue construit de IBM 728 00:38:43,900 --> 00:38:49,601 care a fugit pe un supercomputer gigant bate campion mondial actual, 729 00:38:49,601 --> 00:38:50,225 Garry Kasparov. 730 00:38:50,225 --> 00:38:54,000 731 00:38:54,000 --> 00:38:56,650 Acesta a fost un punct de cotitură. 732 00:38:56,650 --> 00:39:00,620 Astăzi, însă, aceeași prelucrare putere stă pe MacBook mea. 733 00:39:00,620 --> 00:39:04,180 734 00:39:04,180 --> 00:39:06,440 >> Viteza de procesare păstrează tot mai repede. 735 00:39:06,440 --> 00:39:09,500 Putem evalua în ce mai mult placi mai repede și mai repede. 736 00:39:09,500 --> 00:39:14,550 Dar, mai important, ne-am mai bine funcții de evaluare și o mai bună de tăiere 737 00:39:14,550 --> 00:39:15,460 Metode. 738 00:39:15,460 --> 00:39:19,560 Deci, putem căuta în mai mult spațiu complex. 739 00:39:19,560 --> 00:39:22,350 Cea mai mare a consiliului Jocuri pe care le putem gândi, 740 00:39:22,350 --> 00:39:26,310 ceva de genul Go care este a primit un 19 de 19 de bord, 741 00:39:26,310 --> 00:39:32,490 acum dintr-o dată, suntem dincolo de punctul de în cazul în care sisteme de calcul poate câștiga. 742 00:39:32,490 --> 00:39:34,530 Nu e nici de calcul Sistemul acolo 743 00:39:34,530 --> 00:39:38,880 care poate bate un jucător profesionist Go. 744 00:39:38,880 --> 00:39:45,000 Cele mai bune sisteme de astăzi rang vorba un fel de nivel de amatori bine. 745 00:39:45,000 --> 00:39:49,285 Deci există încă destul de un pic acolo, care nu se poate ajunge la încă. 746 00:39:49,285 --> 00:39:51,840 747 00:39:51,840 --> 00:39:55,360 >> În regulă, acestea jocuri de masă tradiționale, 748 00:39:55,360 --> 00:39:58,560 aceste tipuri de sisteme în cazul în care ne-am construi acest minimax, fie că are 749 00:39:58,560 --> 00:40:06,300 alfa-beta sau nu, acești algoritmi lucreze pentru că există anumite constrângeri. 750 00:40:06,300 --> 00:40:08,520 Avem informații perfectă despre lume. 751 00:40:08,520 --> 00:40:11,690 Știm unde toate piesele sunt. 752 00:40:11,690 --> 00:40:13,570 Lumea este static. 753 00:40:13,570 --> 00:40:16,220 Nimeni nu pentru a muta piese în jurul valorii de în timp ce eu sunt 754 00:40:16,220 --> 00:40:20,640 stând acolo gândire, luând rândul meu. 755 00:40:20,640 --> 00:40:23,140 Există un spațiu de acțiune care este discretă. 756 00:40:23,140 --> 00:40:26,900 Pot pune pion mea aici, sau pot pune pion mea aici. 757 00:40:26,900 --> 00:40:30,520 Nu am voie să pun pion meu pe linia între cele două pătrate. 758 00:40:30,520 --> 00:40:34,430 759 00:40:34,430 --> 00:40:36,520 >> Și, în sfârșit, acțiunile sunt deterministe. 760 00:40:36,520 --> 00:40:39,790 Știu că, dacă spun, turn de cavaler trei, 761 00:40:39,790 --> 00:40:44,660 Tura mea se va termina până la cavaler trei, atâta timp cât este o mutare validă. 762 00:40:44,660 --> 00:40:47,830 Nu e nici o incertitudine cu privire la acest lucru. 763 00:40:47,830 --> 00:40:52,490 Acum, așa cum am merge la mai mult diferite tipuri de jocuri, 764 00:40:52,490 --> 00:40:55,960 avem de a sparge aceste ipoteze. 765 00:40:55,960 --> 00:41:00,020 >> Ce se întâmplă dacă mă duc la ceva ca jocurile video clasice? 766 00:41:00,020 --> 00:41:04,180 Iată o selecție de filme jocuri din Atari 2600. 767 00:41:04,180 --> 00:41:05,180 Ce am acolo? 768 00:41:05,180 --> 00:41:08,440 Am Frogger, Space Invaders, Capcana, și Pac-Man. 769 00:41:08,440 --> 00:41:11,290 770 00:41:11,290 --> 00:41:14,840 Ce tipuri de medii nu am aici acum? 771 00:41:14,840 --> 00:41:16,900 Care dintre aceste ipoteze nu am de a sparge? 772 00:41:16,900 --> 00:41:19,410 773 00:41:19,410 --> 00:41:21,570 >> Ei bine, depinde de joc. 774 00:41:21,570 --> 00:41:28,170 Aș putea juca șah pe 2600, și ar fi la fel ca înainte. 775 00:41:28,170 --> 00:41:33,020 Pentru cele mai multe dintre aceste sisteme, nu e cunoștințe complete despre lume. 776 00:41:33,020 --> 00:41:36,300 Nu e complet acțiuni deterministe. 777 00:41:36,300 --> 00:41:38,330 Dar, de obicei, la nivel mondial nu mai static. 778 00:41:38,330 --> 00:41:41,970 Asta este, în timp ce stau acolo așteptare, ceva se mișcă. 779 00:41:41,970 --> 00:41:44,320 Fantome vin să mă ia. 780 00:41:44,320 --> 00:41:46,570 Scorpionul este următorul mine dedesubt. 781 00:41:46,570 --> 00:41:48,880 Invadatorii spațiu sunt vine mai aproape. 782 00:41:48,880 --> 00:41:54,020 783 00:41:54,020 --> 00:41:55,510 Cât de bine putem face împotriva astea? 784 00:41:55,510 --> 00:41:58,640 785 00:41:58,640 --> 00:42:02,790 >> Acum câțiva ani, Google a un proiect numit 786 00:42:02,790 --> 00:42:12,030 DeepMind, unde au antrenat un calculator Programul pentru a juca Atari 2600 jocuri. 787 00:42:12,030 --> 00:42:16,120 Și dacă credeți că acest nu este gravă afaceri, rezultatele studiului lor 788 00:42:16,120 --> 00:42:19,920 au fost publicate in Nature, așa aproape la fel de bun o publicație 789 00:42:19,920 --> 00:42:22,500 cum puteți obține, eventual,. 790 00:42:22,500 --> 00:42:24,340 Și iată cum bine au efectuat. 791 00:42:24,340 --> 00:42:29,220 >> Ei au un algoritm care sa așezat și am privit doar intrările ecran. 792 00:42:29,220 --> 00:42:34,080 A ajuns nici un fel de instrucțiuni despre regulile de joc. 793 00:42:34,080 --> 00:42:42,610 Și trebuia să dau seama, bazate pe scorul, cat de bine a fost făcut. 794 00:42:42,610 --> 00:42:46,560 Acesta a fost un sistem care utilizează ceva numita învățare armare. 795 00:42:46,560 --> 00:42:48,380 Asta este, se uita la scorul. 796 00:42:48,380 --> 00:42:51,620 Și dacă a primit un scor bun, a spus, Ar trebui să amintesc aceste lucruri. 797 00:42:51,620 --> 00:42:53,310 Și ar trebui să fac pe cei din nou. 798 00:42:53,310 --> 00:42:56,450 Și dacă a primit un scor rau, a spus, Nu ar trebui să facă aceste lucruri din nou. 799 00:42:56,450 --> 00:42:59,750 800 00:42:59,750 --> 00:43:03,430 >> Aceasta este performanța acestor sisteme instruiți 801 00:43:03,430 --> 00:43:07,490 permis să joace pentru un câteva ore pe fiecare joc, 802 00:43:07,490 --> 00:43:12,490 comparate cu jucătorii profesioniști. 803 00:43:12,490 --> 00:43:19,670 Deci, pentru toate jocurile care sunt în partea stângă a acestei linii, 804 00:43:19,670 --> 00:43:25,920 acest program de calculator auto-instruit depasit gamerii profesioniști. 805 00:43:25,920 --> 00:43:29,690 Și pentru tot ceea ce la drept, jucătorii profesioniști 806 00:43:29,690 --> 00:43:30,920 erau încă cel mai bun. 807 00:43:30,920 --> 00:43:34,040 808 00:43:34,040 --> 00:43:36,850 Pentru ceva care știa nimic despre regulile, care 809 00:43:36,850 --> 00:43:43,020 nu știa nimic despre structura jocuri, acest lucru este de performanță impresionantă. 810 00:43:43,020 --> 00:43:45,660 Și aceasta este ceea ce suntem capabili să facem azi. 811 00:43:45,660 --> 00:43:50,239 >> OK, ai spus, dar dacă cred despre AI în jocuri, 812 00:43:50,239 --> 00:43:52,530 în mod normal, ne gândim la lucruri pe care le putem de fapt 813 00:43:52,530 --> 00:43:54,180 stai jos și să se joace impotriva. 814 00:43:54,180 --> 00:43:58,760 Dacă stau jos și mă joc StarCraft, sau mă joc gratuit Sieve, 815 00:43:58,760 --> 00:44:01,870 adversarul calculator este persoană controlul Zerg, 816 00:44:01,870 --> 00:44:06,770 sau controlul altă civilizație. 817 00:44:06,770 --> 00:44:11,920 Cum acei jucători găsi de fapt, mișcările? 818 00:44:11,920 --> 00:44:18,810 >> Ei bine, aceste jocuri sunt structurate același fel de mult ca și jocurile noastre de bord, 819 00:44:18,810 --> 00:44:22,250 aceste jocuri că vom apel colectiv patru jocuri X, 820 00:44:22,250 --> 00:44:26,040 explora, expand-- uita cele. 821 00:44:26,040 --> 00:44:26,980 Ce sunt ei? 822 00:44:26,980 --> 00:44:32,150 Exploreaza, extinde, și stinge, Cred că este ultima. 823 00:44:32,150 --> 00:44:36,060 Dar sunt de fapt explorare și cuceri jocuri. 824 00:44:36,060 --> 00:44:41,020 De obicei, adversarul de calculator nu are informații limitate. 825 00:44:41,020 --> 00:44:45,486 Ei nu știu exact ce-i întâmplă în spatele că ceață de război. 826 00:44:45,486 --> 00:44:47,735 Ei nu ajunge pentru a vedea ce aveți în inventar. 827 00:44:47,735 --> 00:44:50,240 828 00:44:50,240 --> 00:44:52,800 >> Există un mediu care este dinamic. 829 00:44:52,800 --> 00:44:56,180 Totul se schimbă tot timpul. 830 00:44:56,180 --> 00:45:00,290 Tu nu te să stea și așteptați să ia mutarea ta. 831 00:45:00,290 --> 00:45:02,810 Dar cele mai multe lucruri sunt încă discrete. 832 00:45:02,810 --> 00:45:04,200 Trebuie să pun orașul meu aici. 833 00:45:04,200 --> 00:45:06,750 Sau am să pun orașul meu aici. 834 00:45:06,750 --> 00:45:08,950 Și totul este determinist. 835 00:45:08,950 --> 00:45:14,660 Când spun, mutați unitatea mea aici, unitatea mea mută aici, cu excepția cazului în un obstacol brusc 836 00:45:14,660 --> 00:45:17,700 intră în joc. 837 00:45:17,700 --> 00:45:21,610 Acum, asta nu e tot de calculator jocuri care sunt acolo azi. 838 00:45:21,610 --> 00:45:27,320 >> Dacă mă duc și eu să joace un prim tip persoană joc, ceva de genul hoț sau Fallout 839 00:45:27,320 --> 00:45:33,350 sau Skyrim, sau Halo, acum Am adversarii de calculator 840 00:45:33,350 --> 00:45:37,860 că sunt acolo, care au o situație foarte diferită. 841 00:45:37,860 --> 00:45:40,020 Ei au, din nou, informații limitate. 842 00:45:40,020 --> 00:45:43,420 Ei doar se poate vedea o anumit domeniu de vedere. 843 00:45:43,420 --> 00:45:45,180 Mediul este încă dinamic. 844 00:45:45,180 --> 00:45:48,280 Lucrurile se schimbă tot timpul. 845 00:45:48,280 --> 00:45:52,300 >> Dar acum am o mult mai spațiu de acțiune continuă. 846 00:45:52,300 --> 00:45:57,170 Pot fi doar trage cu ochiul o pic din ușă. 847 00:45:57,170 --> 00:46:00,650 Și unele jocuri, mi acțiuni sunt stocastice. 848 00:46:00,650 --> 00:46:04,590 I a lua pentru a încerca să sari peste zidul, dar am o șansă de a nu. 849 00:46:04,590 --> 00:46:08,280 850 00:46:08,280 --> 00:46:14,550 Aceste tipuri de jocuri se apropie și mai aproape de tipurile de controlere 851 00:46:14,550 --> 00:46:17,330 pe care le construim în robotică. 852 00:46:17,330 --> 00:46:21,050 >> În robotică, trebuie să presupunem că avem informații limitate. 853 00:46:21,050 --> 00:46:23,070 Avem senzori care spune-ne despre lume. 854 00:46:23,070 --> 00:46:25,860 Avem o mereu schimbare, mediu dinamic. 855 00:46:25,860 --> 00:46:30,440 Avem o lume în care spațiul este continuă, mai degrabă decât discrete. 856 00:46:30,440 --> 00:46:36,260 Și acțiunile noastre, atunci când încercăm le, au o șansă de a nu. 857 00:46:36,260 --> 00:46:40,960 Și, de fapt, joc modern controlere pentru adversarul tău Halo, 858 00:46:40,960 --> 00:46:48,690 sau pentru cei NPC-uri din Skyrim, practic rula arhitecturi robotică mici. 859 00:46:48,690 --> 00:46:50,380 >> Ei simt lumea. 860 00:46:50,380 --> 00:46:52,910 Ei construiesc un model al lumii. 861 00:46:52,910 --> 00:46:57,950 Ei calcula pe baza unui set de obiective pe care le-ar dori să realizeze. 862 00:46:57,950 --> 00:47:03,110 Ei plan de acțiuni bazate pe ceea ce știu. 863 00:47:03,110 --> 00:47:07,940 Iar acestea sunt exact aceleași tipuri sistemelor pe care le construim în robotică. 864 00:47:07,940 --> 00:47:11,420 Deci aceste arhitecturi, la aduce acest nou împreună, 865 00:47:11,420 --> 00:47:14,500 sunt de multe ori la fel. 866 00:47:14,500 --> 00:47:16,340 >> Așa că haideți să vedem dacă putem vedea că. 867 00:47:16,340 --> 00:47:19,210 Să ne întoarcem la nostru tic-tac-toe exemplu. 868 00:47:19,210 --> 00:47:22,690 Și am de gând să pun câteva meu post-docs să vină și să mă ajute. 869 00:47:22,690 --> 00:47:26,970 Deci Chen Ming, și Alessandro, și Olivier, dacă voi ar veni. 870 00:47:26,970 --> 00:47:32,080 871 00:47:32,080 --> 00:47:35,440 Și am de gând să nevoie un cuplu de voluntari 872 00:47:35,440 --> 00:47:37,590 >> OK, am văzut un drept de mână acolo în mijloc. 873 00:47:37,590 --> 00:47:39,965 Lasă-mă să iau unul mai mult, cineva în continuare în partea din spate poate. 874 00:47:39,965 --> 00:47:40,881 Bine, acolo. 875 00:47:40,881 --> 00:47:41,490 Haide sus. 876 00:47:41,490 --> 00:47:44,190 877 00:47:44,190 --> 00:47:45,335 In regula. 878 00:47:45,335 --> 00:47:49,490 Așa că haideți să luăm ca capacul în jos. 879 00:47:49,490 --> 00:48:03,700 Și dacă voi veni chiar ar înapoi aici pentru mine, fantastic. 880 00:48:03,700 --> 00:48:06,580 >> Deci, acest lucru este un robot numit Baxter. 881 00:48:06,580 --> 00:48:10,880 Și Baxter este un robot care este o platformă comercială, proiectat 882 00:48:10,880 --> 00:48:13,030 de o companie numita Relansăm. 883 00:48:13,030 --> 00:48:16,580 Și acest robot este proiectat pentru fabricarea la scară mică. 884 00:48:16,580 --> 00:48:19,265 Dar astăzi vom să-l utilizați pentru a juca tic-tac-toe. 885 00:48:19,265 --> 00:48:21,930 886 00:48:21,930 --> 00:48:27,150 Acum, acest robot este, de asemenea ceva asta e relativ unic. 887 00:48:27,150 --> 00:48:32,950 Pentru că dacă aș fi în picioare oriunde aproape de o fabrica de standard de automatizare 888 00:48:32,950 --> 00:48:39,580 sistem, aș fi în foarte gravă pericol de a fi rănit. 889 00:48:39,580 --> 00:48:45,600 >> Baxter, cu toate acestea, este proiectat pentru a fi relativ sigure pentru a interacționa cu. 890 00:48:45,600 --> 00:48:48,680 Și așa că am putea împinge pe acest robot. 891 00:48:48,680 --> 00:48:52,350 Și puteți vedea că e un pic bit flexibil ca se mișcă în jurul valorii de. 892 00:48:52,350 --> 00:48:57,250 Și eu pot repozitiona în cazul în care mi-ar plăcea să merg. 893 00:48:57,250 --> 00:49:03,410 Acum într-un sistem robotic normala, am avea un set de articulații aici 894 00:49:03,410 --> 00:49:07,970 care ar fi în mod direct răspunde la comenzi de poziție. 895 00:49:07,970 --> 00:49:13,180 Și nu i-ar păsa neapărat dacă acestea au fost în mișcare în aer liber, prin, 896 00:49:13,180 --> 00:49:15,555 sau în cazul în care acestea au fost în mișcare prin cutia toracica mea. 897 00:49:15,555 --> 00:49:18,410 898 00:49:18,410 --> 00:49:19,120 >> BINE. 899 00:49:19,120 --> 00:49:22,090 Și de obicei, dacă ai fost aici cu un sistem industrial, 900 00:49:22,090 --> 00:49:23,400 v-ar merge nici pe departe o. 901 00:49:23,400 --> 00:49:26,280 Nu ar fi galben bandă de siguranță tot în jurul ei. 902 00:49:26,280 --> 00:49:28,310 Acest sistem are o Design ușor diferite 903 00:49:28,310 --> 00:49:32,130 să fie mai prietenos si mai usor pentru ca oamenii să interacționeze cu, 904 00:49:32,130 --> 00:49:36,380 în care, în fiecare comună, există un izvor. 905 00:49:36,380 --> 00:49:39,110 Și mai degrabă decât controlul o poziție exactă, 906 00:49:39,110 --> 00:49:43,110 putem controla o anumită cantitate de cuplu, o anumită cantitate de forță, 907 00:49:43,110 --> 00:49:45,874 care ne-ar dori să fie în acea primăvară. 908 00:49:45,874 --> 00:49:47,790 Bine, așa că lasă-mă să ia voluntarii noștri aici. 909 00:49:47,790 --> 00:49:48,540 Hi cum te cheamă? 910 00:49:48,540 --> 00:49:49,010 >> Audiența: Louis. 911 00:49:49,010 --> 00:49:49,635 >> Vorbitor: Louis. 912 00:49:49,635 --> 00:49:50,490 Ma bucur sa te vad. 913 00:49:50,490 --> 00:49:50,990 Şi? 914 00:49:50,990 --> 00:49:51,610 >> Audiența: David. 915 00:49:51,610 --> 00:49:51,960 >> Vorbitor: David. 916 00:49:51,960 --> 00:49:52,550 Îmi pare bine să te cunosc. 917 00:49:52,550 --> 00:49:54,508 Dacă voi să aștepte aici pentru o secundă, 918 00:49:54,508 --> 00:49:56,420 Am de gând să vă dau o sansa de a face acest lucru. 919 00:49:56,420 --> 00:50:00,610 Deci acest robot, dacă ți-a venit și dacă împingeți ușor pe ea, 920 00:50:00,610 --> 00:50:03,780 ai de gând să văd că se misca un pic. 921 00:50:03,780 --> 00:50:06,349 Și dacă-l apuca de dreapta aici pe încheietura mâinii doar 922 00:50:06,349 --> 00:50:09,390 de mai sus în cazul în care aceste butoane sunt, ea pare că ar trebui să apuca de butoane, 923 00:50:09,390 --> 00:50:13,100 dar apuca chiar deasupra ei în schimb, veți putea să-l manipuleze foarte ușor 924 00:50:13,100 --> 00:50:14,545 prin spațiu. 925 00:50:14,545 --> 00:50:15,920 Louis, vrei să-i dea un try? 926 00:50:15,920 --> 00:50:19,465 Deci, da doar un pic împinge pentru a începe cu. 927 00:50:19,465 --> 00:50:23,190 Și apoi, dacă ai pus degetele acolo și țineți pe la ea, 928 00:50:23,190 --> 00:50:24,807 pentru că se va muta pentru tine, atunci. 929 00:50:24,807 --> 00:50:27,824 930 00:50:27,824 --> 00:50:29,365 Bine, vrei să-i dea un try? 931 00:50:29,365 --> 00:50:29,980 Haide sus. 932 00:50:29,980 --> 00:50:32,300 Deci, da doar un blând împinge acolo pentru a începe. 933 00:50:32,300 --> 00:50:33,820 Puteți simți cum este. 934 00:50:33,820 --> 00:50:40,060 Și apoi, dacă-l apuca de acolo, vei putea să manevra în jurul valorii de. 935 00:50:40,060 --> 00:50:41,280 >> BINE. 936 00:50:41,280 --> 00:50:47,360 Deci de obicei, acest tip de un robot ar fi fi utilizate pentru fabricarea la scară mică. 937 00:50:47,360 --> 00:50:50,980 Și am de gând să se mute acest braț doar jos din drum un pic aici. 938 00:50:50,980 --> 00:50:55,750 Dar astăzi, vom utilizați același sistem de joc tic-tac-toe 939 00:50:55,750 --> 00:50:59,520 bazat pe minimax care le construit mai devreme. 940 00:50:59,520 --> 00:51:00,549 OK? 941 00:51:00,549 --> 00:51:02,340 Deci, voi sunteți fiecare de gând să joace un joc. 942 00:51:02,340 --> 00:51:04,210 Louis, vei fi primul. 943 00:51:04,210 --> 00:51:05,920 Permiteți-mi să țineți-vă aici pentru o secundă. 944 00:51:05,920 --> 00:51:10,949 Am de gând să aibă stai dreapta aici, doar ca toata lumea te pot vedea. 945 00:51:10,949 --> 00:51:11,990 Sunt voi înființat aici? 946 00:51:11,990 --> 00:51:13,120 >> ROBOT: Bine ai venit. 947 00:51:13,120 --> 00:51:15,910 Să jucăm tic-tac-toe. 948 00:51:15,910 --> 00:51:20,860 Nu înțelege jeton înainte Eu spun că este rândul tău. 949 00:51:20,860 --> 00:51:22,050 Am începe jocul. 950 00:51:22,050 --> 00:51:27,900 951 00:51:27,900 --> 00:51:28,750 E randul meu. 952 00:51:28,750 --> 00:51:47,002 953 00:51:47,002 --> 00:51:50,210 Vorbitor: Acum, dacă ai putea lua unul dintre piesele și mergeți mai departe și puneți-l. 954 00:51:50,210 --> 00:51:51,446 ROBOT: Este rândul tău. 955 00:51:51,446 --> 00:51:53,430 [RÂSETE] 956 00:51:53,430 --> 00:51:54,836 E randul meu. 957 00:51:54,836 --> 00:51:56,820 [RÂSETE] 958 00:51:56,820 --> 00:52:12,196 959 00:52:12,196 --> 00:52:15,680 [RÂSETE] 960 00:52:15,680 --> 00:52:16,570 Este rândul tău. 961 00:52:16,570 --> 00:52:21,397 962 00:52:21,397 --> 00:52:23,688 Vorbitor: Rasa umană este de numărare pe tine aici, Louis. 963 00:52:23,688 --> 00:52:27,440 964 00:52:27,440 --> 00:52:28,350 >> ROBOT: E rândul meu. 965 00:52:28,350 --> 00:52:44,810 966 00:52:44,810 --> 00:52:47,015 >> Vorbitor: Deci Baxter blocată aici. 967 00:52:47,015 --> 00:52:49,670 968 00:52:49,670 --> 00:52:52,480 >> ROBOT: Este rândul tău. 969 00:52:52,480 --> 00:52:53,360 E randul meu. 970 00:52:53,360 --> 00:53:14,730 971 00:53:14,730 --> 00:53:16,810 Este rândul tău. 972 00:53:16,810 --> 00:53:17,760 E randul meu. 973 00:53:17,760 --> 00:53:21,330 974 00:53:21,330 --> 00:53:23,830 Vorbitor: Și vom lăsa Baxter duce în ultima sa mutare aici. 975 00:53:23,830 --> 00:53:36,622 976 00:53:36,622 --> 00:53:39,090 >> [RÂSETE] 977 00:53:39,090 --> 00:53:40,480 >> ROBOT: E o cravată. 978 00:53:40,480 --> 00:53:42,030 Eu va câștiga data viitoare. 979 00:53:42,030 --> 00:53:43,365 >> [RÂSETE] 980 00:53:43,365 --> 00:53:45,210 >> Vorbitor: Bine, Multumesc foarte mult, Louis. 981 00:53:45,210 --> 00:53:46,094 Multumesc. 982 00:53:46,094 --> 00:53:46,980 Puteți merge în acest fel. 983 00:53:46,980 --> 00:53:49,759 >> ROBOT: Am începe jocul. 984 00:53:49,759 --> 00:53:51,800 Vorbitor: Deci lasă-mă să explic pentru a vă unul mai mic 985 00:53:51,800 --> 00:53:55,410 bit înainte de a ajunge revanșă aici. 986 00:53:55,410 --> 00:53:57,200 Ce anume se întâmplă? 987 00:53:57,200 --> 00:53:59,430 Deci robotul are o camera de sus de sus aici. 988 00:53:59,430 --> 00:54:01,330 Și se uită în jos la bord. 989 00:54:01,330 --> 00:54:04,470 Și se vede dacă Are un O roșie sau un albastru 990 00:54:04,470 --> 00:54:10,450 și X. alb ca cei se plasate pe bord, care este în esență același intrare 991 00:54:10,450 --> 00:54:13,890 care ne-ar fi citit de la structura noastra de date de pe ecranul nostru. 992 00:54:13,890 --> 00:54:17,290 Este rulează la fel algoritm minimax pentru a fi 993 00:54:17,290 --> 00:54:21,010 în stare să găsească în cazul în care la plasa un simbol bun. 994 00:54:21,010 --> 00:54:24,820 >> Și apoi vom da o comandă despre în cazul în care am dori un semn să fie plasate. 995 00:54:24,820 --> 00:54:26,120 Brațul se mișcă afară. 996 00:54:26,120 --> 00:54:31,750 Este folosind o prindere vid pentru a aplica unii aspirație la această piesă de lemn, 997 00:54:31,750 --> 00:54:35,240 ridica-l, mutați-l la dreapta la fața locului, iar apoi eliberați aspirație 998 00:54:35,240 --> 00:54:36,950 și o picătură. 999 00:54:36,950 --> 00:54:38,990 Bine, vom să-i dea mai mult de o lovitură 1000 00:54:38,990 --> 00:54:40,930 cu un jucător ușor mai inteligent aici. 1001 00:54:40,930 --> 00:54:42,290 Ești gata? 1002 00:54:42,290 --> 00:54:46,150 Bine, dacă ai sta până aici și să dea un-- se dovedesc în acest fel 1003 00:54:46,150 --> 00:54:47,955 astfel încât să puteți vedea toată lumea. 1004 00:54:47,955 --> 00:54:48,830 Și apoi [neauzit]. 1005 00:54:48,830 --> 00:54:49,330 >> ROBOT: E rândul meu. 1006 00:54:49,330 --> 00:54:50,455 >> Vorbitor: Baxter va începe. 1007 00:54:50,455 --> 00:55:10,750 1008 00:55:10,750 --> 00:55:11,730 Este rândul tău. 1009 00:55:11,730 --> 00:55:16,490 1010 00:55:16,490 --> 00:55:17,520 E randul meu. 1011 00:55:17,520 --> 00:55:38,740 1012 00:55:38,740 --> 00:55:39,690 Este rândul tău. 1013 00:55:39,690 --> 00:55:46,330 1014 00:55:46,330 --> 00:55:47,165 E randul meu. 1015 00:55:47,165 --> 00:56:01,252 1016 00:56:01,252 --> 00:56:06,192 >> [RÂSETE] 1017 00:56:06,192 --> 00:56:08,542 >> Vorbitor: [șoptind] Doar lasă-l să meargă mai departe și de a câștiga. 1018 00:56:08,542 --> 00:56:09,500 ROBOT: Este rândul tău. 1019 00:56:09,500 --> 00:56:15,099 1020 00:56:15,099 --> 00:56:15,890 Vorbitor: Asta e OK. 1021 00:56:15,890 --> 00:56:20,390 1022 00:56:20,390 --> 00:56:21,360 >> ROBOT: E rândul meu. 1023 00:56:21,360 --> 00:56:24,825 1024 00:56:24,825 --> 00:56:26,805 >> [RÂSETE] 1025 00:56:26,805 --> 00:56:42,650 1026 00:56:42,650 --> 00:56:43,510 >> Eu câștig. 1027 00:56:43,510 --> 00:56:45,620 >> [RÂSETE] 1028 00:56:45,620 --> 00:56:46,595 >> Am începe jocul. 1029 00:56:46,595 --> 00:56:48,261 >> Vorbitor: Bine, vă mulțumesc foarte mult. 1030 00:56:48,261 --> 00:56:50,180 1031 00:56:50,180 --> 00:56:55,590 Bine, cred că avem timp pentru unul mai excelent jucător tic-tac-toe, 1032 00:56:55,590 --> 00:57:00,490 cineva care poate pune acest lucru la se potrivesc, cine știe ce fac ei. 1033 00:57:00,490 --> 00:57:03,010 >> [RÂSETE] 1034 00:57:03,010 --> 00:57:05,560 >> Cine va fi campionul nostru aici? 1035 00:57:05,560 --> 00:57:08,110 Bine, prietenii tăi te voluntar. 1036 00:57:08,110 --> 00:57:11,190 Asta e destul de bun pentru mine. 1037 00:57:11,190 --> 00:57:12,194 Spune-mi numele tău din nou. 1038 00:57:12,194 --> 00:57:12,860 Audiența: Tamir. 1039 00:57:12,860 --> 00:57:14,193 Vorbitor: Tamir, bucur să te văd. 1040 00:57:14,193 --> 00:57:19,270 Bine, din nou, vom să te pun chiar aici astfel încât toată lumea poate vedea. 1041 00:57:19,270 --> 00:57:22,070 Sunteți reprezentantul nostru in acest meci acum. 1042 00:57:22,070 --> 00:57:24,540 Baxter este una și oh oh. 1043 00:57:24,540 --> 00:57:26,300 Sau rău, un oh și unul. 1044 00:57:26,300 --> 00:57:27,490 Și este de până la tine aici. 1045 00:57:27,490 --> 00:57:29,340 Baxter va primi pentru a muta în primul rând, deși. 1046 00:57:29,340 --> 00:57:30,435 Asa ca. 1047 00:57:30,435 --> 00:57:31,310 ROBOT: E rândul meu. 1048 00:57:31,310 --> 00:57:45,226 1049 00:57:45,226 --> 00:57:48,208 >> [RÂSETE] 1050 00:57:48,208 --> 00:57:52,720 1051 00:57:52,720 --> 00:57:55,780 >> Este rândul tău. 1052 00:57:55,780 --> 00:57:56,845 E randul meu. 1053 00:57:56,845 --> 00:58:18,130 1054 00:58:18,130 --> 00:58:18,965 Este rândul tău. 1055 00:58:18,965 --> 00:58:28,751 1056 00:58:28,751 --> 00:58:30,248 E randul meu. 1057 00:58:30,248 --> 00:58:51,210 1058 00:58:51,210 --> 00:58:52,160 Este rândul tău. 1059 00:58:52,160 --> 00:59:00,854 1060 00:59:00,854 --> 00:59:03,365 >> [RÂSETE] 1061 00:59:03,365 --> 00:59:04,240 ROBOT: E rândul meu. 1062 00:59:04,240 --> 00:59:06,930 Vorbitor: E mult mai greu atunci când stai aici, oameni buni. 1063 00:59:06,930 --> 00:59:19,400 1064 00:59:19,400 --> 00:59:21,840 [RÂSETE] 1065 00:59:21,840 --> 00:59:26,730 1066 00:59:26,730 --> 00:59:29,054 ROBOT: Tu oamenii sunt atât de ușor de învins. 1067 00:59:29,054 --> 00:59:30,803 [Râsete și aplauze] 1068 00:59:30,803 --> 00:59:31,886 Vorbitor: Multumesc foarte mult. 1069 00:59:31,886 --> 00:59:34,692 ROBOT: am câștigat. 1070 00:59:34,692 --> 00:59:35,400 Am începe jocul. 1071 00:59:35,400 --> 00:59:39,500 >> Vorbitor: Bine, mulțumesc foarte mult de Olivier, și la Alessandro, 1072 00:59:39,500 --> 00:59:41,616 și să Chen Ming. 1073 00:59:41,616 --> 00:59:45,600 >> [APLAUZE] 1074 00:59:45,600 --> 00:59:47,040 >> Vreau sa fac un ultim punct. 1075 00:59:47,040 --> 00:59:51,630 Deci Baxter la foarte termina aici, înșelat. 1076 00:59:51,630 --> 00:59:54,160 1077 00:59:54,160 --> 00:59:56,310 Și asta a fost neașteptată. 1078 00:59:56,310 --> 01:00:00,440 Unul dintre fantasticului lucruri despre AI este ca noi 1079 01:00:00,440 --> 01:00:05,070 face munca în AI astfel încât să putem construi foarte interesant și inteligent 1080 01:00:05,070 --> 01:00:06,930 dispozitive. 1081 01:00:06,930 --> 01:00:10,130 Dar noi, de asemenea, locul de muncă în a face AI pentru că ne spune ceva 1082 01:00:10,130 --> 01:00:13,940 despre modul în care oamenii sunt inteligente. 1083 01:00:13,940 --> 01:00:17,280 >> Una dintre favorite studii din laboratorul meu este 1084 01:00:17,280 --> 01:00:23,660 uita la ceea ce se întâmplă atunci când Masini de ieftin mod neașteptat. 1085 01:00:23,660 --> 01:00:27,070 Noi nu a făcut acest lucru inițial cu Baxter joc tic-tac-toe, 1086 01:00:27,070 --> 01:00:30,340 dar cu un robot mic numit Nao, care a jucat rock hârtie-foarfece. 1087 01:00:30,340 --> 01:00:33,010 1088 01:00:33,010 --> 01:00:35,800 Și, uneori, după joc o mulțime 1089 01:00:35,800 --> 01:00:41,580 de plictisitor jocuri de rock-hârtie-foarfece, robotul ar arunca un gest, 1090 01:00:41,580 --> 01:00:48,616 pierde, iar apoi schimba brusc Gestul său și spune, eu câștig. 1091 01:00:48,616 --> 01:00:50,480 >> [RÂSETE] 1092 01:00:50,480 --> 01:00:56,090 >> Acum, uneori am avea, de asemenea, robotul, doar ca un control, arunca un gest, 1093 01:00:56,090 --> 01:01:01,270 câștiga, și de a schimba gestul său să-și piardă, arunca meci, 1094 01:01:01,270 --> 01:01:04,070 ieftin în scopul de a pierde. 1095 01:01:04,070 --> 01:01:07,540 Și asta nu este aproape la fel de convingătoare. 1096 01:01:07,540 --> 01:01:09,890 Robotul care înșeală în scopul de a câștiga oameni 1097 01:01:09,890 --> 01:01:14,660 răspunde în continuare în cazul în care este out pentru a le obține, ca ea 1098 01:01:14,660 --> 01:01:17,690 cauta in mod activ la distrugerea lor. 1099 01:01:17,690 --> 01:01:19,210 >> [RÂSETE] 1100 01:01:19,210 --> 01:01:20,990 >> Devine un agent. 1101 01:01:20,990 --> 01:01:21,840 Este ca o persoană. 1102 01:01:21,840 --> 01:01:23,970 Ea are credință și intenția. 1103 01:01:23,970 --> 01:01:27,470 Și nu e bună intenție. 1104 01:01:27,470 --> 01:01:33,790 Și robotul care aruncă joc este doar defect. 1105 01:01:33,790 --> 01:01:36,990 E doar un dispozitiv defect. 1106 01:01:36,990 --> 01:01:41,405 Lasă-mă să-ți arăt câteva exemple de care de la câteva dintre participantii nostri. 1107 01:01:41,405 --> 01:01:43,990 1108 01:01:43,990 --> 01:01:45,600 Deci, aici e inselat, în scopul de a pierde. 1109 01:01:45,600 --> 01:01:46,266 >> [VIDEO PLAYBACK] 1110 01:01:46,266 --> 01:01:47,010 - [Neauzit] câștiga. 1111 01:01:47,010 --> 01:01:49,550 Hai sa ne jucam. 1112 01:01:49,550 --> 01:01:50,538 >> -Stai ce? 1113 01:01:50,538 --> 01:01:54,490 1114 01:01:54,490 --> 01:01:55,352 >> - [Neauzit] câștiga. 1115 01:01:55,352 --> 01:01:58,280 Hai sa ne jucam. 1116 01:01:58,280 --> 01:01:59,400 >> [Neauzit] câștiga. 1117 01:01:59,400 --> 01:02:02,290 Hai sa ne jucam. 1118 01:02:02,290 --> 01:02:05,490 >> Vorbitor: Și aici e inselat pentru a câștiga. 1119 01:02:05,490 --> 01:02:06,438 >> Da, eu câștig. 1120 01:02:06,438 --> 01:02:07,394 Hai sa ne jucam. 1121 01:02:07,394 --> 01:02:08,828 >> -Nu Pot face asta. 1122 01:02:08,828 --> 01:02:10,740 >> [RÂSETE] 1123 01:02:10,740 --> 01:02:12,174 1124 01:02:12,174 --> 01:02:13,979 >> Da, eu câștig. 1125 01:02:13,979 --> 01:02:14,520 -Ai Înșelat. 1126 01:02:14,520 --> 01:02:17,990 1127 01:02:17,990 --> 01:02:20,010 Ai trișat acum. 1128 01:02:20,010 --> 01:02:21,140 >> Da, eu câștig. 1129 01:02:21,140 --> 01:02:22,940 >> Hei, tu trișor. 1130 01:02:22,940 --> 01:02:26,670 Tu ieftin, super-ieftin. 1131 01:02:26,670 --> 01:02:27,650 >> [END PLAYBACK] 1132 01:02:27,650 --> 01:02:31,130 >> Vorbitor: Aceste diferite reacții rapid 1133 01:02:31,130 --> 01:02:34,890 schimba percepția noastră a dispozitivului. 1134 01:02:34,890 --> 01:02:36,780 Asta înseamnă că vom construi în mod deliberat 1135 01:02:36,780 --> 01:02:40,370 mașini care ieftin pentru că este cel mai bun de inginerie care putem face? 1136 01:02:40,370 --> 01:02:44,680 Nu, dar ne spune ceva foarte interesant despre oameni. 1137 01:02:44,680 --> 01:02:49,710 Chestia aia pe care tu și ieftin fură victoria ta, asta e 1138 01:02:49,710 --> 01:02:53,660 ceva care e în viață, e anima, care a ieșit să te. 1139 01:02:53,660 --> 01:02:54,680 Ea are stare mentală. 1140 01:02:54,680 --> 01:02:55,400 Ea are credință. 1141 01:02:55,400 --> 01:02:57,170 Ea are intenția. 1142 01:02:57,170 --> 01:03:01,540 >> Chestia aia pe care mâinile joc pentru tine, nu e. 1143 01:03:01,540 --> 01:03:04,670 Asta e doar defect. 1144 01:03:04,670 --> 01:03:08,900 Acest lucru este în multe feluri de ce e ușor pentru a arunca jocul cu copiii. 1145 01:03:08,900 --> 01:03:12,050 Dar dacă încercați să le înșele și un fel de cerere victorie 1146 01:03:12,050 --> 01:03:15,200 când, știi, doar pentru a scurta joc, te vor prinde imediat. 1147 01:03:15,200 --> 01:03:19,040 1148 01:03:19,040 --> 01:03:23,140 Aceste tipuri de efecte pe care vedem ieșind din AI, 1149 01:03:23,140 --> 01:03:26,490 ei ne învață multe despre noi înșine. 1150 01:03:26,490 --> 01:03:28,076 >> Bine, asta e pentru ziua de azi. 1151 01:03:28,076 --> 01:03:30,450 Multumesc foarte mult lui David și echipa de producție de la Harvard 1152 01:03:30,450 --> 01:03:32,350 pentru coboară. 1153 01:03:32,350 --> 01:03:33,820 >> [APLAUZE] 1154 01:03:33,820 --> 01:03:36,760 1155 01:03:36,760 --> 01:03:41,840 >> Ne vedem de test o, și apoi pentru o ultimă prelegere. 1156 01:03:41,840 --> 01:03:43,025 O zi bună. 1157 01:03:43,025 --> 01:03:44,965 >> [APLAUZE] 1158 01:03:44,965 --> 01:03:48,360 1159 01:03:48,360 --> 01:03:51,825 >> [MUSIC JOC] 1160 01:03:51,825 --> 01:03:54,950 DAVID J MALAN: Ei bine, probabil avem nevoie de să introducă un fel de criptare, 1161 01:03:54,950 --> 01:03:55,450 dreapta? 1162 01:03:55,450 --> 01:03:58,650 Pentru că atunci antetele aceste cereri HTTP vor fi 1163 01:03:58,650 --> 01:04:01,530 scrambled astfel încât oricine încercarea de a mirosi trafic 1164 01:04:01,530 --> 01:04:03,400 nu va fi de fapt posibilitatea de a le vedea. 1165 01:04:03,400 --> 01:04:05,254 Deci, care este soluția la această problemă? 1166 01:04:05,254 --> 01:04:07,920 Ei bine, avem nevoie de a introduce de fapt criptare în formulă, 1167 01:04:07,920 --> 01:04:11,010 astfel încât atunci când această persoană este transmitere a datelor de la A la B, 1168 01:04:11,010 --> 01:04:12,390 putem send-- siguranță 1169 01:04:12,390 --> 01:04:14,590 >> [RÂSETE] 1170 01:04:14,590 --> 01:04:19,530 >> Informațiile într-un mod care adversar nu poate, de fapt, o văd.