E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y Ciencias de la Computación RELACIÓN DE PROBLEMAS. TEMA IV. PROBLEMAS DE JUEGOS. 1. Dos jugadores juegan en un tablero cuadrado de NxN casillas, siendo N una potencia de 2. En cada casilla puede estar escrito un 1 ó un 0. Los contenidos de las casillas vienen dados al comienzo del juego y los jugadores no los pueden modificar. Las jugadas del primer jugador consisten en dividir verticalmente el tablero en dos partes iguales, y quitar bien la parte derecha, bien la parte izquierda. Las jugadas del segundo jugador consisten en dividir horizontalmente el tablero en dos partes iguales, y quitar bien la parte superior, bien la parte inferior. Al final quedará una sola casilla: si tiene un 1, gana el primer jugador: si tiene un 0, gana el segundo. Se pide: a) definir una función de evaluación estática e(j) sencilla. b) aplicar el algoritmo α-β para calcular el valor minimax de la posición 1 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 profundizando en la búsqueda 2 posiciones más del mismo jugador. c) calcular el porcentaje de reducción en la generación de nodos obtenido en relación con el árbol completo. Será el mismo si generamos los sucesores en otro orden? 2. Consideremos el siguiente árbol de juego: A B C D E F 0 5 7 3 1 x 2 3 6 1 Los valores de la función de evaluación estática en los nodos hoja son los indicados. Se pide: a) suponiendo x=5, hallar el valor minimax V del nodo raíz. b) calcular V(x), - x c) calcular N(x), siendo N(x) el número de nodos hoja que habría que generar para calcular V, suponiendo que se aplica la poda α β y que los sucesores se generan siempre de izquierda a derecha. 3. Sea un árbol de juego binario de profundidad 2K (es decir, en cada rama hay K+1 nodos y K nodos ). Se sabe que los valores devueltos por la función de evaluación estática e(j) son exclusivamente 0 y 1. Se pide: a) considérese K=2. Supóngase que los valores e(j) en las hojas J son, de izquierda a derecha, 1011 0101 0011 1101. Calcular el valor minimax en la raíz V, así como el número de nodos generados si se ha aplicado la poda α β. Problemas de I.A.I.C. 2001/2002 1 Dpto.Leng.Ciencias Computación, Univ. Málaga
b) considérese K=1. Supóngase que e(j) toma aleatoriamente y con igual probabilidad los valores 0 y 1, independientemente de los valores vecinos. Calcular la media de V, m(v). c) generalizar b) para cualquier K, hallando una fórmula de recurrencia que dé m(v) para un árbol de profundidad K supuesto conocido para un árbol de profundidad K-1. d) A qué valor tiende m(v) cuando K tiende a infinito? 4. Consideremos un juego bipersonal en el que cada jugador tiene en cada posición 2 jugadas posibles. Se desea estudiar mediante una función de evaluación estática e(j) y la poda α β un árbol de juego de profundidad 2, que podemos esquematizar así: A B C D E F G H I J K L M N Ñ Llamemos N = {H, I,..., N, Ñ}. Supondremos que ninguna posición de N es final. Se pide: a) determinar cuántos y cuáles nodos de N se generarán en el caso más favorable de la poda, y cuántos en el más desfavorable. b) calcular el número medio de nodos generados, suponiendo que los valores de e(j) están distribuidos aleatoriamente de manera uniforme en [ 1,1]. 5. El procedimiento de propagación del producto se define como sigue: 1) Se supone que e(j) toma valores en [0,1]. 2) Si J es final y ganadora, e(j)=1; si perdedora, e(j)=0. 3) Si J es, V(J) = 1 - Π (1 - V(Ji)) 4) Si J es, V(J) = Π V(Ji) donde los Ji son los sucesores de J. Se pide: a) demostrar que este procedimiento es correcto para valores de nodos terminales 0 ó 1. b) discutir la siguiente proposición: si los valores e(j) en las hojas se interpretan como probabilidades de que J sea ganadora, y se supone que son independientes, entonces las V(J) son también las probabilidades de que J sea ganadora. c) aplicar el procedimiento al juego del ej. 1. 6. Una forma de calcular la función V(J) en un árbol de juego puede ser la siguiente: 1) Se supone que e(j) toma valores en [0,1]. 2) Si J es final y ganadora, e(j)=1; si perdedora, e(j)=0. 3) Si un nodo tiene un solo sucesor J, entonces V(J) es V(J ). En otro caso, 4) Si J es, V(J) = a maxv(ji) + (1-a) segmaxv(ji) 5) Si J es, V(J) = b minv(ji) + (1-b) segminv(ji) donde los Ji son los sucesores de J, y a,b son constantes 0 a,b 1. La función segmax (A) calcula el máximo valor de la cesta A obtenida excluyendo de A una aparición del valor máximo de A, y análogamente segmin(a). Por ejemplo, segmax(1,4,5,2,5)=5; segmin(1,4,5,2,5)=2. Se pide: a) demostrar que el minimax es un caso particular de este procedimiento. Problemas de I.A.I.C. 2001/2002 2 Dpto.Leng.Ciencias Computación, Univ. Málaga
b) estudiar si este procedimiento es correcto para valores de nodos hoja e(j) iguales a 0 ó 1, es decir, si dado un árbol completo de juego, el procedimiento da valores V(J)=1 para nodos J ganadores y V(J)=0 para nodos perdedores. c) consideremos un juego binario analizado por este procedimiento. Sea un árbol de juego de profundidad n con raíz en J y nodos hojas J1,..., Jk, ninguno posición final. Demostrar que existen dos constantes K1, K2 independientes de los valores e(ji) tales que 0 K1 K2 1 K1 e(ji) V(J ) K2 e(ji) 7. Consideremos el siguiente árbol de juego: A B C D E F G 2-1 3 0 6 4 X 2 X 2 Y Z 3 Los valores de la función de evaluación estática en los nodos hoja son los indicados. Se pide: a) Calcular la valoración minimax del nodo raíz V(x,y), siendo - x,y + y z=min(x,y) b) Calcular N(x,y), siendo N(x,y) el número de nodos hoja que habría que generar para calcular V, suponiendo que se aplica la poda α-β y que los sucesores se generan siempre de izquierda a derecha. 8. Considérese el siguiente juego bipersonal de suma cero con información perfecta. Se dispone de un tablero 3 3 análogo al del 3-en-raya pero dispuesto verticalmente. Inicialmente el tablero está vacío, y dos jugadores y se turnan para introducir fichas en el tablero. utiliza fichas blancas y fichas negras. Cada uno dispone de 5 fichas. Gana el jugador que consiga hacer primero "3 en raya" (en diagonal, horizontal o vertical). Columna 1 Columna 2 Columna 3 La forma de introducir las fichas es por la parte superior de cada columna. Las fichas caen entonces hasta llegar al fondo de la columna o detenerse sobre la última ficha que se introdujo previamente en dicha columna. No pueden introducirse en total más de 3 fichas en cada columna. Por ejemplo, la siguiente secuencia de movimientos produciría los siguientes tableros partiendo del tablero vacío: 1) en la columna 1 2) en la columa 1 Problemas de I.A.I.C. 2001/2002 3 Dpto.Leng.Ciencias Computación, Univ. Málaga
3) en la columna 3 4) en la columna 2 a) Plantear el problema de encontrar una estrategia ganadora para como una búsqueda en un hipergrafo. b) Plantear el problema de encontrar la mejor jugada inmediata para como una búsqueda en un grafo. c) Sea B n el número de filas, columnas o diagonales del tablero que contienen exactamente n piezas blancas y ninguna negra. Análogamente N n será el número de filas, columnas o diagonales del tablero que continene exactamente n piezas negras y ninguna blanca. Considérese la siguiente función de evaluación: e( n) = (3B 2 + B ) (3N 1 2 + N ) 1 si n es final y ganadora para si n es final y ganadora para en otro caso Utilizar el procedimiento ALFA-BETA para calcular el mejor movimiento para si se explora el árbol del juego hasta profundidad 3 (suponer que la raiz tiene profundidad cero) partiendo del siguiente tablero: Mostrar el árbol generado señalando aquellos puntos donde se produce poda y por qué. Suponer que se prueban los movimientos de cada jugador en el siguiente orden: primero en la columna 1 (si es posible), luego en la columna 2 (si es posible) y luego en la columna 3 (si es posible). 9. Considérese el siguiente juego bipersonal de suma cero con información perfecta. Se dispone de un tablero 3 3 análogo al del 3-en-raya. Inicialmente el tablero contiene tres fichas blancas y tres negras dispuestas como en la figura. utiliza fichas blancas y fichas negras. Columna 1 Columna 2 Columna 3 Avance de Avance de comienza siempre el juego. Cada jugador mueve en su turno una única ficha. Los movimientos posibles son los de un peón de ajedrez, y vienen descritos por las siguientes reglas: Avanzar una posición en la misma columna (según el sentido indicado en las flechas de la figura anterior). Sólo es posible cuando la casilla de destino está vacía. Comer un ficha contraria. Este movimiento se realiza avanzando una posición en diagonal (a derecha o a izquierda) hasta una cas illa que necesariamente debe estar ocupada por una ficha del oponente. Como resultado de este movimiento la ficha contraria es eliminada del tablero. Por ejemplo, la siguiente secuencia muestra como avanza el peón central y se lo come: (1) (2) (3) Uno de los jugadores gana cuando se cumple alguna de las siguientes condiciones: 1. Uno de sus peones alcanza el extremo opuesto del tablero. Por ejemplo: Problemas de I.A.I.C. 2001/2002 4 Dpto.Leng.Ciencias Computación, Univ. Málaga
Posición ganadora para Posición ganadora para 2. Todas las fichas del oponente han sido eliminadas del tablero. 3. Le toca mover al oponente, pero ninguna de sus fichas puede realizar un movimiento válido. Sea NB el nº de fichas blancas en el tablero, NN el nº de fichas negras en el tablero, LB el nº de fichas blancas que tienen la columna libre para llegar al extremo opuesto, y LN el nº de fichas negras que tienen la columna libre para llegar al extremo opuesto. Considérese la siguiente función de evaluación: e( n) = ( NB NN) + ( LB LN) si n es final y ganadora para si n es final y ganadora para en otro caso a) Utilizar el procedimiento ALFA-BETA para calcular el mejor movimiento para si se explora el árbol del juego hasta profundidad 4 (suponer que la raíz tiene profundidad cero) partiendo del tablero inicial. Razonar cuidadosamente para cada nodo si es necesario continuar la búsqueda al actualizar los valores de ALFA y BETA y mostrar el árbol generado señalando aquellos puntos donde se produce poda y por qué. Suponer que se prueban los movimientos de cada jugador en el siguiente orden: primero la ficha en la columna 1 (si es posible), luego en la columna 2 (si es posible) y luego en la column a 3 (si es posible). Si es posible avanzar y comer con la misma ficha, primero se prueba el movimiento de comer y luego el de avanzar. NOTA: El espacio de búsqueda puede simplificarse notablemente eliminando las simetrías. Problemas de I.A.I.C. 2001/2002 5 Dpto.Leng.Ciencias Computación, Univ. Málaga