[MUZYKI] GŁOŚNIK: Witamy z powrotem, wszyscy. To CS50. A dzisiaj mamy dużo Interesujące rzeczy do omówienia. Najpierw jednak muszę przypomnieć Ci kilka rzeczy administracyjnych. Ten tydzień jest quiz, jeden, środa lub sekcji Yale we wtorki i czwartki, w czwartek. Istnieją opinie quizów dzisiaj w Yale, 5:30 do 7:00. Na Harvardzie, nagrali jeden wczoraj. I każdy może oglądać ten online. Również w tym tygodniu lub na początku przyszłego tygodnia, mamy nasz ostatni wykład CS50. [Wzdycha] Wiem. To przyszło tak szybko. Studenci Yale będzie miał na żywo wykład tu w szkole prawniczej Widownia w piątek. Będzie tort. Studenci Harvardu będzie miał Ostatni wykład w Sandersa w poniedziałek. Będzie też tort. Również w tym tygodniu w piątek, dla tych, z Was, którzy przybywają do New Haven, mamy Expo CS50. Mamy ponad 30 różne grupy zarejestrowany pokazać wszystko z autonomicznych łodzi, do systemów, które uznają portrety cyfrowe, do komputera muzyka i produkcji muzyki komputerowej. Więc proszę do nas dołączyć. Myślę, że to będzie świetny czas. Dziś, choć mamy do nadal mówić o AI, o sztucznej inteligencji. A jedną z rzeczy, które mamy zamiar dostać się do dziś jest pomysł, jak użyć AI do rozwiązywania problemów. Teraz, jak zawsze, zacznijmy od czegoś prostego. I mamy zamiar zacząć z prostego pomysłu. I to przy użyciu wyszukiwania. Więc wyobraź sobie przez chwilę, że mają zadania, które trzeba wykonać. I chciałbym mieć to zadanie zautomatyzowany przez jakiegoś agenta oprogramowania. Wyobraź sobie, że staram się zarezerwować zestaw lotów z, powiedzmy, Boston do San Francisco. Mogłem przejść i można używać Jedną z najlepszych wyszukiwania online narzędzia, które zrobi w zasadzie ten sam proces, że jesteśmy będzie chodzić do dzisiaj. Ale jeśli nie masz, że Narzędzie, co byś zrobił? Cóż, można patrzeć i zobaczyć i powiedzieć, że jestem w Bostonie. Co loty są dostępne do mnie? Teraz, być może mam trzy Możliwe loty spośród Bostonie które będą pasowały do ​​czasu kiedy muszę odejść. Mogę lecieć do Chicago. Albo mógłbym polecieć do Miami. Albo mógłbym polecieć do Nowego Jorku. Mógłbym to nie patrzeć od siebie jednym z tych miast docelowych i zastanowić się, co lokalizacje Mógłbym osiągnąć z każdego z tych poszczególnych miast. Więc może z Chicago, mogę bezpośredni lot do San Francisco. To doskonała. Czy mogę dostać lot do Denver. Teraz, być może, że lot do San Francisco jest idealnym rozwiązaniem dla mnie, ale może nie. Może szukam czegoś to trochę tańsze lub nieco lepsze dla mojego harmonogramu. A więc mogłem patrzeć na to, co inne możliwości może być tam. Więc mogłem patrzeć na Denver. A z Denver, no, może Mogę lot do Austin. A z Austin, może uda mi się dostać Lot do Phoenix, a z Phoenix do San Francisco. Teraz, nie mam jeszcze zrobić. Bo może istnieje bezpośredni lot z Nowego Jorku San Francisco, który jest idealny dla mnie. A może jest to lot z Miami przez Denver to dużo tańsze. Więc mam jeszcze do zrobienia. I mam jeszcze patrzeć na tych wszystkich, miasta, że ​​nie zostały jeszcze zbadane. Muszę wyczerpująco sprawdzić wszystkie możliwości, że mogę mieć. Więc z Nowego Jorku, może uda mi się dostać lot do Nashville, a od Nashville do Austin. I wtedy wiem, gdzie jestem. I wtedy wiem, że z Austin, mogę lecieć do Phoenix, a z Phoenix do San Francisco. Jeśli lecę pierwszy Miami, choć, może uda mi się lot z Miami do Nashville, lub z Miami do Austin. A teraz Próbowałem wszystkich z możliwości. Mam zbudowany ten wykres, że mi pokazuje wszystkich możliwych tras że mogę być w stanie podjąć. Kiedy stanowią one rodzaje problemów, nie idziemy do reprezentowania im wyraźnie, jak tego wykresu, bo to wykres nie przedstawia historia, gdzie zaszliśmy. Wiedząc, że przyleciał z Phoenix do San Francisco nie mów mi, czy ja przyszedłem poprzez Nashville, lub przez Denver, lub przez Miami. Więc co zrobię, a nie jest Wezmę ten sam problem, a ja reprezentuje ją jako drzewo. A u korzeni drzewa, u góry, włożę miejsce, które zacząłem, Boston. A z Bostonu, będę patrzeć na wszystkich możliwych lokalizacji że mogę podróżować do. No cóż, w tym przypadku, miałem trzy, Chicago, Nowym Jorku i Miami. A potem będę odkrywać każdego te dzieci w drzewie. Z Chicago, widziałem że miałem dwa loty. Mogę latać bezpośrednio do San Francisco lub Denver. Teraz w San Francisco, to jest mój cel. To jest moim celem. To będzie liści tego drzewa. Oznacza to, że nigdy nie pójdę gdzieś po San Francisco. Z Denver, choć, Mogę latać z Denver Austin, Austin do Phoenix, oraz z Phoenix do San Francisco. A teraz znowu mam osiągnęła liść. Mogłem wrócić do następnego miasto, że nie w pełni zbadane. To byłoby Nowy Jork, przejdź z powrotem na górę mojego drzewa, sprowadzają się do Nowego Jorku. Z Nowego Jorku, mogę latać do Nashville, z Nashville do Austin, z Austin do Phoenix, i z Phoenix do San Francisco. I w końcu, jedno miasto ja nie spojrzał na jeszcze, Miami. Cóż, z Miami powiedziałem miałem dwa możliwości, Nashville i Austin. Jeśli lecę do Nashville, a potem lecę z Nashville, do Austin, do Phoenix, do San Francisco. Jeśli lecę do Austin, lecę Austin, do Phoenix, San Francisco. A teraz mam w drzewo. Jest to pełne drzewo. To wszystko z możliwości i wszystkie drogi, że mogę podjąć. Oznacza to, że jeśli zacznę u korzeniem drzewa na górze i idę do jednego z pozostawia, to mówi mi, nie tylko gdzie mam zamiar kończy się, San Francisco, ale mówi mi drogę, która Muszę wziąć się tam dostać. Teraz, który z nich jest najlepszy? Cóż, nic na ten temat Problem jednak mówi mi, który z nich jest najlepszym rozwiązaniem. Może zależy mi najbardziej o ile czasu jestem w powietrzu, lub odległość, że lecę. W tym przypadku, z Chicago do San Francisco może być najkrótszy numer mil w powietrzu. Może dbam o kosztach. A wszyscy wiemy, loty bezpośrednie są zwykle droższe. Więc może jeśli wezmę to rodzaj wstecznej trasie przez Miami, Nashville, Austin, Phoenix, może wtedy Uzyskać niższą cenę. Ale mogę zoptymalizować na żadnym Kryteria, że ​​mi zależy. Kto ma najlepszy w Lot Wi-Fi, lub które lotniska mają najlepsze jedzenie dostępne. I każdy z tych może daj mi inne rozwiązanie że widzę jako najlepsze. Tego rodzaju problemy, gdzie jedziemy budować tę drzewo możliwości, a następnie patrzeć na każdy z tych Poszczególne ścieżki, i zbadać które z tych spełnia kryterium do nas, mamy zamiar zadzwonić te problemy wyszukiwania. I mamy dużo algorytm, z których niektóre widzieliśmy już, aby przejść i zbadać te drzewa. Możemy zrobić to w ten sposób, że ja po prostu tak, jak przeszukiwanie w głąb, dzieje się tak daleko, jak to możliwe, dopóki nie uderzył w skrzydło, a następnie wraca do góry, i będzie z powrotem w dół. Albo możemy zrobić to, co nazywa przeszukiwanie wszerz. Możemy poszerzyć wszystko w górę, a następnie wszystko jedna linia pod nim, a następnie wszystko pod spodem, że jedna linia. Wyszukiwarka te drzewa mają fundamentalne znaczenie dla AI. Ale nie dość się to prawo cały czas. W istocie, w wielu przypadkach że naprawdę obchodzi, chcemy zbudować drzewo, ale w rzeczywistości nie się, aby wszystkie decyzje. Są to sytuacje, zwane kontradyktoryjności wyszukiwarka, znany także a jak napisać grę grę systemy i dostać za to pieniądze. Ale są to rodzaje systemów, gdzie może dostać się do wyboru, kiedy idę z Boston, które miasto idę dalej. Ale po tym, ktoś inny może dostać do podjęcia decyzji o tym, gdzie lecę. Więc zbudować nich Struktury rodzaju, jesteśmy będzie musiał podjąć lekko Inne podejście do niego. Nie będziemy w stanie wystarczy poszukać przez drzewo więcej, bo nie jesteśmy jedna to w kontroli każdego z tych punktów decyzyjnych. Więc wyobraźmy sobie proste gra jak Kółko i krzyżyk. Mógłbym zacząć z zupełnie puste płyty. A w Kółko i krzyżyk, X dostaje do gry w pierwszej kolejności. A więc mogłem myśleć o wszystkim możliwe ruchy, które mogłyby spowodować X. A jeśli jestem jedynym gry X, to świetnie. Mam dziewięć możliwych porusza się, że mogę to zrobić. I może umieścić znak X w jednego z tych dziewięciu pozycjach. Po czym z każdego z nich, I można sobie wyobrazić, co będzie dalej. Również w tym przypadku druga Gracz dostanie się skręcić. O dostanie się skręcić. Oraz każdy z nich, nie będzie osiem różnych miejsc które mogłyby stawiać ich O znacznik. Powiedzmy, że postanowiłem, że jestem zamiar umieścić znak X w centrum. To zawsze wydaje się dobry ruch otwierania. Mogłem patrzeć pod tym, osiem możliwe ruchy, że O producentów. Teraz, gdy gram w X, to wspaniale. Mogę wybrać jeden I przejść do, jeden w środku. Ale teraz O dostaje do wyboru. I nie mają kontroli nad tą decyzją. Ale z każdego z tych możliwe pozycje planszowe, nie ma wtedy inny szereg możliwości. Gdy chodzi się Moja kolej ponownie, chciałbym się wybrać i powiedzieć, dobrze, jeśli wy przenosi się do, dobrze, środkowe miejsce na lewej stronie, a następnie Mam zbiór możliwości gdzie mogę wziąć mój następny ruch. Od tych, mogę rozważyć wszystkie możliwości pod nimi. A następnie O dostanie do wyboru spośród tych. I mogłem utrzymać budowy tego Drzewo się, aż dotarłem do punktu gdzie albo ktoś wygrywa game--, który jest ale powinna być traktowana jako liść node-- lub płyta jest pełny i nikt nie wygrał. I to też będzie węzeł liści. Że będzie remis. Ale trudne rzeczy z tym jest gdyby to było po prostu zwykła wyszukiwarka Problem, że będę w stanie powiedzmy, dobrze, X powinny tu. I O powinny iść droga tam. A następnie X powinny iść tutaj. A następnie O powinny iść droga tam. A następnie X może uzyskać trzy z rzędu, i wygram. A gra się skończy w pięciu ruchów, trzy dla mnie, dwa dla mojego przeciwnika. Ale nie zawsze się do wyboru tego. Więc zamiast tego, co mamy będzie musiał zrobić jest, że będziemy mieć mieć nową strategię. I strategii, które Algorytmy-playing game często używają jest to, co nazywa się minimax. Główną ideą minimax jest to, że jesteśmy zamiar wybrać ruch, który daje nasz przeciwnik najgorszy możliwy zestaw ruchów, które mogą zrobić. Nie robi mi jakieś dobre aby wybrać ruch gdzie Mogę być w stanie wygrać po , to dlatego, że mój przeciwnik nie jest zamiar dać mi szansę. Zamierzają wybrać niektóre straszny wynik dla mnie. Więc mam zamiar zrobić przenieść, że zmusza mojego przeciwnika zrobić coś lepszego dla mnie. W porządku. Zobaczmy, jak to rozegra. Więc tutaj jest nasz algorytm w pseudokodzie. Jedziemy do generowania całe drzewo gry. Zamierzamy budować cała konstrukcja. A potem będziemy przejść. A na samym dole w każdej z węzły końcowe, w każdym z liści, oszacujemy jak cenne jest to, że do mnie? I jedziemy do rzeczy, wartości, które są dobre dla mnie, jako pozytywne. Rzeczy, które nie są dla mnie dobre będzie mniej pozytywne, lub zero, lub nawet ujemna. Tak więc w Kółko i krzyżyk, może zwycięstwo jest dla mnie dobre. To jest jeden. I krawat jest zero. I coś, że to strata dla ja, może to jest negatywny. Ważne jest to, że lepiej to jest dla mnie, tym wyższy wynik odbiera. Z tych możliwości Na dolny, a następnie będziemy filtrować górę. A kiedy to moja szansa, aby wybrać Wśród zbioru alternatyw, Wybiorę ten, który jest uzyskała najwyższą ocenę. A gdy to jest mój Przeciwnicy włączyć do wyboru, Będę zakładać, że oni będą wybrać jedną z najmniejszą liczbą punktów. I jeśli mogę to zrobić na drodze do wierzchu drzewa Ja wybrałem drogę, która daje mnie najlepszy wynik, który może uzyskać, zakładając, że mój przeciwnik sprawia, że ​​wszystkie odpowiednie ruchy. W porządku, więc zobaczymy to w pierwszej akcji. A potem będziemy rzeczywiście spojrzeć na kod dla niego. Więc wyobraź sobie, mam to wielkie drzewo. A teraz nie gram Kółko i krzyżyk. Chciałem ci dać coś trochę bogatszy. Więc mam trochę gra, gdzie istnieje wiele różnych wyniki że mogę mieć na końcu. I tak zbudować to kompletne drzewo. A ja się przenieść pierwszy. Jestem u korzeni drzewa. I mam do wyboru that-- więc mogę zmaksymalizować poprzek pierwszego węzła. I wtedy mój przeciwnik dostaje iść. A potem mam iść jeszcze raz. Więc się na dole, mam zestaw możliwości, że mogę wybierać, różne stany końcowe gry. Jeśli jestem w które lewej rogu, i widzę, że mam do wyboru pomiędzy osiem, a siedem, a dwa, Cóż, jestem tym, który dostaje do wyboru. Więc mam zamiar wybrać najlepszy z nich. Mam zamiar wybrać osiem. Więc wiem, że jeśli kiedykolwiek dostać się do tego punktu, Będę w stanie dostać się, że osiem punktów. Jeśli skończę w następnym punkcie powyżej, w ciągu następnego węzła, dziewięć, jeden, lub sześć, dobrze, jestem zamiar wybrać najlepszy z nich. Wybiorę dziewięciu. Jeśli mam do wyboru dwa, cztery, jeden, Wybiorę cztery, najwyżej. Teraz, gdy patrzę na poziomie powyżej, że mój przeciwnik to dostaje do wyboru. Więc mój przeciwnik dostaje wybrać, czy chcę, aby dać mu tym, co się dzieje aby mu osiem punktów, czy mogę dać mu coś, co jest zamiar dać mu dziewięć punktów, lub tym, co się dzieje dać mu czterech punktów? I mój przeciwnik, jest racjonalne, będzie do wyboru minimum te, będzie wybrać cztery. I mogę to zrobić przez całego drzewa. Mogę iść do środkowy zestaw trzech. I mogę wybierać między jeden, trzy i pięć. I mam do wyboru. Więc wybrać pięć. Mogę wybrać trzy, dziewięć, lub dwa. Mam do wyboru, więc wybrać dziewięć. Sześć, pięć, czy dwa, wybieram. Mam do wyboru sześć. Poziom wyżej, że, który dostaje do wyboru? Kto dostanie do wyboru? Drugi facet, mój przeciwnik. Więc wybrać pięć, dziewięć lub sześć, które? PUBLICZNOŚCI: Pięć. GŁOŚNIK: Oni wybrać pięć. Oni się wybrać minimum. A następnie ostatni, wybrać jeden, dwa lub trzy. Mam do wyboru, więc wybrać trzy. Dziewięć, siedem, lub dwa, wybrać dziewięć. I 11, sześć lub cztery, wybrać 11. Mój przeciwnik wybiera trzy, dziewięciu lub 11, wybiera minimum. On daje mi trzy. A na koniec na górze drzewo, mogę wybrać ponownie. I mam do wyboru między cztery, pięć lub trzy. Więc biorę pięć. Jeśli mam kontrolować wszystko, ja bym na drogę, która doprowadziła do 11. Ale ja nie rozumiem na taki wybór. Jeśli pójdę tą drogą. Mój przeciwnik zmusi mnie do Wybór, który prowadzi do trzech. Tak więc najlepsze, co mogę zrobić, to do podjęcia tego środkowy oddział, dokonać tego wyboru, który jest w końcu będzie prowadzić mnie do pięciu punktów. To, co robi minimax. W porządku. Rzućmy okiem na to. Więc tutaj w CS50 IDE to program, który realizuje minimax do gry Kółko i krzyżyk. Zamierzamy budować do reprezentacji. Mamy zamiar mieć dwa opponent-- lub dwóch graczy, nasz komputer Odtwarzacz i osoba grająca. Numer jeden gracz będzie grał O. To będzie gracz maszyna. Oni się przenieść sekund. A drugi gracz, nasze Odtwarzacz ludzka, będą X. I aby moje życie trochę proste, zamierzam na etykiecie, że negatywny jednego gracza. Więc może po prostu pomnożyć poprzez negatywny zamienić między jednym a drugim graczem. W porządku, więc rzućmy okiem na co my właściwie zrobić. Jedziemy zdefiniować naszą płytę. To będzie dobrze, będziemy aby mogła ona być trójkami, lub możemy nawet grać pięć przez pięć lub siedem przez siedem Kółko i krzyżyk Gdybyś jak, na podstawie jakiegoś wymiaru D. A my mamy parę funkcji pomocniczych że będziemy robić takie rzeczy jak zainicjować screen-- lub przykro, zainicjować nasze zmienne, wyczyść Ekran, wyciągnąć płytę na ekranie, jeden, który sprawdza pokładzie aby zobaczyć, czy nie tam jest zwycięzca, który analizuje za pomocą wiersza polecenia, po prostu pomóc, to taki, który czyta w wejście i jedna funkcja nazywa się minimax. I to jest jeden my najbardziej zależy. Ale spójrzmy najpierw na główną. Co robimy? Cóż, będziemy analizować naszą linię poleceń, wystarczy przeczytać i zobaczyć, co Płyta wymiar chcielibyśmy mieć. Będziemy inicjować naszą płytę. A potem będziemy wprowadzić jeden duże dzikie pętli, wielokrotnie akceptuje ruchy, aż gra się wygrał, czy nie ma już żadnych ruchów. Za każdym razem idziemy przez które pętli, będziemy wyczyścić ekran. Będziemy rysować płytę na ekranie. A my świadomie rodzaju abstrahując nich z dala, jak podprogramów, tak, że nie musisz martwić się zbyt wiele o szczegółach, jak się stało. Będziesz miał później dzisiaj kod. A jeśli chcesz przejrzeć i dowiedzieć się, można zobaczyć je wszystkie. Ale będziemy rysować płyty na ekranie. A potem będziemy sprawdzać i zobaczyć, czy mamy zwycięzcę? Czy ktoś wygrał tę grę? Jeśli tak, będziemy drukować z wiadomości zwycięstwa. A my zakończyć grę. Będziemy również sprawdzić i sprawdzić, czy jest remis. To będzie łatwe, aby zobaczyć, czy jest remis. Oznacza to, że wszystkie miejsca są zajęte, ale nie było jeszcze zwycięzcą. Możemy zadeklarować krawat i zrobienia. Wtedy prawdziwa meat-- jeśli to gracz maszyna, my to pozwolić Odtwarzacz maszyna do wyszukiwania poprzez zastosowanie tego algorytmu minimax, aby znaleźć najlepszy ruch, który może to zrobić. A potem kładziemy pojedynek w górę. W przeciwnym razie, jeśli jest to osoba grająca, będziemy czytać jakieś wejście od człowieka. A potem, czy to ludzkie graczy lub gracz maszyna, zrobimy kilka mało bity kontroli błędów, upewnić się, że pozostaje w granicach rzeczywistych wymiarów tablicy że mamy, upewnij się, że przestrzeń jest pusta, że nikt nie jest umieścić Kawałek tam już. A potem po prostu umieścić kawałek na płycie, zmienić odtwarzacz do następnej warstwy, a zwiększyć liczbę porusza się stało. To główny pętli na nasza gra tic-tac-toe. Minimax, to jest dokładnie to, algorytm, że my wcześniej. Jedynym regulacji, które zrobiliśmy tak, że może odgrywać większa płyty wymiarowe to mamy przechowywane ten dodatkowy parametr zwany głębokość. I głębokość tylko mówi, czy jestem wyszukiwanie w dół przez tego drzewa a ja się tak daleko w dół poza pewnej głębokości poziomu że po prostu nie chcą iść dalej, Mam zamiar się zatrzymać i po prostu ocenić płytę w tym punkcie. Będę sprawdzić i zobaczyć, czy jest zwycięzcą. Jeśli jest zwycięzcą, ja ich zwrotu. W przeciwnym razie, pójdę przez pętlę. I powiem, dla wszystkich możliwe lokalizacje że mogłem być może podjąć jak mój ruch, będę zbudować hipotetyczny zarząd, który obejmuje mój ruch na tej płycie, a następnie rekurencyjnie wywołuje Minimax. Jeśli jest to mój ruch, mogę znaleźć taki, który ma największy wynik. Jeśli jest to posunięcie mojego przeciwnika, znajdziemy ten, który ma minimalny wynik. A wszystko inne jest tylko rekord prowadzenie. W porządku, więc zobaczymy ten bieg. Faktycznie, może się da dostać kilka wolontariuszy przyjść i grać Kółko i krzyżyk. [Niesłyszalne] jednym, a jeden więcej, dwa, właśnie tam. Chodź na górę. Więc idź naprzód i ponownie uruchomić ten całkowicie. Tak, cześć. PUBLICZNOŚCI: Cześć. GŁOŚNIK: Jak masz na imię? PUBLICZNOŚCI: Gorav. GŁOŚNIK: Gorav. PUBLICZNOŚCI: Jestem Layla. GŁOŚNIK: A Layla i Layla, przepraszam. Chodź na górę. Gorav, będziemy mieć ty pierwszy. I mam zamiar zapytać się nie strasznie dobry gracz tic-tac-toe. OK, więc wszystko ciśnienie jest wyłączony na Ciebie. Zobaczmy jednak, że nasza maszyna Gracz może rzeczywiście zrobić coś inteligentnego. Więc idź naprzód. Masz zamiar wpisać które koordynują chcesz umieścić X w. A0, OK, a maszyna poszła i od razu umieścić swoje piętno na A1. Umieść O na płycie. W porządku, teraz iść do przodu. Gdzie chciałbyś pójść? C2. Nasz zawodnik maszyny podjęła środkowy kwadrat, zablokował Cię. Tak, że był dobry, mądrą rzeczą na to zrobić. Masz zablokowane go. To doskonała. To wykonuje rzut rożny tam. I to będzie zmuszać do wziąć ostatnia przestrzeń, B0. A gra kończy się remisem. Ale grał rozsądny Gra przeciwko tobie, prawda? Dobrze, dziękuję bardzo, Gorav. [OKLASKI] Dobrze, Layla, jedziemy się gry na Ciebie tutaj. PUBLICZNOŚCI: Och, to świetnie. GŁOŚNIK: Mamy zamiar dać masz cztery czterech Kółko i krzyżyk. Teraz, cztery koła, trzeba wygrać z czterech z rzędu, a nie trzy w rzędzie. I to wszystko jest twoje. Więc Layla wziął D1. Jesteśmy teraz będzie przestrzegać nasz komputer odtwarzacz tutaj. Trzy po trzy Kółko i krzyżyk jest rodzaj rzeczy, że jest to łatwe dla nas wszystkich. Ale to i tak miło zobaczyć Gracz komputerowy podejmowania mądrych posunięć. Cztery czterech dostaje być trochę trudniejsze. Ładnie wykonane. W porządku, więc Layla pod wykończone. Aha, i nie powinno się skończyć. Ale zróbmy jeszcze tutaj. Więc Layla, dziękuję. Ładnie wykonane. [OKLASKI] Tak więc nasz zawodnik tic-tac-toe idzie przez i znajduje pozycje, rozwiązuje je za pomocą tego Minimax. A ja miałem ustawienie głębokości na tym tak, że nie byłoby to zbyt szybko, pewnie dlatego Layla była w stanie go ładnie do przodu jak ona, i zrobił bardzo dobrze. Ale te systemy, które po prostu przejść i brute force głębiej i głębiej i głębiej, i zachować znalezienia rozwiązania że trzeba te rodzaje systemów są bardzo skuteczne w nich dobrze, standardowe gry planszowe. I rzeczywiście, gdy patrzymy na trzy przez trzy Kółko i krzyżyk gra, to jest po prostu rozwiązać problemu. I to jest wspaniałe schemat Randall Munroe co z xkcd, pokazano które poruszają zalecana podjąć, biorąc pod uwagę ruchy przeciwnika. To jest coś, co się dało łatwo określić z wyprzedzeniem. Ale co się stanie, jak dostać się do bardziej bardziej złożone gry, skomplikowanych gier, gdzie istnieje większe płyty, bardziej możliwości, głębiej strategia? Okazuje się, że to brute force szukając wciąż nie dość dobrze, z wyjątkiem kiedy dojdziesz do punktu, w przypadku, gdy drzewo jest tak duża, że nie może reprezentować wszystko. Kiedy nie można obliczyć całe drzewo, gdy nie możesz iść do przodu i Push się do punktu, gdzie ty zdobyć całe drzewo w pamięci, czy można go dostać w pamięci i będzie po prostu zabierze Cię zbyt długo, aby przeszukać to, co musisz zrobić coś inteligentniejszego. Aby to zrobić, musisz zrobić dwie rzeczy. Po pierwsze, trzeba znaleźć jakiś sposób ograniczając głębokość. Cóż, to jest OK. Możemy znaleźć jakieś fajne, niezbędne minimum i powiedzieć, można tylko iść tak głęboko. Ale gdy to zrobisz, to znaczy ci mają te częściowo niekompletne deski. I masz do wyboru, lubię to częściowo niepełne wyżywienie, Ten częściowo niekompletne lub wyżywienie? A w naszych czterech przez cztery gra tic-tac-toe, nasz gracz komputerowy zsiadł na dół i powiedział, Mam dwie różne płyty. Żaden z nich nie jest zwycięstwo. Żaden z nich nie jest strata. Ani jeden remis. Jak wybrać między nimi? I nie mają inteligentny sposób na osiągnięcie tego. Widzimy tego rodzaju Ocena zdarzają się cały czas jak dostać się do bardziej skomplikowanych gier. Szachy to świetny przykład. W szachy, musimy najpierw wszystkim, większy pokładzie. Mamy znacznie więcej kawałków. I rozmieszczenie tych elementów i sposób, że te kawałki przenieść ma zasadnicze znaczenie. Więc jeśli chcę korzystać Minimax, Muszę być w stanie określić, i powiedzieć, to forum, gdzie nikt nie wygrywa się lub przegrywa jeszcze, jest w jakiś sposób lepszy niż ten drugi wyżywienie, gdzie nikt nie wygrywa się lub przegrywa. Aby to zrobić, mogę zrobić rzeczy takie jak I może po prostu policzyć, ile sztuk mam i ile sztuk masz? Albo może dać różne szt różne punkty. Moja królowa jest warte 20 punktów. Twój pionek jest wart jeden punkt. Kto ma więcej punktów w sumie? Albo mógłbym rozważyć takie rzeczy jak, kto ma lepszą pozycję wyżywienie? Którego tura jest obok, wszystko, co się da należy ocenić dokładniej która z tych możliwości jest lepiej bez wyczerpująco rozważa każdy ruch, który może przyjść później. Teraz do tej pracy, jedna z rzeczy, która jest stanie się naprawdę ważne dla nas nie tylko w ruchu prosto do określonej głębokości limitu, ale jest w stanie powiedzieć, jeden z tych pomysłów, które mam mają się tak źle, że jest to nie warto zastanowić się, wszystkie możliwe sposoby że rzeczy mogą iść coraz gorzej. Aby to zrobić, dodamy do minimax zasada zwana alf-beta. I alfa-beta, mówi, jeśli masz zły pomysł, nie trać czasu na próby dowiedzieć się dokładnie, jak źle jest. Więc tutaj jest to, co mamy zamiar zrobić. Zamierzamy podjąć takie same Zasady, które mieliśmy wcześniej, tego samego typu minimax poszukiwań, tylko my jesteśmy będzie śledzić nie tylko z Rzeczywiste wartości, które posiadamy, ale będziesz śledzić najlepsze możliwe Wartość że mogę dostać, a najgorsze możliwe Wynik mogłem. I za każdym razem, najgorsze możliwe rzeczą szuka prawdopodobne, Będę zrezygnować z części drzewa. A ja nawet nie przeszkadza patrząc na to już. W porządku, więc sobie wyobrazić, że możemy zacząć z tego samego drzewa dokładnym gry. A teraz mamy zamiar iść znowu w dół, w dół do tego w lewym dolnym rogu. I w tym dolnym lewym rogu, mamy wyglądać i oceniamy ten dział. Może to cztery czterech Kółko i krzyżyk wyżywienie, a może to szachownicy. Ale spójrz na to, i oceniamy Opisz i otrzymujemy wartość ośmiu. W tym momencie wiemy, że mamy zamiar uzyskać co najmniej osiem punktów z tej dolnej decyzji. Nie ma znaczenia, co druga dwa to, że siedem i dwa. Mogą być dowolne wartości chcieli być. Mamy zamiar dostać się na najmniej osiem punktów. W porządku, ale mogliśmy iść dalej i sprawdzić. Może któryś z nich jest lepszy niż osiem. Patrzymy na siedmiu. Czy to jest lepsze niż osiem? Nie, to nie zmienia Naszym zdaniem w ogóle. Patrzymy na dwóch. Czy to jest lepsze niż osiem? Nie, to nie zmienia Naszym zdaniem w ogóle. Więc teraz wiemy, że wyczerpane zostały wszystkie tam możliwości. Nie dostaniesz nic lepszego niż osiem. Jedziemy, aby uzyskać dokładnie osiem. I tak możemy zmienić ten węzeł i powiedzmy, że jest już pewne. Idziemy w górę o jeden poziom wyżej, że. A teraz coś wiemy o tym poziomie minimalizacji. Wiemy, że nigdy nie dostaniesz więcej niż osiem punktów, jeśli idziemy w dół że kierunek. Bo nawet jeśli ci Pozostałe dwie gałęzie okazują być fantastyczne i warto tysiące punktów każda, nasz przeciwnik da nam Minimalna, i daje nam osiem. Dobrze, dobrze, zobaczmy. Będziemy iść dalej tą drogą. Schodzimy do tej środku po lewej stronie. Patrzymy w dół i widzimy tam jest dziewięć. Wiemy, że mamy zamiar się co najmniej dziewięć punktów przez schodząc że środkowa droga. I w tym momencie, możemy po prostu wstrzymać. I można powiedzieć, słuchaj, wiedzieć na poziomie powyżej, Mam zamiar się nie więcej niż osiem wskazuje, przechodząc w dół w tym kierunku. Ale gdybym poszedł na środku ścieżka zamiast lewej ścieżce Chciałbym uzyskać co najmniej dziewięć punktów. Mój przeciwnik nie będzie pozwól mi iść tą drogę pośrednią. Oni się wybrać. I zamierzamy wybrać Droga w lewo w kierunku ośmiu, a nie na środku kierunku co jest co najmniej dziewięć punktów. Więc w tym momencie, ja zatrzymać. I powiem, że wiesz, co? I nie trzeba szukać więcej w tym kierunku. Bo nigdy nie zamierzam się tam dostać. Mogę pominąć tego jednego, i mogę przejść nad tym sześciu, dlatego, że nigdy nie zdarzy. Więc pójdę na dół i będę rozważyć kolejną możliwość. Idę tam i mówię, widzę dwa. Wiem, czy mogę tu jestem dostanie co najmniej dwa. OK. I wracamy. Widzę cztery. Wiem, że będzie się co najmniej cztery. Jest jeszcze wiele między cztery i osiem lat, choć. Więc dalej. Patrzę i widzę, jest jedna. W porządku, wiem, jeśli Ja się na to rozwiązanie, Mam zamiar być w stanie wybrać cztery. Co mój przeciwnik zrobi? Między czymś, co daje mi osiem, coś, co daje mi cztery, i coś, daje mi co najmniej dziewięć, dobrze, że zamierza dać mi cztery. I wiem, że teraz u bardzo góry, idę aby być w stanie uzyskać co najmniej czterech punktów na tej grze. Cała idea alfa-beta jest odcięcie częściom drzewa tak że nie patrzę na nich więcej. Ale to wciąż wygląda jak byłem patrząc na dużym drzewie. Trzymajmy spada. Pójdziemy w dół następny teraz. Na dole, mogę znaleźć jednego. Wiem, że będzie się co najmniej jeden. Ciągle szuka. I znaleźć trzy. Wiem, że będzie się co najmniej trzy. I wracamy. I znaleźć pięć. Wiem, że dostanie pięć jeśli dostanę w tej ścieżce. I wiem też, czym że mój przeciwnik, jeśli I wybrać środek trzy duże możliwości wyboru, on będzie mi dać coś, co jest pięć lub mniej. OK. Mogę iść dalej istnieje. Mogę spojrzeć w dół, a ja Można powiedzieć, co mam dostać, jeśli pójdę na dół środku drogi? Mam zamiar się dobrze, trzy nie. Mam zamiar coś to co najmniej trzy. Jest jeszcze rzeczy, między trzy i pięć lat, więc szukać dalej. Och, dziewięć, będę na pewno się, że w ciągu trzech. Mam zamiar uzyskać co najmniej dziewięć jeśli iść tą drogę pośrednią. Teraz mój przeciwnik zatrzymuje się i mówi: patrzeć, nie ma sensu już. Wiem, że mój minimalizacja przeciwnik, jest zamiar dać mi coś, co jest mniejsza lub równa pięć, a nie rzecz, która większy niż lub równy dziewięciu. Ja zatrzymuję. Nie patrzę na to bardziej. I wracamy. Patrzę na ten jeden. Do dołu, znajdę sześć. Wiem, że będzie się co najmniej sześć. I co mogę zrobić? Mogę przestać. Ponieważ nie jest to wybór pomiędzy coś, co jest co najmniej sześć i coś, co jest mniej niż pięć, on da mi rzeczy to mniej niż pięć. I teraz wiem, że będę aby uzyskać dokładnie taki wybór. Zamierzam się, że pięć wyboru. Wracam do góry. Które mam zamiar wybrać coś to jest większa niż lub równa cztery, lub coś, co jest równa pięć? Mam zamiar wziąć coś to jest co najmniej pięć. Idę w dół ostatnią drogę, wszystko aż do dna. Tam jest jedna. OK, przynajmniej mam zamiar dostać jeden punkt. I wracamy. Dwa, och, to nie jedna. Mam zamiar dostać co najmniej dwa. I znaleźć trzy. Wiem, że będzie się trzy. I punkt wyżej, że, mój przeciwnik będzie dać mi coś, co jest mniejsza lub równa trzy. A teraz mogę przestać. Ponieważ w wybór między mną jest w stanie uzyskać pięć i mojego przeciwnika daje mi coś mniej niż trzy, Ja zawsze zajmie to pięć. Więc nie ocenia, że Dolna część drzewa w ogóle. Teraz może się to wydawać niewielkie. Ale kiedy małe kawałki arytmetyki, większe i mniejsze niż może odciąć całe części Drzewo to rośnie w postępie geometrycznym, która prowadzi do ogromnego kwota oszczędności, oszczędności które są na tyle duże, że może zacząć grać konkurencyjnie przy bardziej skomplikowanych gier. Dobrze, jeśli spojrzymy na wielkość i złożoność różnych gier, Kółko i krzyżyk był nasz prosty przykład. Mamy małą deskę, trzy przez trzy. Dostajemy co najwyżej średnio około czterech różnych wyborów jak przejść grę. Mamy gdzieś około 10 do piąty możliwe różne liście. I budowanie Kółko i krzyżyk Gracz, dobrze, po prostu to zrobił. To łatwe. Jeśli idziemy do czegoś więcej skomplikowane, jak Connect Four. Pamiętasz to gra, w której upadłego małe żetony w? Jest to sześć na siedem wyżywienie, nie, że znacznie większy, wciąż ma w przybliżeniu ten sam rozgałęzienia czynnikiem Kółko i krzyżyk. Mam około czterech wyborów gdzie mogę umieścić rzeczy w. Ale teraz, mam dużo więcej prowadzi, 10 do 21 potęgi. To jest coś, co jest proste wystarczy, że go rozwiązać od razu. Warcaby, bardziej complex-- was dostał osiem przez osiem pokładzie. Jesteś tylko w połowie je w każdej chwili, choć. Masz rozgałęzienia Czynnikiem, który jest około 2,8. Cóż, mamy kilka porusza można wziąć. Masz około 10 do 31 liści, większe i większe, i większe przestrzenie. Jak mam przeszukiwać te coraz większe przestrzenie, wtedy takie rzeczy jak alfa-beta i jest w stanie odciąć całe oddziały staje się niezbędne. Teraz, warcaby było dość łatwe w 1992 roku. Program komputerowy o nazwie Chinook pokonać warcaby świata mistrz, Marion Tinsley. I od tego czasu nie ma Mistrz ma ludzki gracz w stanie pokonać najlepszych systemy obliczeniowe. Jeśli spojrzymy na coś takiego jak szachy, teraz znowu mamy osiem przez osiem pokładzie. Mamy jednak dużo bardziej skomplikowana sztuk, znacznie bardziej skomplikowane ruchy. Mamy współczynnik rozgałęzienia o 35, 35 możliwe ruchy na średniej że mogę wziąć, a stan Przestrzeń, liczba liści która jest uprawiana do 10 do 123. władzy, ogromna liczba możliwości. Nawet jeszcze, nowoczesne procesory są w stanie to zrobić skutecznie. W 1995 roku, a następnie w 1997 roku, komputerem Program o nazwie Deep Blue zbudowany przez IBM które prowadził na gigantycznym superkomputer pokonać aktualnego mistrza świata, Garri Kasparow. To był punkt zwrotny. Dziś jednak, że sama obróbka Moc siedzi na moim MacBooku. Szybkość przetwarzania utrzymuje coraz szybciej i szybciej. Możemy ocenić bardziej Płyty szybciej i szybciej. Ale co ważniejsze, mamy lepsze funkcje oceny i lepiej przycinanie metody. Więc możemy przeszukać Przestrzeń bardziej kompleksowo. Największy na pokładzie gry, które możemy myśleć, coś Go to dostał 19 przez 19 planszę, teraz nagle, że jesteśmy poza punkt gdzie systemy obliczeniowe mogą wygrać. Nie ma obliczeniowa System tam że może pokonać profesjonalnego odtwarzacza Go. Najlepsze systemy dziś Ranking go o rodzaj dobrym poziomie amatorskim. Tak więc jest jeszcze trochę się tam, że nie można się jeszcze. W porządku, to tradycyjne gry planszowe, Te rodzaje systemów, w których budować ten Minimax, czy to ma alfa-beta lub nie, algorytmy te pracują ponieważ istnieją pewne ograniczenia. Mamy doskonałą informację o świecie. Wiemy, gdzie wszystkie elementy są. Świat jest statyczna. Nikt nie robi, aby przesunąć kawałki wokół, a ja jestem siedzi tam myśląc, biorąc moja kolej. Jest takie miejsce akcji to dyskretny. Mogę umieścić tutaj mój pionek, czy mogę umieścić tutaj mój pionek. Nie wolno mi umieścić mój pionek na linia między dwoma kwadratami. I wreszcie działania są deterministyczne. Wiem, że jeśli powiem, gawron do rycerza trzech, moja wieża ma skończyć się w rycerza trzy, tak długo, jak jest to ważny pojedynek. Nie ma wątpliwości o tym. Teraz, jak idę do więcej różne rodzaje gier, Musimy przełamać te założenia. Co, jeśli pójdę do czegoś jak klasycznych gier wideo? Oto wybór wideo gry z Atari 2600. Czego mam się tam? Mam Frogger, przestrzeń Invaders, Pułapka, i Pac-Man. Jakie rodzaje środowisk mam tu teraz? Które z tych założeń muszę złamać? Cóż, to zależy od gry. Mogłem grać w szachy na 2600, a to będzie tak jak to było wcześniej. Dla większości z tych systemów nie jest kompletną wiedzę o świecie. Jest całkowicie deterministyczne działania. Ale zwykle, na świecie już nie statyczne. Oznacza to, że podczas gdy ja siedzę tam czeka, coś się porusza. Duchy przychodzą po mnie. Skorpion jest po mnie pod spodem. Przez najeźdźcami z kosmosu coraz bliżej. Jak dobrze możemy zrobić wobec nich? Kilka lat temu, Google był projekt o nazwie DeepMind, gdzie szkoleni komputera Program do gry Atari 2600 gier. A jeśli uważasz, że to nie jest poważna biznesowych, wyniki ich badań zostały opublikowane w Nature, więc po prostu tak dobre, publikacja jak można ewentualnie dostać. A oto, jak dobrze wykonana. Mają algorytm, który siedział i patrzył tylko wejść na ekranie. To ma żadnych instrukcji w ogóle o zasadach gry. A to miał dowiedzieć się, oparła swoją ocenę, jak dobrze to robi. Był to system, który stosuje się coś nazywa uczenie zbrojenia. To znaczy, że spojrzał na jego wynik. A jeśli to ma dobrą ocenę, to powiedział, Należy Pamiętam te rzeczy. I zrobić te ponownie. A jeśli to ma niską ocenę, to powiedział, Nie powinienem znowu robić te rzeczy. Jest to wydajność z tych przeszkolonych systemów mogą grać dla Kilka godzin w każdej grze, porównywana z profesjonalnych graczy. Więc dla wszystkich gier, które są Po lewej stronie tej linii, Ten samouk program komputerowy przewyższyła profesjonalnych graczy. A za wszystko do prawo, profesjonalni gracze wciąż najlepszy. Czegoś, co wiedział nic na temat zasad, które nic nie wiedział o strukturze gry, jest to imponująca wydajność. I to jest to, co jesteśmy w stanie zrobić dzisiaj. OK, można powiedzieć, ale jeśli myśleć o AI w grach, Zwykle myślimy o Rzeczy, które możemy w rzeczywistości usiąść i grać przeciwko. Jeśli siadam i gram StarCraft lub Gram Sito darmowe, przeciwnik komputerowy jest Osoba kontrolowanie Zergów, lub kontrolowania innych cywilizacji. Jak ci gracze rzeczywiście znaleźć swoje ruchy? Cóż, te gry są tak skonstruowane, taki sam sposób jak nasze gry planszowe, te gry, które będziemy zbiorczo nazywamy cztery gry X, zbadać, expand-- zapomnieć o nich. Czym oni są? Przeglądaj, poszerzyć i gaszenia, Myślę, że jest ostatni. Ale one są w zasadzie poszukiwania i przejęcie gry. Zazwyczaj przeciwnik komputerowy nie ma ograniczone informacje. Nie wiem dokładnie, co to dzieje się za tym mgle wojny. Oni nie dostać się do zobaczyć, co masz w ekwipunku. Jest to środowisko, które jest dynamiczne. Wszystko zmienia się przez cały czas. Nie siedzieć i doczekać, aby wziąć swój ruch. Ale większość rzeczy nadal są dyskretne. I umieścić moje miasto tutaj. Albo mam umieścić moje miasto tutaj. I wszystko jest deterministyczny. Kiedy mówię, przenieść jednostkę tutaj, mój zespół porusza się tu, chyba że przeszkody nagle wchodzi w grę. Teraz, to nie wszystko komputerowy gry, które są tam dzisiaj. Jeśli pójdę i gram w pierwszej osobie rodzaju gry, coś jak złodziej lub Fallout lub Skyrim lub Halo, teraz Mam przeciwników komputerowych że to, że obecnie nie ma bardzo inna sytuacja. Mają znowu ograniczone informacje. Tylko oni mogą zobaczyć pewne pole widzenia. Środowisko jest wciąż dynamiczne. Coś się zmienia cały czas. Ale teraz mam o wiele więcej ciągła przestrzeń działania. I można tylko zerkając trochę na drzwiach. I kilka gier, moje działania są stochastyczne. Mogę spróbować przeskoczyć tej ścianie, ale mam szansę niepowodzeniem. Tego typu gry są coraz bliżej bliżej rodzaju regulatory że budujemy w robotyce. W robotyki, musimy założyć, że mamy ograniczone informacje. Mamy czujniki powiedz nam o świecie. Mamy zawsze zmieniający się, dynamiczne środowisko. Mamy świat, w którym przestrzeń jest ciągła, niż dyskretne. I nasze działania, gdy staramy je, mają szansę niepowodzeniem. A w rzeczywistości, nowoczesne gry Sterowniki dla przeciwnika Halo, lub dla tych NPC w Skyrim, w zasadzie uruchomić małe architektur robotyki. Czują świat. Budują model świata. Oni obliczyć na podstawie zestawu cele, które chcieliby osiągnąć. Planują działań w oparciu na to, co wiedzą. A to są dokładnie te same rodzaje systemów, które budujemy w robotyce. Zatem te architektury, do przynieść to z powrotem razem, są często takie same. Zobaczmy więc, jeśli widzimy, że. Wróćmy do naszego Przykładem tic-tac-toe. I mam zamiar zadać kilka moich post-docs, aby przyjść i pomóc mi. Więc Chen Ming i Alessandro i Olivier, jeśli faceci przyjdzie się. A ja będę potrzebował para wolontariuszy OK, widziałem ręki się prawo tam w środku. Pozwól mi wziąć jeszcze jedno, ktoś dodatkowo z tyłu może. Dobrze, tam. Chodź na górę. W porządku. Więc weźmy tę pokrywę w dół. A jeśli faceci przyjdzie w prawo z powrotem tutaj dla mnie fantastyczne. Więc to jest robotem o nazwie Baxter. Baxter jest robotem, który jest platforma handlowa, zaprojektowane przez firmy o nazwie Rethink. Oraz robot jest przeznaczony do produkcji na małą skalę. Ale dziś mamy zamiar używać go do gry Kółko i krzyżyk. Teraz, ten robot jest również coś to relatywnie wyjątkowa. Bo jeśli stały wszędzie blisko standardowej automatyki przemysłowej System, byłbym w samym grobie niebezpieczeństwo zranienia. Baxter, jest jednak przeznaczone do stosunkowo bezpieczne do interakcji z. A więc mogę naciskać na tej robocie. I widać, że to trochę nieco elastyczny, jak porusza się wokół. I mogę go zmienić położenie gdzie chciałbym to przejść. Teraz w normalnym układzie zautomatyzowanych mielibyśmy komplet złączy tutaj który bezpośrednio reagowanie na polecenia pozycji. I nie koniecznie dbać jeśli się poruszały przez wolnym powietrzu lub jeśli się poruszały przez moją klatkę piersiową. OK. I zazwyczaj, jeśli były Obok systemu przemysłowego chcesz iść nigdzie w pobliżu niego. Nie będzie żółta Taśma bezpieczeństwa wokół niego. Ten system ma nieco inna konstrukcja aby być bardziej przyjazny i łatwiejszy ludzi do interakcji z, tym, że w każdym połączeniu, nie ma wiosny. I zamiast sterowania dokładną pozycję, kontrolować pewną Moment, pewna ilość siły, że chcemy być na tej wiosny. W porządku, więc niech mnie ma tu naszych wolontariuszy. Cześć jak masz na imię? PUBLICZNOŚCI: Louis. GŁOŚNIK: Louis. Miło Cię widzieć. I? PUBLICZNOŚCI: David. Prelegent: David. Miło cię poznać. Jeśli faceci będą czekać tu na chwilę, Mam zamiar dać ci szansa, aby to zrobić. Więc ten robot, jeśli pojawią się i jeśli delikatnie naciskać na nią, masz zamiar zobaczyć, że porusza się trochę. A jeśli chwycić go w prawo tutaj na nadgarstku tak powyżej, gdzie te przyciski są, to Wygląda na to, należy chwycić przycisków, ale chwycić tuż nad nim, a nie, będziesz w stanie bardzo delikatnie manipulować w przestrzeni. Louis, chcesz spróbować? Więc dać go tylko trochę naciskać na początek. A potem, jeśli wkładać palców tam i trzymać się tego, ponieważ będzie to przenieść na ciebie czasu. Dobra, chcesz spróbować? Chodź na górę. Więc daj to tylko delikatne wcisnąć tam rozpocząć. Możesz poczuć, jak to jest. A potem, jeśli złapał go właśnie tam, będziesz w stanie manewrować na około. OK. Więc zwykle, tego rodzaju robot będzie zostać wykorzystane do produkcji na małą skalę. I mam zamiar przenieść tę rękę tak dół z drogi trochę tutaj. Ale dziś mamy zamiar użyć sam system gry Kółko i krzyżyk na podstawie minimax, że zbudowane wcześniej. OK? Tak, jesteście siebie zamiar zagrać. Louis, masz zamiar być pierwszy. Pozwól mi tylko trzymać się tutaj na chwilę. Będę miał stanąć w prawo tutaj, tak każdy może cię zobaczyć. Czy wy założyć tutaj? ROBOT: Witamy. Zagrajmy w Kółko i krzyżyk. Nie podnoś token przed Muszę powiedzieć, że to jest twoja kolej. I rozpocząć grę. To jest moja kolej. GŁOŚNIK: Teraz, jeśli można przyjąć jedną z Twoje kawałki i iść do przodu i umieścić go. ROBOT: To jest twoja kolej. [ŚMIECH] To jest moja kolej. [ŚMIECH] [ŚMIECH] Twoja kolej. GŁOŚNIK: Rasa ludzka jest liczy na was tutaj, Louis. ROBOT: To jest moja kolej. GŁOŚNIK: Tak Baxter skutecznie zablokowane tutaj. ROBOT: To jest twoja kolej. To jest moja kolej. Twoja kolej. To jest moja kolej. GŁOŚNIK: A my poinformujemy Baxter zakończyć się jego ostatni ruch tutaj. [ŚMIECH] ROBOT: To remis. Wygram następnym razem. [ŚMIECH] GŁOŚNIK: Wszystko w porządku, Dziękuję bardzo, Louis. Dziękuję. Możesz iść tą drogą. ROBOT: I rozpocząć grę. GŁOŚNIK: Więc pozwól mi wyjaśnić do was jeszcze jedno małe nieco, zanim się nasz rewanż tutaj. Co dokładnie się dzieje? Więc robot ma tu kamery się szczyt. I to patrząc na pokładzie. I to zobaczyć, czy to dostał czerwoną O lub niebieski i biały X. Jak ci się umieścić na Płyta, która jest w zasadzie takie samo wejście że będziemy czytać z nasza struktura danych z naszego ekranu. To działa tak samo Algorytm minimax się w stanie dowiedzieć się, gdzie miejsce dobre token. A potem dajemy polecenie o gdzie chcielibyśmy token być umieszczone. Ramię porusza się. To użycie chwytaka podciśnieniowego do zastosowania niektóre ssania do tego drewnianego elementu, go podnieść, przenieść go w prawo miejscu, a następnie zwolnij ssania i upuść go. Dobra, jedziemy dać mu jeszcze jeden strzał z nieco mądrzejszego odtwarzacza tutaj. Jesteś gotowy? Dobrze, jeśli chcesz stanąć w prawo tutaj i dać A-- okazać się w ten sposób więc można zobaczyć wszyscy. A następnie [niesłyszalne]. ROBOT: To jest moja kolej. GŁOŚNIK: Baxter rozpocznie. Twoja kolej. To jest moja kolej. Twoja kolej. To jest moja kolej. [ŚMIECH] GŁOŚNIK: [WHISPERING] Tylko niech śmiało i wygrać. ROBOT: To jest twoja kolej. GŁOŚNIK: To jest OK. ROBOT: To jest moja kolej. [ŚMIECH] Wygrałem. [ŚMIECH] I rozpocząć grę. GŁOŚNIK: Dobrze, dziękuję bardzo. Dobrze, myślę, że mamy czas na jeszcze jeden doskonały odtwarzacz tic-tac-toe, ktoś, kto może umieścić tę rzecz w celu mecz, który wie, co robi. [ŚMIECH] Kto będzie naszym mistrzem tutaj? Dobrze, twoi przyjaciele ochotnika ciebie. To mi wystarczy. Powiedz mi swoje imię ponownie. PUBLICZNOŚCI: Tamir. GŁOŚNIK: Tamir, miło cię widzieć. Dobra, znowu, będziemy do was aż tutaj, więc każdy może cię widzieć. Jesteś naszym przedstawicielem Dotychczas w tym meczu. Baxter jest jeden i och och. Albo przepraszam, jeden no i jeden. I to jest do was tutaj. Baxter będzie się poruszać po pierwsze, choć. Więc. ROBOT: To jest moja kolej. [ŚMIECH] Twoja kolej. To jest moja kolej. Twoja kolej. To jest moja kolej. Twoja kolej. [ŚMIECH] ROBOT: To jest moja kolej. GŁOŚNIK: Jest to o wiele trudniejsze, gdy stoisz tu, ludzie. [ŚMIECH] ROBOT: Wy, ludzie są tak łatwe do pokonania. [Śmiech i oklaski] GŁOŚNIK: Dziękuję bardzo. ROBOT: wygram. I rozpocząć grę. Prelegent: Dobra, dziękuję bardzo wiele do Oliviera, i Alessandro, i Chen Ming. [OKLASKI] Chcę, aby ostatni punkt. Więc Baxter na samym kończy, oszukany. I to było nieoczekiwane. Jednym z fantastyczny rzeczy o AI jest to, że wykonywać pracę w AI, tak że możemy budować naprawdę ciekawy i inteligentny pomysłowość. Ale również wykonywać pracę w AI ponieważ mówi nam coś o tym, jak ludzie są inteligentni. Jednym z ulubionych badania z moim laboratorium jest patrząc na to, co się dzieje, gdy Maszyny niespodziewanie oszukiwać. Zrobiliśmy to pierwotnie nie z Baxter gry Kółko i krzyżyk, ale z mniejszym robota o nazwie Nao, który grał Papier, kamień, nożyce. A czasem po grać dużo, dużo nudne Papier, kamień, nożyce gry, robot rzucał gest, stracić, a potem nagle zmienić jego gest i powiedzieć, że wygram. [ŚMIECH] Teraz, czasami chcielibyśmy mieć robota, tylko jako kontrola, rzucać gest, wygrać, i zmienić jego gest stracić, rzucić zapałkę, oszukiwać, aby stracić. I to nie jest tak atrakcyjne. Robot, który oszukuje Aby wygrać ludzi reagować dalej, jeśli jest się do nich dostać, jak to aktywnie poszukuje ich zniszczenie. [ŚMIECH] To staje się agentem. To jest jak człowiek. Ma przekonanie i zamiar. I to nie jest dobre intencje. I robot, który rzuca Gra jest po prostu uszkodzony. To jest po prostu zepsute urządzenie. Pokażę wam kilka przykładów stanowi, że od kilku naszych uczestników. Tak tu jest oszustwo w celu utraty. [ODTWARZANIE] - [Niesłyszalne] wygrać. Zagrajmy. -Czekaj, co? - [Niesłyszalne] wygrać. Zagrajmy. [Niesłyszalne] wygrać. Zagrajmy. GŁOŚNIK: I tu oszukuje, aby wygrać. -Tak, Wygram. Zagrajmy. -Nie Mogę tego zrobić. [ŚMIECH] -Tak, Wygram. -Oszukałeś. Oszukałeś teraz. -Tak, Wygram. Hej, jesteś oszustem. Oszukiwać, super oszukiwać. [Zakończyć odtwarzanie] GŁOŚNIK: Są różne Reakcje gwałtownie zmienić nasze postrzeganie urządzenia. Czy to oznacza, że świadomie budować maszyny, które oszukują, ponieważ to najlepsza technika, co możemy zrobić? Nie, ale to mówi nam coś mnie naprawdę interesuje ludzi. To rzecz, która oszukuje ciebie i kradnie twoje zwycięstwo, to coś, co żyje, to animować, to cię dopaść. Ma stan psychiczny. Ma przekonanie. Ma zamiar. To coś, że ręce gra dla Ciebie, to nie. To jest po prostu uszkodzony. To jest na wiele sposobów, dlatego jest łatwo rzucać gry z dziećmi. Ale jeśli spróbujesz je oszukać i rodzaj twierdzą zwycięstwo gdy wiesz, po prostu skrócić Gra, to cię złapią od razu. Te rodzaje efektów, które widzimy wychodzi z AI, uczą nam wiele o nas samych. W porządku, to wszystko na dzisiaj. Dziękuję bardzo do Dawida i ekipa produkcyjna Harvard dla schodzili. [OKLASKI] Zobaczymy się w quizie jednym, a następnie na ostatni wykład. Mieć świetny dzień. [OKLASKI] [MUZYKI] DAVID J MALAN: Cóż, prawdopodobnie trzeba wprowadzenie pewnego rodzaju szyfrowania, dobrze? Bo wtedy nagłówkach te żądania HTTP będzie jajecznica, aby każdy, próbuje powąchać ruchu Nie rzeczywiście będzie w stanie je zobaczyć. Więc co to jest rozwiązanie tego problemu? Cóż, musimy właściwie przedstawić szyfrowanie do wzoru, tak, że gdy osoba transmisji danych z punktu A do B, możemy bezpiecznie send-- [ŚMIECH] Informacje, w taki sposób, że Przeciwnik nie może, w rzeczywistości, to widzę.