APLICACIÓN DEL ALGORITMO PODA ALPHA

APLICACIÓN DEL ALGORITMO PODA ALPHA-BETA PARA LA IMPLEMENTACION DEL JUEGO “AJEDREZ”

Jorge Edilberto Alvarado Valderrama, Lesly Rodríguez Pinillos
jorgealvarado@seccperu.org, leslyrp@hotmail.com

Universidad Nacional de Trujillo Facultad de Ciencias Físicas y Matemáticas Escuela Académico Profesional de Informática
Resumen: El siguiente trabajo de investigación, tiene como propósito mostrar la implementación de juegos basados en computadoras, aplicando el campo de la Inteligencia Artificial, mediante la implementación del algoritmo Poda Apha-Beta. Para mostrar la aplicación de un juego de dos adversarios, hemos seleccionado el juego del “Ajedrez”, que tiene un alto grado de complejidad computacional, el cual describiremos las técnicas usadas para implementarlo. Palabras Claves: Inteligencia Artificial, Teoría de Juegos, MiniMax, Poda Alpha-Beta, Ajedrez. 1. INTRODUCCION Los juegos han sido estudiados a lo largo de la historia formulándose incluso modelos matemáticos que permitiesen desarrollarlos. En un principio, estos juegos fueron estudiados por una rama de la ciencia denominada Investigación Operativa (IO), la cual proporcionaba técnicas que solo podrían ser aplicables si existía un procedimiento finito [1]. Con el surgimiento de la Inteligencia Artificial se crean nuevos algoritmos de búsquedas que permiten desarrollar soluciones dentro de procedimientos no finitos. Uno de estos algoritmos es el algoritmo de Poda Alpha-Beta que es muy usado en la teoría de Juegos y que permite encontrar soluciones dentro de un campo de búsquedas infinito. Sin embargo para poder entender mejor esta técnica, es necesario y conveniente primero entender la técnica de búsqueda Minimax, que es una técnica que se centra en la resolución de problemas de búsquedas, basadas en la alternación de dos entes o agentes a los cuales se les denominan Min y Max[2]. la búsqueda de una solución en un 30% comparada con la Búsqueda de MiniMax. Sin embargo la elección de una heurística apropiada es lo que define mejor la solución del juego. Para este trabajo consideramos tres heurísticas las cuales explicaremos mas adelante. Para este trabajo, empezaremos definiendo algo de la teoría de juegos; luego antes de entrar el desarrollo del algoritmo Poda Alpha – Beta, analizaremos la técnica del Minimax, para luego explicar las heurísticas que hemos utilizado para obtener la utilidad, elemento necesario para definir una adecuada jugada. 2. La inteligencia Artificial, es una campo de que ha tomado gran interés en los últimos tiempos debido a su capacidad de poder resolver soluciones imitando el razonamiento lógico de las personas y hasta el mecanismo de cómo ellas la resuelven. Un tema interesante a tratar a lo que concierne a la IA son los juegos. Así por ejemplo, el juego del ajedrez es un juego de mesa para dos contrincantes y es uno de los juegos mas mencionados dentro de la teoría de juegos de la Inteligencia Artificial, por lo que tiene bien definida su meta (el Mate) y sus acciones (conjunto de movimientos de cada una de las piezas que la conforman), las cuales, por cierto, hacen del juego algo complicado de programarlo, pero no imposible. Este juego fue estudiado por Claude Shanon y hasta el mismo Alan Turing, los cuales sugirieron algunas formas de representarlos en un ordenador. Existen, pues, varias técnicas de búsqueda para el desarrollo de este juego. Dentro de las técnicas de búsqueda que hemos estudiado, hemos considerado utilizar la búsqueda de Poda Alfa Beta, la cual es muy eficiente en TEORIA DE JUEGOS

