1 00:00:00,000 --> 00:00:01,924 >> [Играет музыка] 2 00:00:01,924 --> 00:00:10,600 3 00:00:10,600 --> 00:00:13,280 >> СЛУШАЛИ: Добро пожаловать, каждый. 4 00:00:13,280 --> 00:00:15,440 Это CS50. 5 00:00:15,440 --> 00:00:21,040 И сегодня, у нас есть много интересные вещи, чтобы говорить о. 6 00:00:21,040 --> 00:00:25,500 Во-первых, хотя, я должен напомнить Вы из нескольких административных вещей. 7 00:00:25,500 --> 00:00:30,160 На этой неделе викторины одним, среда или секции Yale 8 00:00:30,160 --> 00:00:32,940 по вторникам и четвергам, в четверг. 9 00:00:32,940 --> 00:00:38,170 Есть отзывы викторины сегодня в Йельском университете, 5:30 к 7:00. 10 00:00:38,170 --> 00:00:40,030 В Гарварде, они записали один вчера. 11 00:00:40,030 --> 00:00:43,000 И каждый может посмотреть, что в Интернете. 12 00:00:43,000 --> 00:00:49,406 >> Кроме того, на этой неделе или в начале следующей недели, у нас есть наш последний CS50 лекцию. 13 00:00:49,406 --> 00:00:51,450 [Стоны] я знаю. 14 00:00:51,450 --> 00:00:54,140 Он пришел так быстро. 15 00:00:54,140 --> 00:00:57,820 Yale студенты будут иметь живой лекции здесь, в юридической школе 16 00:00:57,820 --> 00:00:59,920 Зрительный зал в пятницу. 17 00:00:59,920 --> 00:01:01,140 Там будет торт. 18 00:01:01,140 --> 00:01:05,570 Студентов Гарварда будет иметь Последняя лекция в Сандерс в понедельник. 19 00:01:05,570 --> 00:01:08,050 Там также будет торт. 20 00:01:08,050 --> 00:01:14,000 >> Кроме того, на этой неделе в пятницу, для тех, из вас, кто приходят в Нью-Хейвен, 21 00:01:14,000 --> 00:01:15,740 у нас есть CS50 Expo. 22 00:01:15,740 --> 00:01:18,850 У нас есть более чем 30 зарегистрировано различные группы 23 00:01:18,850 --> 00:01:22,530 чтобы показать вам все, от автономных парусных, 24 00:01:22,530 --> 00:01:27,170 к системам, которые распознают цифровые портреты, на компьютер 25 00:01:27,170 --> 00:01:32,100 музыкой и компьютером производства музыки. 26 00:01:32,100 --> 00:01:33,610 Поэтому, пожалуйста, присоединяйтесь к нам. 27 00:01:33,610 --> 00:01:36,460 Я думаю, что это будет прекрасное время. 28 00:01:36,460 --> 00:01:40,320 >> Сегодня, однако, мы получаем продолжать говорить о AI, 29 00:01:40,320 --> 00:01:43,150 об искусственном интеллекте. 30 00:01:43,150 --> 00:01:46,070 И одна из вещей, которые мы собираемся, чтобы добраться до сегодня 31 00:01:46,070 --> 00:01:51,750 идея о том, как использовать AI решать проблемы. 32 00:01:51,750 --> 00:01:54,690 Теперь, как всегда, давайте начнем с чего-нибудь простого. 33 00:01:54,690 --> 00:01:57,120 И мы собираемся, чтобы начать с простой идеи. 34 00:01:57,120 --> 00:01:59,920 И это с помощью поиска. 35 00:01:59,920 --> 00:02:06,990 >> Итак, представьте, на минуту, что я есть задача, которую мне нужно выполнять. 36 00:02:06,990 --> 00:02:11,970 И я бы хотел, чтобы эту задачу автоматизированная некоторым программного обеспечения агента. 37 00:02:11,970 --> 00:02:17,100 Представьте себе, что я пытаюсь забронировать набор авиарейсы из, скажем, Бостон 38 00:02:17,100 --> 00:02:20,040 в Сан-Франциско. 39 00:02:20,040 --> 00:02:24,230 Я мог бы пройти и я мог бы использовать один из замечательного онлайн-поиска 40 00:02:24,230 --> 00:02:28,790 инструменты, которые собирается сделать в основном тот же процесс, что мы 41 00:02:28,790 --> 00:02:30,030 собирается идти до сегодняшнего дня. 42 00:02:30,030 --> 00:02:34,100 Но если у вас не было, что инструмент, что бы вы сделали? 43 00:02:34,100 --> 00:02:37,570 >> Ну, вы могли бы выглядеть и увидеть и сказать, что я в Бостоне. 44 00:02:37,570 --> 00:02:41,520 Какие рейсы доступны для меня? 45 00:02:41,520 --> 00:02:44,390 Теперь, может быть, я три возможные рейсы из Бостона 46 00:02:44,390 --> 00:02:47,180 который будет соответствовать времени когда мне нужно уйти. 47 00:02:47,180 --> 00:02:48,830 Я мог бы лететь в Чикаго. 48 00:02:48,830 --> 00:02:50,130 Или я мог бы летать в Майами. 49 00:02:50,130 --> 00:02:53,340 Или я мог бы летать в Нью-Йорк. 50 00:02:53,340 --> 00:02:56,980 Я мог бы затем посмотреть друг от один из тех городов назначения 51 00:02:56,980 --> 00:03:00,650 и думать о каких местах Я мог бы достичь 52 00:03:00,650 --> 00:03:03,020 от каждого из этих отдельных городов. 53 00:03:03,020 --> 00:03:07,390 >> Так, может быть, из Чикаго, я могу получить прямой рейс в Сан-Франциско. 54 00:03:07,390 --> 00:03:09,550 Это отлично. 55 00:03:09,550 --> 00:03:12,360 Или я мог бы получить рейс в Денвере. 56 00:03:12,360 --> 00:03:16,970 Теперь, может быть, что полет в Сан-Франциско является идеальным решением для меня, 57 00:03:16,970 --> 00:03:19,530 но, может быть, нет. 58 00:03:19,530 --> 00:03:22,180 Может быть, я ищу что-то что это немного дешевле 59 00:03:22,180 --> 00:03:24,920 или немного лучше для моего графика. 60 00:03:24,920 --> 00:03:29,197 И поэтому я мог смотреть на то, что другие Возможности могут быть там. 61 00:03:29,197 --> 00:03:30,280 Так что я мог смотреть в Денвере. 62 00:03:30,280 --> 00:03:33,870 И из Денвера, ну, может быть, Я могу получить полет в Остин. 63 00:03:33,870 --> 00:03:37,080 И из Остина, может быть, я могу получить Полет в Финикс, из Финикса и 64 00:03:37,080 --> 00:03:40,190 в Сан-Франциско. 65 00:03:40,190 --> 00:03:42,730 Теперь, я еще этого не сделали. 66 00:03:42,730 --> 00:03:45,640 Потому что, может быть, есть Прямой рейс из Нью-Йорка 67 00:03:45,640 --> 00:03:47,850 в Сан-Франциско, который идеально подходит для меня. 68 00:03:47,850 --> 00:03:53,354 Или, может быть, есть полет из Майами через Денвер, что это намного дешевле. 69 00:03:53,354 --> 00:03:54,270 Так что я до сих пор идти. 70 00:03:54,270 --> 00:03:58,200 И я до сих пор смотрю на всех тех, города, которые я еще не изучены. 71 00:03:58,200 --> 00:04:04,220 Я должен исчерпывающе проверить все возможности, которые я мог бы иметь. 72 00:04:04,220 --> 00:04:09,610 >> Так из Нью-Йорка, может быть, я могу получить Полет в Нэшвилле, и из Нэшвилла 73 00:04:09,610 --> 00:04:10,336 Остин. 74 00:04:10,336 --> 00:04:11,460 И тогда я знаю, где я нахожусь. 75 00:04:11,460 --> 00:04:14,252 И тогда я знаю, из Остина, я могу лететь в Финикс, из Финикса и 76 00:04:14,252 --> 00:04:14,960 в Сан-Франциско. 77 00:04:14,960 --> 00:04:18,240 78 00:04:18,240 --> 00:04:22,830 Если я летаю первым Майами, хотя, может быть, я могу получить рейс из Майами 79 00:04:22,830 --> 00:04:25,080 в Нэшвилл, или из Майами в Остине. 80 00:04:25,080 --> 00:04:27,950 81 00:04:27,950 --> 00:04:30,860 >> А теперь я попытался все возможностей. 82 00:04:30,860 --> 00:04:36,310 Я построил этот график, показывает мне все возможные маршруты 83 00:04:36,310 --> 00:04:37,790 что я мог бы быть в состоянии принять. 84 00:04:37,790 --> 00:04:40,510 85 00:04:40,510 --> 00:04:43,640 Когда мы представляем эти виды проблем, 86 00:04:43,640 --> 00:04:47,870 мы не собираемся представлять им явно, как этого графика, 87 00:04:47,870 --> 00:04:51,590 потому что граф не представляют история, где мы пошли. 88 00:04:51,590 --> 00:04:55,260 Зная, что я вылетел из Феникс в Сан-Франциско 89 00:04:55,260 --> 00:05:01,690 не скажите мне, пришла ли я с помощью Нэшвилл, или через Денвер, или через Майами. 90 00:05:01,690 --> 00:05:06,430 >> Так что я буду делать, вместо этого Я возьму этот же проблемы, 91 00:05:06,430 --> 00:05:09,140 и я буду представлять его в виде дерева. 92 00:05:09,140 --> 00:05:14,300 И в корне дерева, на сверху, я положу место, что я начал, 93 00:05:14,300 --> 00:05:16,590 Бостон. 94 00:05:16,590 --> 00:05:19,310 И из Бостона, я буду смотреть на все возможные места 95 00:05:19,310 --> 00:05:20,380 что я могу поехать в. 96 00:05:20,380 --> 00:05:25,480 Ну, в этом случае, у меня было три, Чикаго, Нью-Йорк, и Майами. 97 00:05:25,480 --> 00:05:29,850 И тогда я буду исследовать каждый из эти дети в дереве. 98 00:05:29,850 --> 00:05:32,690 >> Из Чикаго, я видел что я имел два рейса. 99 00:05:32,690 --> 00:05:35,940 Я мог бы летать непосредственно Сан - Франциско или Денвера. 100 00:05:35,940 --> 00:05:37,740 Теперь Сан-Франциско, это моя цель. 101 00:05:37,740 --> 00:05:39,790 Это моя назначения. 102 00:05:39,790 --> 00:05:42,220 Это собирается быть лист этого дерева. 103 00:05:42,220 --> 00:05:45,340 То есть, я никогда не буду идти где-то после Сан-Франциско. 104 00:05:45,340 --> 00:05:47,850 105 00:05:47,850 --> 00:05:50,340 Из Денвера, хотя, Я могу летать из Денвера 106 00:05:50,340 --> 00:05:54,220 Остин, из Остина в Финикс, и из Феникса в Сан-Франциско. 107 00:05:54,220 --> 00:05:56,050 И теперь снова, я достиг лист. 108 00:05:56,050 --> 00:05:59,470 109 00:05:59,470 --> 00:06:03,980 >> Я мог бы вернуться на следующий город, который я не полностью изучены. 110 00:06:03,980 --> 00:06:07,440 Это было бы в Нью-Йорке, перейдите обратно к вершине моего дерева, 111 00:06:07,440 --> 00:06:09,160 спуститься в Нью-Йорке. 112 00:06:09,160 --> 00:06:12,700 Из Нью-Йорка, я могу лететь в Нэшвилл, из Нэшвилла в Остине, 113 00:06:12,700 --> 00:06:17,290 из Остина в Финикс, и из Феникса в Сан-Франциско. 114 00:06:17,290 --> 00:06:20,170 И, наконец, город, который я не смотрел на все же, Майами. 115 00:06:20,170 --> 00:06:24,600 >> Ну, из Майами я сказал, было два Возможности, Нэшвилл или Остин. 116 00:06:24,600 --> 00:06:28,810 Если я летаю в Нэшвилле, а затем я летаю из Нэшвилла, в Остин, в Феникс, 117 00:06:28,810 --> 00:06:29,640 в Сан-Франциско. 118 00:06:29,640 --> 00:06:33,600 Если я летаю в Остине, я летаю Остин, в Финикс, Сан-Франциско. 119 00:06:33,600 --> 00:06:36,340 И теперь у меня есть дерево. 120 00:06:36,340 --> 00:06:37,230 Это полное дерево. 121 00:06:37,230 --> 00:06:41,890 Это все возможности и все пути, что я мог бы принять. 122 00:06:41,890 --> 00:06:44,310 То есть, если я начну на корень дерева в верхней 123 00:06:44,310 --> 00:06:47,860 и я иду к одной из листья, он говорит мне, не только 124 00:06:47,860 --> 00:06:50,480 где я собираюсь в конечном итоге, Сан-Франциско, 125 00:06:50,480 --> 00:06:53,670 но он говорит мне, что маршрут Мне нужно, чтобы добраться там. 126 00:06:53,670 --> 00:06:56,400 127 00:06:56,400 --> 00:06:59,690 >> Теперь, что один из них лучше? 128 00:06:59,690 --> 00:07:02,430 Ну, ничего об этом Проблема еще говорит мне, 129 00:07:02,430 --> 00:07:04,710 который из них является лучшим решением. 130 00:07:04,710 --> 00:07:09,270 Может быть, я все равно больше всего сколько раз я в воздухе, 131 00:07:09,270 --> 00:07:12,350 или расстояние, что я лечу. 132 00:07:12,350 --> 00:07:16,410 В этом случае, Чикаго Сан Франциско может быть короткий номер 133 00:07:16,410 --> 00:07:18,910 миль в воздухе. 134 00:07:18,910 --> 00:07:20,860 >> Может быть, я забочусь о стоимости. 135 00:07:20,860 --> 00:07:23,680 И все мы знаем прямые рейсы как правило, дороже. 136 00:07:23,680 --> 00:07:26,610 Так, может быть, если я возьму это вид обратной маршруту 137 00:07:26,610 --> 00:07:30,650 через Майами, Нэшвилле, Остин, Финикс, может быть, тогда 138 00:07:30,650 --> 00:07:34,070 Я получить более низкую цену. 139 00:07:34,070 --> 00:07:36,440 Но я мог бы оптимизировать на любом Критерии, которые я забочусь. 140 00:07:36,440 --> 00:07:39,790 Кто получил лучший в Полет Wi-Fi, или которые 141 00:07:39,790 --> 00:07:43,110 аэропорты имеют лучшая еда доступна. 142 00:07:43,110 --> 00:07:47,280 И каждый из тех, кто может дать мне другое решение 143 00:07:47,280 --> 00:07:49,215 что я вижу как лучший. 144 00:07:49,215 --> 00:07:51,990 145 00:07:51,990 --> 00:07:54,400 >> Эти виды проблем, куда мы идем 146 00:07:54,400 --> 00:07:58,480 построить эту дерево Возможности, а затем 147 00:07:58,480 --> 00:08:02,100 посмотреть на каждый из тех, отдельные дорожки, и изучить 148 00:08:02,100 --> 00:08:05,270 какие из этих выполняет критерием для нас, 149 00:08:05,270 --> 00:08:08,790 мы собираемся называть эти проблемы поиска. 150 00:08:08,790 --> 00:08:11,280 И у нас есть много Алгоритмы, некоторые из которых 151 00:08:11,280 --> 00:08:15,270 мы уже видели, чтобы пойти и исследовать эти деревья. 152 00:08:15,270 --> 00:08:19,270 Мы могли бы сделать это таким образом, что я только что сделали, в глубину поиска, 153 00:08:19,270 --> 00:08:22,900 спускаясь, насколько мы можем пока мы хит лист, а затем возвращаться вверх, 154 00:08:22,900 --> 00:08:24,787 и собирается обратно вниз. 155 00:08:24,787 --> 00:08:26,870 Или мы могли бы делать то, что называется поиск в ширину. 156 00:08:26,870 --> 00:08:29,675 Мы могли бы расширить все в верхней части, а затем 157 00:08:29,675 --> 00:08:31,550 все одна линия под этим, и затем 158 00:08:31,550 --> 00:08:35,240 все одна линия под этим. 159 00:08:35,240 --> 00:08:41,250 Эти деревья поиска являются основополагающими для ИИ. 160 00:08:41,250 --> 00:08:46,570 Но они не совсем понимаю это право все время. 161 00:08:46,570 --> 00:08:51,600 На самом деле, во многих случаев что мы действительно заботимся о, 162 00:08:51,600 --> 00:08:54,430 мы хотим построить дерево, но мы на самом деле не 163 00:08:54,430 --> 00:08:57,140 получить, чтобы все решения. 164 00:08:57,140 --> 00:09:00,940 >> Это ситуации, называемые состязательности поиск, также известный 165 00:09:00,940 --> 00:09:05,390 о том, как написать игру играть системы и платят за это. 166 00:09:05,390 --> 00:09:07,940 Но эти виды систем, где я 167 00:09:07,940 --> 00:09:12,920 может получить, чтобы выбрать, когда я иду от Бостон, какой город я иду к следующему. 168 00:09:12,920 --> 00:09:19,990 Но после этого, кто-то может получить принять решение о том, где я летаю. 169 00:09:19,990 --> 00:09:24,040 Таким образом, чтобы построить эти виды структуры, мы 170 00:09:24,040 --> 00:09:28,510 придется принять немного Другой подход к ней. 171 00:09:28,510 --> 00:09:31,060 Мы не собираемся быть в состоянии просто искать по дереву 172 00:09:31,060 --> 00:09:35,000 больше, потому что мы не тот, который контролирует 173 00:09:35,000 --> 00:09:38,180 каждого из этих точек принятия решений. 174 00:09:38,180 --> 00:09:42,590 >> Итак, давайте представим себе простой игры, как крестики-нолики. 175 00:09:42,590 --> 00:09:46,730 Я мог бы начать с полностью пустой борту. 176 00:09:46,730 --> 00:09:49,580 И в крестики-нолики, Х добирается, чтобы играть в первую очередь. 177 00:09:49,580 --> 00:09:53,890 И так я мог думать обо всем возможные ходы, которые могли бы сделать Х. 178 00:09:53,890 --> 00:09:57,420 И если я один игры Х, это здорово. 179 00:09:57,420 --> 00:10:01,020 У меня есть девять возможное движется, что я могу сделать. 180 00:10:01,020 --> 00:10:05,000 Я мог бы положить X в одном из этих девяти позиций. 181 00:10:05,000 --> 00:10:10,710 >> А затем из каждой из них, я мог себе представить, что произойдет дальше. 182 00:10:10,710 --> 00:10:14,130 Ну, в этом случае, другой Игрок получит занять очередь. 183 00:10:14,130 --> 00:10:15,660 О получили бы занять очередь. 184 00:10:15,660 --> 00:10:19,510 И от каждого из них, есть будет восемь различных мест 185 00:10:19,510 --> 00:10:22,980 что О может поставить их маркер. 186 00:10:22,980 --> 00:10:25,790 >> Скажем, я решил, что я был собирается положить X в центре. 187 00:10:25,790 --> 00:10:28,810 Это всегда кажется хороший открытие ход. 188 00:10:28,810 --> 00:10:34,870 Я мог смотреть на под того, восемь возможных шагов, которые делает. О 189 00:10:34,870 --> 00:10:37,320 Теперь, если я играю X, это замечательно. 190 00:10:37,320 --> 00:10:41,740 Я получаю выбрать, какой я идти, один в середине. 191 00:10:41,740 --> 00:10:45,000 Но теперь О получает, чтобы выбрать. 192 00:10:45,000 --> 00:10:48,750 И я не имеют контроля в течение этого решения. 193 00:10:48,750 --> 00:10:51,670 >> Но с каждой из них возможные позиции доска, 194 00:10:51,670 --> 00:10:54,020 есть то другой множество возможностей. 195 00:10:54,020 --> 00:10:56,700 Когда дело доходит до быть моя очередь снова, я бы 196 00:10:56,700 --> 00:11:01,500 получить, чтобы забрать и сказать, ну, если О переходит в, ну, 197 00:11:01,500 --> 00:11:06,110 средний пятно на левой, а затем У меня есть набор возможностей 198 00:11:06,110 --> 00:11:09,740 где я могу взять мой следующий шаг. 199 00:11:09,740 --> 00:11:14,140 Из них, я мог рассмотреть все возможности под ними. 200 00:11:14,140 --> 00:11:18,030 А потом вывода получите выбрать среди тех,. 201 00:11:18,030 --> 00:11:22,290 >> И я мог бы продолжать строить этот дерево не, пока я попал в точку, 202 00:11:22,290 --> 00:11:26,960 где либо кто-то выигрывает game-- Это 203 00:11:26,960 --> 00:11:31,070 должен быть рассмотрен лист node-- или плата полностью заполнен 204 00:11:31,070 --> 00:11:32,704 и никто не выиграл. 205 00:11:32,704 --> 00:11:34,370 И это также будет конечный узел. 206 00:11:34,370 --> 00:11:35,411 Это собирается быть галстук. 207 00:11:35,411 --> 00:11:37,820 208 00:11:37,820 --> 00:11:41,680 >> Но хитрая вещь с этим если бы это было просто очередной поиск 209 00:11:41,680 --> 00:11:44,269 проблема, я был бы в состоянии скажем, ну, X должен идти здесь. 210 00:11:44,269 --> 00:11:45,560 И О должны идти путь там. 211 00:11:45,560 --> 00:11:46,770 И тогда Х должны идти сюда. 212 00:11:46,770 --> 00:11:48,269 А потом вывода должны идти путь там. 213 00:11:48,269 --> 00:11:51,860 И тогда Х может получить три в строке, и я выиграю. 214 00:11:51,860 --> 00:11:54,870 И игра будет закончена в пяти ходов, три для меня, 215 00:11:54,870 --> 00:11:57,710 два для моего оппонента. 216 00:11:57,710 --> 00:12:01,300 Но я не всегда можете выбрать, что. 217 00:12:01,300 --> 00:12:03,720 >> Таким образом, вместо, того, что мы придется делать 218 00:12:03,720 --> 00:12:06,270 что мы будем иметь иметь новую стратегию. 219 00:12:06,270 --> 00:12:09,350 И стратегия, что игровые алгоритмы часто используют 220 00:12:09,350 --> 00:12:12,000 это то, что называется минимаксной. 221 00:12:12,000 --> 00:12:15,500 Центральная идея минимаксный, что мы 222 00:12:15,500 --> 00:12:21,365 собирается забрать шаг, который дает наш оппонент худший набор 223 00:12:21,365 --> 00:12:22,790 ходов, что они могут сделать. 224 00:12:22,790 --> 00:12:25,570 225 00:12:25,570 --> 00:12:28,870 Это не делает мне ничего хорошего выбрать шаг где 226 00:12:28,870 --> 00:12:31,952 Я мог бы быть в состоянии выиграть после что, потому что мой соперник не 227 00:12:31,952 --> 00:12:33,160 собирается дать мне этот шанс. 228 00:12:33,160 --> 00:12:37,770 Они собираются выбрать некоторые ужасно результат для меня. 229 00:12:37,770 --> 00:12:42,010 Так что я собираюсь сделать двигаться, что заставляет моего оппонента 230 00:12:42,010 --> 00:12:45,760 сделать что-то лучше для меня. 231 00:12:45,760 --> 00:12:46,260 Все в порядке. 232 00:12:46,260 --> 00:12:48,410 Давайте посмотрим, как это теряет значение. 233 00:12:48,410 --> 00:12:51,640 Так вот наш алгоритм псевдокоде. 234 00:12:51,640 --> 00:12:54,450 Мы собираемся, чтобы генерировать все дерево игры. 235 00:12:54,450 --> 00:12:56,757 Мы собираемся построить вся структура. 236 00:12:56,757 --> 00:12:57,840 И тогда мы будем идти до конца. 237 00:12:57,840 --> 00:13:02,100 И в самом низу на каждой из терминальными узлами, в каждом из листьев, 238 00:13:02,100 --> 00:13:07,850 мы оценить, как ценно то, что со мной? 239 00:13:07,850 --> 00:13:11,690 И мы собираемся стоимости вещей, которые хорошо для меня, как быть положительным. 240 00:13:11,690 --> 00:13:14,460 Вещи, которые не очень хорошо для меня будет меньше положительным или равно нулю, 241 00:13:14,460 --> 00:13:16,480 или даже отрицательным. 242 00:13:16,480 --> 00:13:19,240 >> Таким образом, в крестики-нолики, может быть, победа для меня это хорошо. 243 00:13:19,240 --> 00:13:20,290 Вот один. 244 00:13:20,290 --> 00:13:22,400 И галстук нулю. 245 00:13:22,400 --> 00:13:26,230 И то, что это потеря для мне, может быть, это отрицательный. 246 00:13:26,230 --> 00:13:29,620 Все, что имеет значение в том, что лучше это для меня, тем выше оценка 247 00:13:29,620 --> 00:13:32,160 он получает. 248 00:13:32,160 --> 00:13:36,690 От этих возможностей на снизу, тогда мы будем фильтровать вверх. 249 00:13:36,690 --> 00:13:40,650 И когда это мой шанс выбрать среди множества альтернатив, 250 00:13:40,650 --> 00:13:44,460 Я выберу тот, который получил самый высокий балл. 251 00:13:44,460 --> 00:13:47,200 >> И всякий раз, когда это моя Противники очередь выбирать, 252 00:13:47,200 --> 00:13:52,350 Я предполагаю, что они собираются выбрать один с самым низким счетом. 253 00:13:52,350 --> 00:13:56,090 И если я сделаю это весь путь до верхней части дерева, 254 00:13:56,090 --> 00:14:03,150 Я выбрал путь, который дает мне лучший результат, что я могу получить, 255 00:14:03,150 --> 00:14:09,110 предполагая, что мой оппонент делает все правильные шаги. 256 00:14:09,110 --> 00:14:11,940 >> Ладно, так что давайте посмотрим это действие первым. 257 00:14:11,940 --> 00:14:14,980 И тогда мы будем на самом деле посмотреть на код для него. 258 00:14:14,980 --> 00:14:16,780 Итак, представьте, у меня есть этот большой дерево. 259 00:14:16,780 --> 00:14:18,280 А теперь я не играю в крестики-нолики. 260 00:14:18,280 --> 00:14:20,405 Я хотел, чтобы дать вам что-то немного богаче. 261 00:14:20,405 --> 00:14:23,560 Так что я получил некоторую игру, где есть много различных забивает 262 00:14:23,560 --> 00:14:26,390 что я мог бы в конце. 263 00:14:26,390 --> 00:14:27,980 И поэтому я построить это полное дерево. 264 00:14:27,980 --> 00:14:29,070 И я получаю первый ход. 265 00:14:29,070 --> 00:14:31,290 Я в корне дерева. 266 00:14:31,290 --> 00:14:36,150 >> И я получаю выбрать that-- так что я получаю максимально по этой первого узла. 267 00:14:36,150 --> 00:14:38,410 И тогда мой оппонент получает идти. 268 00:14:38,410 --> 00:14:41,910 И тогда я идти еще раз. 269 00:14:41,910 --> 00:14:46,830 Так на дне, у меня есть набор Возможности, которые я могу выбрать из, 270 00:14:46,830 --> 00:14:50,570 различные терминальные состояния игры. 271 00:14:50,570 --> 00:14:54,980 Если я вниз, что далеко левом углу, 272 00:14:54,980 --> 00:14:58,867 и я вижу, что у меня есть выбор между восемь, семь, и два, 273 00:14:58,867 --> 00:15:00,450 ну, я тот, который получает на выбор. 274 00:15:00,450 --> 00:15:02,910 Так что я собираюсь выбрать одним из лучших из них. 275 00:15:02,910 --> 00:15:05,650 Я собираюсь выбрать восемь. 276 00:15:05,650 --> 00:15:10,090 >> Так что я знаю, что если я когда-либо приступим к этой точке, 277 00:15:10,090 --> 00:15:13,890 Я буду в состоянии получить что восемь очков. 278 00:15:13,890 --> 00:15:17,410 Если я в конечном итоге в следующей точке более, следующий узел в течение, 279 00:15:17,410 --> 00:15:20,760 девять, один, или шесть, ну, я собирается выбрать лучший из них. 280 00:15:20,760 --> 00:15:21,950 Я выберу девять. 281 00:15:21,950 --> 00:15:24,880 Если у меня есть выбор между два, а четыре, и один, 282 00:15:24,880 --> 00:15:28,240 Я выберу четыре, самый высокий. 283 00:15:28,240 --> 00:15:31,990 >> Теперь, если я смотрю на уровне выше, что, мой оппонент 284 00:15:31,990 --> 00:15:34,440 это один получает, чтобы сделать этот выбор. 285 00:15:34,440 --> 00:15:37,040 Так что мой противник получает выбрать, я хочу, чтобы дать ему 286 00:15:37,040 --> 00:15:39,250 То, что происходит чтобы получить его восемь очков, 287 00:15:39,250 --> 00:15:41,916 или я даю ему вещь, которая собираюсь дать ему девять очков, 288 00:15:41,916 --> 00:15:45,240 или вещь, которая происходит чтобы дать ему четыре очка? 289 00:15:45,240 --> 00:15:49,130 И мой оппонент, будучи рациональным, будет 290 00:15:49,130 --> 00:15:53,470 выбрать минимум тем, будет выбрать четыре. 291 00:15:53,470 --> 00:15:56,020 >> И я могу это сделать через весь дерева. 292 00:15:56,020 --> 00:15:59,110 Я могу спуститься к тому, что средний набор из трех. 293 00:15:59,110 --> 00:16:01,517 И я могу выбрать между один, три, пять. 294 00:16:01,517 --> 00:16:02,350 И я получаю, чтобы выбрать. 295 00:16:02,350 --> 00:16:03,810 Так что я выбрать пять. 296 00:16:03,810 --> 00:16:05,340 Я могу выбрать три, девять, или два. 297 00:16:05,340 --> 00:16:07,570 Я получаю выбрать, так что я выбрать девять. 298 00:16:07,570 --> 00:16:09,290 Шесть, пять, или два, я выбираю. 299 00:16:09,290 --> 00:16:11,539 Я получаю выбрать шесть. 300 00:16:11,539 --> 00:16:13,080 Уровень выше того, кто получает, чтобы выбрать? 301 00:16:13,080 --> 00:16:16,280 302 00:16:16,280 --> 00:16:18,140 Кто получает выбрать? 303 00:16:18,140 --> 00:16:20,000 Другой парень, мой оппонент. 304 00:16:20,000 --> 00:16:22,583 Так они выбирают пять, девять, или шесть, то какие? 305 00:16:22,583 --> 00:16:23,410 >> Аудитория: пять. 306 00:16:23,410 --> 00:16:25,250 >> СЛУШАЛИ: Они выбирают пять. 307 00:16:25,250 --> 00:16:27,400 Они получают, чтобы выбрать минимум. 308 00:16:27,400 --> 00:16:29,690 И тогда последний, выбрать один, два, или три. 309 00:16:29,690 --> 00:16:31,720 Я получаю выбрать, так что я выбрать три. 310 00:16:31,720 --> 00:16:34,370 Девять, семь, или два, я выбираю девять. 311 00:16:34,370 --> 00:16:37,070 И 11, шесть или четыре, я выбираю 11. 312 00:16:37,070 --> 00:16:41,190 Мой оппонент выбирает три, девяти или 11, выбирает минимальное. 313 00:16:41,190 --> 00:16:43,290 Он дает мне три. 314 00:16:43,290 --> 00:16:47,780 И, наконец в верхней части дерево, я получаю, чтобы выбрать снова. 315 00:16:47,780 --> 00:16:51,190 И я получаю выбирать между четыре, пять, или три. 316 00:16:51,190 --> 00:16:52,270 Итак, я беру на пять. 317 00:16:52,270 --> 00:16:55,070 318 00:16:55,070 --> 00:17:00,891 >> Если бы я получил все контролировать, я бы встать на путь, который привел к 11. 319 00:17:00,891 --> 00:17:02,390 Но я не получаю, чтобы сделать этот выбор. 320 00:17:02,390 --> 00:17:04,220 Если я иду по этому пути. 321 00:17:04,220 --> 00:17:10,710 Мой оппонент заставит меня в выбор, который приводит к трем. 322 00:17:10,710 --> 00:17:14,530 Таким образом, лучшее, что я могу сделать, это принять, что средний филиал, 323 00:17:14,530 --> 00:17:19,859 сделать этот выбор, что в конечном счете собирается привести меня до пяти очков. 324 00:17:19,859 --> 00:17:23,230 Это то, что делает минимакса. 325 00:17:23,230 --> 00:17:23,807 >> Все в порядке. 326 00:17:23,807 --> 00:17:24,890 Давайте взглянем на это. 327 00:17:24,890 --> 00:17:27,480 328 00:17:27,480 --> 00:17:32,330 Так вот в CS50 IDE это программа, которая 329 00:17:32,330 --> 00:17:36,540 реализует минимакса играть в крестики-нолики. 330 00:17:36,540 --> 00:17:40,100 Мы собираемся построить до представления. 331 00:17:40,100 --> 00:17:44,390 Мы собираемся иметь два opponent-- или двух игроков, наш компьютер 332 00:17:44,390 --> 00:17:46,090 плеер и проигрыватель человека. 333 00:17:46,090 --> 00:17:48,980 334 00:17:48,980 --> 00:17:53,090 Номер игрока один будет играть О. Это будет машина игрок. 335 00:17:53,090 --> 00:17:55,747 Они получают, чтобы переместить секунду. 336 00:17:55,747 --> 00:17:57,830 И другой игрок, наш человек-плеер, будет X. 337 00:17:57,830 --> 00:17:59,880 >> И сделать мою жизнь немного просто, я иду 338 00:17:59,880 --> 00:18:03,060 маркировать, что игрок отрицательный. 339 00:18:03,060 --> 00:18:05,026 Так что я могу просто умножить на минус единицу, чтобы поменять 340 00:18:05,026 --> 00:18:06,400 между одним игроком и другим. 341 00:18:06,400 --> 00:18:09,030 342 00:18:09,030 --> 00:18:12,250 Ладно, так что давайте взглянем на то, что мы на самом деле собирается делать. 343 00:18:12,250 --> 00:18:15,840 Мы собираемся, чтобы определить наш совет. 344 00:18:15,840 --> 00:18:19,060 Это будет хорошо, мы собираемся чтобы она могла быть три на три, 345 00:18:19,060 --> 00:18:21,580 или мы можем даже играть пять на пять или семь 346 00:18:21,580 --> 00:18:28,870 на семь крестики-нолики, если вы хотите как, основываясь на какой-то размерности D. 347 00:18:28,870 --> 00:18:31,260 >> И мы будем иметь пару из вспомогательных функций 348 00:18:31,260 --> 00:18:34,360 что будет делать вещи, как инициализировать screen-- или извините, 349 00:18:34,360 --> 00:18:38,900 инициализировать наши переменные, снимите экраном, нарисовать доску на экране, 350 00:18:38,900 --> 00:18:41,060 который проверяет доска чтобы увидеть или не 351 00:18:41,060 --> 00:18:44,520 есть победитель, который разбирает с помощью командной строки, 352 00:18:44,520 --> 00:18:50,670 просто, чтобы помочь, тот, который считывает вход, и одна функция называется минимаксной. 353 00:18:50,670 --> 00:18:52,746 И это один мы заботимся больше всего. 354 00:18:52,746 --> 00:18:54,120 Но давайте сначала посмотрим на основной. 355 00:18:54,120 --> 00:18:57,490 356 00:18:57,490 --> 00:18:58,510 >> Что мы делаем? 357 00:18:58,510 --> 00:19:00,570 Ну, мы собираемся разобрать нашу командную строку, 358 00:19:00,570 --> 00:19:04,300 только что прочитал и посмотреть, что Размер платы, мы хотели бы иметь. 359 00:19:04,300 --> 00:19:07,330 Мы инициализировать плату. 360 00:19:07,330 --> 00:19:10,360 И тогда мы будем вводить один большой дикий цикл, неоднократно 361 00:19:10,360 --> 00:19:16,630 принять шаги, пока игра не выиграл, или нет никаких перемещается влево. 362 00:19:16,630 --> 00:19:20,560 Каждый раз, когда мы идем через это цикл, мы очистить экран. 363 00:19:20,560 --> 00:19:23,290 Мы будем рисовать доска на экране. 364 00:19:23,290 --> 00:19:28,750 И мы преднамеренно рода абстрагируясь от них в виде подпрограмм, 365 00:19:28,750 --> 00:19:32,030 так, что мы не должны слишком беспокоиться о подробностях, как они происходят. 366 00:19:32,030 --> 00:19:33,480 >> Вы будете иметь код позже сегодня. 367 00:19:33,480 --> 00:19:37,970 И если вы хотите, чтобы смотреть через и выяснить это, вы можете увидеть их все. 368 00:19:37,970 --> 00:19:39,890 Но мы будем рисовать доску на экране. 369 00:19:39,890 --> 00:19:43,620 И тогда мы будем проверять и см, у нас есть победитель? 370 00:19:43,620 --> 00:19:46,290 Кто-то выиграл эту игру? 371 00:19:46,290 --> 00:19:49,260 Если у них есть, мы распечатать из сообщения победа. 372 00:19:49,260 --> 00:19:51,680 И мы будем закончить игру. 373 00:19:51,680 --> 00:19:54,510 >> Мы также проверить и увидеть, если есть галстук. 374 00:19:54,510 --> 00:19:56,620 Это будет легко увидеть, если есть галстук. 375 00:19:56,620 --> 00:20:00,700 Это означает, что все пространства полны, но не был победителем еще. 376 00:20:00,700 --> 00:20:03,580 Мы можем объявить галстук и сделать. 377 00:20:03,580 --> 00:20:10,530 Тогда реальная meat-- если это машина плеер, 378 00:20:10,530 --> 00:20:14,120 мы допустить, что машина плеер для поиска 379 00:20:14,120 --> 00:20:19,500 путем использования этого алгоритма минимаксного, найти лучший ход, что он может. 380 00:20:19,500 --> 00:20:22,310 И тогда мы будем положить, что двигаться вверх. 381 00:20:22,310 --> 00:20:27,640 >> В противном случае, если это человек-плеер, мы будем читать некоторые материалы из человека. 382 00:20:27,640 --> 00:20:30,800 А потом будь то человек игрок или машина плеер, 383 00:20:30,800 --> 00:20:32,800 мы сделаем пару немного биты проверки ошибок, 384 00:20:32,800 --> 00:20:36,910 убедитесь, что он остается в пределах границ из фактических размеров платы 385 00:20:36,910 --> 00:20:40,040 что у нас есть, убедитесь, что что это пространство пусто, 386 00:20:40,040 --> 00:20:43,570 что никто поставим кусок там уже. 387 00:20:43,570 --> 00:20:45,810 И тогда мы будем просто положить кусок на борту, 388 00:20:45,810 --> 00:20:51,550 изменить игрока на следующий уровень, и увеличить сколько ходов произошло. 389 00:20:51,550 --> 00:20:54,090 >> Это основной цикл для наш крестики-нолики игра. 390 00:20:54,090 --> 00:20:57,000 391 00:20:57,000 --> 00:21:02,340 Минимакс, то, точно алгоритм, который мы раньше. 392 00:21:02,340 --> 00:21:04,710 Единственное, что регулировка мы сделали так, что мы 393 00:21:04,710 --> 00:21:07,290 может играть более мерных плат мы в 394 00:21:07,290 --> 00:21:11,070 сохранить этот дополнительный параметр, называемый глубина. 395 00:21:11,070 --> 00:21:14,870 И глубина просто говорит, если я поиск вниз через этого дерева 396 00:21:14,870 --> 00:21:19,022 и я так далеко вниз за некоторой глубине уровня 397 00:21:19,022 --> 00:21:20,730 что я просто не хочу, чтобы идти дальше, 398 00:21:20,730 --> 00:21:25,630 Я собираюсь остановиться и просто оценить доска в этой точке. 399 00:21:25,630 --> 00:21:27,310 Я проверить и посмотреть, если есть победитель. 400 00:21:27,310 --> 00:21:29,240 Если есть победитель, я их вернуть. 401 00:21:29,240 --> 00:21:31,720 В противном случае, я пойду через петлю. 402 00:21:31,720 --> 00:21:34,380 И я скажу, для всех возможные места 403 00:21:34,380 --> 00:21:38,080 что я мог, возможно, взять в качестве моего переезда, я 404 00:21:38,080 --> 00:21:43,760 построить гипотетическую совет, который включает в себя свой ход на этом борту, 405 00:21:43,760 --> 00:21:45,960 а затем рекурсивно вызывает минимакса. 406 00:21:45,960 --> 00:21:49,360 407 00:21:49,360 --> 00:21:53,900 >> Если это мой шаг, я получаю, чтобы найти тот, который получил наибольшее количество баллов. 408 00:21:53,900 --> 00:21:58,710 Если это движение моего оппонента, мы находим тот, который получил минимальный балл. 409 00:21:58,710 --> 00:22:02,240 И все остальное просто учет. 410 00:22:02,240 --> 00:22:04,789 Ладно, так что давайте посмотрим этот пробег. 411 00:22:04,789 --> 00:22:06,830 На самом деле, может быть, мы можем получить пару добровольцев 412 00:22:06,830 --> 00:22:09,930 прийти и играть в крестики-нолики. 413 00:22:09,930 --> 00:22:12,780 [Неразборчиво] одним, и один Более того, два, прямо там. 414 00:22:12,780 --> 00:22:13,550 Давай до. 415 00:22:13,550 --> 00:22:19,290 416 00:22:19,290 --> 00:22:23,650 >> Так что давайте идти вперед и перезагрузить это полностью. 417 00:22:23,650 --> 00:22:24,150 Так привет. 418 00:22:24,150 --> 00:22:24,920 >> АУДИТОРИЯ: Привет. 419 00:22:24,920 --> 00:22:25,420 >> СЛУШАЛИ: Ваше имя? 420 00:22:25,420 --> 00:22:26,086 >> АУДИТОРИЯ: Gorav. 421 00:22:26,086 --> 00:22:26,840 СЛУШАЛИ: Gorav. 422 00:22:26,840 --> 00:22:27,800 >> АУДИТОРИЯ: Я Лейла. 423 00:22:27,800 --> 00:22:29,490 >> СЛУШАЛИ: И Лейла, Лейла и, извините. 424 00:22:29,490 --> 00:22:30,384 Давай до. 425 00:22:30,384 --> 00:22:32,050 Gorav, мы собираемся, чтобы вы идете в первую очередь. 426 00:22:32,050 --> 00:22:37,710 И я попрошу вас быть не ужасно хорошо крестики-нолики игрок. 427 00:22:37,710 --> 00:22:40,130 ОК, так что все давление на вас. 428 00:22:40,130 --> 00:22:44,660 Давайте посмотрим, однако, что наша машина Игрок может сделать что-то умный. 429 00:22:44,660 --> 00:22:45,310 Так что вперед. 430 00:22:45,310 --> 00:22:49,830 Вы собираетесь ввести в которые координируют Вы хотели бы поставить крестик в. 431 00:22:49,830 --> 00:22:55,170 А0, ОК, и машина пошла сразу и поставить свой след в А1. 432 00:22:55,170 --> 00:22:56,640 >> Поставьте O на борту. 433 00:22:56,640 --> 00:22:58,970 Ладно, теперь иди вперед. 434 00:22:58,970 --> 00:23:00,193 Куда бы ты хотел пойти? 435 00:23:00,193 --> 00:23:03,510 436 00:23:03,510 --> 00:23:05,090 С2. 437 00:23:05,090 --> 00:23:08,430 Наша машина игрок принял средний квадрат, заблокировал вас. 438 00:23:08,430 --> 00:23:10,320 Так что это было хорошо, умная вещь для того, чтобы сделать. 439 00:23:10,320 --> 00:23:13,430 440 00:23:13,430 --> 00:23:14,250 Вы заблокировали. 441 00:23:14,250 --> 00:23:15,210 Это отлично. 442 00:23:15,210 --> 00:23:16,390 Это подает угловой там. 443 00:23:16,390 --> 00:23:23,890 444 00:23:23,890 --> 00:23:30,430 >> И это происходит, чтобы заставить вас взять один последний пространства, B0. 445 00:23:30,430 --> 00:23:32,220 И игра заканчивается вничью. 446 00:23:32,220 --> 00:23:35,030 Но он играл разумный Игра против вас, не так ли? 447 00:23:35,030 --> 00:23:36,956 Ладно, спасибо очень много, Gorav. 448 00:23:36,956 --> 00:23:40,860 >> [АПЛОДИСМЕНТЫ] 449 00:23:40,860 --> 00:23:44,723 >> Ладно, Лейла, мы собираемся до игры на вас здесь. 450 00:23:44,723 --> 00:23:46,940 >> АУДИТОРИЯ: О, здорово. 451 00:23:46,940 --> 00:23:49,950 >> СПИКЕР: Мы собираемся дать Вы Четыре на четыре крестики-нолики. 452 00:23:49,950 --> 00:23:54,760 Теперь, в четыре на четыре, у вас есть, чтобы выиграть с четырьмя подряд, а не три в ряд. 453 00:23:54,760 --> 00:23:56,135 И это все твое. 454 00:23:56,135 --> 00:24:02,180 455 00:24:02,180 --> 00:24:04,420 Так Лейла взяла D1. 456 00:24:04,420 --> 00:24:11,730 Теперь мы собираемся следовать наш компьютер игрок здесь. 457 00:24:11,730 --> 00:24:16,910 Три на три Tic-Tac-Toe является своего рода вещи, которые легко для всех нас. 458 00:24:16,910 --> 00:24:21,960 Но это все равно приятно видеть компьютерного игрока делает правильные ходы. 459 00:24:21,960 --> 00:24:23,725 Четыре на четыре получает быть немного сложнее. 460 00:24:23,725 --> 00:24:42,960 461 00:24:42,960 --> 00:24:44,230 >> Красиво сделано. 462 00:24:44,230 --> 00:24:46,210 Ладно, так Лейла закончил с. 463 00:24:46,210 --> 00:24:48,270 О, и мы должны закончились там. 464 00:24:48,270 --> 00:24:51,870 Но давайте сделаем еще один здесь. 465 00:24:51,870 --> 00:24:53,480 Так Layla, спасибо. 466 00:24:53,480 --> 00:24:55,112 Красиво сделано. 467 00:24:55,112 --> 00:24:57,517 >> [АПЛОДИСМЕНТЫ] 468 00:24:57,517 --> 00:25:00,410 469 00:25:00,410 --> 00:25:04,750 >> Таким образом, наша игра в крестики-нолики игрок идет через и находит места, 470 00:25:04,750 --> 00:25:07,040 решает их с помощью этой минимакса. 471 00:25:07,040 --> 00:25:08,990 И я был настройку глубины на которые так, чтобы он 472 00:25:08,990 --> 00:25:11,010 не будет работать слишком быстро, поэтому, наверное, 473 00:25:11,010 --> 00:25:16,790 Лейла была в состоянии пойти вперед красиво как она, и сделал очень хорошо. 474 00:25:16,790 --> 00:25:20,450 Но эти системы, что только пройти и перебор 475 00:25:20,450 --> 00:25:23,870 глубже, и глубже, и глубже, и продолжают находить решение 476 00:25:23,870 --> 00:25:29,890 что им нужно, эти виды систем довольно успешно эти, ну, 477 00:25:29,890 --> 00:25:32,700 стандартные настольные игры. 478 00:25:32,700 --> 00:25:37,060 >> И в самом деле, если мы посмотрим на три на три крестики-нолики игры, 479 00:25:37,060 --> 00:25:40,040 это в основном решена проблема. 480 00:25:40,040 --> 00:25:45,430 И это замечательный схема от Randall Манро в XKCD, 481 00:25:45,430 --> 00:25:52,130 показ, которые перемещаются вы должны принять, учитывая движется вашего противника. 482 00:25:52,130 --> 00:25:56,420 Это то, что мы могли бы легко определить заранее. 483 00:25:56,420 --> 00:26:00,180 Но то, что происходит, когда мы получаем более сложные игры, более сложных игр, 484 00:26:00,180 --> 00:26:05,690 где Есть большие доски, более Возможности, глубже стратегия? 485 00:26:05,690 --> 00:26:09,660 >> Оказывается, что это перебор поиске еще 486 00:26:09,660 --> 00:26:14,150 делает достаточно хорошо, за исключением того, когда вы дойдете до точки, 487 00:26:14,150 --> 00:26:19,230 где это дерево настолько велик что вы не можете представить все это. 488 00:26:19,230 --> 00:26:22,370 489 00:26:22,370 --> 00:26:28,280 Если вы не можете вычислить все дерево, если вы не можете идти вперед и толчок 490 00:26:28,280 --> 00:26:32,204 сами до точки, где вы получил все дерево в памяти, 491 00:26:32,204 --> 00:26:34,370 или вы можете получить его в памяти, и это будет только 492 00:26:34,370 --> 00:26:39,200 принять вас слишком долго, чтобы искать через это, у вас есть что-то делать умнее. 493 00:26:39,200 --> 00:26:42,620 494 00:26:42,620 --> 00:26:46,450 >> Для того, чтобы сделать это, вам нужно сделать две вещи. 495 00:26:46,450 --> 00:26:49,030 Во-первых, вы должны найти некоторые способ ограничения глубину. 496 00:26:49,030 --> 00:26:50,370 Ну, это нормально. 497 00:26:50,370 --> 00:26:55,740 Мы можем найти хороший, минимум и сказать, вы можете идти только так глубоко. 498 00:26:55,740 --> 00:27:00,890 Но когда вы это сделаете, это означает, что вам эти частично неполные доска. 499 00:27:00,890 --> 00:27:04,770 И вы должны выбрать, я люблю это частично неполным доска, 500 00:27:04,770 --> 00:27:08,600 или это частично неполную панель? 501 00:27:08,600 --> 00:27:11,910 >> А на наших четырех по четырех крестики-нолики игра, 502 00:27:11,910 --> 00:27:15,240 наш компьютер игрок получил вниз на дно и он сказал, 503 00:27:15,240 --> 00:27:16,800 У меня есть два разных плат. 504 00:27:16,800 --> 00:27:17,940 Ни один выигрыш. 505 00:27:17,940 --> 00:27:19,120 Ни один убыток. 506 00:27:19,120 --> 00:27:22,070 Ни один галстук. 507 00:27:22,070 --> 00:27:24,100 Как выбрать между ними? 508 00:27:24,100 --> 00:27:26,200 И это не есть умный способ сделать это. 509 00:27:26,200 --> 00:27:28,910 510 00:27:28,910 --> 00:27:32,850 >> Мы видим, этот вид оценка происходят все время 511 00:27:32,850 --> 00:27:35,290 как мы получаем в более сложных играх. 512 00:27:35,290 --> 00:27:37,600 Шахматы является отличным примером. 513 00:27:37,600 --> 00:27:41,550 В шахматах, мы, во-первых всего, больше плата. 514 00:27:41,550 --> 00:27:43,370 У нас есть гораздо больше штук. 515 00:27:43,370 --> 00:27:47,930 И позиционирование этих частей и то, как эти кусочки двигаться 516 00:27:47,930 --> 00:27:50,370 является критически важным. 517 00:27:50,370 --> 00:27:53,700 Так что, если я хочу использовать минимакса, Мне нужно, чтобы иметь возможность указать 518 00:27:53,700 --> 00:27:58,240 и говорить, что это доска, где никто не выиграл или проиграл еще, 519 00:27:58,240 --> 00:28:04,310 как-то лучше, чем это другое доска, где никто не выиграл или проиграл. 520 00:28:04,310 --> 00:28:06,740 >> Чтобы сделать это, я мог бы сделать вещи, как я мог бы просто 521 00:28:06,740 --> 00:28:10,787 подсчитать, сколько штук у меня есть и сколько штук у вас есть? 522 00:28:10,787 --> 00:28:12,870 Или я мог бы дать разные шт различные точки. 523 00:28:12,870 --> 00:28:14,420 Моя королева стоит 20 очков. 524 00:28:14,420 --> 00:28:16,500 Ваш пешка стоит одно очко. 525 00:28:16,500 --> 00:28:18,920 Кто имеет общей больше очков? 526 00:28:18,920 --> 00:28:22,300 Или я мог бы рассмотреть вещи, как, кто получил лучшую позицию доска? 527 00:28:22,300 --> 00:28:26,820 Чья очередь это рядом, все, что я могу 528 00:28:26,820 --> 00:28:31,220 сделать, чтобы оценить более точно какие из этих возможностей 529 00:28:31,220 --> 00:28:34,660 лучше без исчерпывающе рассматривает 530 00:28:34,660 --> 00:28:36,565 каждый шаг, который может прийти после этого. 531 00:28:36,565 --> 00:28:39,740 532 00:28:39,740 --> 00:28:45,130 >> Теперь, чтобы сделать эту работу, одна из вещей, что это 533 00:28:45,130 --> 00:28:48,680 станет действительно важно для нас не просто перемещение прямо 534 00:28:48,680 --> 00:28:53,720 до определенной глубине предел, но, будучи в состоянии говорить, 535 00:28:53,720 --> 00:28:59,380 один из этих идей, которые я есть так плохо, что это 536 00:28:59,380 --> 00:29:02,280 не стоит рассматривать все из возможных путей 537 00:29:02,280 --> 00:29:06,680 что-то может пойти от плохого к худшему. 538 00:29:06,680 --> 00:29:12,760 Чтобы сделать это, мы добавим в минимакса принцип называется Альф-бета. 539 00:29:12,760 --> 00:29:16,340 И альфа-бета говорит, если у вас есть плохая идея, 540 00:29:16,340 --> 00:29:22,840 не тратьте свое время, пытаясь выяснить, как именно это плохо. 541 00:29:22,840 --> 00:29:24,990 >> Итак, вот что мы собираемся сделать. 542 00:29:24,990 --> 00:29:28,620 Мы собираемся взять то же самое принципы, которые мы раньше, 543 00:29:28,620 --> 00:29:32,200 то же самое минимакса типа поиска, только мы 544 00:29:32,200 --> 00:29:37,570 собирается отслеживать не только из фактические значения, что у нас есть, но мы 545 00:29:37,570 --> 00:29:41,440 отслеживать наилучшим Значение, которое я мог бы получить, 546 00:29:41,440 --> 00:29:45,700 и худший Результатом я мог бы. 547 00:29:45,700 --> 00:29:50,470 И в любое время худший что ищет, скорее всего, 548 00:29:50,470 --> 00:29:52,694 Я отказаться от этой части дерева. 549 00:29:52,694 --> 00:29:54,610 И я даже не буду глядя на него больше. 550 00:29:54,610 --> 00:29:57,680 551 00:29:57,680 --> 00:30:02,600 >> Ладно, так что представьте, что мы начинаем с этой же точной игры дерева. 552 00:30:02,600 --> 00:30:05,200 И теперь мы собираемся пойти снова, весь путь вниз 553 00:30:05,200 --> 00:30:07,200 к тому левом нижнем углу. 554 00:30:07,200 --> 00:30:11,180 И в этом левый нижний угол, мы смотреть и оценивать эту доску. 555 00:30:11,180 --> 00:30:15,700 Может быть, это четыре на четыре крестики-нолики доска, или, может быть, это шахматная доска. 556 00:30:15,700 --> 00:30:18,620 Но мы смотрим на него, и мы оцениваем это, и мы получаем значение из восьми. 557 00:30:18,620 --> 00:30:22,290 558 00:30:22,290 --> 00:30:28,030 >> В тот момент, мы знаем, что мы собираемся, чтобы получить по крайней мере, 559 00:30:28,030 --> 00:30:32,380 восемь очков от этой нижней решения. 560 00:30:32,380 --> 00:30:36,620 Это не имеет значения, что другой два, что семь, и что два. 561 00:30:36,620 --> 00:30:38,580 Они могут быть любые значения они хотели бы быть. 562 00:30:38,580 --> 00:30:41,279 Мы собираемся, чтобы получить на Меньше восемь очков. 563 00:30:41,279 --> 00:30:43,070 Все правильно, но мы могли идти вперед и проверить. 564 00:30:43,070 --> 00:30:45,080 Может быть, один из них лучше, чем восемь. 565 00:30:45,080 --> 00:30:46,000 >> Мы смотрим на семь. 566 00:30:46,000 --> 00:30:46,910 Это лучше, чем восемь? 567 00:30:46,910 --> 00:30:48,680 Нет, это не меняет наше мнение вообще. 568 00:30:48,680 --> 00:30:49,460 Мы смотрим на два. 569 00:30:49,460 --> 00:30:50,543 Это лучше, чем восемь? 570 00:30:50,543 --> 00:30:52,580 Нет, это не меняет наше мнение вообще. 571 00:30:52,580 --> 00:30:55,480 Так что теперь мы знаем, мы исчерпали все возможности там. 572 00:30:55,480 --> 00:30:58,330 Мы не собираемся, чтобы получить что-нибудь лучше, чем восемь. 573 00:30:58,330 --> 00:31:01,310 Мы собираемся, чтобы получить именно восемь. 574 00:31:01,310 --> 00:31:03,825 >> И так мы меняем узел и скажем, что в настоящее время является определенность. 575 00:31:03,825 --> 00:31:07,010 576 00:31:07,010 --> 00:31:10,270 Мы поднимаемся на один уровень выше, что. 577 00:31:10,270 --> 00:31:13,820 И теперь мы знаем, что-то о том, что уровень минимизации. 578 00:31:13,820 --> 00:31:18,560 Мы знаем, что мы никогда не собираемся, чтобы получить более чем в восемь очков, если мы идем вниз 579 00:31:18,560 --> 00:31:20,910 что направление. 580 00:31:20,910 --> 00:31:22,980 Потому что даже если те два других отраслей оказываются 581 00:31:22,980 --> 00:31:26,170 быть фантастическим, и стоит тысячи точек каждый, 582 00:31:26,170 --> 00:31:31,666 наш противник будет дать нам минимум, а дать нам восемь. 583 00:31:31,666 --> 00:31:32,790 Ладно, хорошо, давайте посмотрим. 584 00:31:32,790 --> 00:31:35,190 Мы будем держать спускаясь по этому пути. 585 00:31:35,190 --> 00:31:38,490 Мы спускаемся к этой середине слева. 586 00:31:38,490 --> 00:31:40,560 Мы смотрят, и мы видим, что есть девять. 587 00:31:40,560 --> 00:31:45,590 Мы знаем, что мы собираемся, чтобы получить по крайней мере, девять очков, спускаясь 588 00:31:45,590 --> 00:31:47,720 что средний путь. 589 00:31:47,720 --> 00:31:52,110 И в этот момент, мы можем просто приостановить. 590 00:31:52,110 --> 00:31:56,910 И мы можем сказать, посмотрите, я знать на уровне выше, 591 00:31:56,910 --> 00:32:01,160 Я собираюсь получить не более восьми указывает, спускаясь это направление. 592 00:32:01,160 --> 00:32:05,670 Но если бы я пошел вниз середина Путь вместо левого пути, 593 00:32:05,670 --> 00:32:08,980 Я хотел бы получить, по крайней мере девять очков. 594 00:32:08,980 --> 00:32:13,590 >> Мой оппонент никогда не будет позвольте мне идти по этому средний путь. 595 00:32:13,590 --> 00:32:14,650 Они получают, чтобы выбрать. 596 00:32:14,650 --> 00:32:18,140 И они собираются выбрать Путь к налево к восьми, 597 00:32:18,140 --> 00:32:23,650 а не вниз к середине то, что, по крайней мере девять очков. 598 00:32:23,650 --> 00:32:25,334 Таким образом, на тот момент, я остановлюсь. 599 00:32:25,334 --> 00:32:26,500 И я скажу, вы знаете, что? 600 00:32:26,500 --> 00:32:29,990 Я не должны смотреть более вниз в этом направлении. 601 00:32:29,990 --> 00:32:32,270 Потому что я никогда не буду туда попасть. 602 00:32:32,270 --> 00:32:36,660 >> Я могу перепрыгнуть, что один, и я могу пропустить, что шесть, 603 00:32:36,660 --> 00:32:39,720 потому что никогда не случится. 604 00:32:39,720 --> 00:32:42,470 Так что я пойду и я рассмотреть следующий возможность. 605 00:32:42,470 --> 00:32:44,830 Я иду туда, и я говорю, я вижу два. 606 00:32:44,830 --> 00:32:47,125 Я знаю, если я получаю здесь, я собирается получить по крайней мере два. 607 00:32:47,125 --> 00:32:49,810 608 00:32:49,810 --> 00:32:50,470 ХОРОШО. 609 00:32:50,470 --> 00:32:51,520 Я продолжать. 610 00:32:51,520 --> 00:32:52,440 Я вижу четыре. 611 00:32:52,440 --> 00:32:54,920 Я знаю, что я собираюсь получить по крайней мере четыре. 612 00:32:54,920 --> 00:32:57,200 Там еще много между четыре и восемь, хотя. 613 00:32:57,200 --> 00:32:58,454 Так что я продолжать. 614 00:32:58,454 --> 00:32:59,870 Я смотрю вниз и вижу там один. 615 00:32:59,870 --> 00:33:01,614 Ладно, я знаю, если Я иду по этому пути, 616 00:33:01,614 --> 00:33:03,280 Я собираюсь быть в состоянии выбрать четыре. 617 00:33:03,280 --> 00:33:06,540 618 00:33:06,540 --> 00:33:08,980 Что мой оппонент собирается сделать? 619 00:33:08,980 --> 00:33:12,310 Между чего-то, что дает мне восемь, то, что дает мне четыре, 620 00:33:12,310 --> 00:33:14,730 и то, что дает мне по крайней мере, девять, 621 00:33:14,730 --> 00:33:17,550 хорошо, что он собирается дать мне четыре. 622 00:33:17,550 --> 00:33:20,110 И теперь я знаю, на очень сверху, я собираюсь 623 00:33:20,110 --> 00:33:23,145 чтобы быть в состоянии получить по крайней мере четыре балла из этой игры. 624 00:33:23,145 --> 00:33:27,030 625 00:33:27,030 --> 00:33:30,900 >> В целом идея альфа-бета это отрезать части с дерева, так 626 00:33:30,900 --> 00:33:32,530 что я не смотрю на них больше. 627 00:33:32,530 --> 00:33:35,964 Но она по-прежнему выглядит как я был глядя на много дерева. 628 00:33:35,964 --> 00:33:36,880 Давайте продолжать идти вниз. 629 00:33:36,880 --> 00:33:38,305 Мы пойдем вниз следующий предприятием. 630 00:33:38,305 --> 00:33:39,680 Вниз на дне, я считаю, один. 631 00:33:39,680 --> 00:33:41,030 Я знаю, что я собираюсь получить по крайней мере один. 632 00:33:41,030 --> 00:33:41,690 Я продолжаю смотреть. 633 00:33:41,690 --> 00:33:42,625 >> Я нахожу три. 634 00:33:42,625 --> 00:33:44,250 Я знаю, что я собираюсь получить по крайней мере три. 635 00:33:44,250 --> 00:33:44,840 Я продолжать. 636 00:33:44,840 --> 00:33:45,660 Я нахожу пять. 637 00:33:45,660 --> 00:33:49,760 Я знаю, что я собираюсь получить пять если я спускаюсь по этому пути. 638 00:33:49,760 --> 00:33:52,580 И я также знаю, то что мой оппонент, если я 639 00:33:52,580 --> 00:33:55,510 выбрать середину три большие выборы, 640 00:33:55,510 --> 00:34:01,440 он собирается дать мне то, что это пять или меньше. 641 00:34:01,440 --> 00:34:02,150 >> ХОРОШО. 642 00:34:02,150 --> 00:34:03,400 Я могу продолжать есть. 643 00:34:03,400 --> 00:34:06,470 Я могу посмотреть вниз, и я могу сказать, что я собираюсь 644 00:34:06,470 --> 00:34:08,239 чтобы получить, если я иду вниз по середине пути? 645 00:34:08,239 --> 00:34:09,909 Я иду, чтобы получить, ну, три там. 646 00:34:09,909 --> 00:34:12,080 Я собираюсь получить что-то это по крайней мере три. 647 00:34:12,080 --> 00:34:16,030 Там по-прежнему, что между три и пять, так что я продолжаю смотреть. 648 00:34:16,030 --> 00:34:20,203 О, девять, я буду определенно считать, что в течение трех лет. 649 00:34:20,203 --> 00:34:22,744 Я иду, чтобы получить по крайней мере девять если я иду вниз, что средний путь. 650 00:34:22,744 --> 00:34:25,530 651 00:34:25,530 --> 00:34:31,010 >> Теперь мой оппонент останавливается и говорит, смотрите, нет никакого смысла больше. 652 00:34:31,010 --> 00:34:33,669 Я знаю, что мой минимизация противник, он 653 00:34:33,669 --> 00:34:36,210 собираюсь дать мне вещь, которая меньше или равно пяти, 654 00:34:36,210 --> 00:34:39,030 а не вещь, которая больше или равно девяти. 655 00:34:39,030 --> 00:34:39,530 Я остановился. 656 00:34:39,530 --> 00:34:40,779 Я не смотрю больше на это. 657 00:34:40,779 --> 00:34:43,280 Я продолжать. 658 00:34:43,280 --> 00:34:44,850 >> Я смотрю вниз на этом. 659 00:34:44,850 --> 00:34:46,370 Вплоть до дна, я нахожу шесть. 660 00:34:46,370 --> 00:34:50,040 Я знаю, что я собираюсь получить по крайней мере шесть. 661 00:34:50,040 --> 00:34:53,130 А что я могу сделать? 662 00:34:53,130 --> 00:34:54,877 Я могу остановить. 663 00:34:54,877 --> 00:34:57,460 Потому что выбор между то, что, по крайней мере шесть 664 00:34:57,460 --> 00:34:59,250 и то, что это меньше, чем пять, он 665 00:34:59,250 --> 00:35:02,570 собирается дать мне вещь это меньше, чем пять. 666 00:35:02,570 --> 00:35:04,779 И теперь я знаю, что я собираюсь чтобы получить именно такой выбор. 667 00:35:04,779 --> 00:35:06,195 Я иду, чтобы получить что пять выбор. 668 00:35:06,195 --> 00:35:08,980 669 00:35:08,980 --> 00:35:10,010 >> Я возвращаюсь на вершину. 670 00:35:10,010 --> 00:35:11,450 Какой я буду выбрать между чем-то 671 00:35:11,450 --> 00:35:14,449 это больше или равно четырем, или что-то, что это равно пяти? 672 00:35:14,449 --> 00:35:17,140 Я собираюсь взять что-то это, по меньшей мере пять. 673 00:35:17,140 --> 00:35:20,490 Я спускаюсь в последний путь, все вплоть до дна. 674 00:35:20,490 --> 00:35:21,260 Там это одно. 675 00:35:21,260 --> 00:35:23,410 ОК, по крайней мере, я иду, чтобы получить одно очко. 676 00:35:23,410 --> 00:35:24,427 Я продолжать. 677 00:35:24,427 --> 00:35:25,760 Во-вторых, о, это лучше, чем один. 678 00:35:25,760 --> 00:35:27,100 Я иду, чтобы получить по крайней мере два. 679 00:35:27,100 --> 00:35:28,610 Я нахожу три. 680 00:35:28,610 --> 00:35:31,450 Я знаю, что я собираюсь получить три. 681 00:35:31,450 --> 00:35:34,690 >> И выше, что точка, мой оппонент собирается 682 00:35:34,690 --> 00:35:38,540 чтобы дать мне что-нибудь меньше или равно трем. 683 00:35:38,540 --> 00:35:40,940 И теперь я могу остановиться. 684 00:35:40,940 --> 00:35:46,290 Потому что в выбор между мной быть возможность получить пять и мой оппонент 685 00:35:46,290 --> 00:35:52,290 давая мне что-то меньше, чем три, Я всегда буду считать, что пять. 686 00:35:52,290 --> 00:35:56,810 Так что я не оценить, что Нижняя часть дерева вообще. 687 00:35:56,810 --> 00:35:59,470 >> Теперь, это может показаться незначительным. 688 00:35:59,470 --> 00:36:03,630 Но, когда маленькие кусочки арифметики, больше, но меньше, 689 00:36:03,630 --> 00:36:10,640 может отрезать целые части это растет в геометрической прогрессии дерево, 690 00:36:10,640 --> 00:36:14,280 что приводит к огромным количество сбережений, накоплений 691 00:36:14,280 --> 00:36:17,630 которые являются достаточно большими, что я можете начать играть на конкурсной основе 692 00:36:17,630 --> 00:36:21,330 в более сложных играх. 693 00:36:21,330 --> 00:36:27,030 >> Ладно, если мы посмотрим на размер и сложность различных игр, 694 00:36:27,030 --> 00:36:29,470 крестики-нолики был наш простой пример. 695 00:36:29,470 --> 00:36:32,150 У нас есть небольшой совет, три на три. 696 00:36:32,150 --> 00:36:36,030 Мы получаем, в лучшем случае, в среднем около четырех различных вариантов 697 00:36:36,030 --> 00:36:38,440 как мы идем через игру. 698 00:36:38,440 --> 00:36:42,720 У нас есть где-то около 10 к пятый возможны различные листья. 699 00:36:42,720 --> 00:36:45,200 И строительство в крестики-нолики плеер, хорошо, мы просто сделали это. 700 00:36:45,200 --> 00:36:47,460 Это просто. 701 00:36:47,460 --> 00:36:49,890 >> Если мы идем к чему-то более Комплекс, как Connect Four. 702 00:36:49,890 --> 00:36:53,170 Вы помните эту игру где упаду маленькие жетоны в? 703 00:36:53,170 --> 00:36:58,490 Это шесть семь доска, не то, что гораздо больше, по-прежнему 704 00:36:58,490 --> 00:37:00,770 имеет примерно такой же разветвления фактор, как крестики-нолики. 705 00:37:00,770 --> 00:37:05,410 У меня есть около четырех выбор где я могу положить вещи в. 706 00:37:05,410 --> 00:37:10,760 Но теперь, я получил гораздо больше, приводит, с 10 по 21 силы. 707 00:37:10,760 --> 00:37:14,440 Это то, что легко Достаточно того, что мы решить сразу. 708 00:37:14,440 --> 00:37:17,560 >> Шашки, более complex-- вас получил восемь на восемь борту. 709 00:37:17,560 --> 00:37:20,570 Ты только на половину их в любое время, хотя. 710 00:37:20,570 --> 00:37:24,930 У вас есть разветвление Коэффициент это около 2,8. 711 00:37:24,930 --> 00:37:28,160 Ну, у нас есть несколько движется вы можете взять. 712 00:37:28,160 --> 00:37:33,870 Вы получили от 10 до 31-листьев, крупные и более крупные, и более крупные пространства. 713 00:37:33,870 --> 00:37:37,340 Как я должен искать через эти все больше и больше пространства, 714 00:37:37,340 --> 00:37:42,220 что, когда вещи, как альфа-бета и возможность отрезать все ветви 715 00:37:42,220 --> 00:37:44,420 становится необходимым. 716 00:37:44,420 --> 00:37:47,440 >> Теперь, шашки было достаточно легко в 1992 году. 717 00:37:47,440 --> 00:37:51,400 Компьютерная программа называется Чинук побить мировой шашки 718 00:37:51,400 --> 00:37:53,590 Чемпион, Марион Тинсли. 719 00:37:53,590 --> 00:37:57,260 И с тех пор, нет человек мастер игрок 720 00:37:57,260 --> 00:38:02,290 удалось побить лучшее вычислительные системы. 721 00:38:02,290 --> 00:38:06,570 Если мы посмотрим на то, как шахматы, теперь снова, у нас есть восемь на восемь борту. 722 00:38:06,570 --> 00:38:09,870 Но у нас есть гораздо более сложным, штук, гораздо более сложные движения. 723 00:38:09,870 --> 00:38:14,610 У нас есть коэффициента ветвления около 35, 35 возможных ходов в среднем 724 00:38:14,610 --> 00:38:20,030 что я могу взять, и состояние пространство, количество листьев 725 00:38:20,030 --> 00:38:28,950 который вырос до 10 в 123-й власти, Огромные номера возможностей. 726 00:38:28,950 --> 00:38:35,570 >> Даже до сих пор, современные процессоры в состоянии сделать это успешно. 727 00:38:35,570 --> 00:38:43,900 В 1995 году, а затем в 1997 году, компьютер Программа называется Deep Blue от IBM построена 728 00:38:43,900 --> 00:38:49,601 который бежал на гигантском суперкомпьютере бить текущий чемпион мира, 729 00:38:49,601 --> 00:38:50,225 Гарри Каспаров. 730 00:38:50,225 --> 00:38:54,000 731 00:38:54,000 --> 00:38:56,650 Это был переломный момент. 732 00:38:56,650 --> 00:39:00,620 Сегодня, однако, что же обработка Мощность сидит на моей MacBook. 733 00:39:00,620 --> 00:39:04,180 734 00:39:04,180 --> 00:39:06,440 >> Скорость обработки сохраняет получать быстрее и быстрее. 735 00:39:06,440 --> 00:39:09,500 Мы можем оценить все более и более Доски быстрее и быстрее. 736 00:39:09,500 --> 00:39:14,550 Но что еще более важно, мы должны лучше Функции оценки и лучше обрезка 737 00:39:14,550 --> 00:39:15,460 методы. 738 00:39:15,460 --> 00:39:19,560 Таким образом, мы можем искать пространство сложнее. 739 00:39:19,560 --> 00:39:22,350 Самая большая совета игры, которые мы можем думать о, 740 00:39:22,350 --> 00:39:26,310 что-то вроде Go это получил 19 по 19 доска, 741 00:39:26,310 --> 00:39:32,490 вдруг, мы прошли точку где вычислительные системы могут выиграть. 742 00:39:32,490 --> 00:39:34,530 Там нет вычислительная Система там 743 00:39:34,530 --> 00:39:38,880 что может побить профессиональный игрок Перейти. 744 00:39:38,880 --> 00:39:45,000 Лучший систем сегодня Оценка его о своего рода хорошим любительском уровне. 745 00:39:45,000 --> 00:39:49,285 Так что все еще немного из там, что вы не можете добраться до еще. 746 00:39:49,285 --> 00:39:51,840 747 00:39:51,840 --> 00:39:55,360 >> Ладно, это традиционные настольные игры, 748 00:39:55,360 --> 00:39:58,560 Эти виды систем, где мы построить эту минимакса, будь он получил 749 00:39:58,560 --> 00:40:06,300 альфа-бета или нет, эти алгоритмы работают потому что есть определенные ограничения. 750 00:40:06,300 --> 00:40:08,520 Мы имеем совершенную информацию об окружающем мире. 751 00:40:08,520 --> 00:40:11,690 Мы знаем, где все части. 752 00:40:11,690 --> 00:40:13,570 Мир является статическим. 753 00:40:13,570 --> 00:40:16,220 Никто не получает, чтобы переместить штук вокруг, пока я 754 00:40:16,220 --> 00:40:20,640 сидя там, думая, принимая мой черед. 755 00:40:20,640 --> 00:40:23,140 Там в пространство действие, которое дискретно. 756 00:40:23,140 --> 00:40:26,900 Я могу поставить свою пешку здесь, или я могу поставить свою пешку здесь. 757 00:40:26,900 --> 00:40:30,520 Я не позволил поставить свою пешку на линия между двумя квадратами. 758 00:40:30,520 --> 00:40:34,430 759 00:40:34,430 --> 00:40:36,520 >> И, наконец, действия детерминированы. 760 00:40:36,520 --> 00:40:39,790 Я знаю, что если я говорю, Ладья с конем три, 761 00:40:39,790 --> 00:40:44,660 моя ладья будет в конечном итоге на рыцаря три, пока это действует ход. 762 00:40:44,660 --> 00:40:47,830 Там нет неопределенности об этом. 763 00:40:47,830 --> 00:40:52,490 Теперь, как я иду к более различные виды игр, 764 00:40:52,490 --> 00:40:55,960 мы должны разорвать эти предположения. 765 00:40:55,960 --> 00:41:00,020 >> Что делать, если я иду в то как классических видеоигр? 766 00:41:00,020 --> 00:41:04,180 Вот выбор видео игры от Atari 2600. 767 00:41:04,180 --> 00:41:05,180 Что я имею там? 768 00:41:05,180 --> 00:41:08,440 Я получил Frogger, пространство Захватчиков, Ловушка, и Pac-Man. 769 00:41:08,440 --> 00:41:11,290 770 00:41:11,290 --> 00:41:14,840 Какие сред у меня здесь сейчас? 771 00:41:14,840 --> 00:41:16,900 Какой из этих предположений я должен сломать? 772 00:41:16,900 --> 00:41:19,410 773 00:41:19,410 --> 00:41:21,570 >> Ну, это зависит от игры. 774 00:41:21,570 --> 00:41:28,170 Я мог бы играть в шахматы на 2600, и это было бы так же, как это было раньше. 775 00:41:28,170 --> 00:41:33,020 Для большинства из этих систем, есть полное знание о мире. 776 00:41:33,020 --> 00:41:36,300 Там совершенно детерминированные действия. 777 00:41:36,300 --> 00:41:38,330 Но, как правило, в мире больше не статичны. 778 00:41:38,330 --> 00:41:41,970 То есть, в то время как я сидел там ожидания, что-то движется. 779 00:41:41,970 --> 00:41:44,320 Призраки приходят, чтобы получить меня. 780 00:41:44,320 --> 00:41:46,570 Скорпион будет после меня внизу. 781 00:41:46,570 --> 00:41:48,880 Космические захватчики ближе и ближе. 782 00:41:48,880 --> 00:41:54,020 783 00:41:54,020 --> 00:41:55,510 Насколько хорошо мы можем сделать против них? 784 00:41:55,510 --> 00:41:58,640 785 00:41:58,640 --> 00:42:02,790 >> Несколько лет назад, Google что проект под названием 786 00:42:02,790 --> 00:42:12,030 DeepMind, где они тренировались компьютер программа, играть в Atari 2600 игр. 787 00:42:12,030 --> 00:42:16,120 И если вы думаете, что это не серьезно бизнес, результаты их исследования 788 00:42:16,120 --> 00:42:19,920 были опубликованы в Nature, так почти так же хорошо, публикация 789 00:42:19,920 --> 00:42:22,500 как вы можете, возможно, получить. 790 00:42:22,500 --> 00:42:24,340 А вот насколько хорошо они выполняются. 791 00:42:24,340 --> 00:42:29,220 >> Они есть алгоритм, который сидел и смотрел только входы экрана. 792 00:42:29,220 --> 00:42:34,080 Это не получил никаких инструкций вообще о правилах игры. 793 00:42:34,080 --> 00:42:42,610 И он должен был выяснить, на основе его оценки, насколько хорошо она делает. 794 00:42:42,610 --> 00:42:46,560 Это была система, которая используется что-то называется обучение с подкреплением. 795 00:42:46,560 --> 00:42:48,380 То есть, это смотрело на его счет. 796 00:42:48,380 --> 00:42:51,620 А если он получил хорошие оценки, сказал он, Я должен помнить эти вещи. 797 00:42:51,620 --> 00:42:53,310 И я должен делать тем снова. 798 00:42:53,310 --> 00:42:56,450 А если он получил плохую оценку, он сказал, Я не должен делать эти вещи снова. 799 00:42:56,450 --> 00:42:59,750 800 00:42:59,750 --> 00:43:03,430 >> Это исполнение из тех подготовленных систем 801 00:43:03,430 --> 00:43:07,490 разрешено играть для Несколько часов на каждой игре, 802 00:43:07,490 --> 00:43:12,490 по сравнению с профессиональными геймерами. 803 00:43:12,490 --> 00:43:19,670 Таким образом, для всех игр, которые с левой стороны от этой линии, 804 00:43:19,670 --> 00:43:25,920 это само-обучение компьютерной программы превзошли профессиональных геймеров. 805 00:43:25,920 --> 00:43:29,690 И все к Правильно, профессиональные геймеры 806 00:43:29,690 --> 00:43:30,920 еще лучше. 807 00:43:30,920 --> 00:43:34,040 808 00:43:34,040 --> 00:43:36,850 Для чего-то, что знал ничего о правилах, которые 809 00:43:36,850 --> 00:43:43,020 ничего не знал о структуре игры, это впечатляющие результаты. 810 00:43:43,020 --> 00:43:45,660 И это то, что мы можем сделать сегодня. 811 00:43:45,660 --> 00:43:50,239 >> ОК, вы говорите, но если мы думать о AI в играх, 812 00:43:50,239 --> 00:43:52,530 Обычно мы думаем о То, что мы действительно можем 813 00:43:52,530 --> 00:43:54,180 сесть и играть против него. 814 00:43:54,180 --> 00:43:58,760 Если я сажусь и играю StarCraft, или я играть бесплатно сито, 815 00:43:58,760 --> 00:44:01,870 компьютер оппонент человек, управляющий зергов, 816 00:44:01,870 --> 00:44:06,770 или управления другим цивилизации. 817 00:44:06,770 --> 00:44:11,920 Как те игроки на самом деле найти свои ходы? 818 00:44:11,920 --> 00:44:18,810 >> Ну, эти игры структурированы почти таким же способом, как наши настольные игры, 819 00:44:18,810 --> 00:44:22,250 эти игры, которые мы вместе называют четыре X игры, 820 00:44:22,250 --> 00:44:26,040 исследовать, expand-- забыть те. 821 00:44:26,040 --> 00:44:26,980 Кто они такие? 822 00:44:26,980 --> 00:44:32,150 Исследуйте, расширять и потушить, Я думаю, что это последний. 823 00:44:32,150 --> 00:44:36,060 Но они в основном по разведке и властвуй игры. 824 00:44:36,060 --> 00:44:41,020 Как правило, компьютерный противник есть имеет ограниченную информацию. 825 00:44:41,020 --> 00:44:45,486 Они не знают, именно то, что происходит за этого тумана войны. 826 00:44:45,486 --> 00:44:47,735 Они не получают, чтобы увидеть, что у вас есть в вашем инвентаре. 827 00:44:47,735 --> 00:44:50,240 828 00:44:50,240 --> 00:44:52,800 >> Там в среду, что является динамическим. 829 00:44:52,800 --> 00:44:56,180 Все меняется все время. 830 00:44:56,180 --> 00:45:00,290 Вы не можете сидеть и ждать, чтобы взять ваш ход. 831 00:45:00,290 --> 00:45:02,810 Но большинство вещей все еще дискретным. 832 00:45:02,810 --> 00:45:04,200 Я должен положить мой город здесь. 833 00:45:04,200 --> 00:45:06,750 Или я должен поставить свой город здесь. 834 00:45:06,750 --> 00:45:08,950 И все детерминировано. 835 00:45:08,950 --> 00:45:14,660 Когда я говорю, пошевелить блок здесь, мой блок не движется здесь, если препятствие вдруг 836 00:45:14,660 --> 00:45:17,700 вступает в игру. 837 00:45:17,700 --> 00:45:21,610 Теперь, это еще не все компьютерные игры, которые там сегодня. 838 00:45:21,610 --> 00:45:27,320 >> Если я иду, и я играю первый тип лица игра, что-то вроде Thief или Fallout 839 00:45:27,320 --> 00:45:33,350 или Скайрим, или гало, в настоящее время У меня есть компьютерных противников 840 00:45:33,350 --> 00:45:37,860 которые там есть, что очень разные ситуации. 841 00:45:37,860 --> 00:45:40,020 Они имеют, опять же, ограниченную информацию. 842 00:45:40,020 --> 00:45:43,420 Они только могут увидеть некое поле зрения. 843 00:45:43,420 --> 00:45:45,180 Защита окружающей среды является еще динамичным. 844 00:45:45,180 --> 00:45:48,280 Вещи все время меняются. 845 00:45:48,280 --> 00:45:52,300 >> Но теперь у меня есть гораздо более непрерывное пространство действия. 846 00:45:52,300 --> 00:45:57,170 Я могу быть только выглядывал немного из дверного проема. 847 00:45:57,170 --> 00:46:00,650 А некоторые игры, мой действия стохастической. 848 00:46:00,650 --> 00:46:04,590 Я получаю, чтобы попытаться перепрыгнуть через эту стену, но я получил шанс поломки. 849 00:46:04,590 --> 00:46:08,280 850 00:46:08,280 --> 00:46:14,550 Эти типы игр становятся ближе и ближе к видам контроллеров 851 00:46:14,550 --> 00:46:17,330 что мы строим в робототехнике. 852 00:46:17,330 --> 00:46:21,050 >> В робототехнике, мы должны предположить, что у нас есть ограниченная информация. 853 00:46:21,050 --> 00:46:23,070 У нас есть датчики, которые рассказать о мире. 854 00:46:23,070 --> 00:46:25,860 У нас есть всегда меняется, динамичная среда. 855 00:46:25,860 --> 00:46:30,440 У нас есть мир, в котором есть место непрерывной, а не дискретной. 856 00:46:30,440 --> 00:46:36,260 И наши действия, когда мы пытаемся им, есть шанс поломки. 857 00:46:36,260 --> 00:46:40,960 И в самом деле, современная игра Контроллеры для вашего Halo противника, 858 00:46:40,960 --> 00:46:48,690 или для тех НПС в Skyrim, в основном запустить небольшие архитектур робототехники. 859 00:46:48,690 --> 00:46:50,380 >> Они чувствуют мир. 860 00:46:50,380 --> 00:46:52,910 Они строят модель мира. 861 00:46:52,910 --> 00:46:57,950 Они вычислить на основе набора цели, которые они хотели бы достичь. 862 00:46:57,950 --> 00:47:03,110 Они планируют действия, основанные на то, что они знают. 863 00:47:03,110 --> 00:47:07,940 А те, ровно те же самые виды систем, которые мы строим в робототехнике. 864 00:47:07,940 --> 00:47:11,420 Таким образом, эти архитектуры, чтобы довести эту обратно вместе, 865 00:47:11,420 --> 00:47:14,500 часто весьма то же самое. 866 00:47:14,500 --> 00:47:16,340 >> Итак, давайте посмотрим, если мы можем видеть, что. 867 00:47:16,340 --> 00:47:19,210 Давайте вернемся к нашему крестики-нолики пример. 868 00:47:19,210 --> 00:47:22,690 И я собираюсь задать несколько моих пост-документы, чтобы прийти и помочь мне. 869 00:47:22,690 --> 00:47:26,970 Так Чэнь Мин, и Алессандро, и Оливье, если вы, ребята бы придумать. 870 00:47:26,970 --> 00:47:32,080 871 00:47:32,080 --> 00:47:35,440 И я буду нуждаться в пара добровольцев 872 00:47:35,440 --> 00:47:37,590 >> ОК, я увидел руку право там в середине. 873 00:47:37,590 --> 00:47:39,965 Позвольте мне взять еще один, кто-то далее в спине может быть. 874 00:47:39,965 --> 00:47:40,881 Ладно, там. 875 00:47:40,881 --> 00:47:41,490 Давай до. 876 00:47:41,490 --> 00:47:44,190 877 00:47:44,190 --> 00:47:45,335 Все в порядке. 878 00:47:45,335 --> 00:47:49,490 Так что давайте считать, что крышку вниз. 879 00:47:49,490 --> 00:48:03,700 И если вы, ребята, придет прямо назад здесь для меня, фантастика. 880 00:48:03,700 --> 00:48:06,580 >> Так что это робот называется Бакстер. 881 00:48:06,580 --> 00:48:10,880 И Бакстер это робот, который это коммерческая платформа, предназначенная 882 00:48:10,880 --> 00:48:13,030 компанией под названием Переосмысление. 883 00:48:13,030 --> 00:48:16,580 И этот робот предназначен для малого производства. 884 00:48:16,580 --> 00:48:19,265 Но сегодня мы собираемся использовать его, чтобы играть в крестики-нолики. 885 00:48:19,265 --> 00:48:21,930 886 00:48:21,930 --> 00:48:27,150 Теперь, этот робот является также то, это относительно уникальным. 887 00:48:27,150 --> 00:48:32,950 Потому что, если я где-нибудь стояли близко к стандартной заводской автоматизации 888 00:48:32,950 --> 00:48:39,580 Система, я бы в очень тяжелом Опасность ранения. 889 00:48:39,580 --> 00:48:45,600 >> Бакстер, однако, предназначен для относительно безопасно взаимодействовать. 890 00:48:45,600 --> 00:48:48,680 И поэтому я могу нажать на этого робота. 891 00:48:48,680 --> 00:48:52,350 И вы можете видеть, что это немного немного гибкими, как она движется вокруг. 892 00:48:52,350 --> 00:48:57,250 И я могу изменить его где я хотел бы, чтобы это пошло. 893 00:48:57,250 --> 00:49:03,410 В настоящее время в нормальном роботизированной системы, мы бы иметь набор суставов здесь 894 00:49:03,410 --> 00:49:07,970 который был бы непосредственно отвечает на команды позиции. 895 00:49:07,970 --> 00:49:13,180 И они не заботятся обязательно если они двигались через открытом воздухе, 896 00:49:13,180 --> 00:49:15,555 или если они двигались через мой грудной клетки. 897 00:49:15,555 --> 00:49:18,410 898 00:49:18,410 --> 00:49:19,120 >> ХОРОШО. 899 00:49:19,120 --> 00:49:22,090 И, как правило, если вы были здесь с производственной системы, 900 00:49:22,090 --> 00:49:23,400 вы никогда никуда рядом с ним. 901 00:49:23,400 --> 00:49:26,280 Там будет желтый Безопасность лента вокруг него. 902 00:49:26,280 --> 00:49:28,310 Эта система имеет немного другой дизайн 903 00:49:28,310 --> 00:49:32,130 быть дружелюбнее и проще для людей, чтобы взаимодействовать, 904 00:49:32,130 --> 00:49:36,380 в том, что в каждом суставе, есть родник. 905 00:49:36,380 --> 00:49:39,110 И вместо того, контроль точная позиция, 906 00:49:39,110 --> 00:49:43,110 мы контролируем определенное количество крутящий момент, определенное количество силы, 907 00:49:43,110 --> 00:49:45,874 что мы хотели бы быть на этой весной. 908 00:49:45,874 --> 00:49:47,790 Ладно, так что давайте мне принять наши волонтеры здесь. 909 00:49:47,790 --> 00:49:48,540 Привет, как тебя зовут? 910 00:49:48,540 --> 00:49:49,010 >> АУДИТОРИЯ: Луи. 911 00:49:49,010 --> 00:49:49,635 >> СЛУШАЛИ: Луи. 912 00:49:49,635 --> 00:49:50,490 Рад вас видеть. 913 00:49:50,490 --> 00:49:50,990 А? 914 00:49:50,990 --> 00:49:51,610 >> АУДИТОРИЯ: Дэвид. 915 00:49:51,610 --> 00:49:51,960 >> СПИКЕР: Дэвид. 916 00:49:51,960 --> 00:49:52,550 Приятно познакомиться. 917 00:49:52,550 --> 00:49:54,508 Если вы, ребята, будет ждать здесь на секунду, 918 00:49:54,508 --> 00:49:56,420 Я собираюсь дать вам шанс сделать это. 919 00:49:56,420 --> 00:50:00,610 Так что это робот, если вы придумали и если вы слегка надавите на него, 920 00:50:00,610 --> 00:50:03,780 Вы увидите, что она движется немного. 921 00:50:03,780 --> 00:50:06,349 И если вы берете его прямо здесь, на запястье просто 922 00:50:06,349 --> 00:50:09,390 выше, где эти кнопки, это Похоже, что вы должны захватить кнопки, 923 00:50:09,390 --> 00:50:13,100 но захватить прямо над ним, а не, вы сможет очень мягко манипулировать 924 00:50:13,100 --> 00:50:14,545 в пространстве. 925 00:50:14,545 --> 00:50:15,920 Луис, вы хотите, чтобы дать ему попробовать? 926 00:50:15,920 --> 00:50:19,465 Так дайте его немного нажать, чтобы начать с. 927 00:50:19,465 --> 00:50:23,190 И потом, если вы положили пальцы тут и удержать его, 928 00:50:23,190 --> 00:50:24,807 потому что он будет двигаться для Вас тогда. 929 00:50:24,807 --> 00:50:27,824 930 00:50:27,824 --> 00:50:29,365 Ладно, вы хотите, чтобы дать ему попробовать? 931 00:50:29,365 --> 00:50:29,980 Давай до. 932 00:50:29,980 --> 00:50:32,300 Так дайте его просто нежный нажмите там, чтобы начать. 933 00:50:32,300 --> 00:50:33,820 Вы можете почувствовать, что это такое. 934 00:50:33,820 --> 00:50:40,060 И потом, если вы берете его прямо там, Вы сможете маневрировать в пределах. 935 00:50:40,060 --> 00:50:41,280 >> ХОРОШО. 936 00:50:41,280 --> 00:50:47,360 Так, как правило, этот вид робота будет использовать при малых производственных масштабах. 937 00:50:47,360 --> 00:50:50,980 И я собираюсь переместить эту руку только вниз в сторону немного здесь. 938 00:50:50,980 --> 00:50:55,750 Но сегодня, мы собираемся использовать же крестики-нолики играть система 939 00:50:55,750 --> 00:50:59,520 на основе минимакса, что мы ранее построенных. 940 00:50:59,520 --> 00:51:00,549 ОК? 941 00:51:00,549 --> 00:51:02,340 Так, вы, ребята, каждый собирается играть в игру. 942 00:51:02,340 --> 00:51:04,210 Луис, вы собираетесь быть первым. 943 00:51:04,210 --> 00:51:05,920 Позвольте мне провести здесь на секунду. 944 00:51:05,920 --> 00:51:10,949 Я собираюсь, чтобы вы стоять прямо здесь, просто так что каждый может видеть Вас. 945 00:51:10,949 --> 00:51:11,990 Вы, ребята создали здесь? 946 00:51:11,990 --> 00:51:13,120 >> РОБОТ: Добро пожаловать. 947 00:51:13,120 --> 00:51:15,910 Давайте играть в крестики-нолики. 948 00:51:15,910 --> 00:51:20,860 Не понять ваш маркер, прежде чем Я говорю, что это ваша очередь. 949 00:51:20,860 --> 00:51:22,050 Я начать игру. 950 00:51:22,050 --> 00:51:27,900 951 00:51:27,900 --> 00:51:28,750 Моя очередь. 952 00:51:28,750 --> 00:51:47,002 953 00:51:47,002 --> 00:51:50,210 СЛУШАЛИ: Теперь, если вы могли бы взять один из Ваши частей и идти вперед и поместить его. 954 00:51:50,210 --> 00:51:51,446 РОБОТ: Это ваша очередь. 955 00:51:51,446 --> 00:51:53,430 [СМЕХ] 956 00:51:53,430 --> 00:51:54,836 Моя очередь. 957 00:51:54,836 --> 00:51:56,820 [СМЕХ] 958 00:51:56,820 --> 00:52:12,196 959 00:52:12,196 --> 00:52:15,680 [СМЕХ] 960 00:52:15,680 --> 00:52:16,570 Это ваша очередь. 961 00:52:16,570 --> 00:52:21,397 962 00:52:21,397 --> 00:52:23,688 СПИКЕР: человеческий гонка рассчитывает на вас здесь, Луи. 963 00:52:23,688 --> 00:52:27,440 964 00:52:27,440 --> 00:52:28,350 >> РОБОТ: Это моя очередь. 965 00:52:28,350 --> 00:52:44,810 966 00:52:44,810 --> 00:52:47,015 >> СЛУШАЛИ: Так Бакстер успешно блокирована здесь. 967 00:52:47,015 --> 00:52:49,670 968 00:52:49,670 --> 00:52:52,480 >> РОБОТ: Это ваша очередь. 969 00:52:52,480 --> 00:52:53,360 Моя очередь. 970 00:52:53,360 --> 00:53:14,730 971 00:53:14,730 --> 00:53:16,810 Это ваша очередь. 972 00:53:16,810 --> 00:53:17,760 Моя очередь. 973 00:53:17,760 --> 00:53:21,330 974 00:53:21,330 --> 00:53:23,830 СЛУШАЛИ: И мы дадим Бакстер закончить свой последний шаг здесь. 975 00:53:23,830 --> 00:53:36,622 976 00:53:36,622 --> 00:53:39,090 >> [СМЕХ] 977 00:53:39,090 --> 00:53:40,480 >> РОБОТ: Это галстук. 978 00:53:40,480 --> 00:53:42,030 Я выиграю в следующий раз. 979 00:53:42,030 --> 00:53:43,365 >> [СМЕХ] 980 00:53:43,365 --> 00:53:45,210 >> СЛУШАЛИ: Ладно, спасибо очень много, Луи. 981 00:53:45,210 --> 00:53:46,094 Спасибо. 982 00:53:46,094 --> 00:53:46,980 Вы можете идти по этому пути. 983 00:53:46,980 --> 00:53:49,759 >> РОБОТ: я начинаю игру. 984 00:53:49,759 --> 00:53:51,800 СЛУШАЛИ: Итак, позвольте мне объяснить, Вам еще один маленький 985 00:53:51,800 --> 00:53:55,410 немного, прежде чем мы получим нашу реванш здесь. 986 00:53:55,410 --> 00:53:57,200 Что именно происходит? 987 00:53:57,200 --> 00:53:59,430 Таким образом, робот имеет камеры наверху здесь. 988 00:53:59,430 --> 00:54:01,330 И это, глядя на доску. 989 00:54:01,330 --> 00:54:04,470 И это видит ли он получил красную O или синий 990 00:54:04,470 --> 00:54:10,450 и белый X. Как те объекты помещаются на доска, это в основном то же самое вход 991 00:54:10,450 --> 00:54:13,890 что мы прочитали бы в от наша структура данных из нашего экрана. 992 00:54:13,890 --> 00:54:17,290 Это работает тот же Алгоритм минимакса быть 993 00:54:17,290 --> 00:54:21,010 состоянии найти, где разместить хорошую фишку. 994 00:54:21,010 --> 00:54:24,820 >> И тогда мы даем команду о где мы хотели бы маркер должен быть помещен. 995 00:54:24,820 --> 00:54:26,120 Рука движется из. 996 00:54:26,120 --> 00:54:31,750 Это с помощью вакуумного захвата, чтобы применить некоторые всасывания в этой куска дерева, 997 00:54:31,750 --> 00:54:35,240 забрать его, переместите его вправо пятно, а затем отпустите всасывание 998 00:54:35,240 --> 00:54:36,950 и поместите его. 999 00:54:36,950 --> 00:54:38,990 Ладно, мы собираемся чтобы дать ему еще один выстрел 1000 00:54:38,990 --> 00:54:40,930 с немного умнее игрока здесь. 1001 00:54:40,930 --> 00:54:42,290 Вы готовы? 1002 00:54:42,290 --> 00:54:46,150 Ладно, если бы вы стоять прямо здесь и дать a-- превратить этот путь 1003 00:54:46,150 --> 00:54:47,955 так что вы можете видеть всех. 1004 00:54:47,955 --> 00:54:48,830 И тогда [неразборчиво]. 1005 00:54:48,830 --> 00:54:49,330 >> РОБОТ: Это моя очередь. 1006 00:54:49,330 --> 00:54:50,455 >> СЛУШАЛИ: Бакстер начнет. 1007 00:54:50,455 --> 00:55:10,750 1008 00:55:10,750 --> 00:55:11,730 Это ваша очередь. 1009 00:55:11,730 --> 00:55:16,490 1010 00:55:16,490 --> 00:55:17,520 Моя очередь. 1011 00:55:17,520 --> 00:55:38,740 1012 00:55:38,740 --> 00:55:39,690 Это ваша очередь. 1013 00:55:39,690 --> 00:55:46,330 1014 00:55:46,330 --> 00:55:47,165 Моя очередь. 1015 00:55:47,165 --> 00:56:01,252 1016 00:56:01,252 --> 00:56:06,192 >> [СМЕХ] 1017 00:56:06,192 --> 00:56:08,542 >> СЛУШАЛИ: [ШЕПЧУЩЕЙ] Просто пусть идти вперед и побеждать. 1018 00:56:08,542 --> 00:56:09,500 РОБОТ: Это ваша очередь. 1019 00:56:09,500 --> 00:56:15,099 1020 00:56:15,099 --> 00:56:15,890 СЛУШАЛИ: Это нормально. 1021 00:56:15,890 --> 00:56:20,390 1022 00:56:20,390 --> 00:56:21,360 >> РОБОТ: Это моя очередь. 1023 00:56:21,360 --> 00:56:24,825 1024 00:56:24,825 --> 00:56:26,805 >> [СМЕХ] 1025 00:56:26,805 --> 00:56:42,650 1026 00:56:42,650 --> 00:56:43,510 >> Я выигрываю. 1027 00:56:43,510 --> 00:56:45,620 >> [СМЕХ] 1028 00:56:45,620 --> 00:56:46,595 >> Я начать игру. 1029 00:56:46,595 --> 00:56:48,261 >> СЛУШАЛИ: Ладно, спасибо очень много. 1030 00:56:48,261 --> 00:56:50,180 1031 00:56:50,180 --> 00:56:55,590 Ладно, я думаю, что мы получили время для еще один отличный крестики-нолики плеер, 1032 00:56:55,590 --> 00:57:00,490 кто может положить эту вещь совпадают, кто знает, что они делают. 1033 00:57:00,490 --> 00:57:03,010 >> [СМЕХ] 1034 00:57:03,010 --> 00:57:05,560 >> Кто будет наш чемпион здесь? 1035 00:57:05,560 --> 00:57:08,110 Ладно, ваши друзья добровольно вас. 1036 00:57:08,110 --> 00:57:11,190 Это достаточно хорошо для меня. 1037 00:57:11,190 --> 00:57:12,194 Скажи мне свое имя снова. 1038 00:57:12,194 --> 00:57:12,860 АУДИТОРИЯ: Тамир. 1039 00:57:12,860 --> 00:57:14,193 СЛУШАЛИ: Тамир, приятно тебя видеть. 1040 00:57:14,193 --> 00:57:19,270 Ладно, раз мы собираемся поставить вас прямо здесь, так что каждый может видеть Вас. 1041 00:57:19,270 --> 00:57:22,070 Вы наш представитель в этом матче сейчас. 1042 00:57:22,070 --> 00:57:24,540 Бакстер является одним и о и о. 1043 00:57:24,540 --> 00:57:26,300 Или извините, один и один, о. 1044 00:57:26,300 --> 00:57:27,490 И это до вас здесь. 1045 00:57:27,490 --> 00:57:29,340 Бакстер получите для перемещения во-первых, хотя. 1046 00:57:29,340 --> 00:57:30,435 Так. 1047 00:57:30,435 --> 00:57:31,310 РОБОТ: Это моя очередь. 1048 00:57:31,310 --> 00:57:45,226 1049 00:57:45,226 --> 00:57:48,208 >> [СМЕХ] 1050 00:57:48,208 --> 00:57:52,720 1051 00:57:52,720 --> 00:57:55,780 >> Это ваша очередь. 1052 00:57:55,780 --> 00:57:56,845 Моя очередь. 1053 00:57:56,845 --> 00:58:18,130 1054 00:58:18,130 --> 00:58:18,965 Это ваша очередь. 1055 00:58:18,965 --> 00:58:28,751 1056 00:58:28,751 --> 00:58:30,248 Моя очередь. 1057 00:58:30,248 --> 00:58:51,210 1058 00:58:51,210 --> 00:58:52,160 Это ваша очередь. 1059 00:58:52,160 --> 00:59:00,854 1060 00:59:00,854 --> 00:59:03,365 >> [СМЕХ] 1061 00:59:03,365 --> 00:59:04,240 РОБОТ: Это моя очередь. 1062 00:59:04,240 --> 00:59:06,930 СПИКЕР: Это намного сложнее, когда Вы стоите здесь, ребята. 1063 00:59:06,930 --> 00:59:19,400 1064 00:59:19,400 --> 00:59:21,840 [СМЕХ] 1065 00:59:21,840 --> 00:59:26,730 1066 00:59:26,730 --> 00:59:29,054 РОБОТ: Вы люди так легко победить. 1067 00:59:29,054 --> 00:59:30,803 [Смех и аплодисменты] 1068 00:59:30,803 --> 00:59:31,886 СЛУШАЛИ: Спасибо очень много. 1069 00:59:31,886 --> 00:59:34,692 РОБОТ: я выиграю. 1070 00:59:34,692 --> 00:59:35,400 Я начать игру. 1071 00:59:35,400 --> 00:59:39,500 >> Докладчик: Ладно, спасибо очень много Оливье, и Алессандро, 1072 00:59:39,500 --> 00:59:41,616 и Чэнь Мин. 1073 00:59:41,616 --> 00:59:45,600 >> [АПЛОДИСМЕНТЫ] 1074 00:59:45,600 --> 00:59:47,040 >> Я хочу, чтобы в последний момент. 1075 00:59:47,040 --> 00:59:51,630 Так Бакстер в очень заканчивается, обманули. 1076 00:59:51,630 --> 00:59:54,160 1077 00:59:54,160 --> 00:59:56,310 И это было неожиданно. 1078 00:59:56,310 --> 01:00:00,440 Один из фантастические вещи, о ИИ, что мы 1079 01:00:00,440 --> 01:00:05,070 сделать работу в AI, так что мы можем построить действительно интересный и умный 1080 01:00:05,070 --> 01:00:06,930 Приборы. 1081 01:00:06,930 --> 01:00:10,130 Но мы также делаем работу в AI потому что он говорит нам кое-что 1082 01:00:10,130 --> 01:00:13,940 о том, как люди умные. 1083 01:00:13,940 --> 01:00:17,280 >> Один из любимых Исследования, проведенные в моей лаборатории является 1084 01:00:17,280 --> 01:00:23,660 глядя на то, что происходит, когда машины неожиданно обмануть. 1085 01:00:23,660 --> 01:00:27,070 Мы сделали это первоначально не с Бакстер играет в крестики-нолики, 1086 01:00:27,070 --> 01:00:30,340 но с меньшим робота по имени Нао, который играл рок-ножницы-бумага. 1087 01:00:30,340 --> 01:00:33,010 1088 01:00:33,010 --> 01:00:35,800 А иногда после играть много и много 1089 01:00:35,800 --> 01:00:41,580 скучных рок-ножницы-бумага игры, робот будет бросать жест, 1090 01:00:41,580 --> 01:00:48,616 потерять, а потом вдруг изменить его жест и сказать, я выиграю. 1091 01:00:48,616 --> 01:00:50,480 >> [СМЕХ] 1092 01:00:50,480 --> 01:00:56,090 >> Теперь, иногда мы также робота, только в качестве контроля, бросить жест, 1093 01:00:56,090 --> 01:01:01,270 выиграть, и изменить его жест потерять, бросить спичку, 1094 01:01:01,270 --> 01:01:04,070 чит для того, чтобы потерять. 1095 01:01:04,070 --> 01:01:07,540 И это далеко не убедительными. 1096 01:01:07,540 --> 01:01:09,890 Робот, который обманывает для того, чтобы выиграть людей 1097 01:01:09,890 --> 01:01:14,660 ответить на, как если бы это , чтобы получить их, как это 1098 01:01:14,660 --> 01:01:17,690 активно ищет их разрушение. 1099 01:01:17,690 --> 01:01:19,210 >> [СМЕХ] 1100 01:01:19,210 --> 01:01:20,990 >> Она становится агентом. 1101 01:01:20,990 --> 01:01:21,840 Это как человек. 1102 01:01:21,840 --> 01:01:23,970 Он имеет веру и намерение. 1103 01:01:23,970 --> 01:01:27,470 И это не благое намерение. 1104 01:01:27,470 --> 01:01:33,790 И робот, который бросает игра просто неправильно. 1105 01:01:33,790 --> 01:01:36,990 Это просто разбитое устройство. 1106 01:01:36,990 --> 01:01:41,405 Позвольте мне показать вам пару примеров того, что от некоторых из наших участников. 1107 01:01:41,405 --> 01:01:43,990 1108 01:01:43,990 --> 01:01:45,600 Так вот обман, чтобы потерять. 1109 01:01:45,600 --> 01:01:46,266 >> [ПРОИГРЫВАНИЕ ВИДЕО] 1110 01:01:46,266 --> 01:01:47,010 - [Неразборчиво] выиграть. 1111 01:01:47,010 --> 01:01:49,550 Давай играть. 1112 01:01:49,550 --> 01:01:50,538 >> -Чего ждать? 1113 01:01:50,538 --> 01:01:54,490 1114 01:01:54,490 --> 01:01:55,352 >> - [Неразборчиво] выиграть. 1115 01:01:55,352 --> 01:01:58,280 Давай играть. 1116 01:01:58,280 --> 01:01:59,400 >> [Неразборчиво] выиграть. 1117 01:01:59,400 --> 01:02:02,290 Давай играть. 1118 01:02:02,290 --> 01:02:05,490 >> СЛУШАЛИ: И вот обман, чтобы выиграть. 1119 01:02:05,490 --> 01:02:06,438 >> Да, я выиграю. 1120 01:02:06,438 --> 01:02:07,394 Давай играть. 1121 01:02:07,394 --> 01:02:08,828 >> -Вы Не можете этого сделать. 1122 01:02:08,828 --> 01:02:10,740 >> [СМЕХ] 1123 01:02:10,740 --> 01:02:12,174 1124 01:02:12,174 --> 01:02:13,979 >> Да, я выиграю. 1125 01:02:13,979 --> 01:02:14,520 -Ты смухлевал. 1126 01:02:14,520 --> 01:02:17,990 1127 01:02:17,990 --> 01:02:20,010 Теперь вы обманули. 1128 01:02:20,010 --> 01:02:21,140 >> Да, я выиграю. 1129 01:02:21,140 --> 01:02:22,940 >> Эй, вы мошенник. 1130 01:02:22,940 --> 01:02:26,670 Вы обманываете, супер чит. 1131 01:02:26,670 --> 01:02:27,650 >> [КОНЕЦ ПРОСМОТРА] 1132 01:02:27,650 --> 01:02:31,130 >> СЛУШАЛИ: Такие разные Реакции быстро 1133 01:02:31,130 --> 01:02:34,890 изменить наше восприятие устройства. 1134 01:02:34,890 --> 01:02:36,780 Значит ли это, что мы сознательно строить 1135 01:02:36,780 --> 01:02:40,370 машины, которые обманывают, потому что это лучший инженерно что мы можем сделать? 1136 01:02:40,370 --> 01:02:44,680 Нет, но это говорит нам кое- действительно интересно о людях. 1137 01:02:44,680 --> 01:02:49,710 Это вещь, которая обманывает вас и крадет ваша победа, это 1138 01:02:49,710 --> 01:02:53,660 то, что жив, что это анимации, это, чтобы получить Вас. 1139 01:02:53,660 --> 01:02:54,680 Он имеет психическое состояние. 1140 01:02:54,680 --> 01:02:55,400 Он имеет веру. 1141 01:02:55,400 --> 01:02:57,170 Он имеет намерение. 1142 01:02:57,170 --> 01:03:01,540 >> Это вещь, которая вручает игра для вас, это не так. 1143 01:03:01,540 --> 01:03:04,670 Вот только со сбоями. 1144 01:03:04,670 --> 01:03:08,900 Это во многом, почему это легко бросить игру с детьми. 1145 01:03:08,900 --> 01:03:12,050 Но если вы попытаетесь обмануть их и вроде претендовать на победу 1146 01:03:12,050 --> 01:03:15,200 когда вы знаете, просто, чтобы сократить игра, они поймают вас сразу. 1147 01:03:15,200 --> 01:03:19,040 1148 01:03:19,040 --> 01:03:23,140 Эти виды эффектов, мы видим, выходит из AI, 1149 01:03:23,140 --> 01:03:26,490 они учат нас многому о себе. 1150 01:03:26,490 --> 01:03:28,076 >> Ладно, это все на сегодня. 1151 01:03:28,076 --> 01:03:30,450 Большое спасибо Давиду и съемочная группа Гарвардского 1152 01:03:30,450 --> 01:03:32,350 для спускается. 1153 01:03:32,350 --> 01:03:33,820 >> [АПЛОДИСМЕНТЫ] 1154 01:03:33,820 --> 01:03:36,760 1155 01:03:36,760 --> 01:03:41,840 >> Мы будем видеть Вас на одном викторины, а затем в течение одной последней лекции. 1156 01:03:41,840 --> 01:03:43,025 Удачного дня. 1157 01:03:43,025 --> 01:03:44,965 >> [АПЛОДИСМЕНТЫ] 1158 01:03:44,965 --> 01:03:48,360 1159 01:03:48,360 --> 01:03:51,825 >> [Играет музыка] 1160 01:03:51,825 --> 01:03:54,950 Дэвид Дж Малан: Ну, мы, вероятно, должны ввести какой-то шифрования, 1161 01:03:54,950 --> 01:03:55,450 правильно? 1162 01:03:55,450 --> 01:03:58,650 Потому что тогда заголовках эти HTTP запросы будут 1163 01:03:58,650 --> 01:04:01,530 омлет так, что кто- пытаясь обнюхать трафика 1164 01:04:01,530 --> 01:04:03,400 на самом деле не в состоянии видеть их. 1165 01:04:03,400 --> 01:04:05,254 Так что решение этой проблемы? 1166 01:04:05,254 --> 01:04:07,920 Ну, мы должны фактически ввести Шифрование в формулу, 1167 01:04:07,920 --> 01:04:11,010 так что, когда этот человек передачи данных от А до Б, 1168 01:04:11,010 --> 01:04:12,390 мы можем надежно send-- 1169 01:04:12,390 --> 01:04:14,590 >> [СМЕХ] 1170 01:04:14,590 --> 01:04:19,530 >> Информация таким образом, что противник не может, на самом деле, увидеть его.