[Muzikos grojimo] Pranešėjas: Sveiki sugrįžę, visiems. Tai CS50. Ir šiandien mes turime daug įdomių dalykų kalbėti apie. Pirma, nors, turiu priminti Jūs iš nedaugelio administracinių dalykų. Šią savaitę yra viktorina vienas, trečiadienį arba Jeilio skyriuje antradieniais ir ketvirtadieniais, ketvirtadienį. Yra viktorina atsiliepimai vakarą Jeilio, 5:30 iki 7:00. Harvardzie, jie įrašė vieną vakar. Ir kiekvienas gali žiūrėti, kad internete. Be to, šis savaitę arba anksti kitą savaitę, Mes turime paskutinį CS50 paskaitą. [Dejuoja] aš žinau. Jis atėjo taip greitai. Yale mokiniai turės gyventi paskaitą čia Law School Auditorija penktadienį. Bus tortas. Harvardo studentai turės paskutinis paskaita Sanders pirmadienį. Taip pat bus tortas. Be to, šią savaitę penktadienį, tiems, iš jūsų, kurie ateina į New Haven, mes turime CS50 Expo. Mes turime daugiau nei 30 registruotas skirtingos grupės parodyti jums viską iš autonominių burlaiviai, sistemoms, pripažinti Skaitmeniniai portretai, į kompiuterį Muzika ir kompiuteris gaminami muzika. Taigi, prašome prisijungti prie mūsų. Manau, kad tai bus puikus metas. Šiandien, nors mes gauname toliau kalbėti apie AI, apie dirbtinio intelekto. Ir vienas iš dalykų, kad mes ketiname gauti šiandien yra kaip idėja naudoti AI išspręsti problemas. Dabar, kaip visada, pradėkime su kažkuo paprasta. Ir mes ketiname pradėti su paprasta idėja. Ir tai naudojant paiešką. Taigi įsivaizduokite, už minutę, kad aš turėti užduotį, kad man reikia atlikti. Ir aš norėčiau turėti tą užduotį automatizuoti kai kurie programinės įrangos agentas. Įsivaizduokite, kad aš bandau užsisakyti rinkinį skrydžių iš, tarkim, Boston į San Franciską. Galėčiau eiti per ir aš galėtų naudoti vienas nuostabus paieškos internete Įrankiai, kuris ketina daryti iš esmės tas pats procesas, kad mes ketina pėsčiomis per šiandien. Bet jei jūs neturite, kad įrankis, ką tu darytum? Na, jums gali atrodyti ir pamatyti ir pasakyti, aš Bostone. Kas skrydžiai yra su manimi? Dabar, gal turiu tris galimi skrydžiai iš Bostono kad tiks laiką kai man reikia išeiti. Galėčiau skristi į Čikagą. Arba galėčiau skristi į Majamį. Arba galėčiau skristi į Niujorką. Tada aš galėtų atrodyti vienas nuo vienas iš tų Atvykimo miestai ir galvoti apie tai, ką vietovėse Aš galėtų pasiekti kiekvienas iš šių atskirų miestų. Taigi gal iš Čikagos, aš galiu gauti tiesioginis skrydis į San Franciską. Štai puikus. Arba galėčiau gauti skrydį į Denver. Dabar, gal, kad skrydis į San Franciską yra puikus sprendimas už mane, bet gal ir ne. Gal aš ko nors tai šiek tiek pigiau arba šiek tiek geriau už mano grafiką. Ir, kad galėčiau surasti, kas kitas galimybės gali būti ten. Taigi galėčiau pažvelgti Denver. Ir iš Denver, gerai, gal Aš galiu gauti skrydį į Ostinas. Ir iš Austin, gal galiu gauti skrydis į Phoenix, ir iš Phoenix į San Franciską. Dabar aš dar ne viskas. Nes gal ten tiesioginis skrydis iš Niujorko į San Franciską, kad man puikiai tinka. O gal ten skrydis iš Majamio per Denver tai daug pigiau. Taigi, aš vis dar turiu eiti. Ir aš vis dar turite pažvelgti į visiems tiems, miestų, kad aš ne tirtos dar. Turiu išsamiai patikrinti visus galimybės, kad galiu turėti. Taigi iš Niujorko, gal galiu gauti skrydis į Nashville, ir iš Nashville Austin. Ir tada aš žinau, kur aš esu. Ir tada aš žinau iš Austin, galiu skristi į Phoenix, ir iš Phoenix į San Franciską. Jei aš skristi pirmas, Majamyje, nors, gal aš galiu gauti skrydį kryptimi Majamis į Nashville, arba iš Majamio į Ostinas. Ir dabar aš išbandžiau visus iš galimybių. Aš pastatė šį grafiką, kad rodo man visus galimus maršrutus kad aš galėtų imtis. Kai mes atstovaujame šiuos rūšių problemas, mes neketiname atstovauti juos aiškiai, kaip šio grafiko, nes grafikas neatstovauja iš kur mes dingo istorija. Žinant, kad aš skrido iš "Phoenix" į San Franciską nepasako man, ar aš atėjau per Našvilis, arba per Denver, arba per Majamyje. Taigi, ką aš padarysiu, o tai Imsiu tą pačią problemą, ir aš atstovauti jį kaip medį. Ir tuo medžio šaknies, ne viršuje, aš įdėti į vietą, kad aš pradėjau, Bostono. Ir iš Bostono, aš pažvelgti visas galimas vietose kad galiu keliauti į. Na, šiuo atveju, aš turėjau tris, Čikagoje, Niujorke ir Majamyje. Ir tada aš ištirti kiekvieną iš Šie vaikai medyje. Iš Čikagos, aš pamačiau kad turėjau du skrydžius. Galėčiau skristi tiesiogiai San Franciskas arba Denver. Dabar San Franciskas, tai mano tikslas. Tai mano tikslas. Tai ketina būti šio medžio lapų. Tai reiškia, kad aš niekada eiti kažkur po San Franciske. Iš Denver, nors, Galiu skristi iš Denver Austin, Ostinas į Phoenix, ir iš Phoenix San Franciske. Ir dabar vėl, aš pasiekė lapų. Galėčiau tada grįžti į kitą Miestas, kad aš ne visiškai ištirta. Tai būtų Niujorkas, eiti atgal iki savo medžio viršuje, nusileisti į Niujorką. Iš Niujorko, galiu skristi Našvilis, iš Nashville Austin, Austin Phoenix, ir iš Phoenix San Franciske. Ir, galiausiai,, vienas miesto I ne pažvelgė dar, Miami. Na, iš Majamio pasakiau aš turėjau du galimybių, Nashville arba Austin. Jei aš skristi į Nashville, gerai, tada aš skristi iš Nashville, Austin, Phoenix, į San Franciską. Jei aš skristi į Austin, aš skristi Austin, Phoenix, San Franciske. Ir dabar turiu medį. Tai visiškas medis. Tai visų galimybių ir visi takai, kad galėčiau imtis. Tai yra, jei aš pradėti ne šaknies medžio viršuje ir aš eiti į vieną iš lapai, jis man sako, ne tik kur aš ruošiuosi galų gale, San Franciskas, bet ji man sako maršrutą, kad Man reikia imtis, kad ten patekti. Dabar, kuris vienas iš šių yra geriausias? Na, nieko apie tai problema dar man sako, kuris iš jų yra geriausias sprendimas. Gal man rūpi labiausiai apie kiek laiko aš į orą, ar atstumas, kad aš plaukioja. Tokiu atveju, Čikaga San Francisco gali būti trumpiausias skaičius mylių ore. Gal aš rūpi kaina. Ir mes visi žinome tiesioginius skrydžius paprastai yra brangesni. Tai gal jei aš tai rūšies atgalinio maršruto per Majamyje, Nashville, Ostinas, Phoenix, gal tada Gaunu mažesnę kainą. Bet galėčiau optimizuoti dėl bet kriterijai, kad aš rūpi. Kas manimi gavo į geriausias skrydžio Wi-Fi ", ar kuris oro uostai geriausias maistas prieinama. Ir kiekvienas iš jų galėtų man kitokį sprendimą kad matau kaip geriausią. Šios problemos rūšių, kur mes einame statyti šią medžių galimybių, o tada apie kiekvieną iš tų, individualūs maršrutai, ir išnagrinėti kuris iš šių atitinka už mus kriterijai, mes ketiname skambinti tie Paieška problemos. Ir mes turime daug algoritmą, iš kurių kai kurie mes matėme jau eiti ir ištirti tuos medžius. Mes galime tai padaryti taip, kad aš tiesiog padariau, labai paieška į gylį, žemyn, kiek mes galime, kol mes nukentėjo lapą, o tada grįžta iki, ir vyksta atgal žemyn. Arba mes galime padaryti, kas vadinamas plotis pirmoji paieškos. Mes galime išplėsti viską viršuje, ir tada viskas viena eilutė po to, ir tada viskas viena eilutė po kad. Šie medžiai paieška yra esminė AI. Tačiau jie neturi visiškai gauti teisingai visą laiką. Iš tiesų, kai kuriuose iš atvejais daug kad mes tikrai rūpi, mes norime sukurti medį, bet mes ne iš tikrųjų gauti padaryti visus sprendimus. Tai yra situacijos vadinamos rungimosi paieška, taip pat žinomas kaip kaip rašyti žaidimų žaisti sistemos ir gauti už jį. Bet tai yra rūšys sistemų, kur aš gali gauti pasirinkti, kada aš einu iš Bostonas, kuri Miestas aš einu į kitą. Bet po to, kažkas gali gauti priimti sprendimą apie tai, kur aš skristi. Taigi, norint sukurti jų rūšių struktūros, mes teks šiek tiek užtrukti kitoks požiūris į jį. Mes neketiname, kad būtų galima tiesiog ieškoti per medį nebėra, nes mes ne vienas, kad yra kontrolės kiekvieno iš šių sprendimų kiekis. Taigi įsivaizduokime, paprastas žaidimas kaip Kryžiukai-nuliukai. Galėčiau pradėti nuo visiškai tuščias lenta. Ir Kryžiukai-nuliukai, X gauna žaisti pirmas. Ir, kad galėčiau galvoti apie visus galimi juda, kad X gali padaryti. Ir jei aš vienas žaidimo X, tai puiku. Turiu devynis galimą juda, kad aš galiu padaryti. Galėčiau įdėti X bet vieną iš šių devynių pozicijų. Ir tada iš kiekvienos iš tų, I Galima įsivaizduoti, kas vyksta šalia. Na, šiuo atveju, kita žaidėjas gaus imtis ruožtu. O būtų gauti imtis ruožtu. Ir kiekvienas iš šių, yra Būtų aštuonių skirtingų vietų kad O galėjo įdėti savo žymeklį. Tarkime, aš nusprendžiau, kad man buvo ketina pateikti X centre. Tai visada atrodo geras atidarymas žingsnis. Galėčiau pažvelgti po to, aštuoni galimi juda, kad O Makes. Dabar, jei aš žaisti X, tai nuostabu. Man pasirinkti, kuris iš I eiti, viduryje vienas. Bet dabar O gauna pasirinkti. Ir aš neturiu kontrolę per tą sprendimą. Bet kiekvienas iš šių galimi Stalo padėtys, ten tada kitą nustatyti galimybių. Kai jis ateina į būti Mano grįžk, aš norėčiau gauti pasiimti ir sako, gerai, jei P juda į gerai, Artimųjų vietoje kairėje, tada Turiu galimybių rinkinį kur galiu pasiimti savo kitą žingsnį. Iš tų, aš galėtų apsvarstyti visus kad po jais galimybės. Ir tada O būtų gauti pasirinkti tarp tų. Ir aš galėčiau išlaikyti pastato tai medis, kol aš iki taško jei kuri nors ką nors laimi _pasirinkti, kad yra turiu būti laikomas lapų node-- arba Valdyba yra visiškai pilnas ir niekas laimėjo. Ir tai taip pat bus lapas mazgas. Štai bus lygiosios. Bet keblus dalykas su tai jei tai buvo tik reguliariai paieška problema, aš galėti tarkim, gerai, X turi eiti čia. Ir O reikia eiti būdas ten. Ir tada X turėtų eiti per čia. Ir tada Ö turėtų pereiti kelią ten. Ir tada X gali gauti tris iš eilės, ir aš laimėti. Ir žaidimas būtų per penkių juda, trys už mane, du mano priešininkas. Bet aš ne visada gaunate pasirinkti, kad. Taigi vietoj to, ką mes teks daryti yra mes ketiname turėti turėti naują strategiją. Ir strategija, Žaidimas-žaidimo algoritmai dažnai naudoja yra tai, kas vadinama "Minimax". Centrinis idėja Minimax yra tai, kad mes ketina pasiimti šį išpuolį, kuris suteikia mūsų priešininkas blogiausia įmanoma rinkinys iš juda, kad jie gali padaryti. Jis nedaro man bet geras pasirinkti perkelti kur Aš galėtų laimėti po kad dėl mano oponentas nėra ketina duoti man tą galimybę. Jie ketina pasirinkti kai baisi rezultatas man. Taigi, aš ruošiuosi padaryti judėti, kad priverčia savo varžovą kažką daryti geriau už mane. Gerai. Pažiūrėkime, kaip kad vaidina. Taigi čia mūsų algoritmas Pseudocode. Mes ketiname sukurti visą žaidimą medis. Mes ketiname statyti visos struktūros. Ir tada mes eiti per. Ir tuo pat dugne kiekvienas iš terminalų mazgai, kiekvieno lapų, mes įvertinti, kaip vertinga yra tai, kad su manimi? Ir mes ketiname vertės dalykų, yra geras man kaip teigiamas. Daiktai, kurie nėra gerai man bus mažiau teigiama, arba nulis, ar net neigiamas. Taigi Kryžiukai-nuliukai, gal už mane Win yra gera. Štai vienas. Ir kaklaraištis yra lygus nuliui. Ir kažkas tai yra už nuostolius man, gal tai yra neigiamas. Visa tai svarbu tai, kad geriau tai man, tuo didesnis balas ji gauna. Iš šių Tuo galimybes apačioje, tada mes filtruoti aukštyn. Ir kai tai mano šansas pasirinkti tarp daugelio alternatyvų rinkinį, Aš pasirinkti vieną, kad gavo aukščiausią rezultatą. Ir kai tai mano Varžovai savo ruožtu pasirinkti, Aš manyti, kad jie ketina pasirinkti vieną su mažiausią rezultatą. Ir jei aš tai visą kelią iki medžio viršuje, Aš jau pasirinko kelią, kuris suteikia man geriausias rezultatas, kad aš galiu gauti, darant prielaidą, kad mano oponentas daro visus reikiamus judesius. Visos teisės, todėl pažiūrėkime tai veiksmai pirmiausia. Ir tada mes iš tikrųjų pažvelgti į jį kodą. Taigi įsivaizduokite Turiu šį didelį medį. Ir dabar aš ne žaisti Kryžiukai-nuliukai. Aš norėjau duoti jums kažkas šiek tiek turtingesni. Taigi aš turiu šiek tiek žaidimas, kur ten daug skirtingų balų kad aš gali turėti pabaigoje. Ir todėl aš statyti visą medį. Ir man pereiti pirma. Aš ne iš medžio šaknis. Ir man pasirinkti that-- taip gaunu padidinti per šią pirmą mazgas. Ir tada mano varžovas gauna eiti. Ir tada man eiti dar kartą. Taigi, žemyn apačioje, aš iš rinkinį galimybės, kad galiu rinktis, skirtingų terminalų narės žaidimą. Jeigu aš žemyn, kad kas kairiajame kampe, ir matau, kad aš turiu pasirinkimą tarp aštuonių, septyni, ir du, Na, aš vienas, kad gauna pasirinkti. Taigi, aš ruošiuosi pasirinkti geriausias vienas iš tų. Aš ruošiuosi pasirinkti aštuoni. Taigi aš žinau, kad jei aš kada nors kibti į šiuo klausimu, Aš galės gauti, kad aštuonis taškus. Jei aš galų gale kitą tašką daugiau, kitas mazgas daugiau, devynių, vienas, arba šešių, gerai, aš ketina pasirinkti geriausią iš tų. Aš pasirinkti devyni. Jei turiu pasirinkti tarp du, ir keturi, ir vienas, Aš pasirinkti keturi, aukščiausias. Dabar, jei aš pažvelgti į lygį aukščiau, kad mano oponentas yra vienas gauna padaryti, kad pasirinkimas. Taigi, mano priešininkas gauna pasirinkti, ar aš noriu duoti jam dalykas, kad vyksta gauti jam aštuonis taškus, ar man duoti jam dalykas, kad ketina duoti jam devynis taškus, ar dalykas, kad vyksta duoti jam keturis taškus? Ir mano oponentas, yra racionalus, vyksta pasirinkti tie minimalūs, ketina pasirinkti keturi. Ir aš galiu tai padaryti per visą medžio. Galiu eiti į tą Artimųjų rinkinys iš trijų. Ir aš galiu rinktis tarp vienas, trys, ir penkių. Ir man pasirinkti. Taigi aš pasirinkti penki. Galiu pasirinkti trys, devyni, ar du. Man pasirinkti, todėl aš pasirinksiu iš devynių. Šeši, penki, ar du, aš pasirinksiu. Man pasirinkti šeši. Lygis aukščiau, kad kuris gauna pasirinkti? Kas gauna pasirinkti? Kitas vaikinas, mano oponentas. Taigi jie pasirinkti penkis, devynių, ar šešių, kurių vienas? Auditorija: Penkių. Pranešėjas: Jie pasirinkti penki. Jie gauna pasirinkti minimumo. Ir tada paskutinis, pasirinkti vieną, du, arba trys. Man pasirinkti, todėl aš pasirinkau tris. Devyni, septyni, ar du, aš pasirinksiu devyni. Ir 11, šešių arba keturi, aš pasirinksiu 11. Mano priešininkas tada pasirenka tris, devynių arba 11, pasirenka minimumo. Jis suteikia man tris. Ir galiausiai viršuje sąrašo medis, man pasirinkti dar kartą. Ir man rinktis tarp keturių, penkių arba trys. Taigi aš iš penkių. Jeigu aš turiu kontroliuoti viską, aš imtis kelią, kuris atvedė prie 11. Bet aš negaunu padaryti, kad pasirinkimas. Jei aš eiti tuo keliu. Mano priešininkas bus priversti mane į pasirinkimas, kad veda prie trijų. Taigi geriausia, kad aš galiu padaryti, tai imtis, kad vidurinioji filialas, padaryti tokio pasirinkimo, kad yra galų gale ketina vesti mane į penkis taškus. Štai ką Minimax daro. Gerai. Paimkime Tuo išvaizdą. Taigi čia CS50 IDE yra programa, kuri įgyvendina Minimax žaisti Kryžiukai-nuliukai. Mes ketiname statyti sukurti atstovavimo. Mes ketiname turėti du opponent-- ar du žaidėjai, mūsų kompiuteryje grotuvas ir žmogaus grotuvas. Žaidėjo numeris vienas bus žaisti O. Tai bus mašina žaidėjas. Jie gauna judėti sekundę. Ir kitas žaidėjas, mūsų žmogaus grotuvas, bus X. Ir padaryti, kad mano gyvenime tiek paprastas, aš ruošiuosi ženklinti, kad grotuvas neigiama. Taigi aš galiu tiesiog padauginkite neigiamos vieną apsikeitimo tarp vieno grotuvas ir kitos. Gerai, tad pažvelgti ką mes iš tikrųjų ketiname daryti. Mes ketiname apibrėžti savo lenta. Tai bus gerai, mes ketiname , kad ji galėtų būti trijų iš trijų, ar mes net galime žaisti penki iš penkių ar septynių septynios Kryžiukai-nuliukai Jei norite kaip, remiantis tam tikru matmens D. Ir mes turime pora pagalbininkų funkcijas kad bus padaryti dalykus, kaip inicijuoti screen-- arba Atsiprašome, inicijuoti mūsų kintamuosius, išvalykite ekranas, atkreipti lenta ekrane, vienas, kad tikrina lenta pamatyti, ar ne ten nugalėtojas, vienas, kad suvokia per komandinę eilutę, tik padėti, vienas, kad skaito įvesties ir viena funkcija vadinama Minimax. Ir tai vienas mes labiausiai rūpi. Bet pažiūrėkime pradžių pagrindinis. Ką mes darome? Na, mes ketiname išanalizuoti mūsų komandų eilutę, tik skaityti ir pamatyti, kas dimensija lenta mes norėtume turėti. Mes inicijuoti mūsų lenta. Ir tada mes įvesti vieną didelis laukinis kilpa, pakartotinai priimti juda, kol žaidimas yra laimėjo, ar ten nėra juda į kairę. Kiekvieną kartą, mes einame per tą kilpa, mes išvalyti ekraną. Mes atkreipti lenta ekrane. Ir mes sąmoningai rūšiuoti atsiribotų tai toli kaip paprogrames, kad mes neturime nerimauti per daug apie tai, kaip jie įvyktų detales. Turėsite kodą vėliau šiandien. Ir jei norite ieškoti per ir sužinoti, jūs galite pamatyti juos visus. Bet mes atkreipti lenta ekrane. Ir tada mes patikrinti ir pamatyti, mes turime nugalėtoją? Ar kas nors laimėjo šį žaidimą? Jei jie, mes spausdinti iš pergalės pranešimą. Ir mes baigti žaidimą. Mes taip pat patikrinti ir pamatyti, jei yra kaklaraištis. Tai bus lengva pamatyti, jei yra kaklaraištis. Tai reiškia, kad visi tarpai yra pilnas, bet ten nebuvo nugalėtojas dar. Mes galime paskelbti kaklaraištį ir būti padaryta. Tada nekilnojamojo meat-- jei tai mašina grotuvas, mes leisti, kad Mašina grotuvas ieškoti naudojantis šia Minimax algoritmas, rasti geriausią žingsnį, kad jis gali. Ir tada mes įdėti, kad judėti aukštyn. Priešingu atveju, jei tai yra žmogaus grotuvas, mes skaityti kai iš žmogaus įvestį. Ir tada nesvarbu, ar tai žmogaus grotuvas ar mašina grotuvas, mes padarysime pora mažai bitai klaidų tikrinimas, įsitikinkite, kad jis lieka ribose faktinės matmenų lentos kad mes turime, įsitikinkite, kad erdvė yra tuščias, kad niekas anketa įdėti gabalas ten jau. Ir tada mes tiesiog įdėti gabalas ant lentos, pakeisti į kitą sluoksnį grotuvas, ir prieaugio, kiek juda nutikę. Štai pagrindinis kilpa Mūsų Kryžiukai-nuliukai žaidimas. Minimax, tada, yra būtent tai, algoritmas, kad mes iki šiol. Vienintelis reguliavimas, kad mes padarėme, kad mes galite žaisti didesnis matmenų lentos yra mes laikomi šį papildomą parametrą, vadinamą gylis. Ir gylis tiesiog sako, jei aš ieškoti žemyn per tą medį ir man taip toli žemyn po tam tikru lygiu gylio kad aš tiesiog nenoriu eiti toliau, Aš ruošiuosi sustoti ir tiesiog įvertinti lenta tame taške. Aš patikrinti ir pamatyti, jei yra nugalėtojas. Jei yra nugalėtojas, aš grąžinti juos. Priešingu atveju, aš eisiu per kilpą. Ir aš pasakysiu, visiems galimi vietos kad galėčiau galbūt imtis, kaip mano kelyje, aš sukurti hipotetinį lenta, kad apima mano pereiti tą laivą, ir tada rekursyviai ragina Minimax. Jei tai mano žingsnis, gaunu rasti vienas, kad gavo didžiausią balą. Jei tai mano priešininko ėjimo, randame vienas, kad gavo minimalų rezultatą. Ir visa kita yra tik apskaita. Visos teisės, todėl pažiūrėkime šį paleisti. Tiesą sakant, gal mes galime gauti iš savanorių pora ateiti ir žaisti Kryžiukai-nuliukai. [Nesigirdi] vienas, o vienas daugiau, du, teisę ten. Nagi iki. Taigi eikime į priekį ir iš naujo, tai visiškai. Taigi, labas. AUDITORIJA: Sveiki. Pranešėjas: Koks jūsų vardas? Auditorija: Gorav. Pranešėjas: Gorav. Auditorija: Aš Layla. Pranešėjas: Ir Layla ir Layla, atsiprašau. Nagi iki. Gorav, mes ketiname jums eiti pirmas. Ir aš ruošiuosi paprašyti jūsų būti ne siaubingai gera Kryžiukai-nuliukai grotuvas. Gerai, kad viskas slėgis yra ne dėl jūsų. Pažiūrėkime, nors, kad mūsų mašina žaidėjas iš tikrųjų galime padaryti kažką protingas. Taigi pirmyn. Jūs ketinate tipas, kuriame koordinuoti norėtumėte įdėti savo X. A0, Gerai, kad mašina nuėjo iš karto ir įdėti savo ženklą A1. Įdėkite O ant lentos. Gerai, dabar eiti į priekį. Kur norėtumėte eiti? C2. Mūsų mašina grotuvas ėmėsi viduryje aikštė, užblokavo. Taigi, kad buvo gera, protingas dalykas daryti. Jūs šoktelėjo. Štai puikus. Ji mano kampe. Ir jis ketina priversti jus imtis paskutinis erdvėje, B0. Ir žaidimas baigiasi lygiosiomis. Bet ji vaidino pagrįstai Žaidimas prieš jus, tiesa? Gerai, labai ačiū Gorav. [Plojimai] Gerai, Layla, mes ketiname iki ant jūsų žaidimo čia. Auditorija: O, puiku. Pranešėjas: Mes ketiname suteikti Jūs keturi keturi Kryžiukai-nuliukai. Dabar, keturių iš keturių, jūs turite laimėti su keturiais iš eilės, ne trys iš eilės. Ir visa tai tavo. Taigi Layla paėmė D1. Mes dabar ketina sekti Mūsų kompiuteris žaidėjas čia. Trys trys Kryžiukai-nuliukai yra natūra dalykas, kad yra lengva mums visiems. Tačiau jis vis dar malonu pamatyti kompiuteris žaidėjas priėmimo protingas juda. Keturi iš keturių patenka į būti šiek tiek sudėtingiau. Gražiai padaryta. Visos teisės, todėl Layla s pribaigė. Oh, ir mes turėjo baigėsi ten. Bet darykime vienas čia. Taigi Layla, ačiū. Gražiai padaryta. [Plojimai] Taigi, mūsų Kryžiukai-nuliukai grotuvas eina per ir nustato vietas, išsprendžia juos naudojant šį Minimax. Ir aš turėjau gylio nustatymas apie tai, kad jo nebūtų paleisti per greitai, kuri tikriausiai kodėl Layla galėjo eiti gražiai priekį kaip ji tai padarė ir padarė labai gerai. Tačiau šios sistemos, kad tik pereiti ir brutalia jėga gilintis, ir giliau ir giliau, ir nuolat ieškant sprendimą kad jiems reikia, tie sistemų rūšių yra gana sėkminga ne tai gerai, Standartiniai stalo žaidimai. Ir iš tiesų, jei mes pažvelgti į trys trys Kryžiukai-nuliukai žaidimą, tai iš esmės išspręsta problema. Ir tai yra nuostabu schema nuo Randall Munroe ne XKCD, rodantis, iš kurios juda jums reikia imtis, atsižvelgiant į savo priešininko ėjimus. Tai yra kažkas, kad mes galėtume lengvai nustatyti iš anksto. Bet kas atsitinka, kaip mes gauname daugiau sudėtingi žaidimai, daugiau sudėtingų žaidimų, ten, kur yra didesni lentos, daugiau galimybių, giliau strategija? Pasirodo, kad šis brutalia jėga ieško dar daro gana gerai, išskyrus kai jūs gaunate į tašką kur, kad medis yra toks didelis, kad jūs negalite atstovauti visa tai. Kai jūs negalite apskaičiuoti visą medį, kai jūs negalite eiti į priekį ir stumkite Būk iki taško, kur jūs Dotarłeś visą medį atmintyje, ar jūs galite gauti jį atmintyje ir tai tiesiog užtrukti kelias pernelyg ilgai ieškoti tai, ką jums reikia padaryti kažką protingesni. Siekiant tai padaryti, jums turi padaryti du dalykus. Pirma, jūs turite rasti kai būdas apriboti savo gylį. Na, tai viskas OK. Mes galime rasti šiek tiek gražus, minimumo ir pasakyti, jūs galite tik eiti taip giliai. Bet kai tai padarysite, tai reiškia, kad jus turėti šiuos iš dalies neišsamius lentos. Ir jūs turite pasirinkti, ar man patinka Tai iš dalies neišsami lenta, ar tai iš dalies neišsami diskusijų lentoje? Ir mūsų keturi keturių Kryžiukai-nuliukai žaidimas, Mūsų kompiuteris žaidėjas gavo žemyn į dugną ir sakoma, Aš turiu du skirtingus lentos. Nei vienas yra win. Nei vienas yra praradimas. Nei vienas yra kaklaraištis. Kaip man pasirinkti tarp jų? Ir tai nebuvo turime protingas būdas daryti. Mes matome šios rūšies vertinimo atsitikti visą laiką kaip mes į sudėtingesnių žaidimų. Šachmatai yra puikus pavyzdys. Be šachmatų, mes turime pirmiausia Visų, didesnis lenta. Mes turime kur kas daugiau vienetų. Ir šių vienetų pozicionavimo ir taip, kad šie kūriniai judėti yra labai svarbus. Taigi, jei aš noriu naudoti Minimax, Reikia, kad būtų galima nustatyti ir sakyti, kad tai lenta, kurioje niekas laimėjo ar pralaimėjo dar, kažkaip geriau nei tai kita lenta, kur niekas laimėjo ar pralaimėjo. Norėdami tai padaryti, galiu padaryti dalykų, pavyzdžiui, galiu tik suskaičiuoti, kiek vienetų turiu ir kiek vienetų turite? Arba galiu duoti skirtingus vnt skirtingų taškų. Mano karalienė yra verta 20 taškų. Jūsų pėstininkas verta vienas taškas. Kas turi daugiau taškų skaičių? Arba aš galėtų apsvarstyti dalykus, kaip, kas gavo geriau valdybos poziciją? Kieno eilė tai kitas, nieko, kad aš galiu do įvertinti tiksliau , kuri iš šių galimybių geriau be išsamiai svarsto kiekvieną žingsnį, kad galėtų ateiti po to. Dabar padaryti šį darbą, vienas iš dalykų, kad manimi ketina tapti tikrai svarbu mums yra ne tik juda tiesiai žemyn, kad tam tikroje gylio riba, bet kad galėtų pasakyti, viena iš šių idėjų, kad aš turime, yra taip blogai, kad tai nėra verta apsvarstyti visi iš galimų būdų kad viskas gali eiti iš vis blogiau ir blogiau. Norėdami tai padaryti, mes pridėsime į Minimax principas vadinamas ALPH beta. Ir alfa-beta sako, jei turite blogą idėją, nereikia gaišti laiko, bando tiksliai sužinoti, kaip blogai jis yra. Taigi štai ką mes ketiname daryti. Mes ketiname imtis pats principai, kad mes turėjome prieš, tas pats Minimax tipas Paieškos tik mes vyksta sekti ne tik iš faktiniai dydžiai, kad mes turime, bet mes sekti geriausias vertė, kad galėčiau gauti, ir blogiausia įmanoma rezultatas galėčiau turėti. Ir kiekvieną kartą, blogiausia įmanoma dalykas ieško tikėtina, Aš atsisakyti šio medžio dalis. Ir aš net vargintis žiūri į jį daugiau. Visos teisės, todėl įsivaizduokite, kad mes pradedame su ta pačia miesto žaidimų medį. Ir dabar mes ketiname eiti žemyn vėl visą kelią žemyn tai apatiniame kairiajame kampe. Ir tame apatiniame kairiajame kampe, mes atrodo ir mes įvertinti šį lenta. Gal tai keturių iki keturių Kryžiukai-nuliukai lenta, arba gal tai šachmatų lenta. Bet mes pažvelgti į jį, ir mes įvertinti tai ir mes gauname vertę iš aštuonių. Tuo metu, mes žinome, kad mes ketiname gauti bent aštuonis taškus iš šio apatinio sprendimą. Nesvarbu, ką kiti du, kad septyni, ir kad du. Jie gali būti bet koks vertės jie norėjo būti. Mes ketiname gauti ne Mažiausiai aštuoni taškai. Viskas gerai, bet mes galime eiti į priekį ir patikrinti. Gal vienas iš jų yra geresnis nei aštuonių. Mes pažvelgti į septynių. Ar tai geriau nei aštuonių? Ne, tai nekeičia Mūsų nuomonė ne visiems. Mes pažvelgti į dvi dalis. Ar tai geriau nei aštuonių? Ne, tai nekeičia Mūsų nuomonė ne visiems. Taigi dabar mes žinome, kad yra išnaudotos, visi ten galimybes. Mes neketiname gauti nieko geriau nei aštuonių. Mes ketiname gauti tiksliai aštuoni. Ir todėl mes pakeisti, kad mazgas ir tarkim, kad dabar yra tikrumas. Mes einame į aukštesnį lygį virš tai. Ir dabar mes žinome, ką apie tą mažinimo lygį. Mes žinome, kad mes niekada gauti daugiau nei aštuonis taškus, jei mes einame žemyn šia kryptimi. Nes net jei tie kiti du filialai pasirodyti būti fantastinis ir verta tūkstančiai kiekis kiekvienam, mūsų priešininkas duos mums Minimalus ir suteikia mums aštuoni. Gerai, gerai, pažiūrėkime. Mes nuolat vyksta šiuo keliu. Mes eiti į tą viduryje kairėje. Mes pažvelgti žemyn ir matome ten devyni. Mes žinome, kad mes ketiname gauti ne mažiau kaip devyniems taškus žemyn kad Middle Road. Ir šiuo metu, mes tiesiog galime pristabdyti. Ir mes galime pasakyti, atrodo, aš žinoti lygio pirmiau, Aš ruošiuosi gauti ne daugiau kaip aštuoni taškų žemyn šia kryptimi. Bet jei Aš nuėjau į vidurį Kelias vietoj kairiojo kelyje, Norėčiau gauti mažiausiai devyni taškai. Mano priešininkas niekada leiskite man eiti, kad vidurio kelią. Jie gauna pasirinkti. Ir jie ketina pasirinkti Kelias į kairę link aštuonių, o ne žemyn viduryje link kas bent devynis taškus. Taigi tuo metu, aš sustoti. Ir aš pasakysiu, jūs žinote, ką? Aš neturiu ieškoti bet daugiau žemyn ta kryptimi. Kadangi aš niekada ten patekti. Galiu praleisti per tą vieną, ir aš galiu praleisti, kad šeši, nes niekada nesiruošia atsitikti. Taigi aš eiti ir aš apsvarstyti kitą galimybę. Aš einu ten ir aš sakau, aš matau du. Aš žinau, jei aš galiu gauti čia, aš ketinate gauti bent du. GERAI. Aš nesustoti. Matau keturi. Aš žinau, aš ruošiuosi gauti bent keturi. Yra dar daug tarp keturių ir aštuonių, nors. Taigi aš nesustoti. Žiūriu ir matau, yra vienas. Gerai, aš žinau, jei Aš eiti šiuo keliu, Aš ruošiuosi būti suteikta galimybė pasirinkti iš keturių. Kas mano oponentas ketinate daryti? Tarp kažką, kad suteikia man aštuoni, kažkas, kad suteikia man keturis, ir kažkas, kad man suteikia ne mažiau kaip devynios, Na, jis ketina duoti man keturi. Ir dabar žinau, ne labai viršuje, aš ruošiuosi , kad būtų galima gauti mažiausiai Four Points iš šio žaidimo. Visa idėja alfa-beta yra išjungti dalys medį taip kad aš nežiūriu į juos daugiau. Tačiau ji vis dar atrodo, kad aš jau žiūri medžio daug. Leiskite nesustoti žemyn. Mes eiti į kitą dabar. Žemyn apačioje, aš rasti vieną. Aš žinau, aš ruošiuosi gauti bent vieną. Aš nuolat ieško. Aš rasti trys. Aš žinau, aš ruošiuosi gauti bent tris. Aš nesustoti. Aš rasti penki. Aš žinau, aš ruošiuosi gauti penki jei man tame kelyje. Ir aš taip pat žinau, tada kad mano oponentas, jei aš pasirinkti vidurį trys dideli pasirinkimas, jis ketina duoti man kažkas, kad yra penki arba mažiau. GERAI. Galiu nesustoti ten. Galiu žiūrėti žemyn ir aš galiu pasakyti, ką aš ketinu gauti, jei aš einu žemyn Middle Path? Aš ruošiuosi gauti, gerai, trys ten. Aš ruošiuosi gauti kažką tai bent tris. Yra dar viskas tarp trijų ir penkių, todėl aš nuolat ieško. Oi, devynių, aš tikrai imtis, kad per trijų. Aš ruošiuosi gauti ne mažiau kaip devyniems jei aš eiti šiuo keliu didžiuoju. Dabar mano oponentas sustoja ir sako: atrodo, ten jokios prasmės nebėra. Aš žinau, kad mano mažinančius priešininkas, jis ketina duoti man dalykas, kad mažesnis arba lygus iki penkių, o ne dalykas, kad didesnis negu arba lygus iki devynių. Aš sustoti. Aš nežiūriu, bet daugiau tuo. Aš nesustoti. Aš žiūri šį vieną. Žemyn į apačią, aš rasti šeši. Aš žinau, aš ruošiuosi gauti bent šeši. Ir ką aš galiu padaryti? Galiu sustoti. Nes ten tarp pasirinkimas kažkas, kad yra bent šeši ir kažkas, kad yra mažiau kaip penki, jis ketina duoti man dalykas tai mažiau nei penki. Ir dabar aš žinau, aš ruošiuosi gauti tiksliai, kad pasirinkimas. Aš ruošiuosi gauti, kad penki pasirinkimas. Aš einu atgal į viršų į viršų. Kuris I am going rinktis kažką tai yra didesnis nei ar lygus keturių, ar kažkas tai yra penkis? Aš ruošiuosi imtis ko nors tai bent penki. Aš eiti paskutinį kelią, visi būdas, į apačią. Yra vienas. Gerai, bent jau aš ruošiuosi gauti vieną tašką. Aš nesustoti. Du, oh, tai geriau nei viena. Aš ruošiuosi gauti bent du. Aš rasti trys. Aš žinau, aš ruošiuosi gauti trijų. Ir anksčiau, kad taškas, mano oponentas vyksta duoti man kažką, kad mažiau nei arba lygus trijų. Ir dabar galiu sustoti. Kadangi tarp manęs pasirinkimas yra galės gauti penkis ir mano oponentas duoti man kažką mažiau kaip trys, Aš visada ketina imtis, kad penki. Taigi nemanau, kad įvertinti apatinė dalis nuo medžio, ne visi. Dabar tai gali atrodyti nereikšmingi. Bet kai mažai bitai aritmetika, didesnis nei ir mažiau nei, gali nukapoti visą dalys tai eksponentiškai augantis medis, kuris veda į didžiulį energijos kiekį, santaupų kad yra pakankamai didelis, kad aš gali pradėti žaisti konkurencingomis ne daugiau sudėtingų žaidimų. Gerai, jei pažvelgsime dydžio ir sudėtingumas įvairių žaidimų, Kryžiukai-nuliukai buvo mūsų lengva pavyzdys. Mes turime mažą lenta, trys iš trijų. Mes gauname ne daugiau, o tai yra vidutiniškai apie keturis skirtingus pasirinkimus kaip mes einame per žaidimą. Mes turime kažkur apie 10 į penkta galimi skirtingi lapai. Ir stato Kryžiukai-nuliukai žaidėjas, gerai, mes tiesiog padarė. Tai lengva. Jei mes einame į kažką daugiau sudėtinga, kaip Connect Four. Ar pamenate šį žaidimą, kur lašas mažai žetonų? Tai šeši septyni lenta, ne tai, kad daug didesnis, dar turi apie tą patį šakojasi veiksnys Kryžiukai-nuliukai. Turiu apie keturis pasirinkimus kur galiu įdėti dalykų. Bet dabar, aš turiu daug daugiau veda, nuo 10 iki 21 galios. Štai kažkas, kad lengva pakankamai, kad mes ją išspręsti iš karto. Šaškės daugiau complex-- jus gavo aštuoni aštuoni lentos. Jūs esate tik pusė juos bet kuriuo metu, nors. Jūs turite labai šakojasi veiksnys, kuris yra apie 2,8. Na, mes turime pora juda galite imtis. Jūs turite 10 iki 31 lapų, didesni ir didesni ir didesni tarpai. Kaip aš turiu ieškoti tie didesni ir didesni tarpai, tai, kai tokie dalykai kaip alfa-beta ir kad galėtų nukapoti visas šakas tampa labai svarbus. Dabar, šaškės buvo gana paprasta 1992. Kompiuterio programa vadinama Chinook "įveikė pasaulio šaškės čempionas, Marion Tinsley. Ir nuo tada, ne žmogaus meistras žaidėjas turi galėjo įveikti geriausias skaičiavimo sistemos. Jei pažvelgsime į kažką panašaus šachmatų, dabar vėl turime aštuoni aštuoni lentos. Bet mes turime daug sudėtingesnė vienetų, daug daugiau sudėtingų judesių. Mes turime šakojasi faktorių maždaug nuo 35, 35 galimi juda vidutiniškai kad galiu imtis, ir valstybę erdvės, lapų skaičius kad manimi išaugo iki 10 į 123rd galia, milžiniškas numeriai galimybes. Net Vis dėlto, šiuolaikiniai procesoriai galėtų tai padaryti sėkmingai. 1995 ir 1997 m, o po kompiuterio programa, vadinama "Deep Blue" pastatytas IBM kad gavo perdavima iš gilumos milžinišką superkompiuteris įveikti dabartinę pasaulio čempionas, Garis Kasparovas. Tai buvo lūžis. Šiandien, nors, kad tos pačios perdirbimo vairo sėdi ant mano MacBook. Apdorojimo greitis saugo vis greičiau ir greičiau. Mes galime įvertinti vis daugiau ir daugiau lentos greitesnė ir greitesnė. Bet dar svarbiau, mes turime geriau vertinimo funkcijas ir geriau genėjimas metodai. Taigi, mes galime ieškoti vietos daugiau kompleksiškai. Didžiausias valdybos žaidimus, mes galime galvoti, kažkas panašaus Eik tai gavo 19 19 lenta, dabar staiga, mes pro tašką kur skaičiavimo sistemos gali laimėti. Nėra skaičiavimo sistema ten kad pabūti profesionalų Eiti grotuvas. Geriausias sistemos šiandien rangas ją apie geros mėgėjų lygio rūšiuoti. Taigi dar yra gana šiek tiek iš ten, kad jūs negalite gauti dar. Gerai, tai tradicinių stalo žaidimai, Šios sistemos rūšių, kur mes statyti Minimax, ar jis gavo alfa-beta, ar ne, šie algoritmai dirbti nes yra tam tikri apribojimai. Mes turime puikią informacija apie pasaulį. Mes žinome, kur visi gabalai yra. Pasaulyje yra statiška. Niekas gauna perkelti vienetų aplink, o aš sėdi ten galvoti, atsižvelgiant mano eilė. Yra veiksmų erdvę, kuri yra diskretus. Aš galiu įdėti mano pėstininką čia ar aš galiu įdėti mano pėstininką čia. Aš nesu leidžiama įdėti savo pėstininką į tarp dviejų kvadratų linija. Ir, pagaliau, veiksmai yra deterministinis. Žinau, kad jei aš sakau, Lada su riterio trijų, mano Lada ketina baigti ne riteris trys, kaip ilgai, kaip tai galioja žingsnis. Nėra apie tai neapibrėžtumas. Dabar, kaip aš einu į daugiau skirtingų rūšių žaidimai, turime sulaužyti šias prielaidas. Ką daryti, jei aš einu į kažką kaip klasikinių vaizdo žaidimų? Štai vaizdo pasirinkimas žaidimai iš Atari 2600. Ką turiu ten? Aš turiu Frogger, erdvė Užpuolikai, Pitfall ir Pac-Man. Kokie aplinkoje turiu čia dabar? Kuris iš šių prielaidų turiu pertrauka? Na, tai priklauso nuo žaidimo. Galėčiau žaisti šachmatais ant 2600, ir jis būtų kaip buvo anksčiau. Daugumai šių sistemų, yra išsamią informaciją apie pasaulį. Yra visiškai deterministiniai veiksmai. Tačiau paprastai, pasaulyje nebėra statiška. Tai yra, o aš sėdžiu čia laukia, kažkas juda. Vaiduokliai ateina į mane. Scorpionas manęs apačioje. Į Space Invaders yra ateina arčiau ir arčiau. Kaip gerai mes galime padaryti prieš tai? Prieš keletą metų, "Google" buvo projektas, vadinamas DeepMind, kur jie mokomi kompiuterį Programa žaisti Atari 2600 žaidimų. Ir jei manote, kad tai nėra rimta Verslo, jų tyrimo rezultatai buvo paskelbti gamtos, todėl tik apie taip gerai leidinį kaip jūs galite galbūt gauti. Ir čia, kaip gerai jie atlieka. Jie turi algoritmą, kuris sėdėdavo ir stebėjo tik ekrano įėjimai. Jis gavo nurodymų kokia apie žaidimo taisykles. Ir ji turėjo išsiaiškinti, remiantis savo rezultatą, kaip gerai ji daro. Tai buvo sistema, kuri naudojama kažką vadinamas armavimas mokymąsi. Tai yra, jis pažvelgė į savo rezultatą. Ir jei jis gavo gerą rezultatą, ji sakė, Turėčiau prisiminti tuos dalykus. Ir turėčiau daryti tiems dar kartą. Ir jei jis gavo blogą balą, jis sakė, Aš neturėtų daryti tuos dalykus dar kartą. Tai spektaklis tų apmokyti sistemos leidžiama žaisti dėl kelias valandas kiekvieną žaidimą, palyginti su profesionalių žaidėjų. Taigi, pagal visus žaidimus, kurie yra į kairę pusę šio linija, tai savaime mokomi kompiuterio programa aplenkė profesionalių žaidėjų. Ir viskas į teise, profesinės žaidėjai vis dar buvo geriausias. Už tai, kad žinojo, nieko apie taisyklių, kad nieko apie statinio žinojo žaidimai, tai įspūdingas spektaklis. Ir tai, ką mes galime padaryti šiandien. Gerai, jūs sakote, bet jei mes galvoti apie AI žaidimai, Paprastai mes galvojame apie dalykų, kad mes galime iš tikrųjų susėsti ir žaisti prieš. Jei aš susėsti ir groju StarCraft, arba aš žaisti nemokamai sietą kompiuteris priešininkas yra asmuo kontroliuoti Zerg, ar kontroliuoti kitą civilizaciją. Kaip tie žaidėjai iš tikrųjų rasti savo juda? Na, šie žaidimai yra struktūrizuotas daug tokiu pačiu būdu, kaip mūsų stalo žaidimai, Šie žaidimai, kad mes kolektyviai skambinti keturis X Games, tyrinėti, expand-- pamiršti tuos. Kas jie tokie? Naršyti, plėsti ir užgesinti, Manau, tai paskutinis. Tačiau jie iš esmės žvalgymo ir užkariauti žaidimai. Paprastai kompiuteris priešininkas ten turi ribotą informaciją. Jie nežino, ką tai vyksta už tą karo rūką. Jie negauna pamatyti, kas turite savo inventoriuje. Yra aplinka, kuri yra dinamiškas. Viskas keičiasi visą laiką. Jūs negaunate sėdėti ir laukti, kad imtis savo žingsnį. Tačiau dauguma dalykų vis dar yra diskretus. Turiu įdėti mano miestas čia. Arba aš turiu įdėti mano miestas čia. Ir viskas yra deterministinis. Kai aš sakau, perkelti savo padalinį čia mano vienetą juda čia, jei kliūtį staiga ateina į žaidimą. Dabar, tai dar ne viskas kompiuteris Žaidimai, kurie yra ten šiandien. Jei aš einu ir aš žaisti pirmojo asmens tipas žaidimas, kažkas panašaus vagis ar Fallout arba Skyrim, arba halogenas, dabar Turiu kompiuterių priešininkus kad yra ten, kad turi labai kitokia situacija. Jie turi, vėlgi, ribotą informaciją. Tik jie gali pamatyti tam tikras laukas. Aplinka vis dar dinamiškas. Viskas keičiasi visą laiką. Bet dabar aš turiu daug daugiau nuolatinis veiksmas vietos. Galiu būti tiesiog peeking šiek tiek iš tarpduryje. Ir kai kurie žaidimai, mano veiksmai yra stochastinis. Man pabandyti šokinėti per tą sieną, bet aš turiu nepasiekti galimybę. Šie žaidimai tipai artėja ir arčiau kontrolieriams rūšių kad mes statyti robotų. Be robotų, mes turime prisiimti kad mes turime ribotą informaciją. Mes turime jutiklius, kurie papasakoti apie visame pasaulyje. Mes turime visada keičiasi, dinamiška aplinka. Mes turime pasaulį, kuriame vietos yra nuolatinis, o ne diskretus. Ir mūsų veiksmai, kai mes bandome jiems, turite nesugeba galimybę. Ir iš tiesų, modernus žaidimas valdikliai savo Halo priešininkas, arba tiems NPC Skyrim, iš esmės paleisti mažų robotų architektūras. Jie jaučia pasaulį. Jie pastatyti pasaulio modelį. Jie apskaičiuoti paremtas rinkinio tikslai, jie norėtų pasiekti. Jie planuoja veiksmus, pagrįstus apie tai, ką jie žino. Ir tie yra lygiai tokio paties rūšių sistemų, kad mes statyti robotų. Todėl šie architektūros, į pareikšti šį atgal kartu, dažnai yra gana ta pati. Taigi pažiūrėkime, jei matome, kad. Grįžkime prie mūsų Kryžiukai-nuliukai pavyzdys. Ir aš ruošiuosi užduoti porą Mano Post-docs sugalvoti ir man padėti. Taigi Chen Ming, Alessandro, ir Olivier, jei jus vaikinai būtų sugalvoti. Ir aš ruošiuosi reikia savanorių pora Gerai, aš pamačiau ranką teisę ten per vidurį. Leiskite dar vienas, kažkas toliau gale gal. Gerai, ten. Nagi iki. Gerai. Taigi galime imtis, kad dangtelį žemyn. Ir jei jus vaikinai ateis teisę atgal aplink čia man, fantastinis. Taigi tai yra robotas vadinamas "Baxter". Ir Baxter yra robotas, kuris šiek komercinės platforma, skirta kompanijos, pavadintos permąstyti. Ir tai robotas yra suprojektuotas nedidelio masto gamyba. Tačiau šiandien mes ketiname naudoti jį žaisti Kryžiukai-nuliukai. Dabar, tai robotas taip pat yra kažkas tai gana unikalus. Nes jei aš stovėjo visur Uždaryti standartiniu gamyklos automatizavimo sistema, aš būčiau labai sunkius Pavojus susižeisti. Baxter, tačiau, yra skirta būti gana saugus bendrauti su. Ir todėl aš gali stumti ant šio roboto. Ir jūs galite matyti šiek tiek tiek lankstus, kaip jis juda aplink. Ir aš galiu perkelti ją kur aš norėčiau, kad ji eiti. Dabar normalus robotų sistemos, mes turime sąnarių rinkinį čia kad būtų tiesiogiai reaguoti į padėtį komandas. Ir jie nebūtinai priežiūra jei jie buvo perkelti per atviru dangumi, arba jei jie buvo perkelti per mano krūtinės ląsta. GERAI. Ir paprastai, jei buvo čia su pramonės sistemos, eitum niekur šalia jo. Būtų geltona saugos juosta visi aplink jį. Ši sistema turi šiek tiek kitoks dizainas būti draugiškesni ir lengviau kad žmonės galėtų bendrauti su, tuo, kad kiekvienu sąnario, ten spyruoklė. Ir užuot kontroliuoti tiksli vieta, mes kontroliuoti tam tikrą kiekį sukimo momentas, tam tikra jėga, kad mes norėtume būti, kad pavasaris. Visos teisės, todėl leiskite man atsižvelgti į mūsų savanorius čia. Labas, koks tavo vardas? Auditorija: Luisas. Pranešėjas: Louis. Malonu tave matyti. Ir? Auditorija: Davidas. Pranešėjas: David. Malonu susipažinti. Jei vaikinai laukdavo čia sekundę, Aš norėčiau duoti jums galimybė tai padaryti. Taigi, tai robotas, jei sugalvoti o jei švelniai pastumkite jį, jūs ketinate pamatyti, kad jis juda šiek tiek. Ir jei jūs patraukti jį į dešinę čia ant riešo tiesiog aukščiau, kai šie mygtukai yra, tai atrodo, kad jūs turėtų patraukti mygtukus, bet patraukti tiesiai virš jo vietoj, jums būtų galima labai švelniai manipuliuoti per erdvę. Louis norite suteikti jai pabandyti? Taigi duoti jį tik šiek tiek stumti pradėti. Ir tada, jei jūs įdėti savo pirštus teisę ten ir palaikykite ant jai, nes jis pereis jums tada. Gerai, jūs norite suteikti jai pabandyti? Nagi iki. Taigi duoti tik švelnus stumti ten pradėti. Jūs galite pajusti, ką tai reiškia. Ir tada, jei jūs patraukti jį tiesiai ten, Galėsite manevruoti ne aplink. GERAI. Taigi, paprastai, šis roboto rūšies būtų būti naudojama mažo masto gamyba. Ir aš ruošiuosi perkelti šį rankos tiesiog žemyn iš kelio šiek tiek čia. Tačiau šiandien, mes ketiname naudoti pats Kryžiukai-nuliukai žaisti sistema remiantis Minimax, kad mes pastatyta anksčiau. GERAI? Taigi, vaikinai, kiekvienas žaisti žaidimą. Luisas, jūs ketinate būti pirmas. Leiskite man tiesiog laikykite čia sekundę. Aš ruošiuosi jūs stovite teisė čia tiesiog taip kiekvienas gali pamatyti. Ar jus vaikinai įsteigė čia? ROBOT: Sveiki. Pažaiskime Kryžiukai-nuliukai. Negalima suvokti savo raktą prieš Aš sakau, kad tai jūsų eilė. Aš pradėti žaidimą. Tai mano eilė. Pranešėjas: Dabar, jei galėtumėte imtis vieno iš Jūsų kūriniai ir eiti į priekį ir padėkite jį. ROBOT: Tai savo ruožtu. [Juokas] Tai mano eilė. [Juokas] [Juokas] Tai savo ruožtu. Pranešėjas: Žmogiškoji rasė yra tikimės, kad jūs čia Louis. ROBOT: Tai yra mano eilė. Pranešėjas: Taigi Baxter sėkmingai blokavo čia. ROBOT: Tai savo ruožtu. Tai mano eilė. Tai savo ruožtu. Tai mano eilė. Pranešėjas: Ir mes galime Baxter baigti atlikti savo paskutinį žingsnį čia. [Juokas] ROBOT: Štai kaklaraištis. Aš laimės kitą kartą. [Juokas] Pranešėjas: Viskas teisingai, Labai ačiū, Louis. Ačiū. Jūs galite eiti šiuo keliu. ROBOT: aš pradėti žaidimą. Pranešėjas: Taigi leiskite man paaiškinti Jums dar viena mažai tiek, kol mes gauti mūsų rematch čia. Ką tiksliai vyksta? Taigi robotas turi fotoaparato iki viršaus čia. Ir tai žiūri lentos. Ir tai matyti, ar jis gavo raudoną O arba mėlyna ir balta X. Kaip tie atsidurs ant lenta, tai iš esmės tas pats įėjimas kad mes skaityti iš Mūsų duomenų struktūra iš mūsų ekrane. Jis veikia tuo pačiu Minimax algoritmas galėtų rasti kur įdėti gerą raktą. Ir tada mes teikiame komandą apie kur mes norėtume žetoną turi būti. Rankos juda iš. Tai, naudojant vakuuminį griebtuvas taikyti kai siurbimo to medinio gabalas, jį pasiimti, perkelkite jį į dešinę vietoje, ir tada atleiskite siurbimą ir upuść jį. Gerai, mes ketiname suteikti jai dar vieną smūgį su šiek tiek protingesni grotuvas čia. Jūs pasiruošę? Gerai, jei norite išsiskirti teisę iki čia ir duoti a-- pasirodyti šį kelią todėl jūs galite pamatyti visiems. Ir tada [nesigirdi]. ROBOT: Tai yra mano eilė. Pranešėjas: Baxter bus pradėti. Tai savo ruožtu. Tai mano eilė. Tai savo ruožtu. Tai mano eilė. [Juokas] Pranešėjas: [WHISPERING] Tiesiog leiskite jam eiti į priekį ir laimėti. ROBOT: Tai savo ruožtu. Pranešėjas: Tai gerai. ROBOT: Tai yra mano eilė. [Juokas] Aš laimiu. [Juokas] Aš pradėti žaidimą. Pranešėjas: Gerai, labai ačiū. Gerai, manau, mes turime laiko dar vienas puikus Kryžiukai-nuliukai grotuvas, kažkas, kas gali įdėti šį dalyką nesutampa, kas žino, ką jie daro. [Juokas] Kas tai bus mūsų čempionas čia? Gerai, jūsų draugai savanoriškai jums. Štai pakankamai gera man. Vėl Pasakyk man savo vardą. Auditorija: Tamir. Pranešėjas: Tamir, malonu tave matyti. Visos teisės vėlgi mes ketiname padėti jums teisę iki čia, kad kiekvienas gali pamatyti. Jūs esate mūsų atstovas Šios rungtynės dabar. "Baxter" yra vienas ir oh ir oh. Arba Atsiprašome, vienas oh ir viena. Ir tai iki jums čia. Baxter gausite pereiti pirma, nors. So. ROBOT: Tai yra mano eilė. [Juokas] Tai savo ruožtu. Tai mano eilė. Tai savo ruožtu. Tai mano eilė. Tai savo ruožtu. [Juokas] ROBOT: Tai yra mano eilė. Pranešėjas: Tai daug sunkiau, kai jūs atsistojus čia žmonės. [Juokas] ROBOT: Jūs žmonės yra taip lengva įveikti. [Juoko ir aplodismentų] Pranešėjas: Ačiū labai. ROBOT: aš laimėti. Aš pradėti žaidimą. Pranešėjas: viskas gerai, todėl dėka labai daug Olivier ir Alessandro, ir Chen Ming. [Plojimai] Aš noriu, kad vieną paskutinį tašką. Taigi Baxter Pačioje nesibaigia, apgauti. Ir tai buvo netikėta. Vienas iš fantastiška dalykų apie AI, kad mes padaryti darbą AI, kad mes galime sukurti tikrai įdomus ir protingas įrenginiai. Bet mes taip pat padaryti darbą AI nes ji pasako kažką apie tai, kaip žmonės yra protingi. Vienas iš mėgstamiausių tyrimai iš mano laboratorijoje yra žiūri, kas atsitinka, kai mašinos netikėtai apgauti. Mes tai padarėme iš pradžių ne Baxter žaisti Kryžiukai-nuliukai, tik su mažesniu robotas pavadintas Nao, kuris grojo roko popieriaus žirklės. Ir kartais po žaisti daug ir daug nenuobodūs roko popieriaus žirklės žaidimai, robotas mesdavo gestas, prarasti ir tada staiga pakeisti jos gestas ir pasakyti, aš laimėti. [Juokas] Dabar, kartais mes norime taip pat turi robotą, tik kaip kontrolės, mesti gestas, laimėti ir pakeisti savo gestas prarasti, mesti varžybas, apgauti, siekiant prarasti. Ir tai toli gražu ne taip įtikinama. Robotas, kad kodai siekiant laimėti žmones reaguoti į kaip, jei jis yra iš jų gauti, kaip ji aktyviai ieško jų sunaikinimą. [Juokas] Ji tampa agentu. Tai tarsi asmeniui. Jis turi tikėjimą ir ketinimą. Ir tai nėra geras ketinimas. Ir robotas, kuris metimų Žaidimas yra tik blogai. Tai tiesiog neveikia įrenginys. Leiskite man parodyti jums keletą pavyzdžių iš, kad nuo iš mūsų dalyvių kelias. Taigi čia oszukiwanie siekiant numesti. [Vaizdo įrašų atkūrimas] - [Nesigirdi] laimėti. Leiskite žaisti. -Palauk, ką? - [Nesigirdi] laimėti. Leiskite žaisti. [Nesigirdi] laimėti. Leiskite žaisti. Pranešėjas: O čia oszukiwanie laimėti. -Yes, Aš laimėti. Leiskite žaisti. -Tu Negali padaryti. [Juokas] -Yes, Aš laimėti. -Jūs Apgauti. Jūs apgauti dabar. -Yes, Aš laimėti. -hey, Jums apgavikas. Jūs apgauti, super apgauti. [PABAIGA PLAYBACK] Pranešėjas: šių skirtingų reakcijos sparčiai pakeisti mūsų suvokimą prietaiso. Ar tai reiškia, kad mes sąmoningai kurti mašinos, apgauti, nes tai geriausias inžinerijos, kad mes galime padaryti? Ne, bet jis pasako kažką tikrai įdomu apie žmones. Tai dalykas, kad apgaudinėja jus ir pavogs jūsų pergalė, tai kažkas, kad yra gyvas, tai animuoti, tai iš gauti jums. Jis turi psichikos būklę. Jis turi tikėjimą. Jis turi ketinimą. Tai dalykas, kuris rankose Žaidimas jums, kad ne. Tai tiesiog blogai. Tai daugeliu atžvilgių, kodėl tai lengva mesti žaidimą su vaikais. Bet jei jūs bandote apgauti juos ir tarsi pergalę kai, žinote, tiesiog sutrumpinti Žaidimas, jie sugauti jums iš karto. Šie poveikio rūšių, kad matome išeina iš AI, jie moko mus apie save daug. Gerai, kad viskas šiandien. Labai ačiū Dovydui ir Harvardo gamybos komanda už leistis. [Plojimai] Pamatysime, jums viktorina vieną, ir tada vieną paskutinio paskaita. Geros dienos. [Plojimai] [Muzikos grojimo] DAVID J Malan: Na, mes tikriausiai reikia pristatyti tam tikros rūšies šifravimo, tiesa? Nes tada antraštes Šie HTTP užklausas bus plakta taip, kad kiekvienas bando apuostyti savo srautą nebus iš tikrųjų galėtų juos matyti. Taigi, kas yra šios problemos sprendimas? Na, mes turime iš tikrųjų pristatyti šifravimo į formulę, taip, kad kai tas asmuo yra perduoti duomenis iš A į B, mes galime saugiai send-- [Juokas] Informacija tokiu būdu, kad Priešininkas negali, tiesą sakant, jį pamatyti.