se necesita ingresar el nodo a ser evaluado.Nodo N. ESTRATEGIA MINIMAX Entrada: . por profundidad. se procederá a podar la rama [6]. La figura 1 muestra parte del árbol generado para la búsqueda por la técnica de Minimax para el juego del tres en raya [5]. El algoritmo 1 muestra la implementación de la técnica de Minimax en forma recursiva [3]. Para ingresar al algoritmo. Es una extensión en particular del algoritmo de Búsqueda Minimax en juegos de dos contrincantes [2]. Esto se da mediante la variable fNodo.…Hn) Devolver (valorUtilidad) Algoritmo 1. De no ser así. de allí el nombre. la nueva utilidad será la última en ser registrada o actualizada. De no ser así. por lo cual no se sigue generando y simplemente se le poda. el algoritmo determina s los nuevos hijos generados pueden generar una mejor utilidad de la que ya posee el nodo estudiado y si afecta al nodo padre. en el juego de tres en raya. se detalla las entradas. así como la utilidad del padre para evaluar si es que la nueva utilidad afecta o no al nodo padre. 4. eso significa que seguir analizando esa rama es desperdiciara recursos como tiempo y espacio. Una vez podada la rama. Sin embargo. Fig1. muestra como es el desarrollo para una búsqueda por medio de la Poda Alpha –Beta. En el algoritmo 2.…Hn) De lo contrario valorUtilidad min(H1. El que inicia el juego es Max y existe una alternancia en la participación del juego. Fig 2. Figura que muestra el desarrollo general e la secuencia de la técnica de minimax. Salida . Algoritmo recursivo de la técnica Minimax.H2.3.H2. es aquí donde se plantea la solución mediante la poda de esas ramas que no beneficiaran en nada a la mejor jugada: La técnica de Poda Alpha-Beta. Por lo tanto. Este algoritmo considera el caso de 2 participantes a los que se les denomina Max y Min[1]. PODA ALPHA – BETA La estrategia minimax es una estrategia de búsqueda exhaustiva mediante un árbol de búsqueda. dada su excepcional utilidad en el aumento de la velocidad de la búsqueda sin producir pérdida de la información. N hacer Este algoritmo es el más utilizado en las aplicaciones referidas a juegos. El algoritmo 2.Valor de utilidad de N Si N es nodo Hoja ValorUtilidad función de utilidad De lo contrario Para cada nodoHijo Hi de valorUtilidadi MiniMaxR(Hi) Fin para Si N es max valorUtilidad max(H1. Por lo tanto lo que tiene que hacer Max. . Figura que muestra el árbol generado por el proceso de búsqueda minimax. Cada vez que se evalúa un nodo u hoja. del que se obtendrá su utilidad. esta búsqueda muchas veces tiene que evaluar ramas innecesarias que no le traerán beneficio alguno para obtener el mejor resultado. es determinar la secuencia de jugadas que conduzca a un estado Terminal ganador o favorecedor. que contiene la función de utilidad del nodo ingresado [7].

fNodoP Salida: . El número indicado en las casillas indican la cantidad de casillas que se pueden mover. fin si fin si fin si fin para fin para retornar nodo. Para ello necesita de gran capacidad de almacenamiento de información. el programa en todo momento debe conocer la configuración del tablero para la maquina poder tomar la decisión adecuada (jugada). El resto de filas indican las fichas del ajedrez: Peon (P). Algoritmo Poda Alpha–Beta. así: 1 significa que solo puede moverse una sola posición. utilizando estructuras que le permitan llegar a conclusiones coherentes. La primera fila indica el tipo de movimiento. La segunda fila indica la dirección hacia donde puede moverse: Arriba (Arr) o Abajo (Aba). Torre (T). mientras que n significa que puede moverse mas de 1 posición dentro del límite del tablero del ajedrez. la configuración de cada movimiento que se pueda generar y las posibles acciones que estas puedan sugerir. fin si fin si fin si si nodo es MIN si fHijo < fNodo fNodo fHijo si fNodo =<fNodoP eliminar fNodo retornar null. sobre las cuales se colocan fichas de 2 colores que simbolizan a los 2 oponentes. Arr Aba 1 n n 1 n 3 n 1 si nodo es MAX si fHijo > fNodo fNodo fHijo si fNodo >=fNodoP eliminar fNodo retornar null. motivo por el cual se ha tomado énfasis en estudiar este juego empezando el uso de . fin si Algoritmo 2. Arr Aba 1 n n n 1 n 1 Diag.fNodo Si nodo es MAX fNodo fNodo fin si Si nodo es hoja fNodo utilidadNodo(nodo) de lo contrario para cada ficha fi que se pueda mover para cada accion aj de fi nodoH nodoH crear nodo con ai PodaAB(nodoH. Horiz. L Tabla 1. Así pues tenemos: • Peón • Torre • Alfil • Caballo • Reina • Rey La Tabla 1 ilustra los movimientos permitidos para las diferentes fichas en un juego de ajedrez.Nodo. Alfil (A). estos colores son generalmente: Blanco y Negro. de diferente tipo y movimiento. Entrada: . mostrados en la figura 3. diagonal o en forma de L. Sin embargo.5. ya sea horizontal. Arr Aba P T A C D R n n 1 n n 1 Vert. hacen de este juego algo interesante. Movimientos Permitidos en el Ajedrez Cada jugador al inicio de cada jugada posee 16 elementos. vertical. Este juego además posee un sin numero de fichas. Caballo (C). Dama (D) y Rey (R). que le permita ganar. El juego se desarrolla sobre un tablero de 8 filas y 8 columnas. En este juego.fNodo) -inf inf De lo contrario JUEGO DEL AJEDREZ El juego del ajedrez es un juego adecuado para tratarlo mediante técnicas de IA debido a que tiene claramente definidos el objetivo que se quiere alcanzar (meta) y los medios para llegar (movimientos permitidos) [1].

yRB Capturar Posición del Rey Negro: xRN. es decir. 1° 2° 3° 4° 5° Capturar Posición del Rey Blanco: xRB. La mejor acción es una variable que me va recolectando el camino que se genera con la mejor jugada posible. del tablero) Funcion de utilidad Mejor accio n Pro f. que tan profundo se va a analizar las jugadas.Peón : 1 .búsquedas sistemáticas para diseñar programas por ordenador.Torre : 5 . Las complicaciones que presenta diseñar una búsqueda adecuada para este juego son bastantes. 6. es decir. motivo por el cual muchas veces se utiliza una determinada profundidad hasta donde se puede llegar a evaluar. Si un rey tiene mas fichas La estructura del nodo que se ha utilizado. indicaría que se va analizar 2 turnos para ambos jugadores y de allí se extraerá el mejor camino. En caso de ser Max. por lo tanto pueda ganar.Rey : 50 Piezas Negras . si se escoge una profundidad de 4. dentro de las cuales la mas principal es la complejidad espacial en un ordenador. que muestra la disposición de las fichas de los jugadores. El estado.Reina : 10 . El siguiente dato. Y finalmente la profundidad. es una probabilidad que hemos considerado y mide que tan protegido esta un rey. mide que tanta es la diferencia de fichas entre los dos oponentes.Caballo : -3 . Si un rey tiene mas cerca a sus piezas. tiene la siguiente estructura: Id idPadr e Tipo (Max o Min) Estado (config. antes de empezar el juego. Si uno de ellos tiene una cantidad de pesos mayor en fichas. para esto debe basarse en la utilidad. Tablero de un juego de Ajedrez.Alfil : 3 . la maquina elegirá la menor utilidad posible. esto .Reina : -10 . pues genera beneficio para Max.Caballo : 3 .Rey : -50 • Las Heurística para la función de Utilidad que logramos analizar son las siguientes: Fig3. El primer campo indica el ident del nodo que se esta generando. corresponde al ambiente que será analizado por la maquina. el algoritmo tratará de obtener la jugada de mayor utilidad. El tipo hace referencia a que nodo se esta analizando: si es Max o es Min. perjudicando al oponente. La función de utilidad corresponde a la utilidad calculada por la heurística explicada posteriormente [2]. yRN Sumar N° de piezas Blancas: sumaB Sumar N° de piezas Negras: sumaN Calcular que tan protegido esta el rey blanco de las piezas negras: BRP 6° Calcular que tan Protegido esta el rey Negro de las piezas blancas: NRP 7° Calcular que tan cerca están las piezas negras del rey Blanco: BAR 8° Calcular que tan cerca están las piezas blancas del rey Negro: NAR Finalmente se obtendrá la Utilidad con la siguiente ecuación: Utilidad=(sumaB-sumaN)+(BRP-NRP)+(BAR-NAR) (sumaB+sumaN) (BRP+NRP) (BAR+NAR) La primera división. ESTRUCTURA DE DATOS UTILIZADA. corresponde al padre que lo generó. La segunda división. probablemente pueda tener más ventajas sobre el otro. APLICACIÓN Hemos aplicado una heurística en la que se considera un peso para cada pieza según el color: • Piezas Blancas . es la configuración del tablero. 7.Torre : -5 . entonces la probabilidad que sea comido es menor.Alfil : -3 . sin embargo cuando es Min. indica. La tercera división mide la probabilidad de que un rey sea atacado por el oponente. por lo tanto menos oportunidad de ser atacado directamente.Peón : -1 .

RESULTADOS toma de una decisión. [en linea]. 2004. entonces la probabilidad de ser atacado aumenta.itnuevolaredo. MiniMax. Estas profundidades mostraron tener óptimos resultados. Formato PDF. la ecuación presentada. disponible en: http://ccia. 2006. Disponible en: http://arantxa. Aplicación en Ejecución mostrando algunos resultados en el juego.uvigo. 8. 10. “Inteligencia Artificial: Un Enfoque Moderno”.pdf [4] “Juegos y MiniMax: Poda Alpha Beta”. Disponible en: www.es/~ia/p4/p4. y por lo tanto pueda ejecutarse el mate. hemos considerado dos heurísticas que hemos creído conveniente considerar: una basada en el ataque a un rey y otra basada en la defensa de un rey. si bien no comparamos en este trabajo la diferencia con el otro algoritmo estudiado. Disponible en: http://www. Las limitaciones que encontramos para este trabajo es trabajar con respecto a la profundidad.uam. demorando en el último. ISBN 0-13-10385-2. mejorando la búsqueda sin llegar a una profundidad muy alta. 1986. es un algoritmo eficaz en cuanto a la búsqueda de una solución.ppt. Fig4. • CONCLUSIONES • • El algoritmo de Poda Alfa-Beta. hemos considerado varias profundidades.lania. que determinaban el nivel de juego: Profundidad 3 Profundidad 4 Profundidad 5 Nivel Principiante Nivel Intermedio Nivel Avanzado.mx/jnunez/materias/ia/slides/6juegos.Beta”. España. “Introducción a la Inteligencia Artificial”.html Para la aplicación. 9.ing. Formato PPT.es/docencia/IA/Tema2. a lo mas 30 segundos de ejecución. “Busqueda en Espacio de Estados”. tiempo razonable debido a la gran cantidad de nodos que se tenían que evaluar. hemos probado que la poda por cierto camino que no aportara nada a la decisión aumenta en un 30% la eficiencia de la búsqueda. Formato PDF. En el trabajo presentado. Esto se debe a que trabajamos con una profundidad no tan alta. [3] Francisco Jose Ribadas Pena.ii. Edición Prentice Hall. 1996.mx/~asanchez/IA/ minimax3.pdf [5] José Ignacio Nuñez Varela. Formato PPT. “Informática Aplicada: Juegos Inteligentes en Microordenadores”. Carmen Tarta Alcalde y Irma Trueba Valle. [7] “Definición de una Poda Alpha-Beta”. [2] Stuart Russell and Peter Norvig. mide que tanta ventaja tiene un oponente sobre el otro. teniendo una respuesta de menos de 1 minuto en la búsqueda de la solución. [en línea].enemigas cerca. Estas dos técnicas nos han permitido tener un mejor resultado en la . [en línea]. 2007. Ediciones Siglo Cultural. Universidad Autónoma de Juan Luis Potosí. Por lo tanto.ei. [en línea].uaslp. como 5 en el trabajo presentado. REFERENCIA BIBLIOGRÁFICA [1] Francisco Astudillo Pacheco. Daniel Borrajo Millan.edu. Disponible en: ciep. [en línea].mx [6] “Inteligencia Artificial: Algoritmo Poda Alpha.

Sign up to vote on this title
UsefulNot useful