Tema 5: La Inteligencia Artificial en Juegos Rogerio Orlando Beltrán Castro Inteligencia Artificial e Ingeniería del Conocimiento SEMANA 04 Tema 5: La Inteligencia Artificial en Juegos Tema 6: Aprendizaje Supervisado Tema 5: La InteligenciaArtificial en Juegos Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 5.2. Teoría de juegos ► La teoría de juegos es un amplio campo de estudio relacionado con la toma de decisiones en entornos en los que hay múltiples jugadores. ► En particular, es el estudio de los métodos matemáticos de conflicto y cooperación entre agentes racionales deliberativos. ► La teoría de juegos surgió del estudio de equilibrios propuesto por Nash dentro del área de juegos de suma cero y, más tarde, se generalizó a un amplio espectro de áreas de conocimiento, incluyendo: economía, ciencias políticas, biología, psicología, sociología, etc. y, por supuesto, las ciencias de la computación. ► Los juegos estudiados por la teoría de juegos se definen matemáticamente en función del número de jugadores, la información que disponen, las acciones que cada jugador puede realizar y la recompensa obtenida. Estas condiciones son necesarias para determinar si, para la estrategia óptima, existe un equilibrio. Es decir, una situación en la que ningún jugador se desvíe de su estrategia sin pena de sufrir una pérdida en su puntuación. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 4 5.2. Teoría de juegos ► . Sin embargo,desde el puntode vista de la computación, existen otras características importantes: • Secuencial/simultáneo.También llamado asíncrono/síncrono, determinasi los jugadores juegan en turnos alternos o todos a la vez. Un juego de mesa tradicional es secuencial, mientras que un videojuego de disparos es simultáneo. • Suma constante. Un juego de suma constante es aquel en el que la recompensa que recibe un jugador se resta de la del otro, es decir, cada vez que un jugador gana algo, los adversarios pierden la parte proporcional. Por ejemplo, en el póker, el dinero que un jugador gana en una jugada ha sido necesariamente obtenido de las reservasiniciales de los demás jugadores, sin que la cantidad de dinero en la mesa varíe. Cuando la constante es 0, al juego se le conoce como juego de suma cero o nula. Por otro lado, en los juegos queno son de suma constante, la recompensa total tiende a aumentar cuando existe buenanegociación entrelos jugadores. • Cooperativo/no cooperativo. La cooperación ocurre cuando un conjunto de jugadores (que puede ser la totalidad de jugadores) comparten un mismo objetivo. Se asumeque la toma de decisiones es consensuada dentro de una coalición, pero la pertenencia de la coalición no tiene por qué ser definitiva ni inicialmente definida. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 5 5.2. Teoría de juegos ► . Sin embargo,desde el punto de vista de la computación, existen otras características importantes: • Simétrico/asimétrico. Un juego simétricoes un juego en el que todos los jugadores tienen idénticas acciones a su disposición y reciben idénticas recompensas. Los juegos de mesa tradicionales son simétricos, mientras que los juegos con diferentes roles tienden a ser asimétricos. • Duración finita/infinita. Juegos tales como maximizar el dinero obtenido en la bolsa no tienen necesariamente una duración limitada. En tales juegos el objetivo no es tanto ganar per se, sino encontrar una estrategia ganadora. • Discreto/continuo. Un juego discreto es aquel en donde el número de estrategias y de estados es finito, mientras que un juego continuo no está limitado por este criterio. El ajedrez es discreto, así como juegos con acciones que reciban parámetros de valores reales continuos. • Determinista/estocástico. En los juegos deterministas el resultado de una acción (y, por lo tanto, la recompensa recibida) es fijo, mientras que en los juegos estocásticos existe un elemento de aleatoriedad. El ajedrez es determinista, mientras que juegos con dados como «Risk» son estocásticos. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 6 5.2. Teoría de juegos ► En este tema nos centraremos en estudiar los algoritmos más populares para juegos clásicos adversariales: dos jugadores, información completa, recompensa infinita por victoria, secuencial, suma cero, no cooperativo, simétrico, duración finita, discreto y determinista. Ejemplos de estos juegos son el tres en raya, las damas, el Go, el ajedrez, el conecta-4, entre otros. ► Los juegos no cooperativos tienden a ser descritos de dos maneras: • De forma normal. • De forma extensiva. ► La forma normal (también conocida como estratégica) representa con una matriz n- dimensional (donde n es el número de jugadores) el producto de las estrategias de los jugadores y la recompensa que cada jugador recibe. Esta forma de representar un juego ayuda a identificar estrategias dominantes y equilibrios de Nash, pero no permite la representación de estrategias complejas compuestas por múltiples acciones simples. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 5.2. Teoría de juegos ► . Un ejemplo de juego de suma no nula simultáneo frecuentemente representado en forma normal es el dilema del prisionero. En el dilema del prisionero el jugador puede elegir en cada iteración si traiciona al otro jugador o si niega su implicación. El tiempo de condena que cada jugador obtiene depende de su estrategia y de la estrategia elegida por el adversario. ► La siguiente matriz representa en forma normal el producto de las estrategias y las recompensas (en este caso el inverso de las recompensas) del juego: ► En este juego, lo más beneficioso para un jugador es delatar al adversario cuando este niega la implicación del mismo. Sin embargo, una estrategia avariciosa como delatar siempre llevará al caso inferior derecho, que corresponde con un equilibrio de Nash inferior al del caso superior izquierdo, donde ambos prisioneros niegan que el otro estuviera implicado. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 8 5.2. Teoría de juegos ► Los juegos en los cuales la recompensa se obtiene después de una secuencia de acciones se suelen representar de forma extensiva. Esta formalización del juego representa explícitamente las decisiones de cada jugador en cada punto de decisión, mostrando las recompensas al final de la secuencia de acciones. ► El conjunto de las secuencias forma un árbol en el que los nodos de un nivel corresponden a un mismo jugador, perteneciendo niveles alternos a jugadores alternos. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 9 5.2. Teoría de juegos ► El siguiente es el árbol que representa el dilema del prisionero (aunque las acciones aparecen como una secuencia, los jugadores las eligen de forma simultánea): ► Esta forma de representar los juegos es análoga al árbol de búsqueda de los problemas modelados como problemas de búsqueda. Por lo tanto, los algoritmos que se verán a continuación están basados en este concepto, en el que los niveles alternos representan a jugadores diferentes y al final de cada camino existe una recompensa. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 10 5.2. Teoría de juegos ► Aunque las descripciones que hemos visto asumen que es posible representar todas las posibles combinaciones de estrategias, en la práctica esto no es así. En juegos que todavía no han sido resueltos por jugadores óptimos, como el ajedrez y el go, es imposible representar todos los estados generados por todas las combinaciones de estrategias (y aún menos cuando el tiempo por jugador está limitado). ► Por ello, cuando el árbol de búsqueda no se puede expandir más, en los nodos hoja en vez de tener la recompensa conocida se usa una función de evaluación que estima la recompensa de cada jugador. Una posible función de evaluación para las damas (en el ajedrez) es dar un punto por ficha normal y diez por dama, por ejemplo. En este caso se devolvería la resta entre la estimación de la recompensa del jugador A y la del jugador B. De esta forma, posiciones con valores positivos se entenderían como favorables al jugador A y posiciones con valores negativos se entenderían como favorables al jugador B, siendo 0 una situación neutra como corresponde a los juegos de suma cero. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 11 5.3. Minimax y poda Alfa-Beta ► Partiendo de una representación extensiva de un juego, un algoritmo de búsqueda puede ser usado para encontrar una estrategia adecuada. Sin embargo, hay que tener en cuenta las posibles estrategias del adversario. Ya que es imposible prever el comportamiento del adversario, todas las respuestas deben, en principio, ser consideradas. Esto hace que un algoritmo de búsqueda convencional, que elija entre las estrategias del primer jugador explorando de forma extensiva todas las posibles respuestas, sea poco adecuado. ► Como alternativa intermedia se propuso el algoritmo Minimax. ► Es un algoritmo de búsqueda de profundidad acotado y diseñado originalmente para juegos secuenciales, deterministas, con información completa, discretos, de suma cero y de dos jugadores enfrentados entre sí. ► Minimax hace dos asunciones fundamentales: • La primera es que no se podrá explorar el árbol de búsqueda completamente, por lo que el algoritmo solo buscará teniendo en cuenta un número de jugadas limitadas (lo que limita la profundidad del árbol de búsqueda). • La segunda es que siempre se asume que el rival jugará la jugada óptima, aunque en la práctica puede que no sea así. Dada esta segunda asunción y si Minimax es capaz de explorar el árbol de búsqueda completo, la estrategia óptima corresponderá con un equilibrio de Nash. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 12 5.3. Minimax y poda Alfa-Beta ► Los valores de recompensa que se manejan van de +∞a -∞, representando la victoria del primer jugador y la victoria del segundo jugador, respectivamente. En los nodos hoja existen dos posibilidades: si el nodo es terminal, es decir, es un estado en donde la partida finaliza, se usa su valor (+∞, 0 o -∞). Si no es terminal, el valor del nodo es la función de evaluación, en donde valores positivos significan una ventaja del primer jugador y valores negativos una ventaja del segundo jugador. Así pues, la estrategia del primer jugador es maximizar la recompensa, mientras que la del segundo jugador es minimizarla. De hecho, de esta particularidad se deriva el nombre del algoritmo. ► El árbol de búsqueda de Minimax se explora en profundidad hasta dar con un nodo terminal o alcanzar el límite de jugadas. Dado que la decisión ha de tomarse en el primer nodo (la jugada que elige el jugador es una de las ramas que parten del primer nodo), el valor de la recompensa se propaga hacia arriba siguiendo el camino actual. La forma en la que se refleja el comportamiento del algoritmo Minimax es la forma en la que la recompensa se propaga. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 13 5.3. Minimax y poda Alfa-Beta ► El árbol se compone de dos nodos, nodos en los que juega el primer jugador y nodos en los que juega el segundo. En los nodos en los que juega el primer jugador, se elige la opción que maximiza la recompensa entre todas las ramas exploradas hasta ese punto. En los nodos en los que juega el segundo jugador, se elige la opción que minimiza la recompensa entre todas las ramas exploradas hasta ese punto. Por ejemplo, en un nodo del jugador A se han explorado dos ramas, con una recompensa que se ha propagado desde los nodos hoja de 4 y 5, respectivamente. ► Así pues, la recompensa del nodo en ese momento es 5, el máximo entre todas las opciones del jugador A para ese nodo. Si se explora otra rama de ese nodo y se propaga una recompensa menor o igual que 5, nada cambia. Si la recompensa es mayor, entonces ese nodo toma ese valor, propagándolo hacia arriba si se han explorado todas las opciones para poder actualizar, si es necesario, los nodos ancestros. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 14 Minimax / Poda alfa-beta Búsqueda en juegos [7 mi] Considerar el árbol de juego mostrado abajo. Asumir que el nodo de arriba es un nodo max. Las etiquetas de los arcos son los movimientos. Los números en el nivel de abajo son los valores heurísticos de esas posiciones. • Completa el árbol de juego utilizando una búsqueda mini-max • Indica las ramas podadas con una poda alfa-beta con una búsqueda de izquierda a derecha. Indica los valores que van tomando alfa y beta en cada nodo • Reordena las hojas de los nodos de forma que resultara en el máximo número de nodos podados en una poda alfa-beta de izquierda a derecha (indica también las ramas podadas). Reordena los hijos pero preserva las relaciones padre-hijo. max min 3 7 8 10 1 0 4 8 2 7 5 Minimax /Poda Alfa-beta max 4 min 3 7 8 10 4 8 2 7 5 4 3 3 7 10 4 3 7 4 8 10 4 min 2 8 2 7 5 min <=2 8 2 7 5 4 max 4 8 3 max 4 10 4 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento max <=3 8 3 7 min <=2 8 16 2 7 5 Minimax y Poda alfa-beta • Dado el árbol de la figura 1. Señala las estrategia ganadoras, si las hubiera, para un jugador MAX y para un jugador MIN. Se considera que un nodo terminal es ganador para MAX si su valor es superior o igual a 6. Contrariamente, es ganador para MIN si es inferior a 6. MAX 4 6 7 6 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 17 4 Minimax y Poda alfa-beta • Dado el árbol de la figura – Señala las estrategia ganadora, si las hubiera, para un jugador MAX y para un jugador MIN. Se considera que un nodo terminal es ganador para MAX si su valor es superior o igual a 6. Contrariamente, es ganador para MIN si es inferior a 6. MAX tiene dos estrategias ganadoras => MIN no. MIN 6 MAX MIN 4 6 7 4 MIN 7 8 6 4 6 7 MAX 6 1 8 8 9 5 1 7 6 7 8 8 6 MAX 8 8 4 4 Minimax y Poda alfa-beta • Dado el árbol de la figura – Señala las estrategia ganadora, si el nodo inicial fuera MIN. Se considera que un nodo terminal es ganador para MAX si su valor es superior o igual a 6. Contrariamente, es ganador para MIN si es inferior a 6. MIN no tiene estrategia ganadora MAX MIN MAX 4 6 6 6 7 7 8 6 MAX 5 6 6 MIN 6 5 9 8 9 5 1 6 6 7 8 6 4 MIN 8 6 8 4 Minimax y Poda alfa-beta • Dado el árbol de la figura 2. Recorre el árbol de izquierda a derecha, siguiendo el método de poda alfa-beta, indicando claramente (tachando con una x) los nodo en que se produce poda. Encuadra /marca los nodos terminales que no ha sido necesario recorrer. Señala el valor de la decisión más acertada para MAX. MAX 4 6 7 6 8 9 5 1 6 7 8 6 8 4 Marcado de una Poda alfa-beta • Datos a marcar – Los valores de alfa y beta con los que se hace cada llamada recursiva desde cada nodo. Convenio – Si las llamadas se hacen desde un nodo MAX, alfa (a) será un valor que puede ir aumentando, hasta igualar o superar a beta (b), en cuyo caso se producirá una poda alfa. Estas llamadas las marcaremos con (a=valor1, valor2), para reslatar que es el cambio de a el que determina el que haya poda o no. – Si las llamadas se hacen desde un nodo MIN, beta(b) será un valor que puede ir disminuyendo, hasta igualar o quedar por debajo de alfa (a), en cuyo caso se producirá una poda beta. Estas llamadas las marcaremos con (valor1, b=valor2). – EL segundo dato relacionado con el nodo a marcar, es el resultado que se devuelve al nodo padre. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 21 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN MAX (-∞,b= ∞) (-∞,b= 4) 4 4 6 6 7 6 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 22 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN MAX 4 (-∞,b= ∞) 4 4 (a=4, ∞) (-∞,b= 4) 6 6 7 6 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 23 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN MAX 4 (-∞,b= ∞) 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 6 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 24 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 (-∞,b= ∞) 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 MAX (4, b=7) 6 6 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 25 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 (a=4, ∞) MAX 6 4 (-∞,b= ∞) 6 (4, b=∞) (-∞,b= 4) 7 6 6 7 (4, b=7) 6 6 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 26 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 6 (a=4, ∞) (a=-∞, 6) MAX 6 4 (-∞,b= ∞) MIN (-∞, b= 6) (4, b=∞) (-∞,b= 4) 7 6 6 7 (4, b=7) (-∞, b=6) 6 6 8 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 27 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 6 (a=4, ∞) (a=-∞, 6) MAX 6 4 (-∞,b= ∞) MIN (-∞, b= 6) (4, b=∞) (-∞,b= 4) 7 6 6 7 (4, b=7) (-∞, b=6) (-∞, b=6) 6 6 8 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 28 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 6 (a=4, ∞) (a=-∞, 6) MAX 6 4 (-∞,b= ∞) MIN (-∞, b= 6) (4, b=∞) (-∞,b= 4) 7 6 6 7 (4, b=7) (-∞, b=6) (-∞, b=6) 6 6 8 8 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 29 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 6 (a=4, ∞) (a=-∞, 6) 6 4 (4, b=∞) (-∞,b= 4) 7 6 6 MIN (-∞, b= 6) 7 MAX 6 (4, b=7) (-∞, b=6) (-∞, b=6) 6 6 8 8 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 30 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 6 x (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 Poda a: a(=6)=6 (a=-∞, 6) 6 4 MIN (-∞, b= 6) MAX 6 (4, b=7) (-∞, b=6) (-∞, b=6) 6 6 8 8 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 31 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (a=-∞, 6) 6 4 MIN (-∞, b= 6) MAX 6 (4, b=7) (-∞, b=6) (-∞, b=6) 6 6 8 8 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 32 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 (-∞, b= 6) 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 MIN MAX 6 (4, b=7) (-∞, b=6) (-∞, b=6) (a=6, ∞) 6 6 8 8 9 9 5 1 6 7 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 8 6 8 33 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 (-∞, b= 6) 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 MIN MAX 6 (4, b=7) (-∞, b=6) (-∞, b=6) (a=6, ∞) 6 6 6 8 8 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 34 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 MIN (-∞, b= 6) MAX 6 (4, b=7) (-∞, b=6) (-∞, b=6) (a=6, ∞) (a=6, ∞) 6 6 6 8 8 7 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 35 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 (-∞, b= 6) 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 MIN 7 MAX 6 (4, b=7) (-∞, b=6) (-∞, b=6) (a=6, ∞) (a=6, ∞) 6 6 6 8 8 7 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 36 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 MIN (-∞, b= 6) 7 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 MAX (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) 8 (6, b=7) 7 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 37 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 MIN (-∞, b= 6) (6, b=7) 7 MAX 6 (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) (-∞, b=6) (-∞, b=6) 6 6 6 8 8 8 7 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 38 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 MIN (-∞, b= 6) (6, b=7) 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 MAX (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) 8 Poda a: a(=8)>7 8 7 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 39 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN (-∞,b= ∞) 4 4 (-∞, b= 6) 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 MIN (6, b=7) 7 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 8 8 MAX (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) 6 Poda a: a(=8)>7 8 7 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 40 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 (-∞,b= ∞) 6 MIN 7 (-∞, b= 6) (6, b=7) 7 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 MAX (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) 8 Poda a: a(=8)>7 8 7 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 41 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=7, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 (-∞,b= ∞) (-∞, b= 6) 6 MIN 7 7 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 8 Poda a: a(=8)>7 (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) (7,b= ∞) (6, b=7) MAX (a=7, ∞) 8 7 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 42 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=7, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 (-∞,b= ∞) 6 MIN 7 (-∞, b= 6) 7 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 8 Poda a: a(=8)>7 (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) (7,b= ∞) (6, b=7) MAX (a=7, ∞) 8 8 7 8 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 43 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=7, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 (-∞,b= ∞) (-∞, b= 6) 6 MIN 7 7 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 8 Poda a: a(=8)>7 (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) (7,b= ∞) (6, b=7) 8 MAX (a=7, ∞) (a=7, 8) 8 8 7 (7,b= 8) 9 9 5 1 6 7 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 8 6 8 44 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=7, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 (-∞,b= ∞) 6 MIN 7 (-∞, b= 6) 7 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 8 Poda a: a(=8)>7 (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) (7,b= ∞) (6, b=7) 8 MAX (a=7, ∞) (a=7, 8) 8 8 7 (7,b= 8) 4 9 9 5 1 6 7 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 8 6 8 45 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a MAX (a=-∞, ∞) (a=7, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 (6, b=∞) (a=-∞, 6) 6 4 (-∞,b= ∞) 6 MIN 7 (-∞, b= 6) 7 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 8 Poda a: a(=8)>7 (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) (7,b= ∞) (6, b=7) 7 MAX (a=7, ∞) (a=7, 8) 8 8 7 8 (7,b= 8) 4 9 9 5 1 6 7 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 8 6 8 46 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a 7 MAX (a=-∞, ∞) (a=7, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 7 (6, b=∞) (a=-∞, 6) 6 4 (-∞,b= ∞) 6 x 6 6 6 6 8 8 Poda a: a(=8)>7 (a=6, 7) (a=6, ∞) (a=6, ∞) (-∞, b=6) (-∞, b=6) (7,b= ∞) (6, b=7) 7 7 (4, b=7) MIN 7 7 (-∞, b= 6) 7 MAX (a=7, ∞) (a=7, 8) 8 8 7 8 (7,b= 8) 4 9 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 47 4 Marcado de una Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a 7 MAX (a=-∞, ∞) ¡Cuidado! (a=7, ∞) (a=6, ∞) MIN 6 (-∞, b= ∞) MAX (a=-∞, ∞) MIN 4 4 6 (a=4, ∞) (4, b=∞) (-∞,b= 4) 7 6 6 7 x 6 Poda a: a(=6)=6 7 (6, b=∞) (a=-∞, 6) 6 4 (-∞,b= ∞) (-∞, b= 6) (6, b=7) 7 7 x 6 (-∞, b=6) (-∞, b=6) 6 6 6 8 8 8 (7,b= 8) 7 MAX (a=7, ∞) (a=7, 8) 8 8 7 (7,b= ∞) Poda a: a(=8)>7 (a=6, 7) (a=6, ∞) (a=6, ∞) (4, b=7) MIN 7 7 4 9 9 5 1 6 7 8 6 8 4 Valor con Poda alfa-beta • (a=valor1, valor2) , alfa puede crecer y marca poda cuando se cruza con b • (valor1, b=valor2) , beta puede decrecer y marca poda cuando se cruza con a 7 MIN MAX 6 7 7 8 x 6 4 4 6 6 MIN ¡Cuidado! MAX 6 Poda a: a(=6)=6 8 8 7 9 5 1 6 7 8 x 8 MIN 4 Poda a: a(=8)>7 8 6 8 MAX 4 4 Marcado de una Poda alfa-beta • Poda del árbol comenzando por MIN MIN MAX MAX MIN MAX 4 MIN 6 7 6 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 8 6 8 50 4 Marcado de una Poda alfa-beta • Poda del árbol comenzando por MIN 7 MIN (-∞,b= ∞) MAX MIN (-∞, b= ∞) MAX 4 4 6 6 (a=-∞, ∞) 6 x (6,b= ∞) 7 (a=6,∞) 8 8 6 6 9 5 5 6 1 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento MIN (-∞,b= 6) (a=8,∞) (-∞, b=6) (-∞, b=6) (a=6, 9) (a=6, 9) 9 x MAX 6 (a=-∞,6) 6 9 6 7 (6,b= 9) 7 6 Poda a: a(=6)=6 (a=-∞, 6) 6 a(=7)>6 (a=-∞, 6) (a=4,b= ∞) 6 x 6 (a=6, ∞) (-∞, b=6) Poda a: Poda a: a(=6)=6 (-∞,b= 6) 6 (a=-∞, ∞) (-∞,b= 6) 8 7 7 8 6 51 8 4 Valor con Poda alfa-beta • Poda del árbol comenzando por MIN 6 MAX MIN Poda a: a(=6)=6 6 6 x Poda a: a(=6)=6 6 MIN MAX 6 7 x 4 6 7 8 5 Poda a: a(=7)>6 5 9 6 x MAX 8 9 5 1 6 Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 7 MIN 8 6 8 6 52 8 4 5.4. Simulación: Montecarlo ► Minimax recorre el árbol de búsqueda de forma exhaustiva hasta cierta profundidad, como corresponde a una búsqueda en anchura. Sin embargo, esto impone una severa restricción en la profundidad del mismo. Para poder extender el árbol de búsqueda más allá sin tener que recorrer las ramas que no sean relevantes, existe una alternativa: explorar el árbol de búsqueda de forma probabilística. ► La forma de explorar un árbol de búsqueda probabilísticamente es mediante el método de Montecarlo. ► Este consiste en recrear múltiples simulaciones de partidas de forma total o parcial desde el punto de decisión, y, a partir de lo observado, elegir la rama más prometedora. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 53 5.4. Simulación: Montecarlo ► A continuación, presentamos un ejemplo sencillo: estamos creando un jugador automático de tute y decidimos usar Montecarlo. En el tiempo disponible simulamos tantas partidas como podamos, eligiendo las jugadas al azar. Las jugadas que podemos hacer al azar son jugar las cartas que tenemos en la mano y las jugadas de los adversarios son cualquier carta que no tengamos y que no hayamos visto hasta entonces. Al final del proceso se comprueba qué jugada de las posibles en el punto de decisión ha sido la que ha dado mejor resultado. Esa jugada se considera la más prometedora. ► El método de Montecarlo no solo se aplica en juegos, ya que identifica estadísticamente distribuciones sin necesidad de conocer el modelo de un fenómeno. También es apto para aquellos problemas que por su complejidad están fuera del alcance de otras técnicas analíticas por la falta de determinismo o por su tamaño. Ejemplos de aplicación son la optimización numérica, la simulación de procesos físicos, el análisis estadístico de las tendencias del mercado, etc. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 54 5.4. Simulación: Montecarlo ► El métododeMontecarlosueleconstardecuatropasos fundamentales: • Definir las entradas del problema. • Simular la entrada al problema en función de una distribución de probabilidades. • Obtener la salida del sistema en función de las entradas simuladas. • Agregar los resultados sobre un número estadísticamente significativo de iteraciones. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 55 CONCLUSIÓN ► Elegir Minimax o MCTS depende de varios factores. Minimax es más robusto cuando hay movimientos que nos pueden costar la partida, ya que evita que caigamos en trampas que estén a baja profundidad gracias a su exploración exhaustiva. Un ejemplo es el ajedrez, en el que perder una pieza significa perder la partida contra un oponente capaz. ► Por el contrario, cuando lo que prima es una estrategia a largo plazo, MCTS tiende a ser mejor. Por ejemplo, en el Go un grave error se puede solventar jugando sólidamente el resto de la partida, por lo que una estrategia a largo plazo suele ser más efectiva que contemplar todas las opciones con una profundidad limitada. ► Aparte de los aspectos tácticos del juego, MCTS es más flexible y, por lo tanto, válido en un mayor número de juegos. Por ejemplo, si hay probabilidades, la simulación no se ve afectada. Por otro lado, MCTS no necesita una función de evaluación, por lo que no hace falta un experto para crear un jugador automático. Aun así, existen modificaciones y generalizaciones tanto de Minimax como de MCTS que son aplicables a juegos más expresivos, por lo que elegir un algoritmo u otro es una cuestión empírica en la mayoría de los casos. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 56 Tema 6: Aprendizaje Supervisado Rogerio Orlando Beltrán Castro Inteligencia Artificial e Ingeniería del Conocimiento Tema 6:Aprendizaje Supervisado Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento Tema 6:Aprendizaje Supervisado ► Una de las características más importante de la Inteligencia Artificial, es su capacidad de aprender automáticamente.En este artículo vamos a explicar cómo aprende la InteligenciaArtificial y los tipos de aprendizaje automático que existen: supervisado, no-supervisado, semi-supervisado y por refuerzo. ► Para hacerlo más interesante, vamos a empezar con un ejemplo. Imaginaos que tenemos que escribir un programa para detectar si un correo electrónico es spam o no. Podríamos intentar eliminar los correos que tuviesen algunas palabras. Las palabras las pondríamos en un fichero para que fuese más fácil editarlo, claro está. Pero habría dos problemas: • Sería casi imposible que se nos ocurran todas las palabras (o combinaciones de palabras) que poner en el fichero. Así que seguiríamos recibiendo spam. • Probablemente algunos correos serían clasificados como spam sin realmente serlo. Así que perderíamos mensajes. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 59 Tema 6:Aprendizaje Supervisado ► Podríamos mejorar nuestro fichero, añadir otro fichero diciendo que otras combinaciones de palabras están autorizadas, etc. Pero requeriría de mucho trabajo por nuestra parte, y la gente que envía correos basura, acabaría encontrando la forma de saltarse nuestras reglas. ► Usando técnicas de Inteligencia Artificial, y en particular usando el Machine Learning podemos ahorrarnos este trabajo. Le podemos dar a la IA una lista de correos deseados y otra de correos basura. Esta es todo la información que la Inteligencia Artificial necesita para aprender la diferencia. No sólo nos ahorrará el trabajo de hacerlo a nosotros; además los resultados serán mejores de lo que nosotros podríamos haber hecho. ► La forma de aprender de la inteligencia artificial depende del tipo de aprendizaje automático (machine learning) que estemos usando. Podemos distinguir 4 tipos de machine learning según la supervisión que necesiten: supervisado, no supervisado, semi-supervisado y por refuerzo. Veamos la diferencia. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 60 Tema 6:Aprendizaje Supervisado ► El aprendizaje supervisado, recibe el nombre de «supervisado» porque necesita que siempre le enseñemos la respuesta correcta. Por ejemplo, para resolver el problema de clasificar correos electrónicos como spam o no spam, necesita que le demos ejemplos históricos correctamente clasificados. En otras palabras, para cada caso de ejemplo que le demos, necesita saber si el correo era spam o no. ► Sabiendo cuál era la respuesta correcta, la Inteligencia Artificial aprende de sus propios errores. Muchos algoritmos supervisados empiezan dando respuestas aleatorias y después van mejorando a medida que aprenden de sus errores. ► El aprendizaje supervisado es muy útil cuando queremos que la Inteligencia Artificial realice una tarea en el futuro. Esta característica hace a este tipo de aprendizaje automático muy atractivo para muchos negocios. En el entorno empresarial, el aprendizaje supervisado también se conoce como «análisis predictivo«.} Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 61 Proceso del aprendizaje supervisado 1. Recopilar datos históricos, incluyendo la respuesta correcta 2. Construir un modelo de machine learning con esos datos 3. Evaluar el modelo, para entender qué rendimiento podemos esperar de él 4. Usar este modelo con datos nuevos. Por ejemplo, cuando llegue un correo electrónico nuevo Este proceso está un poco simplificado. En otro artículo lo extenderé, pero da una idea de la forma de pensar acerca del aprendizaje supervisado. Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 62 Ejemplos de aprendizaje supervisado ► Clasificar correos electrónicos en genuinos o spam ► Predecir por cuánto dinero se va a vender una propiedad inmobiliaria ► Calcular la probabilidad de que hagas click en un anuncio ► Decidir qué hotel enseñarte primero en una web de hoteles ► Estimar si el cliente de un banco será capaz de pagar un crédito ► Recomendar si es mejor comprar ahora tu vuelo o es mejor esperar ► El traductor de Google ► Detección de objetos en una imagen ► Reconocimiento y síntesis de voz ► Estimar qué edad tienes a partir de una foto ► Predecir qué clientes van a cancelar su contrato con su compañía telefónica ► Estimar cuántas visitas va a tener un artículo en la web ► Generación de música por ordenador Introducción a la Inteligencia Artificial e Ingeniería del Conocimiento 63 muchas gracias Esta nueva plantilla se ajusta al nuevo logo de la fundación