1 00:00:00,000 --> 00:00:01,924 >> [Predvaja glasba] 2 00:00:01,924 --> 00:00:10,600 3 00:00:10,600 --> 00:00:13,280 >> SPEAKER: Dobrodošel nazaj, vsi. 4 00:00:13,280 --> 00:00:15,440 To je CS50. 5 00:00:15,440 --> 00:00:21,040 In danes, imamo veliko zanimivih stvari govoriti. 6 00:00:21,040 --> 00:00:25,500 Prvič, čeprav, moram opomniti ste za nekaj upravnih stvareh. 7 00:00:25,500 --> 00:00:30,160 Ta teden je kviz ena, sreda ali za odsek Yale 8 00:00:30,160 --> 00:00:32,940 ob torkih in četrtkih, v četrtek. 9 00:00:32,940 --> 00:00:38,170 Obstajajo kviz ocene Nocoj na univerzi Yale, 5:30 do 7:00. 10 00:00:38,170 --> 00:00:40,030 Na Harvardu, eno včeraj so posneli. 11 00:00:40,030 --> 00:00:43,000 In vsakdo lahko gledal to na spletu. 12 00:00:43,000 --> 00:00:49,406 >> Tudi ta teden ali v začetku prihodnjega tedna, imamo zadnjo CS50 predavanje. 13 00:00:49,406 --> 00:00:51,450 [Stokanje] poznam. 14 00:00:51,450 --> 00:00:54,140 Je prišel tako kmalu. 15 00:00:54,140 --> 00:00:57,820 Yale študenti bodo imeli v živo predavanje tukaj v pravo šolo 16 00:00:57,820 --> 00:00:59,920 avditorij v petek. 17 00:00:59,920 --> 00:01:01,140 Tam bo torta. 18 00:01:01,140 --> 00:01:05,570 Harvard študenti bo imela Zadnje predavanje v Sandersa v ponedeljek. 19 00:01:05,570 --> 00:01:08,050 Tam bo tudi torta. 20 00:01:08,050 --> 00:01:14,000 >> Tudi ta teden v petek, za tiste, od vas, ki prihajajo v New Haven, 21 00:01:14,000 --> 00:01:15,740 imamo CS50 Expo. 22 00:01:15,740 --> 00:01:18,850 Imamo več kot 30 različne skupine registrirana 23 00:01:18,850 --> 00:01:22,530 da vam pokaže vse iz avtonomnih jadrnicami, 24 00:01:22,530 --> 00:01:27,170 sistemov, ki priznavajo Digitalni portreti, na računalniku 25 00:01:27,170 --> 00:01:32,100 glasba in računalniško proizvedene glasbe. 26 00:01:32,100 --> 00:01:33,610 Torej nam prosim pridružite. 27 00:01:33,610 --> 00:01:36,460 Mislim, da se dogaja, da je pravi čas. 28 00:01:36,460 --> 00:01:40,320 >> Danes, čeprav smo prišli do naprej govorimo o AI, 29 00:01:40,320 --> 00:01:43,150 o umetni inteligenci. 30 00:01:43,150 --> 00:01:46,070 In ena od stvari, ki bomo dobili do danes 31 00:01:46,070 --> 00:01:51,750 je ideja o tem, kako uporabite AI za reševanje problemov. 32 00:01:51,750 --> 00:01:54,690 Zdaj pa, kot vedno, začnimo z nekaj preprostega. 33 00:01:54,690 --> 00:01:57,120 In bomo za začetek s preprosto zamislijo. 34 00:01:57,120 --> 00:01:59,920 In to je z iskanjem. 35 00:01:59,920 --> 00:02:06,990 >> Torej, si predstavljajte za minuto, da sem imajo nalogo, da moram opraviti. 36 00:02:06,990 --> 00:02:11,970 In želim, da imajo to nalogo avtomatizirajo neki software agent. 37 00:02:11,970 --> 00:02:17,100 Predstavljajte si, da skušam rezervirate niz letov iz, recimo, Boston 38 00:02:17,100 --> 00:02:20,040 v San Franciscu. 39 00:02:20,040 --> 00:02:24,230 Jaz bi šel skozi in sem lahko uporabite eden od čudovitega spletno iskanje 40 00:02:24,230 --> 00:02:28,790 orodja, ki bo naredil v bistvu enak proces, ki smo 41 00:02:28,790 --> 00:02:30,030 bom sprehod skozi danes. 42 00:02:30,030 --> 00:02:34,100 Ampak, če niste imeli, da Orodje, kaj bi ti naredil? 43 00:02:34,100 --> 00:02:37,570 >> No, lahko pogledate in videli in rekli, da sem v Bostonu. 44 00:02:37,570 --> 00:02:41,520 Kaj leti so mi na voljo? 45 00:02:41,520 --> 00:02:44,390 Zdaj, morda imam tri možni poleti od Bostona 46 00:02:44,390 --> 00:02:47,180 ki bo ustrezal čas ko moram oditi. 47 00:02:47,180 --> 00:02:48,830 Jaz bi leteti v Chicago. 48 00:02:48,830 --> 00:02:50,130 Ali lahko letim v Miami. 49 00:02:50,130 --> 00:02:53,340 Ali sem lahko letel v New York. 50 00:02:53,340 --> 00:02:56,980 Jaz bi potem poglej iz vsake eden od tistih destinacijo mest 51 00:02:56,980 --> 00:03:00,650 in pomislite, kaj lokacijah Jaz bi lahko dosegli 52 00:03:00,650 --> 00:03:03,020 iz vsake od teh posameznih mestih. 53 00:03:03,020 --> 00:03:07,390 >> Torej, morda iz Chicaga, lahko dobim direkten let v San Franciscu. 54 00:03:07,390 --> 00:03:09,550 To je odlično. 55 00:03:09,550 --> 00:03:12,360 Ali lahko dobim let v Denverju. 56 00:03:12,360 --> 00:03:16,970 Zdaj, morda, da je let v San Franciscu je idealna rešitev za mene, 57 00:03:16,970 --> 00:03:19,530 a morda ne. 58 00:03:19,530 --> 00:03:22,180 Mogoče sem iskal nekaj da je malo cenejši 59 00:03:22,180 --> 00:03:24,920 ali malo bolje za moj urnik. 60 00:03:24,920 --> 00:03:29,197 In tako lahko gledam za kaj drugega možnosti bi bilo tam. 61 00:03:29,197 --> 00:03:30,280 Tako sem lahko ogledate na Denver. 62 00:03:30,280 --> 00:03:33,870 In iz Denverja, no, morda Lahko dobim let v Austinu. 63 00:03:33,870 --> 00:03:37,080 In od Austina, morda lahko dobim let v Phoenix, in iz Phoenix 64 00:03:37,080 --> 00:03:40,190 v San Franciscu. 65 00:03:40,190 --> 00:03:42,730 Zdaj bom še ni končana. 66 00:03:42,730 --> 00:03:45,640 Saj morda obstaja direkten let iz New Yorka 67 00:03:45,640 --> 00:03:47,850 v San Franciscu, ki je kot nalašč za mene. 68 00:03:47,850 --> 00:03:53,354 Ali morda obstaja let iz Miamija skozi Denver, ki je veliko cenejši. 69 00:03:53,354 --> 00:03:54,270 Torej moram še iti. 70 00:03:54,270 --> 00:03:58,200 In sem še vedno, da pogled na vse tiste, mesta, ki sem ga še niso preiskali. 71 00:03:58,200 --> 00:04:04,220 Moram izčrpno preverite vse možnosti, da bi jo imam. 72 00:04:04,220 --> 00:04:09,610 >> Torej iz New Yorka, morda lahko dobim polet v Nashville in od Nashville 73 00:04:09,610 --> 00:04:10,336 v Austin. 74 00:04:10,336 --> 00:04:11,460 In potem vem, kje sem. 75 00:04:11,460 --> 00:04:14,252 In potem vem iz Austina, sem lahko leteti v Phoenix, in iz Phoenix 76 00:04:14,252 --> 00:04:14,960 v San Franciscu. 77 00:04:14,960 --> 00:04:18,240 78 00:04:18,240 --> 00:04:22,830 Če letim najprej Miami, čeprav, Morda lahko dobim let iz Miamija 79 00:04:22,830 --> 00:04:25,080 Nashville, ali iz Miamija v Austin. 80 00:04:25,080 --> 00:04:27,950 81 00:04:27,950 --> 00:04:30,860 >> In zdaj sem poskušal vse od možnosti. 82 00:04:30,860 --> 00:04:36,310 Sem zgradili ta graf, ki mi prikazuje vse možne poti 83 00:04:36,310 --> 00:04:37,790 da bi moral biti sposoben sprejeti. 84 00:04:37,790 --> 00:04:40,510 85 00:04:40,510 --> 00:04:43,640 Ko smo predstavljajo ti vrste težav, 86 00:04:43,640 --> 00:04:47,870 ne bomo, da predstavljajo jim izrecno kot grafu, 87 00:04:47,870 --> 00:04:51,590 ker da graf ne predstavlja zgodovina, kjer smo šli. 88 00:04:51,590 --> 00:04:55,260 Vedoč, da sem letel iz Phoenix San Francisco 89 00:04:55,260 --> 00:05:01,690 me ne pove, ali sem prišel preko Nashville, ali preko Denver, ali preko Miami. 90 00:05:01,690 --> 00:05:06,430 >> Torej, kaj bom naredil, namesto da je Jaz bom to isto težavo, 91 00:05:06,430 --> 00:05:09,140 in bom jo predstavljajo kot drevo. 92 00:05:09,140 --> 00:05:14,300 In ob korenu drevesa v spodnjem top, bom dal mesto, ki sem začel, 93 00:05:14,300 --> 00:05:16,590 Boston. 94 00:05:16,590 --> 00:05:19,310 In iz Bostona, bom poglej vseh možnih lokacijah 95 00:05:19,310 --> 00:05:20,380 da ne morem potovati. 96 00:05:20,380 --> 00:05:25,480 No, v tem primeru, sem tri, Chicago, New York in Miami. 97 00:05:25,480 --> 00:05:29,850 In potem bom raziskati vsako ti otroci v drevesu. 98 00:05:29,850 --> 00:05:32,690 >> Iz Chicaga, sem videl da sem imel dve leti. 99 00:05:32,690 --> 00:05:35,940 Jaz bi lahko letel neposredno San Francisco ali v Denver. 100 00:05:35,940 --> 00:05:37,740 Zdaj San Francisco, to je moj cilj. 101 00:05:37,740 --> 00:05:39,790 To je moj cilj. 102 00:05:39,790 --> 00:05:42,220 To se dogaja, da se listov tega drevesa. 103 00:05:42,220 --> 00:05:45,340 To pomeni, da jaz nikoli ne bo šel nekje po San Franciscu. 104 00:05:45,340 --> 00:05:47,850 105 00:05:47,850 --> 00:05:50,340 Iz Denverja, čeprav, Lahko letim iz Denverja 106 00:05:50,340 --> 00:05:54,220 Austin, Austin v Phoenix, in od Phoenix do San Francisca. 107 00:05:54,220 --> 00:05:56,050 In zdaj spet, sem dosegel listov. 108 00:05:56,050 --> 00:05:59,470 109 00:05:59,470 --> 00:06:03,980 >> Jaz bi nato pa pojdite nazaj na naslednjo mesto, da nisem v celoti raziskani. 110 00:06:03,980 --> 00:06:07,440 To bi bilo v New Yorku, pojdite nazaj gor na vrhu mojega drevesa, 111 00:06:07,440 --> 00:06:09,160 prišel v New York. 112 00:06:09,160 --> 00:06:12,700 Iz New Yorka, da lahko letim, da Nashville, od Nashville v Austin, 113 00:06:12,700 --> 00:06:17,290 Austin v Phoenix, in od Phoenix do San Francisca. 114 00:06:17,290 --> 00:06:20,170 In končno, eno mesto sem ni pogledal še Miami. 115 00:06:20,170 --> 00:06:24,600 >> No, iz Miamija sem rekel, sem imel dva možnosti, Nashville in Austin. 116 00:06:24,600 --> 00:06:28,810 Če letim v Nashville, no potem pa letim od Nashville, Austin, Phoenix, 117 00:06:28,810 --> 00:06:29,640 v San Franciscu. 118 00:06:29,640 --> 00:06:33,600 Če letim v Austin, letim Austin, Phoenix, San Francisco. 119 00:06:33,600 --> 00:06:36,340 In zdaj imam drevo. 120 00:06:36,340 --> 00:06:37,230 To je popolna drevo. 121 00:06:37,230 --> 00:06:41,890 To je vse o možnostih in vse poti, ki lahko vzamem. 122 00:06:41,890 --> 00:06:44,310 To je, če sem začeti izvajati Koren drevesa na vrhu 123 00:06:44,310 --> 00:06:47,860 in sem dol enem izmed pusti, da mi pove, ne samo 124 00:06:47,860 --> 00:06:50,480 kjer bom končajo, San Francisco, 125 00:06:50,480 --> 00:06:53,670 ampak to mi pove pot, ki Moram vzeti do tja. 126 00:06:53,670 --> 00:06:56,400 127 00:06:56,400 --> 00:06:59,690 >> Zdaj, kar je eden od teh je najboljši? 128 00:06:59,690 --> 00:07:02,430 No, nič o tem problem še mi pove 129 00:07:02,430 --> 00:07:04,710 kateri od teh je najboljša rešitev. 130 00:07:04,710 --> 00:07:09,270 Mogoče mi vseeno najbolj pa koliko časa sem v zraku, 131 00:07:09,270 --> 00:07:12,350 ali je razdalja, ki sem jaz letenja. 132 00:07:12,350 --> 00:07:16,410 V tem primeru, Chicago San Francisco lahko najkrajša število 133 00:07:16,410 --> 00:07:18,910 kilometrov v zraku. 134 00:07:18,910 --> 00:07:20,860 >> Mogoče mi je mar stroškov. 135 00:07:20,860 --> 00:07:23,680 In vsi vemo, direktnih letov so ponavadi dražji. 136 00:07:23,680 --> 00:07:26,610 Mogoče, če vzamem to vrsta zavoljo poti 137 00:07:26,610 --> 00:07:30,650 skozi Miami, Nashville, Austin, Phoenix, morda pa 138 00:07:30,650 --> 00:07:34,070 Sem dobil nižjo ceno. 139 00:07:34,070 --> 00:07:36,440 Ampak jaz bi optimizirali na kateri koli Kriteriji, ki me skrbi. 140 00:07:36,440 --> 00:07:39,790 Kdo ima najboljši v polet Wi-Fi, ali ki 141 00:07:39,790 --> 00:07:43,110 Letališča imajo na voljo najboljša hrana. 142 00:07:43,110 --> 00:07:47,280 In vsak izmed tistih morda daj mi drugačno rešitev 143 00:07:47,280 --> 00:07:49,215 da vidim, kot da so najboljši. 144 00:07:49,215 --> 00:07:51,990 145 00:07:51,990 --> 00:07:54,400 >> Te vrste težav, kam gremo 146 00:07:54,400 --> 00:07:58,480 zgraditi ta drevo Možnosti, nato 147 00:07:58,480 --> 00:08:02,100 pogled na vsako od tistih posamezne poti, in preučiti 148 00:08:02,100 --> 00:08:05,270 kateri od teh izpolnjuje merilo za nas, 149 00:08:05,270 --> 00:08:08,790 bomo, da pokličete ti iskanju težave. 150 00:08:08,790 --> 00:08:11,280 In imamo veliko algoritmi, od katerih so nekatere 151 00:08:11,280 --> 00:08:15,270 smo že videli, da gredo in raziskovanje teh dreves. 152 00:08:15,270 --> 00:08:19,270 Mi lahko to storite tako, da sem pravkar storil, po globini najprej iskanje, 153 00:08:19,270 --> 00:08:22,900 Padamo kolikor smo lahko, dokler ne bomo hit list, nato pa prihaja nazaj gor, 154 00:08:22,900 --> 00:08:24,787 in gredo nazaj dol. 155 00:08:24,787 --> 00:08:26,870 Ali lahko naredimo, kar je imenuje širina-prvi iskanja. 156 00:08:26,870 --> 00:08:29,675 Mi lahko razširi vse Na vrhu in nato 157 00:08:29,675 --> 00:08:31,550 Vse ena vrstica Pod to, in nato 158 00:08:31,550 --> 00:08:35,240 Vse ena vrstica pod to. 159 00:08:35,240 --> 00:08:41,250 Ti iskalna drevesa so temeljnega pomena za AI. 160 00:08:41,250 --> 00:08:46,570 Ampak oni ne čisto dobili prav ves čas. 161 00:08:46,570 --> 00:08:51,600 Dejstvo je, v veliko primerih da smo res skrbi, 162 00:08:51,600 --> 00:08:54,430 želimo zgraditi drevo, vendar ne bomo dejansko 163 00:08:54,430 --> 00:08:57,140 dobili, da bi vse odločitve. 164 00:08:57,140 --> 00:09:00,940 >> To so situacije, imenovane kontradiktornost iskanje, znan tudi 165 00:09:00,940 --> 00:09:05,390 kako napisati igre igranje sistemi in plačani za to. 166 00:09:05,390 --> 00:09:07,940 Toda to so vrste sistemov, kjer sem 167 00:09:07,940 --> 00:09:12,920 morda dobili, da izberejo, ko sem šel iz Boston, ki je mesto grem zraven. 168 00:09:12,920 --> 00:09:19,990 Ampak po tem, lahko nekdo drug dobil da bi odločitev o tem, kje letim. 169 00:09:19,990 --> 00:09:24,040 Torej, za izgradnjo teh vrst struktur, smo 170 00:09:24,040 --> 00:09:28,510 bodo morali vzeti nekoliko drugačen pristop k njej. 171 00:09:28,510 --> 00:09:31,060 Mi ne bomo mogli samo iskanje po drevesu 172 00:09:31,060 --> 00:09:35,000 več, ker nismo tista, ki je pod nadzorom 173 00:09:35,000 --> 00:09:38,180 vsakega od teh točkah odločanja. 174 00:09:38,180 --> 00:09:42,590 >> Torej, kaj je zamisliti preprost igra kot tic-tac-toe. 175 00:09:42,590 --> 00:09:46,730 Jaz bi lahko začeli z popolnoma prazno, board. 176 00:09:46,730 --> 00:09:49,580 In v tic-tac-toe, X bo igral prvi. 177 00:09:49,580 --> 00:09:53,890 In tako bi lahko razmišljam o vsem možne poteze, da bi X narediti. 178 00:09:53,890 --> 00:09:57,420 In če sem tista igranje X, da je super. 179 00:09:57,420 --> 00:10:01,020 Imam devet možnih premakne, da sem lahko. 180 00:10:01,020 --> 00:10:05,000 Lahko bi dal znak X v kateremkoli teh devetih pozicij. 181 00:10:05,000 --> 00:10:10,710 >> In potem iz vsake od tistih, ki sem lahko predstavljate, kaj se bo zgodilo. 182 00:10:10,710 --> 00:10:14,130 No, v tem primeru drugi Igralec bi dobili, da se obrnejo. 183 00:10:14,130 --> 00:10:15,660 O bi dobili, da se obrnejo. 184 00:10:15,660 --> 00:10:19,510 In iz vsakega od tistih, tam bi bilo osem različnih krajih 185 00:10:19,510 --> 00:10:22,980 da O lahko dajo svoje označevalec. 186 00:10:22,980 --> 00:10:25,790 >> Recimo, da sem se odločil, da sem bil bo dal X v sredini. 187 00:10:25,790 --> 00:10:28,810 Ki vedno zdi, kot dobra odpiranje poteza. 188 00:10:28,810 --> 00:10:34,870 Jaz bi poglej pod tem, da je Osem možne poteze, da O naredi. 189 00:10:34,870 --> 00:10:37,320 Zdaj, če igram X, to je čudovito. 190 00:10:37,320 --> 00:10:41,740 Sem dobil, da izberejo eno, ki I iti, eno v sredini. 191 00:10:41,740 --> 00:10:45,000 Toda zdaj O dobi izbrati. 192 00:10:45,000 --> 00:10:48,750 In nimam nadzora nad to odločitvijo. 193 00:10:48,750 --> 00:10:51,670 >> Toda iz vsakega od tistih Možni položaji deska, 194 00:10:51,670 --> 00:10:54,020 tam je potem drugo niz možnosti. 195 00:10:54,020 --> 00:10:56,700 Ko gre za biti bo moja spet obrnejo, jaz bi 196 00:10:56,700 --> 00:11:01,500 priti do kramp in rekel, dobro, če O preseli v dobro, 197 00:11:01,500 --> 00:11:06,110 srednja točka na levi strani, nato pa Moram niz možnosti 198 00:11:06,110 --> 00:11:09,740 kjer sem lahko svojo naslednjo potezo. 199 00:11:09,740 --> 00:11:14,140 Od tistih, ki bi po mojem mnenju vse možnosti pod njimi. 200 00:11:14,140 --> 00:11:18,030 In potem bi O zaslužiti da izberejo med tistimi. 201 00:11:18,030 --> 00:11:22,290 >> In sem lahko vodijo izgradnjo tega drevo ven, dokler nisem prišel do točke 202 00:11:22,290 --> 00:11:26,960 kjer je bodisi nekdo zmaga game--, ki je 203 00:11:26,960 --> 00:11:31,070 dobil jih je treba obravnavati kot leaf node-- ali svet je povsem polna 204 00:11:31,070 --> 00:11:32,704 in nihče ni zmagal. 205 00:11:32,704 --> 00:11:34,370 In to tudi dogaja, da se Vozel. 206 00:11:34,370 --> 00:11:35,411 To se dogaja, da je kravata. 207 00:11:35,411 --> 00:11:37,820 208 00:11:37,820 --> 00:11:41,680 >> Ampak težavno stvar pri tem je, če bi bilo to le redna iskanje 209 00:11:41,680 --> 00:11:44,269 problem, sem lahko recimo, dobro, X morala iti tukaj. 210 00:11:44,269 --> 00:11:45,560 In O mora iti pot tja. 211 00:11:45,560 --> 00:11:46,770 In potem bi X iti tja. 212 00:11:46,770 --> 00:11:48,269 In potem bi O iti pot tja. 213 00:11:48,269 --> 00:11:51,860 In potem lahko X dobili tri zapored, in sem zmagal. 214 00:11:51,860 --> 00:11:54,870 In pa igra preko v petih potezah, tri za mene, 215 00:11:54,870 --> 00:11:57,710 dva za mojega nasprotnika. 216 00:11:57,710 --> 00:12:01,300 Ampak jaz ne vedno dobili, da izberejo, da. 217 00:12:01,300 --> 00:12:03,720 >> Torej, namesto, kaj smo bodo morali storiti 218 00:12:03,720 --> 00:12:06,270 se bomo morali da imajo novo strategijo. 219 00:12:06,270 --> 00:12:09,350 In strategija, ki Igra-igranje algoritmi pogosto uporabljajo 220 00:12:09,350 --> 00:12:12,000 je tisto, kar se imenuje minimax. 221 00:12:12,000 --> 00:12:15,500 Osrednja ideja minimax je, da smo 222 00:12:15,500 --> 00:12:21,365 dogaja, da izberete potezo, ki daje naš nasprotnik najslabša možna set 223 00:12:21,365 --> 00:12:22,790 od premika, ki jih lahko naredite. 224 00:12:22,790 --> 00:12:25,570 225 00:12:25,570 --> 00:12:28,870 To se mi ne naredi nič dobrega izbrati potezo kjer 226 00:12:28,870 --> 00:12:31,952 Jaz bi mogli zmagati po da, ker je moj nasprotnik ni 227 00:12:31,952 --> 00:12:33,160 dogaja, da mi to priložnost. 228 00:12:33,160 --> 00:12:37,770 Ti boš, da izberejo nekaj grozno izid zame. 229 00:12:37,770 --> 00:12:42,010 Torej grem, da bi premakniti, da prisili mojega nasprotnika 230 00:12:42,010 --> 00:12:45,760 storiti nekaj boljšega za mene. 231 00:12:45,760 --> 00:12:46,260 V redu. 232 00:12:46,260 --> 00:12:48,410 Poglejmo, kako se to igra ven. 233 00:12:48,410 --> 00:12:51,640 Torej, tukaj je naš algoritem v psevdokoda. 234 00:12:51,640 --> 00:12:54,450 Mi bomo za ustvarjanje Celotna igra drevo. 235 00:12:54,450 --> 00:12:56,757 Mi bomo za izgradnjo Celotna konstrukcija. 236 00:12:56,757 --> 00:12:57,840 In potem bomo šli skozi. 237 00:12:57,840 --> 00:13:02,100 In na samem dnu na vsakem od terminala vozlišč, v vsakem izmed listov, 238 00:13:02,100 --> 00:13:07,850 bomo oceniti, kako dragoceno je, da je z mano? 239 00:13:07,850 --> 00:13:11,690 In bomo stvari vrednostjo, ki so dobro zame kot pozitiven. 240 00:13:11,690 --> 00:13:14,460 Stvari, ki jih ni dobro za mene bo manj pozitiven, ali nič, 241 00:13:14,460 --> 00:13:16,480 ali celo negativna. 242 00:13:16,480 --> 00:13:19,240 >> Torej v tic-tac-toe, morda zmaga zame je dober. 243 00:13:19,240 --> 00:13:20,290 To je eno. 244 00:13:20,290 --> 00:13:22,400 In kravato je nič. 245 00:13:22,400 --> 00:13:26,230 In nekaj, kar je izguba mi, morda, da je negativna. 246 00:13:26,230 --> 00:13:29,620 Vse, kar je pomembno, je, da je bolje to je za mene, višja je ocena 247 00:13:29,620 --> 00:13:32,160 ki jih prejme. 248 00:13:32,160 --> 00:13:36,690 Od teh možnosti na dno, potem bomo filter navzgor. 249 00:13:36,690 --> 00:13:40,650 In ko je moja priložnost, da izberejo med nizom alternativ, 250 00:13:40,650 --> 00:13:44,460 Bom izbrati tistega, ki je dobil najvišjo oceno. 251 00:13:44,460 --> 00:13:47,200 >> In vsakič, ko je moja nasprotniki obrniti, da izberejo, 252 00:13:47,200 --> 00:13:52,350 Bom Predvidevam, da boš izberite tistega z najnižjo oceno. 253 00:13:52,350 --> 00:13:56,090 In če to naredim vso pot do vrha drevesa, 254 00:13:56,090 --> 00:14:03,150 Sem bom izbral pot, ki daje me je najboljši rezultat, da lahko dobim, 255 00:14:03,150 --> 00:14:09,110 ob predpostavki, da je moj nasprotnik naredi vse prave poteze. 256 00:14:09,110 --> 00:14:11,940 >> Vse je v redu, tako da je videti to dejanje prvi. 257 00:14:11,940 --> 00:14:14,980 In potem bomo dejansko poglej kodo za njo. 258 00:14:14,980 --> 00:14:16,780 Torej, zamisliti imam to veliko drevo. 259 00:14:16,780 --> 00:14:18,280 In zdaj ne igram tic-tac-toe. 260 00:14:18,280 --> 00:14:20,405 Želel sem, da bi vas nekaj malo bogatejši. 261 00:14:20,405 --> 00:14:23,560 Torej imam nekaj igra, kjer tam je veliko različnih rezultati 262 00:14:23,560 --> 00:14:26,390 da bi lahko imeli na koncu. 263 00:14:26,390 --> 00:14:27,980 In tako sem zgraditi to popolno drevo. 264 00:14:27,980 --> 00:14:29,070 In sem dobil, da najprej premakniti. 265 00:14:29,070 --> 00:14:31,290 Jaz sem pri korenu drevesa. 266 00:14:31,290 --> 00:14:36,150 >> In sem dobil, da izberejo that-- da dobim povečati čez to prvo vozlišče. 267 00:14:36,150 --> 00:14:38,410 In potem moj nasprotnik dobi iti. 268 00:14:38,410 --> 00:14:41,910 In potem sem dobil, da gredo še enkrat. 269 00:14:41,910 --> 00:14:46,830 Torej navzdol na dnu, da ima niz Možnosti, da lahko izbirate, 270 00:14:46,830 --> 00:14:50,570 Različne države igre terminal. 271 00:14:50,570 --> 00:14:54,980 Če sem dol, da daleč levem kotu, 272 00:14:54,980 --> 00:14:58,867 in vidim, da imam na izbiro med osem, sedem, in dva, 273 00:14:58,867 --> 00:15:00,450 no, jaz sem tisti, ki dobi izbrati. 274 00:15:00,450 --> 00:15:02,910 Tako da bom, da izberejo Najbolj ena od teh. 275 00:15:02,910 --> 00:15:05,650 Grem izbrati osem. 276 00:15:05,650 --> 00:15:10,090 >> Zato vem, da če bom kdaj dol do te točke, 277 00:15:10,090 --> 00:15:13,890 Bom lahko dobili, da je osem točk. 278 00:15:13,890 --> 00:15:17,410 Če sem na koncu na naslednjo točko več, naslednje vozlišče konec, 279 00:15:17,410 --> 00:15:20,760 devet, ena ali šest, no, jaz sem bo izbrati najboljše tiste. 280 00:15:20,760 --> 00:15:21,950 Bom izbrali devet. 281 00:15:21,950 --> 00:15:24,880 Če bi imeli možnost izbire med dve, štiri, in enim, 282 00:15:24,880 --> 00:15:28,240 Bom izbrali štiri, kar je najvišja. 283 00:15:28,240 --> 00:15:31,990 >> Zdaj, če gledam na ravni zgoraj, da je moj nasprotnik 284 00:15:31,990 --> 00:15:34,440 je eden dobi, da bi to odločitev. 285 00:15:34,440 --> 00:15:37,040 Torej, moj nasprotnik dobi izbrali, ne želim, da bi mu 286 00:15:37,040 --> 00:15:39,250 stvar, ki se dogaja spraviti osem točk, 287 00:15:39,250 --> 00:15:41,916 ali pa sem mu dal stvar, ki je dogaja, da mu je devet točk, 288 00:15:41,916 --> 00:15:45,240 ali stvar, ki se dogaja da mu štiri točke? 289 00:15:45,240 --> 00:15:49,130 In moj nasprotnik, pri čemer racionalno, se dogaja 290 00:15:49,130 --> 00:15:53,470 izbrati najmanj tistim, se dogaja, da izberejo štiri. 291 00:15:53,470 --> 00:15:56,020 >> In to lahko storim skozi celotno drevo. 292 00:15:56,020 --> 00:15:59,110 Lahko grem navzdol, da srednji sklop treh. 293 00:15:59,110 --> 00:16:01,517 In jaz lahko izbirajo med ena, tri in pet. 294 00:16:01,517 --> 00:16:02,350 In sem dobil, da izberejo. 295 00:16:02,350 --> 00:16:03,810 Torej, sem se odločil za pet. 296 00:16:03,810 --> 00:16:05,340 Ne morem izbrati tri, devet, ali dva. 297 00:16:05,340 --> 00:16:07,570 Sem dobil, da izberejo, tako da sem se odločil za devet. 298 00:16:07,570 --> 00:16:09,290 Šest, pet, ali dva, sem se odločil. 299 00:16:09,290 --> 00:16:11,539 Dobim izbrati šest. 300 00:16:11,539 --> 00:16:13,080 Stopnja zgoraj, da kdo dobi izbrati? 301 00:16:13,080 --> 00:16:16,280 302 00:16:16,280 --> 00:16:18,140 Kdo dobi izbrati? 303 00:16:18,140 --> 00:16:20,000 Drugi tip, moj nasprotnik. 304 00:16:20,000 --> 00:16:22,583 Tako so izbrali pet, devet, ali šest, ki je ena? 305 00:16:22,583 --> 00:16:23,410 >> OBČINSTVO: Pet. 306 00:16:23,410 --> 00:16:25,250 >> SPEAKER: So izbrali pet. 307 00:16:25,250 --> 00:16:27,400 Oni dobijo izbrati minimum. 308 00:16:27,400 --> 00:16:29,690 In potem je zadnja, izbere enega, dva ali tri. 309 00:16:29,690 --> 00:16:31,720 Sem dobil, da izberejo, tako da sem se odločil tri. 310 00:16:31,720 --> 00:16:34,370 Devet, sedem ali dva, sem se odločil, devet. 311 00:16:34,370 --> 00:16:37,070 In 11, šest ali štiri, sem izbral 11. 312 00:16:37,070 --> 00:16:41,190 Moj nasprotnik potem izbere tri, devet ali 11, izbere minimum. 313 00:16:41,190 --> 00:16:43,290 On mi daje tri. 314 00:16:43,290 --> 00:16:47,780 In nato končno na vrhu drevo, dobim spet izbrali. 315 00:16:47,780 --> 00:16:51,190 In sem dobil, da izberejo med štiri, pet ali tri. 316 00:16:51,190 --> 00:16:52,270 Torej vzamem pet. 317 00:16:52,270 --> 00:16:55,070 318 00:16:55,070 --> 00:17:00,891 >> Če bom dobil nadzor nad vsem, sem ubrati pot, ki je vodila do 11. 319 00:17:00,891 --> 00:17:02,390 Ampak jaz ne razumem, da bi to odločitev. 320 00:17:02,390 --> 00:17:04,220 Če grem dol tej poti. 321 00:17:04,220 --> 00:17:10,710 Moj nasprotnik me bodo prisilili v izbira, ki vodi do tri. 322 00:17:10,710 --> 00:17:14,530 Zato je najbolje, da sem lahko naredil je, sprejeti to srednji vejo, 323 00:17:14,530 --> 00:17:19,859 bi to izbiro, ki je na koncu dogaja, da me pripelje do petih točk. 324 00:17:19,859 --> 00:17:23,230 To je tisto, minimax počne. 325 00:17:23,230 --> 00:17:23,807 >> V redu. 326 00:17:23,807 --> 00:17:24,890 Oglejmo pogled na to. 327 00:17:24,890 --> 00:17:27,480 328 00:17:27,480 --> 00:17:32,330 Torej, tukaj v CS50 IDE je program, ki 329 00:17:32,330 --> 00:17:36,540 izvaja minimax igrati tic-tac-toe. 330 00:17:36,540 --> 00:17:40,100 Mi bomo za izgradnjo up reprezentacije. 331 00:17:40,100 --> 00:17:44,390 Bomo imeli dve opponent-- ali dva igralca, naš računalnik 332 00:17:44,390 --> 00:17:46,090 Igralec in človeški igralec. 333 00:17:46,090 --> 00:17:48,980 334 00:17:48,980 --> 00:17:53,090 Številka igralec ena bo igral O. To bo stroj igralec. 335 00:17:53,090 --> 00:17:55,747 So prišli do drugega premakniti. 336 00:17:55,747 --> 00:17:57,830 In drugi igralec, naše človeški igralec, da ne bo X. 337 00:17:57,830 --> 00:17:59,880 >> In da bi moje življenje malo preprosto, jaz grem 338 00:17:59,880 --> 00:18:03,060 označevati, da igralca v negativnem. 339 00:18:03,060 --> 00:18:05,026 Tako da sem lahko samo množijo s negativnega, da bi zamenjali 340 00:18:05,026 --> 00:18:06,400 med enim igralcem in drugi. 341 00:18:06,400 --> 00:18:09,030 342 00:18:09,030 --> 00:18:12,250 Vse je v redu, tako da je lahko pogled na kaj smo dejansko storili. 343 00:18:12,250 --> 00:18:15,840 Bomo opredeliti našo ploščo. 344 00:18:15,840 --> 00:18:19,060 To se dogaja, da je dobro, da gremo da se omogoči, da je tri s tri, 345 00:18:19,060 --> 00:18:21,580 ali mi lahko celo igrajo pet s pet ali sedem 346 00:18:21,580 --> 00:18:28,870 za sedem tic-tac-toe, če bi podobno, ki temelji na neki razsežnosti D. 347 00:18:28,870 --> 00:18:31,260 >> In bomo imeli par od pomožne funkcije 348 00:18:31,260 --> 00:18:34,360 da bom naredil stvari, kot so inicializacijo screen-- ali žal, 349 00:18:34,360 --> 00:18:38,900 inicializacijo naše spremenljivke, počistite zaslon, potegnite ploščo na zaslonu, 350 00:18:38,900 --> 00:18:41,060 tisti, ki preverja krovu da vidite, ali ne 351 00:18:41,060 --> 00:18:44,520 tam je zmagovalec tisti, ki razčleni skozi ukazno vrstico, 352 00:18:44,520 --> 00:18:50,670 samo pomagati, tisto, ki je zapisano v vhod in ena funkcija imenuje minimax. 353 00:18:50,670 --> 00:18:52,746 In to je eden bomo mar najbolj všeč. 354 00:18:52,746 --> 00:18:54,120 Toda poglejmo najprej na glavni. 355 00:18:54,120 --> 00:18:57,490 356 00:18:57,490 --> 00:18:58,510 >> Kaj počnemo? 357 00:18:58,510 --> 00:19:00,570 No, bomo razčleniti našo ukazno vrstico, 358 00:19:00,570 --> 00:19:04,300 samo brati in videti, kaj dimenzija svet bi radi imeli. 359 00:19:04,300 --> 00:19:07,330 Bomo inicializacijo našo ploščo. 360 00:19:07,330 --> 00:19:10,360 In potem bomo vnesti eno big wild zanka, večkrat 361 00:19:10,360 --> 00:19:16,630 sprejeti poteze, dokler se igra zmagal, ali pa je ni premika levo. 362 00:19:16,630 --> 00:19:20,560 Vsakič, ko gremo skozi to zanka, bomo počistiti zaslon. 363 00:19:20,560 --> 00:19:23,290 Mi bomo pripraviti ploščo na zaslonu. 364 00:19:23,290 --> 00:19:28,750 In smo namenoma nekako abstrahiranje to stran kot podprogram, 365 00:19:28,750 --> 00:19:32,030 tako da nam ni treba skrbeti preveč o podrobnostih, kako se zgodi. 366 00:19:32,030 --> 00:19:33,480 >> Boste morali kodo kasneje danes. 367 00:19:33,480 --> 00:19:37,970 In če hočeš gledati skozi in izvedeli, da jih vsi vidimo. 368 00:19:37,970 --> 00:19:39,890 Ampak bomo pripraviti desko na zaslonu. 369 00:19:39,890 --> 00:19:43,620 In potem bomo preveri in glej, imamo zmagovalca? 370 00:19:43,620 --> 00:19:46,290 Je nekdo zmagal to igro? 371 00:19:46,290 --> 00:19:49,260 Če imajo, bomo natisnete ven zmaga sporočila. 372 00:19:49,260 --> 00:19:51,680 In bomo končate igro. 373 00:19:51,680 --> 00:19:54,510 >> Bomo tudi preveriti in vidim, če je kravata. 374 00:19:54,510 --> 00:19:56,620 To bo enostavno, da vidim, če obstaja kravato. 375 00:19:56,620 --> 00:20:00,700 To pomeni, da so vsi prostori polni, vendar ni bilo še zmagovalec. 376 00:20:00,700 --> 00:20:03,580 Mi lahko razglasi kravato in bi morali narediti. 377 00:20:03,580 --> 00:20:10,530 Potem je pravi meat-- če to je stroj predvajalnik, 378 00:20:10,530 --> 00:20:14,120 bomo dovolijo, da Stroj igralec iskanje 379 00:20:14,120 --> 00:20:19,500 z uporabo te Minimax algoritem, najti najboljšo potezo, da je to mogoče. 380 00:20:19,500 --> 00:20:22,310 In potem bomo dal to move up. 381 00:20:22,310 --> 00:20:27,640 >> V nasprotnem primeru, če je človek igralec, bomo prebrali nekaj prispevek človeka. 382 00:20:27,640 --> 00:20:30,800 In potem, ali je človeško igralec ali stroj predvajalnik, 383 00:20:30,800 --> 00:20:32,800 bomo naredili nekaj malo bitov preverjanje napak, 384 00:20:32,800 --> 00:20:36,910 poskrbite, da ostane znotraj meja dejanskih razsežnosti plošče 385 00:20:36,910 --> 00:20:40,040 da imamo, se prepričajte, da je ta prostor prazen, 386 00:20:40,040 --> 00:20:43,570 da nihče dal kos tam že. 387 00:20:43,570 --> 00:20:45,810 In potem bomo samo dal kos na krovu, 388 00:20:45,810 --> 00:20:51,550 zamenjati igralca na naslednjo plast, in prirastek koliko potez je zgodilo. 389 00:20:51,550 --> 00:20:54,090 >> To je glavna zanka za naša tic-tac-toe igro. 390 00:20:54,090 --> 00:20:57,000 391 00:20:57,000 --> 00:21:02,340 Minimax, potem je točno algoritem, ki smo prej. 392 00:21:02,340 --> 00:21:04,710 Edina prilagoditev, ki smo naredili tako, da smo 393 00:21:04,710 --> 00:21:07,290 lahko igrajo višje dimenzionalni plošče je, ki smo jih 394 00:21:07,290 --> 00:21:11,070 hrani ta dodatni parameter, imenovano globino. 395 00:21:11,070 --> 00:21:14,870 In globino samo pravi, če sem iskanje navzdol skozi drevesa 396 00:21:14,870 --> 00:21:19,022 in sem dobil tako daleč navzdol onkraj neke globine ravni 397 00:21:19,022 --> 00:21:20,730 da jaz samo ne želim da gredo vse nadaljnje, 398 00:21:20,730 --> 00:21:25,630 Bom ustaviti in samo oceniti ploščo na tej točki. 399 00:21:25,630 --> 00:21:27,310 Bom preverite in videli, če je zmagovalec. 400 00:21:27,310 --> 00:21:29,240 Če je zmagovalec, sem jih vrnil. 401 00:21:29,240 --> 00:21:31,720 V nasprotnem primeru bom šel skozi zanko. 402 00:21:31,720 --> 00:21:34,380 In bom rekel, za vse možne lokacije 403 00:21:34,380 --> 00:21:38,080 da sem lahko morebiti vzemite mojo potezo, bom 404 00:21:38,080 --> 00:21:43,760 zgraditi hipotetično ploščo, ki vključuje mojo potezo na tej ladji, 405 00:21:43,760 --> 00:21:45,960 nato pa rekurzivno klice Minimax. 406 00:21:45,960 --> 00:21:49,360 407 00:21:49,360 --> 00:21:53,900 >> Če je moja poteza, sem dobil, da bi našli tisti, ki je dobil največje število točk. 408 00:21:53,900 --> 00:21:58,710 Če je moj nasprotnik poteza, smo ugotovili, tisti, ki je dobil najnižjo oceno. 409 00:21:58,710 --> 00:22:02,240 In vse ostalo je Samo vodenje evidence. 410 00:22:02,240 --> 00:22:04,789 Vse je v redu, tako da je videti to tek. 411 00:22:04,789 --> 00:22:06,830 Pravzaprav, morda bomo lahko dobili nekaj prostovoljcev 412 00:22:06,830 --> 00:22:09,930 da pridejo gor in igrati tic-tac-toe. 413 00:22:09,930 --> 00:22:12,780 [Neslišno] ena, in ena več, dva, prav tam. 414 00:22:12,780 --> 00:22:13,550 Pridi gor. 415 00:22:13,550 --> 00:22:19,290 416 00:22:19,290 --> 00:22:23,650 >> Torej, gremo naprej in zagnati to popolnoma. 417 00:22:23,650 --> 00:22:24,150 Torej, hi. 418 00:22:24,150 --> 00:22:24,920 >> OBČINSTVO: Zdravo. 419 00:22:24,920 --> 00:22:25,420 >> SPEAKER: Kako ti je ime? 420 00:22:25,420 --> 00:22:26,086 >> OBČINSTVO: Gorav. 421 00:22:26,086 --> 00:22:26,840 SPEAKER: Gorav. 422 00:22:26,840 --> 00:22:27,800 >> OBČINSTVO: Jaz sem Layla. 423 00:22:27,800 --> 00:22:29,490 >> SPEAKER: In Layla, in Layla, žal. 424 00:22:29,490 --> 00:22:30,384 Pridi gor. 425 00:22:30,384 --> 00:22:32,050 Gorav, bomo imeli greš prvi. 426 00:22:32,050 --> 00:22:37,710 In bom, da vas prosim, da je ne strašno dobra tic-tac-toe igralec. 427 00:22:37,710 --> 00:22:40,130 OK, tako da vse je pritisk off na vas. 428 00:22:40,130 --> 00:22:44,660 Poglejmo, čeprav je, da naš stroj Igralec lahko dejansko naredi nekaj pametnega. 429 00:22:44,660 --> 00:22:45,310 Torej, pojdi naprej. 430 00:22:45,310 --> 00:22:49,830 Ti boš, da tip v katerem usklajujejo bi želeli, da vaš X v. 431 00:22:49,830 --> 00:22:55,170 A0, OK, in stroj je šel desno stran in dal svoj pečat v A1. 432 00:22:55,170 --> 00:22:56,640 >> Postavite O na krovu. 433 00:22:56,640 --> 00:22:58,970 Vse je v redu, zdaj gremo naprej. 434 00:22:58,970 --> 00:23:00,193 Kam želite iti? 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 Igralec je sprejela srednji kvadratni, blokiran vas. 438 00:23:08,430 --> 00:23:10,320 Tako, da je bila dobra, pametna stvar za to narediti. 439 00:23:10,320 --> 00:23:13,430 440 00:23:13,430 --> 00:23:14,250 Ste ga blokirali. 441 00:23:14,250 --> 00:23:15,210 To je odlično. 442 00:23:15,210 --> 00:23:16,390 To traja kotu tam. 443 00:23:16,390 --> 00:23:23,890 444 00:23:23,890 --> 00:23:30,430 >> In to se dogaja, da te prisili, da vzemite eno zadnji prostor, B0. 445 00:23:30,430 --> 00:23:32,220 In igra se konča s kravato. 446 00:23:32,220 --> 00:23:35,030 Vendar je igral razumno Igra proti tebi, kajne? 447 00:23:35,030 --> 00:23:36,956 V redu, hvala lepa, Gorav. 448 00:23:36,956 --> 00:23:40,860 >> [Aplavz] 449 00:23:40,860 --> 00:23:44,723 >> Vredu, Layla, greva gor igre za vas tukaj. 450 00:23:44,723 --> 00:23:46,940 >> OBČINSTVO: Oh, super. 451 00:23:46,940 --> 00:23:49,950 >> SPEAKER: bomo dati vam štiri štiri tic-tac-toe. 452 00:23:49,950 --> 00:23:54,760 Zdaj, v štirih s štiri, moraš zmagati s štirimi zapored, ne tri zapored. 453 00:23:54,760 --> 00:23:56,135 In to je vse tvoje. 454 00:23:56,135 --> 00:24:02,180 455 00:24:02,180 --> 00:24:04,420 Torej Layla je D1. 456 00:24:04,420 --> 00:24:11,730 Mi smo zdaj dogaja, da sledite naš računalnik player tukaj. 457 00:24:11,730 --> 00:24:16,910 Tri za tri tic-tac-toe je vrsta stvar, ki je enostaven za vse nas. 458 00:24:16,910 --> 00:24:21,960 Ampak to je še vedno lepo videti Računalnik igralec izdelavo pametne poteze. 459 00:24:21,960 --> 00:24:23,725 Štiri za štiri dobi bo malo težje. 460 00:24:23,725 --> 00:24:42,960 461 00:24:42,960 --> 00:24:44,230 >> Lepo opravljeno. 462 00:24:44,230 --> 00:24:46,210 Vse je v redu, tako da Layla je zaključil. 463 00:24:46,210 --> 00:24:48,270 Oh, in mi bi morali tam končal. 464 00:24:48,270 --> 00:24:51,870 Ampak kaj je naredil še en tu gor. 465 00:24:51,870 --> 00:24:53,480 Torej Layla, hvala. 466 00:24:53,480 --> 00:24:55,112 Lepo opravljeno. 467 00:24:55,112 --> 00:24:57,517 >> [Aplavz] 468 00:24:57,517 --> 00:25:00,410 469 00:25:00,410 --> 00:25:04,750 >> Torej naša tic-tac-toe igralec gre skozi in najde lokacije, 470 00:25:04,750 --> 00:25:07,040 rešuje njihovo uporabo tega Minimax. 471 00:25:07,040 --> 00:25:08,990 In sem imel nastavitev globine na to, da ji 472 00:25:08,990 --> 00:25:11,010 ne bi bilo teči prehitro, kar je verjetno, zakaj 473 00:25:11,010 --> 00:25:16,790 Layla mogel iti lepo naprej kot ona, in naredil zelo dobro. 474 00:25:16,790 --> 00:25:20,450 Ampak ti sistemi, ki so pravkar iti skozi in silo 475 00:25:20,450 --> 00:25:23,870 globlje in globlje in globlje, in obdržati iskanju rešitev 476 00:25:23,870 --> 00:25:29,890 ki jih potrebujejo, tiste vrste sistemov so precej uspešni pri njih, tudi, 477 00:25:29,890 --> 00:25:32,700 standardne družabne igre. 478 00:25:32,700 --> 00:25:37,060 >> In v resnici, če pogledamo tri za tri tic-tac-toe igro, 479 00:25:37,060 --> 00:25:40,040 to je v bistvu rešen problem. 480 00:25:40,040 --> 00:25:45,430 In to je čudovit diagram od Randall Munroe na Xkcd, 481 00:25:45,430 --> 00:25:52,130 Prikazovanje, ki premikajo bi smeli sprejeti, ker vaš nasprotnik je poteze. 482 00:25:52,130 --> 00:25:56,420 To je nekaj, kar smo lahko enostavno določiti vnaprej. 483 00:25:56,420 --> 00:26:00,180 Toda kaj se zgodi, ko pridemo do bolj kompleksne igre, bolj zapletena igre, 484 00:26:00,180 --> 00:26:05,690 kjer obstajajo Večje deske več, možnosti, globlje strategija? 485 00:26:05,690 --> 00:26:09,660 >> Izkazalo se je, da je to silo iščejo vedno 486 00:26:09,660 --> 00:26:14,150 pa razmeroma dobro, razen ko prideš do točke, 487 00:26:14,150 --> 00:26:19,230 če to drevo je tako velika, da ga vse ne more predstavljati. 488 00:26:19,230 --> 00:26:22,370 489 00:26:22,370 --> 00:26:28,280 Ko ne more izračunati celotno drevo, ko ne more iti naprej in potisnite 490 00:26:28,280 --> 00:26:32,204 sami do točke, kjer youve gotten celotno drevo v spomin, 491 00:26:32,204 --> 00:26:34,370 ali pa ga lahko dobite v spomin in da bo samo 492 00:26:34,370 --> 00:26:39,200 vzemite si preveč časa, da iskanje po to, kar morate storiti nekaj pametnejši. 493 00:26:39,200 --> 00:26:42,620 494 00:26:42,620 --> 00:26:46,450 >> Da za to, vas morali narediti dve stvari. 495 00:26:46,450 --> 00:26:49,030 Najprej moraš najti nekaj način omejevanja svoje globine. 496 00:26:49,030 --> 00:26:50,370 No, to je v redu. 497 00:26:50,370 --> 00:26:55,740 Mi lahko našli nekaj lepo, najnujnejše in pravijo, greš lahko samo tako globoko. 498 00:26:55,740 --> 00:27:00,890 Toda ko to storite, da vam pomeni so te delno nepopolnih plošč. 499 00:27:00,890 --> 00:27:04,770 In boste morali izbrati, ali mi je všeč To delno nepopolna krovu, 500 00:27:04,770 --> 00:27:08,600 ali je to delno nepopolni svet? 501 00:27:08,600 --> 00:27:11,910 >> In na naših štirih, ki jih štiri tic-tac-toe igro, 502 00:27:11,910 --> 00:27:15,240 naš računalnik igralec dobil dol do dna in je rekel, 503 00:27:15,240 --> 00:27:16,800 Imam dva različna desk. 504 00:27:16,800 --> 00:27:17,940 Niti ena zmaga. 505 00:27:17,940 --> 00:27:19,120 Niti eden je izguba. 506 00:27:19,120 --> 00:27:22,070 Niti eden je kravata. 507 00:27:22,070 --> 00:27:24,100 Kako izbrati med njimi? 508 00:27:24,100 --> 00:27:26,200 In to niso imeli pameten način za početje to. 509 00:27:26,200 --> 00:27:28,910 510 00:27:28,910 --> 00:27:32,850 >> Vidimo te vrste vrednotenje zgodi ves čas 511 00:27:32,850 --> 00:27:35,290 kot smo dobili v bolj kompleksne igre. 512 00:27:35,290 --> 00:27:37,600 Šah je odličen primer. 513 00:27:37,600 --> 00:27:41,550 V šahu, moramo najprej vse, večji svet. 514 00:27:41,550 --> 00:27:43,370 Imamo veliko več kosov. 515 00:27:43,370 --> 00:27:47,930 In pozicioniranje teh kosov in način, da ti kosi premikanje 516 00:27:47,930 --> 00:27:50,370 je izredno pomembno. 517 00:27:50,370 --> 00:27:53,700 Torej, če želim uporabljati Minimax, Moram biti sposobni določiti 518 00:27:53,700 --> 00:27:58,240 in reči, ta svet, kjer nihče ni zmagal ali izgubil še, 519 00:27:58,240 --> 00:28:04,310 je nekako bolje kot ta drugi svet, kjer nihče ni zmagal ali izgubil. 520 00:28:04,310 --> 00:28:06,740 >> Da bi to dosegli, bi jaz Stvari, kot so morda sem 521 00:28:06,740 --> 00:28:10,787 preštejte, koliko kosov imam in koliko kosov imate? 522 00:28:10,787 --> 00:28:12,870 Ali lahko dam drugačen kosov različnih točk. 523 00:28:12,870 --> 00:28:14,420 Moja kraljica je vredna 20 točk. 524 00:28:14,420 --> 00:28:16,500 Vaš kmet je vredno eno točko. 525 00:28:16,500 --> 00:28:18,920 Kdo ima več točk skupaj? 526 00:28:18,920 --> 00:28:22,300 Ali bi se mi zdi stvari všeč, ki je dobil boljši položaj plošče? 527 00:28:22,300 --> 00:28:26,820 Čigava je na vrsti je naslednji, vse, kar sem lahko 528 00:28:26,820 --> 00:28:31,220 ne da bi natančneje oceniti katera od teh možnosti 529 00:28:31,220 --> 00:28:34,660 Bolje je, ne da bi izčrpno upoštevamo 530 00:28:34,660 --> 00:28:36,565 vsaka poteza, ki bi lahko prišel po tem. 531 00:28:36,565 --> 00:28:39,740 532 00:28:39,740 --> 00:28:45,130 >> Zdaj pa, da bi to delo, ena od stvari, ki je 533 00:28:45,130 --> 00:28:48,680 bo postala zares pomembno za nas ni samo premika naravnost 534 00:28:48,680 --> 00:28:53,720 navzdol na določeno globino meja, vendar bi mogli reči, 535 00:28:53,720 --> 00:28:59,380 ena izmed teh idej, ki sem imajo tako slab, da je 536 00:28:59,380 --> 00:29:02,280 ni vredno razmisliti vseh možnih načinov 537 00:29:02,280 --> 00:29:06,680 da lahko gredo stvari iz slabega na slabše. 538 00:29:06,680 --> 00:29:12,760 Da bi to dosegli, bomo dodali v MINIMAX načelo, imenovano -alfa-beta. 539 00:29:12,760 --> 00:29:16,340 In alfa-beta pravi, če imate slabo idejo, 540 00:29:16,340 --> 00:29:22,840 ne zapravljajo svoj čas težaven izvedeti točno, kako slabo je. 541 00:29:22,840 --> 00:29:24,990 >> Torej, tukaj je, kaj bomo storili. 542 00:29:24,990 --> 00:29:28,620 Bomo vzeli enako načela, ki smo jih imeli prej, 543 00:29:28,620 --> 00:29:32,200 enako minimaks tip iskanja, le da smo 544 00:29:32,200 --> 00:29:37,570 gre slediti, ne le od dejanske vrednosti, ki jih imamo, vendar bomo 545 00:29:37,570 --> 00:29:41,440 spremljate najboljša možna vrednost, da sem lahko dobil, 546 00:29:41,440 --> 00:29:45,700 in najslabša možna Rezultat bi lahko imeli. 547 00:29:45,700 --> 00:29:50,470 In kadarkoli najslabša možna stvar je videti verjetno, 548 00:29:50,470 --> 00:29:52,694 Bom opusti ta del drevesa. 549 00:29:52,694 --> 00:29:54,610 In ne bom niti trudile gledaš na to anymore. 550 00:29:54,610 --> 00:29:57,680 551 00:29:57,680 --> 00:30:02,600 >> Vse je v redu, tako da si predstavljam, da začnemo s to isto točno igre drevesa. 552 00:30:02,600 --> 00:30:05,200 In zdaj smo šli spet navzdol, vso pot navzdol 553 00:30:05,200 --> 00:30:07,200 na tem spodnjem levem kotu. 554 00:30:07,200 --> 00:30:11,180 In v tem spodnjem levem kotu, smo poglej in ocenjujemo ta odbor. 555 00:30:11,180 --> 00:30:15,700 Mogoče je štiri s štirimi tic-tac-toe krovu, ali morda je šahovnici. 556 00:30:15,700 --> 00:30:18,620 Ampak gledamo na to, in ocenjujemo to, in smo dobili vrednost osem. 557 00:30:18,620 --> 00:30:22,290 558 00:30:22,290 --> 00:30:28,030 >> Takrat smo vedeli, da bomo dobili vsaj 559 00:30:28,030 --> 00:30:32,380 osem točk od tega dna odločbe. 560 00:30:32,380 --> 00:30:36,620 Ni važno, kaj drugi dva, da sedem in da sta dve. 561 00:30:36,620 --> 00:30:38,580 Ti so lahko vse vrednosti so želeli biti. 562 00:30:38,580 --> 00:30:41,279 Bomo dobili na Najmanj osem točk. 563 00:30:41,279 --> 00:30:43,070 Vse je v redu, vendar pa smo lahko pojdi naprej in preverite. 564 00:30:43,070 --> 00:30:45,080 Morda eden od njiju je boljši od osmih. 565 00:30:45,080 --> 00:30:46,000 >> Gledamo na sedem. 566 00:30:46,000 --> 00:30:46,910 Je, da je bolje kot osem? 567 00:30:46,910 --> 00:30:48,680 Ne, to ne spremeni naše mnenje sploh. 568 00:30:48,680 --> 00:30:49,460 Gledamo na dveh. 569 00:30:49,460 --> 00:30:50,543 Je, da je bolje kot osem? 570 00:30:50,543 --> 00:30:52,580 Ne, to ne spremeni naše mnenje sploh. 571 00:30:52,580 --> 00:30:55,480 Zdaj vemo, da smo izčrpali vse možnosti tam. 572 00:30:55,480 --> 00:30:58,330 Ne bomo dobili kaj boljši od osmih. 573 00:30:58,330 --> 00:31:01,310 Bomo dobili natanko osem. 574 00:31:01,310 --> 00:31:03,825 >> In tako smo spremenili to vozlišče in recimo, da je zdaj gotovost. 575 00:31:03,825 --> 00:31:07,010 576 00:31:07,010 --> 00:31:10,270 Gremo eno stopnjo nad tem. 577 00:31:10,270 --> 00:31:13,820 In zdaj vemo, kaj o tej ravni minimalizacije. 578 00:31:13,820 --> 00:31:18,560 Vemo, da nikoli ne bo dobil več kot osem točk, če gremo dol 579 00:31:18,560 --> 00:31:20,910 da smer. 580 00:31:20,910 --> 00:31:22,980 Ker tudi če tisti, drugi dve veji izkažejo 581 00:31:22,980 --> 00:31:26,170 bi bilo fantastično in vredno tisoče točk vsakega, 582 00:31:26,170 --> 00:31:31,666 naš nasprotnik nam bo dala minimum, in nam dal osem. 583 00:31:31,666 --> 00:31:32,790 Vse je v redu, no, pa poglejmo. 584 00:31:32,790 --> 00:31:35,190 Bomo nadaljuj po tej poti. 585 00:31:35,190 --> 00:31:38,490 Gremo dol k tej sredini na levi strani. 586 00:31:38,490 --> 00:31:40,560 Gledamo navzdol in vidimo, da je devet. 587 00:31:40,560 --> 00:31:45,590 Vemo, da bomo dobili najmanj devet točk, ki jih bo dol 588 00:31:45,590 --> 00:31:47,720 da Middle Road. 589 00:31:47,720 --> 00:31:52,110 In na tej točki, lahko samo pavza. 590 00:31:52,110 --> 00:31:56,910 In lahko rečemo, poglej sem vem v stopnji zgoraj, 591 00:31:56,910 --> 00:32:01,160 Jaz grem, da bi dobili več kot osem poudarja, da greste dol to smer. 592 00:32:01,160 --> 00:32:05,670 Ampak, če sem šel po sredi Pot namesto leve poti, 593 00:32:05,670 --> 00:32:08,980 Rad bi dobil vsaj devet točk. 594 00:32:08,980 --> 00:32:13,590 >> Moj nasprotnik nikoli ne bo mi dol to srednjo pot. 595 00:32:13,590 --> 00:32:14,650 Dobijo izbrati. 596 00:32:14,650 --> 00:32:18,140 In oni 'tekoč, da izberejo Pot levo proti osem, 597 00:32:18,140 --> 00:32:23,650 namesto po sredini smeri kaj je vsaj devet točk. 598 00:32:23,650 --> 00:32:25,334 Torej, na tej točki, bom ustavil. 599 00:32:25,334 --> 00:32:26,500 In bom rekel, veste kaj? 600 00:32:26,500 --> 00:32:29,990 Nimam pogledati koli več določenimi v tej smeri. 601 00:32:29,990 --> 00:32:32,270 Ker sem ne bo nikoli prišel tja. 602 00:32:32,270 --> 00:32:36,660 >> Lahko preskočite nad tem enem, in sem lahko preskočite nad tem šest, 603 00:32:36,660 --> 00:32:39,720 ker to nikoli ne bo zgodilo. 604 00:32:39,720 --> 00:32:42,470 Torej, jaz bom šel dol in bom menijo, naslednjo možnost. 605 00:32:42,470 --> 00:32:44,830 Grem tja in rečem, vidim dva. 606 00:32:44,830 --> 00:32:47,125 Vem, da če dobim tukaj, sem bo dobil vsaj dva. 607 00:32:47,125 --> 00:32:49,810 608 00:32:49,810 --> 00:32:50,470 V REDU. 609 00:32:50,470 --> 00:32:51,520 Jaz nadaljujem. 610 00:32:51,520 --> 00:32:52,440 Vidim štiri. 611 00:32:52,440 --> 00:32:54,920 Vem, da bom dobil vsaj štiri. 612 00:32:54,920 --> 00:32:57,200 Še vedno je veliko med štiri in osem, čeprav. 613 00:32:57,200 --> 00:32:58,454 Tako sem nadaljuj. 614 00:32:58,454 --> 00:32:59,870 Sem pogledal dol in vidim, da je eden. 615 00:32:59,870 --> 00:33:01,614 Dobro, vem, če Sem šel po tej poti, 616 00:33:01,614 --> 00:33:03,280 Jaz grem, da bi lahko izbrali štiri. 617 00:33:03,280 --> 00:33:06,540 618 00:33:06,540 --> 00:33:08,980 Kaj je moj nasprotnik bo naredil? 619 00:33:08,980 --> 00:33:12,310 Med nekaj, kar mi daje osem, nekaj, kar mi daje štiri, 620 00:33:12,310 --> 00:33:14,730 in nekaj, kar mi daje vsaj devet, 621 00:33:14,730 --> 00:33:17,550 No, on se dogaja, da mi štirje. 622 00:33:17,550 --> 00:33:20,110 In vem, zdaj v zelo top, jaz grem 623 00:33:20,110 --> 00:33:23,145 bi lahko dobili vsaj štiri točke od te igre. 624 00:33:23,145 --> 00:33:27,030 625 00:33:27,030 --> 00:33:30,900 >> Celotna ideja alfa-beta je, da bi prekinil deli drevesa tako 626 00:33:30,900 --> 00:33:32,530 da ne gledam na njih več. 627 00:33:32,530 --> 00:33:35,964 Ampak to še vedno izgleda kot da sem bil gledaš veliko drevo. 628 00:33:35,964 --> 00:33:36,880 Naj nadaljujem navzdol. 629 00:33:36,880 --> 00:33:38,305 Bomo šli dol naslednjo zdaj. 630 00:33:38,305 --> 00:33:39,680 Dol na dnu, sem našel enega. 631 00:33:39,680 --> 00:33:41,030 Vem, da bom dobil vsaj enega. 632 00:33:41,030 --> 00:33:41,690 Držim videti. 633 00:33:41,690 --> 00:33:42,625 >> Sem našel tri. 634 00:33:42,625 --> 00:33:44,250 Vem, da bom dobil vsaj tri. 635 00:33:44,250 --> 00:33:44,840 Jaz nadaljujem. 636 00:33:44,840 --> 00:33:45,660 Sem našel pet. 637 00:33:45,660 --> 00:33:49,760 Vem, da bom dobil pet če pridem dol na tej poti. 638 00:33:49,760 --> 00:33:52,580 In tudi vem, potem da mojega nasprotnika, če I 639 00:33:52,580 --> 00:33:55,510 izberejo sredi tri velike izbire, 640 00:33:55,510 --> 00:34:01,440 on se dogaja, da bi me nekaj, kar je pet ali manj. 641 00:34:01,440 --> 00:34:02,150 >> V REDU. 642 00:34:02,150 --> 00:34:03,400 Lahko nadaljujem tam. 643 00:34:03,400 --> 00:34:06,470 Sem lahko pogledal dol in jaz Lahko rečem, kaj bom 644 00:34:06,470 --> 00:34:08,239 da bi dobili, če grem dol po srednji poti? 645 00:34:08,239 --> 00:34:09,909 Jaz grem, da bi dobili, dobro, tri tam. 646 00:34:09,909 --> 00:34:12,080 Jaz grem, da bi dobili nekaj da je vsaj tri. 647 00:34:12,080 --> 00:34:16,030 Še vedno se stvari med tri in pet, tako da sem iščite naprej. 648 00:34:16,030 --> 00:34:20,203 Oh, devet, bom definitivno sprejeti, da več kot tri. 649 00:34:20,203 --> 00:34:22,744 Jaz grem, da bi dobili vsaj devet če grem dol, da je srednja pot. 650 00:34:22,744 --> 00:34:25,530 651 00:34:25,530 --> 00:34:31,010 >> Zdaj pa moj nasprotnik ustavi in ​​reče: poglej, nima smisla več. 652 00:34:31,010 --> 00:34:33,669 Vem, da je moj zmanjševanjem nasprotnik, on je 653 00:34:33,669 --> 00:34:36,210 dogaja, da mi je stvar, ki je manjša ali enaka pet, 654 00:34:36,210 --> 00:34:39,030 namesto stvar, ki je večja ali enaka devet. 655 00:34:39,030 --> 00:34:39,530 Neham. 656 00:34:39,530 --> 00:34:40,779 Ne gledam več na to. 657 00:34:40,779 --> 00:34:43,280 Jaz nadaljujem. 658 00:34:43,280 --> 00:34:44,850 >> Sem pogledal dol na to. 659 00:34:44,850 --> 00:34:46,370 Do dna, sem našel šest. 660 00:34:46,370 --> 00:34:50,040 Vem, da bom dobil vsaj šest. 661 00:34:50,040 --> 00:34:53,130 In kaj lahko storim? 662 00:34:53,130 --> 00:34:54,877 Ne morem ustaviti. 663 00:34:54,877 --> 00:34:57,460 Zato, ker je izbira med nekaj, kar je vsaj šest 664 00:34:57,460 --> 00:34:59,250 in nekaj, kar je manj kot pet, on je 665 00:34:59,250 --> 00:35:02,570 dogaja, da mi stvar To je manj kot pet. 666 00:35:02,570 --> 00:35:04,779 In zdaj vem, da bom da bi dobili točno to izbiro. 667 00:35:04,779 --> 00:35:06,195 Jaz grem, da bi dobili, da je pet izbiro. 668 00:35:06,195 --> 00:35:08,980 669 00:35:08,980 --> 00:35:10,010 >> Grem nazaj do vrha. 670 00:35:10,010 --> 00:35:11,450 Katerih bom izbirate med nekaj 671 00:35:11,450 --> 00:35:14,449 to je enako ali večje od štiri, ali nekaj, kar je enako petim? 672 00:35:14,449 --> 00:35:17,140 Bom vzeti nekaj to je najmanj pet. 673 00:35:17,140 --> 00:35:20,490 Grem dol zadnjo pot, vsi tja do dna. 674 00:35:20,490 --> 00:35:21,260 Tam je ena. 675 00:35:21,260 --> 00:35:23,410 OK, vsaj jaz bom dobil eno točko. 676 00:35:23,410 --> 00:35:24,427 Jaz nadaljujem. 677 00:35:24,427 --> 00:35:25,760 Dva, oh, da je bolje kot ena. 678 00:35:25,760 --> 00:35:27,100 Jaz grem, da bi dobili vsaj dva. 679 00:35:27,100 --> 00:35:28,610 Sem našel tri. 680 00:35:28,610 --> 00:35:31,450 Vem, da bom dobil tri. 681 00:35:31,450 --> 00:35:34,690 >> In točko zgoraj, da moj nasprotnik se dogaja 682 00:35:34,690 --> 00:35:38,540 da mi nekaj, kar je manjša ali enaka tri. 683 00:35:38,540 --> 00:35:40,940 In zdaj ne morem ustaviti. 684 00:35:40,940 --> 00:35:46,290 Ker v izbira med mano pa lahko dobili pet in mojega nasprotnika 685 00:35:46,290 --> 00:35:52,290 mi dali nekaj manj kot tri, Jaz sem vedno dogaja, da to pet. 686 00:35:52,290 --> 00:35:56,810 Torej, jaz ne ocenila, da Spodnji del drevesa sploh. 687 00:35:56,810 --> 00:35:59,470 >> Zdaj lahko to zdi manjše. 688 00:35:59,470 --> 00:36:03,630 Toda, ko malo bitov aritmetike, večja od in manjša 689 00:36:03,630 --> 00:36:10,640 more odrezati cele dele to eksponentno raste drevo, 690 00:36:10,640 --> 00:36:14,280 ki vodi do ogromne znesek prihrankov, prihrankov 691 00:36:14,280 --> 00:36:17,630 da so dovolj velike, da sem lahko začnete igrati konkurenčno 692 00:36:17,630 --> 00:36:21,330 na bolj zahtevnih iger. 693 00:36:21,330 --> 00:36:27,030 >> Vse je v redu, če pogledamo velikost in kompleksnost različnih iger, 694 00:36:27,030 --> 00:36:29,470 tic-tac-toe je bil naš enostaven primer. 695 00:36:29,470 --> 00:36:32,150 Imamo majhno desko, tri s tri. 696 00:36:32,150 --> 00:36:36,030 Smo dobili kvečjemu povprečno približno štiri različne možnosti 697 00:36:36,030 --> 00:36:38,440 ko gremo skozi igro. 698 00:36:38,440 --> 00:36:42,720 Imamo nekje okoli 10 do peti možne različne liste. 699 00:36:42,720 --> 00:36:45,200 In izgradnja tic-tac-toe igralec, dobro, smo pravkar storil. 700 00:36:45,200 --> 00:36:47,460 To je enostavno. 701 00:36:47,460 --> 00:36:49,890 >> Če gremo do nekaj več kompleksna, kot Connect Four. 702 00:36:49,890 --> 00:36:53,170 Se spomnite to igro, kjer ti spusti malo žetonov v? 703 00:36:53,170 --> 00:36:58,490 To je šest jih sedem board, ne, da je veliko večji, še vedno 704 00:36:58,490 --> 00:37:00,770 ima približno enako razvejane faktor, kot tic-tac-toe. 705 00:37:00,770 --> 00:37:05,410 Imam približno štiri izbire kjer sem lahko postavite stvari. 706 00:37:05,410 --> 00:37:10,760 Toda zdaj, imam veliko več vodi, od 10 do 21. oblasti. 707 00:37:10,760 --> 00:37:14,440 To je nekaj, kar je enostavno Dovolj, da smo ga rešili takoj. 708 00:37:14,440 --> 00:37:17,560 >> Dama, bolj vas complex-- dobil osem osem krovu. 709 00:37:17,560 --> 00:37:20,570 Vi ste le na polovici jim ob vsakem času, čeprav. 710 00:37:20,570 --> 00:37:24,930 Imaš razvejane dejavnik, ki je približno 2,8. 711 00:37:24,930 --> 00:37:28,160 No, imamo nekaj premakne ste lahko. 712 00:37:28,160 --> 00:37:33,870 Imaš okoli 10 do 31. listov, večje in večje in večje prostore. 713 00:37:33,870 --> 00:37:37,340 Kot sem moral iskati prek ti večji in večji prostori, 714 00:37:37,340 --> 00:37:42,220 da je, ko stvari, kot so alfa-beta in bi mogli odrezati celotne panoge 715 00:37:42,220 --> 00:37:44,420 ključnega pomena. 716 00:37:44,420 --> 00:37:47,440 >> Zdaj, dama je bila dovolj preprosta leta 1992. 717 00:37:47,440 --> 00:37:51,400 Računalniški program, imenovan Chinook premagati svetovno dama 718 00:37:51,400 --> 00:37:53,590 prvak, Marion Tinsley. 719 00:37:53,590 --> 00:37:57,260 In od takrat, ni človeški mojster igralec ima 720 00:37:57,260 --> 00:38:02,290 bila sposobna premagati najboljše računski sistemi. 721 00:38:02,290 --> 00:38:06,570 Če pogledamo nekaj podobnega šahu, ki je zdaj spet imamo osem osem krovu. 722 00:38:06,570 --> 00:38:09,870 Vendar imamo veliko bolj zapletena kosov, veliko bolj kompleksna gibanja. 723 00:38:09,870 --> 00:38:14,610 Imamo razvejenosti faktor okoli 35, 35 možne poteze v povprečju 724 00:38:14,610 --> 00:38:20,030 da sem lahko, in državo Prostor, število listov 725 00:38:20,030 --> 00:38:28,950 ki je zrasla za 10 na 123. moči, ogromno število možnosti. 726 00:38:28,950 --> 00:38:35,570 >> Celo še, sodobne procesorje So sposobni to narediti uspešno. 727 00:38:35,570 --> 00:38:43,900 V letu 1995 in nato v letu 1997, z računalnikom Program se imenuje Deep Blue, ki jih IBM zgradili 728 00:38:43,900 --> 00:38:49,601 ki je potekal na velikanski superračunalnik premagati trenutne svetovni prvak, 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 To je bila prelomnica. 732 00:38:56,650 --> 00:39:00,620 Danes, čeprav, da ista obdelava Moč sedi na mojem MacBook. 733 00:39:00,620 --> 00:39:04,180 734 00:39:04,180 --> 00:39:06,440 >> Hitrost obdelave ohranja dobili hitreje in hitreje. 735 00:39:06,440 --> 00:39:09,500 Mi lahko oceni več deske hitreje in hitreje. 736 00:39:09,500 --> 00:39:14,550 Toda še bolj pomembno, imamo boljše funkcije vrednotenja in bolje obrezovanje 737 00:39:14,550 --> 00:39:15,460 metode. 738 00:39:15,460 --> 00:39:19,560 Tako bomo lahko preiskovati prostor bolj kompleksno. 739 00:39:19,560 --> 00:39:22,350 Največji uprave igre, ki jih lahko zamislite, 740 00:39:22,350 --> 00:39:26,310 nekaj podobnega Go, ki je dobil 19 s 19 desko, 741 00:39:26,310 --> 00:39:32,490 zdaj nenadoma, sva mimo točke kjer lahko računalniški sistemi za zmago. 742 00:39:32,490 --> 00:39:34,530 Ni računalniška Sistem tam 743 00:39:34,530 --> 00:39:38,880 da lahko premagaš strokovno Go predvajalnika. 744 00:39:38,880 --> 00:39:45,000 Najboljši sistemi danes je čin o neke dobre ravni amaterskega. 745 00:39:45,000 --> 00:39:49,285 Torej je še vedno zelo malo ven tam, da ne morete priti še. 746 00:39:49,285 --> 00:39:51,840 747 00:39:51,840 --> 00:39:55,360 >> V redu, to tradicionalne družabne igre, 748 00:39:55,360 --> 00:39:58,560 te vrste sistemov, kjer smo zgraditi to Minimax, ali je pomisleku 749 00:39:58,560 --> 00:40:06,300 alfa-beta ali ne, ti algoritmi delo saj obstajajo določene omejitve. 750 00:40:06,300 --> 00:40:08,520 Imamo popoln informacije o svetu. 751 00:40:08,520 --> 00:40:11,690 Vemo, kje so vsi koščki. 752 00:40:11,690 --> 00:40:13,570 Svet je statična. 753 00:40:13,570 --> 00:40:16,220 Nihče ne pride k premikanje kosov okoli, medtem ko sem 754 00:40:16,220 --> 00:40:20,640 sedel tam razmišljanje, pri čemer sem jaz na vrsti. 755 00:40:20,640 --> 00:40:23,140 Tam je prostor za dejanje, ki je diskretna. 756 00:40:23,140 --> 00:40:26,900 Jaz lahko dam kmeta tukaj, ali bom lahko dal svoj kmeta tukaj. 757 00:40:26,900 --> 00:40:30,520 Ne smem dati svoj kmeta na linija med dvema kvadratov. 758 00:40:30,520 --> 00:40:34,430 759 00:40:34,430 --> 00:40:36,520 >> In končno, dejanja so deterministični. 760 00:40:36,520 --> 00:40:39,790 Vem, da če rečem, Trdnjava za viteza tri, 761 00:40:39,790 --> 00:40:44,660 moja trdnjava se bo na koncu na viteza tri, dokler je veljavna poteza. 762 00:40:44,660 --> 00:40:47,830 Ni negotovost o tem. 763 00:40:47,830 --> 00:40:52,490 Zdaj, ko sem šel na več različne vrste iger, 764 00:40:52,490 --> 00:40:55,960 moramo prekiniti te predpostavke. 765 00:40:55,960 --> 00:41:00,020 >> Kaj pa, če grem za nekaj kot klasične video igre? 766 00:41:00,020 --> 00:41:04,180 Tukaj je izbor video igre iz Atari 2600. 767 00:41:04,180 --> 00:41:05,180 Kaj imam tam gor? 768 00:41:05,180 --> 00:41:08,440 Imam Frogger, Space Zavojevalci, pasti, in Pac-Man. 769 00:41:08,440 --> 00:41:11,290 770 00:41:11,290 --> 00:41:14,840 Katere vrste okolij imam zdaj tukaj? 771 00:41:14,840 --> 00:41:16,900 Kateri od teh predpostavk moram prekiniti? 772 00:41:16,900 --> 00:41:19,410 773 00:41:19,410 --> 00:41:21,570 >> No, odvisno od igre. 774 00:41:21,570 --> 00:41:28,170 Jaz bi igral šah na 2600, in da bi bilo tako kot je bilo prej. 775 00:41:28,170 --> 00:41:33,020 Za večino od teh sistemov, tam je popolno znanje o svetu. 776 00:41:33,020 --> 00:41:36,300 Tam je popolnoma deterministični ukrepi. 777 00:41:36,300 --> 00:41:38,330 Ampak ponavadi, na svetu ni več statična. 778 00:41:38,330 --> 00:41:41,970 To je, ko sem sedel tam čaka, nekaj se premika. 779 00:41:41,970 --> 00:41:44,320 Duhovi, ki prihajajo, da bi me dobili. 780 00:41:44,320 --> 00:41:46,570 Škorpijon me sledi spodaj. 781 00:41:46,570 --> 00:41:48,880 Space Invaders so prihajajo bližje in bližje. 782 00:41:48,880 --> 00:41:54,020 783 00:41:54,020 --> 00:41:55,510 Kako dobro lahko storimo zoper to? 784 00:41:55,510 --> 00:41:58,640 785 00:41:58,640 --> 00:42:02,790 >> Pred nekaj leti, Google je projekt, ki se imenuje 786 00:42:02,790 --> 00:42:12,030 DeepMind, kjer so usposobljeni računalnik Program za igranje Atari 2600 iger. 787 00:42:12,030 --> 00:42:16,120 In če mislite, da to ni resna poslovni rezultati njihovega študija 788 00:42:16,120 --> 00:42:19,920 so bili objavljeni v reviji Nature, tako skoraj tako dobra objava 789 00:42:19,920 --> 00:42:22,500 kot si lahko morda dobite. 790 00:42:22,500 --> 00:42:24,340 In tukaj je, kako dobro so opravili. 791 00:42:24,340 --> 00:42:29,220 >> Imajo algoritem, ki sedijo in gledal samo vhode zaslon. 792 00:42:29,220 --> 00:42:34,080 Pomisleku nobenih navodil whatsoever o pravilih igre. 793 00:42:34,080 --> 00:42:42,610 In je bilo predvideno, da ugotovimo, temelji na svojo oceno, kako dobro je delal. 794 00:42:42,610 --> 00:42:46,560 To je bil sistem, ki uporablja nekaj imenuje okrepitev učenja. 795 00:42:46,560 --> 00:42:48,380 To pomeni, da je bilo videti na rezultat. 796 00:42:48,380 --> 00:42:51,620 In če imaš dober rezultat, je dejal, Naj spomnim te stvari. 797 00:42:51,620 --> 00:42:53,310 In naj storim tiste znova. 798 00:42:53,310 --> 00:42:56,450 In če je dobil slabo oceno, je dejal, Jaz ne bi še enkrat te stvari. 799 00:42:56,450 --> 00:42:59,750 800 00:42:59,750 --> 00:43:03,430 >> To je predstava teh usposobljenih sistemov 801 00:43:03,430 --> 00:43:07,490 dovoljeno, da igrajo za Nekaj ​​ur za vsako igro, 802 00:43:07,490 --> 00:43:12,490 primerjajo profesionalne igralce. 803 00:43:12,490 --> 00:43:19,670 Torej za vse igre, ki so na levi strani te linije, 804 00:43:19,670 --> 00:43:25,920 to self-usposobljeni računalniški program prekosila strokovne zabava. 805 00:43:25,920 --> 00:43:29,690 In za vse, kar je desno, poklicni igralci 806 00:43:29,690 --> 00:43:30,920 so še vedno najboljši. 807 00:43:30,920 --> 00:43:34,040 808 00:43:34,040 --> 00:43:36,850 Za nekaj, kar je vedel, nič o pravilih, ki 809 00:43:36,850 --> 00:43:43,020 vedel ničesar o strukturi igre, to je impresivna predstava. 810 00:43:43,020 --> 00:43:45,660 In to je tisto, kar smo sposobni storiti danes. 811 00:43:45,660 --> 00:43:50,239 >> OK, si rečem, če pa pomislite AI v igrah, 812 00:43:50,239 --> 00:43:52,530 običajno razmišljamo o stvari, da bomo lahko dejansko 813 00:43:52,530 --> 00:43:54,180 usedem in igrati proti. 814 00:43:54,180 --> 00:43:58,760 Če sem se usesti in igram StarCraft, ali igram brezplačno sito, 815 00:43:58,760 --> 00:44:01,870 računalnik nasprotnik je oseba, ki nadzoruje Zerg, 816 00:44:01,870 --> 00:44:06,770 ali nadzor druge civilizacije. 817 00:44:06,770 --> 00:44:11,920 Kako ti igralci dejansko našli svoje poteze? 818 00:44:11,920 --> 00:44:18,810 >> No, te igre so strukturirane skoraj enak način, kot je naše družabne igre, 819 00:44:18,810 --> 00:44:22,250 te igre, da bomo skupaj pokličite štiri X igre, 820 00:44:22,250 --> 00:44:26,040 raziskati, expand-- pozabiti tiste. 821 00:44:26,040 --> 00:44:26,980 Kaj so oni? 822 00:44:26,980 --> 00:44:32,150 Raziščite, razširiti in pogasiti, Mislim, da je zadnji. 823 00:44:32,150 --> 00:44:36,060 Ampak oni so v bistvu raziskovanje in vladaj igre. 824 00:44:36,060 --> 00:44:41,020 Značilno je, da računalnik nasprotnik tam ima omejene informacije. 825 00:44:41,020 --> 00:44:45,486 Oni ne vedo, kaj je dogaja za ta megla vojne. 826 00:44:45,486 --> 00:44:47,735 Ne dobijo, da vidite, kaj imate v vašem inventarja. 827 00:44:47,735 --> 00:44:50,240 828 00:44:50,240 --> 00:44:52,800 >> Tam je okolje, ki je dinamičen. 829 00:44:52,800 --> 00:44:56,180 Vse se spreminja ves čas. 830 00:44:56,180 --> 00:45:00,290 Ne boste dobili, da bi sedel in čakam, da bo vaš korak. 831 00:45:00,290 --> 00:45:02,810 Vendar je večina stvari, ki so še vedno diskretna. 832 00:45:02,810 --> 00:45:04,200 Moram dal moje mesto tukaj. 833 00:45:04,200 --> 00:45:06,750 Ali moram dati moje mesto tukaj. 834 00:45:06,750 --> 00:45:08,950 In vse je deterministična. 835 00:45:08,950 --> 00:45:14,660 Ko rečem, premakniti mojo enoto sem, moj enoto premakne tukaj, če oviro nenadoma 836 00:45:14,660 --> 00:45:17,700 prihaja v igro. 837 00:45:17,700 --> 00:45:21,610 Zdaj pa, da še ni vse računalnik igre, ki so tam danes. 838 00:45:21,610 --> 00:45:27,320 >> Če grem in sem igral prva oseba tip igre, nekaj takega kot tat ali Fallout 839 00:45:27,320 --> 00:45:33,350 ali Skyrim ali halo, zdaj Imam računalniške nasprotnike 840 00:45:33,350 --> 00:45:37,860 da so tam, da imajo zelo drugačen položaj. 841 00:45:37,860 --> 00:45:40,020 Imajo spet omejene informacije. 842 00:45:40,020 --> 00:45:43,420 So le lahko videli gotovo vidno polje. 843 00:45:43,420 --> 00:45:45,180 Okolje je še vedno dinamičen. 844 00:45:45,180 --> 00:45:48,280 Stvari se ves čas spreminjajo. 845 00:45:48,280 --> 00:45:52,300 >> Ampak zdaj imam še veliko več neprekinjeno delovanje prostor. 846 00:45:52,300 --> 00:45:57,170 Jaz lahko samo kukanja malo ven iz vrata. 847 00:45:57,170 --> 00:46:00,650 In nekaj iger, moj dejanja so stohastične. 848 00:46:00,650 --> 00:46:04,590 Sem dobil, da bi poskušali skočiti čez zid, ampak imam možnost, da ni. 849 00:46:04,590 --> 00:46:08,280 850 00:46:08,280 --> 00:46:14,550 Te vrste iger so bližje in bližje vrste krmilnikov 851 00:46:14,550 --> 00:46:17,330 da gradimo v robotiki. 852 00:46:17,330 --> 00:46:21,050 >> Robotike, moramo domnevati, da imamo omejene informacije. 853 00:46:21,050 --> 00:46:23,070 Imamo senzorje, ki povej nam o svetu. 854 00:46:23,070 --> 00:46:25,860 Imamo vedno menjava, dinamično okolje. 855 00:46:25,860 --> 00:46:30,440 Imamo svet, v katerem je prostor neprekinjen namesto diskretna. 856 00:46:30,440 --> 00:46:36,260 In naša dejanja, ko skušamo njih, imajo možnost, da ni. 857 00:46:36,260 --> 00:46:40,960 In v resnici, sodobna igra krmilniki za vaše Halo nasprotnika, 858 00:46:40,960 --> 00:46:48,690 ali za tiste NPC v Skyrim, v bistvu teči majhne robotika arhitektur. 859 00:46:48,690 --> 00:46:50,380 >> Čutijo svet. 860 00:46:50,380 --> 00:46:52,910 Zgradijo model svetu. 861 00:46:52,910 --> 00:46:57,950 So Compute temelji na nizu cilji, ki bi jih radi dosegli. 862 00:46:57,950 --> 00:47:03,110 Načrtujejo dejavnosti, ki temeljijo o tem, kaj vedo. 863 00:47:03,110 --> 00:47:07,940 In to so natanko iste vrste sistemov, ki jih gradijo v robotiki. 864 00:47:07,940 --> 00:47:11,420 Torej te arhitekture, da bi to nazaj skupaj, 865 00:47:11,420 --> 00:47:14,500 so pogosto precej enake. 866 00:47:14,500 --> 00:47:16,340 >> Torej, da vidimo, če vidimo, da. 867 00:47:16,340 --> 00:47:19,210 Vrnimo se k naši tic-tac-toe primer. 868 00:47:19,210 --> 00:47:22,690 In jaz bom prosil nekaj mojih post-docs, da pridejo gor in mi pomagaj. 869 00:47:22,690 --> 00:47:26,970 Torej Chen Ming in Alessandro, in Olivier, če bi vi prišli. 870 00:47:26,970 --> 00:47:32,080 871 00:47:32,080 --> 00:47:35,440 In bom potreboval Nekaj ​​prostovoljcev 872 00:47:35,440 --> 00:47:37,590 >> OK, sem videl roko pravice tam v sredini. 873 00:47:37,590 --> 00:47:39,965 Naj bo ena več, nekdo dodatno v ozadju morda. 874 00:47:39,965 --> 00:47:40,881 Vse je v redu, tam. 875 00:47:40,881 --> 00:47:41,490 Pridi gor. 876 00:47:41,490 --> 00:47:44,190 877 00:47:44,190 --> 00:47:45,335 V redu. 878 00:47:45,335 --> 00:47:49,490 Torej, vzemimo, da je pokrov dol. 879 00:47:49,490 --> 00:48:03,700 In če bi vi prišli prav nazaj tukaj zame fantastično. 880 00:48:03,700 --> 00:48:06,580 >> Torej je to robot imenovan Baxter. 881 00:48:06,580 --> 00:48:10,880 In Baxter je robot, ki je poslovna platforma, ki je namenjen 882 00:48:10,880 --> 00:48:13,030 z družbo, imenovano premisliti. 883 00:48:13,030 --> 00:48:16,580 In to je robot zasnovan za proizvodnjo v manjšem obsegu. 884 00:48:16,580 --> 00:48:19,265 Ampak danes bomo ga uporabljajo za igranje tic-tac-toe. 885 00:48:19,265 --> 00:48:21,930 886 00:48:21,930 --> 00:48:27,150 Zdaj, ta robot je tudi nekaj da je relativno edinstven. 887 00:48:27,150 --> 00:48:32,950 Ker če bi bil jaz stal kjerkoli blizu standardni avtomatizaciji 888 00:48:32,950 --> 00:48:39,580 sistem, sem se v samem grobu nevarnost, da se poškodujejo. 889 00:48:39,580 --> 00:48:45,600 >> Baxter pa je zasnovan relativno varna za interakcijo z. 890 00:48:45,600 --> 00:48:48,680 In tako sem lahko push na tej robota. 891 00:48:48,680 --> 00:48:52,350 In lahko vidite, da je malo bit prilagodljivi, saj se premika okoli. 892 00:48:52,350 --> 00:48:57,250 In sem ga lahko prestavite kjer bi rad, da bi šel. 893 00:48:57,250 --> 00:49:03,410 Sedaj v normalni robotskim sistemom, želimo imeti niz sklepov tukaj 894 00:49:03,410 --> 00:49:07,970 da bi neposredno odziva na ukaze pozicij. 895 00:49:07,970 --> 00:49:13,180 In oni ne bi nujno nego če bi se premikajo skozi prostem 896 00:49:13,180 --> 00:49:15,555 ali če so bili ti gibljejo skozi moje rebra. 897 00:49:15,555 --> 00:49:18,410 898 00:49:18,410 --> 00:49:19,120 >> V REDU. 899 00:49:19,120 --> 00:49:22,090 In ponavadi, če ste bili tukaj z industrijskega sistema, 900 00:49:22,090 --> 00:49:23,400 bi šel nikamor blizu njega. 901 00:49:23,400 --> 00:49:26,280 Tam bo rumena varnostni trak vse okoli njega. 902 00:49:26,280 --> 00:49:28,310 Ta sistem ima nekoliko drugačen dizajn 903 00:49:28,310 --> 00:49:32,130 biti prijaznejši in lažje za ljudi, za interakcijo z, 904 00:49:32,130 --> 00:49:36,380 s tem, da v vsakem spoju, da je vzmet. 905 00:49:36,380 --> 00:49:39,110 In namesto krmiljenje natančen položaj, 906 00:49:39,110 --> 00:49:43,110 kontroliramo določeno količino navor, določena količina sile, 907 00:49:43,110 --> 00:49:45,874 da bi radi, da se na to pomlad. 908 00:49:45,874 --> 00:49:47,790 Vse je v redu, zato mi dovolite, bi naše prostovoljce tukaj. 909 00:49:47,790 --> 00:49:48,540 Živjo kako ti je ime? 910 00:49:48,540 --> 00:49:49,010 >> OBČINSTVO: Louis. 911 00:49:49,010 --> 00:49:49,635 >> SPEAKER: Louis. 912 00:49:49,635 --> 00:49:50,490 Lepo te je videti. 913 00:49:50,490 --> 00:49:50,990 In? 914 00:49:50,990 --> 00:49:51,610 >> OBČINSTVO: David. 915 00:49:51,610 --> 00:49:51,960 >> SPEAKER: David. 916 00:49:51,960 --> 00:49:52,550 Me veseli. 917 00:49:52,550 --> 00:49:54,508 Če bi vidva počakajte tukaj za sekundo, 918 00:49:54,508 --> 00:49:56,420 Bom vam možnost, da to storijo. 919 00:49:56,420 --> 00:50:00,610 Torej ta robot, če prideš gor in če nežno potisnite na njem, 920 00:50:00,610 --> 00:50:03,780 boste videli, da se premika malo. 921 00:50:03,780 --> 00:50:06,349 In če ga zgrabi desno Tukaj na zapestju samo 922 00:50:06,349 --> 00:50:09,390 zgoraj, kjer so ti gumbi, jo Izgleda, morate zgrabi gumbe, 923 00:50:09,390 --> 00:50:13,100 ampak zgrabi desno nad njim, namesto, boste lahko to zelo nežno manipulirati 924 00:50:13,100 --> 00:50:14,545 skozi prostor. 925 00:50:14,545 --> 00:50:15,920 Louis, si želijo, da ga poskusite? 926 00:50:15,920 --> 00:50:19,465 Torej daj samo malo pritisnite, da začnete s. 927 00:50:19,465 --> 00:50:23,190 In potem, če si dal prste tam in se držite z njim, 928 00:50:23,190 --> 00:50:24,807 ker se bo premaknil za vas, potem. 929 00:50:24,807 --> 00:50:27,824 930 00:50:27,824 --> 00:50:29,365 Vredu, hočeš, da ga poskusite? 931 00:50:29,365 --> 00:50:29,980 Pridi gor. 932 00:50:29,980 --> 00:50:32,300 Torej daj samo nežen potisnite tam začeti. 933 00:50:32,300 --> 00:50:33,820 Lahko se počutijo, kaj je to všeč. 934 00:50:33,820 --> 00:50:40,060 In potem, če ga zgrabi tam, boste lahko za manevriranje okoli. 935 00:50:40,060 --> 00:50:41,280 >> V REDU. 936 00:50:41,280 --> 00:50:47,360 Torej tipično bi tovrstno robota se uporabljajo za majhno industrijskem merilu. 937 00:50:47,360 --> 00:50:50,980 In bom premakniti roko samo dol s poti malo tukaj. 938 00:50:50,980 --> 00:50:55,750 Ampak danes, bomo uporabljati Enako tic-tac-toe konkurenčni sistem 939 00:50:55,750 --> 00:50:59,520 temelji na MINIMAX, da smo zgradili prej. 940 00:50:59,520 --> 00:51:00,549 V REDU? 941 00:51:00,549 --> 00:51:02,340 Torej, vidva sta vsak dogaja, da igrajo igro. 942 00:51:02,340 --> 00:51:04,210 Louis, boš biti prvi. 943 00:51:04,210 --> 00:51:05,920 Naj samo držite se za sekundo. 944 00:51:05,920 --> 00:51:10,949 Jaz bom moral stojiš desno tukaj, samo zato, da lahko vsi vidimo. 945 00:51:10,949 --> 00:51:11,990 Ali vidva ustanovila tu? 946 00:51:11,990 --> 00:51:13,120 >> ROBOT: Pozdravljeni. 947 00:51:13,120 --> 00:51:15,910 Igrajmo tic-tac-toe. 948 00:51:15,910 --> 00:51:20,860 Ne razumejo figuro pred Pravim, da ste na vrsti. 949 00:51:20,860 --> 00:51:22,050 Začnem igro. 950 00:51:22,050 --> 00:51:27,900 951 00:51:27,900 --> 00:51:28,750 To je moj na vrsti. 952 00:51:28,750 --> 00:51:47,002 953 00:51:47,002 --> 00:51:50,210 SPEAKER: Zdaj, če bi lahko eden od vaše kosov in gredo naprej in jo postavite. 954 00:51:50,210 --> 00:51:51,446 ROBOT: To je vaša vrsti. 955 00:51:51,446 --> 00:51:53,430 [Smeh] 956 00:51:53,430 --> 00:51:54,836 To je moj na vrsti. 957 00:51:54,836 --> 00:51:56,820 [Smeh] 958 00:51:56,820 --> 00:52:12,196 959 00:52:12,196 --> 00:52:15,680 [Smeh] 960 00:52:15,680 --> 00:52:16,570 Ste na vrsti. 961 00:52:16,570 --> 00:52:21,397 962 00:52:21,397 --> 00:52:23,688 SPEAKER: Človeška rasa je Računam na vas tukaj, Louis. 963 00:52:23,688 --> 00:52:27,440 964 00:52:27,440 --> 00:52:28,350 >> ROBOT: To je moja vrsti. 965 00:52:28,350 --> 00:52:44,810 966 00:52:44,810 --> 00:52:47,015 >> SPEAKER: Torej Baxter uspešno blokiral tukaj. 967 00:52:47,015 --> 00:52:49,670 968 00:52:49,670 --> 00:52:52,480 >> ROBOT: To je vaša vrsti. 969 00:52:52,480 --> 00:52:53,360 To je moj na vrsti. 970 00:52:53,360 --> 00:53:14,730 971 00:53:14,730 --> 00:53:16,810 Ste na vrsti. 972 00:53:16,810 --> 00:53:17,760 To je moj na vrsti. 973 00:53:17,760 --> 00:53:21,330 974 00:53:21,330 --> 00:53:23,830 SPEAKER: In bomo pustil Baxter dokončati svojo zadnjo potezo tukaj. 975 00:53:23,830 --> 00:53:36,622 976 00:53:36,622 --> 00:53:39,090 >> [Smeh] 977 00:53:39,090 --> 00:53:40,480 >> ROBOT: To je kravata. 978 00:53:40,480 --> 00:53:42,030 Bom zmagal naslednjič. 979 00:53:42,030 --> 00:53:43,365 >> [Smeh] 980 00:53:43,365 --> 00:53:45,210 >> SPEAKER: All right, hvala lepa, Louis. 981 00:53:45,210 --> 00:53:46,094 Hvala. 982 00:53:46,094 --> 00:53:46,980 Lahko greš v to smer. 983 00:53:46,980 --> 00:53:49,759 >> ROBOT: začnem igro. 984 00:53:49,759 --> 00:53:51,800 SPEAKER: Torej mi razloži za vas ena bolj malo 985 00:53:51,800 --> 00:53:55,410 malo preden smo dobili našo revanš tukaj. 986 00:53:55,410 --> 00:53:57,200 Kaj točno se dogaja? 987 00:53:57,200 --> 00:53:59,430 Torej robot ima fotoaparat up top tukaj. 988 00:53:59,430 --> 00:54:01,330 In to je strmela krovu. 989 00:54:01,330 --> 00:54:04,470 In to je videti, ali da je dobil rdeč O ali modra 990 00:54:04,470 --> 00:54:10,450 in beli X. Kot tiste dobil dani na odbor, ki je v bistvu enak vložek 991 00:54:10,450 --> 00:54:13,890 da bi bilo branje v od naša podatkovna struktura iz naše zaslonu. 992 00:54:13,890 --> 00:54:17,290 To je tekmovanje v teku isto minimax algoritem biti 993 00:54:17,290 --> 00:54:21,010 mogli najti, kje postaviti dober žeton. 994 00:54:21,010 --> 00:54:24,820 >> In potem smo daje ukaz o kjer bi radi žeton, ki se dajo. 995 00:54:24,820 --> 00:54:26,120 Roka se premika ven. 996 00:54:26,120 --> 00:54:31,750 To je s pomočjo vakuumskega prijemala za uporabo nekatere sesalna bil lesenega kosa, 997 00:54:31,750 --> 00:54:35,240 to dvignili, ga premaknete v desno spot, in nato spustite sesanje 998 00:54:35,240 --> 00:54:36,950 in ga spustite. 999 00:54:36,950 --> 00:54:38,990 V redu, gremo da ga še eno priložnost 1000 00:54:38,990 --> 00:54:40,930 z nekoliko pametnejši predvajalnikom tukaj. 1001 00:54:40,930 --> 00:54:42,290 Ste pripravljeni? 1002 00:54:42,290 --> 00:54:46,150 Vse je v redu, če bi se izkazale desno navzgor tu in dati a-- izkažejo na ta način 1003 00:54:46,150 --> 00:54:47,955 tako da boste lahko videli vse. 1004 00:54:47,955 --> 00:54:48,830 In potem [neslišno]. 1005 00:54:48,830 --> 00:54:49,330 >> ROBOT: To je moja vrsti. 1006 00:54:49,330 --> 00:54:50,455 >> SPEAKER: Baxter bo začelo. 1007 00:54:50,455 --> 00:55:10,750 1008 00:55:10,750 --> 00:55:11,730 Ste na vrsti. 1009 00:55:11,730 --> 00:55:16,490 1010 00:55:16,490 --> 00:55:17,520 To je moj na vrsti. 1011 00:55:17,520 --> 00:55:38,740 1012 00:55:38,740 --> 00:55:39,690 Ste na vrsti. 1013 00:55:39,690 --> 00:55:46,330 1014 00:55:46,330 --> 00:55:47,165 To je moj na vrsti. 1015 00:55:47,165 --> 00:56:01,252 1016 00:56:01,252 --> 00:56:06,192 >> [Smeh] 1017 00:56:06,192 --> 00:56:08,542 >> SPEAKER: [šepeta] Just naj mu gredo naprej in zmagati. 1018 00:56:08,542 --> 00:56:09,500 ROBOT: To je vaša vrsti. 1019 00:56:09,500 --> 00:56:15,099 1020 00:56:15,099 --> 00:56:15,890 SPEAKER: To je v redu. 1021 00:56:15,890 --> 00:56:20,390 1022 00:56:20,390 --> 00:56:21,360 >> ROBOT: To je moja vrsti. 1023 00:56:21,360 --> 00:56:24,825 1024 00:56:24,825 --> 00:56:26,805 >> [Smeh] 1025 00:56:26,805 --> 00:56:42,650 1026 00:56:42,650 --> 00:56:43,510 >> Zmagam. 1027 00:56:43,510 --> 00:56:45,620 >> [Smeh] 1028 00:56:45,620 --> 00:56:46,595 >> Začnem igro. 1029 00:56:46,595 --> 00:56:48,261 >> SPEAKER: Dobro, hvala lepa. 1030 00:56:48,261 --> 00:56:50,180 1031 00:56:50,180 --> 00:56:55,590 Vse je v redu, mislim, da imamo čas za ena odlična tic-tac-toe predvajalnik, 1032 00:56:55,590 --> 00:57:00,490 nekdo, ki lahko dal to stvar ujemajo, kdo ve, kaj počnejo. 1033 00:57:00,490 --> 00:57:03,010 >> [Smeh] 1034 00:57:03,010 --> 00:57:05,560 >> Kdo bo naš prvak tukaj? 1035 00:57:05,560 --> 00:57:08,110 Vse je v redu, vaši prijatelji vam javil. 1036 00:57:08,110 --> 00:57:11,190 To je dovolj dobro zame. 1037 00:57:11,190 --> 00:57:12,194 Spet Povej mi svoje ime. 1038 00:57:12,194 --> 00:57:12,860 OBČINSTVO: Tamir. 1039 00:57:12,860 --> 00:57:14,193 SPEAKER: Tamir, lepo vas je videti. 1040 00:57:14,193 --> 00:57:19,270 Vse je v redu, še enkrat, bomo, da vam dajo Pravica do tukaj, tako da lahko vsi vidijo. 1041 00:57:19,270 --> 00:57:22,070 Vi ste naš predstavnik V tej tekmi zdaj. 1042 00:57:22,070 --> 00:57:24,540 Baxter je ena in oh in oh. 1043 00:57:24,540 --> 00:57:26,300 Ali žal, ena oh in ena. 1044 00:57:26,300 --> 00:57:27,490 In to je odvisno od vas tukaj. 1045 00:57:27,490 --> 00:57:29,340 Baxter bo dobil najprej premakniti, čeprav. 1046 00:57:29,340 --> 00:57:30,435 So. 1047 00:57:30,435 --> 00:57:31,310 ROBOT: To je moja vrsti. 1048 00:57:31,310 --> 00:57:45,226 1049 00:57:45,226 --> 00:57:48,208 >> [Smeh] 1050 00:57:48,208 --> 00:57:52,720 1051 00:57:52,720 --> 00:57:55,780 >> Ste na vrsti. 1052 00:57:55,780 --> 00:57:56,845 To je moj na vrsti. 1053 00:57:56,845 --> 00:58:18,130 1054 00:58:18,130 --> 00:58:18,965 Ste na vrsti. 1055 00:58:18,965 --> 00:58:28,751 1056 00:58:28,751 --> 00:58:30,248 To je moj na vrsti. 1057 00:58:30,248 --> 00:58:51,210 1058 00:58:51,210 --> 00:58:52,160 Ste na vrsti. 1059 00:58:52,160 --> 00:59:00,854 1060 00:59:00,854 --> 00:59:03,365 >> [Smeh] 1061 00:59:03,365 --> 00:59:04,240 ROBOT: To je moja vrsti. 1062 00:59:04,240 --> 00:59:06,930 SPEAKER: To je veliko težje, ko stojiš tu, ljudje. 1063 00:59:06,930 --> 00:59:19,400 1064 00:59:19,400 --> 00:59:21,840 [Smeh] 1065 00:59:21,840 --> 00:59:26,730 1066 00:59:26,730 --> 00:59:29,054 ROBOT: Ti ljudje so tako enostavno premagati. 1067 00:59:29,054 --> 00:59:30,803 [Smeh in aplavz] 1068 00:59:30,803 --> 00:59:31,886 SPEAKER: Hvala lepa. 1069 00:59:31,886 --> 00:59:34,692 ROBOT: zmagam. 1070 00:59:34,692 --> 00:59:35,400 Začnem igro. 1071 00:59:35,400 --> 00:59:39,500 >> Govornik: V redu, hvala veliko Olivier, in Alessandro, 1072 00:59:39,500 --> 00:59:41,616 in Chen Ming. 1073 00:59:41,616 --> 00:59:45,600 >> [Aplavz] 1074 00:59:45,600 --> 00:59:47,040 >> Želim, da bi eno zadnjo točko. 1075 00:59:47,040 --> 00:59:51,630 Torej Baxter na samem konča tam, goljufal. 1076 00:59:51,630 --> 00:59:54,160 1077 00:59:54,160 --> 00:59:56,310 In to je bilo nepričakovano. 1078 00:59:56,310 --> 01:00:00,440 Eden od fantastično stvari o AI je, da smo 1079 01:00:00,440 --> 01:00:05,070 delati v AI, tako da lahko gradimo res zanimiva in inteligentna 1080 01:00:05,070 --> 01:00:06,930 naprav. 1081 01:00:06,930 --> 01:00:10,130 Ampak smo tudi to delo v AI saj nam pove nekaj 1082 01:00:10,130 --> 01:00:13,940 o tem, kako so ljudje inteligentni. 1083 01:00:13,940 --> 01:00:17,280 >> Eden od favorita Študije iz mojega laboratorija je 1084 01:00:17,280 --> 01:00:23,660 gledaš, kaj se zgodi, ko stroji nepričakovano goljufija. 1085 01:00:23,660 --> 01:00:27,070 To smo sprva ni storil z Baxter igrati tic-tac-toe, 1086 01:00:27,070 --> 01:00:30,340 vendar z manjšim robota z imenom Nao, ki je igral rock papir škarje. 1087 01:00:30,340 --> 01:00:33,010 1088 01:00:33,010 --> 01:00:35,800 In včasih, ko igrajo veliko in veliko 1089 01:00:35,800 --> 01:00:41,580 za vrtanje kamnin-papir-škarje igre, robot bi vrgel gesto, 1090 01:00:41,580 --> 01:00:48,616 izgubili, nato pa se nenadoma spremeni njegova gesta in reči, da sem zmagal. 1091 01:00:48,616 --> 01:00:50,480 >> [Smeh] 1092 01:00:50,480 --> 01:00:56,090 >> Zdaj, včasih sva tudi robota, tako kot je nadzor, vrgel gesto, 1093 01:00:56,090 --> 01:01:01,270 zmago, in spremenite svojo gesto izgubiti, vrgel tekmo, 1094 01:01:01,270 --> 01:01:04,070 goljufija, da bi izgubili. 1095 01:01:04,070 --> 01:01:07,540 In to še zdaleč ni tako prepričljiv. 1096 01:01:07,540 --> 01:01:09,890 Robot, ki goljufa da bi zmagal ljudi 1097 01:01:09,890 --> 01:01:14,660 odzove kot če je ven, da jih dobite, všeč 1098 01:01:14,660 --> 01:01:17,690 dejavno išče njihovo uničenje. 1099 01:01:17,690 --> 01:01:19,210 >> [Smeh] 1100 01:01:19,210 --> 01:01:20,990 >> To postane agent. 1101 01:01:20,990 --> 01:01:21,840 To je kot oseba. 1102 01:01:21,840 --> 01:01:23,970 To je prepričanje in namen. 1103 01:01:23,970 --> 01:01:27,470 In to ni dober namen. 1104 01:01:27,470 --> 01:01:33,790 In robot, ki vrže Igra je samo okvarjena. 1105 01:01:33,790 --> 01:01:36,990 To je samo pokvarjen naprava. 1106 01:01:36,990 --> 01:01:41,405 Naj vam pokažem nekaj primerov od tega je nekaj naših udeležencev. 1107 01:01:41,405 --> 01:01:43,990 1108 01:01:43,990 --> 01:01:45,600 Torej, tukaj je varanje, da bi izgubili. 1109 01:01:45,600 --> 01:01:46,266 >> [VIDEO PREDVAJANJE] 1110 01:01:46,266 --> 01:01:47,010 - [Neslišno] zmagali. 1111 01:01:47,010 --> 01:01:49,550 Igrajmo. 1112 01:01:49,550 --> 01:01:50,538 >> -Wait, Kaj? 1113 01:01:50,538 --> 01:01:54,490 1114 01:01:54,490 --> 01:01:55,352 >> - [Neslišno] zmagali. 1115 01:01:55,352 --> 01:01:58,280 Igrajmo. 1116 01:01:58,280 --> 01:01:59,400 >> [Neslišno] zmagali. 1117 01:01:59,400 --> 01:02:02,290 Igrajmo. 1118 01:02:02,290 --> 01:02:05,490 >> SPEAKER: In tukaj je varanje za zmago. 1119 01:02:05,490 --> 01:02:06,438 >> Ja, sem zmagal. 1120 01:02:06,438 --> 01:02:07,394 Igrajmo. 1121 01:02:07,394 --> 01:02:08,828 >> Saj ne more storiti. 1122 01:02:08,828 --> 01:02:10,740 >> [Smeh] 1123 01:02:10,740 --> 01:02:12,174 1124 01:02:12,174 --> 01:02:13,979 >> Ja, sem zmagal. 1125 01:02:13,979 --> 01:02:14,520 -Ti Goljufal. 1126 01:02:14,520 --> 01:02:17,990 1127 01:02:17,990 --> 01:02:20,010 Si goljufal zdaj. 1128 01:02:20,010 --> 01:02:21,140 >> Ja, sem zmagal. 1129 01:02:21,140 --> 01:02:22,940 >> Hej, si goljuf. 1130 01:02:22,940 --> 01:02:26,670 You goljufija, super goljufija. 1131 01:02:26,670 --> 01:02:27,650 >> [END PREDVAJANJE] 1132 01:02:27,650 --> 01:02:31,130 >> SPEAKER: Ti različni hitro reakcije 1133 01:02:31,130 --> 01:02:34,890 spremeniti naše dojemanje naprave. 1134 01:02:34,890 --> 01:02:36,780 Ali to pomeni, da smo namenoma graditi 1135 01:02:36,780 --> 01:02:40,370 stroji, ki varajo, ker to je najboljši inženiring, da lahko storimo? 1136 01:02:40,370 --> 01:02:44,680 Ne, vendar nam pove nekaj Res zanimivo, o ljudeh. 1137 01:02:44,680 --> 01:02:49,710 To je stvar, ki vas in goljufa ukrade vaše zmage, ki je 1138 01:02:49,710 --> 01:02:53,660 nekaj, kar je živ, da je animirati, da je ven, da boste dobili. 1139 01:02:53,660 --> 01:02:54,680 To je duševno stanje. 1140 01:02:54,680 --> 01:02:55,400 To je prepričanje. 1141 01:02:55,400 --> 01:02:57,170 To je namen. 1142 01:02:57,170 --> 01:03:01,540 >> To je stvar, ki je rokah Igra za vas, ki to ni. 1143 01:03:01,540 --> 01:03:04,670 To je samo v delovanju. 1144 01:03:04,670 --> 01:03:08,900 To je v mnogih pogledih, zakaj je enostavno vrgel igro z otroki. 1145 01:03:08,900 --> 01:03:12,050 Ampak, če jih boste poskušali goljufati in nekako trdijo zmago 1146 01:03:12,050 --> 01:03:15,200 ko, veš, samo da skrajša Igra, ki jih bomo ujeli takoj. 1147 01:03:15,200 --> 01:03:19,040 1148 01:03:19,040 --> 01:03:23,140 Te vrste učinkov, ki vidimo prihajajo iz AI, 1149 01:03:23,140 --> 01:03:26,490 so nam naučil veliko o sebi. 1150 01:03:26,490 --> 01:03:28,076 >> V redu, to je vse za danes. 1151 01:03:28,076 --> 01:03:30,450 Najlepša hvala za Davida in produkcijska ekipa Harvard 1152 01:03:30,450 --> 01:03:32,350 Za spušča. 1153 01:03:32,350 --> 01:03:33,820 >> [Aplavz] 1154 01:03:33,820 --> 01:03:36,760 1155 01:03:36,760 --> 01:03:41,840 >> Vidimo se za kviz eno, in potem za eno zadnje predavanje. 1156 01:03:41,840 --> 01:03:43,025 Imej lep dan. 1157 01:03:43,025 --> 01:03:44,965 >> [Aplavz] 1158 01:03:44,965 --> 01:03:48,360 1159 01:03:48,360 --> 01:03:51,825 >> [Predvaja glasba] 1160 01:03:51,825 --> 01:03:54,950 DAVID J Malan: No, bomo verjetno morali uvesti neke vrste šifriranja, 1161 01:03:54,950 --> 01:03:55,450 prav? 1162 01:03:55,450 --> 01:03:58,650 Ker potem se zaglavja te zahteve HTTP bo 1163 01:03:58,650 --> 01:04:01,530 umešana tako, da vsakdo poskuša vohanje vaš promet 1164 01:04:01,530 --> 01:04:03,400 dejansko ne bodo mogli videti. 1165 01:04:03,400 --> 01:04:05,254 Torej, kaj je rešitev za ta problem? 1166 01:04:05,254 --> 01:04:07,920 No, moramo dejansko uvesti šifriranje v formuli 1167 01:04:07,920 --> 01:04:11,010 tako, da kadar je ta oseba prenosa podatkov od A do B, 1168 01:04:11,010 --> 01:04:12,390 bomo lahko varno send-- 1169 01:04:12,390 --> 01:04:14,590 >> [Smeh] 1170 01:04:14,590 --> 01:04:19,530 >> Informacije na način, da je nasprotnik ne more v resnici videti.