1 00:00:00,000 --> 00:00:01,924 >> [REPRODUCCIÓN DE MÚSICA] 2 00:00:01,924 --> 00:00:10,600 3 00:00:10,600 --> 00:00:13,280 >> ALTAVOZ: Bienvenido de nuevo, todo el mundo. 4 00:00:13,280 --> 00:00:15,440 Esto es CS50. 5 00:00:15,440 --> 00:00:21,040 Y hoy, tenemos una gran cantidad de cosas interesantes de que hablar. 6 00:00:21,040 --> 00:00:25,500 Primero, sin embargo, tengo que recordarme que de algunas cosas administrativas. 7 00:00:25,500 --> 00:00:30,160 Esta semana es prueba uno, Miércoles o para la sección de Yale 8 00:00:30,160 --> 00:00:32,940 los martes y jueves, el jueves. 9 00:00:32,940 --> 00:00:38,170 Hay opiniones de concursos esta noche en la Universidad de Yale, cinco y media-7:00. 10 00:00:38,170 --> 00:00:40,030 En Harvard, grabaron un solo ayer. 11 00:00:40,030 --> 00:00:43,000 Y todo el mundo puede ver que en línea. 12 00:00:43,000 --> 00:00:49,406 >> Además, esta semana o principios de la próxima semana, tenemos nuestra última conferencia CS50. 13 00:00:49,406 --> 00:00:51,450 [GEMIDOS] sé. 14 00:00:51,450 --> 00:00:54,140 Llegó tan pronto. 15 00:00:54,140 --> 00:00:57,820 Estudiantes de Yale tendrán un vivo dar una conferencia aquí en la Facultad de Derecho 16 00:00:57,820 --> 00:00:59,920 Auditorio el viernes. 17 00:00:59,920 --> 00:01:01,140 Habrá torta. 18 00:01:01,140 --> 00:01:05,570 Estudiantes de Harvard tendrán la última conferencia en Sanders el lunes. 19 00:01:05,570 --> 00:01:08,050 También habrá torta. 20 00:01:08,050 --> 00:01:14,000 >> Además, esta semana el viernes, para aquellos de ustedes que están llegando a New Haven, 21 00:01:14,000 --> 00:01:15,740 tenemos la Expo CS50. 22 00:01:15,740 --> 00:01:18,850 Tenemos más de 30 diferentes grupos registrados 23 00:01:18,850 --> 00:01:22,530 para mostrarle todo de veleros autónomas, 24 00:01:22,530 --> 00:01:27,170 a los sistemas que reconocen retratos digitales, a la computadora 25 00:01:27,170 --> 00:01:32,100 la música y la música por computadora producida. 26 00:01:32,100 --> 00:01:33,610 Así que por favor, únase a nosotros. 27 00:01:33,610 --> 00:01:36,460 Creo que va a ser un buen momento. 28 00:01:36,460 --> 00:01:40,320 >> Hoy, sin embargo, llegamos a seguir hablando de AI, 29 00:01:40,320 --> 00:01:43,150 acerca de la inteligencia artificial. 30 00:01:43,150 --> 00:01:46,070 Y una de las cosas que vamos a llegar a la actualidad 31 00:01:46,070 --> 00:01:51,750 es la idea de cómo AI utilizar para resolver problemas. 32 00:01:51,750 --> 00:01:54,690 Ahora, como siempre, vamos a empezar con algo sencillo. 33 00:01:54,690 --> 00:01:57,120 Y vamos a empezar con una idea simple. 34 00:01:57,120 --> 00:01:59,920 Y eso es mediante la búsqueda. 35 00:01:59,920 --> 00:02:06,990 >> Así que imagine por un momento que yo tienen una tarea que tengo que llevar a cabo. 36 00:02:06,990 --> 00:02:11,970 Y me gustaría tener esa tarea automatizado por algún agente software. 37 00:02:11,970 --> 00:02:17,100 Imagínate que yo estoy tratando de reservar un conjunto de vuelos procedentes de, digamos, Boston 38 00:02:17,100 --> 00:02:20,040 a San Francisco. 39 00:02:20,040 --> 00:02:24,230 Yo podría ir a través y me vendría bien uno de la maravillosa búsqueda en línea 40 00:02:24,230 --> 00:02:28,790 herramientas, que se van a hacer básicamente el mismo proceso que estamos 41 00:02:28,790 --> 00:02:30,030 ir a caminar a través de la actualidad. 42 00:02:30,030 --> 00:02:34,100 Pero si usted no tiene que herramienta, ¿qué harías? 43 00:02:34,100 --> 00:02:37,570 >> Bueno, podrías mirar y veo y digo, estoy en Boston. 44 00:02:37,570 --> 00:02:41,520 ¿Cuál vuelos están disponibles para mí? 45 00:02:41,520 --> 00:02:44,390 Ahora, tal vez Tengo tres posibles vuelos fuera de Boston 46 00:02:44,390 --> 00:02:47,180 que se ajuste el tiempo cuando tengo que salir. 47 00:02:47,180 --> 00:02:48,830 Podía volar a Chicago. 48 00:02:48,830 --> 00:02:50,130 O podría volar a Miami. 49 00:02:50,130 --> 00:02:53,340 O podría volar a Nueva York. 50 00:02:53,340 --> 00:02:56,980 Entonces yo podría mirar de cada una de esas ciudades de destino 51 00:02:56,980 --> 00:03:00,650 y pensar en qué lugares Yo podría llegar a 52 00:03:00,650 --> 00:03:03,020 de cada una de esas ciudades individuales. 53 00:03:03,020 --> 00:03:07,390 >> Así que tal vez de Chicago, puedo conseguir un vuelo directo a San Francisco. 54 00:03:07,390 --> 00:03:09,550 Eso es excelente. 55 00:03:09,550 --> 00:03:12,360 O podría conseguir un vuelo a Denver. 56 00:03:12,360 --> 00:03:16,970 Ahora, tal vez ese vuelo a San Francisco es la solución perfecta para mí, 57 00:03:16,970 --> 00:03:19,530 pero tal vez no. 58 00:03:19,530 --> 00:03:22,180 Tal vez estoy buscando algo eso es un poco más barato 59 00:03:22,180 --> 00:03:24,920 o un poco mejor para mi agenda. 60 00:03:24,920 --> 00:03:29,197 Y para que pudiera buscar lo otro posibilidades podrían estar allí. 61 00:03:29,197 --> 00:03:30,280 Así que podría mirar a Denver. 62 00:03:30,280 --> 00:03:33,870 Y a partir de Denver, bueno, tal vez Puedo conseguir un vuelo a Austin. 63 00:03:33,870 --> 00:03:37,080 Y desde Austin, tal vez pueda conseguir un vuelo a Phoenix, y desde Phoenix 64 00:03:37,080 --> 00:03:40,190 a San Francisco. 65 00:03:40,190 --> 00:03:42,730 Ahora, yo no he terminado todavía. 66 00:03:42,730 --> 00:03:45,640 Porque tal vez hay una vuelo directo desde Nueva York 67 00:03:45,640 --> 00:03:47,850 a San Francisco, que es perfecto para mí. 68 00:03:47,850 --> 00:03:53,354 O tal vez hay un vuelo desde Miami a través de Denver que es mucho más barato. 69 00:03:53,354 --> 00:03:54,270 Así que todavía tengo que ir. 70 00:03:54,270 --> 00:03:58,200 Y todavía tengo que mirar a todos los ciudades que no he investigado todavía. 71 00:03:58,200 --> 00:04:04,220 Tengo que revisar exhaustivamente todos las posibilidades que podría tener. 72 00:04:04,220 --> 00:04:09,610 >> Así que, desde Nueva York, tal vez pueda conseguir un vuelo a Nashville, y desde Nashville 73 00:04:09,610 --> 00:04:10,336 a Austin. 74 00:04:10,336 --> 00:04:11,460 Y entonces sé dónde estoy. 75 00:04:11,460 --> 00:04:14,252 Y entonces sé de Austin, que pueda volar a Phoenix, y desde Phoenix 76 00:04:14,252 --> 00:04:14,960 a San Francisco. 77 00:04:14,960 --> 00:04:18,240 78 00:04:18,240 --> 00:04:22,830 Si vuelo primero a Miami, sin embargo, tal vez pueda conseguir un vuelo de Miami 79 00:04:22,830 --> 00:04:25,080 a Nashville, o desde Miami a Austin. 80 00:04:25,080 --> 00:04:27,950 81 00:04:27,950 --> 00:04:30,860 >> Y ahora lo he intentado todo de las posibilidades. 82 00:04:30,860 --> 00:04:36,310 He construido este gráfico que me muestra todas las posibles rutas 83 00:04:36,310 --> 00:04:37,790 que yo podría ser capaz de tomar. 84 00:04:37,790 --> 00:04:40,510 85 00:04:40,510 --> 00:04:43,640 Cuando representamos estos tipo de problemas, 86 00:04:43,640 --> 00:04:47,870 no vamos a representar ellas explícitamente como este gráfico, 87 00:04:47,870 --> 00:04:51,590 porque ese gráfico no representa la historia de donde hemos ido. 88 00:04:51,590 --> 00:04:55,260 Sabiendo que volé de Phoenix a San Francisco 89 00:04:55,260 --> 00:05:01,690 no decirme si he venido a través de Nashville, o por medio de Denver, o por medio de Miami. 90 00:05:01,690 --> 00:05:06,430 >> Entonces, ¿qué voy a hacer en cambio es Me quedo con este mismo problema, 91 00:05:06,430 --> 00:05:09,140 y voy a representar como un árbol. 92 00:05:09,140 --> 00:05:14,300 Y en la raíz del árbol, en el arriba, voy a poner el lugar en el que empecé, 93 00:05:14,300 --> 00:05:16,590 Bostón. 94 00:05:16,590 --> 00:05:19,310 Y a partir de Boston, lo veré de todas las posibles ubicaciones 95 00:05:19,310 --> 00:05:20,380 que puedo viajar. 96 00:05:20,380 --> 00:05:25,480 Bueno, en este caso, yo tenía tres, Chicago, Nueva York y Miami. 97 00:05:25,480 --> 00:05:29,850 Y luego voy a explorar cada uno de estos niños en el árbol. 98 00:05:29,850 --> 00:05:32,690 >> Desde Chicago, vi que tenía dos vuelos. 99 00:05:32,690 --> 00:05:35,940 Podía volar directamente a San Francisco o Denver. 100 00:05:35,940 --> 00:05:37,740 Ahora San Francisco, que es mi objetivo. 101 00:05:37,740 --> 00:05:39,790 Ese es mi destino. 102 00:05:39,790 --> 00:05:42,220 Eso va a ser una hoja de este árbol. 103 00:05:42,220 --> 00:05:45,340 Es decir, yo nunca voy a ir algún lugar después de San Francisco. 104 00:05:45,340 --> 00:05:47,850 105 00:05:47,850 --> 00:05:50,340 De Denver, sin embargo, Puedo volar desde Denver 106 00:05:50,340 --> 00:05:54,220 a Austin, de Austin a Phoenix, y desde Phoenix a San Francisco. 107 00:05:54,220 --> 00:05:56,050 Y ahora de nuevo, he llegado a una hoja. 108 00:05:56,050 --> 00:05:59,470 109 00:05:59,470 --> 00:06:03,980 >> Entonces podría volver a la siguiente ciudad que no he explorado. 110 00:06:03,980 --> 00:06:07,440 Eso sería Nueva York, ir de nuevo hasta la parte superior de mi árbol, 111 00:06:07,440 --> 00:06:09,160 venir a Nueva York. 112 00:06:09,160 --> 00:06:12,700 Desde Nueva York, puedo volar a Nashville, de Nashville a Austin, 113 00:06:12,700 --> 00:06:17,290 de Austin a Phoenix, y de Phoenix a San Francisco. 114 00:06:17,290 --> 00:06:20,170 Y, por último, una ciudad en la que no han mirado todavía, de Miami. 115 00:06:20,170 --> 00:06:24,600 >> Bueno, desde Miami me dijo que yo tenía de dos posibilidades, Nashville o Austin. 116 00:06:24,600 --> 00:06:28,810 Si vuelo a Nashville, bueno, entonces yo vuelo de Nashville, a Austin, a Phoenix, 117 00:06:28,810 --> 00:06:29,640 a San Francisco. 118 00:06:29,640 --> 00:06:33,600 Si vuelo a Austin, vuelo Austin, a Phoenix, a San Francisco. 119 00:06:33,600 --> 00:06:36,340 Y ahora tengo un árbol. 120 00:06:36,340 --> 00:06:37,230 Es un árbol completo. 121 00:06:37,230 --> 00:06:41,890 Es todo de las posibilidades y todos los caminos que podría tomar. 122 00:06:41,890 --> 00:06:44,310 Es decir, si me pongo en el raíz del árbol en la parte superior 123 00:06:44,310 --> 00:06:47,860 y me voy a uno de los deja, me dice, no sólo 124 00:06:47,860 --> 00:06:50,480 donde voy a acabar, San Francisco, 125 00:06:50,480 --> 00:06:53,670 pero me dice que la ruta que Tengo que tomar para llegar allí. 126 00:06:53,670 --> 00:06:56,400 127 00:06:56,400 --> 00:06:59,690 >> Ahora, ¿cuál de ellos es el mejor? 128 00:06:59,690 --> 00:07:02,430 Bueno, nada de esto problema todavía me dice 129 00:07:02,430 --> 00:07:04,710 cuál de ellas es la mejor solución. 130 00:07:04,710 --> 00:07:09,270 Tal vez me preocupo más acerca la cantidad de tiempo que estoy en el aire, 131 00:07:09,270 --> 00:07:12,350 o la distancia que estoy volando. 132 00:07:12,350 --> 00:07:16,410 En ese caso, Chicago a San Francisco podría ser el número más corto 133 00:07:16,410 --> 00:07:18,910 de millas en el aire. 134 00:07:18,910 --> 00:07:20,860 >> Tal vez me importa el costo. 135 00:07:20,860 --> 00:07:23,680 Y todos sabemos vuelos directos suelen ser más caros. 136 00:07:23,680 --> 00:07:26,610 Así que tal vez si tomo esta tipo de ruta hacia atrás 137 00:07:26,610 --> 00:07:30,650 por Miami, Nashville, Austin, Phoenix, tal vez entonces 138 00:07:30,650 --> 00:07:34,070 Me sale un precio más bajo. 139 00:07:34,070 --> 00:07:36,440 Pero podría optimizar en cualquier criterios que me importan. 140 00:07:36,440 --> 00:07:39,790 ¿Quién tiene el mejor de vuelo Wi-Fi, o que 141 00:07:39,790 --> 00:07:43,110 aeropuertos tienen la mejor comida disponible. 142 00:07:43,110 --> 00:07:47,280 Y cada uno de los que podría dame una solución diferente 143 00:07:47,280 --> 00:07:49,215 que veo como el mejor. 144 00:07:49,215 --> 00:07:51,990 145 00:07:51,990 --> 00:07:54,400 >> Este tipo de problemas, donde vamos 146 00:07:54,400 --> 00:07:58,480 para construir este árbol de posibilidades, y luego 147 00:07:58,480 --> 00:08:02,100 mirar a cada uno de los caminos individuales, y examinar 148 00:08:02,100 --> 00:08:05,270 cuáles de esas fulfills un criterio para nosotros, 149 00:08:05,270 --> 00:08:08,790 vamos a llamar los problemas de busqueda. 150 00:08:08,790 --> 00:08:11,280 Y tenemos un montón de algoritmos, algunos de los cuales 151 00:08:11,280 --> 00:08:15,270 hemos visto ya, para ir y explorar esos árboles. 152 00:08:15,270 --> 00:08:19,270 Podríamos hacerlo de la manera que yo acabo de hacer una búsqueda en profundidad, 153 00:08:19,270 --> 00:08:22,900 bajando por lo que pueda hasta que golpear una hoja, y luego volver hacia arriba, 154 00:08:22,900 --> 00:08:24,787 y va derecho hacia abajo. 155 00:08:24,787 --> 00:08:26,870 O podríamos hacer lo que es llamada búsqueda en amplitud. 156 00:08:26,870 --> 00:08:29,675 Podríamos ampliar todo en la parte superior, y luego 157 00:08:29,675 --> 00:08:31,550 todo lo que una línea debajo de eso, y luego 158 00:08:31,550 --> 00:08:35,240 todo lo que una línea por debajo de eso. 159 00:08:35,240 --> 00:08:41,250 Esos árboles de búsqueda son fundamentales para la IA. 160 00:08:41,250 --> 00:08:46,570 Pero ellos no llegan a obtener lo correcto todo el tiempo. 161 00:08:46,570 --> 00:08:51,600 De hecho, en muchos de los casos que realmente importa, 162 00:08:51,600 --> 00:08:54,430 queremos construir un árbol, pero no lo hacemos realidad 163 00:08:54,430 --> 00:08:57,140 llegar a hacer todas las decisiones. 164 00:08:57,140 --> 00:09:00,940 >> Estas son situaciones llamadas Búsqueda acusatorio, también conocido 165 00:09:00,940 --> 00:09:05,390 como la forma de escribir de juegos de juego sistemas y les paga por ello. 166 00:09:05,390 --> 00:09:07,940 Pero estos son los tipos de los sistemas donde 167 00:09:07,940 --> 00:09:12,920 podría llegar a elegir cuando voy de Boston, que la ciudad me pase a la siguiente. 168 00:09:12,920 --> 00:09:19,990 Pero después de eso, alguien podría obtener para tomar la decisión acerca de donde yo vuelo. 169 00:09:19,990 --> 00:09:24,040 Así que para construir estos tipos de estructuras, estamos 170 00:09:24,040 --> 00:09:28,510 va a tener que tomar un poco enfoque diferente a ella. 171 00:09:28,510 --> 00:09:31,060 No vamos a ser capaces de sólo tienes que buscar a través del árbol 172 00:09:31,060 --> 00:09:35,000 más, porque no estamos el que tiene el control 173 00:09:35,000 --> 00:09:38,180 de cada uno de esos puntos de decisión. 174 00:09:38,180 --> 00:09:42,590 >> Así que imaginemos una sencilla juego como el tic-tac-toe. 175 00:09:42,590 --> 00:09:46,730 Podría empezar con una tablero completamente en blanco. 176 00:09:46,730 --> 00:09:49,580 Y en tic-tac-dedo del pie, X llega a jugar primero. 177 00:09:49,580 --> 00:09:53,890 Y por lo que podía pensar en todo el posibles movimientos que X podría hacer. 178 00:09:53,890 --> 00:09:57,420 Y si yo soy el juego la X, que es grande. 179 00:09:57,420 --> 00:10:01,020 Tengo nueve posibles movimientos que PUEDO. 180 00:10:01,020 --> 00:10:05,000 Podría poner una X en cualquiera de esos nueve posiciones. 181 00:10:05,000 --> 00:10:10,710 >> Y luego de cada uno de los, I podía imaginar lo que sucederá después. 182 00:10:10,710 --> 00:10:14,130 Pues bien, en este caso, el otro jugador podría llegar a dar una vuelta. 183 00:10:14,130 --> 00:10:15,660 O podría llegar a dar una vuelta. 184 00:10:15,660 --> 00:10:19,510 Y a partir de cada uno de ellos, hay sería ocho lugares diferentes 185 00:10:19,510 --> 00:10:22,980 O que podría poner su marcador. 186 00:10:22,980 --> 00:10:25,790 >> Digamos que yo decidí que yo era va a poner una X en el centro. 187 00:10:25,790 --> 00:10:28,810 Eso siempre parece como un buen movimiento de apertura. 188 00:10:28,810 --> 00:10:34,870 Podía mirar debajo de eso, la ocho movimientos posibles que O hace. 189 00:10:34,870 --> 00:10:37,320 Ahora bien, si estoy jugando X, eso es maravilloso. 190 00:10:37,320 --> 00:10:41,740 Tengo la oportunidad de elegir cuál de ellos me ir a, el uno en el centro. 191 00:10:41,740 --> 00:10:45,000 Pero ahora O tiene que elegir. 192 00:10:45,000 --> 00:10:48,750 Y yo no tengo control sobre esa decisión. 193 00:10:48,750 --> 00:10:51,670 >> Pero a partir de cada uno de los posibles posiciones de mesa, 194 00:10:51,670 --> 00:10:54,020 hay luego otra conjunto de posibilidades. 195 00:10:54,020 --> 00:10:56,700 Cuando se trata de ser mi turno de nuevo, lo haría 196 00:10:56,700 --> 00:11:01,500 llegar a escoger y decir, bueno, O si se mueve en el, bueno, 197 00:11:01,500 --> 00:11:06,110 el punto medio a la izquierda, a continuación, Tengo un conjunto de posibilidades 198 00:11:06,110 --> 00:11:09,740 donde puedo tomar mi próximo movimiento. 199 00:11:09,740 --> 00:11:14,140 De esos, yo podría considerar todos las posibilidades debajo de ellos. 200 00:11:14,140 --> 00:11:18,030 Y entonces O obtendría para elegir entre aquellos. 201 00:11:18,030 --> 00:11:22,290 >> Y podría seguir construyendo este árbol a cabo hasta que llegó al punto 202 00:11:22,290 --> 00:11:26,960 donde sea alguien gana el game-- que es 203 00:11:26,960 --> 00:11:31,070 Tiene que ser considerada una hoja node-- o la junta está completamente lleno 204 00:11:31,070 --> 00:11:32,704 y nadie ha ganado. 205 00:11:32,704 --> 00:11:34,370 Y eso también va a ser un nodo hoja. 206 00:11:34,370 --> 00:11:35,411 Eso va a ser un empate. 207 00:11:35,411 --> 00:11:37,820 208 00:11:37,820 --> 00:11:41,680 >> Pero la cosa difícil con esto es si esto fuera sólo una búsqueda normal 209 00:11:41,680 --> 00:11:44,269 problema, yo sería capaz de digamos, bueno, X debería ir aquí. 210 00:11:44,269 --> 00:11:45,560 Y O debe ir mucho más allá. 211 00:11:45,560 --> 00:11:46,770 Y entonces X debe ir por aquí. 212 00:11:46,770 --> 00:11:48,269 Y entonces O debe ir mucho más allá. 213 00:11:48,269 --> 00:11:51,860 Y entonces X puede conseguir tres en una fila, y yo gano. 214 00:11:51,860 --> 00:11:54,870 Y el juego habría terminado en cinco movimientos, tres para mí, 215 00:11:54,870 --> 00:11:57,710 dos para mi oponente. 216 00:11:57,710 --> 00:12:01,300 Pero no siempre me dan a elegir eso. 217 00:12:01,300 --> 00:12:03,720 >> Así que en vez, de lo que somos va a tener que hacer 218 00:12:03,720 --> 00:12:06,270 es que vamos a tener tener una nueva estrategia. 219 00:12:06,270 --> 00:12:09,350 Y la estrategia que algoritmos juego de papeles suelen utilizar 220 00:12:09,350 --> 00:12:12,000 es lo que se llama minimax. 221 00:12:12,000 --> 00:12:15,500 La idea central de minimax es que estamos 222 00:12:15,500 --> 00:12:21,365 ir a recoger el movimiento que da nuestro adversario la peor cantidad posible 223 00:12:21,365 --> 00:12:22,790 de movimientos que pueden hacer. 224 00:12:22,790 --> 00:12:25,570 225 00:12:25,570 --> 00:12:28,870 No me hace ningún bien elegir un movimiento donde 226 00:12:28,870 --> 00:12:31,952 Yo podría ser capaz de ganar después que, debido a mi oponente no es 227 00:12:31,952 --> 00:12:33,160 me va a dar esa oportunidad. 228 00:12:33,160 --> 00:12:37,770 Van a elegir algún horrible resultado para mí. 229 00:12:37,770 --> 00:12:42,010 Así que me voy a hacer el movimiento que obliga a mi oponente 230 00:12:42,010 --> 00:12:45,760 hacer algo mejor para mí. 231 00:12:45,760 --> 00:12:46,260 Correcto. 232 00:12:46,260 --> 00:12:48,410 Vamos a ver cómo se desarrolla. 233 00:12:48,410 --> 00:12:51,640 Así que aquí está nuestro algoritmo en pseudocódigo. 234 00:12:51,640 --> 00:12:54,450 Vamos a generar todo el árbol de juego. 235 00:12:54,450 --> 00:12:56,757 Vamos a construir toda la estructura. 236 00:12:56,757 --> 00:12:57,840 Y luego vamos a ir a través. 237 00:12:57,840 --> 00:13:02,100 Y en la parte inferior en cada una de las nodos terminales, en cada una de las hojas, 238 00:13:02,100 --> 00:13:07,850 evaluaremos cómo valioso es que a mí? 239 00:13:07,850 --> 00:13:11,690 Y vamos a valorar las cosas que son buenas para mí como ser positivo. 240 00:13:11,690 --> 00:13:14,460 Las cosas que no son buenas para mí será menos positivo, o cero, 241 00:13:14,460 --> 00:13:16,480 o incluso negativo. 242 00:13:16,480 --> 00:13:19,240 >> Así que en el tic-tac-dedo del pie, tal vez una victoria para mí es bueno. 243 00:13:19,240 --> 00:13:20,290 Esa es una pregunta. 244 00:13:20,290 --> 00:13:22,400 Y un empate es cero. 245 00:13:22,400 --> 00:13:26,230 Y algo que es una pérdida para mí, tal vez eso es una negativa. 246 00:13:26,230 --> 00:13:29,620 Todo lo que importa es que el mejor que es para mí, a mayor puntuación 247 00:13:29,620 --> 00:13:32,160 que recibe. 248 00:13:32,160 --> 00:13:36,690 A partir de esas posibilidades en el parte inferior, a continuación, vamos a filtrar hacia arriba. 249 00:13:36,690 --> 00:13:40,650 Y cuando es mi oportunidad de elegir entre un conjunto de alternativas, 250 00:13:40,650 --> 00:13:44,460 Voy a elegir el que sea obtuvo el puntaje más alto. 251 00:13:44,460 --> 00:13:47,200 >> Y cada vez que es mi opositores vuelven a elegir, 252 00:13:47,200 --> 00:13:52,350 Voy a asumir que van a elegir el que tenga la puntuación más baja. 253 00:13:52,350 --> 00:13:56,090 Y si hago esto todo el camino hasta la parte superior del árbol, 254 00:13:56,090 --> 00:14:03,150 Te he elegido un camino que da mí el mejor resultado que puedo conseguir, 255 00:14:03,150 --> 00:14:09,110 suponiendo que mi oponente hace todos los movimientos correctos. 256 00:14:09,110 --> 00:14:11,940 >> Muy bien, así que vamos a ver esto en acción primero. 257 00:14:11,940 --> 00:14:14,980 Y luego vamos a realidad mirar el código para ello. 258 00:14:14,980 --> 00:14:16,780 Así que imaginen tengo este gran árbol. 259 00:14:16,780 --> 00:14:18,280 Y ahora no estoy jugando tic-tac-toe. 260 00:14:18,280 --> 00:14:20,405 Quería darle algo un poco más rico. 261 00:14:20,405 --> 00:14:23,560 Así que tengo un poco de juego en el que hay muchos diferentes puntuaciones 262 00:14:23,560 --> 00:14:26,390 que yo pudiera tener en el final. 263 00:14:26,390 --> 00:14:27,980 Y así yo construir este árbol completo. 264 00:14:27,980 --> 00:14:29,070 Y llego a mover primero. 265 00:14:29,070 --> 00:14:31,290 Estoy en la raíz del árbol. 266 00:14:31,290 --> 00:14:36,150 >> Y puedo elegir que-- lo que obtener para maximizar a través de ese primer nodo. 267 00:14:36,150 --> 00:14:38,410 Y entonces mi oponente llega a ir. 268 00:14:38,410 --> 00:14:41,910 Y luego tengo que ir una vez más. 269 00:14:41,910 --> 00:14:46,830 Así que abajo en el fondo, tengo un conjunto de posibilidades de que puedo elegir, 270 00:14:46,830 --> 00:14:50,570 diferentes estados terminales de juego. 271 00:14:50,570 --> 00:14:54,980 Si estoy en dicho extrema izquierda esquina, 272 00:14:54,980 --> 00:14:58,867 y veo que tengo una opción entre un ocho, siete, y dos, 273 00:14:58,867 --> 00:15:00,450 bueno, yo soy el que tiene que elegir. 274 00:15:00,450 --> 00:15:02,910 Así que voy a elegir el mejor uno de esos. 275 00:15:02,910 --> 00:15:05,650 Voy a elegir el ocho. 276 00:15:05,650 --> 00:15:10,090 >> Así que sé que si alguna vez bajar a ese punto, 277 00:15:10,090 --> 00:15:13,890 Voy a ser capaz de conseguir que los ocho puntos. 278 00:15:13,890 --> 00:15:17,410 Si termino en el siguiente punto sobre, el siguiente nodo a través, 279 00:15:17,410 --> 00:15:20,760 un nueve, uno, o un seis, bueno, estoy va a elegir la mejor de ellas. 280 00:15:20,760 --> 00:15:21,950 Voy a elegir a los nueve. 281 00:15:21,950 --> 00:15:24,880 Si tengo que elegir entre dos, y cuatro, y uno, 282 00:15:24,880 --> 00:15:28,240 Voy a elegir los cuatro, el más alto. 283 00:15:28,240 --> 00:15:31,990 >> Ahora, si miro a nivel encima de eso, mi oponente 284 00:15:31,990 --> 00:15:34,440 es el que llega a tomar esa decisión. 285 00:15:34,440 --> 00:15:37,040 Así que mi oponente llega a elijo, quiero darle 286 00:15:37,040 --> 00:15:39,250 lo que está pasando para conseguir que ocho puntos, 287 00:15:39,250 --> 00:15:41,916 o no le doy lo que es va a darle nueve puntos, 288 00:15:41,916 --> 00:15:45,240 o lo que está pasando para darle cuatro puntos? 289 00:15:45,240 --> 00:15:49,130 Y mi oponente, siendo racional, que está pasando 290 00:15:49,130 --> 00:15:53,470 para elegir el mínimo de los, se va a elegir los cuatro. 291 00:15:53,470 --> 00:15:56,020 >> Y yo puedo hacer esto a través de todo el árbol. 292 00:15:56,020 --> 00:15:59,110 Yo puedo ir a que ajuste media de tres. 293 00:15:59,110 --> 00:16:01,517 Y puedo elegir entre uno, tres y cinco. 294 00:16:01,517 --> 00:16:02,350 Y tengo la oportunidad de elegir. 295 00:16:02,350 --> 00:16:03,810 Así que elijo un cinco. 296 00:16:03,810 --> 00:16:05,340 Puedo elegir tres, nueve, o dos. 297 00:16:05,340 --> 00:16:07,570 Tengo la oportunidad de elegir, así que elijo el nueve. 298 00:16:07,570 --> 00:16:09,290 Seis, cinco, o dos, yo elijo. 299 00:16:09,290 --> 00:16:11,539 Tengo la oportunidad de elegir el seis. 300 00:16:11,539 --> 00:16:13,080 Nivel por encima de eso, quién va a elegir? 301 00:16:13,080 --> 00:16:16,280 302 00:16:16,280 --> 00:16:18,140 ¿Quién tiene que elegir? 303 00:16:18,140 --> 00:16:20,000 El otro chico, mi oponente. 304 00:16:20,000 --> 00:16:22,583 Así que elijan cinco, nueve, o seis, ¿cuál? 305 00:16:22,583 --> 00:16:23,410 >> AUDIENCIA: El cinco. 306 00:16:23,410 --> 00:16:25,250 >> ALTAVOZ: Eligen los cinco. 307 00:16:25,250 --> 00:16:27,400 Llegan a elegir el mínimo. 308 00:16:27,400 --> 00:16:29,690 Y luego el último, elegir uno, dos, o tres. 309 00:16:29,690 --> 00:16:31,720 Tengo la oportunidad de elegir, así que elegir tres. 310 00:16:31,720 --> 00:16:34,370 Nueve, siete, o dos, me eligen nueve. 311 00:16:34,370 --> 00:16:37,070 Y 11, seis, o cuatro, elijo 11. 312 00:16:37,070 --> 00:16:41,190 Mi oponente y luego elige tres, nueve, 11 o, elige el mínimo. 313 00:16:41,190 --> 00:16:43,290 Él me da un tres. 314 00:16:43,290 --> 00:16:47,780 Y, finalmente, en la parte superior de el árbol, tengo que elegir de nuevo. 315 00:16:47,780 --> 00:16:51,190 Y tengo la oportunidad de elegir entre cuatro, cinco, o tres. 316 00:16:51,190 --> 00:16:52,270 Así que me tomo el cinco. 317 00:16:52,270 --> 00:16:55,070 318 00:16:55,070 --> 00:17:00,891 >> Si tengo que controlarlo todo, me gustaría tomar el camino que llevó a la 11. 319 00:17:00,891 --> 00:17:02,390 Pero no tengo que hacer esa elección. 320 00:17:02,390 --> 00:17:04,220 Si voy por ese camino. 321 00:17:04,220 --> 00:17:10,710 Mi oponente me obligará a la elección que conduce a un tres. 322 00:17:10,710 --> 00:17:14,530 Así que lo mejor que puedo hacer es tomar esa rama media, 323 00:17:14,530 --> 00:17:19,859 tomar esa decisión que es, finalmente, me va a llevar a cinco puntos. 324 00:17:19,859 --> 00:17:23,230 Eso es lo que hace minimax. 325 00:17:23,230 --> 00:17:23,807 >> Correcto. 326 00:17:23,807 --> 00:17:24,890 Vamos a echar un vistazo a eso. 327 00:17:24,890 --> 00:17:27,480 328 00:17:27,480 --> 00:17:32,330 Así que aquí en el CS50 IDE es un programa que 329 00:17:32,330 --> 00:17:36,540 implementa minimax para jugar tic-tac-toe. 330 00:17:36,540 --> 00:17:40,100 Vamos a construir una representación. 331 00:17:40,100 --> 00:17:44,390 Vamos a tener de dos opponent-- o dos jugadores, nuestro ordenador 332 00:17:44,390 --> 00:17:46,090 jugador y un jugador humano. 333 00:17:46,090 --> 00:17:48,980 334 00:17:48,980 --> 00:17:53,090 El jugador número uno será jugando la O. Ese será el jugador de la máquina. 335 00:17:53,090 --> 00:17:55,747 Llegan a mover segundos. 336 00:17:55,747 --> 00:17:57,830 Y el otro jugador, nuestra jugador humano, será X. 337 00:17:57,830 --> 00:17:59,880 >> Y para hacer de mi vida un poco simple, voy 338 00:17:59,880 --> 00:18:03,060 etiquetar ese jugador negativa. 339 00:18:03,060 --> 00:18:05,026 Así que sólo puedo multiplicar por uno negativo para intercambiar 340 00:18:05,026 --> 00:18:06,400 entre un jugador y el otro. 341 00:18:06,400 --> 00:18:09,030 342 00:18:09,030 --> 00:18:12,250 Muy bien, así que vamos a echar un vistazo a lo que estamos realmente va a hacer. 343 00:18:12,250 --> 00:18:15,840 Vamos a definir nuestra junta. 344 00:18:15,840 --> 00:18:19,060 Va a ser, bueno, vamos para permitir que sea de tres por tres, 345 00:18:19,060 --> 00:18:21,580 o incluso podemos jugar cinco por cinco o siete 346 00:18:21,580 --> 00:18:28,870 a las siete de tic-tac-toe Si desea al igual que, en base a alguna dimensión D. 347 00:18:28,870 --> 00:18:31,260 >> Y tendremos un par de funciones de ayuda 348 00:18:31,260 --> 00:18:34,360 que va a hacer las cosas como inicializar el screen-- o lo siento, 349 00:18:34,360 --> 00:18:38,900 inicializar nuestras variables, desactive la pantalla, dibujar el tablero en la pantalla, 350 00:18:38,900 --> 00:18:41,060 una que comprueba una tabla para ver si es o no 351 00:18:41,060 --> 00:18:44,520 hay un ganador, que analiza a través de la línea de comandos, 352 00:18:44,520 --> 00:18:50,670 sólo para ayudar, uno que lee de entrada, y una función llamada minimax. 353 00:18:50,670 --> 00:18:52,746 Y eso es el vamos preocupamos más sobre. 354 00:18:52,746 --> 00:18:54,120 Pero veamos primero en el principal. 355 00:18:54,120 --> 00:18:57,490 356 00:18:57,490 --> 00:18:58,510 >> ¿Qué hacemos? 357 00:18:58,510 --> 00:19:00,570 Bueno, vamos a analizar nuestra línea de comandos, 358 00:19:00,570 --> 00:19:04,300 acabo de leer y ver lo tabla de dimensión nos gustaría tener. 359 00:19:04,300 --> 00:19:07,330 Vamos a inicializamos nuestra junta. 360 00:19:07,330 --> 00:19:10,360 Y luego vamos a entrar en uno lazo salvaje grande, en repetidas ocasiones 361 00:19:10,360 --> 00:19:16,630 aceptar mueve hasta que el juego es ganado, o no hay ningún movimiento a la izquierda. 362 00:19:16,630 --> 00:19:20,560 Cada vez que vamos a través de ese lazo, vamos a borrar la pantalla. 363 00:19:20,560 --> 00:19:23,290 Vamos a dibujar el tablero en la pantalla. 364 00:19:23,290 --> 00:19:28,750 Y estamos deliberadamente tipo de abstraer estas lejos como subrutinas, 365 00:19:28,750 --> 00:19:32,030 de modo que no tenemos que preocuparse demasiado sobre los detalles de la forma en que se produzcan. 366 00:19:32,030 --> 00:19:33,480 >> Vas a tener el código más tarde hoy. 367 00:19:33,480 --> 00:19:37,970 Y si quieres mirar a través de y averiguar, se puede ver todos ellos. 368 00:19:37,970 --> 00:19:39,890 Pero vamos a dibujar una tabla en la pantalla. 369 00:19:39,890 --> 00:19:43,620 Y luego vamos a comprobar y ver, ¿tenemos un ganador? 370 00:19:43,620 --> 00:19:46,290 Alguien ha ganado este juego? 371 00:19:46,290 --> 00:19:49,260 Si es así, vamos a imprimir un mensaje de victoria. 372 00:19:49,260 --> 00:19:51,680 Y vamos a terminar el juego. 373 00:19:51,680 --> 00:19:54,510 >> También Comprobaremos y ver si hay un empate. 374 00:19:54,510 --> 00:19:56,620 Será fácil ver si hay un empate. 375 00:19:56,620 --> 00:20:00,700 Esto significa que todos los espacios están llenos, pero no ha sido un ganador todavía. 376 00:20:00,700 --> 00:20:03,580 Podemos declarar un empate y por hacer. 377 00:20:03,580 --> 00:20:10,530 Entonces la verdadera meat-- si es un jugador de la máquina, 378 00:20:10,530 --> 00:20:14,120 vamos a permitir que jugador de la máquina a la búsqueda 379 00:20:14,120 --> 00:20:19,500 mediante el uso de este algoritmo minimax, para encontrar la mejor medida que se puede. 380 00:20:19,500 --> 00:20:22,310 Y luego vamos a poner que se mueven hacia arriba. 381 00:20:22,310 --> 00:20:27,640 >> De lo contrario, si se trata de un jugador humano, leeremos algunas aportaciones de lo humano. 382 00:20:27,640 --> 00:20:30,800 Y luego si es el ser humano jugador o el jugador de la máquina, 383 00:20:30,800 --> 00:20:32,800 vamos a hacer un par poco bits de comprobación de errores, 384 00:20:32,800 --> 00:20:36,910 asegúrese de que se mantiene dentro de los límites de las dimensiones reales de la junta 385 00:20:36,910 --> 00:20:40,040 que tenemos, asegúrese que ese espacio está vacío, 386 00:20:40,040 --> 00:20:43,570 que nadie puso una pieza en allí ya. 387 00:20:43,570 --> 00:20:45,810 Y entonces sólo tendremos que poner una pieza en el tablero, 388 00:20:45,810 --> 00:20:51,550 cambiar el jugador a la siguiente capa, y incrementar el número de movimientos han sucedido. 389 00:20:51,550 --> 00:20:54,090 >> Ese es el bucle principal de nuestro juego tic-tac-toe. 390 00:20:54,090 --> 00:20:57,000 391 00:20:57,000 --> 00:21:02,340 Minimax, entonces, es exactamente el algoritmo que antes. 392 00:21:02,340 --> 00:21:04,710 El único ajuste que hemos hecho lo que hemos 393 00:21:04,710 --> 00:21:07,290 puede jugar más alta tablas dimensionales es que hemos 394 00:21:07,290 --> 00:21:11,070 guardado este parámetro extra llamado profundidad. 395 00:21:11,070 --> 00:21:14,870 Y la profundidad sólo dice, si estoy buscar hacia abajo a través de ese árbol 396 00:21:14,870 --> 00:21:19,022 y me pongo tan abajo más allá de una cierta profundidad nivel 397 00:21:19,022 --> 00:21:20,730 que yo simplemente no quiero para ir más lejos, 398 00:21:20,730 --> 00:21:25,630 Voy a parar y simplemente evaluar la junta en ese punto. 399 00:21:25,630 --> 00:21:27,310 Voy a comprobar y ver si hay un ganador. 400 00:21:27,310 --> 00:21:29,240 Si hay un ganador, yo les devuelvo. 401 00:21:29,240 --> 00:21:31,720 De lo contrario, voy a ir a través de un bucle. 402 00:21:31,720 --> 00:21:34,380 Y voy a decir, para todos las posibles ubicaciones 403 00:21:34,380 --> 00:21:38,080 pueda yo tomar mi movimiento, voy a 404 00:21:38,080 --> 00:21:43,760 construir una tabla hipotética que incluye uno de mis movimientos en ese tablero, 405 00:21:43,760 --> 00:21:45,960 y luego llama recursivamente minimax. 406 00:21:45,960 --> 00:21:49,360 407 00:21:49,360 --> 00:21:53,900 >> Si se trata de uno de mis movimientos, me sale para encontrar el uno que tiene la puntuación más grande. 408 00:21:53,900 --> 00:21:58,710 Si se trata de la decisión de mi oponente, encontramos el que tiene la puntuación mínima. 409 00:21:58,710 --> 00:22:02,240 Y todo lo demás es mantenimiento solo registro. 410 00:22:02,240 --> 00:22:04,789 Muy bien, así que vamos a ver esta carrera. 411 00:22:04,789 --> 00:22:06,830 En realidad, tal vez podamos conseguir un par de voluntarios 412 00:22:06,830 --> 00:22:09,930 para venir y jugar tic-tac-toe. 413 00:22:09,930 --> 00:22:12,780 [Inaudible] uno, y uno más, dos, justo ahí. 414 00:22:12,780 --> 00:22:13,550 Vamos arriba. 415 00:22:13,550 --> 00:22:19,290 416 00:22:19,290 --> 00:22:23,650 >> Así que vamos a seguir adelante y reiniciar este completamente. 417 00:22:23,650 --> 00:22:24,150 Entonces, hola. 418 00:22:24,150 --> 00:22:24,920 >> AUDIENCIA: Hola. 419 00:22:24,920 --> 00:22:25,420 >> ALTAVOZ: ¿Cuál es tu nombre? 420 00:22:25,420 --> 00:22:26,086 >> AUDIENCIA: Gorav. 421 00:22:26,086 --> 00:22:26,840 ALTAVOZ: Gorav. 422 00:22:26,840 --> 00:22:27,800 >> AUDIENCIA: Soy Layla. 423 00:22:27,800 --> 00:22:29,490 >> ALTAVOZ: Y Layla, y Layla, lo siento. 424 00:22:29,490 --> 00:22:30,384 Vamos arriba. 425 00:22:30,384 --> 00:22:32,050 Gorav, vamos a tener que ir primero. 426 00:22:32,050 --> 00:22:37,710 Y voy a pedirle que ser un no terriblemente buen jugador tic-tac-toe. 427 00:22:37,710 --> 00:22:40,130 OK, así que toda la presión está fuera de ti. 428 00:22:40,130 --> 00:22:44,660 Vamos a ver, sin embargo, que nuestra máquina El jugador puede realmente hacer algo inteligente. 429 00:22:44,660 --> 00:22:45,310 Así que adelante. 430 00:22:45,310 --> 00:22:49,830 Usted va a escribir en el cual coordinará que le gustaría poner su X en. 431 00:22:49,830 --> 00:22:55,170 A0, OK, y la máquina se ha ido de inmediato y poner su marca en A1. 432 00:22:55,170 --> 00:22:56,640 >> Ponga la O en el tablero. 433 00:22:56,640 --> 00:22:58,970 Muy bien, ahora seguir adelante. 434 00:22:58,970 --> 00:23:00,193 ¿A dónde te gustaría ir? 435 00:23:00,193 --> 00:23:03,510 436 00:23:03,510 --> 00:23:05,090 C2. 437 00:23:05,090 --> 00:23:08,430 Nuestro jugador de la máquina ha tomado la plaza central, se bloqueó. 438 00:23:08,430 --> 00:23:10,320 Así que fue una buena, lo más inteligente para que lo haga. 439 00:23:10,320 --> 00:23:13,430 440 00:23:13,430 --> 00:23:14,250 Usted ha bloqueado. 441 00:23:14,250 --> 00:23:15,210 Eso es excelente. 442 00:23:15,210 --> 00:23:16,390 Se saca el córner allí. 443 00:23:16,390 --> 00:23:23,890 444 00:23:23,890 --> 00:23:30,430 >> Y que va a obligarte a tomar el último espacio, B0. 445 00:23:30,430 --> 00:23:32,220 Y el juego termina en empate. 446 00:23:32,220 --> 00:23:35,030 Pero tuvo un razonable juego en contra de usted, ¿no? 447 00:23:35,030 --> 00:23:36,956 Muy bien, muchas gracias, Gorav. 448 00:23:36,956 --> 00:23:40,860 >> [APLAUSOS] 449 00:23:40,860 --> 00:23:44,723 >> Muy bien, Layla, vamos el juego de aquí. 450 00:23:44,723 --> 00:23:46,940 >> AUDIENCIA: Oh, genial. 451 00:23:46,940 --> 00:23:49,950 >> ALTAVOZ: Vamos a dar que cuatro por cuatro tic-tac-toe. 452 00:23:49,950 --> 00:23:54,760 Ahora, en cuatro por cuatro, lo que tienes que ganar con cuatro partidos en fila, no tres en una fila. 453 00:23:54,760 --> 00:23:56,135 Y es todo tuyo. 454 00:23:56,135 --> 00:24:02,180 455 00:24:02,180 --> 00:24:04,420 Así Layla tomó D1. 456 00:24:04,420 --> 00:24:11,730 Ahora vamos a seguir nuestro jugador de la computadora aquí. 457 00:24:11,730 --> 00:24:16,910 De tres en tres tic-tac-dedo del pie es el tipo de cosa que es fácil para todos nosotros. 458 00:24:16,910 --> 00:24:21,960 Pero aún así es agradable ver el jugador de la computadora haciendo movimientos inteligentes. 459 00:24:21,960 --> 00:24:23,725 Cuatro por cuatro llega a ser un poco más complicado. 460 00:24:23,725 --> 00:24:42,960 461 00:24:42,960 --> 00:24:44,230 >> Bien hecho. 462 00:24:44,230 --> 00:24:46,210 Muy bien, así que Layla de remató. 463 00:24:46,210 --> 00:24:48,270 Ah, y que debería haber terminado allí. 464 00:24:48,270 --> 00:24:51,870 Pero vamos a hacer una más aquí. 465 00:24:51,870 --> 00:24:53,480 Así que Layla, gracias. 466 00:24:53,480 --> 00:24:55,112 Bien hecho. 467 00:24:55,112 --> 00:24:57,517 >> [APLAUSOS] 468 00:24:57,517 --> 00:25:00,410 469 00:25:00,410 --> 00:25:04,750 >> Así que nuestro reproductor de tic-tac-toe va a través y descubre lugares, 470 00:25:04,750 --> 00:25:07,040 resuelve usando este minimax. 471 00:25:07,040 --> 00:25:08,990 Y yo tenía un ajuste de profundidad en que para que se 472 00:25:08,990 --> 00:25:11,010 no iría demasiado rápido, que es probablemente la razón por 473 00:25:11,010 --> 00:25:16,790 Layla fue capaz de ir muy bien antes como lo hizo, y lo hizo muy bien. 474 00:25:16,790 --> 00:25:20,450 Pero estos sistemas que simplemente ir a través y la fuerza bruta 475 00:25:20,450 --> 00:25:23,870 ir más profundo, y más profundo, y más profundo, y seguir encontrando la solución 476 00:25:23,870 --> 00:25:29,890 que necesitan, ese tipo de sistemas son bastante éxito en estos, así, 477 00:25:29,890 --> 00:25:32,700 juegos de mesa estándar. 478 00:25:32,700 --> 00:25:37,060 >> Y de hecho, si nos fijamos en un de tres en tres juego tic-tac-dedo del pie, 479 00:25:37,060 --> 00:25:40,040 esto es básicamente un problema resuelto. 480 00:25:40,040 --> 00:25:45,430 Y esto es un diagrama maravillosa de Randall Munroe en XKCD, 481 00:25:45,430 --> 00:25:52,130 mostrando qué usted debe mover tomar, teniendo en cuenta los movimientos de tu oponente. 482 00:25:52,130 --> 00:25:56,420 Esto es algo que pudimos especificar fácilmente antes de tiempo. 483 00:25:56,420 --> 00:26:00,180 Pero, ¿qué sucede cuando lleguemos a más juegos complejos, juegos más complejos, 484 00:26:00,180 --> 00:26:05,690 donde hay tablas más grandes, más posibilidades, la estrategia más profunda? 485 00:26:05,690 --> 00:26:09,660 >> Resulta que este fuerza bruta buscando todavía 486 00:26:09,660 --> 00:26:14,150 hace razonablemente bien, excepto cuando llegues al punto 487 00:26:14,150 --> 00:26:19,230 donde ese árbol es tan grande que no se puede representar todo. 488 00:26:19,230 --> 00:26:22,370 489 00:26:22,370 --> 00:26:28,280 Cuando no se puede calcular todo el árbol, cuando no se puede ir hacia adelante y empuje 490 00:26:28,280 --> 00:26:32,204 a ti mismo hasta el punto donde usted tiene conseguido todo el árbol en la memoria, 491 00:26:32,204 --> 00:26:34,370 o si lo puede conseguir en la memoria y se acaba 492 00:26:34,370 --> 00:26:39,200 llevará demasiado tiempo para buscar a través de él, usted tiene que hacer algo más inteligente. 493 00:26:39,200 --> 00:26:42,620 494 00:26:42,620 --> 00:26:46,450 >> Con el fin de hacer eso, tiene que hacer dos cosas. 495 00:26:46,450 --> 00:26:49,030 En primer lugar, usted tiene que encontrar alguna manera de limitar su profundidad. 496 00:26:49,030 --> 00:26:50,370 Bueno, eso es ok. 497 00:26:50,370 --> 00:26:55,740 Podemos encontrar algunas buenas, mínimo y decir, sólo se puede ir tan profundo. 498 00:26:55,740 --> 00:27:00,890 Pero cuando lo hace, que significa tener estos tableros parcialmente incompletas. 499 00:27:00,890 --> 00:27:04,770 Y usted tiene que elegir, lo que me gusta este tablero parcialmente incompleta, 500 00:27:04,770 --> 00:27:08,600 o este tablero parcialmente incompleto? 501 00:27:08,600 --> 00:27:11,910 >> Y en nuestros cuatro por cuatro juegos tic-tac-dedo del pie, 502 00:27:11,910 --> 00:27:15,240 nuestro jugador de la computadora se bajó a la parte inferior y se dijo, 503 00:27:15,240 --> 00:27:16,800 Tengo dos tablas diferentes. 504 00:27:16,800 --> 00:27:17,940 Ninguno de los dos es una victoria. 505 00:27:17,940 --> 00:27:19,120 Ninguno de los dos es una pérdida. 506 00:27:19,120 --> 00:27:22,070 Ninguno de los dos es un empate. 507 00:27:22,070 --> 00:27:24,100 ¿Cómo elijo entre ellos? 508 00:27:24,100 --> 00:27:26,200 Y no tenía un forma inteligente de hacerlo. 509 00:27:26,200 --> 00:27:28,910 510 00:27:28,910 --> 00:27:32,850 >> Vemos este tipo de Evaluación sucede todo el tiempo 511 00:27:32,850 --> 00:27:35,290 a medida que en los juegos más complejos. 512 00:27:35,290 --> 00:27:37,600 El ajedrez es un gran ejemplo. 513 00:27:37,600 --> 00:27:41,550 En el ajedrez, tenemos, en primer lugar de todo, un tablero más grande. 514 00:27:41,550 --> 00:27:43,370 Tenemos muchos más piezas. 515 00:27:43,370 --> 00:27:47,930 Y el posicionamiento de estas piezas y la forma en que estas piezas se mueven 516 00:27:47,930 --> 00:27:50,370 es de vital importancia. 517 00:27:50,370 --> 00:27:53,700 Así que si quiero usar minimax, Tengo que ser capaz de especificar 518 00:27:53,700 --> 00:27:58,240 y decir, este tablero, donde nadie ha ganado o perdido, sin embargo, 519 00:27:58,240 --> 00:28:04,310 es de alguna manera mejor que esta otra tablero, donde nadie ha ganado o perdido. 520 00:28:04,310 --> 00:28:06,740 >> Para hacer eso, yo podría hacer cosas como yo podría 521 00:28:06,740 --> 00:28:10,787 contar cuantas tengo y cuantas tienes? 522 00:28:10,787 --> 00:28:12,870 O podría dar diferentes piezas diferentes puntos. 523 00:28:12,870 --> 00:28:14,420 Mi reina vale 20 puntos. 524 00:28:14,420 --> 00:28:16,500 Su peón vale un punto. 525 00:28:16,500 --> 00:28:18,920 ¿Quién tiene más puntos en total? 526 00:28:18,920 --> 00:28:22,300 O podría considerar cosas como: quién tiene la mejor posición en el tablero? 527 00:28:22,300 --> 00:28:26,820 A quién le toca el próximo, todo lo que puedo 528 00:28:26,820 --> 00:28:31,220 no para evaluar con mayor precisión cuál de estas posibilidades 529 00:28:31,220 --> 00:28:34,660 es mejor sin teniendo en cuenta de forma exhaustiva 530 00:28:34,660 --> 00:28:36,565 cada movimiento que podría venir después de eso. 531 00:28:36,565 --> 00:28:39,740 532 00:28:39,740 --> 00:28:45,130 >> Ahora para hacer ese trabajo, una de las cosas que es 533 00:28:45,130 --> 00:28:48,680 va a ser realmente importante para nosotros no es sólo moviendo recta 534 00:28:48,680 --> 00:28:53,720 hasta una profundidad particular, límite, pero ser capaz de decir, 535 00:28:53,720 --> 00:28:59,380 una de estas ideas que yo tener es tan malo que es 536 00:28:59,380 --> 00:29:02,280 No vale la pena considerar todas las posibles formas 537 00:29:02,280 --> 00:29:06,680 que las cosas pueden ir de mal en peor. 538 00:29:06,680 --> 00:29:12,760 Para ello, vamos a añadir en minimax un principio llamado alph-beta. 539 00:29:12,760 --> 00:29:16,340 Y alfa-beta dice, si usted tiene una mala idea, 540 00:29:16,340 --> 00:29:22,840 no pierdas tu tiempo tratando de saber exactamente lo malo que es. 541 00:29:22,840 --> 00:29:24,990 >> Así que aquí es lo que vamos a hacer. 542 00:29:24,990 --> 00:29:28,620 Vamos a tomar la misma principios que teníamos antes, 543 00:29:28,620 --> 00:29:32,200 el mismo tipo minimax de búsqueda, solamente estamos 544 00:29:32,200 --> 00:29:37,570 va un seguimiento, no sólo de la valores reales que tenemos, pero vamos a 545 00:29:37,570 --> 00:29:41,440 realizar un seguimiento de la mejor manera posible valor que podría conseguir, 546 00:29:41,440 --> 00:29:45,700 y lo peor posible resultado que podría tener. 547 00:29:45,700 --> 00:29:50,470 Y cada vez lo peor posible Lo está buscando probable, 548 00:29:50,470 --> 00:29:52,694 Voy a abandonar esa parte del árbol. 549 00:29:52,694 --> 00:29:54,610 Y no voy siquiera se molestan mirando más. 550 00:29:54,610 --> 00:29:57,680 551 00:29:57,680 --> 00:30:02,600 >> Muy bien, así que imaginamos que empecemos con este mismo árbol exacta juego. 552 00:30:02,600 --> 00:30:05,200 Y ahora vamos a ir de nuevo, hasta el fondo 553 00:30:05,200 --> 00:30:07,200 a esa esquina inferior izquierda. 554 00:30:07,200 --> 00:30:11,180 Y en esa parte inferior izquierda esquina, nos miramos y evaluamos este foro. 555 00:30:11,180 --> 00:30:15,700 Tal vez sea un cuatro por cuatro tic-tac-toe tablero, o tal vez es un tablero de ajedrez. 556 00:30:15,700 --> 00:30:18,620 Pero lo miramos y evaluamos , y obtenemos un valor de ocho. 557 00:30:18,620 --> 00:30:22,290 558 00:30:22,290 --> 00:30:28,030 >> En ese punto, sabemos que vamos a conseguir por lo menos 559 00:30:28,030 --> 00:30:32,380 ocho puntos de esta decisión final. 560 00:30:32,380 --> 00:30:36,620 No importa lo que el otro dos son, que siete y que dos. 561 00:30:36,620 --> 00:30:38,580 Podrían ser cualquier valor querían ser. 562 00:30:38,580 --> 00:30:41,279 Vamos a llegar a menos ocho puntos. 563 00:30:41,279 --> 00:30:43,070 Muy bien, pero que pudimos seguir adelante y comprobar. 564 00:30:43,070 --> 00:30:45,080 Tal vez uno de ellos es mejor que ocho. 565 00:30:45,080 --> 00:30:46,000 >> Nos fijamos en los siete. 566 00:30:46,000 --> 00:30:46,910 ¿Eso es mejor que ocho? 567 00:30:46,910 --> 00:30:48,680 No, eso no cambia nuestra opinión en absoluto. 568 00:30:48,680 --> 00:30:49,460 Nos fijamos en los dos. 569 00:30:49,460 --> 00:30:50,543 ¿Eso es mejor que ocho? 570 00:30:50,543 --> 00:30:52,580 No, eso no cambia nuestra opinión en absoluto. 571 00:30:52,580 --> 00:30:55,480 Así que ahora que sabemos que hemos agotado todas las posibilidades allí. 572 00:30:55,480 --> 00:30:58,330 No vamos a conseguir nada mejor que ocho. 573 00:30:58,330 --> 00:31:01,310 Vamos a conseguir exactamente ocho. 574 00:31:01,310 --> 00:31:03,825 >> Y así cambiamos ese nodo y por ejemplo, es ahora una certeza. 575 00:31:03,825 --> 00:31:07,010 576 00:31:07,010 --> 00:31:10,270 Subimos un nivel por encima de eso. 577 00:31:10,270 --> 00:31:13,820 Y ahora sabemos algo sobre ese nivel de minimización. 578 00:31:13,820 --> 00:31:18,560 Sabemos que nunca vamos a llegar más de ocho puntos si bajan 579 00:31:18,560 --> 00:31:20,910 esa dirección. 580 00:31:20,910 --> 00:31:22,980 Porque incluso si los otras dos ramas resultan 581 00:31:22,980 --> 00:31:26,170 a ser fantástico y vale la pena miles de puntos cada uno, 582 00:31:26,170 --> 00:31:31,666 nuestro oponente nos dará la mínimo, y nos dan la ocho. 583 00:31:31,666 --> 00:31:32,790 Muy bien, bueno, vamos a ver. 584 00:31:32,790 --> 00:31:35,190 Vamos a seguir adelante por ese camino. 585 00:31:35,190 --> 00:31:38,490 Bajamos a la media de la izquierda. 586 00:31:38,490 --> 00:31:40,560 Miramos hacia abajo y vemos que hay un nueve. 587 00:31:40,560 --> 00:31:45,590 Sabemos que vamos a conseguir al menos nueve puntos por ir abajo 588 00:31:45,590 --> 00:31:47,720 ese camino medio. 589 00:31:47,720 --> 00:31:52,110 Y en este punto, sólo podemos hacer una pausa. 590 00:31:52,110 --> 00:31:56,910 Y podemos decir, mira, conocer en el nivel anterior, 591 00:31:56,910 --> 00:32:01,160 Voy a tener no más de ocho señala bajando esta dirección. 592 00:32:01,160 --> 00:32:05,670 Pero si iba por la mitad camino en vez del camino de la izquierda, 593 00:32:05,670 --> 00:32:08,980 Me gustaría tener al menos nueve puntos. 594 00:32:08,980 --> 00:32:13,590 >> Mi oponente nunca va a déjame ir por ese camino medio. 595 00:32:13,590 --> 00:32:14,650 Llegan a elegir. 596 00:32:14,650 --> 00:32:18,140 Y ellos van a elegir el ruta a la izquierda en dirección a los ocho, 597 00:32:18,140 --> 00:32:23,650 en lugar de por el centro hacia lo que hay por lo menos nueve puntos. 598 00:32:23,650 --> 00:32:25,334 Así que en ese momento, voy a dejar. 599 00:32:25,334 --> 00:32:26,500 Y voy a decir, ¿sabes qué? 600 00:32:26,500 --> 00:32:29,990 Yo no tengo que mirar más abajo en esa dirección. 601 00:32:29,990 --> 00:32:32,270 Porque yo nunca voy a llegar allí. 602 00:32:32,270 --> 00:32:36,660 >> Puedo pasar por alto que uno, y puedo pasar por alto que seis, 603 00:32:36,660 --> 00:32:39,720 porque eso nunca va a suceder. 604 00:32:39,720 --> 00:32:42,470 Así que voy a ir hacia abajo y voy a considerar la siguiente posibilidad. 605 00:32:42,470 --> 00:32:44,830 Voy allí y me digo, veo un dos. 606 00:32:44,830 --> 00:32:47,125 Sé que si me pongo a aquí, estoy va a conseguir al menos dos. 607 00:32:47,125 --> 00:32:49,810 608 00:32:49,810 --> 00:32:50,470 OK. 609 00:32:50,470 --> 00:32:51,520 Sigo adelante. 610 00:32:51,520 --> 00:32:52,440 Veo un cuatro. 611 00:32:52,440 --> 00:32:54,920 Sé que voy a conseguir por lo menos cuatro. 612 00:32:54,920 --> 00:32:57,200 Todavía hay mucho entre cuatro y ocho, sin embargo. 613 00:32:57,200 --> 00:32:58,454 Así que sigo adelante. 614 00:32:58,454 --> 00:32:59,870 Miro hacia abajo y veo que hay una. 615 00:32:59,870 --> 00:33:01,614 Está bien, sé que si Voy por este camino, 616 00:33:01,614 --> 00:33:03,280 Yo voy a ser capaz de elegir los cuatro. 617 00:33:03,280 --> 00:33:06,540 618 00:33:06,540 --> 00:33:08,980 Lo que mi oponente va a hacer? 619 00:33:08,980 --> 00:33:12,310 Entre algo que me da ocho, algo que me da cuatro, 620 00:33:12,310 --> 00:33:14,730 y algo que me da, al menos, nueve, 621 00:33:14,730 --> 00:33:17,550 bueno, él me va a dar a los cuatro. 622 00:33:17,550 --> 00:33:20,110 Y sé que ahora en el lo más alto, me voy 623 00:33:20,110 --> 00:33:23,145 ser capaz de conseguir por lo menos cuatro puntos sobre este juego. 624 00:33:23,145 --> 00:33:27,030 625 00:33:27,030 --> 00:33:30,900 >> La idea de alfa-beta es cortar partes del árbol para 626 00:33:30,900 --> 00:33:32,530 que yo no miro más. 627 00:33:32,530 --> 00:33:35,964 Pero todavía se ve como si hubiera estado mirando un montón de árbol. 628 00:33:35,964 --> 00:33:36,880 Vamos a mantener a la baja. 629 00:33:36,880 --> 00:33:38,305 Bajaremos el siguiente momento. 630 00:33:38,305 --> 00:33:39,680 En el fondo, me parece un uno. 631 00:33:39,680 --> 00:33:41,030 Sé que voy a conseguir al menos uno. 632 00:33:41,030 --> 00:33:41,690 Sigo buscando. 633 00:33:41,690 --> 00:33:42,625 >> Me parece un tres. 634 00:33:42,625 --> 00:33:44,250 Sé que voy a conseguir por lo menos tres. 635 00:33:44,250 --> 00:33:44,840 Sigo adelante. 636 00:33:44,840 --> 00:33:45,660 Me parece un cinco. 637 00:33:45,660 --> 00:33:49,760 Sé que voy a tener de cinco si me pongo en ese camino. 638 00:33:49,760 --> 00:33:52,580 Y también sé entonces que mi oponente, si 639 00:33:52,580 --> 00:33:55,510 elegir el medio de los tres grandes opciones, 640 00:33:55,510 --> 00:34:01,440 él va a darme algo que es cinco o menos. 641 00:34:01,440 --> 00:34:02,150 >> OK. 642 00:34:02,150 --> 00:34:03,400 Puedo seguir allí. 643 00:34:03,400 --> 00:34:06,470 Puedo mirar hacia abajo y yo puede decir, ¿qué voy 644 00:34:06,470 --> 00:34:08,239 conseguir si voy por el camino de en medio? 645 00:34:08,239 --> 00:34:09,909 Yo voy a conseguir, así, tres allí. 646 00:34:09,909 --> 00:34:12,080 Voy a conseguir algo eso es por lo menos tres. 647 00:34:12,080 --> 00:34:16,030 Todavía hay cosas entre tres y cinco, por lo que seguir buscando. 648 00:34:16,030 --> 00:34:20,203 Oh, un nueve, voy definitivamente tomar que más de un tres. 649 00:34:20,203 --> 00:34:22,744 Voy a conseguir por lo menos nueve si me voy por ese camino medio. 650 00:34:22,744 --> 00:34:25,530 651 00:34:25,530 --> 00:34:31,010 >> Ahora mi oponente se detiene y dice: mira, no tiene sentido ya. 652 00:34:31,010 --> 00:34:33,669 Yo sé que mi oponente minimización, él es 653 00:34:33,669 --> 00:34:36,210 me va a dar lo que es menos de o igual a cinco, 654 00:34:36,210 --> 00:34:39,030 en lugar de lo que es mayor o igual a nueve. 655 00:34:39,030 --> 00:34:39,530 Yo paro. 656 00:34:39,530 --> 00:34:40,779 No me veo más en eso. 657 00:34:40,779 --> 00:34:43,280 Sigo adelante. 658 00:34:43,280 --> 00:34:44,850 >> Miro hacia abajo en este caso. 659 00:34:44,850 --> 00:34:46,370 Hasta el fondo, me parece un seis. 660 00:34:46,370 --> 00:34:50,040 Sé que voy a conseguir al menos seis. 661 00:34:50,040 --> 00:34:53,130 ¿Y qué puedo hacer yo? 662 00:34:53,130 --> 00:34:54,877 Yo puedo parar. 663 00:34:54,877 --> 00:34:57,460 Porque hay una elección entre algo que es por lo menos seis 664 00:34:57,460 --> 00:34:59,250 y algo que es menos de cinco, que es 665 00:34:59,250 --> 00:35:02,570 me va a dar la cosa eso es menos de cinco. 666 00:35:02,570 --> 00:35:04,779 Y ahora sé que voy para obtener exactamente esa elección. 667 00:35:04,779 --> 00:35:06,195 Voy a conseguir que cinco elección. 668 00:35:06,195 --> 00:35:08,980 669 00:35:08,980 --> 00:35:10,010 >> Vuelvo a la cima. 670 00:35:10,010 --> 00:35:11,450 ¿Qué voy a elegir entre algo 671 00:35:11,450 --> 00:35:14,449 eso es mayor o igual a cuatro, o algo que es igual a cinco? 672 00:35:14,449 --> 00:35:17,140 Me voy a tomar algo eso es, al menos, cinco años. 673 00:35:17,140 --> 00:35:20,490 Voy por la última ruta, todo el camino hasta la parte inferior. 674 00:35:20,490 --> 00:35:21,260 Hay uno. 675 00:35:21,260 --> 00:35:23,410 Aceptar, por lo menos yo voy a conseguir un punto. 676 00:35:23,410 --> 00:35:24,427 Sigo adelante. 677 00:35:24,427 --> 00:35:25,760 Dos, oh, eso es mejor que uno. 678 00:35:25,760 --> 00:35:27,100 Voy a conseguir por lo menos dos. 679 00:35:27,100 --> 00:35:28,610 Me parece un tres. 680 00:35:28,610 --> 00:35:31,450 Sé que voy a tener tres. 681 00:35:31,450 --> 00:35:34,690 >> Y el punto por encima de eso, mi oponente va 682 00:35:34,690 --> 00:35:38,540 que me diera algo que es menor o igual a tres. 683 00:35:38,540 --> 00:35:40,940 Y ahora puedo parar. 684 00:35:40,940 --> 00:35:46,290 Debido a que en la elección entre mí ser capaz de conseguir un cinco y mi oponente 685 00:35:46,290 --> 00:35:52,290 darme algo menos de tres, Yo siempre voy a tener que cinco. 686 00:35:52,290 --> 00:35:56,810 Así que no evalúo que parte inferior del árbol en absoluto. 687 00:35:56,810 --> 00:35:59,470 >> Ahora, esto puede parecer menor. 688 00:35:59,470 --> 00:36:03,630 Pero cuando pequeños trozos de la aritmética, mayor que y menor que, 689 00:36:03,630 --> 00:36:10,640 pueden cortar partes enteras de este árbol que crece exponencialmente, 690 00:36:10,640 --> 00:36:14,280 que conduce a una enorme cantidad de ahorro, ahorro 691 00:36:14,280 --> 00:36:17,630 que son lo suficientemente grandes que yo puede empezar a jugar competitivamente 692 00:36:17,630 --> 00:36:21,330 en los juegos más complejos. 693 00:36:21,330 --> 00:36:27,030 >> Muy bien, si nos fijamos en el tamaño y la complejidad de los diferentes juegos, 694 00:36:27,030 --> 00:36:29,470 tic-tac-toe era nuestro sencillo ejemplo. 695 00:36:29,470 --> 00:36:32,150 Tenemos una tabla pequeña, de tres en tres. 696 00:36:32,150 --> 00:36:36,030 Tenemos, como máximo, una media de cerca de cuatro opciones diferentes 697 00:36:36,030 --> 00:36:38,440 a medida que avanzamos en el juego. 698 00:36:38,440 --> 00:36:42,720 Tenemos alguna parte alrededor de 10 a la quinto posibles hojas diferentes. 699 00:36:42,720 --> 00:36:45,200 Y la construcción de un tres en raya jugador, así, sólo lo hizo. 700 00:36:45,200 --> 00:36:47,460 Es fácil. 701 00:36:47,460 --> 00:36:49,890 >> Si subimos a algo más compleja, como Conecta Cuatro. 702 00:36:49,890 --> 00:36:53,170 ¿Te acuerdas de este juego donde se le cae las pequeñas fichas en? 703 00:36:53,170 --> 00:36:58,490 Es un tablero de seis por siete, No es mucho más grande, todavía 704 00:36:58,490 --> 00:37:00,770 tiene aproximadamente la misma ramificación factorizar como tic-tac-toe. 705 00:37:00,770 --> 00:37:05,410 Tengo unas cuatro opciones donde puedo poner las cosas en. 706 00:37:05,410 --> 00:37:10,760 Pero ahora, tengo mucho más conduce, 10 elevado a 21. 707 00:37:10,760 --> 00:37:14,440 Eso es algo que es fácil basta con que se resuelve de inmediato. 708 00:37:14,440 --> 00:37:17,560 >> Damas, más complex-- consiguió un ocho por ocho bordo. 709 00:37:17,560 --> 00:37:20,570 Usted es sólo en la mitad de en cualquier momento, sin embargo. 710 00:37:20,570 --> 00:37:24,930 Usted tiene una ramificación factor que es aproximadamente 2,8. 711 00:37:24,930 --> 00:37:28,160 Bueno, tenemos un par movimientos que puede tomar. 712 00:37:28,160 --> 00:37:33,870 Tienes 10 a las hojas 31ª, espacios más grandes y más grandes, y más grande. 713 00:37:33,870 --> 00:37:37,340 Como tengo que buscar a través de esos espacios cada vez más grandes, 714 00:37:37,340 --> 00:37:42,220 que es cuando cosas como alfa-beta y ser capaz de cortar ramas enteras 715 00:37:42,220 --> 00:37:44,420 se convierte en esencial. 716 00:37:44,420 --> 00:37:47,440 >> Ahora, las damas era bastante fácil en 1992. 717 00:37:47,440 --> 00:37:51,400 Un programa de computadora llamado Chinook venció a los inspectores mundo 718 00:37:51,400 --> 00:37:53,590 campeón, Marion Tinsley. 719 00:37:53,590 --> 00:37:57,260 Y desde entonces, no reproductor maestro humano tiene 720 00:37:57,260 --> 00:38:02,290 sido capaz de vencer a los mejores sistemas computacionales. 721 00:38:02,290 --> 00:38:06,570 Si nos fijamos en algo así como el ajedrez, ahora de nuevo, tenemos un ocho por ocho bordo. 722 00:38:06,570 --> 00:38:09,870 Pero tenemos mucho más complejo piezas, movimientos mucho más complejo. 723 00:38:09,870 --> 00:38:14,610 Contamos con un factor de ramificación de aproximadamente 35, 35 movimientos posibles en promedio 724 00:38:14,610 --> 00:38:20,030 que puedo tomar, y un estado espacio, un número de hojas 725 00:38:20,030 --> 00:38:28,950 que ha crecido de 10 a la potencia 123a, un enorme número de posibilidades. 726 00:38:28,950 --> 00:38:35,570 >> Aún así, los procesadores modernos son capaces de hacer esto con éxito. 727 00:38:35,570 --> 00:38:43,900 En 1995 y luego en 1997, un ordenador programa llamado Deep Blue construido por IBM 728 00:38:43,900 --> 00:38:49,601 que corrió en un superordenador gigante batir el actual campeón del mundo, 729 00:38:49,601 --> 00:38:50,225 Garry Kasparov. 730 00:38:50,225 --> 00:38:54,000 731 00:38:54,000 --> 00:38:56,650 Este fue un punto de inflexión. 732 00:38:56,650 --> 00:39:00,620 Hoy en día, sin embargo, que mismo procesamiento el poder se sienta en mi MacBook. 733 00:39:00,620 --> 00:39:04,180 734 00:39:04,180 --> 00:39:06,440 >> La velocidad de procesamiento mantiene cada vez más rápido y más rápido. 735 00:39:06,440 --> 00:39:09,500 Podemos evaluar más tableros más rápidos y más rápido. 736 00:39:09,500 --> 00:39:14,550 Pero lo más importante, tenemos mejor funciones de evaluación y una mejor poda 737 00:39:14,550 --> 00:39:15,460 métodos. 738 00:39:15,460 --> 00:39:19,560 Así que podemos buscar en la espacio más compleja. 739 00:39:19,560 --> 00:39:22,350 El mayor de la junta juegos que podemos imaginar, 740 00:39:22,350 --> 00:39:26,310 algo así como Go que es tiene un tablero de 19 por 19, 741 00:39:26,310 --> 00:39:32,490 ahora, de repente, estamos más allá del punto donde los sistemas computacionales pueden ganar. 742 00:39:32,490 --> 00:39:34,530 No hay computacional sistema por ahí 743 00:39:34,530 --> 00:39:38,880 que puede vencer a un jugador profesional de Go. 744 00:39:38,880 --> 00:39:45,000 El mejor rango de hoy los sistemas se acerca la clase de buen nivel amateur. 745 00:39:45,000 --> 00:39:49,285 Así que todavía hay un poco fuera allí donde no se puede llegar a todavía. 746 00:39:49,285 --> 00:39:51,840 747 00:39:51,840 --> 00:39:55,360 >> Muy bien, éstos juegos de mesa tradicionales, 748 00:39:55,360 --> 00:39:58,560 este tipo de sistemas en los que construir esta minimax, si tiene 749 00:39:58,560 --> 00:40:06,300 alfa-beta o no, estos algoritmos trabajan porque hay ciertas restricciones. 750 00:40:06,300 --> 00:40:08,520 Tenemos información perfecta sobre el mundo. 751 00:40:08,520 --> 00:40:11,690 Sabemos que todas las piezas son. 752 00:40:11,690 --> 00:40:13,570 El mundo es estático. 753 00:40:13,570 --> 00:40:16,220 Nadie llega a mover el piezas alrededor mientras estoy 754 00:40:16,220 --> 00:40:20,640 sentado allí pensando, tomando mi turno. 755 00:40:20,640 --> 00:40:23,140 Hay un espacio de acción que es discreta. 756 00:40:23,140 --> 00:40:26,900 Yo puedo poner mi empeño aquí, o puedo poner mi empeño aquí. 757 00:40:26,900 --> 00:40:30,520 No se me permite poner mi empeño en la línea entre los dos cuadrados. 758 00:40:30,520 --> 00:40:34,430 759 00:40:34,430 --> 00:40:36,520 >> Y por último, las acciones son deterministas. 760 00:40:36,520 --> 00:40:39,790 Yo sé que si digo, torre a caballero tres, 761 00:40:39,790 --> 00:40:44,660 mi torre va a terminar en caballero tres, siempre y cuando se trata de un movimiento válido. 762 00:40:44,660 --> 00:40:47,830 No hay incertidumbre acerca de eso. 763 00:40:47,830 --> 00:40:52,490 Ahora, a medida que vaya a más diferentes tipos de juegos, 764 00:40:52,490 --> 00:40:55,960 tenemos que romper esas suposiciones. 765 00:40:55,960 --> 00:41:00,020 >> ¿Y si voy a algo como los videojuegos clásicos? 766 00:41:00,020 --> 00:41:04,180 He aquí una selección de vídeo juegos de la Atari 2600. 767 00:41:04,180 --> 00:41:05,180 ¿Qué tengo ahí arriba? 768 00:41:05,180 --> 00:41:08,440 Tengo Frogger, Espacio Invaders, trampa, y Pac-Man. 769 00:41:08,440 --> 00:41:11,290 770 00:41:11,290 --> 00:41:14,840 ¿Qué tipo de ambientes tengo aquí ahora? 771 00:41:14,840 --> 00:41:16,900 ¿Cuál de estos supuestos ¿tengo que romper? 772 00:41:16,900 --> 00:41:19,410 773 00:41:19,410 --> 00:41:21,570 >> Bueno, depende del juego. 774 00:41:21,570 --> 00:41:28,170 Podría jugar ajedrez en el 2600, y sería como lo era antes. 775 00:41:28,170 --> 00:41:33,020 Para la mayoría de estos sistemas, hay conocimiento completo sobre el mundo. 776 00:41:33,020 --> 00:41:36,300 Hay por completo acciones determinista. 777 00:41:36,300 --> 00:41:38,330 Pero por lo general, el mundo de ya no estática. 778 00:41:38,330 --> 00:41:41,970 Es decir, mientras estoy sentado allí esperando, algo se mueve. 779 00:41:41,970 --> 00:41:44,320 Los fantasmas vienen a buscarme. 780 00:41:44,320 --> 00:41:46,570 El escorpión me está siguiendo debajo. 781 00:41:46,570 --> 00:41:48,880 Los invasores del espacio son cada vez más cerca. 782 00:41:48,880 --> 00:41:54,020 783 00:41:54,020 --> 00:41:55,510 ¿Qué tan bien podemos hacer contra esto? 784 00:41:55,510 --> 00:41:58,640 785 00:41:58,640 --> 00:42:02,790 >> Hace unos años, Google había un proyecto llamado 786 00:42:02,790 --> 00:42:12,030 DeepMind, donde entrenaron un ordenador programa para jugar juegos de Atari 2600. 787 00:42:12,030 --> 00:42:16,120 Y si usted piensa que esto no es grave negocio, los resultados de su estudio 788 00:42:16,120 --> 00:42:19,920 se publicaron en la revista Nature, por lo casi tan bueno una publicación 789 00:42:19,920 --> 00:42:22,500 como se puede conseguir posiblemente. 790 00:42:22,500 --> 00:42:24,340 Y esto es lo bien que se llevan a cabo. 791 00:42:24,340 --> 00:42:29,220 >> Tienen un algoritmo que se sentó y vio sólo las entradas de la pantalla. 792 00:42:29,220 --> 00:42:34,080 Se puso ninguna instrucción en absoluto acerca de las reglas del juego. 793 00:42:34,080 --> 00:42:42,610 Y se suponía que averiguar, basa su puntuación, lo bien que estaba haciendo. 794 00:42:42,610 --> 00:42:46,560 Esto era un sistema que utiliza algo llamado aprendizaje por refuerzo. 795 00:42:46,560 --> 00:42:48,380 Es decir, que se veía en su puntuación. 796 00:42:48,380 --> 00:42:51,620 Y si tiene un buen puntaje, dijo, Debo recordar esas cosas. 797 00:42:51,620 --> 00:42:53,310 Y que debo hacer los de nuevo. 798 00:42:53,310 --> 00:42:56,450 Y si tiene una mala puntuación, se dijo, No debería hacer esas cosas de nuevo. 799 00:42:56,450 --> 00:42:59,750 800 00:42:59,750 --> 00:43:03,430 >> Este es el rendimiento de esos sistemas formados 801 00:43:03,430 --> 00:43:07,490 permitido jugar para un pocas horas en cada juego, 802 00:43:07,490 --> 00:43:12,490 comparado contra los jugadores profesionales. 803 00:43:12,490 --> 00:43:19,670 Así que para todos los juegos que son en el lado izquierdo de esta línea, 804 00:43:19,670 --> 00:43:25,920 Este programa informático autodidacta superado a los jugadores profesionales. 805 00:43:25,920 --> 00:43:29,690 Y para que todo el derecha, los jugadores profesionales 806 00:43:29,690 --> 00:43:30,920 fueron siendo el mejor. 807 00:43:30,920 --> 00:43:34,040 808 00:43:34,040 --> 00:43:36,850 Para algo que sabía nada acerca de las reglas, que 809 00:43:36,850 --> 00:43:43,020 no sabía nada de la estructura de la juegos, se trata de un rendimiento impresionante. 810 00:43:43,020 --> 00:43:45,660 Y esto es lo que somos capaces de hacer hoy. 811 00:43:45,660 --> 00:43:50,239 >> OK, usted dice, pero si pensar en la IA en los juegos, 812 00:43:50,239 --> 00:43:52,530 Normalmente pensamos en el cosas que podemos realidad 813 00:43:52,530 --> 00:43:54,180 sentarse y jugar en contra. 814 00:43:54,180 --> 00:43:58,760 Si me siento y toco StarCraft, o el juego libre del tamiz, 815 00:43:58,760 --> 00:44:01,870 el opositor de la computadora es la persona que controla los Zerg, 816 00:44:01,870 --> 00:44:06,770 o el control de la otra civilización. 817 00:44:06,770 --> 00:44:11,920 ¿Cómo hacen los jugadores realmente encontrar sus movimientos? 818 00:44:11,920 --> 00:44:18,810 >> Bueno, estos juegos están estructurados de la misma manera como nuestros juegos de mesa, 819 00:44:18,810 --> 00:44:22,250 estos juegos que vamos a colectivamente llamar a cuatro juegos de X, 820 00:44:22,250 --> 00:44:26,040 explorar, expand-- olvidar las queridos. 821 00:44:26,040 --> 00:44:26,980 ¿Qué son? 822 00:44:26,980 --> 00:44:32,150 Explora, ampliar y extinguir, Creo que es el último. 823 00:44:32,150 --> 00:44:36,060 Pero son básicamente exploración y conquista juegos. 824 00:44:36,060 --> 00:44:41,020 Normalmente, el opositor de la computadora allí tiene información limitada. 825 00:44:41,020 --> 00:44:45,486 Ellos no saben exactamente lo que está pasando detrás de esa niebla de la guerra. 826 00:44:45,486 --> 00:44:47,735 Ellos no llegan a ver qué que tiene en su inventario. 827 00:44:47,735 --> 00:44:50,240 828 00:44:50,240 --> 00:44:52,800 >> Hay un ambiente que es dinámico. 829 00:44:52,800 --> 00:44:56,180 Todo está cambiando todo el tiempo. 830 00:44:56,180 --> 00:45:00,290 No te dan para sentarse y esperar para tomar su decisión. 831 00:45:00,290 --> 00:45:02,810 Pero la mayoría de las cosas son todavía discreta. 832 00:45:02,810 --> 00:45:04,200 Tengo que poner mi ciudad aquí. 833 00:45:04,200 --> 00:45:06,750 ¿O tengo que poner mi ciudad aquí. 834 00:45:06,750 --> 00:45:08,950 Y todo es determinista. 835 00:45:08,950 --> 00:45:14,660 Cuando digo, mover mi unidad aquí, mi unidad mueve aquí, a menos que un obstáculo de repente 836 00:45:14,660 --> 00:45:17,700 entra en juego. 837 00:45:17,700 --> 00:45:21,610 Ahora, eso no es todo equipo juegos que están por ahí hoy en día. 838 00:45:21,610 --> 00:45:27,320 >> Si voy y toco un primer tipo persona juego, algo así como ladrón o Fallout 839 00:45:27,320 --> 00:45:33,350 o Skyrim o Halo, ahora Tengo oponentes de la computadora 840 00:45:33,350 --> 00:45:37,860 que están ahí fuera que tienen una situación muy diferente. 841 00:45:37,860 --> 00:45:40,020 Tienen, de nuevo, la información limitada. 842 00:45:40,020 --> 00:45:43,420 Ellos sólo pueden ver una determinado campo de visión. 843 00:45:43,420 --> 00:45:45,180 El medio ambiente es todavía dinámico. 844 00:45:45,180 --> 00:45:48,280 Las cosas están cambiando todo el tiempo. 845 00:45:48,280 --> 00:45:52,300 >> Pero ahora tengo una mucho más espacio de acción continua. 846 00:45:52,300 --> 00:45:57,170 Puedo ser simplemente una Echar un vistazo poco fuera de la puerta. 847 00:45:57,170 --> 00:46:00,650 Y algunos juegos, mi acciones son estocástico. 848 00:46:00,650 --> 00:46:04,590 Tengo la oportunidad de tratar de saltar por encima de esa pared, pero tengo la oportunidad de fracasar. 849 00:46:04,590 --> 00:46:08,280 850 00:46:08,280 --> 00:46:14,550 Este tipo de juegos son cada vez más cerca y más cerca de los tipos de controladores 851 00:46:14,550 --> 00:46:17,330 que construimos en la robótica. 852 00:46:17,330 --> 00:46:21,050 >> En robótica, tenemos que asumir que tengamos la información limitada. 853 00:46:21,050 --> 00:46:23,070 Tenemos sensores que nos dicen acerca del mundo. 854 00:46:23,070 --> 00:46:25,860 Tenemos una siempre cambiante, entorno dinámico. 855 00:46:25,860 --> 00:46:30,440 Tenemos un mundo en el que el espacio es continua, en lugar de discretos. 856 00:46:30,440 --> 00:46:36,260 Y nuestras acciones, cuando tratamos ellos, tienen una probabilidad de fracasar. 857 00:46:36,260 --> 00:46:40,960 Y de hecho, juego moderno controladores de tu oponente Halo, 858 00:46:40,960 --> 00:46:48,690 o para aquellos NPCs en Skyrim, básicamente, ejecutar pequeñas arquitecturas robótica. 859 00:46:48,690 --> 00:46:50,380 >> Sienten el mundo. 860 00:46:50,380 --> 00:46:52,910 Ellos construyen un modelo del mundo. 861 00:46:52,910 --> 00:46:57,950 Calculan basan en un conjunto de metas que les gustaría llevar a cabo. 862 00:46:57,950 --> 00:47:03,110 Planean acciones basadas en lo que saben. 863 00:47:03,110 --> 00:47:07,940 Y esos son exactamente los mismos tipos de los sistemas que construimos en la robótica. 864 00:47:07,940 --> 00:47:11,420 Así que estas arquitecturas, a llevar este nuevo juntos, 865 00:47:11,420 --> 00:47:14,500 a menudo son exactamente lo mismo. 866 00:47:14,500 --> 00:47:16,340 >> Así que vamos a ver si podemos ver eso. 867 00:47:16,340 --> 00:47:19,210 Volvamos a nuestro ejemplo tic-tac-toe. 868 00:47:19,210 --> 00:47:22,690 Y yo voy a pedir un par de mi post-docs para llegar y me ayudan. 869 00:47:22,690 --> 00:47:26,970 Así Chen Ming, y Alessandro, y Olivier, si ustedes vendría. 870 00:47:26,970 --> 00:47:32,080 871 00:47:32,080 --> 00:47:35,440 Y voy a necesitar un par de voluntarios 872 00:47:35,440 --> 00:47:37,590 >> OK, vi un derecho mano allí en medio. 873 00:47:37,590 --> 00:47:39,965 Quiero aprovechar uno más, alguien más atrás tal vez. 874 00:47:39,965 --> 00:47:40,881 Muy bien, por ahí. 875 00:47:40,881 --> 00:47:41,490 Vamos arriba. 876 00:47:41,490 --> 00:47:44,190 877 00:47:44,190 --> 00:47:45,335 Correcto. 878 00:47:45,335 --> 00:47:49,490 Así que echemos que tapa hacia abajo. 879 00:47:49,490 --> 00:48:03,700 Y si ustedes vendrían derecho vuelta por aquí para mí, fantástico. 880 00:48:03,700 --> 00:48:06,580 >> Así que este es un robot llamado Baxter. 881 00:48:06,580 --> 00:48:10,880 Y Baxter es un robot que es un plataforma comercial, diseñado 882 00:48:10,880 --> 00:48:13,030 por una compañía llamada Rethink. 883 00:48:13,030 --> 00:48:16,580 Y este robot está diseñado para la fabricación a pequeña escala. 884 00:48:16,580 --> 00:48:19,265 Pero hoy vamos a usarlo para jugar tic-tac-toe. 885 00:48:19,265 --> 00:48:21,930 886 00:48:21,930 --> 00:48:27,150 Ahora, este robot también es algo eso es relativamente único. 887 00:48:27,150 --> 00:48:32,950 Porque si estuviera de pie en cualquier lugar cerca de una automatización de fábrica estándar 888 00:48:32,950 --> 00:48:39,580 sistema, yo estaría en muy grave peligro de ser herido. 889 00:48:39,580 --> 00:48:45,600 >> Baxter, sin embargo, está diseñado para ser relativamente seguro para interactuar con. 890 00:48:45,600 --> 00:48:48,680 Y para que pueda seguir adelante este robot. 891 00:48:48,680 --> 00:48:52,350 Y se puede ver que es un poco poco flexibles, ya que se mueve alrededor. 892 00:48:52,350 --> 00:48:57,250 Y puedo cambiar su posición donde me gustaría que fuera. 893 00:48:57,250 --> 00:49:03,410 Ahora bien, en un sistema robótico normales, tendríamos un conjunto de articulaciones aquí 894 00:49:03,410 --> 00:49:07,970 eso sería directamente responder a los comandos de posición. 895 00:49:07,970 --> 00:49:13,180 Y ellos no les importaría necesariamente si se movían a través del aire libre, 896 00:49:13,180 --> 00:49:15,555 o si se movían a través de mi caja torácica. 897 00:49:15,555 --> 00:49:18,410 898 00:49:18,410 --> 00:49:19,120 >> OK. 899 00:49:19,120 --> 00:49:22,090 Y por lo general, si eran aquí con un sistema industrial, 900 00:49:22,090 --> 00:49:23,400 va a ir a ninguna parte cerca de él. 901 00:49:23,400 --> 00:49:26,280 Habría amarilla cinta de seguridad a su alrededor. 902 00:49:26,280 --> 00:49:28,310 Este sistema tiene una ligeramente diferente diseño 903 00:49:28,310 --> 00:49:32,130 para ser más amable y más fácil para que las personas interactúan con, 904 00:49:32,130 --> 00:49:36,380 porque en cada conjunto, hay un resorte. 905 00:49:36,380 --> 00:49:39,110 Y en lugar de controlar una posición exacta, 906 00:49:39,110 --> 00:49:43,110 controlamos una cierta cantidad de torque, una cierta cantidad de fuerza, 907 00:49:43,110 --> 00:49:45,874 que nos gustaría estar en esa primavera. 908 00:49:45,874 --> 00:49:47,790 Muy bien, así que me dejó tomar nuestros voluntarios aquí. 909 00:49:47,790 --> 00:49:48,540 ¿Hola, como te llamas? 910 00:49:48,540 --> 00:49:49,010 >> AUDIENCIA: Louis. 911 00:49:49,010 --> 00:49:49,635 >> ALTAVOZ: Louis. 912 00:49:49,635 --> 00:49:50,490 Me alegro de verte. 913 00:49:50,490 --> 00:49:50,990 ¿Y? 914 00:49:50,990 --> 00:49:51,610 >> AUDIENCIA: David. 915 00:49:51,610 --> 00:49:51,960 >> ALTAVOZ: David. 916 00:49:51,960 --> 00:49:52,550 Encantada de conocerte. 917 00:49:52,550 --> 00:49:54,508 Si ustedes esperarían aquí por un segundo, 918 00:49:54,508 --> 00:49:56,420 Voy a darle la oportunidad de hacer esto. 919 00:49:56,420 --> 00:50:00,610 Así que este robot, si llegar y si se presiona suavemente sobre ella, 920 00:50:00,610 --> 00:50:03,780 vas a ver que se mueve un poco. 921 00:50:03,780 --> 00:50:06,349 Y si coges las cosas bien aquí en la muñeca justo 922 00:50:06,349 --> 00:50:09,390 por encima de donde son esos botones, se parece que usted debe tomar los botones, 923 00:50:09,390 --> 00:50:13,100 pero agarra justo encima de su lugar, se le ser capaz de manipular muy suavemente 924 00:50:13,100 --> 00:50:14,545 a través del espacio. 925 00:50:14,545 --> 00:50:15,920 Louis, quiere darle una oportunidad? 926 00:50:15,920 --> 00:50:19,465 Así que darle un poco empuje para empezar. 927 00:50:19,465 --> 00:50:23,190 Y luego si pones tus dedos justo allí y aferrarse a él, 928 00:50:23,190 --> 00:50:24,807 porque va a mover para usted entonces. 929 00:50:24,807 --> 00:50:27,824 930 00:50:27,824 --> 00:50:29,365 Muy bien, usted quiere darle una oportunidad? 931 00:50:29,365 --> 00:50:29,980 Vamos arriba. 932 00:50:29,980 --> 00:50:32,300 Así que darle sólo un gentil empujar allí para empezar. 933 00:50:32,300 --> 00:50:33,820 Usted puede sentir lo que se siente. 934 00:50:33,820 --> 00:50:40,060 Y luego, si coges allí mismo, podrás maniobrar alrededor. 935 00:50:40,060 --> 00:50:41,280 >> OK. 936 00:50:41,280 --> 00:50:47,360 Así Típicamente, este tipo de un robot haría ser utilizado para la fabricación a pequeña escala. 937 00:50:47,360 --> 00:50:50,980 Y me voy a mover este brazo justo abajo del camino un poco aquí. 938 00:50:50,980 --> 00:50:55,750 Pero hoy en día, vamos a utilizar el mismo sistema de juego tic-tac-toe 939 00:50:55,750 --> 00:50:59,520 basado en Minimax que construimos antes. 940 00:50:59,520 --> 00:51:00,549 ¿De acuerdo? 941 00:51:00,549 --> 00:51:02,340 Así que, ustedes son cada va a jugar un juego. 942 00:51:02,340 --> 00:51:04,210 Louis, vas a ser el primero. 943 00:51:04,210 --> 00:51:05,920 Permítanme sostengo aquí por un segundo. 944 00:51:05,920 --> 00:51:10,949 Voy a tener pone de pie derecho aquí, sólo para que todos puedan verlo. 945 00:51:10,949 --> 00:51:11,990 ¿Estáis estableció aquí? 946 00:51:11,990 --> 00:51:13,120 >> ROBOT: Bienvenido. 947 00:51:13,120 --> 00:51:15,910 Vamos a jugar tic-tac-toe. 948 00:51:15,910 --> 00:51:20,860 No agarre el token antes Yo digo que es su turno. 949 00:51:20,860 --> 00:51:22,050 Empiezo el juego. 950 00:51:22,050 --> 00:51:27,900 951 00:51:27,900 --> 00:51:28,750 Es mi turno. 952 00:51:28,750 --> 00:51:47,002 953 00:51:47,002 --> 00:51:50,210 ALTAVOZ: Ahora, si usted podría tomar una de sus piezas y seguir adelante y lo colocan. 954 00:51:50,210 --> 00:51:51,446 ROBOT: Es su turno. 955 00:51:51,446 --> 00:51:53,430 [RISA] 956 00:51:53,430 --> 00:51:54,836 Es mi turno. 957 00:51:54,836 --> 00:51:56,820 [RISA] 958 00:51:56,820 --> 00:52:12,196 959 00:52:12,196 --> 00:52:15,680 [RISA] 960 00:52:15,680 --> 00:52:16,570 Es tu turno. 961 00:52:16,570 --> 00:52:21,397 962 00:52:21,397 --> 00:52:23,688 ALTAVOZ: La raza humana es contando con ustedes aquí, Louis. 963 00:52:23,688 --> 00:52:27,440 964 00:52:27,440 --> 00:52:28,350 >> ROBOT: Es mi turno. 965 00:52:28,350 --> 00:52:44,810 966 00:52:44,810 --> 00:52:47,015 >> ALTAVOZ: Así Baxter bloqueado con éxito aquí. 967 00:52:47,015 --> 00:52:49,670 968 00:52:49,670 --> 00:52:52,480 >> ROBOT: Es su turno. 969 00:52:52,480 --> 00:52:53,360 Es mi turno. 970 00:52:53,360 --> 00:53:14,730 971 00:53:14,730 --> 00:53:16,810 Es tu turno. 972 00:53:16,810 --> 00:53:17,760 Es mi turno. 973 00:53:17,760 --> 00:53:21,330 974 00:53:21,330 --> 00:53:23,830 ALTAVOZ: Y vamos a dejar que Baxter terminar a cabo su último movimiento aquí. 975 00:53:23,830 --> 00:53:36,622 976 00:53:36,622 --> 00:53:39,090 >> [RISA] 977 00:53:39,090 --> 00:53:40,480 >> ROBOT: Eso es un empate. 978 00:53:40,480 --> 00:53:42,030 Voy a ganar la próxima vez. 979 00:53:42,030 --> 00:53:43,365 >> [RISA] 980 00:53:43,365 --> 00:53:45,210 >> ALTAVOZ: Muy bien, muchas gracias, Louis. 981 00:53:45,210 --> 00:53:46,094 Gracias. 982 00:53:46,094 --> 00:53:46,980 Usted puede ir de esta manera. 983 00:53:46,980 --> 00:53:49,759 >> ROBOT: empiezo el juego. 984 00:53:49,759 --> 00:53:51,800 ALTAVOZ: Entonces déjame explicarte a usted un poco más 985 00:53:51,800 --> 00:53:55,410 poco antes de llegar a nuestra revancha aquí. 986 00:53:55,410 --> 00:53:57,200 ¿Qué es exactamente que está pasando? 987 00:53:57,200 --> 00:53:59,430 Así que el robot tiene una cámara encima de la tapa aquí. 988 00:53:59,430 --> 00:54:01,330 Y está mirando hacia abajo en el tablero. 989 00:54:01,330 --> 00:54:04,470 Y está viendo si que tiene una junta de color rojo o azul 990 00:54:04,470 --> 00:54:10,450 y X. blanco Como aquellos conseguir coloca en el tablero, que es básicamente la misma entrada 991 00:54:10,450 --> 00:54:13,890 que estaríamos leyendo desde nuestra estructura de datos de nuestra pantalla. 992 00:54:13,890 --> 00:54:17,290 Se está corriendo la misma algoritmo minimax sea 993 00:54:17,290 --> 00:54:21,010 capaces de encontrar dónde colocar una buena señal. 994 00:54:21,010 --> 00:54:24,820 >> Y entonces le estamos dando un comando sobre donde nos gustaría una ficha para ser colocado. 995 00:54:24,820 --> 00:54:26,120 El brazo se mueve hacia fuera. 996 00:54:26,120 --> 00:54:31,750 Se trata de utilizar una pinza de vacío para aplicar algunos de succión para esa pieza de madera, 997 00:54:31,750 --> 00:54:35,240 recogerlo, moverlo a la derecha lugar y, a continuación, suelte la succión 998 00:54:35,240 --> 00:54:36,950 y soltarlo. 999 00:54:36,950 --> 00:54:38,990 Muy bien, vamos para darle una oportunidad más 1000 00:54:38,990 --> 00:54:40,930 con un jugador un poco más inteligente aquí. 1001 00:54:40,930 --> 00:54:42,290 ¿Estás listo? 1002 00:54:42,290 --> 00:54:46,150 Muy bien, si paraba hasta aquí y dar A-- resultar de esta manera 1003 00:54:46,150 --> 00:54:47,955 para que pueda ver todo el mundo. 1004 00:54:47,955 --> 00:54:48,830 Y luego [inaudible]. 1005 00:54:48,830 --> 00:54:49,330 >> ROBOT: Es mi turno. 1006 00:54:49,330 --> 00:54:50,455 >> ALTAVOZ: Baxter, se iniciará. 1007 00:54:50,455 --> 00:55:10,750 1008 00:55:10,750 --> 00:55:11,730 Es tu turno. 1009 00:55:11,730 --> 00:55:16,490 1010 00:55:16,490 --> 00:55:17,520 Es mi turno. 1011 00:55:17,520 --> 00:55:38,740 1012 00:55:38,740 --> 00:55:39,690 Es tu turno. 1013 00:55:39,690 --> 00:55:46,330 1014 00:55:46,330 --> 00:55:47,165 Es mi turno. 1015 00:55:47,165 --> 00:56:01,252 1016 00:56:01,252 --> 00:56:06,192 >> [RISA] 1017 00:56:06,192 --> 00:56:08,542 >> ALTAVOZ: [WHISPERING] Justo lo dejó ir adelante y ganar. 1018 00:56:08,542 --> 00:56:09,500 ROBOT: Es su turno. 1019 00:56:09,500 --> 00:56:15,099 1020 00:56:15,099 --> 00:56:15,890 ALTAVOZ: Eso está bien. 1021 00:56:15,890 --> 00:56:20,390 1022 00:56:20,390 --> 00:56:21,360 >> ROBOT: Es mi turno. 1023 00:56:21,360 --> 00:56:24,825 1024 00:56:24,825 --> 00:56:26,805 >> [RISA] 1025 00:56:26,805 --> 00:56:42,650 1026 00:56:42,650 --> 00:56:43,510 >> Gané. 1027 00:56:43,510 --> 00:56:45,620 >> [RISA] 1028 00:56:45,620 --> 00:56:46,595 >> Empiezo el juego. 1029 00:56:46,595 --> 00:56:48,261 >> ALTAVOZ: Muy bien, muchas gracias. 1030 00:56:48,261 --> 00:56:50,180 1031 00:56:50,180 --> 00:56:55,590 Muy bien, creo que tenemos tiempo para una más excelente jugador de tic-tac-dedo del pie, 1032 00:56:55,590 --> 00:57:00,490 alguien que puede poner esta cosa coinciden, que sabe lo que están haciendo. 1033 00:57:00,490 --> 00:57:03,010 >> [RISA] 1034 00:57:03,010 --> 00:57:05,560 >> ¿Quién va a ser nuestro campeón aquí? 1035 00:57:05,560 --> 00:57:08,110 Muy bien, sus amigos le ofreció. 1036 00:57:08,110 --> 00:57:11,190 Eso es suficiente para mí. 1037 00:57:11,190 --> 00:57:12,194 Dime tu nombre otra vez. 1038 00:57:12,194 --> 00:57:12,860 AUDIENCIA: Tamir. 1039 00:57:12,860 --> 00:57:14,193 ALTAVOZ: Tamir, me alegro de verte. 1040 00:57:14,193 --> 00:57:19,270 Muy bien, de nuevo, vamos a ponerle hasta aquí para que todos puedan verlo. 1041 00:57:19,270 --> 00:57:22,070 Usted es nuestro representante en este partido ahora. 1042 00:57:22,070 --> 00:57:24,540 Baxter es uno y oh y oh. 1043 00:57:24,540 --> 00:57:26,300 O lo siento, uno oh y uno. 1044 00:57:26,300 --> 00:57:27,490 Y le toca a usted aquí. 1045 00:57:27,490 --> 00:57:29,340 Baxter se llega a mover primero, sin embargo. 1046 00:57:29,340 --> 00:57:30,435 Asi que. 1047 00:57:30,435 --> 00:57:31,310 ROBOT: Es mi turno. 1048 00:57:31,310 --> 00:57:45,226 1049 00:57:45,226 --> 00:57:48,208 >> [RISA] 1050 00:57:48,208 --> 00:57:52,720 1051 00:57:52,720 --> 00:57:55,780 >> Es tu turno. 1052 00:57:55,780 --> 00:57:56,845 Es mi turno. 1053 00:57:56,845 --> 00:58:18,130 1054 00:58:18,130 --> 00:58:18,965 Es tu turno. 1055 00:58:18,965 --> 00:58:28,751 1056 00:58:28,751 --> 00:58:30,248 Es mi turno. 1057 00:58:30,248 --> 00:58:51,210 1058 00:58:51,210 --> 00:58:52,160 Es tu turno. 1059 00:58:52,160 --> 00:59:00,854 1060 00:59:00,854 --> 00:59:03,365 >> [RISA] 1061 00:59:03,365 --> 00:59:04,240 ROBOT: Es mi turno. 1062 00:59:04,240 --> 00:59:06,930 ALTAVOZ: Es mucho más difícil cuando usted está de pie aquí, amigos. 1063 00:59:06,930 --> 00:59:19,400 1064 00:59:19,400 --> 00:59:21,840 [RISA] 1065 00:59:21,840 --> 00:59:26,730 1066 00:59:26,730 --> 00:59:29,054 ROBOT: Ustedes los humanos son tan fáciles de superar. 1067 00:59:29,054 --> 00:59:30,803 [Risas y aplausos] 1068 00:59:30,803 --> 00:59:31,886 ALTAVOZ: Muchas gracias. 1069 00:59:31,886 --> 00:59:34,692 ROBOT: yo gano. 1070 00:59:34,692 --> 00:59:35,400 Empiezo el juego. 1071 00:59:35,400 --> 00:59:39,500 >> ALTAVOZ: De acuerdo, muchas gracias mucho que Olivier, y Alessandro, 1072 00:59:39,500 --> 00:59:41,616 y Chen Ming. 1073 00:59:41,616 --> 00:59:45,600 >> [APLAUSOS] 1074 00:59:45,600 --> 00:59:47,040 >> Quiero hacer un último punto. 1075 00:59:47,040 --> 00:59:51,630 Así Baxter en el muy terminar allí, engañado. 1076 00:59:51,630 --> 00:59:54,160 1077 00:59:54,160 --> 00:59:56,310 Y eso fue inesperado. 1078 00:59:56,310 --> 01:00:00,440 Uno de lo fantástico cosas de la IA es que nos 1079 01:00:00,440 --> 01:00:05,070 hacer el trabajo en AI para que podamos construir realmente interesante e inteligente 1080 01:00:05,070 --> 01:00:06,930 dispositivos. 1081 01:00:06,930 --> 01:00:10,130 Pero también hacemos trabajos en IA porque nos dice algo 1082 01:00:10,130 --> 01:00:13,940 sobre cómo los humanos son inteligentes. 1083 01:00:13,940 --> 01:00:17,280 >> Uno de los favoritos estudios realizados en mi laboratorio es 1084 01:00:17,280 --> 01:00:23,660 mirando lo que sucede cuando máquinas engañan inesperadamente. 1085 01:00:23,660 --> 01:00:27,070 Lo hicimos originalmente no con Baxter jugar tic-tac-dedo del pie, 1086 01:00:27,070 --> 01:00:30,340 pero con un robot más pequeño llamado Nao, quien jugó piedra-papel-tijeras. 1087 01:00:30,340 --> 01:00:33,010 1088 01:00:33,010 --> 01:00:35,800 Y a veces después jugar montones y montones 1089 01:00:35,800 --> 01:00:41,580 de aburrir piedra-papel-tijeras juegos, el robot lanzaría un gesto, 1090 01:00:41,580 --> 01:00:48,616 perder, y luego cambiar de repente su gesto y decir, yo gano. 1091 01:00:48,616 --> 01:00:50,480 >> [RISA] 1092 01:00:50,480 --> 01:00:56,090 >> Ahora, a veces nosotros también tendríamos el robot, así como un control, lanzar un gesto, 1093 01:00:56,090 --> 01:01:01,270 ganar, y cambiar su gesto perder, tirar el partido, 1094 01:01:01,270 --> 01:01:04,070 trampas para perder. 1095 01:01:04,070 --> 01:01:07,540 Y eso no es tan convincente. 1096 01:01:07,540 --> 01:01:09,890 El robot que engaña con el fin de ganarse a la gente 1097 01:01:09,890 --> 01:01:14,660 responder a como si fuera a por ellos, al igual que 1098 01:01:14,660 --> 01:01:17,690 está buscando activamente su destrucción. 1099 01:01:17,690 --> 01:01:19,210 >> [RISA] 1100 01:01:19,210 --> 01:01:20,990 >> Se convierte en un agente. 1101 01:01:20,990 --> 01:01:21,840 Es como una persona. 1102 01:01:21,840 --> 01:01:23,970 Tiene la creencia y la intención. 1103 01:01:23,970 --> 01:01:27,470 Y no es una buena intención. 1104 01:01:27,470 --> 01:01:33,790 Y el robot que lanza la juego es simplemente un mal funcionamiento. 1105 01:01:33,790 --> 01:01:36,990 Es sólo un dispositivo dañado. 1106 01:01:36,990 --> 01:01:41,405 Te voy a enseñar un par de ejemplos de que a partir de algunos de nuestros participantes. 1107 01:01:41,405 --> 01:01:43,990 1108 01:01:43,990 --> 01:01:45,600 Así que aquí está el engaño con el fin de perder. 1109 01:01:45,600 --> 01:01:46,266 >> [REPRODUCCIÓN DE VÍDEO] 1110 01:01:46,266 --> 01:01:47,010 - [Inaudible] ganar. 1111 01:01:47,010 --> 01:01:49,550 Vamos a jugar. 1112 01:01:49,550 --> 01:01:50,538 >> -¿Esperar lo? 1113 01:01:50,538 --> 01:01:54,490 1114 01:01:54,490 --> 01:01:55,352 >> - [Inaudible] ganar. 1115 01:01:55,352 --> 01:01:58,280 Vamos a jugar. 1116 01:01:58,280 --> 01:01:59,400 >> [Inaudible] ganar. 1117 01:01:59,400 --> 01:02:02,290 Vamos a jugar. 1118 01:02:02,290 --> 01:02:05,490 >> ALTAVOZ: Y aquí es hacer trampa para ganar. 1119 01:02:05,490 --> 01:02:06,438 >> -Sí, Yo gano. 1120 01:02:06,438 --> 01:02:07,394 Vamos a jugar. 1121 01:02:07,394 --> 01:02:08,828 >> -No Puedes hacer eso. 1122 01:02:08,828 --> 01:02:10,740 >> [RISA] 1123 01:02:10,740 --> 01:02:12,174 1124 01:02:12,174 --> 01:02:13,979 >> -Sí, Yo gano. 1125 01:02:13,979 --> 01:02:14,520 -Hiciste trampa. 1126 01:02:14,520 --> 01:02:17,990 1127 01:02:17,990 --> 01:02:20,010 Hiciste trampa ahora. 1128 01:02:20,010 --> 01:02:21,140 >> -Sí, Yo gano. 1129 01:02:21,140 --> 01:02:22,940 >> -Oye, Te tramposo. 1130 01:02:22,940 --> 01:02:26,670 Haces trampa, super tramposo. 1131 01:02:26,670 --> 01:02:27,650 >> [FIN DE REPRODUCCIÓN] 1132 01:02:27,650 --> 01:02:31,130 >> ALTAVOZ: Estos diferentes reacciones rápidamente 1133 01:02:31,130 --> 01:02:34,890 cambiar nuestra percepción del dispositivo. 1134 01:02:34,890 --> 01:02:36,780 ¿Significa eso que deliberadamente construimos 1135 01:02:36,780 --> 01:02:40,370 máquinas que hacen trampa porque eso es la mejor ingeniería que podemos hacer? 1136 01:02:40,370 --> 01:02:44,680 No, pero nos dice algo realmente interesante de la gente. 1137 01:02:44,680 --> 01:02:49,710 Esa cosa que usted y los tramposos roba su victoria, eso es 1138 01:02:49,710 --> 01:02:53,660 algo que está vivo, que es animan, eso es tratando de hacerte daño. 1139 01:02:53,660 --> 01:02:54,680 Tiene el estado mental. 1140 01:02:54,680 --> 01:02:55,400 Tiene la creencia. 1141 01:02:55,400 --> 01:02:57,170 Tiene la intención. 1142 01:02:57,170 --> 01:03:01,540 >> Esa cosa que entrega el juego para ti, que no lo es. 1143 01:03:01,540 --> 01:03:04,670 Eso es sólo un mal funcionamiento. 1144 01:03:04,670 --> 01:03:08,900 Esto es en muchos sentidos por qué es fácil lanzar el juego con los niños. 1145 01:03:08,900 --> 01:03:12,050 Pero si intenta engañarlos y una especie de cantar victoria 1146 01:03:12,050 --> 01:03:15,200 cuando, ya sabes, para acortar el juego, te atrapan de inmediato. 1147 01:03:15,200 --> 01:03:19,040 1148 01:03:19,040 --> 01:03:23,140 Este tipo de efectos que vemos que sale de la IA, 1149 01:03:23,140 --> 01:03:26,490 nos enseñan mucho sobre nosotros mismos. 1150 01:03:26,490 --> 01:03:28,076 >> Muy bien, eso es todo por hoy. 1151 01:03:28,076 --> 01:03:30,450 Muchas gracias a David y el equipo de producción de Harvard 1152 01:03:30,450 --> 01:03:32,350 por venir. 1153 01:03:32,350 --> 01:03:33,820 >> [APLAUSOS] 1154 01:03:33,820 --> 01:03:36,760 1155 01:03:36,760 --> 01:03:41,840 >> Nos vemos a prueba uno, y luego por una última conferencia. 1156 01:03:41,840 --> 01:03:43,025 Que tenga un buen día. 1157 01:03:43,025 --> 01:03:44,965 >> [APLAUSOS] 1158 01:03:44,965 --> 01:03:48,360 1159 01:03:48,360 --> 01:03:51,825 >> [REPRODUCCIÓN DE MÚSICA] 1160 01:03:51,825 --> 01:03:54,950 DAVID J MALAN: Bueno, probablemente necesitamos para introducir algún tipo de cifrado, 1161 01:03:54,950 --> 01:03:55,450 ¿derecho? 1162 01:03:55,450 --> 01:03:58,650 Porque entonces las cabeceras de estas peticiones HTTP serán 1163 01:03:58,650 --> 01:04:01,530 revueltos para que cualquier persona tratando de olfatear el tráfico 1164 01:04:01,530 --> 01:04:03,400 será en realidad no ser capaz de verlos. 1165 01:04:03,400 --> 01:04:05,254 ¿Cuál es la solución a este problema? 1166 01:04:05,254 --> 01:04:07,920 Bueno, tenemos que introducir en realidad cifrado en la fórmula, 1167 01:04:07,920 --> 01:04:11,010 de modo que cuando esa persona está transmitir datos desde A a B, 1168 01:04:11,010 --> 01:04:12,390 podemos send-- segura 1169 01:04:12,390 --> 01:04:14,590 >> [RISA] 1170 01:04:14,590 --> 01:04:19,530 >> La información de una manera que la adversario no puede, de hecho, verlo.