[Musiikkia] SPEAKER: Tervetuloa takaisin, kaikille. Tämä on CS50. Ja tänään, meillä on paljon mielenkiintoisia asioita puhua. Ensinnäkin, vaikka, minun on muistutettava sinulle muutamia hallinnollisen asioita. Tällä viikolla on tietokilpailu yksi keskiviikkona tai Yale jakso tiistaisin ja torstaisin, torstaina. On tietokilpailu arvosteluja tänään Yalen, 5:30-07:00. Harvardin, he nauhoittivat yksi eilen. Ja jokainen voi katsella että verkossa. Myös tällä viikolla tai ensi viikon alussa, meillä on viime CS50 luento. [Huokaukset] Tiedän. Se tuli näin pian. Yalen opiskelijat on live luento tässä laissa koulussa auditorio perjantaina. Tulee kakku. Harvardin opiskelijalla on viimeinen luento Sanders maanantaina. Mukana on myös kakku. Myös tällä viikolla perjantaina, niille teistä, jotka tulevat New Haven, meillä CS50 Expo. Meillä on yli 30 eri rekisteröity näyttämään kaiken riippumattomiin purjeveneet, järjestelmiin, jotka tunnistavat digitaalinen muotokuvia, tietokoneeseen musiikki ja tietokone tuotettua musiikkia. Joten voit liittyä meihin. Minusta se tulee olemaan hauskaa. Tänään kuitenkin saamme jatkaa puhumme AI, noin tekoäly. Ja yksi niistä asioista, jotka aiomme päästä tänään on ajatus siitä, miten käyttää AI ratkaista ongelmia. Nyt, kuten aina, aloitetaan jotain yksinkertaista. Ja aiomme aloittaa yksinkertainen idea. Ja se on käyttämällä hakua. Joten kuvitella hetken, että olen on tehtävä, että minun täytyy tehdä. Ja haluaisin olla, että tehtävä automatisoida joitakin ohjelmia agentti. Kuvittele, että olen yrittänyt varata joukko Lentojen, sanokaamme, Boston San Francisco. Voisin mennä läpi ja voisin käyttää yksi ihana online-haku työkalut, joka tulee tekemään pohjimmiltaan sama prosessi, että olemme aikoo kävellä läpi tänään. Mutta jos sinulla ei ole, että työkalu, mitä tekisit? No, voisit katsoa ja nähdä ja sanoa, olen Bostonissa. Mitä lennot ovat käytettävissä? Nyt, ehkä minulla on kolme mahdollinen lennot ulos Boston joka sopii aika kun minun täytyy lähteä. Voisin lentää Chicagoon. Tai voisin lentää Miamiin. Tai voisin lentää New Yorkiin. Voisin sitten katsoa jokaisesta yksi niistä kohdekaupunkien ja miettiä, mitä paikkoja Voisin ehkä päästä kunkin näistä yksittäisten kaupunkien. Joten ehkä Chicagosta, saan suora lento San Francisco. Se on erinomainen. Tai saisin lento Denver. Nyt, ehkä se lento San Francisco on täydellinen ratkaisu minulle, mutta ehkä ei. Ehkä Etsin jotain että on hieman halvempi tai hieman paremmin minun aikatauluni. Ja niin voisin katsoa mitä muut mahdollisuuksista saattaa olla siellä. Niin voisin katsoa Denver. Ja Denver, hyvin, ehkä Saan lento Austin. Ja Austin, ehkä saan lento Phoenix, ja Phoenix San Francisco. Nyt, en ole tehnyt vielä. Koska ehkä siellä suora lento New Yorkista San Francisco, joka on täydellinen minulle. Tai ehkä siellä lennon välillä Miami kautta Denver se on paljon halvempaa. Joten minulla on vielä mennä. Ja minulla on vielä tarkasteltava kaikkia näitä kaupungit että en ole tutkittu vielä. Minun on tyhjentävästi tarkistaa kaikki mahdollisuuksia että saisin. Joten New York, ehkä saan lento Nashville, ja Nashville Austin. Ja sitten tiedän, missä olen. Ja sitten tiedän Austin, voin lentää Phoenix, ja Phoenix San Francisco. Jos Lennän ensin Miami, vaikka, Ehkä saan lennon välillä Miami Nashville, tai Miami Austin. Ja nyt olen yrittänyt kaikki mahdollisuuksia. Olen rakentanut tämän kuvaaja, joka näyttää minulle kaikki mahdolliset reitit että voisin ottaa. Kun me edustamme näitä erilaisia ​​ongelmia, emme aio edustamaan nimenomaisesti mukaan tätä kuvaajaa, koska kuvaaja ei edusta historian missä olemme menneet. Tietäen, että lensin Phoenix San Francisco ei kerro minulle, tulin kautta Nashville, tai kautta Denver, kautta tai Miami. Joten mitä teen sen sijaan on Otan tämän saman ongelman, ja minä edustaa sitä kuin puu. Ja juureen puu, on top, laitan paikka, että aloitin, Boston. Ja Boston, minä katson kaikki mahdolliset paikat että voin matkustaa. No, tässä tapauksessa, minulla oli kolme, Chicago, New Yorkissa, ja Miami. Ja sitten minä tutkia jokaisen nämä lapset puussa. Chicago, olen nähnyt että minulla oli kaksi lentoa. Voisin lentää suoraan San Francisco tai Denver. Nyt San Francisco, se on minun tavoite. Se on minun määränpää. Se tulee olemaan lehtiä tämän puun. Eli en aio koskaan mennä jonnekin jälkeen San Francisco. Denver, vaikka, Voin lentää Denver Austin, Austin Phoenix, ja Phoenix San Francisco. Ja nyt taas, olen saavuttanut lehtiä. Voisin palaa seuraavaan kaupunki, joka en ole täysin tutkittu. Se olisi New York, mennä takaisin ylös minun puu, tulla alas New Yorkiin. New York, voin lentää Nashville, Nashville Austin, Austin Phoenix, ja Phoenix-San Francisco. Ja lopuksi, yksi kaupunki I ole katsonut vielä, Miami. No, Miamista sanoin minulla oli kaksi mahdollisuuksia, Nashville tai Austin. Jos Lennän Nashville, hyvin sitten lennän Nashville, Austin, Phoenix, San Francisco. Jos Lennän Austin, lennän Austin, Phoenix, San Francisco. Ja nyt minulla on puu. Se on täydellinen puu. Se on kaikki mahdollisuudet ja kaikki polut että voisin ottaa. Eli jos minä alkavat puun juuri yläreunassa ja menen alas yksi lehdet, se kertoo minulle ei vain minne olen menossa päätyvät, San Francisco, mutta se kertoo minulle reitti, joka Minun täytyy ottaa sinne. Nyt, mikä näistä on paras? No, ei mitään tästä ongelma vielä kertoo minulle mikä näistä on paras ratkaisu. Ehkä välitän eniten kuinka paljon aikaa olen ilmassa, tai etäisyys, että lennän. Siinä tapauksessa, Chicago San Francisco voisi olla lyhin määrä mailia ilmassa. Ehkä välitän kustannuksia. Ja me kaikki tiedämme suorat lennot ovat yleensä kalliimpia. Joten ehkä jos otan tämän eräänlainen taaksepäin reitti kautta Miami, Nashville, Austin, Phoenix, ehkä sitten Saan halvemmalla. Mutta voisin optimoida tahansa kriteerit, jotka välitän. Kenellä paras lento Wi-Fi, tai jotka lentoasemilla on parasta ruokaa saatavilla. Ja jokainen näistä ehkä anna minulle toinen ratkaisu että näen olevan paras. Tällaisia ​​ongelmia, minne olemme menossa rakentaa tämä puu mahdollisuuksia, ja sitten näyttää jokaisen näistä yksittäisiä polkuja, ja tutkia joka näistä täytä kriteerit meille, aiomme soittaa nämä haku ongelmia. Ja meillä on paljon algoritmit, joista osa olemme nähneet jo, mennä ja tutkia näitä puita. Voisimme tehdä sen tavalla, jota en vain teki, syvyys-ensimmäinen haku, menee alas kuin voimme, kunnes me osuma lehtiä, ja sitten tulee takaisin ylös, ja menee takaisin alas. Tai voimme tehdä mitä nimeltään leveys-ensin hakua. Voisimme laajentaa kaiken huipulla, ja sitten kaikki yksi rivi alla, että ja sitten kaikki yhden rivin alla että. Ne hakupuita ovat olennaisia ​​AI. Mutta ne eivät aivan saada se koko ajan oikeassa. Itse asiassa paljon tapauksia että me välitä, haluamme rakentaa puu, mutta emme oikeastaan saada tehdä kaikki päätökset. Näitä tilanteita kutsutaan kontradiktorisen haku, joka tunnetaan myös nimellä kuten miten kirjoittaa pelin pelaaminen järjestelmät ja saat maksaa sen. Mutta nämä ovat erilaisia Järjestelmien jossa I saattaa saada valita, milloin menen Boston, mikä kaupunki menen seuraavaksi. Mutta sen jälkeen, joku muu voi saada tehdä päätöksen siitä, missä minä lentää. Joten rakentaa nämä erilaisia ​​rakenteita, olemme täytyy ottaa hieman erilainen lähestymistapa sen. Emme aio pystyä vain etsiä puu enää, koska emme ole yksi, joka on hallinnassa kunkin tällaisen päätöksen pistettä. Joten kuvitella yksinkertainen peli kuin Ristinolla. Voisin aloittaa täysin tyhjä board. Ja Ristinolla, X saa pelata ensin. Ja niin voisin ajatella kaikki mahdollista siirtoa että X voisi tehdä. Ja jos olen yksi soitto X, hienoa. Minulla on yhdeksän mahdollista liikkuu, että voin tehdä. Voisin laittaa X tahansa näistä yhdeksän kantoja. Ja sitten kunkin näistä, minä voisi kuvitella, mitä tapahtuu seuraavaksi. No, tässä tapauksessa, muut pelaaja saisi vuorollaan. O saisi vuorollaan. Ja kunkin näistä on olisi kahdeksan eri paikoissa että O voisivat sijoittaa niiden merkki. Sanotaan päätin, että olin aikoo laittaa X keskustassa. Että aina tuntuu hyvä avaussiirto. Voisin katsoa alla, että kahdeksan mahdollista siirtoa että O tekee. Nyt, jos pelaan X, joka on ihana. Saan valita, mihin minä mennä, yksi keskellä. Mutta nyt O saa valita. Ja minulla ei ole valvontaa yli kyseisen päätöksen. Mutta kunkin näistä mahdollista hallituksissa, siellä on sitten toinen joukko mahdollisuuksia. Kun se tulee olla Minun vuoroni jälleen, olisin saat valita ja sanoa, hyvin, jos O siirtyy, hyvin, keskimmäinen paikalla vasemmalle, sitten Minulla on joukko mahdollisuuksia jossa voin ottaa minun seuraava siirto. Noista, voisin harkita kaikkia mahdollisuuksista niiden alle. Ja sitten O saisi valita joukossa. Ja voisin pitää rakentaa tämän puu, kunnes sain siihen pisteeseen joissa joko joku voittaa game-- se Täytyy pitää lehtiä node-- tai lauta on aivan täynnä ja kukaan ei ole voittanut. Ja joka on myös olemaan lehtisolmu. Se tulee olemaan solmio. Mutta hankala juttu tämä on jos tämä olisi vain tavallinen haku ongelma, olisin pystyä sanoa, hyvin, X pitäisi mennä täällä. Ja O pitäisi mennä tapa tuolla. Ja niin X pitäisi mennä tänne. Ja sitten O pitäisi mennä tapa tuolla. Ja sitten X voi saada kolme peräkkäin, ja voitan. Ja peli olisi ohi viidessä liikkuu, kolme minulle, kaksi minun vastustaja. Mutta en aina päästä valita että. Joten sen sijaan, mitä olemme täytyy tehdä on aiomme olla on uusi strategia. Ja strategia, peli-pelissä algoritmit käyttävät usein on mitä kutsutaan minimax. Keskeinen ajatus minimax on, että olemme vilkastumassa liikkua joka antaa vastustaja pahin mahdollinen joukko liikkuu, että he voivat tehdä. Se ei tee minulle mitään hyvää valita liikkua missä Voisin voittaa jälkeen että, koska minun vastustaja ei ole aio antaa minulle mahdollisuuden. He aikovat valita joitakin kauhea lopputulos minulle. Joten aion tehdä liikkua joka pakottaa vastustajani tehdä jotain parempi minulle. Selvä. Katsotaanpa, miten se pelaa. Joten tässä on meidän algoritmi pseudokoodilla. Aiomme tuottaa koko pelin puu. Aiomme rakentaa koko rakenne. Ja sitten mennään läpi. Ja alareunassa kullakin päätesolmuja, kussakin lehdet, me arvioida, kuinka arvokasta on, että minulle? Ja aiomme arvo asioita, ovat hyvä minulle olevan positiivinen. Asioita, jotka eivät ole hyvä minulle on vähemmän positiivinen, tai nolla, tai jopa negatiivinen. Joten Ristinolla, ehkä voitto on minulle hyvä. Se on yksi. Ja tie on nolla. Ja jotain, joka on tappio minulle, ehkä se negatiivinen. Tärkeää on, että parempi se on minulle, korkeammat pisteet se saa. Noista mahdollisuuksiin pohja, sitten me suodattaa ylöspäin. Ja kun se on minun mahdollisuus valita keskuudessa joukko vaihtoehtoja, Minä valita yksi, joka on sai korkeimmat pisteet. Ja aina kun se on minun vastustajat puolestaan ​​valita, Minä olettaa, että he aikovat valita yksi alin pistemäärä. Ja jos en tee tätä koko matkan jopa puun latvaan, Minä olen valinnut polku, joka antaa minulle paras tulos, että voin saada, olettaen että vastustajani tekee kaikki oikein liikkuu. Selvä, joten katsotaanpa tämä toiminnassa ensin. Ja sitten me oikeastaan katso koodia. Joten kuvitella Olen tämän iso puu. Ja nyt en pelaa Ristinolla. Halusin antaa sinulle jotain hieman rikkaampi. Joten minulla joitakin peli, jossa olemassa monia eri tulokset että voisin olla lopussa. Ja niin minä rakentaa tämä täydellinen puu. Ja saan liikkua ensin. Olen juureen puun. Ja saan valita that-- niin saan maksimoida poikki ensimmäinen solmu. Ja sitten minun vastustaja saa mennä. Ja sitten saan mennä kerran. Niin alas alareunassa, minulla on joukko mahdollisuuksia, että voin valita, eri pääte valtioiden peli. Jos olen alas että äärivasemmiston yläkulmassa, ja näen, että minulla valinta välillä kahdeksan, seitsemän, ja kaksi, No, olen se, joka saa valita. Joten aion valita paras yksi niistä. Aion valita kahdeksan. Joten tiedän, että jos olen koskaan saada alas että kohta, Minä voi saada, että kahdeksan pistettä. Jos minä päätyvät seuraavan pisteen yli, seuraava solmu yli, yhdeksän, yksi tai kuusi, hyvin, olen aikoo valita paras niistä. Minä valita yhdeksän. Jos minulla on mahdollisuus valita kaksi ja neljä, ja yksi, Minä valita neljä, korkein. Nyt, jos katson tasolla yläpuolella, vastustajani on yksi saa tehdä tämä valinta. Joten minun vastustaja saa valita, tehdä Haluan antaa hänelle asia, joka tulee saada hänet kahdeksan pistettä, tai voin antaa hänelle asia, joka on aikoo antaa hänelle yhdeksän pistettä, tai asia, joka tulee antaa hänelle neljä pistettä? Ja minun vastustaja, joka rationaalinen, on menossa valita vähintään näiden, aikoo valita neljä. Ja voin tehdä tämän läpi koko puun. En voi mennä alas, että keskellä asettaa kolme. Ja voin valita yksi, kolme ja viisi. Ja saan valita. Joten valitsen viisi. Voin valita kolme, yhdeksän tai kaksi. Saan valita, niin valitsen yhdeksän. Kuusi, viisi, tai kaksi, valitsen. Saan valita kuusi. Yläpuolella, että kuka saa valita? Kuka saa valita? Muut kaveri, minun vastustaja. Joten he valitsevat viisi, yhdeksän, tai kuusi, joista yksi? Yleisö: viisi. SPEAKER: He valitsevat viisi. He saavat valita pienin. Ja sitten viimeinen, valita yksi, kaksi tai kolme. Saan valita, niin valitsen kolme. Yhdeksän, seitsemän tai kaksi, valitsen yhdeksän. Ja 11, kuusi tai neljä, valitsen 11. Vastustajani valitsee sitten kolme, yhdeksän, tai 11, valitsee minimiin. Hän antaa minulle kolme. Ja sitten lopulta yläreunassa puu, saan valita uudelleen. Ja saan valita neljä, viisi tai kolme. Joten otan viisi. Jos sain kontrolloida kaikkea, olisin polkua, joka johti 11. Mutta en saa tehdä tämä valinta. Jos menen tätä tietä. Vastustajani pakottaa minut valinta, joka johtaa kolme. Joten paras että voin tehdä on ottaa että keski haara, jotta valinta olisi se lopulta menossa johtaa minut viisi pistettä. Sitähän minimax tekee. Selvä. Katsotaanpa katsomaan, että. Joten täällä CS50 IDE on ohjelma, joka toteuttaa minimax pelata Ristinolla. Aiomme rakentaa ylös edustus. Aiomme olla kaksi opponent-- tai kaksi pelaajaa, meidän tietokone soitin ja ihmisen pelaaja. Pelaaja numero yksi pelaavat O. Se tulee olemaan koneen pelaaja. He saavat liikkua toiseen. Ja toinen pelaaja, meidän ihmisen pelaaja, on X. Ja tehdä elämäni vähän yksinkertainen, aion merkitä, että pelaaja kielteinen. Joten voin vain kertoa negatiivisen yksi vaihtaa välillä yksi pelaaja ja muut. Selvä, joten katsotaanpa katsomaan mitä me todella aiomme tehdä. Aiomme määritellä meidän aluksella. Se tulee olemaan hyvin, aiomme jotta se voi olla kolme kolme, tai voimme jopa pelata viisi viisi tai seitsemän seitsemän Ristinolla jos olisit kuten, joka perustuu joitakin ulottuvuus D. Ja meillä on pari auttaja toimintoja että teemme asioita, kuten alustaa screen-- tai anteeksi, alustaa meidän muuttujat, tyhjennä näyttö, piirtää hallituksen ruudulla, joka tarkistaa hallitus onko vai ei siellä on voittaja, joka jäsentää kautta komentoriviltä, vain auttaa, joka lukee tulo, ja yksi toiminto nimeltään minimax. Ja se on yksi me välittävät eniten. Mutta Katsotaanpa ensin tärkein. Mitä me teemme? No, me aiomme jäsentää meidän komentoriviltä, juuri lukenut ja katso, mitä ulottuvuus aluksella haluaisimme olla. Me alustaa meidän aluksella. Ja sitten me anna yksi iso villi silmukka, toistuvasti hyväksyä liikkuu kunnes peli on voitti, tai ei ole siirtyy vasemmalle. Joka kerta käymme läpi, että silmukka, me tyhjentää näytön. Me kiinnittää lauta ruudulle. Ja me olemme tietoisesti tavallaan Abstrahoimalla nämä pois aliohjelmina, jotta meidän ei tarvitse huolehtia liikaa yksityiskohdista, miten ne tapahtuvat. Sinulla on koodi myöhemmin tänään. Ja jos haluat käydä läpi ja selvittää, näet ne kaikki. Mutta me piirtää hallituksen ruudulla. Ja sitten me tarkistaa ja katso, meillä on voittaja? Onko joku voitti tämän pelin? Jos heillä on, me tulostaa ulos voitto viesti. Ja me lopettaa pelin. Otamme myös tarkistaa ja onko siellä solmio. Se tulee olemaan helppo nähdä, jos siellä solmio. Se tarkoittaa, että kaikki tilat ovat täynnä, mutta ei ole ollut voittaja vielä. Voimme julistaa solmio ja tehdä. Sitten todellinen meat-- jos se kone pelaaja, me sallia kone pelaaja etsiä kautta käyttämällä tätä Minimax algoritmia, löytää parhaan tilanteen, että se voi. Ja sitten me laitamme että liikkua ylös. Muuten, jos se on ihmisen pelaaja, me lukenut joitakin panosta ihmisen. Ja sitten onko se ihmisen soitin tai koneen pelaaja, teemme pari vähän bittiä virheentarkistus, varmista, että se pysyy rajoissa ja todelliset mitat hallituksen että meillä on, varmista että avaruus on tyhjä, ettei kenenkään laittaa pala siellä jo. Ja sitten me vain laittaa pala pöydällä, muuttaa soittimen seuraavaan kerrokseen, ja increment kuinka moni liikkuu tapahtunut. Se on tärkein silmukka meidän Ristinolla peli. Minimax sitten, on täsmälleen algoritmi, joka me ennen. Ainoa säätö että olemme tehneet niin, että me voi pelata suurempi ulotteinen levyt on olemme pidetään tätä ylimääräistä parametri nimeltä syvyys. Ja syvyys vain sanoo, jos olen hakuja alaspäin kautta että puu ja saan niin pitkälle yli jonkin verran syvyyttä että en vain halua mennä pidemmälle, Aion lopettaa ja juuri arvioida hallituksen tässä vaiheessa. Tarkistan ja onko siellä voittaja. Jos on voittaja, palaan niihin. Muuten, menen läpi silmukka. Ja minä sanon, kaikille mahdollisia paikkoja että voisin mahdollisesti ottaa niin minun liikkua, minä rakentaa hypoteettinen aluksella, joka sisältää minun siirtyä että aluksella, ja sitten rekursiivisesti kutsuu minimax. Jos se on minun liikkua, saan löytää joka sai suurimman pisteet. Jos se on minun vastustajan liikkua, löydämme joka sai vähintään pisteet. Ja kaikki muu on vain kirjanpito. Selvä, joten katsotaanpa tämä aikavälillä. Oikeastaan, ehkä voimme saada pari vapaaehtoisia keksiä ja pelata Ristinolla. [Äänetön] yksi, ja yksi enemmän, kaksi, tuolla. Tule ylös. Joten mene eteenpäin ja käynnistä tämä täysin. Joten, hei. Yleisö: Hei. SPEAKER: Mikä on nimesi? Yleisö: Gorav. SPEAKER: Gorav. Yleisö: Olen Layla. SPEAKER: Ja Layla, ja Layla, anteeksi. Tule ylös. Gorav, me aiomme saada sinut mennä ensin. Ja aion pyytää sinua ei hirveän hyvä Ristinolla soitin. OK, joten kaikki paine on pois sinua. Katsotaanpa, kuitenkin, että kone pelaaja voi todella tehdä jotain älykästä. Joten mene eteenpäin. Olet menossa kirjoittaa johon koordinoida haluat laittaa X. A0, OK, ja kone on mennyt heti ja laittaa jälkensä A1. Laita O taululle. Okei, nyt mennä eteenpäin. Minne haluaisit mennä? C2. Meidän kone pelaaja on ottanut keskimmäinen neliö, estänyt sinut. Joten se oli hyvä, fiksu asia se tehdä. Olet estänyt sen. Se on erinomainen. Se vie nurkassa. Ja se tulee pakottaa sinut ottaa viimeinen tila, B0. Ja peli päättyy tasan. Mutta se pelataan kohtuullinen peli sinua vastaan, eikö? Selvä, kiitos paljon, Gorav. [SUOSIONOSOITUKSET] Hyvä on, Layla, menemme up peli täällä. Yleisö: Hienoa. SPEAKER: Me aiomme antaa te neljä neljä Ristinolla. Nyt neljä neljä, sinulla on voittaa neljä peräkkäin, ei kolme peräkkäin. Ja se on kokonaan sinun. Joten Layla otti D1. Olemme nyt menossa seuraamaan meidän tietokone pelaaja täällä. Kolme kolme Ristinolla on sellainen asia, että on helppo meille kaikille. Mutta se on silti mukava nähdä tietokone pelaaja tekee fiksu liikkuu. Neljä neljä saa olla hieman hankalampaa. Hyvin tehty. Selvä, joten Layla n viimeisteli. Niin, ja meidän olisi pitänyt päättyä siellä. Mutta katsotaanpa vielä yhden täällä. Joten Layla, kiitos. Hyvin tehty. [SUOSIONOSOITUKSET] Joten meidän Ristinolla pelaaja menee läpi ja löytää paikkoja, ratkaisee ne tämän Minimax. Ja minulla oli syvyysasetusta siitä, että niin, että se ei juosta liian nopeasti, joka on luultavasti miksi Layla voinut mennä hienosti eteenpäin kuten hän teki, ja teki erittäin hyvin. Mutta nämä järjestelmät että vain läpi ja raa'alla voimalla mennä syvemmälle, ja syvemmälle, ja syvemmälle, ja pitää löytää ratkaisu että he tarvitsevat, tuollaiset järjestelmät ovat varsin onnistunut näissä, hyvin, standardi lautapelejä. Ja itse asiassa, jos katsomme kolme kolmen Ristinolla peli, tämä on periaatteessa ratkaistu ongelma. Ja tämä on hieno kaavio Randall Munroe klo XKCD, näyttää jotka liikkuvat sinun pitäisi ottaa, koska vastustajan liikkeitä. Tämä on jotain, että voisimme helposti määrittää etuajassa. Mutta mitä tapahtuu, kun saamme enemmän monimutkaisia ​​pelejä, monimutkaisemman pelejä, jossa on isompi levyt, lisää mahdollisuuksia, syvempi strategia? Osoittautuu, että tämä brute force etsivät edelleen ei kohtuullisen hyvin, paitsi kun saat siihen pisteeseen jos tämä puu on niin suuri että et voi edustaa kaikkea. Kun et voi laskea koko puu, kun ei voi mennä eteenpäin ja työntää itsesi siihen pisteeseen, jossa olet saanut koko puu muistissa, vai voit saada sen muistiin ja se vain vie aivan liian pitkä etsiä se, sinun täytyy tehdä jotain älykkäämpiä. Voidakseen tehdä niin, te täytyy tehdä kaksi asiaa. Ensinnäkin, sinun täytyy löytää tapa rajoittaa syvyys. No, se on OK. Voimme löytää kivoja, minimiin ja sanoa, et voi vain mennä niin syvälle. Mutta kun teet näin, se tarkoittaa, että näitä osittain puutteellisia levyt. Ja sinun täytyy valita, tehdä pidän tämä osittain puutteellisia aluksella, tai tämä osittain puutteellisia hallitus? Ja meidän neljä neljä Ristinolla peli, meidän tietokone pelaaja sai alas pohjaan ja se sanoi, Minulla kaksi eri levyt. Kumpikaan on win. Kumpikaan on tappio. Kumpikaan on tie. Miten valita ne? Ja se ei ole fiksu tapa tehdä se. Näemme tällaista arviointi tapahtuu koko ajan kun pääsemme monimutkaisempia pelejä. Shakki on loistava esimerkki. Shakki, meillä on ensimmäinen Kaikkien, suurempi aluksella. Meillä on paljon enemmän kappaletta. Ja paikannus nämä kappaleet ja siten, että nämä kappaleet liikkuvat on ratkaisevan tärkeää. Joten jos haluan käyttää minimax, Minun täytyy voitava määritellä ja sanoa, tämä hallitus, jossa kukaan ei ole voittanut tai menettänyt vielä, on jotenkin parempi kuin tämä muut aluksella, jossa kukaan ei ole voittanut tai kadonnut. Voit tehdä, että voisin tehdä asioita, kuten voisin vain laskea kuinka monta kappaletta minulla on ja kuinka monta kappaletta sinulla on? Tai voisin antaa eri kappaletta eri kohdissa. Minun kuningatar kannattaa 20 pistettä. Sinun sotilas on arvoltaan yhden pisteen. Kuka on enemmän pisteitä yhteensä? Tai voisin harkita asioita, kuten kenellä on parempi paikkansa hallituksessa? Kenen vuoro on ensi, mitään, että voin ei arvioida tarkemmin joka näistä mahdollisuuksista on parempi ilman tyhjentävästi harkitsee jokaista liikettä, joka voisi tulla sen jälkeen. Nyt tehdä tätä työtä, yksi niistä asioista, jotka on tulossa todella tärkeä meille ei ole vain liikkuvat suoraan alas tiettyyn syvyyteen raja, mutta voi sanoa, yksi näistä ajatuksista, että olen on on niin huono, että se on ei harkitsemisen arvoinen kaikki mahdolliset keinot että asiat voivat mennä huonompaan suuntaan. Voit tehdä, että me lisäämme osaksi minimax periaate kutsutaan alph-beeta. Ja alfa-beeta sanoo, jos sinulla on huono idea, älä tuhlaa aikaa yrittää selvittää tarkasti, kuinka huono se on. Joten tässä mitä aiomme tehdä. Aiomme ottaa samaan periaatteita, joita meillä oli ennen, sama minimax tyyppi haku, vain olemme menossa seurata, paitsi oloarvojen, että meillä on, mutta me seurata mahdollisimman arvo, että voisin saada, ja pahin mahdollinen lopputulos Voisin olla. Ja aina pahin mahdollinen asia etsii todennäköistä, Minä luopua että osa puusta. Ja en edes vaivaudu katsomalla sitä enää. Selvä, joten kuvitella että aloitamme tällä samalla tarkka peli puu. Ja nyt aiomme mennä alas, kaikki alas kyseiseen vasemmassa alakulmassa. Ja että vasemmassa alakulmassa, me näyttää ja arvioimme tämän hallituksen. Ehkä se on neljä neljän Ristinolla aluksella, tai ehkä se on shakkilaudalla. Mutta katsomme sitä, ja arvioimme se, ja saamme arvo kahdeksan. Siinä vaiheessa, me tiedämme, että aiomme saada ainakin kahdeksan pistettä tästä pohjasta päätöksestä. Sillä ei ole väliä mitä muut kaksi ovat, että seitsemän ja että kaksi. Ne voisivat olla mitään arvoja he halusivat olla. Aiomme saada aikaa vähintään kahdeksan pistettä. Hyvä on, mutta voisimme mennä eteenpäin ja tarkistaa. Ehkä yksi niistä on parempi kuin kahdeksan. Katsomme seitsemän. Onko se parempi kuin kahdeksan? No, joka ei muutu Mielestämme lainkaan. Katsomme kaksi. Onko se parempi kuin kahdeksan? No, joka ei muutu Mielestämme lainkaan. Joten nyt me tiedämme, olemme loppuun kaikki mahdollisuudet siellä. Emme tule saamaan mitään parempaa kuin kahdeksan. Aiomme saada täsmälleen kahdeksan. Ja niin me muuttaa että solmu ja sanoa, että on nyt varmuus. Me siirtyä yhden tason yläpuolella. Ja nyt me tiedämme jotain siitä minimointi tasolla. Tiedämme, että emme koskaan tule saamaan yli kahdeksan pistettä jos menemme alas siihen suuntaan. Sillä vaikka ne muut kaksi haaraa osoittautua mahtavia ja kannattaa tuhansia pistettä kustakin, vastustaja antaa meille minimi, ja antaa meille kahdeksan. Hyvä, hyvin, katsotaanpa. Me jatkaa tätä tietä. Menemme alas, että keski vasemmalla. Odotamme alas ja näemme siellä yhdeksän. Tiedämme, että aiomme saada vähintään yhdeksän pistettä menemällä alas että keski tie. Ja tässä vaiheessa voimme vain keskeyttää. Ja voimme sanoa, katso, minä tietää yläpuolella, Aion saada enintään kahdeksan pisteitä menossa tähän suuntaan. Mutta jos menin keskelle polku sijasta vasemmalle polku, Haluan saada vähintään yhdeksän pistettä. Vastustajani ei koskaan tule anna minun mennä alas, että keskitietä. He saavat valita. Ja he aikovat valita polku vasemmalle kohti kahdeksan, pikemminkin kuin keskeltä kohti mitä ainakin yhdeksän pistettä. Niin siinä vaiheessa, minä lopetan. Ja minä sanon, tiedätkö mitä? Minulla ei tarvitse etsiä enemmän alas tähän suuntaan. Koska olen koskaan päästä sinne. Voin ohittaa että yksi, ja voin ohittaa että kuusi, koska se ei koskaan tule tapahtumaan. Joten menen alas ja minä harkita seuraavaksi mahdollisuutta. Menen sinne ja sanon, näen kaksi. Tiedän jos saan tänne, olen menossa ainakin kaksi. OK. En jatka. Näen neljä. Tiedän, että olen menossa saada vähintään neljä. Siellä on vielä paljon välillä neljä ja kahdeksan, vaikka. Joten en jatka. Odotan alas ja näen siellä on yksi. Hyvä on, tiedän jos Menen tätä tietä, Aion olla mahdollisuus valita neljä. Mitä minun vastustaja aikoo tehdä? Välillä jotain, joka antaa minulle kahdeksan, mikä antaa minulle neljä, ja jotain, antaa minulle ainakin yhdeksän, hyvin, hän aikoo antaa minulle neljä. Ja tiedän nyt hyvin alkuun, aion voitava saada vähintään neljä pistettä tästä pelistä. Koko ajatus alfa-beeta on katkaista osiin puun niin että en katso niitä enää. Mutta se näyttää vielä olen ollut katsot paljon puu. Pidetään menossa alaspäin. Menemme alas seuraavaan nyt. Alas alareunassa, saan yhden. Tiedän, että olen menossa saada ainakin yksi. En jatka etsimistä. Minusta kolme. Tiedän, että olen menossa saada vähintään kolme. En jatka. Minusta viisi. Tiedän, että olen menossa saada viisi jos saan alas tätä tietä. Ja tiedän myös sitten että minun vastustaja, jos en valita keskellä kolme isoa valintoja, hän aikoo antaa minulle jotain, joka on viisi tai vähemmän. OK. Voin jatkaa siellä. Voin katsoa alas ja minä voi sanoa, mitä olen menossa saada jos menen alas keskitietä? Aion saada, hyvin, kolme siellä. Aion saada jotain se on ainakin kolme. Vielä asioita välillä kolme ja viisi, joten en jatka etsimistä. Voi, yhdeksän, minä ehdottomasti ottaa että yli kolme. Aion saada vähintään yhdeksän jos menen alas että keskitietä. Nyt minun vastustaja pysähtyy ja sanoo, katso, ei ole mitään järkeä enää. Tiedän, että minun minimointi vastustaja, hän aio antaa minulle asia, joka on vähemmän kuin tai yhtä suuri kuin viisi, eikä asia, joka on suurempi tai yhtä suuri kuin yhdeksän. Lopetan. En katso enää tuohon. En jatka. Olen halveksia tämä. Pohjaan, saan kuusi. Tiedän, että olen menossa saada vähintään kuusi. Ja mitä voin tehdä? Voin lopettaa. Koska siellä valita jotain, joka on vähintään kuusi ja jotain, joka on vähemmän kuin viisi, hän aio antaa minulle asia se on vähemmän kuin viisi. Ja nyt tiedän aion saada juuri tämä valinta. Aion saada että viisi valinta. Menen takaisin ylös. Joka olen menossa valita jotain joka on suurempi tai yhtä suuri kuin neljä, tai jotain, joka on yhtä kuin viisi? Aion tehdä jotain se on vähintään viisi. Menen alas viime polku, kaikki alas pohjaan. Siellä on yksi. OK, ainakin aion saada yhden pisteen. En jatka. Kaksi, oi, se on parempi kuin yksi. Aion saada vähintään kaksi. Minusta kolme. Tiedän, että olen menossa kolme. Ja pisteen yläpuolella, vastustajani on menossa antaa minulle jotain, joka on vähemmän kuin tai yhtä suuri kuin kolme. Ja nyt voin lopettaa. Koska valita minulle on voi saada viisi ja vastustajani antaa minulle jotain vähemmän kuin kolme, Olen aina menossa ottamaan että viisi. Joten en arvioi, että alaosassa puun ollenkaan. Nyt tämä voi tuntua pieniä. Mutta kun vähän bittiä aritmeettinen, suurempi ja pienempi kuin, voi leikata pois koko osat tämä eksponentiaalisesti kasvava puu, joka johtaa valtavan Säästöistä, säästöt jotka ovat tarpeeksi suuria, että minä voit aloittaa pelaamisen kilpailukykyisesti klo monimutkaisempia pelejä. Hyvä on, jos katsomme koko ja monimutkaisuus erilaisia ​​pelejä, Ristinolla oli meidän helppo esimerkki. Meillä pieni lauta, kolme kolme. Saamme korkeintaan keskimäärin noin neljä eri vaihtoehtoa kun käymme läpi pelin. Meillä on jonnekin noin 10 Viides mahdollinen eri lehtiä. Ja rakentaa Ristinolla soitin, hyvin, me vain teimme sen. Se on helppoa. Jos menemme jopa jotain enemmän monimutkainen, kuten Connect Four. Muistatko tämän peli, jossa pudotat pikku tokens? Se on kuusi seitsemän aluksella, ei niin paljon isompi, edelleen on suunnilleen sama haaroitus tekijä kuten Ristinolla. Olen noin neljä vaihtoehtoa jossa voin laittaa asiat. Mutta nyt, minulla on paljon enemmän johtaa, 10 21. valtaa. Se on jotain, joka on helppo riitä, että ratkaisemme sen heti. Nappuloita, enemmän complex-- sinua sai kahdeksan kahdeksan aluksella. Olet vain puolet milloin tahansa, vaikka. Sinulla haarautuvan tekijä, joka on noin 2,8. No, meillä pari liikkuu voit ottaa. Sinulla noin 10 31. lehdet, suurempi, ja suurempi, ja suurempia tiloja. Koska minulla on etsiä ne suurempia ja suurempia tiloja, silloin asiat kuten alfa-beeta ja että voimme leikata pois koko oksat tulee olennainen. Nyt, Tammi oli helppoa vuonna 1992. Tietokoneohjelma nimeltään Chinook voittaa maailman nappuloita mestari, Marion Tinsley. Ja sen jälkeen, ei ihmisjohtajan pelaajalla on pystynyt voittamaan paras laskennallisen systeemibiologian. Jos tarkastelemme jotain shakki, nyt taas, meillä on kahdeksan kahdeksan aluksella. Mutta meillä on paljon monimutkaisempi kappaletta, paljon monimutkaisia ​​liikkeitä. Meillä haarautumiskerroin noin 35, 35 mahdollista siirtoa keskimäärin että voin ottaa, ja valtio tilaa, lehtien lukumäärä joka on kasvanut 10 123. valtaa, valtavan määrän mahdollisuuksia. Jopa vielä, nykyaikaiset prosessorit pystyvät tekemään tämän menestyksekkäästi. Vuonna 1995 ja sen jälkeen vuonna 1997, tietokone ohjelma nimeltä Deep Blue rakennettu IBM että sai pitkän jättiläinen supertietokoneen lyödä nykyinen maailmanmestari, Garri Kasparov. Tämä oli käännekohta. Tänään, kuitenkin, että sama käsittely teho istuu MacBook. Käsittelyn nopeus pitää saada nopeammin ja nopeammin. Voimme arvioida enemmän ja enemmän levyt nopeammin ja nopeammin. Mutta vielä tärkeämpää, olemme parempi arviointi toiminnot ja parempi karsimisesta menetelmiä. Jotta voimme etsiä tilaa lisää monimutkaisesti. Suurin Hallituksen pelejä, että voimme ajatella, jotain Go, joka on sai 19 19 aluksella, nyt yhtäkkiä, olemme ohi pisteen jossa laskennallinen järjestelmät voivat voittaa. Ei ole laskennallinen järjestelmä siellä joka voi voittaa ammatillinen Go pelaaja. Paras järjestelmät tänään listalla kyse eräänlainen hyvä amatööri tasolla. Joten siellä on vielä melko vähän ulos siellä, että et voi saada vielä. Hyvä, nämä perinteisiä lautapelejä, tällaisia ​​järjestelmiä, joissa me rakentaa tämän minimax, onko se sai alfa-beeta- tai ei, nämä algoritmit koska on olemassa tiettyjä rajoituksia. Meillä on täydellinen tietoa maailmasta. Tiedämme missä kaikki palaset ovat. Maailma on staattinen. Kukaan ei pääse liikkumaan kappaletta ympäri kun olen istuu siellä ajattelu, kun minun vuoroni. On toimintatilaa, joka on diskreetti. Voin laittaa pelinappula täällä, tai voin laittaa pelinappula tässä. En saa laittaa sotilas linjan välillä kaksi ruutua. Ja lopuksi, toimien deterministisiä. Tiedän, että jos sanon, torni Knight kolme, minun torni on menossa päätyä ritari kolme, kunhan se on voimassa liikkua. Ei ole epävarmuutta siitä. Nyt, kun menen enemmän erilaisia ​​pelejä, meillä on rikkoa näistä oletuksista. Mitä jos menen jotain kuten klassinen videopelit? Tässä valikoima video pelejä Atari 2600. Mitä minulla on siellä? Minulla Frogger, Space Hyökkääjät, Pitfall, ja Pac-Man. Millaisia ​​ympäristöjä minulla on täällä nyt? Mikä näistä oletuksista minun täytyy rikkoa? No, se riippuu pelistä. Voisin pelata shakki 2600, ja se olisi aivan kuin se oli ennen. Useimpien näistä järjestelmistä, siellä täydellinen tietoa maailmasta. On täysin deterministinen toimia. Mutta yleensä, maailman ei enää staattisia. Eli kun istun siellä odottaa, jotain liikkuu. Aaveet ovat tulossa hakemaan minua. Skorpioni seuraa minua alla. Space Invaders ovat tulossa lähemmäs ja lähemmäs. Kuinka hyvin voimme tehdä näitä? Muutama vuosi sitten, Google oli projektin nimeltään DeepMind, jossa he koulutettu tietokone ohjelma pelata Atari 2600 pelejä. Ja jos luulet tämä ei ole vakava liiketoiminta, tulokset niiden tutkimuksen julkaistiin Nature, joten lähes yhtä hyvä julkaisu kuin voit mahdollisesti saada. Ja tässä miten hyvin he esiintyivät. Heillä on algoritmi, joka istui ja katseli vain näytön tuloa. Se sai mitään ohjeita lainkaan noin pelisäännöt. Ja se piti selvittää, perustanut pisteet, miten hyvin se oli tekemässä. Tämä oli järjestelmä, joka käyttää jotain nimeltään vahvistaminen oppiminen. Eli, se katsoi sen pisteet. Ja jos se sai hyvät pisteet, se sanoi, Haluan muistaa nuo asiat. Ja minun pitäisi tehdä niitä uudestaan. Ja jos se sai huonon sijoituksen, se sanoi, Minun ei pitäisi tehdä niitä asioita uudelleen. Tämä on suorituskyvyn näistä koulutettu järjestelmien saa pelata muutaman tunnin jokaista peliä, verrattiin ammatillinen pelaajille. Joten kaikki pelejä, jotka ovat vasemmalle puolelle tätä linjaa, Tämä itse koulutettu tietokoneohjelma päihitti ammatillinen pelaajille. Ja kaiken oikeus, ammatillinen pelaajat olivat edelleen paras. Jotain, joka tiesi mitään sääntöjä, että tiennyt mitään rakennetta pelejä, tämä on vaikuttava suorituskyky. Ja tämä on mitä pystymme tekemään tänään. OK, te sanotte, mutta jos me ajatella AI peleissä, normaalisti ajattelemme asioita, joita voimme todella istua alas ja pelata. Jos istun ja pelaan StarCraft, tai pelaan Ilmainen seula, tietokone vastustaja on jolla on määräysvalta Zerg, tai ohjaamalla muita sivilisaation. Miten nämä pelaajat itse löytää siirtonsa? No, nämä pelit ovat rakenteeltaan paljon samalla tavalla kuin meidän lautapelejä, nämä pelit, että me will kollektiivisesti soittaa neljä X pelejä, tutkia, expand-- unohtaa niitä. Mitä he ovat? Tutki, laajentaa, ja sammuttaa, Mielestäni on viimeinen. Mutta ne ovat pohjimmiltaan etsintä ja valloittaa pelejä. Tyypillisesti tietokone vastustaja siellä on rajoitetusti tietoa. He eivät tiedä tarkalleen, mitä takana tapahtuu, että sumu sodan. He eivät saa nähdä, mitä sinulla on inventaario. On ympäristössä, joka on dynaaminen. Kaikki muuttuu koko ajan. Et saa istua ja odota ottaa liikkua. Mutta useimmat asiat ovat edelleen erillisiä. Minun täytyy laittaa kaupungin täällä. Tai minun täytyy laittaa kotikaupungissani täällä. Ja kaikki on deterministinen. Kun sanon, siirrän yksikkö täällä, minun yksikkö liikkuu täällä, ellei esteenä yhtäkkiä tulee pelata. Nyt, se ei ole kaikki tietokoneen pelejä, jotka ovat siellä tänään. Jos menen ja pelaan ensimmäinen henkilö tyyppi peli, jotain Thief tai Fallout tai Skyrim, tai halo, nyt Minulla on tietokone vastustajat jotka ovat siellä, jotka ovat hyvin erilainen tilanne. Heillä on jälleen rajoitetusti tietoa. He vain voi nähdä tietyt näkökenttä. Ympäristö on edelleen dynaaminen. Asiat muuttuvat koko ajan. Mutta nyt minulla on paljon enemmän jatkuvia toimia tilaa. Voin olla vain kurkistaa hieman ulos oviaukosta. Ja joitakin pelejä, minun toimet ovat stokastisia. Saan yrittää hypätä yli että seinä, mutta minulla on mahdollisuus epäonnistua. Tämäntyyppiset pelit lähestyvät ja lähempänä erilaisia ​​ohjaimia että rakennamme robotiikka. Robotiikka, meidän on oletettava, että meillä on vain vähän tietoa. Meillä on anturit, jotka kertovat maailmasta. Meillä on aina muuttuvassa, dynaamisessa ympäristössä. Meillä on maailma, jossa tila on jatkuvaa, eikä erillisiä. Ja tekomme, kun yritämme heille, on mahdollisuus epäonnistua. Ja itse asiassa, moderni peli säätimet oman Halo vastustaja, tai niille Yhteyshenkilö Skyrim, pohjimmiltaan tavallista pienempiä robotiikka arkkitehtuurit. He aistivat maailman. Ne rakentaa malli maailman. He Laske perustuu joukko tavoitteet, jotka he haluaisivat saavuttaa. He suunnittelevat perustuvat kanteet mitä he tietävät. Ja ne ovat täsmälleen samanlaisia Järjestelmien että rakennamme robotiikka. Joten nämä arkkitehtuurit, jotta tuoda tämän takaisin yhteen, ovat usein aivan sama. Joten jos voimme nähdä, että. Mennään takaisin meidän Ristinolla esimerkki. Ja minä aion kysyä pari minun post-docs keksiä ja auttamaan minua. Joten Chen Ming, ja Alessandro, ja Olivier, jos te voisi keksiä. Ja aion pitää pari vapaaehtoisten OK, minä näin käsi ylös oikealle siellä keskellä. Otan yhden, joku edelleen takana ehkä. Okei, tuolla. Tule ylös. Selvä. Joten ottakaamme että kansi alas. Ja jos kaverit tulevat heti takaisin täällä minulle, fantastinen. Joten tämä on robotti nimeltään Baxter. Ja Baxter on robotti, joka on kaupallinen foorumi, jonka tarkoituksena niminen yhtiö Rethink. Ja tämä robotti on suunniteltu pienimuotoista valmistus. Mutta tänään emme aio käyttää sitä pelata Ristinolla. Nyt, tämä robotti on myös jotain se on melko ainutlaatuinen. Koska jos en seisoisi tahansa lähellä standardi tehtaan automaatio järjestelmä, olisin erittäin vakava vaarassa loukkaantua. Baxter, kuitenkin, on suunniteltu suhteellisen turvallista vuorovaikutuksessa. Ja niin minä voi työntää tämän robotti. Ja näet se on vähän bittinen joustava kuin se liikkuu. Ja voin asemoida sitä jossa Haluaisin sen mennä. Nyt normaalissa robottijärjestelmän, meillä olisi joukko nivelten täällä että olisi suoraan vastaa asentoon komentoja. Ja he eivät välttämättä välitä jos ne liikkuvat läpi ulkoilmaan, tai jos ne liikkuvat läpi minun rintakehä. OK. Ja tyypillisesti, jos olisit täällä teollisen järjestelmän, menisit läheskään sitä. Olisi keltainen turvallisuus nauha kaikki sen ympärillä. Tämä järjestelmä on hieman erilainen muotoilu olla ystävällisempi ja helpompi ihmisten vuorovaikutuksessa, että kussakin yhteinen, siellä keväällä. Ja eivätkä hallitse tarkan sijainnin, me ohjata tietyn määrän vääntömomentti, tietty määrä voimaa, että haluaisimme olla, että kevät. Hyvä on, joten haluaisin otamme Vapaaehtoiset. Hei mikä nimesi on? Yleisö: Louis. SPEAKER: Louis. Mukava nähdä sinua. Ja? Yleisö: David. SPEAKER: David. Kiva tavata. Jos kaverit odottaa täällä toista, Aion antaa teille mahdollisuus tehdä tämä. Joten tämä robotti, jos keksitte ja jos painat sitä kevyesti, aiot nähdä, että se liikkuu vähän. Ja jos napata se oikea tässä ranteessa vain yläpuolella, jossa nämä painikkeet ovat, se näyttää sinun pitäisi napata painikkeet, mutta napata oikea yläpuolella Siksi sinun pystyä hyvin varovasti manipuloida sitä avaruudessa. Louis, haluat antaa sille yrittää? Joten antaa sille vain vähän push aloittaa. Ja sitten jos laitat sormet oikeassa ja pitää kiinni siitä, koska se siirtyy sinulle sitten. Selvä, haluat antaa sille yrittää? Tule ylös. Joten antaa se vain lempeä push siellä aloittaa. Voit tuntea, millaista se on. Ja sitten jos napata sen oikeassa, voit liikkumaan noin. OK. Niin tyypillisesti tällainen robotti olisi käytetään pienessä mittakaavassa valmistukseen. Ja aion siirtää tätä käsivarteen vain alas pois tieltä hieman täällä. Mutta tänään, aiomme käyttää Sama Ristinolla pelaa järjestelmä perustuvat minimax että rakensimme aiemmin. OK? Joten, te ovat kukin menossa pelaamaan peliä. Louis, aiot olla ensimmäinen. Haluan vain pitää tänne toista. Aion olla seisot oikeus täällä, vain niin jokainen voi nähdä sinua. Oletteko perustaa täällä? ROBOT: Tervetuloa. Pelataan Ristinolla. Älä ymmärrä tunnuksen ennen Sanon, että se on sinun vuorosi. Aloitan pelin. Se on minun vuoroni. SPEAKER: Nyt, jos voisit ottaa yhden nappulat ja mennä eteenpäin ja aseta se. ROBOT: Se on sinun vuorosi. [NAURU] Se on minun vuoroni. [NAURU] [NAURU] On sinun vuorosi. SPEAKER: Ihmiskunta on teihin täällä, Louis. ROBOT: Se on minun vuoroni. SPEAKER: Niin Baxter onnistuneesti estetty täällä. ROBOT: Se on sinun vuorosi. Se on minun vuoroni. On sinun vuorosi. Se on minun vuoroni. SPEAKER: Ja me ilmoitamme Baxter loppuun pois sen viimeisen siirron täällä. [NAURU] ROBOT: Se on solmio. Aion voittaa ensi kerralla. [NAURU] SPEAKER: Hyvä, Kiitoksia, Louis. Kiitos. Voit mennä tällä tavalla. ROBOT: aloitan pelin. SPEAKER: Joten selitän sinulle yksi pieni hieman ennen saamme rematch täältä. Mitä tapahtuu? Joten robotti on kamera ylös tänne. Ja se etsii alas hallitus. Ja se näkee onko se sai punaisen O tai sininen ja valkoinen X. Koska nämä saavat saatettu aluksella, joka on pohjimmiltaan sama tulo että olisimme lukeminen sisään meidän tietorakenne meidän näytössä. Se on käynnissä samaan minimax algoritmi olla löytää mistä aseta hyvä merkki. Ja sitten annamme komento noin jossa haluamme merkki sijoitetaan. Varsi on muuttamassa pois. Se käyttää tyhjiö tarttuja soveltaa jotkut imu että puinen pala, noutaa sen, siirrä sitä oikealle paikka, ja vapauta sitten imu ja pudota se. Selvä, olemme menossa antaa se yksi laukaus hieman älykkäämpi pelaaja täällä. Oletko valmis? Hyvä on, jos haluat seistä asti täällä ja antaa a-- osoittautua tällä tavalla joten voit nähdä kaikki. Ja sitten [kuultavissa]. ROBOT: Se on minun vuoroni. SPEAKER: Baxter alkaa. On sinun vuorosi. Se on minun vuoroni. On sinun vuorosi. Se on minun vuoroni. [NAURU] SPEAKER: [WHISPERING] Vain anna hänen mennä eteenpäin ja voittaa. ROBOT: Se on sinun vuorosi. SPEAKER: Ei se mitään. ROBOT: Se on minun vuoroni. [NAURU] Minä voitan. [NAURU] Aloitan pelin. SPEAKER: Selvä, kiitos paljon. Hyvä, mielestäni meillä aika yksi erinomainen Ristinolla soitin, joku, joka voi laittaa tämä asia ottelu, joka tietää, mitä he tekevät. [NAURU] Kuka tulee olemaan meidän mestari täällä? Hyvä, ystävillesi vapaaehtoisesti sinua. Se riittää minulle. Kerro minulle nimesi uudelleen. Yleisö: Tamir. SPEAKER: Tamir, kiva nähdä sinua. Hyvä on, jälleen, aiomme laittaa sinut asti täällä, jotta jokainen voi nähdä sinua. Olet meidän edustaja tässä ottelussa nyt. Baxter on yksi ja oh ja oh. Tai pahoillani, oh ja yksi. Ja se on jopa sinua täällä. Baxter saavat liikkua ensin, vaikka. Niin. ROBOT: Se on minun vuoroni. [NAURU] On sinun vuorosi. Se on minun vuoroni. On sinun vuorosi. Se on minun vuoroni. On sinun vuorosi. [NAURU] ROBOT: Se on minun vuoroni. SPEAKER: Se on paljon vaikeampaa, kun seisot täällä, ihmiset. [NAURU] ROBOT: Te ihmiset ovat niin helppoja voittaa. [Naurua ja suosionosoituksia] SPEAKER: Kiitos paljon. ROBOT: voitan. Aloitan pelin. SPEAKER: Selvä, joten kiitos erittäin paljon Olivier, ja Alessandro, ja Chen Ming. [SUOSIONOSOITUKSET] Haluan tehdä yhden asian. Joten Baxter on hyvin pääty tähän, huijatuksi. Ja se oli odottamaton. Yksi upeista asioita AI on, että me tehdä työtä AI, jotta voimme rakentaa todella mielenkiintoinen ja älykäs laitteita. Mutta teemme myös työtä AI koska se kertoo meille jotain miten ihmiset ovat älykkäitä. Yksi suosikki tutkimuksissa minun lab on katsot mitä tapahtuu, kun koneet yllättäen huijata. Teimme alun perin ei kanssa Baxter pelissä Ristinolla, mutta pienempi robotti nimeltään Nao, joka pelasi kivi-paperi-sakset. Ja joskus jälkeen pelaa paljon ja paljon tylsää kivi-paperi-sakset pelit, robotti voisi heittää ele, menettää, ja sitten yhtäkkiä muuttaa sen ele ja sanoa, voitan. [NAURU] Nyt, joskus olisimme myös robotti, kuten ohjaus, heittää ele, voittaa, ja muuttaa sen ele menettää, heittää ottelu, huijata jotta menettää. Ja että ei ole läheskään yhtä vakuuttava. Robotti, joka huijareita saadakseen ihmiset vastata, jos se on hakemaan heidät, kuin se pyrkii aktiivisesti niiden tuhoamista. [NAURU] Siitä tulee agentti. Se on kuin ihminen. Se on usko ja tarkoitus. Ja se ei ole hyvä tarkoitus. Ja robotti, joka heittää peli on juuri toimintahäiriö. Se on vain viallisen laitteen. Näytän teille pari esimerkkiä Kyseisen muutamasta osallistujista. Joten tässä on huijaaminen jotta menettää. [VIDEOTOISTOSTA] - [Kuultavissa] voittaa. Pelataan. -Odota mitä? - [Kuultavissa] voittaa. Pelataan. [Kuultavissa] voittaa. Pelataan. SPEAKER: Ja tässä huijaa voittaa. -Kyllä, Voitan. Pelataan. -Voit Tehdä sitä. [NAURU] -Kyllä, Voitan. -Sinä Huijatuksi. Huijasit nyt. -Kyllä, Voitan. Hei, sinä huijari. Huijaat, Super huijata. [Lopeta toisto] SPEAKER: Nämä eri reaktiot nopeasti muuttaa käsityksemme laitteen. Tarkoittaako tämä, että me tietoisesti rakentaa koneita, jotka huijata koska se on paras engineering, että voimme tehdä? Ei, mutta se kertoo meille jotain todella mielenkiintoinen ihmisistä. Tämä asia, että huijareita sinua ja varastaa voitto, joka on jotain, joka on elossa, se on animoida, joka on hakemaan sinut. Se on henkinen tila. Se on usko. Se on tarkoitus. Tämä asia, että kädet peli sinulle, että ei ole. Se on vain huonosti. Tämä on monella tapaa miksi se on helppo heittää pelin lasten kanssa. Mutta jos yrität huijata niitä ja tavallaan väittävät voitto kun tiedät, vain lyhentää peli, he sinut kiinni heti. Tällaisia ​​vaikutuksia näemme tulossa ulos AI, he opettavat meille paljon itsestämme. Okei, se on siinä tänään. Kiitoksia David ja Harvardin tuotanto joukkue varten tulossa alas. [SUOSIONOSOITUKSET] Nähdään varten tietokilpailu yhden, ja sitten yksi viime luento. Hyvää päivän jatkoa. [SUOSIONOSOITUKSET] [Musiikkia] DAVID J MALAN: No, me luultavasti ottaa käyttöön jonkinlainen salauksen, oikea? Koska silloin otsikot nämä HTTP-pyynnöt ovat salattu niin, että kuka tahansa yrittää haistella liikennettä ei todella voi nähdä niitä. Joten mikä on ratkaisu tähän ongelmaan? No, meidän on todella käyttöön salaus kaavaan, niin että kun kyseinen henkilö on lähettämään tietoa B, voimme turvallisesti send-- [NAURU] Tiedot siten, että vastustaja ei voi itse asiassa nähdä sen.