[Mūzikas atskaņošanai] SPEAKER: Welcome back, ikvienam. Tas ir CS50. Un šodien, mums ir daudz interesantas lietas runāt. Pirmkārt, lai gan, man ir atgādināt jums par dažām administratīvām lietām. Šī nedēļa ir viens viktorīna, trešdiena vai par Yale sadaļu otrdienās un ceturtdienās, ceturtdien. Ir viktorīna atsauksmes šovakar pie Yale, 5:30 līdz 7:00. Hārvarda, viņi reģistrē vienu vakar. Un ikviens var skatīties, ka tiešsaistē. Arī šonedēļ vai nākamās nedēļas sākumā, mums ir mūsu pēdējā CS50 lekciju. [Čīkstoņu] es zinu. Tas nāca tik drīz. Yale studentiem būs dzīvot lekciju šeit tiesību skola auditorijā piektdien. Būs kūka. Harvard studentiem būs pēdējā lekcija Sanders pirmdien. Tur būs arī torte. Arī šonedēļ piektdien, tiem no jums, kas nāk uz New Haven, mums ir CS50 Expo. Mums ir vairāk nekā 30 reģistrēts dažādas grupas jums parādīt visu no autonomiem buru laivu, sistēmām, kas atzīst digitālās portreti, uz datoru mūzika un datoru ražots mūzika. Tātad, lūdzu, pievienoties mums. Es domāju, ka tas būs lielisks laiks. Šodien, lai gan, mēs nokļūt turpināt runāt par AI, par mākslīgo intelektu. Un viena no lietām, kas mēs ejam, lai saņemtu uz šodienu ir ideja par to, kā izmanto AI, lai atrisinātu problēmas. Tagad, kā vienmēr, sāksim ar kaut ko vienkāršu. Un mēs ejam, lai sāktu ar vienkāršu ideju. Un tas ir, izmantojot meklēšanu. Tik iedomāties par minūti, ka es ir uzdevums, kas man ir nepieciešams, lai veiktu. Un es gribētu, lai būtu šo uzdevumu automatizēt kādu programmu aģentu. Iedomājieties, ka es cenšos rezervēt komplektu lidojumiem no, teiksim, Boston San Francisco. Es varētu iet cauri, un es varētu izmantot viens no brīnišķīgi tiešsaistes meklēšanas instrumenti, kas gatavojas darīt būtībā tas pats process, ka mēs esam gatavojas staigāt līdz šodienai. Bet, ja jums nav, ka instruments, ko jūs darītu? Nu, jūs varētu izskatīties un redzēt un pateikt, es esmu Bostonā. Kādi lidojumi man ir pieejami? Tagad, varbūt man ir trīs iespējamie lidojumus no Boston kas iederēsies laiku kad man vajag atstāt. Es varētu lidot uz Čikāgu. Vai es varētu lidot uz Maiami. Vai es varētu lidot uz Ņujorku. Tad es varētu izskatīties no katras viena no tām galamērķa pilsētu un domāt par to, ko vietās Es, iespējams, varētu sasniegt no katras no šīm atsevišķām pilsētām. Tātad, varbūt no Čikāgas, es varu tiešais reiss uz San Francisco. Tas ir lielisks. Vai es varētu saņemt lidojumu uz Denver. Tagad, varbūt, ka lidojums uz San Francisco ir ideāls risinājums man, bet varbūt ne. Varbūt es meklēju kaut ko tas ir mazliet lētāk vai mazliet labāk par manu grafiku. Un tā es varētu meklēt to, ko citi iespējas varētu būt tur. Tāpēc es varētu apskatīt Denver. Un no Denver, labi, varbūt Es varu saņemt lidojumu uz Austin. Un no Austin, varbūt es varu saņemt lidojums uz Phoenix, un no Phoenix San Francisco. Tagad, es neesmu izdarīts vēl. Jo varbūt tur ir tiešais reiss no Ņujorkas San Francisco, kas ir ideāli piemērots man. Vai varbūt tur ir lidojums no Miami caur Denver tas ir daudz lētāk. Tāpēc man vēl ir jāiet. Un man vēl ir jāskatās uz visiem tiem pilsētām, kas man vēl nav izmeklēti. Man ir izsmeļoši pārbaudīt visus iespējas, ka es varētu būt. Tātad no Ņujorkas, varbūt es varu saņemt lidojums uz Nashville, un no Nashville Austin. Un tad es zinu, kur es esmu. Un tad es zinu no Austin, es varu lidot uz Phoenix, un no Phoenix San Francisco. Ja es lidot vispirms uz Maiami, lai gan, varbūt es varu lidojums no Maiami uz Nashville, vai no Maiami uz Austin. Un tagad es esmu mēģinājis visu no iespējām. Es esam izveidojuši šo grafiku, kas rāda man visus iespējamos maršrutus ka es varētu veikt. Kad mēs pārstāvam šīs veida problēmas, mēs nebrauksim, lai pārstāvētu viņiem skaidri kā šīs diagrammas, jo tas diagramma neatspoguļo vēsture, kur mēs esam aizgājuši. Zinot, ka es lidoju no Phoenix uz San Francisco nav man pateikt, vai man bija tiešs Nashville, vai ar Denver, vai pa Miami. Tātad, ko es darīšu, nevis ir Es ņemšu šo pašu problēmu, un es ņemšu pārstāvēt to kā koks. Un pie koka saknēm, pie top, es nolikšu vietu, ka es sāku, Boston. Un no Boston, es ņemšu apskatīt visus iespējamos vietās ka es varu doties uz. Nu, šajā gadījumā, man bija trīs, Čikāga, New York, un Miami. Un tad es ņemšu izpētīt katru no šie bērni kokā. No Čikāgas, es redzēju ka man bija divi lidojumi. Es varētu lidot tieši San Francisco vai Denver. Tagad San Francisco, tas ir mans mērķis. Tas ir mans mērķis. Tas būs lapiņa par šo koku. Tas ir, es esmu nekad gatavojas iet kaut kur pēc Sanfrancisko. No Denver, lai gan, Es varu lidot no Denver Austin, no Austin Phoenix, un no Phoenix uz San Francisco. Un tagad atkal, es esmu sasniedzis lapu. Es varētu tad doties atpakaļ uz nākamo pilsēta, kas man nav pilnībā izpētīta. Tas būtu New York, dodieties atpakaļ uz augšu uz augšu manu koku, nokritusies uz Ņujorku. No Ņujorkā, es varu lidot uz Nashville, no Nashville Austin, no Austin uz Phoenix, un no Phoenix uz San Francisco. Un visbeidzot, viena pilsēta es nav paskatījās vēl, Miami. Nu, no Miami es teicu, man bija divi iespējas, Nashville vai Austin. Ja es lidot uz Nashville, arī tad es lidot no Nashville, Austin, Phoenix, San Francisco. Ja es lidot uz Austin, es lidot Austin, Phoenix, uz San Francisco. Un tagad man ir koks. Tas ir pilnīgs koks. Tas viss ir par iespējām un visiem ceļiem, kas es varētu veikt. Tas ir, ja es sāktu pie sakne koku augšpusē un es iet uz leju, uz vienu no atstāj, tas man saka, ne tikai kur es esmu gatavojas galu galā, San Francisco, bet tas stāsta man ceļu, kas Man vajag, lai tur nokļūt. Tagad, kas ir viens no tiem ir labākais? Nu, nekas par to Problēma tomēr man saka kurš no tiem ir labākais risinājums. Varbūt es aprūpi visvairāk par cik daudz laika es esmu gaisā, vai attālums, kas es esmu, kas peld. Tādā gadījumā, Chicago San Francisco varētu būt visīsākais skaits jūdžu gaisā. Varbūt man rūp izmaksām. Un mēs visi zinām, tiešos lidojumus parasti ir dārgākas. Tātad, varbūt, ja es šo veida atgriezenisko maršrutā caur Miami, Nashville, Austin, Phoenix, varbūt tad Man zemāku cenu. Bet es varētu optimizēt uz jebkura kritēriji, kas man rūp. Kurš ieguva labāko lidojums Wi-Fi, vai kas lidostām ir labākais pārtikas pieejama. Un katrs no tiem varētu man citu risinājumu ka es redzu kā labāko. Šīs problēmas veida, kur mēs ejam veidot šo koku iespējas, un pēc tam ielūkoties katrā no tiem individuālās ceļi, un pārbauda kurš no šiem atbilst kritērijs par mums, mēs ejam, lai izsauktu šie meklēt problēmas. Un mums ir daudz algoritmi, no kuriem daži mēs esam redzējuši jau, lai iet un izpētīt šos kokus. Mēs varētu darīt to tādā veidā, ka es vienkārši darīja, dziļuma pirmā meklēšanu, iet uz leju, cik mēs varam, kamēr mēs hit lapas, un pēc tam nāk atpakaļ uz augšu, un iet pa labi atpakaļ uz leju. Vai mēs varētu darīt to, kas ir sauc platums pirmā meklēšanu. Mēs varētu paplašināt visu augšdaļā, un pēc tam viss viena līnija zem ka, un pēc tam viss vienā rindā zem tā. Šie meklēšanas koki Ir būtiski, lai AI. Bet tie nav gluži nokļūt tas ir labi visu laiku. Patiesībā, ir daudz gadījumu ka mēs patiešām rūp, mēs vēlamies veidot koku, Bet mums nav reāli nokļūt veikt visus lēmumus. Tās ir situācijas, ko sauc sacīkstes meklēt, pazīstams arī par to, kā uzrakstīt spēli spēlē sistēmām un saņemt par to maksā. Bet tie ir veidi sistēmu, kur es varētu saņemt izvēlēties, kad es iet no Boston, kurā pilsētā es dodos uz nākamo. Bet pēc tam, kāds cits varētu saņemt pieņemt lēmumu par to, kur es lidot. Tātad, lai izveidotu šos veidu struktūras, mēs esam nāksies uzņemties nedaudz atšķirīga pieeja tai. Mēs nebrauksim, lai varētu vienkārši pārlūkot kokā vairs, jo mēs neesam viens, ka tas kontrolē par katru no šiem punktiem lēmumu. Tātad pieņemsim iedomāties vienkāršs spēli, piemēram, Tic-tac-toe. Es varētu sākt ar pilnīgi tukšs kuģa. Un Tic-Tac-toe, X izpaužas spēlēt vispirms. Un tā es varētu domāt par visu iespējamos pārceļas ka X varētu veikt. Un, ja es esmu viens spēlē X, tas ir lieliski. Man ir deviņi iespējamo kustas, ka es varu darīt. Es varētu likt X jebkurā no no šīm deviņām pozīcijām. Un tad no katra no tiem, es varētu iedomāties, kas notiks tālāk. Nu, šajā gadījumā, no otras puses spēlētājs dabūs veikt pagriezienu. O dabūs veikt pagriezienu. Un no katra no tiem, tur Būtu astoņi dažādās vietās ka O varētu izvietot savu marķieri. Teiksim es nolēmu, ka man bija gatavojas likt X centrā. Tas vienmēr šķiet labs atklāšanas gājiens. Es varētu apskatīt zem tam, astoņi iespējamie pārceļas ka O padara. Tagad, ja es esmu spēlē X, tas ir brīnišķīgi. Man izvēlēties, kas man doties, par kādu ir pa vidu. Bet tagad O izpaužas izvēlēties. Un man nav kontroles vairāk par šo lēmumu. Bet no katra no tiem, iespējamās valdes pozīcijas, tur ir tad vēl komplekts iespējām. Kad runa ir par mana kārta atkal, es nokļūt izvēlēties un teikt, labi, ja O pārceļas uz, labi, vidū vietas pa kreisi, tad Man ir komplekts iespējas kur es varētu veikt savu nākamo soli. No tiem, es varētu apsvērt visus iespējas zem tām. Un tad O dabūs izvēlēties starp tiem. Un es varētu saglabāt šo ēku koks, kamēr es saņēmu uz punktu ja nu kāds uzvar SPĒLI_, kas ir got uzskatāms leaf node-- vai valde ir pilnīgi pilna un neviens nav uzvarējis. Un tas ir arī būs lapu mezglā. Tas būs neizšķirts. Bet delikāta lieta ar šo ir ja tas bija tikai regulāri meklēšanu problēma, es gribētu būt iespēja teiksim, labi, X vajadzētu iet šeit. Un O vajadzētu iet ceļu tur. Un tad X būtu jāiet vairāk nekā šeit. Un tad O vajadzētu iet ceļu tur. Un tad X var saņemt trīs pēc kārtas, un es uzvarēt. Un spēle būtu vairāk piecās kustas, trīs par mani, divi par manu pretinieku. Bet es nedomāju, vienmēr vari izvēlēties to. Tā vietā, ko mēs esam nāksies darīt ir mēs esam nāksies ir jauna stratēģija. Un stratēģija, spēli spēlē algoritmi bieži izmanto ir tas, ko sauc Minimax. Centrālā ideja Minimax ir tas, ka mēs esam gatavojas uzņemt pāreju, kas dod Mūsu pretinieks vissliktākais iespējamais komplekts par pārceļas, ka viņi var darīt. Tas nav jādara man kādu labu izvēlēties kustība, kurā Es varētu uzvarēt pēc ka, jo mans pretinieks nav gatavojas sniegt man šo iespēju. Viņi gatavojas izvēlēties kādu briesmīgi iznākums man. Tāpēc es esmu gatavojas, lai padarītu pārvietot, kas liek manu pretinieku darīt kaut ko labāku par mani. Viss kārtībā. Let 's redzēt, kā tas spēlē out. Tātad, šeit ir mūsu algoritms pseudocode. Mēs ejam, lai radītu visu spēli koks. Mēs ejam, lai veidotu visa struktūra. Un tad mēs iet cauri. Un pašā apakšā katrā no termināļa mezglus, pie katrs no lapām, mēs novērtēt, cik vērtīgs ir tas, ka ar mani? Un mēs ejam, lai vērtību lietām, kas ir labs man kā pozitīvu. Lietas, kas nav labs priekš manis būs mazāk pozitīvs vai nulle, vai pat negatīvs. Tātad Tic-Tac-toe, varbūt win man ir labs. Tas ir viens. Un tie ir nulle. Un kaut kas ir zaudējumi man, varbūt, ka ir negatīva. Nozīme ir, ka labāk tas ir man, jo augstāks rezultāts tā saņem. No šīm iespējām tajā dibens, tad mēs filtrēt augšu. Un, kad tā ir mana iespēja izvēlēties Starp kopumu alternatīvas, Es izvēlēties vienu, kas ir ieguva augstāko rezultātu. Un tad, kad tas ir mans pretinieki savukārt izvēlēties, Es pieņemu, ka viņi gatavojas izvēlēties vienu ar mazāko punktu skaitu. Un, ja es to visu ceļu uz augšu uz augšu no koka, Es esmu izvēlējies ceļu, kas dod man labākais rezultāts, ko es varu, pieņemot, ka mans pretinieks padara visu labi kustas. Labi, tāpēc pieņemsim redzēt šo prasību vispirms. Un tad mēs tiešām apskatīt kodu par to. Tik iedomāties man ir šo lielo koku. Un tagad es neesmu spēlē Tic-Tac-Toe. Es gribēju, lai dotu jums kaut mazliet bagātāks. Tāpēc es esam ieguvuši dažas spēle, kur tur ir daudz dažādu rādītāji ka es varētu būt beigās. Un tāpēc es izveidotu šo pilnīgu koku. Un man pārcelties vispirms. Es esmu pie koka saknēm. Un man izvēlēties that-- tāpēc man lai palielinātu pāri šo pirmo mezglu. Un tad mans pretinieks izpaužas iet. Un tad man iet vēlreiz. Tā uz leju apakšā, es ir komplekts iespējas, ka es varu izvēlēties, dažādu terminālu valstis no spēles. Ja es esmu noteikti, ka tālu kreisajā stūrī, un es redzu, ka man ir izvēle starp astoņiem, pa septiņiem, un divi, labi, es esmu tas, kas izpaužas izvēlēties. Tāpēc es esmu gatavojas, lai izvēlētos labākais no tiem. Es esmu gatavojas izvēlēties astoņi. Tāpēc es zinu, ka, ja es kādreiz nokāpt līdz šim punktam, Es varēsiet saņemt, ka astoņus punktus. Ja es galu galā pie nākamā punkta vairāk, nākamo mezglu pāri, deviņi, viens vai seši, labi, es esmu gatavojas izvēlēties labāko no tiem. Es izvēlēties deviņi. Ja man ir izvēle starp divi, un četri, un viens, Es izvēlēties četrus, augstākais. Tagad, ja es paskatos līmenī Iepriekš, ka mans pretinieks ir viens izpaužas izdarīt šo izvēli. Tāpēc mans pretinieks izpaužas izvēlēties, es gribu, lai dotu viņam lieta, kas notiek nokļūt viņam astoņus punktus, vai es varu dot viņam lieta, kas ir gatavojas dot viņam deviņus punktus, vai tas, kas notiek dot viņam četrus punktus? Un mans pretinieks, kas ir racionāli, notiek izvēlēties vismaz tiem, gatavojas izvēlēties četriem. Un es varu darīt pa visu koku. Es varu iet uz leju, lai tas vidus kopums trīs. Un es varu izvēlēties starp viens, trīs, un pieci. Un man izvēlēties. Tāpēc es izvēlos pieci. Es varu izvēlēties trīs, deviņi, vai divi. Man izvēlēties, tāpēc es izvēlos deviņi. Six, pieci, vai divi, es izvēlos. Man izvēlēties seši. Level iepriekš minētā, kas izpaužas izvēlēties? Kas izpaužas izvēlēties? Otrs puisis, mans pretinieks. Tāpēc viņi izvēlas piecus, deviņi, vai seši, kas viens? Mērķauditorija: Piecu. SPEAKER: Viņi izvēlas piecus. Viņiem izvēlēties minimumu. Un tad pēdējais, izvēlēties vienu, diviem vai trim. Man izvēlēties, tāpēc es izvēlos trīs. Nine, septiņi, vai divi, es izvēlos deviņi. Un 11, sešiem vai četri, es izvēlos 11. Mans pretinieks tad izvēlas trīs, deviņi, vai 11, izvēlas minimālo. Viņš dod man trīs. Un pēc tam beidzot augšpusē koks, man izvēlēties vēlreiz. Un man jāizvēlas starp četru, piecu, vai trīs. Tāpēc es ņemtu pieci. Ja es saņēmu kontrolēt visu, es gribētu veikt ceļu, kas noveda pie 11. Bet man nav get izdarīt šo izvēli. Ja es iet uz leju šajā ceļā. Mans pretinieks liks mani izvēle, kas noved pie trim. Tāpēc labākais, ko es varu darīt, ir ņemt šo vidējo filiāli, izdarīt šo izvēli, kas ir galu galā gatavojas novest mani uz pieciem punktiem. Tas ir tas, ko Minimax dara. Viss kārtībā. Pieņemsim to apskatīt, kas. Tātad šeit CS50 IDE ir programma, kas īsteno Minimax spēlēt Tic-Tac-Toe. Mēs ejam, lai veidotu up pārstāvniecība. Mēs ejam, lai ir divas opponent-- vai divi spēlētāji, mūsu dators spēlētājs un cilvēks spēlētājs. Spēlētājs numur viens būs spēlē O. Tas būs mašīna spēlētājs. Viņiem pārcelties otrā. Un otrs spēlētājs, mūsu cilvēka spēlētājs, būs X. Un, lai padarītu savu dzīvi maz vienkārši, es eju marķēt šis spēlētājs negatīvas. Tāpēc es varu tikai reizināt negatīvs viens apmainīt starp vienu spēlētāju un otru. Labi, tāpēc pieņemsim to apskatīt ko mēs patiešām gatavojas darīt. Mēs ejam, lai definētu savu kuģa. Tas būs, labi, mēs ejam lai tā varētu būt trīs līdz trim, vai mēs pat varam spēlēt piecām pieci vai septiņi septiņas Tic-tac-toe, ja jūs vēlaties piemēram, pamatojoties uz kādu dimensiju D. Un mums būs pāris no palīgs funkcijas kas būs darīt lietas, piemēram, inicializēt screen-- vai žēl, sāktu mūsu mainīgos, notīriet ekrāns, izdarīt kuģa uz ekrāna, viens, kas pārbauda kuģa lai redzētu, vai nav tur ir uzvarētājs, viens, kas parses caur komandrindu, tikai, lai palīdzētu, vienu, kas skan ievadi, un viena funkcija sauc Minimax. Un tas ir viens mēs rūp visvairāk. Bet aplūkosim vispirms galvenais. Ko mēs darām? Nu, mēs ejam, lai izanalizēt mūsu komandrindas, tikai lasīt un redzēt, kas dimensija valdes mēs gribētu, lai būtu. Mēs inicializēt mūsu kuģa. Un tad mēs ieraksta vienu liels savvaļas cilpa, vairākkārt pieņemt pārceļas kamēr spēle ir uzvarēja, vai tur nav kustas pa kreisi. Katru reizi, kad mēs ejam cauri, ka cilpa, mēs notīrītu ekrānu. Mēs izdarīt valde uz ekrāna. Un mēs esam apzināti veida abstrahējoties šos prom kā subroutines, tāpēc, ka mums nav jāuztraucas pārāk daudz detalizētu informāciju par to, kā tie notiek. Jums ir kodu vēlāk šodien. Un, ja jūs vēlaties meklēt caur un uzzināt, jūs varat redzēt tos visus. Bet mēs izdarīt valde uz ekrāna. Un tad mēs pārbaudīt un redzēt, vai mums ir uzvarētājs? Vai kāds uzvarēja šo spēli? Ja viņi ir, mēs drukāt out uzvaras ziņu. Un mēs beigtu spēli. Mēs arī pārbaudīt un redzēt, ja tur ir tie. Tas būs viegli redzēt, ja tur ir tie. Tas nozīmē, ka visas telpas ir pilnas, bet tur nav bijis uzvarētājs vēl. Mēs varam atzīt kaklasaiti un jādara. Tad reālā meat-- ja tā ir mašīna atskaņotājs, mēs pieļaut, ka mašīna spēlētājs meklēt izmantojot, izmantojot šo Minimax algoritmu, lai atrastu labāko pārvietot, ka tas ir iespējams. Un tad mēs nodot, ka virzīties uz augšu. Pretējā gadījumā, ja tas ir cilvēks atskaņotājs, mēs lasīt kādu ieguldījumu no cilvēka. Un tad vai tas ir cilvēks atskaņotāju vai mašīna atskaņotājs, mēs darīsim pāris maz biti kļūdu pārbaudi, pārliecinieties, ka tā paliek robežās no faktiskajiem izmēriem valdes ka mums ir, lai pārliecinātos, ka šī telpa ir tukša, ka neviens ir likts gabals tur jau. Un tad mēs tikai izvirzīti gabals uz kuģa, mainīt spēlētāju uz nākamo kārtu, un pieauguma cik pārceļas ir noticis. Tas ir galvenais cilpa Mūsu tic-tac-toe spēle. Minimax, tad, ir tieši algoritms, ka mēs pirms tam. Vienīgā korekcija, kas mēs esam padarījuši, lai mēs var būt lielāks trīsdimensiju dēļi ir, mēs esam tur šo papildu parametru sauc dziļums. Un dziļums vienkārši saka, ja es esmu meklējot lejup caur šo koku un man tik tālu uz leju aiz kāda līmeņa dziļums ka es vienkārši negribu iet tālāk, Es esmu gatavojas pārtraukt un tikai novērtēt kuģa šajā brīdī. Es ņemšu pārbaudīt un redzēt, ja tur ir uzvarētājs. Ja tur ir uzvarētājs, es atgriezties tos. Citādi, es iešu caur cilpu. Un es teikšu, visiem iespējamās vietas ka es varētu, iespējams, veikt kā manā ceļā, es ņemšu veidot hipotētisku valde, kas ietver manu pāreju uz šī kuģa, un pēc tam rekursīvi aicina Minimax. Ja tas ir mans gājiens, man atrast viens, kas ir ieguvuši lielāko punktu skaitu. Ja tas ir mans pretinieks pārvietoties, mēs atrodam viens, kas ir ieguvuši minimālo rezultātu. Un viss pārējais ir tikko lietvedība. Labi, tāpēc pieņemsim redzēt šo skrējienu. Patiesībā, varbūt mēs varam iegūt pāris brīvprātīgie nākt klajā un spēlēt Tic-Tac-Toe. [Dzirdams] viens, un viens vairāk, divi, tieši tur. Nāciet uz augšu. So iesim uz priekšu un restart tas pilnībā. Tātad, hi. Mērķauditorija: Hi. SPEAKER: Kāds ir tavs vārds? Mērķauditorija: Gorav. SPEAKER: Gorav. Mērķauditorija: Es esmu Layla. SPEAKER: Un Layla, un Layla, sorry. Nāciet uz augšu. Gorav, mēs esam nāksies jums iet pirmais. Un es esmu gatavojas lūgt jums, lai būtu ne briesmīgi labs tic-tac-toe player. Labi, tāpēc viss spiediens ir izslēgts par jums. Paskatīsimies, lai gan, ka mūsu mašīna spēlētājs faktiski var darīt kaut ko gudru. Tik iet uz priekšu. Jūs esat gatavojas rakstīt kas koordinē Jūs vēlētos, lai jūsu X. A0, OK, un mašīna ir gājusi uzreiz un nodot savu preču zīmi A1. Lieciet O uz kuģa. Labi, tagad iet uz priekšu. Kur jūs vēlaties doties? C2. Mūsu mašīna spēlētājs ir pieņēmusi vidū kvadrātveida, bloķēja jums. Tā, ka bija labs, smart lieta, lai to darīt. Jūs esat bloķējis. Tas ir lielisks. Tā ņem stūri tur. Un tas notiek, lai piespiestu jūs veikt viena pēdējā telpu, B0. Un spēle beidzas ar kaklasaiti. Bet tā bijusi saprātīga spēle pret jums, vai ne? Labi, paldies ļoti daudz, Gorav. [Aplausi] Labi, Layla, mēs ejam up spēle par jums šeit. Mērķauditorija: Ak, lieliski. SPEAKER: Mēs ejam, lai dotu jūs četri četri Tic-tac-toe. Tagad, četrās četri, jums ir, lai uzvarētu ar četriem pēc kārtas, nevis trīs pēc kārtas. Un tas viss ir jūsu. Tātad Layla ņēma D1. Mēs tagad gatavojas sekot mūsu dators spēlētājs šeit. Trīs līdz trīs Tic-tac-toe ir sava veida lieta, kas ir viegli mums visiem. Bet tas joprojām ir jauki redzēt dators spēlētājs padarīt smart gājienus. Četri četri izpaužas būt nedaudz sarežģītāk. Labi darīts. Labi, tāpēc Layla s noslēdza. Ak, un mums būtu beigusies tur. Bet pieņemsim darīt vēl viens šeit. Tātad Layla, paldies. Labi darīts. [Aplausi] Tātad mūsu tic-tac-toe spēlētājs iet caur un atrod vietas, atrisina tos izmantojot šo Minimax. Un man bija dziļuma iestatījumu uz ka tā, ka tas nevarētu palaist pārāk ātri, kas ir iespējams, kāpēc Layla varēja iet labi uz priekšu kā viņa to darīja, un bija ļoti labi. Bet šīs sistēmas, kas tikko iet cauri un brutālu spēku iet dziļāk, un dziļāk, un dziļāk, un saglabāt atrast risinājumu ka viņiem ir nepieciešams, šie sistēmu veidi ir diezgan veiksmīga pie tiem, labi, standarta galda spēles. Un patiesībā, ja mēs apskatīsim trīs līdz trīs tic-tac-toe spēle, Šis ir būtībā atrisināta problēma. Un tas ir brīnišķīgi diagramma no Randall Munroe pie Xkcd, rāda, no kuras pārvietot jums vajadzētu veikt, ņemot vērā pretinieka kustas. Tas ir kaut kas, mēs varētu viegli precizēt pirms laika. Bet kas notiek, kā mēs to vairāk sarežģītas spēles, vairāk sarežģītu spēles, kur ir lielākas dēļi, vairāk iespējas, dziļāk stratēģija? Izrādās, ka šis brutālu spēku meklējot vēl nav pietiekami labi, izņemot kad jūs nokļūt līdz vietai kur tas koks ir tik liels ka jūs nevarat pārstāvēt to visu. Ja jūs nevarat aprēķināt visu koku, ja jūs nevarat iet uz priekšu un push sev līdz vietai, kur jūs esat gotten visu koku atmiņā, vai jūs varat saņemt to atmiņā un tas būs tikai tevi pārāk ilgi, lai meklētu ar tas, kas Jums jādara kaut gudrāku. Lai to izdarītu, jums ir jādara divas lietas. Pirmkārt, jums ir, lai atrastu kādu veids, kā ierobežot savu dziļumu. Nu, tas ir OK. Mēs varam atrast kādu jauku, absolūtu minimumu un teikt, jūs varat tikai iet tik dziļi. Bet, kad jūs to izdarītu, tas nozīmē, ka jūs ir šie daļēji nepilnīgas dēļi. Un jums ir jāizvēlas, vai man patīk Tas daļēji nepilnīga tāfele, vai tas daļēji nepilnīgas kuģa? Un mūsu četriem ar četru tic-tac-toe spēle, mūsu dators spēlētājs dabūja uz leju uz leju, un tā teica, Man divas dažādas dēļi. Ne viens ir abpusēji. Ne viens ir zaudējums. Ne viens ir neizšķirts. Kā es varu izvēlēties starp viņiem? Un tas nebija smart veids, kā darīt to. Mēs redzam šāda veida izvērtēšana notiek visu laiku kā mēs nokļūt sarežģītākām spēlēm. Šahs ir lielisks piemērs. Šahā, mums ir, pirmkārt no visiem, lielāku kuģa. Mums ir daudz vairāk gabaliem. Un pozicionēšanas no šiem gabaliem un tā, ka šie gabali pārvietot ir kritiski svarīga. Tātad, ja es vēlos izmantot Minimax, Man vajag, lai varētu norādīt un teikt, šī padome, kurā neviens nav uzvarējis vai zaudējis vēl, ir kaut kā labāka, nekā tas cits board, kur neviens nav uzvarējis vai zaudējis. Lai to izdarītu, es varētu darīt lietas, piemēram, es varētu tikai saskaitīt, cik daudz gabalu man ir un cik daudz gabalu jums ir? Vai es varētu dot atšķirīgs gab dažādi punkti. Mana karaliene ir vērts 20 punkti. Jūsu bandinieks ir vērts vienu punktu. Kam ir vairāk punktu pavisam? Vai es varētu apsvērt lietas, piemēram, kas ir ieguvuši labāku kuģa pozīciju? Kuras kārta ir tas nākamais, kaut kas es varu darīt, lai precīzāk novērtētu kura no šīm iespējām ir labāk bez izsmeļoši apsverot katrs solis, kas varētu nākt pēc tam. Tagad, lai veiktu šo darbu, viena no lietām, kas ir gatavojas kļūt patiešām svarīgi mums ir ne tikai pārvietojas taisni uz leju līdz noteiktam dziļumā limits, bet to var teikt, viena no šīm idejām, kas man ir ir tik slikti, ka tas ir nav vērts apsvērt visi iespējamajam ka lietas var iet no slikti, lai sliktāks. Lai to izdarītu, mēs pievienot uz Minimax princips sauc alph-beta. Un alfa-beta saka, ja jums ir slikta ideja, netērētu savu laiku, mēģinot uzzināt, kas tieši, cik slikti tas ir. Tātad, šeit ir tas, ko mēs gatavojamies darīt. Mēs ejam, lai ņemtu to pašu principi, kas mums bija pirms, pats Minimax tips meklējumu, tikai mēs esam gatavojas sekot līdzi, ne tikai no faktiskās vērtības, kas mums ir, bet mēs izsekot labākais iespējamais vērtība, ka es varētu saņemt, un iespējams sliktākais iznākums es varētu būt. Un jebkurā laikā iespējamo sliktāko lieta meklē iespējams, Es atteikties, ka daļa no koka. Un es pat apnikt skatoties uz to vairs. Labi, lai iedomāties, ka mēs sākam ar šo pašu precīzu spēli kokā. Un tagad mēs esam gatavojas iet atkal uz leju, visu ceļu uz leju šai apakšējā kreisajā stūrī. Un šajā apakšējā kreisajā stūrī, mēs meklēt un mēs vērtējam šī kuģa. Varbūt tas ir četri līdz četru tic-tac-toe klāja, vai varbūt tas ir šaha galdiņš. Bet mēs skatāmies uz to, un mēs novērtēt tas, un mēs iegūstam vērtību astoņi. Tajā brīdī, mēs zinām, ka mēs gatavojamies, lai iegūtu vismaz astoņi punkti no šīs apakšējās lēmumu. Tas nav svarīgi, ko otrs divi ir, ka septiņi un ka divi. Tie var būt jebkuri vērtības viņi gribēja būt. Mēs ejam, lai saņemtu pie vismaz astoņi punkti. Labi, bet mēs varētu iet uz priekšu un pārbaudīt. Varbūt viena no tām ir labāka nekā astoņi. Mēs skatāmies uz septiņiem. Vai tas ir labāk nekā astoņi? Nē, tas nemaina mūsu viedoklis vispār. Mēs skatāmies uz diviem. Vai tas ir labāk nekā astoņi? Nē, tas nemaina mūsu viedoklis vispār. Tātad tagad mēs zinām, mēs esam izsmeltas visas iespējas tur. Mēs nebrauksim, lai saņemtu kaut kas labāks nekā astoņi. Mēs ejam, lai iegūtu tieši astoņi. Un tā mēs mainīt šo mezglu un teiksim, ka tagad ir pārliecība. Mēs ejam vienu līmeni augstāk virs tā. Un tagad mēs zinām kaut ko par to, ka samazināšanas līmeni. Mēs zinām, ka mēs nekad gatavojas saņemt vairāk nekā astoņi punkti, ja mēs ejam uz leju šajā virzienā. Jo pat tad, ja tie Pārējie divi zari izrādīties būt fantastisks un vērts tūkstošiem katru punktu, Mūsu pretinieks dos mums minimums, un dod mums astoņi. Labi, labi, pieņemsim redzēt. Mēs turpināsim iet uz leju, ka ceļu. Mēs ejam uz leju, lai šo vidū pa kreisi. Mēs skatāmies uz leju, un mēs redzam, tur ir deviņi. Mēs zinām, ka mēs ejam, lai saņemtu vismaz deviņi punkti, ejot uz leju ka vidusceļš. Un šajā brīdī, mēs varam vienkārši pauze. Un mēs varam teikt, izskatās, es zināt līmeni augstāk, Es esmu gatavojas saņemt ne vairāk kā astoņi norāda, ejot pa šo virzienu. Bet, ja es devos uz leju pa vidu ceļš, nevis kreisās ceļa, Es vēlētos saņemt vismaz deviņus punktus. Mans pretinieks nekad gatavojas ļaujiet man iet uz leju, ka vidusceļš. Viņiem izvēlēties. Un viņi gatavojas, lai izvēlētos ceļš pa kreisi uz astoņiem, nevis pa vidu virzienā kas ir vismaz deviņus punktus. Tātad šajā brīdī, es apstāties. Un es teikšu, jūs zināt, ko? Man nav jāmeklē jebkurš vairāk uz leju šajā virzienā. Jo es nekad tur nokļūt. Es varu izlaist šo vienu, un es varu izlaist pār sešiem, jo tas nekad nenotiks. Tāpēc es iešu uz leju, un es ņemšu apsvērt nākamo iespēju. Es iet tur lejā, un es saku, es redzu divus. Es zinu, ja es nokļūtu šeit, es esmu gatavojas saņemt vismaz divas. LABI. Es turpinu iet. Es redzu četras. Es zinu, es esmu gatavojas saņemt vismaz četras. Tur ir vēl daudz starp četri un astoņi, though. Tāpēc es glabāt iet. Es skatos uz leju, un es redzu, tur ir viens. Labi, es zinu, ja Man iet pa šo ceļu, Es esmu gatavojas, lai varētu izvēlēties četras. Kas ir mans pretinieks gatavojas darīt? Starp kaut ko, kas dod man astoņi, kaut kas, kas dod man četri, un kaut kas dod man vismaz deviņi, labi, viņš gatavojas sniegt man četriem. Un es tagad zinu, pie ļoti top, es eju lai varētu saņemt vismaz četri punkti no šīs spēles. Visa ideja par alfa-beta ir, lai nogrieztu daļas koku tik ka man nav skatīties uz viņiem vairs. Bet tas joprojām izskatās tāpat kā es esmu bijis aplūkojot daudz koku. Let 's turēt iet uz leju. Mēs iet uz leju nākamo tagad. Down apakšā, man atrast vienu. Es zinu, es esmu gatavojas saņemt vismaz vienu. Es glabāt meklējat. Es atrast trīs. Es zinu, es esmu gatavojas saņemt vismaz trīs. Es turpinu iet. Es atrast pieci. Es zinu, es esmu gatavojas saņemt piecas ja man noteikti šajā ceļā. Un es arī zinu, tad ka mans pretinieks, ja es izvēlēties vidū trīs lielas izvēles, viņš gatavojas sniegt man kaut kas ir pieci vai mazāk. LABI. Es varu glabāt iet tur. Es varu skatīties uz leju, un es var teikt, ko es gatavojas lai saņemtu, ja es dodos uz leju pa vidu ceļš? Es esmu gatavojas saņemt, labi, trīs tur. Es esmu gatavojas saņemt kaut ko tas ir vismaz trīs. Tur ir vēl lietas, starp trīs un pieci, tāpēc es glabāt meklē. Ak, deviņi, es noteikti ņemt, ka vairāk nekā trīs. Es esmu gatavojas saņemt vismaz deviņi ja man iet uz leju, ka vidusceļš. Tagad mans pretinieks apstājas un saka: izskatās, tur nekādas jēgas vairs. Es zinu, ka mana minimizācija pretinieks, viņš ir gatavojas sniegt man lieta, kas ir mazāks par vai vienāds ar pieciem, nevis lieta, kas ir lielāks par vai vienāds ar deviņiem. Es apstājos. Man nav skatīties vairāk tajā. Es turpinu iet. Es skatos uz šo vienu. Leju, lai apakšā, es atrast sešiem. Es zinu, es esmu gatavojas saņemt vismaz sešus. Un ko es varu darīt? Es varu apstāties. Jo tur ir izvēle starp kaut kas ir vismaz sešus un kaut kas ir mazāks par pieci, viņš ir gatavojas sniegt man lieta kas ir mazāks par pieci. Un tagad es zinu, es esmu gatavojas lai iegūtu tieši šo izvēli. Es esmu gatavojas iegūt, ka pieci izvēli. Es dodos atpakaļ uz augšu uz augšu. Kas es esmu gatavojas izvēlēties starp kaut ko kas ir lielāks par vai vienāds ar četriem, vai kaut kas ir vienāds ar pieci? Es esmu gatavojas pieņemt kaut ko tas ir vismaz pieci. Es iet uz leju pēdējo ceļu, visi ceļu uz leju, lai apakšā. Tur ir viens. OK, vismaz es esmu gatavojas saņemt vienu punktu. Es turpinu iet. Divi, ak, tas ir labāk, nekā vienu. Es esmu gatavojas saņemt vismaz divas. Es atrast trīs. Es zinu, es esmu gatavojas saņemt trīs. Un punkts iepriekš, ka, mans pretinieks gatavojas lai dotu man kaut kas ir mazāks par vai vienāds ar trīs. Un tagad es varu apstāties. Jo izvēle starp mani ir iespēja saņemt piecu un mans pretinieks dod man kaut ko mazāk nekā trīs, Es esmu vienmēr gatavojas pieņemt, ka pieci. Tāpēc es nedomāju, ka novērtēt apakšējā daļa no koku vispār. Tagad tas var likties mazsvarīgi. Bet, kad maz biti aritmētisko, lielāks par un mazāk nekā, var samazināt prom veselas daļas Tas eksponenciāli aug koks, kas noved pie milzīga ietaupījuma apjoms, ietaupījumiem kas ir pietiekami liela, ka es var sākt spēlēt konkurētspējīgu pie sarežģītākiem spēles. Nu labi, ja mēs skatāmies uz izmēru un sarežģītība dažādas spēles, tic-tac-toe bija mūsu viegli piemērs. Mēs esam ieguvuši nelielu kuģa, trīs ar trīs. Mēs iegūt, ne vairāk, vidēji apmēram četras dažādas izvēles kā mums iet caur spēli. Mums ir kaut kur ap 10 uz piektais iespējamie dažādas lapas. Un veidojot Tic-Tac-Toe spēlētājs, labi, mēs vienkārši to darīja. Tas ir viegli. Ja mēs aizejam uz kaut ko vairāk komplekss, tāpat Connect Four. Vai atceraties šo spēle, kur jūs piliens maz žetoniem in? Tā ir seši līdz septiņi valdes, nav, ka daudz lielāks, joprojām ir apmēram tajā pašā filiāles faktors, kā Tic-Tac-Toe. Man ir aptuveni četras izvēles kur es varu nodot lietas. Bet tagad, man ir daudz vairāk noved, 10 līdz 21. varas. Tas ir kaut kas, kas ir viegli pietiekami, ka mēs to atrisināt uzreiz. Dambrete, vairāk complex-- tevi ieguva astoņi astoņi kuģa. Tu esi tikai pusē viņiem jebkurā brīdī, lai gan. Jūs esat ieguvuši zarošanās faktors, kas ir par 2,8. Nu, mēs esam ieguvuši pāris pārceļas jūs varat veikt. Jūs esat ieguvuši aptuveni 10 līdz 31. lapām, lielāki, un lielāki un lielāki telpas. Kā man ir pārlūkot šie lielāka un lielāka telpas, tas ir tad, kad lietas, piemēram, alfa-beta un spēt nogriež visu zarus kļūst būtiska. Tagad, dambrete bija viegli pietiekami 1992.gadā. Datorprogramma sauc Chinook pārspēt pasaules kauliņus čempions, Marion Tinsley. Un kopš tā laika, ne cilvēka master spēlētājs ir spējuši pārspēt labāko skaitļošanas sistēmas. Ja mēs skatāmies uz kaut kā šahs, tagad atkal, mums ir astoņi astoņi kuģa. Bet mums ir daudz sarežģītāka gabali, daudz sarežģītākas kustības. Mums ir zarojumpunkts faktors par 35, 35 iespējamos pārceļas vidēji ka es varētu veikt, un valsti telpa, vairāki lapām kas ir pieaudzis līdz 10 uz 123. varas, milzīgs skaits iespējām. Pat vēl, mūsdienu procesori ir iespēja to izdarīt veiksmīgi. 1995. un pēc tam 1997. gadā, ar datoru Programma sauc Deep Blue būvēts ar IBM kas skrēja uz milzu superdatoru pārspēt pašreizējo pasaules čempionu, Garijs Kasparovs. Tas bija pagrieziena punkts. Šodien, lai gan, ka pats apstrāde jauda sēž uz mana MacBook. Apstrādes ātrumu uztur iegūt ātrāk un ātrāk. Mēs varam novērtēt vairāk un vairāk dēļi ātrāk un ātrāk. Bet vēl svarīgāk, mēs esam labāki novērtēšanas funkcijas un labāk atzarošanas metodes. Tātad mēs varat meklēt kosmosa vairāk kompleksi. Lielākais no valdes spēles, ka mēs varam iedomāties, kaut kā Go, kas ir ieguva 19 par 19 kuģa, Tagad pēkšņi, mēs esam garām vietai, kur skaitļošanas sistēmas var uzvarēt. Nav skaitļošanas sistēma, kas pastāv kas var pārspēt profesionālu Go spēlētāju. Labākais sistēmas šodien rangs to par tāda veida labā amatieru līmenī. Tātad tur ir vēl diezgan daudz out tur, ka jūs nevarat nokļūt vēl. Labi, šie tradicionālās galda spēles, Šie sistēmu veidi, kur mēs veidot šo Minimax, vai tas ir got alfa-beta vai nē, šie algoritmi strādā jo ir daži ierobežojumi. Mums ir lieliska informācija par pasauli. Mēs zinām, kur visi gabali ir. Pasaule ir statisks. Neviens izpaužas, lai pārvietotu gabali apkārt, kamēr es esmu sēdēja tur domāšana, ņemot mana kārta. Ir prasība telpa, kas ir diskrēta. Es varu likt savu bandinieks šeit, vai es varu likt savu bandinieku šeit. Es neesmu atļauts nodot manu bandinieks uz līnija, kas starp abiem kvadrātiem. Un, visbeidzot, pasākumi ir determinēti. Es zinu, ka, ja es saku, krauķis uz Knight trīs, mans krauķis gatavojas galu galā pie bruņinieks trīs, ja vien tas ir derīgs gājiens. Nav nenoteiktība par to. Tagad, kā es iet uz vairāk dažāda veida spēles, mums ir lauzt šos pieņēmumus. Ko darīt, ja es eju uz kaut ko piemēram, klasiskās video spēles? Lūk izvēle video spēles no Atari 2600. Kas man ir tur? Man Frogger, telpa Invaders, pitfall, un Pac-Man. Kāda veida vidē man ir šeit tagad? Kurš no šiem pieņēmumiem man ir pārtraukums? Nu, tas ir atkarīgs no spēles. Es varētu spēlēt šahu uz 2600, un tas būtu tāpat kā tas bija agrāk. Lielākajai daļai no šīm sistēmām, tur ir pilnīgas zināšanas par pasauli. Tur ir pilnīgi deterministiskās darbības. Bet parasti, pasaules vairs nav statisks. Tas ir, bet es esmu sēžot tur gaida, kaut kas kustas. Spokiem nāk, lai iegūtu mani. Skorpions ir šādi mani zem. Par kosmosa iebrucējiem ir nāk tuvāk un tuvāk. Cik labi mēs varam darīt pret šiem? Pirms dažiem gadiem, Google bija projekts ar nosaukumu DeepMind, kur viņi apmācīts datoru Programma spēlēt Atari 2600 spēles. Un, ja jūs domājat, ka tas nav nopietni bizness, tad viņu pētījuma rezultāti tika publicēti raksturs, tāpēc tikai apmēram tikpat labi publikācija kā jūs varat iespējams saņemt. Un lūk, cik labi viņi veic. Viņi ir algoritmu, kas sēdēja un noskatījos tikai ekrāna ieejas. Tas ieguva nekādus norādījumus whatsoever par spēles noteikumiem. Un tas bija paredzēts, lai noskaidrotu, pamatoja savu vērtējumu, cik labi tā darīja. Tas bija sistēma, kas izmanto kaut ko sauc pastiprinājums mācīšanās. Tas ir, tā paskatījās tās rezultātu. Un, ja tas ieguva labu vērtējumu, tas teica, Es būtu atcerēties tās lietas. Un man ir jādara tiem vēlreiz. Un, ja tas ieguva sliktu rezultātu, tā teica, Man nevajadzētu darīt tās lietas atkal. Tas ir sniegums Šo apmācītu sistēmu atļauts spēlēt priekšlikums Dažas stundas par katru spēli, salīdzinājumā pret profesionāliem spēlētājiem. Tātad, attiecībā uz visiem spēles, kas ir uz kreiso pusi šajā līnijā, tas self-apmācīts datorprogramma pārspēja profesionālās Gamers. Un par visu uz labi, profesionāli Gamers joprojām bija labākais. Kaut ko, kas zināja nekas par noteikumiem, kas neko nezināja par struktūru spēles, tas ir iespaidīgs sniegums. Un tas ir tas, ko mēs esam spējīgi izdarīt šodien. Labi, jūs sakāt, bet, ja mēs domāt par AI spēlēs, Parasti mēs domājam par lietas, ko mēs varam faktiski sēdēt un spēlēt pret. Ja es sēdēt un es spēlēt StarCraft, vai es spēlēt bezmaksas siets, dators pretinieks ir persona, kas kontrolē šo Zerg, vai kontrolē citu civilizāciju. Kā šie spēlētāji faktiski atrast savu kustas? Nu, šīs spēles ir strukturētas daudz tāpat kā mūsu galda spēles, šīs spēles, ka mēs kolektīvi piezvanīt četras X spēles, izpētīt, expand-- aizmirst tos. Kas viņi ir? Izpētiet, paplašināt, un nodzēst, Es domāju, ka ir pēdējais. Bet viņi būtībā izpētes un iekarot spēles. Raksturīgi, ka dators pretinieks tur ir ierobežota informācija. Viņi nezina, ko tieši ir notiek aiz šo miglu kara. Viņi nesaņem, lai redzētu, ko jums ir jūsu inventāru. Tur ir vide, kas ir dinamiska. Viss mainās visu laiku. Jums nav iegūt sēdēt un gaidīt, lai jūsu pārvietoties. Bet lielākā daļa lietas joprojām ir diskrēta. Man ir, lai mana pilsēta šeit. Vai man ir manu pilsētu šeit. Un viss ir determinēti. Kad es saku, pārvietot manu vienību šeit, mana vienība pārceļas šeit, ja vien par šķērsli pēkšņi sāk spēlēt. Tagad, tas vēl nav viss dators spēles, kas ir, kas tur šodien. Ja es eju un es spēlēt pirmās personas veids spēle, kaut kas līdzīgs Thief vai Fallout vai Skyrim, vai halogēna atoms, tagad Man ir datoru pretiniekiem ka ir tur, ka ir ļoti atšķirīga situācija. Viņi ir, atkal, ierobežota informācija. Viņi tikai var redzēt pārliecināts redzeslauks. Vide ir vēl dinamisks. Lietas mainās visu laiku. Bet tagad man ir daudz vairāk nepārtraukta darbība telpa. Es varu būt tikai peeking Mazliet ārā no durvīm. Un dažas spēles, mans pasākumi ir stohastisko. Man mēģināt lēkt pār šo sētu, bet man ir izredzes nedarot. Šīs spēles veidu arvien tuvāk un tuvāk par kontrolieriem veidu ka mēs veidojam robotikā. Robotikā, mums ir jāuzņemas ka mums ir ierobežota informācija. Mums ir sensori, kas pastāstīt mums par pasauli. Mums ir vienmēr mainās, dinamiskā vidē. Mums ir pasaule, kurā vieta ir nepārtraukta, nevis diskrēta. Un mūsu rīcība, kad mēs cenšamies viņiem, ir iespēja nedarot. Un patiesībā, moderna spēle kontrolieri jūsu Halo pretinieku, vai tiem NPC Skyrim, būtībā palaist mazos robotika arhitektūru. Viņi sajust pasauli. Viņi veidot modeli pasaulē. Viņi aprēķināt, pamatojoties uz virkni mērķi, ka viņi gribētu paveikt. Viņi plāno darbības, pamatojoties par to, ko viņi zina. Un tie ir tieši tādas pašas veidi sistēmu, kas mums veidot robotikā. Tātad šie arhitektūras, lai celt šo atpakaļ kopā, bieži vien ir diezgan vienādi. Tātad, pieņemsim redzēt, ja mēs varam redzēt, ka. Atgriezīsimies pie mūsu tic-tac-toe piemērs. Un es esmu gatavojas uzdot pāris manu post-docs nākt klajā un man palīdzēt. Tātad Chen Ming, un Alessandro, un Olivier, ja jūs puiši varētu nākt klajā. Un es esmu gatavojas nepieciešama pāris brīvprātīgajiem Labi, es redzēju roku up tiesības tur pa vidu. Ļaujiet man izmantot vienu vairāk, kāds tālāk uz muguras varbūt. Labi, tur. Nāciet uz augšu. Viss kārtībā. Tātad pieņemsim, ka vāku uz leju. Un, ja jūs guys nāks tiesības atpakaļ šeit ap mani, fantastiski. Tātad tas ir robots sauc Baxter. Un Baxter ir robots, kas ir komerciāla platforma, kas paredzēti uzņēmuma nosaukumu Rethink. Un šis robots ir paredzēts neliela apjoma ražošanu. Bet šodien mēs spēsim izmantot, lai atskaņotu Tic-Tac-Toe. Tagad šis robots ir arī kaut kas tas ir samērā unikāla. Jo, ja es stāvēja jebkur tuvu standarta rūpnīcu automatizācijas sistēma, es gribētu būt ļoti kapā briesmas tikt ievainoti. Baxter, tomēr, ir paredzēts, lai būtu samērā droši mijiedarboties ar. Un tā es varētu virzīt šo robotu. Un jūs varat redzēt, tas ir nedaudz bit elastīgs, jo tas kustas apkārt. Un es varu to pārvietot kur es gribētu, lai tas iet. Tagad normālu robotu sistēmas, mēs būtu kopums locītavu šeit kas būtu tieši atbildot uz pozīciju komandas. Un viņi ne vienmēr vienalga ja tie pārvietojas pa svaigā gaisā, vai arī, ja tie pārvietojas caur manu krūšu kurvis. LABI. Un parasti, ja Jums bija šeit ar rūpniecisko sistēmu, Jūs varētu iet ne tuvu tai. Tur būtu dzeltens drošības lente viss ap to. Šī sistēma ir Nedaudz atšķirīgs dizains būt draudzīgāku un vieglāk lai cilvēki varētu mijiedarboties ar, ar to, ka katrā savienojumā, tur ir atspere. Un nevis kontrolē precīza atrašanās vieta, mēs kontrolēt zināmu griezes moments, zināma spēka, ka mēs gribētu būt, ka pavasaris. Labi, tāpēc ļaujiet man veikt mūsu brīvprātīgos šeit. Hi, kāds ir jūsu vārds? Mērķauditorija: Louis. SPEAKER: Louis. Prieks tevi redzēt. Un? Mērķauditorija: David. SPEAKER: David. Prieks iepazīties. Ja jūs puiši varētu gaidīt tepat uz otru, Es esmu gatavojas sniegt jums iespēja to darīt. Tātad šis robots, ja jūs nākt klajā un ja jūs push viegli par to, jūs gatavojas redzēt, ka tas kustas mazliet. Un, ja jūs paķert to tiesības šeit uz rokas tikko Iepriekš ja šie taustiņi ir, tas Izskatās, ka jums vajadzētu paķert pogas, bet paķert tieši virs tā vietā, jūs jāspēj ļoti viegli manipulēt ar to pa telpu. Louis, jūs vēlaties, lai pamēģināt? Tātad to tikai nedaudz push, lai sāktu ar. Un tad, ja jūs nodot pirkstus labi tur, un turēt uz to, jo tas pāriet jums, tad. Labi, jūs vēlaties, lai pamēģināt? Nāciet uz augšu. Tāpēc arī tā ir tikai maigs push tur sākt. Jūs varat sajust to, kas tas ir tāpat. Un tad, ja jūs paķert to turpat, Jūs varēsiet manevrē apkārt. LABI. Tātad parasti, šāda veida robots būtu izmanto maza mēroga ražošanu. Un es esmu gatavojas pārvietot šo roku tikko lejup no tā mazliet šeit. Bet šodien, mēs ejam, lai izmantotu pats tic-tac-toe spēlē sistēma pamatojoties uz Minimax ka mēs izveidojām agrāk. LABI? Tātad, jūs puiši katrs gatavojas spēlēt spēli. Louis, jūs esat būs pirmais. Ļaujiet man tikai aiztur šeit uz sekundi. Es esmu nāksies jūs stāvēt tiesības šeit, tikai tāpēc ikviens var redzēt. Vai jūs guys izveidot šeit? ROBOT: Welcome. Spēlēsim Tic-Tac-Toe. Nelietojiet aptvert savu žetonu pirms Es saku, ka tas ir jūsu kārta. Es sāktu spēli. Tā ir mana kārta. SPEAKER: Tagad, ja jūs varētu veikt vienu no Jūsu gabalus un iet uz priekšu un ievietojiet to. ROBOT: Tā ir jūsu kārta. [Smiekli] Tā ir mana kārta. [Smiekli] [Smiekli] Tā ir jūsu kārta. SPEAKER: Cilvēcei ir paļaujamies uz jums šeit, Louis. ROBOT: Tā ir mana kārta. SPEAKER: Tātad Baxter veiksmīgi bloķēts šeit. ROBOT: Tā ir jūsu kārta. Tā ir mana kārta. Tā ir jūsu kārta. Tā ir mana kārta. SPEAKER: Un mēs pieņemsim Baxter pabeigt savus pēdējo gājienu šeit. [Smiekli] ROBOT: Tas ir kaklasaiti. Es uzvarēs nākamreiz. [Smiekli] SPEAKER: Labi, Pateicoties ļoti daudz, Louis. Paldies. Jūs varat iet šo ceļu. ROBOT: Es sāktu spēli. SPEAKER: Tātad, ļaujiet man paskaidrot jums, vēl viens mazs bit pirms mēs saņemt mūsu mačs tiks šeit. Kas īsti notiek? Tātad robots ir kameras up top šeit. Un tas ir skatoties uz leju pie kuģa. Un tas ir redzēt, vai tas ir got sarkano O vai zils un baltā X. Kā tos iegūt, ko laiž valde, kas ir būtībā tas pats ieejas ka mēs būtu lasījums no Mūsu datu struktūra no mūsu ekrāna. Tas darbojas pats Minimax algoritms būt iespēja atrast, kur izvietot labu žetonu. Un tad mēs dodam komandu par kur mēs gribētu biļetes laist. Roka virzās ārā. Tas ir, izmantojot vakuuma satvērēju piemērot daži sūkšanas uz šo koka gabalu, paņemt to, pārvietot to uz labo vietas, un pēc tam atlaidiet iesūkšanu un no tā atteikties. Labi, mēs ejam lai arī tā vēl vienu shot ar nedaudz gudrāku atskaņotāju šeit. Esat gatavi? Nu labi, ja jūs stāvēt tiesības uz augšu šeit un dot a-- izrādīties šādā veidā lai jūs varētu redzēt ikvienam. Un tad [nedzirdama]. ROBOT: Tā ir mana kārta. SPEAKER: Baxter sāksies. Tā ir jūsu kārta. Tā ir mana kārta. Tā ir jūsu kārta. Tā ir mana kārta. [Smiekli] SPEAKER: [whispering] Just ļaujiet viņam iet uz priekšu un uzvarēt. ROBOT: Tā ir jūsu kārta. SPEAKER: Tas ir OK. ROBOT: Tā ir mana kārta. [Smiekli] ES uzvaru. [Smiekli] Es sāktu spēli. SPEAKER: Labi, liels paldies. Labi, es domāju, ka mēs esam ieguvuši laiku vēl viens lielisks tic-tac-toe atskaņotājs, kāds, kas var nodot šo lietu, lai spēles, kas zina, ko viņi dara. [Smiekli] Kas būs mūsu čempionu šeit? Labi, jūsu draugi brīvprātīgi jums. Tas ir pietiekami labs priekš manis. Pastāstiet man savu vārdu vēlreiz. Mērķauditorija: Tamir. SPEAKER: Tamir, jauki redzēt tevi. Labi, atkal, mēs ejam, lai likt jums līdz pat šeit, lai ikviens varētu redzēt. Jūs esat mūsu pārstāvis šajā spēlē tagad. Baxter ir viens un oh un oh. Vai sorry, viens oh un viens. Un tas ir atkarīgs no jums šeit. Baxter saņems pārcelties pirmkārt, though. So. ROBOT: Tā ir mana kārta. [Smiekli] Tā ir jūsu kārta. Tā ir mana kārta. Tā ir jūsu kārta. Tā ir mana kārta. Tā ir jūsu kārta. [Smiekli] ROBOT: Tā ir mana kārta. SPEAKER: Tas ir daudz grūtāk, kad jūs stāv šeit, folks. [Smiekli] ROBOT: Tu cilvēki ir tik viegli pārspēt. [Smiekli un aplausi] SPEAKER: Pateicoties ļoti daudz. ROBOT: es vinnēju. Es sāktu spēli. Lektors: Labi, tāpēc paldies ļoti daudz Olivier un Alessandro, un Chen Ming. [Aplausi] Es gribu, lai vienu pēdējo punktu. Tātad Baxter Pašās beidzas tur, cheated. Un tas bija negaidīts. Viens no fantastisks lietas par AI ir tas, ka mēs darīt darbu AI, lai mēs varētu veidot patiešām interesanti un inteliģentas ierīces. Bet mēs arī darīt darbu AI jo tā stāsta mums kaut ko par to, kā cilvēki ir inteliģenti. Viens no mīļākie Pētījumi no manas lab ir skatoties uz to, kas notiek, kad mašīnas negaidīti pievilt. Mēs to darījām sākotnēji nav ar Baxter spēlē Tic-Tac-Toe, bet ar mazāku robotu nosaukts Nao, kurš spēlēja Rock-papīra šķēres. Un dažreiz pēc spēlējot daudz un daudz garlaicīgi rock-papīra šķēres spēles, robots varētu mest žestu, zaudēt, un tad pēkšņi mainīt tā žests un teikt, es uzvarētu. [Smiekli] Tagad, dažreiz mēs gribētu arī robots, tāpat kā kontroles, mest žests, uzvarētu, un mainīt savu žestu zaudēt, mest spēles, apkrāptu, lai zaudēt. Un tas ne tuvu nav tik pārliecinoši. Robots ka Mīklas lai uzvarētu cilvēkus reaģēt uz kā ja tas ir , lai saņemtu viņiem, kā tas aktīvi meklē to iznīcināšanu. [Smiekli] Tā kļūst par aģentu. Tas ir kā cilvēks. Tā ir pārliecība un nodoms. Un tas nav labs nodoms. Un robots, kas met spēle ir vienkārši nepareizi. Tas ir tikai salauzts ierīce. Ļaujiet man parādīs pāris piemēru no ka no dažām no mūsu dalībniekiem. Tātad, šeit ir blēdība, lai zaudēt. [Video atskaņošana] - [Dzirdams] uzvarēt. Uzspēlējam. -Wait, Ko? - [Dzirdams] uzvarēt. Uzspēlējam. [Dzirdams] uzvarēt. Uzspēlējam. SPEAKER: Un šeit ir krāpšanos, lai uzvarētu. -Jā, Es uzvarētu. Uzspēlējam. -Jūs Nevar darīt. [Smiekli] -Jā, Es uzvarētu. -Jūs Cheated. Tu cheated tagad. -Jā, Es uzvarētu. -Hey, Jūs cheater. Jūs pievilt, super apkrāptu. [Beigtu atskaņošanu] SPEAKER: Tie atšķiras reakcijas strauji mainīt mūsu uztveri ierīces. Vai tas nozīmē, ka mēs apzināti veidot mašīnas, kas apkrāptu, jo tas ir labākais inženierija, ka mēs varam darīt? Nē, bet tas stāsta mums kaut ko patiešām interesanti par cilvēkiem. Ka lieta, kas Mīklas jums un nozog jūsu uzvara, kas ir kaut kas ir dzīvs, tas ir animēt, tas ir, lai saņemtu jums. Tā ir garīgo stāvokli. Tā ir ticība. Tas ir nodoms. Ka lieta, kas rokās spēle ar jums, tas nav. Tas ir vienkārši nepareizi. Tas daudzējādā ziņā ir, kāpēc tas ir viegli mest spēli ar bērniem. Bet, ja jūs mēģināt, lai apkrāptu tos un veida pieprasīt uzvaru kad, jūs zināt, tikai saīsināt spēle, tie būs nozvejas jums uzreiz. Šīs ietekmes veidiem, kas mēs redzam nāk no AI, viņi māca mums daudz par sevi. Labi, tas arī šodien. Pateicoties ļoti daudz Dāvidam un Hārvardas ražošanas komandas lai nāk uz leju. [Aplausi] Redzēsim jums par viktorīnu vienu, un tad vienu pēdējo lekciju. Ir lieliska diena. [Aplausi] [Mūzikas atskaņošanai] DAVID J Malan: Nu, mēs, iespējams, ir nepieciešams ieviest sava veida šifrēšana, labi? Jo tad galvenes šie HTTP pieprasījumus būs scrambled lai ikviens mēģinot šņaukāties trafika nebūs reāli varēs redzēt. Tātad, kāds ir risinājums šai problēmai? Nu, mums ir nepieciešams, lai faktiski ieviestu šifrēšana formulā, tā, ka tad, kad šī persona ir pārraidīt datus no A uz B, mēs varam droši send-- [Smiekli] In veidā informācija, ka pretinieks nevar, patiesībā, to aplūkotu.