[Играет музыка] СЛУШАЛИ: Добро пожаловать, каждый. Это CS50. И сегодня, у нас есть много интересные вещи, чтобы говорить о. Во-первых, хотя, я должен напомнить Вы из нескольких административных вещей. На этой неделе викторины одним, среда или секции Yale по вторникам и четвергам, в четверг. Есть отзывы викторины сегодня в Йельском университете, 5:30 к 7:00. В Гарварде, они записали один вчера. И каждый может посмотреть, что в Интернете. Кроме того, на этой неделе или в начале следующей недели, у нас есть наш последний CS50 лекцию. [Стоны] я знаю. Он пришел так быстро. Yale студенты будут иметь живой лекции здесь, в юридической школе Зрительный зал в пятницу. Там будет торт. Студентов Гарварда будет иметь Последняя лекция в Сандерс в понедельник. Там также будет торт. Кроме того, на этой неделе в пятницу, для тех, из вас, кто приходят в Нью-Хейвен, у нас есть CS50 Expo. У нас есть более чем 30 зарегистрировано различные группы чтобы показать вам все, от автономных парусных, к системам, которые распознают цифровые портреты, на компьютер музыкой и компьютером производства музыки. Поэтому, пожалуйста, присоединяйтесь к нам. Я думаю, что это будет прекрасное время. Сегодня, однако, мы получаем продолжать говорить о AI, об искусственном интеллекте. И одна из вещей, которые мы собираемся, чтобы добраться до сегодня идея о том, как использовать AI решать проблемы. Теперь, как всегда, давайте начнем с чего-нибудь простого. И мы собираемся, чтобы начать с простой идеи. И это с помощью поиска. Итак, представьте, на минуту, что я есть задача, которую мне нужно выполнять. И я бы хотел, чтобы эту задачу автоматизированная некоторым программного обеспечения агента. Представьте себе, что я пытаюсь забронировать набор авиарейсы из, скажем, Бостон в Сан-Франциско. Я мог бы пройти и я мог бы использовать один из замечательного онлайн-поиска инструменты, которые собирается сделать в основном тот же процесс, что мы собирается идти до сегодняшнего дня. Но если у вас не было, что инструмент, что бы вы сделали? Ну, вы могли бы выглядеть и увидеть и сказать, что я в Бостоне. Какие рейсы доступны для меня? Теперь, может быть, я три возможные рейсы из Бостона который будет соответствовать времени когда мне нужно уйти. Я мог бы лететь в Чикаго. Или я мог бы летать в Майами. Или я мог бы летать в Нью-Йорк. Я мог бы затем посмотреть друг от один из тех городов назначения и думать о каких местах Я мог бы достичь от каждого из этих отдельных городов. Так, может быть, из Чикаго, я могу получить прямой рейс в Сан-Франциско. Это отлично. Или я мог бы получить рейс в Денвере. Теперь, может быть, что полет в Сан-Франциско является идеальным решением для меня, но, может быть, нет. Может быть, я ищу что-то что это немного дешевле или немного лучше для моего графика. И поэтому я мог смотреть на то, что другие Возможности могут быть там. Так что я мог смотреть в Денвере. И из Денвера, ну, может быть, Я могу получить полет в Остин. И из Остина, может быть, я могу получить Полет в Финикс, из Финикса и в Сан-Франциско. Теперь, я еще этого не сделали. Потому что, может быть, есть Прямой рейс из Нью-Йорка в Сан-Франциско, который идеально подходит для меня. Или, может быть, есть полет из Майами через Денвер, что это намного дешевле. Так что я до сих пор идти. И я до сих пор смотрю на всех тех, города, которые я еще не изучены. Я должен исчерпывающе проверить все возможности, которые я мог бы иметь. Так из Нью-Йорка, может быть, я могу получить Полет в Нэшвилле, и из Нэшвилла Остин. И тогда я знаю, где я нахожусь. И тогда я знаю, из Остина, я могу лететь в Финикс, из Финикса и в Сан-Франциско. Если я летаю первым Майами, хотя, может быть, я могу получить рейс из Майами в Нэшвилл, или из Майами в Остине. А теперь я попытался все возможностей. Я построил этот график, показывает мне все возможные маршруты что я мог бы быть в состоянии принять. Когда мы представляем эти виды проблем, мы не собираемся представлять им явно, как этого графика, потому что граф не представляют история, где мы пошли. Зная, что я вылетел из Феникс в Сан-Франциско не скажите мне, пришла ли я с помощью Нэшвилл, или через Денвер, или через Майами. Так что я буду делать, вместо этого Я возьму этот же проблемы, и я буду представлять его в виде дерева. И в корне дерева, на сверху, я положу место, что я начал, Бостон. И из Бостона, я буду смотреть на все возможные места что я могу поехать в. Ну, в этом случае, у меня было три, Чикаго, Нью-Йорк, и Майами. И тогда я буду исследовать каждый из эти дети в дереве. Из Чикаго, я видел что я имел два рейса. Я мог бы летать непосредственно Сан - Франциско или Денвера. Теперь Сан-Франциско, это моя цель. Это моя назначения. Это собирается быть лист этого дерева. То есть, я никогда не буду идти где-то после Сан-Франциско. Из Денвера, хотя, Я могу летать из Денвера Остин, из Остина в Финикс, и из Феникса в Сан-Франциско. И теперь снова, я достиг лист. Я мог бы вернуться на следующий город, который я не полностью изучены. Это было бы в Нью-Йорке, перейдите обратно к вершине моего дерева, спуститься в Нью-Йорке. Из Нью-Йорка, я могу лететь в Нэшвилл, из Нэшвилла в Остине, из Остина в Финикс, и из Феникса в Сан-Франциско. И, наконец, город, который я не смотрел на все же, Майами. Ну, из Майами я сказал, было два Возможности, Нэшвилл или Остин. Если я летаю в Нэшвилле, а затем я летаю из Нэшвилла, в Остин, в Феникс, в Сан-Франциско. Если я летаю в Остине, я летаю Остин, в Финикс, Сан-Франциско. И теперь у меня есть дерево. Это полное дерево. Это все возможности и все пути, что я мог бы принять. То есть, если я начну на корень дерева в верхней и я иду к одной из листья, он говорит мне, не только где я собираюсь в конечном итоге, Сан-Франциско, но он говорит мне, что маршрут Мне нужно, чтобы добраться там. Теперь, что один из них лучше? Ну, ничего об этом Проблема еще говорит мне, который из них является лучшим решением. Может быть, я все равно больше всего сколько раз я в воздухе, или расстояние, что я лечу. В этом случае, Чикаго Сан Франциско может быть короткий номер миль в воздухе. Может быть, я забочусь о стоимости. И все мы знаем прямые рейсы как правило, дороже. Так, может быть, если я возьму это вид обратной маршруту через Майами, Нэшвилле, Остин, Финикс, может быть, тогда Я получить более низкую цену. Но я мог бы оптимизировать на любом Критерии, которые я забочусь. Кто получил лучший в Полет Wi-Fi, или которые аэропорты имеют лучшая еда доступна. И каждый из тех, кто может дать мне другое решение что я вижу как лучший. Эти виды проблем, куда мы идем построить эту дерево Возможности, а затем посмотреть на каждый из тех, отдельные дорожки, и изучить какие из этих выполняет критерием для нас, мы собираемся называть эти проблемы поиска. И у нас есть много Алгоритмы, некоторые из которых мы уже видели, чтобы пойти и исследовать эти деревья. Мы могли бы сделать это таким образом, что я только что сделали, в глубину поиска, спускаясь, насколько мы можем пока мы хит лист, а затем возвращаться вверх, и собирается обратно вниз. Или мы могли бы делать то, что называется поиск в ширину. Мы могли бы расширить все в верхней части, а затем все одна линия под этим, и затем все одна линия под этим. Эти деревья поиска являются основополагающими для ИИ. Но они не совсем понимаю это право все время. На самом деле, во многих случаев что мы действительно заботимся о, мы хотим построить дерево, но мы на самом деле не получить, чтобы все решения. Это ситуации, называемые состязательности поиск, также известный о том, как написать игру играть системы и платят за это. Но эти виды систем, где я может получить, чтобы выбрать, когда я иду от Бостон, какой город я иду к следующему. Но после этого, кто-то может получить принять решение о том, где я летаю. Таким образом, чтобы построить эти виды структуры, мы придется принять немного Другой подход к ней. Мы не собираемся быть в состоянии просто искать по дереву больше, потому что мы не тот, который контролирует каждого из этих точек принятия решений. Итак, давайте представим себе простой игры, как крестики-нолики. Я мог бы начать с полностью пустой борту. И в крестики-нолики, Х добирается, чтобы играть в первую очередь. И так я мог думать обо всем возможные ходы, которые могли бы сделать Х. И если я один игры Х, это здорово. У меня есть девять возможное движется, что я могу сделать. Я мог бы положить X в одном из этих девяти позиций. А затем из каждой из них, я мог себе представить, что произойдет дальше. Ну, в этом случае, другой Игрок получит занять очередь. О получили бы занять очередь. И от каждого из них, есть будет восемь различных мест что О может поставить их маркер. Скажем, я решил, что я был собирается положить X в центре. Это всегда кажется хороший открытие ход. Я мог смотреть на под того, восемь возможных шагов, которые делает. О Теперь, если я играю X, это замечательно. Я получаю выбрать, какой я идти, один в середине. Но теперь О получает, чтобы выбрать. И я не имеют контроля в течение этого решения. Но с каждой из них возможные позиции доска, есть то другой множество возможностей. Когда дело доходит до быть моя очередь снова, я бы получить, чтобы забрать и сказать, ну, если О переходит в, ну, средний пятно на левой, а затем У меня есть набор возможностей где я могу взять мой следующий шаг. Из них, я мог рассмотреть все возможности под ними. А потом вывода получите выбрать среди тех,. И я мог бы продолжать строить этот дерево не, пока я попал в точку, где либо кто-то выигрывает game-- Это должен быть рассмотрен лист node-- или плата полностью заполнен и никто не выиграл. И это также будет конечный узел. Это собирается быть галстук. Но хитрая вещь с этим если бы это было просто очередной поиск проблема, я был бы в состоянии скажем, ну, X должен идти здесь. И О должны идти путь там. И тогда Х должны идти сюда. А потом вывода должны идти путь там. И тогда Х может получить три в строке, и я выиграю. И игра будет закончена в пяти ходов, три для меня, два для моего оппонента. Но я не всегда можете выбрать, что. Таким образом, вместо, того, что мы придется делать что мы будем иметь иметь новую стратегию. И стратегия, что игровые алгоритмы часто используют это то, что называется минимаксной. Центральная идея минимаксный, что мы собирается забрать шаг, который дает наш оппонент худший набор ходов, что они могут сделать. Это не делает мне ничего хорошего выбрать шаг где Я мог бы быть в состоянии выиграть после что, потому что мой соперник не собирается дать мне этот шанс. Они собираются выбрать некоторые ужасно результат для меня. Так что я собираюсь сделать двигаться, что заставляет моего оппонента сделать что-то лучше для меня. Все в порядке. Давайте посмотрим, как это теряет значение. Так вот наш алгоритм псевдокоде. Мы собираемся, чтобы генерировать все дерево игры. Мы собираемся построить вся структура. И тогда мы будем идти до конца. И в самом низу на каждой из терминальными узлами, в каждом из листьев, мы оценить, как ценно то, что со мной? И мы собираемся стоимости вещей, которые хорошо для меня, как быть положительным. Вещи, которые не очень хорошо для меня будет меньше положительным или равно нулю, или даже отрицательным. Таким образом, в крестики-нолики, может быть, победа для меня это хорошо. Вот один. И галстук нулю. И то, что это потеря для мне, может быть, это отрицательный. Все, что имеет значение в том, что лучше это для меня, тем выше оценка он получает. От этих возможностей на снизу, тогда мы будем фильтровать вверх. И когда это мой шанс выбрать среди множества альтернатив, Я выберу тот, который получил самый высокий балл. И всякий раз, когда это моя Противники очередь выбирать, Я предполагаю, что они собираются выбрать один с самым низким счетом. И если я сделаю это весь путь до верхней части дерева, Я выбрал путь, который дает мне лучший результат, что я могу получить, предполагая, что мой оппонент делает все правильные шаги. Ладно, так что давайте посмотрим это действие первым. И тогда мы будем на самом деле посмотреть на код для него. Итак, представьте, у меня есть этот большой дерево. А теперь я не играю в крестики-нолики. Я хотел, чтобы дать вам что-то немного богаче. Так что я получил некоторую игру, где есть много различных забивает что я мог бы в конце. И поэтому я построить это полное дерево. И я получаю первый ход. Я в корне дерева. И я получаю выбрать that-- так что я получаю максимально по этой первого узла. И тогда мой оппонент получает идти. И тогда я идти еще раз. Так на дне, у меня есть набор Возможности, которые я могу выбрать из, различные терминальные состояния игры. Если я вниз, что далеко левом углу, и я вижу, что у меня есть выбор между восемь, семь, и два, ну, я тот, который получает на выбор. Так что я собираюсь выбрать одним из лучших из них. Я собираюсь выбрать восемь. Так что я знаю, что если я когда-либо приступим к этой точке, Я буду в состоянии получить что восемь очков. Если я в конечном итоге в следующей точке более, следующий узел в течение, девять, один, или шесть, ну, я собирается выбрать лучший из них. Я выберу девять. Если у меня есть выбор между два, а четыре, и один, Я выберу четыре, самый высокий. Теперь, если я смотрю на уровне выше, что, мой оппонент это один получает, чтобы сделать этот выбор. Так что мой противник получает выбрать, я хочу, чтобы дать ему То, что происходит чтобы получить его восемь очков, или я даю ему вещь, которая собираюсь дать ему девять очков, или вещь, которая происходит чтобы дать ему четыре очка? И мой оппонент, будучи рациональным, будет выбрать минимум тем, будет выбрать четыре. И я могу это сделать через весь дерева. Я могу спуститься к тому, что средний набор из трех. И я могу выбрать между один, три, пять. И я получаю, чтобы выбрать. Так что я выбрать пять. Я могу выбрать три, девять, или два. Я получаю выбрать, так что я выбрать девять. Шесть, пять, или два, я выбираю. Я получаю выбрать шесть. Уровень выше того, кто получает, чтобы выбрать? Кто получает выбрать? Другой парень, мой оппонент. Так они выбирают пять, девять, или шесть, то какие? Аудитория: пять. СЛУШАЛИ: Они выбирают пять. Они получают, чтобы выбрать минимум. И тогда последний, выбрать один, два, или три. Я получаю выбрать, так что я выбрать три. Девять, семь, или два, я выбираю девять. И 11, шесть или четыре, я выбираю 11. Мой оппонент выбирает три, девяти или 11, выбирает минимальное. Он дает мне три. И, наконец в верхней части дерево, я получаю, чтобы выбрать снова. И я получаю выбирать между четыре, пять, или три. Итак, я беру на пять. Если бы я получил все контролировать, я бы встать на путь, который привел к 11. Но я не получаю, чтобы сделать этот выбор. Если я иду по этому пути. Мой оппонент заставит меня в выбор, который приводит к трем. Таким образом, лучшее, что я могу сделать, это принять, что средний филиал, сделать этот выбор, что в конечном счете собирается привести меня до пяти очков. Это то, что делает минимакса. Все в порядке. Давайте взглянем на это. Так вот в CS50 IDE это программа, которая реализует минимакса играть в крестики-нолики. Мы собираемся построить до представления. Мы собираемся иметь два opponent-- или двух игроков, наш компьютер плеер и проигрыватель человека. Номер игрока один будет играть О. Это будет машина игрок. Они получают, чтобы переместить секунду. И другой игрок, наш человек-плеер, будет X. И сделать мою жизнь немного просто, я иду маркировать, что игрок отрицательный. Так что я могу просто умножить на минус единицу, чтобы поменять между одним игроком и другим. Ладно, так что давайте взглянем на то, что мы на самом деле собирается делать. Мы собираемся, чтобы определить наш совет. Это будет хорошо, мы собираемся чтобы она могла быть три на три, или мы можем даже играть пять на пять или семь на семь крестики-нолики, если вы хотите как, основываясь на какой-то размерности D. И мы будем иметь пару из вспомогательных функций что будет делать вещи, как инициализировать screen-- или извините, инициализировать наши переменные, снимите экраном, нарисовать доску на экране, который проверяет доска чтобы увидеть или не есть победитель, который разбирает с помощью командной строки, просто, чтобы помочь, тот, который считывает вход, и одна функция называется минимаксной. И это один мы заботимся больше всего. Но давайте сначала посмотрим на основной. Что мы делаем? Ну, мы собираемся разобрать нашу командную строку, только что прочитал и посмотреть, что Размер платы, мы хотели бы иметь. Мы инициализировать плату. И тогда мы будем вводить один большой дикий цикл, неоднократно принять шаги, пока игра не выиграл, или нет никаких перемещается влево. Каждый раз, когда мы идем через это цикл, мы очистить экран. Мы будем рисовать доска на экране. И мы преднамеренно рода абстрагируясь от них в виде подпрограмм, так, что мы не должны слишком беспокоиться о подробностях, как они происходят. Вы будете иметь код позже сегодня. И если вы хотите, чтобы смотреть через и выяснить это, вы можете увидеть их все. Но мы будем рисовать доску на экране. И тогда мы будем проверять и см, у нас есть победитель? Кто-то выиграл эту игру? Если у них есть, мы распечатать из сообщения победа. И мы будем закончить игру. Мы также проверить и увидеть, если есть галстук. Это будет легко увидеть, если есть галстук. Это означает, что все пространства полны, но не был победителем еще. Мы можем объявить галстук и сделать. Тогда реальная meat-- если это машина плеер, мы допустить, что машина плеер для поиска путем использования этого алгоритма минимаксного, найти лучший ход, что он может. И тогда мы будем положить, что двигаться вверх. В противном случае, если это человек-плеер, мы будем читать некоторые материалы из человека. А потом будь то человек игрок или машина плеер, мы сделаем пару немного биты проверки ошибок, убедитесь, что он остается в пределах границ из фактических размеров платы что у нас есть, убедитесь, что что это пространство пусто, что никто поставим кусок там уже. И тогда мы будем просто положить кусок на борту, изменить игрока на следующий уровень, и увеличить сколько ходов произошло. Это основной цикл для наш крестики-нолики игра. Минимакс, то, точно алгоритм, который мы раньше. Единственное, что регулировка мы сделали так, что мы может играть более мерных плат мы в сохранить этот дополнительный параметр, называемый глубина. И глубина просто говорит, если я поиск вниз через этого дерева и я так далеко вниз за некоторой глубине уровня что я просто не хочу, чтобы идти дальше, Я собираюсь остановиться и просто оценить доска в этой точке. Я проверить и посмотреть, если есть победитель. Если есть победитель, я их вернуть. В противном случае, я пойду через петлю. И я скажу, для всех возможные места что я мог, возможно, взять в качестве моего переезда, я построить гипотетическую совет, который включает в себя свой ход на этом борту, а затем рекурсивно вызывает минимакса. Если это мой шаг, я получаю, чтобы найти тот, который получил наибольшее количество баллов. Если это движение моего оппонента, мы находим тот, который получил минимальный балл. И все остальное просто учет. Ладно, так что давайте посмотрим этот пробег. На самом деле, может быть, мы можем получить пару добровольцев прийти и играть в крестики-нолики. [Неразборчиво] одним, и один Более того, два, прямо там. Давай до. Так что давайте идти вперед и перезагрузить это полностью. Так привет. АУДИТОРИЯ: Привет. СЛУШАЛИ: Ваше имя? АУДИТОРИЯ: Gorav. СЛУШАЛИ: Gorav. АУДИТОРИЯ: Я Лейла. СЛУШАЛИ: И Лейла, Лейла и, извините. Давай до. Gorav, мы собираемся, чтобы вы идете в первую очередь. И я попрошу вас быть не ужасно хорошо крестики-нолики игрок. ОК, так что все давление на вас. Давайте посмотрим, однако, что наша машина Игрок может сделать что-то умный. Так что вперед. Вы собираетесь ввести в которые координируют Вы хотели бы поставить крестик в. А0, ОК, и машина пошла сразу и поставить свой след в А1. Поставьте O на борту. Ладно, теперь иди вперед. Куда бы ты хотел пойти? С2. Наша машина игрок принял средний квадрат, заблокировал вас. Так что это было хорошо, умная вещь для того, чтобы сделать. Вы заблокировали. Это отлично. Это подает угловой там. И это происходит, чтобы заставить вас взять один последний пространства, B0. И игра заканчивается вничью. Но он играл разумный Игра против вас, не так ли? Ладно, спасибо очень много, Gorav. [АПЛОДИСМЕНТЫ] Ладно, Лейла, мы собираемся до игры на вас здесь. АУДИТОРИЯ: О, здорово. СПИКЕР: Мы собираемся дать Вы Четыре на четыре крестики-нолики. Теперь, в четыре на четыре, у вас есть, чтобы выиграть с четырьмя подряд, а не три в ряд. И это все твое. Так Лейла взяла D1. Теперь мы собираемся следовать наш компьютер игрок здесь. Три на три Tic-Tac-Toe является своего рода вещи, которые легко для всех нас. Но это все равно приятно видеть компьютерного игрока делает правильные ходы. Четыре на четыре получает быть немного сложнее. Красиво сделано. Ладно, так Лейла закончил с. О, и мы должны закончились там. Но давайте сделаем еще один здесь. Так Layla, спасибо. Красиво сделано. [АПЛОДИСМЕНТЫ] Таким образом, наша игра в крестики-нолики игрок идет через и находит места, решает их с помощью этой минимакса. И я был настройку глубины на которые так, чтобы он не будет работать слишком быстро, поэтому, наверное, Лейла была в состоянии пойти вперед красиво как она, и сделал очень хорошо. Но эти системы, что только пройти и перебор глубже, и глубже, и глубже, и продолжают находить решение что им нужно, эти виды систем довольно успешно эти, ну, стандартные настольные игры. И в самом деле, если мы посмотрим на три на три крестики-нолики игры, это в основном решена проблема. И это замечательный схема от Randall Манро в XKCD, показ, которые перемещаются вы должны принять, учитывая движется вашего противника. Это то, что мы могли бы легко определить заранее. Но то, что происходит, когда мы получаем более сложные игры, более сложных игр, где Есть большие доски, более Возможности, глубже стратегия? Оказывается, что это перебор поиске еще делает достаточно хорошо, за исключением того, когда вы дойдете до точки, где это дерево настолько велик что вы не можете представить все это. Если вы не можете вычислить все дерево, если вы не можете идти вперед и толчок сами до точки, где вы получил все дерево в памяти, или вы можете получить его в памяти, и это будет только принять вас слишком долго, чтобы искать через это, у вас есть что-то делать умнее. Для того, чтобы сделать это, вам нужно сделать две вещи. Во-первых, вы должны найти некоторые способ ограничения глубину. Ну, это нормально. Мы можем найти хороший, минимум и сказать, вы можете идти только так глубоко. Но когда вы это сделаете, это означает, что вам эти частично неполные доска. И вы должны выбрать, я люблю это частично неполным доска, или это частично неполную панель? А на наших четырех по четырех крестики-нолики игра, наш компьютер игрок получил вниз на дно и он сказал, У меня есть два разных плат. Ни один выигрыш. Ни один убыток. Ни один галстук. Как выбрать между ними? И это не есть умный способ сделать это. Мы видим, этот вид оценка происходят все время как мы получаем в более сложных играх. Шахматы является отличным примером. В шахматах, мы, во-первых всего, больше плата. У нас есть гораздо больше штук. И позиционирование этих частей и то, как эти кусочки двигаться является критически важным. Так что, если я хочу использовать минимакса, Мне нужно, чтобы иметь возможность указать и говорить, что это доска, где никто не выиграл или проиграл еще, как-то лучше, чем это другое доска, где никто не выиграл или проиграл. Чтобы сделать это, я мог бы сделать вещи, как я мог бы просто подсчитать, сколько штук у меня есть и сколько штук у вас есть? Или я мог бы дать разные шт различные точки. Моя королева стоит 20 очков. Ваш пешка стоит одно очко. Кто имеет общей больше очков? Или я мог бы рассмотреть вещи, как, кто получил лучшую позицию доска? Чья очередь это рядом, все, что я могу сделать, чтобы оценить более точно какие из этих возможностей лучше без исчерпывающе рассматривает каждый шаг, который может прийти после этого. Теперь, чтобы сделать эту работу, одна из вещей, что это станет действительно важно для нас не просто перемещение прямо до определенной глубине предел, но, будучи в состоянии говорить, один из этих идей, которые я есть так плохо, что это не стоит рассматривать все из возможных путей что-то может пойти от плохого к худшему. Чтобы сделать это, мы добавим в минимакса принцип называется Альф-бета. И альфа-бета говорит, если у вас есть плохая идея, не тратьте свое время, пытаясь выяснить, как именно это плохо. Итак, вот что мы собираемся сделать. Мы собираемся взять то же самое принципы, которые мы раньше, то же самое минимакса типа поиска, только мы собирается отслеживать не только из фактические значения, что у нас есть, но мы отслеживать наилучшим Значение, которое я мог бы получить, и худший Результатом я мог бы. И в любое время худший что ищет, скорее всего, Я отказаться от этой части дерева. И я даже не буду глядя на него больше. Ладно, так что представьте, что мы начинаем с этой же точной игры дерева. И теперь мы собираемся пойти снова, весь путь вниз к тому левом нижнем углу. И в этом левый нижний угол, мы смотреть и оценивать эту доску. Может быть, это четыре на четыре крестики-нолики доска, или, может быть, это шахматная доска. Но мы смотрим на него, и мы оцениваем это, и мы получаем значение из восьми. В тот момент, мы знаем, что мы собираемся, чтобы получить по крайней мере, восемь очков от этой нижней решения. Это не имеет значения, что другой два, что семь, и что два. Они могут быть любые значения они хотели бы быть. Мы собираемся, чтобы получить на Меньше восемь очков. Все правильно, но мы могли идти вперед и проверить. Может быть, один из них лучше, чем восемь. Мы смотрим на семь. Это лучше, чем восемь? Нет, это не меняет наше мнение вообще. Мы смотрим на два. Это лучше, чем восемь? Нет, это не меняет наше мнение вообще. Так что теперь мы знаем, мы исчерпали все возможности там. Мы не собираемся, чтобы получить что-нибудь лучше, чем восемь. Мы собираемся, чтобы получить именно восемь. И так мы меняем узел и скажем, что в настоящее время является определенность. Мы поднимаемся на один уровень выше, что. И теперь мы знаем, что-то о том, что уровень минимизации. Мы знаем, что мы никогда не собираемся, чтобы получить более чем в восемь очков, если мы идем вниз что направление. Потому что даже если те два других отраслей оказываются быть фантастическим, и стоит тысячи точек каждый, наш противник будет дать нам минимум, а дать нам восемь. Ладно, хорошо, давайте посмотрим. Мы будем держать спускаясь по этому пути. Мы спускаемся к этой середине слева. Мы смотрят, и мы видим, что есть девять. Мы знаем, что мы собираемся, чтобы получить по крайней мере, девять очков, спускаясь что средний путь. И в этот момент, мы можем просто приостановить. И мы можем сказать, посмотрите, я знать на уровне выше, Я собираюсь получить не более восьми указывает, спускаясь это направление. Но если бы я пошел вниз середина Путь вместо левого пути, Я хотел бы получить, по крайней мере девять очков. Мой оппонент никогда не будет позвольте мне идти по этому средний путь. Они получают, чтобы выбрать. И они собираются выбрать Путь к налево к восьми, а не вниз к середине то, что, по крайней мере девять очков. Таким образом, на тот момент, я остановлюсь. И я скажу, вы знаете, что? Я не должны смотреть более вниз в этом направлении. Потому что я никогда не буду туда попасть. Я могу перепрыгнуть, что один, и я могу пропустить, что шесть, потому что никогда не случится. Так что я пойду и я рассмотреть следующий возможность. Я иду туда, и я говорю, я вижу два. Я знаю, если я получаю здесь, я собирается получить по крайней мере два. ХОРОШО. Я продолжать. Я вижу четыре. Я знаю, что я собираюсь получить по крайней мере четыре. Там еще много между четыре и восемь, хотя. Так что я продолжать. Я смотрю вниз и вижу там один. Ладно, я знаю, если Я иду по этому пути, Я собираюсь быть в состоянии выбрать четыре. Что мой оппонент собирается сделать? Между чего-то, что дает мне восемь, то, что дает мне четыре, и то, что дает мне по крайней мере, девять, хорошо, что он собирается дать мне четыре. И теперь я знаю, на очень сверху, я собираюсь чтобы быть в состоянии получить по крайней мере четыре балла из этой игры. В целом идея альфа-бета это отрезать части с дерева, так что я не смотрю на них больше. Но она по-прежнему выглядит как я был глядя на много дерева. Давайте продолжать идти вниз. Мы пойдем вниз следующий предприятием. Вниз на дне, я считаю, один. Я знаю, что я собираюсь получить по крайней мере один. Я продолжаю смотреть. Я нахожу три. Я знаю, что я собираюсь получить по крайней мере три. Я продолжать. Я нахожу пять. Я знаю, что я собираюсь получить пять если я спускаюсь по этому пути. И я также знаю, то что мой оппонент, если я выбрать середину три большие выборы, он собирается дать мне то, что это пять или меньше. ХОРОШО. Я могу продолжать есть. Я могу посмотреть вниз, и я могу сказать, что я собираюсь чтобы получить, если я иду вниз по середине пути? Я иду, чтобы получить, ну, три там. Я собираюсь получить что-то это по крайней мере три. Там по-прежнему, что между три и пять, так что я продолжаю смотреть. О, девять, я буду определенно считать, что в течение трех лет. Я иду, чтобы получить по крайней мере девять если я иду вниз, что средний путь. Теперь мой оппонент останавливается и говорит, смотрите, нет никакого смысла больше. Я знаю, что мой минимизация противник, он собираюсь дать мне вещь, которая меньше или равно пяти, а не вещь, которая больше или равно девяти. Я остановился. Я не смотрю больше на это. Я продолжать. Я смотрю вниз на этом. Вплоть до дна, я нахожу шесть. Я знаю, что я собираюсь получить по крайней мере шесть. А что я могу сделать? Я могу остановить. Потому что выбор между то, что, по крайней мере шесть и то, что это меньше, чем пять, он собирается дать мне вещь это меньше, чем пять. И теперь я знаю, что я собираюсь чтобы получить именно такой выбор. Я иду, чтобы получить что пять выбор. Я возвращаюсь на вершину. Какой я буду выбрать между чем-то это больше или равно четырем, или что-то, что это равно пяти? Я собираюсь взять что-то это, по меньшей мере пять. Я спускаюсь в последний путь, все вплоть до дна. Там это одно. ОК, по крайней мере, я иду, чтобы получить одно очко. Я продолжать. Во-вторых, о, это лучше, чем один. Я иду, чтобы получить по крайней мере два. Я нахожу три. Я знаю, что я собираюсь получить три. И выше, что точка, мой оппонент собирается чтобы дать мне что-нибудь меньше или равно трем. И теперь я могу остановиться. Потому что в выбор между мной быть возможность получить пять и мой оппонент давая мне что-то меньше, чем три, Я всегда буду считать, что пять. Так что я не оценить, что Нижняя часть дерева вообще. Теперь, это может показаться незначительным. Но, когда маленькие кусочки арифметики, больше, но меньше, может отрезать целые части это растет в геометрической прогрессии дерево, что приводит к огромным количество сбережений, накоплений которые являются достаточно большими, что я можете начать играть на конкурсной основе в более сложных играх. Ладно, если мы посмотрим на размер и сложность различных игр, крестики-нолики был наш простой пример. У нас есть небольшой совет, три на три. Мы получаем, в лучшем случае, в среднем около четырех различных вариантов как мы идем через игру. У нас есть где-то около 10 к пятый возможны различные листья. И строительство в крестики-нолики плеер, хорошо, мы просто сделали это. Это просто. Если мы идем к чему-то более Комплекс, как Connect Four. Вы помните эту игру где упаду маленькие жетоны в? Это шесть семь доска, не то, что гораздо больше, по-прежнему имеет примерно такой же разветвления фактор, как крестики-нолики. У меня есть около четырех выбор где я могу положить вещи в. Но теперь, я получил гораздо больше, приводит, с 10 по 21 силы. Это то, что легко Достаточно того, что мы решить сразу. Шашки, более complex-- вас получил восемь на восемь борту. Ты только на половину их в любое время, хотя. У вас есть разветвление Коэффициент это около 2,8. Ну, у нас есть несколько движется вы можете взять. Вы получили от 10 до 31-листьев, крупные и более крупные, и более крупные пространства. Как я должен искать через эти все больше и больше пространства, что, когда вещи, как альфа-бета и возможность отрезать все ветви становится необходимым. Теперь, шашки было достаточно легко в 1992 году. Компьютерная программа называется Чинук побить мировой шашки Чемпион, Марион Тинсли. И с тех пор, нет человек мастер игрок удалось побить лучшее вычислительные системы. Если мы посмотрим на то, как шахматы, теперь снова, у нас есть восемь на восемь борту. Но у нас есть гораздо более сложным, штук, гораздо более сложные движения. У нас есть коэффициента ветвления около 35, 35 возможных ходов в среднем что я могу взять, и состояние пространство, количество листьев который вырос до 10 в 123-й власти, Огромные номера возможностей. Даже до сих пор, современные процессоры в состоянии сделать это успешно. В 1995 году, а затем в 1997 году, компьютер Программа называется Deep Blue от IBM построена который бежал на гигантском суперкомпьютере бить текущий чемпион мира, Гарри Каспаров. Это был переломный момент. Сегодня, однако, что же обработка Мощность сидит на моей MacBook. Скорость обработки сохраняет получать быстрее и быстрее. Мы можем оценить все более и более Доски быстрее и быстрее. Но что еще более важно, мы должны лучше Функции оценки и лучше обрезка методы. Таким образом, мы можем искать пространство сложнее. Самая большая совета игры, которые мы можем думать о, что-то вроде Go это получил 19 по 19 доска, вдруг, мы прошли точку где вычислительные системы могут выиграть. Там нет вычислительная Система там что может побить профессиональный игрок Перейти. Лучший систем сегодня Оценка его о своего рода хорошим любительском уровне. Так что все еще немного из там, что вы не можете добраться до еще. Ладно, это традиционные настольные игры, Эти виды систем, где мы построить эту минимакса, будь он получил альфа-бета или нет, эти алгоритмы работают потому что есть определенные ограничения. Мы имеем совершенную информацию об окружающем мире. Мы знаем, где все части. Мир является статическим. Никто не получает, чтобы переместить штук вокруг, пока я сидя там, думая, принимая мой черед. Там в пространство действие, которое дискретно. Я могу поставить свою пешку здесь, или я могу поставить свою пешку здесь. Я не позволил поставить свою пешку на линия между двумя квадратами. И, наконец, действия детерминированы. Я знаю, что если я говорю, Ладья с конем три, моя ладья будет в конечном итоге на рыцаря три, пока это действует ход. Там нет неопределенности об этом. Теперь, как я иду к более различные виды игр, мы должны разорвать эти предположения. Что делать, если я иду в то как классических видеоигр? Вот выбор видео игры от Atari 2600. Что я имею там? Я получил Frogger, пространство Захватчиков, Ловушка, и Pac-Man. Какие сред у меня здесь сейчас? Какой из этих предположений я должен сломать? Ну, это зависит от игры. Я мог бы играть в шахматы на 2600, и это было бы так же, как это было раньше. Для большинства из этих систем, есть полное знание о мире. Там совершенно детерминированные действия. Но, как правило, в мире больше не статичны. То есть, в то время как я сидел там ожидания, что-то движется. Призраки приходят, чтобы получить меня. Скорпион будет после меня внизу. Космические захватчики ближе и ближе. Насколько хорошо мы можем сделать против них? Несколько лет назад, Google что проект под названием DeepMind, где они тренировались компьютер программа, играть в Atari 2600 игр. И если вы думаете, что это не серьезно бизнес, результаты их исследования были опубликованы в Nature, так почти так же хорошо, публикация как вы можете, возможно, получить. А вот насколько хорошо они выполняются. Они есть алгоритм, который сидел и смотрел только входы экрана. Это не получил никаких инструкций вообще о правилах игры. И он должен был выяснить, на основе его оценки, насколько хорошо она делает. Это была система, которая используется что-то называется обучение с подкреплением. То есть, это смотрело на его счет. А если он получил хорошие оценки, сказал он, Я должен помнить эти вещи. И я должен делать тем снова. А если он получил плохую оценку, он сказал, Я не должен делать эти вещи снова. Это исполнение из тех подготовленных систем разрешено играть для Несколько часов на каждой игре, по сравнению с профессиональными геймерами. Таким образом, для всех игр, которые с левой стороны от этой линии, это само-обучение компьютерной программы превзошли профессиональных геймеров. И все к Правильно, профессиональные геймеры еще лучше. Для чего-то, что знал ничего о правилах, которые ничего не знал о структуре игры, это впечатляющие результаты. И это то, что мы можем сделать сегодня. ОК, вы говорите, но если мы думать о AI в играх, Обычно мы думаем о То, что мы действительно можем сесть и играть против него. Если я сажусь и играю StarCraft, или я играть бесплатно сито, компьютер оппонент человек, управляющий зергов, или управления другим цивилизации. Как те игроки на самом деле найти свои ходы? Ну, эти игры структурированы почти таким же способом, как наши настольные игры, эти игры, которые мы вместе называют четыре X игры, исследовать, expand-- забыть те. Кто они такие? Исследуйте, расширять и потушить, Я думаю, что это последний. Но они в основном по разведке и властвуй игры. Как правило, компьютерный противник есть имеет ограниченную информацию. Они не знают, именно то, что происходит за этого тумана войны. Они не получают, чтобы увидеть, что у вас есть в вашем инвентаре. Там в среду, что является динамическим. Все меняется все время. Вы не можете сидеть и ждать, чтобы взять ваш ход. Но большинство вещей все еще дискретным. Я должен положить мой город здесь. Или я должен поставить свой город здесь. И все детерминировано. Когда я говорю, пошевелить блок здесь, мой блок не движется здесь, если препятствие вдруг вступает в игру. Теперь, это еще не все компьютерные игры, которые там сегодня. Если я иду, и я играю первый тип лица игра, что-то вроде Thief или Fallout или Скайрим, или гало, в настоящее время У меня есть компьютерных противников которые там есть, что очень разные ситуации. Они имеют, опять же, ограниченную информацию. Они только могут увидеть некое поле зрения. Защита окружающей среды является еще динамичным. Вещи все время меняются. Но теперь у меня есть гораздо более непрерывное пространство действия. Я могу быть только выглядывал немного из дверного проема. А некоторые игры, мой действия стохастической. Я получаю, чтобы попытаться перепрыгнуть через эту стену, но я получил шанс поломки. Эти типы игр становятся ближе и ближе к видам контроллеров что мы строим в робототехнике. В робототехнике, мы должны предположить, что у нас есть ограниченная информация. У нас есть датчики, которые рассказать о мире. У нас есть всегда меняется, динамичная среда. У нас есть мир, в котором есть место непрерывной, а не дискретной. И наши действия, когда мы пытаемся им, есть шанс поломки. И в самом деле, современная игра Контроллеры для вашего Halo противника, или для тех НПС в Skyrim, в основном запустить небольшие архитектур робототехники. Они чувствуют мир. Они строят модель мира. Они вычислить на основе набора цели, которые они хотели бы достичь. Они планируют действия, основанные на то, что они знают. А те, ровно те же самые виды систем, которые мы строим в робототехнике. Таким образом, эти архитектуры, чтобы довести эту обратно вместе, часто весьма то же самое. Итак, давайте посмотрим, если мы можем видеть, что. Давайте вернемся к нашему крестики-нолики пример. И я собираюсь задать несколько моих пост-документы, чтобы прийти и помочь мне. Так Чэнь Мин, и Алессандро, и Оливье, если вы, ребята бы придумать. И я буду нуждаться в пара добровольцев ОК, я увидел руку право там в середине. Позвольте мне взять еще один, кто-то далее в спине может быть. Ладно, там. Давай до. Все в порядке. Так что давайте считать, что крышку вниз. И если вы, ребята, придет прямо назад здесь для меня, фантастика. Так что это робот называется Бакстер. И Бакстер это робот, который это коммерческая платформа, предназначенная компанией под названием Переосмысление. И этот робот предназначен для малого производства. Но сегодня мы собираемся использовать его, чтобы играть в крестики-нолики. Теперь, этот робот является также то, это относительно уникальным. Потому что, если я где-нибудь стояли близко к стандартной заводской автоматизации Система, я бы в очень тяжелом Опасность ранения. Бакстер, однако, предназначен для относительно безопасно взаимодействовать. И поэтому я могу нажать на этого робота. И вы можете видеть, что это немного немного гибкими, как она движется вокруг. И я могу изменить его где я хотел бы, чтобы это пошло. В настоящее время в нормальном роботизированной системы, мы бы иметь набор суставов здесь который был бы непосредственно отвечает на команды позиции. И они не заботятся обязательно если они двигались через открытом воздухе, или если они двигались через мой грудной клетки. ХОРОШО. И, как правило, если вы были здесь с производственной системы, вы никогда никуда рядом с ним. Там будет желтый Безопасность лента вокруг него. Эта система имеет немного другой дизайн быть дружелюбнее и проще для людей, чтобы взаимодействовать, в том, что в каждом суставе, есть родник. И вместо того, контроль точная позиция, мы контролируем определенное количество крутящий момент, определенное количество силы, что мы хотели бы быть на этой весной. Ладно, так что давайте мне принять наши волонтеры здесь. Привет, как тебя зовут? АУДИТОРИЯ: Луи. СЛУШАЛИ: Луи. Рад вас видеть. А? АУДИТОРИЯ: Дэвид. СПИКЕР: Дэвид. Приятно познакомиться. Если вы, ребята, будет ждать здесь на секунду, Я собираюсь дать вам шанс сделать это. Так что это робот, если вы придумали и если вы слегка надавите на него, Вы увидите, что она движется немного. И если вы берете его прямо здесь, на запястье просто выше, где эти кнопки, это Похоже, что вы должны захватить кнопки, но захватить прямо над ним, а не, вы сможет очень мягко манипулировать в пространстве. Луис, вы хотите, чтобы дать ему попробовать? Так дайте его немного нажать, чтобы начать с. И потом, если вы положили пальцы тут и удержать его, потому что он будет двигаться для Вас тогда. Ладно, вы хотите, чтобы дать ему попробовать? Давай до. Так дайте его просто нежный нажмите там, чтобы начать. Вы можете почувствовать, что это такое. И потом, если вы берете его прямо там, Вы сможете маневрировать в пределах. ХОРОШО. Так, как правило, этот вид робота будет использовать при малых производственных масштабах. И я собираюсь переместить эту руку только вниз в сторону немного здесь. Но сегодня, мы собираемся использовать же крестики-нолики играть система на основе минимакса, что мы ранее построенных. ОК? Так, вы, ребята, каждый собирается играть в игру. Луис, вы собираетесь быть первым. Позвольте мне провести здесь на секунду. Я собираюсь, чтобы вы стоять прямо здесь, просто так что каждый может видеть Вас. Вы, ребята создали здесь? РОБОТ: Добро пожаловать. Давайте играть в крестики-нолики. Не понять ваш маркер, прежде чем Я говорю, что это ваша очередь. Я начать игру. Моя очередь. СЛУШАЛИ: Теперь, если вы могли бы взять один из Ваши частей и идти вперед и поместить его. РОБОТ: Это ваша очередь. [СМЕХ] Моя очередь. [СМЕХ] [СМЕХ] Это ваша очередь. СПИКЕР: человеческий гонка рассчитывает на вас здесь, Луи. РОБОТ: Это моя очередь. СЛУШАЛИ: Так Бакстер успешно блокирована здесь. РОБОТ: Это ваша очередь. Моя очередь. Это ваша очередь. Моя очередь. СЛУШАЛИ: И мы дадим Бакстер закончить свой последний шаг здесь. [СМЕХ] РОБОТ: Это галстук. Я выиграю в следующий раз. [СМЕХ] СЛУШАЛИ: Ладно, спасибо очень много, Луи. Спасибо. Вы можете идти по этому пути. РОБОТ: я начинаю игру. СЛУШАЛИ: Итак, позвольте мне объяснить, Вам еще один маленький немного, прежде чем мы получим нашу реванш здесь. Что именно происходит? Таким образом, робот имеет камеры наверху здесь. И это, глядя на доску. И это видит ли он получил красную O или синий и белый X. Как те объекты помещаются на доска, это в основном то же самое вход что мы прочитали бы в от наша структура данных из нашего экрана. Это работает тот же Алгоритм минимакса быть состоянии найти, где разместить хорошую фишку. И тогда мы даем команду о где мы хотели бы маркер должен быть помещен. Рука движется из. Это с помощью вакуумного захвата, чтобы применить некоторые всасывания в этой куска дерева, забрать его, переместите его вправо пятно, а затем отпустите всасывание и поместите его. Ладно, мы собираемся чтобы дать ему еще один выстрел с немного умнее игрока здесь. Вы готовы? Ладно, если бы вы стоять прямо здесь и дать a-- превратить этот путь так что вы можете видеть всех. И тогда [неразборчиво]. РОБОТ: Это моя очередь. СЛУШАЛИ: Бакстер начнет. Это ваша очередь. Моя очередь. Это ваша очередь. Моя очередь. [СМЕХ] СЛУШАЛИ: [ШЕПЧУЩЕЙ] Просто пусть идти вперед и побеждать. РОБОТ: Это ваша очередь. СЛУШАЛИ: Это нормально. РОБОТ: Это моя очередь. [СМЕХ] Я выигрываю. [СМЕХ] Я начать игру. СЛУШАЛИ: Ладно, спасибо очень много. Ладно, я думаю, что мы получили время для еще один отличный крестики-нолики плеер, кто может положить эту вещь совпадают, кто знает, что они делают. [СМЕХ] Кто будет наш чемпион здесь? Ладно, ваши друзья добровольно вас. Это достаточно хорошо для меня. Скажи мне свое имя снова. АУДИТОРИЯ: Тамир. СЛУШАЛИ: Тамир, приятно тебя видеть. Ладно, раз мы собираемся поставить вас прямо здесь, так что каждый может видеть Вас. Вы наш представитель в этом матче сейчас. Бакстер является одним и о и о. Или извините, один и один, о. И это до вас здесь. Бакстер получите для перемещения во-первых, хотя. Так. РОБОТ: Это моя очередь. [СМЕХ] Это ваша очередь. Моя очередь. Это ваша очередь. Моя очередь. Это ваша очередь. [СМЕХ] РОБОТ: Это моя очередь. СПИКЕР: Это намного сложнее, когда Вы стоите здесь, ребята. [СМЕХ] РОБОТ: Вы люди так легко победить. [Смех и аплодисменты] СЛУШАЛИ: Спасибо очень много. РОБОТ: я выиграю. Я начать игру. Докладчик: Ладно, спасибо очень много Оливье, и Алессандро, и Чэнь Мин. [АПЛОДИСМЕНТЫ] Я хочу, чтобы в последний момент. Так Бакстер в очень заканчивается, обманули. И это было неожиданно. Один из фантастические вещи, о ИИ, что мы сделать работу в AI, так что мы можем построить действительно интересный и умный Приборы. Но мы также делаем работу в AI потому что он говорит нам кое-что о том, как люди умные. Один из любимых Исследования, проведенные в моей лаборатории является глядя на то, что происходит, когда машины неожиданно обмануть. Мы сделали это первоначально не с Бакстер играет в крестики-нолики, но с меньшим робота по имени Нао, который играл рок-ножницы-бумага. А иногда после играть много и много скучных рок-ножницы-бумага игры, робот будет бросать жест, потерять, а потом вдруг изменить его жест и сказать, я выиграю. [СМЕХ] Теперь, иногда мы также робота, только в качестве контроля, бросить жест, выиграть, и изменить его жест потерять, бросить спичку, чит для того, чтобы потерять. И это далеко не убедительными. Робот, который обманывает для того, чтобы выиграть людей ответить на, как если бы это , чтобы получить их, как это активно ищет их разрушение. [СМЕХ] Она становится агентом. Это как человек. Он имеет веру и намерение. И это не благое намерение. И робот, который бросает игра просто неправильно. Это просто разбитое устройство. Позвольте мне показать вам пару примеров того, что от некоторых из наших участников. Так вот обман, чтобы потерять. [ПРОИГРЫВАНИЕ ВИДЕО] - [Неразборчиво] выиграть. Давай играть. -Чего ждать? - [Неразборчиво] выиграть. Давай играть. [Неразборчиво] выиграть. Давай играть. СЛУШАЛИ: И вот обман, чтобы выиграть. Да, я выиграю. Давай играть. -Вы Не можете этого сделать. [СМЕХ] Да, я выиграю. -Ты смухлевал. Теперь вы обманули. Да, я выиграю. Эй, вы мошенник. Вы обманываете, супер чит. [КОНЕЦ ПРОСМОТРА] СЛУШАЛИ: Такие разные Реакции быстро изменить наше восприятие устройства. Значит ли это, что мы сознательно строить машины, которые обманывают, потому что это лучший инженерно что мы можем сделать? Нет, но это говорит нам кое- действительно интересно о людях. Это вещь, которая обманывает вас и крадет ваша победа, это то, что жив, что это анимации, это, чтобы получить Вас. Он имеет психическое состояние. Он имеет веру. Он имеет намерение. Это вещь, которая вручает игра для вас, это не так. Вот только со сбоями. Это во многом, почему это легко бросить игру с детьми. Но если вы попытаетесь обмануть их и вроде претендовать на победу когда вы знаете, просто, чтобы сократить игра, они поймают вас сразу. Эти виды эффектов, мы видим, выходит из AI, они учат нас многому о себе. Ладно, это все на сегодня. Большое спасибо Давиду и съемочная группа Гарвардского для спускается. [АПЛОДИСМЕНТЫ] Мы будем видеть Вас на одном викторины, а затем в течение одной последней лекции. Удачного дня. [АПЛОДИСМЕНТЫ] [Играет музыка] Дэвид Дж Малан: Ну, мы, вероятно, должны ввести какой-то шифрования, правильно? Потому что тогда заголовках эти HTTP запросы будут омлет так, что кто- пытаясь обнюхать трафика на самом деле не в состоянии видеть их. Так что решение этой проблемы? Ну, мы должны фактически ввести Шифрование в формулу, так что, когда этот человек передачи данных от А до Б, мы можем надежно send-- [СМЕХ] Информация таким образом, что противник не может, на самом деле, увидеть его.