fbpx
Wikipedia

Poda alfa-beta

La poda alfa beta es una técnica de búsqueda que reduce el número de nodos evaluados en un árbol de juego por el algoritmo Minimax. Se trata de una técnica muy utilizada en programas de juegos entre adversarios como el ajedrez, el tres en raya o el Go.

Ejemplo de poda alfa-beta.

Entre los pioneros en el uso de esta técnica encontramos a Arthur Samuel, D.J Edwards y T.P. Hart,[1]​ Alan Kotok,[2]​ Alexander Brudno,[3]Donald Knuth y Ronald W. Moore[4]

El problema de la búsqueda Minimax es que el número de estados a explorar es exponencial al número de movimientos. Partiendo de este hecho, la técnica de poda alfa-beta trata de eliminar partes grandes del árbol, aplicándolo a un árbol Minimax estándar, de forma que se devuelva el mismo movimiento que devolvería este, gracias a que la poda de dichas ramas no influye en la decisión final.

Desarrollo del algoritmo

La búsqueda minimax es primero en profundidad, por ello en cualquier momento sólo se deben considerar los nodos a lo largo de un camino en el árbol.

La poda alfa-beta toma dicho nombre de la utilización de dos parámetros que describen los límites sobre los valores hacia atrás que aparecen a lo largo de cada camino.

  • α es el valor de la mejor opción hasta el momento a lo largo del camino para MAX, esto implicará por lo tanto la elección del valor más alto
  • β es el valor de la mejor opción hasta el momento a lo largo del camino para MIN, esto implicará por lo tanto la elección del valor más bajo.

Esta búsqueda alfa-beta va actualizando el valor de los parámetros según se recorre el árbol. El método realizará la poda de las ramas restantes cuando el valor actual que se está examinando sea peor que el valor actual de α o β para MAX o MIN, respectivamente.

El desarrollo del algoritmo en pseudocódigo será el siguiente:

función alfa-beta(nodo //en nuestro caso el tablero, profundidad, α, β, jugador) si nodo es un nodo terminal o profundidad = 0 devolver el valor heurístico del nodo si jugador1 para cada hijo de nodo  α := max(α, alfa-beta(hijo, profundidad-1, α, β, jugador2))  si β≤α  romper (* poda β *) devolver α si no para cada hijo de nodo  β := min(β, alfa-beta(hijo, profundidad-1, α, β, jugador1))  si β≤α  romper (* poda α *) devolver β 
(* Llamada inicial *) alfa-beta(origen, profundidad, -infinito, +infinito, jugador_deseado) 

Ejemplo de poda alfa-beta

 
La figura muestra un ejemplo de la poda alfa-beta. Cada nivel representa la jugada de los jugadores MAX y MIN, que tendrán que definir un valor α o β respectivamente.

A continuación se presenta un ejemplo de aplicación del algoritmo para el árbol de la figura. En ella los nodos podados al aplicar el algoritmo se presentan sombreados en gris.

Comenzamos primero con la búsqueda en profundidad. El padre de los nodos hoja más a la izquierda, etiquetados con 5 y 6 respectivamente, deberá escoger un valor β al tratarse de un nivel MIN, esto implica que deberá escoger el valor mínimo entre dichos nodos, es decir 5.

Siguiendo el desarrollo, se expandirán el resto de sucesores del padre. En este caso se expande el camino que conduce a los nodos hoja 7 y, buscando un valor β menor, el nodo etiquetado con 4. En este momento el valor momentáneo de β en ese nivel es 4 (el mínimo entre 7 y 4). Esto implica que en este momento en el nivel superior, el padre del nodo que etiquetamos anteriormente con β igual a 5, y de este β igual a 4 momentáneo, debe decidir el mejor valor, (el más alto al encontrarse en un nivel MAX), si siguiéramos expandiendo hijos del nodo MIN padre de 7 y 4, sólo podríamos conseguir valores menores a 4, lo que seguiría implicando una elección de la jugada izquierda en el nivel MAX, por lo tanto, podemos podar el resto de hijos, tal y como se muestra en la figura.

El resto del desarrollo del árbol se seguiría utilizando los criterios mencionados con anterioridad.

Eficacia de la poda alfa-beta

La eficacia de la poda alfabeta depende del orden en el que se examinan los sucesores, es decir, el algoritmo se comportará de forma más eficiente si examinamos primero los sucesores que probablemente serán los mejores.

Si esto pudiera hacerse, implicaría que alfa-beta sólo tendría que examinar   en lugar de los   de Minimax. Esto implica que el factor de ramificación eficaz será de   en lugar de  . En otras palabras, alfa-beta podría mirar hacia delante aproximadamente dos veces más que Minimax en la misma cantidad de tiempo.

Si se recurre a una ordenación aleatoria en lugar de primero el mejor en los sucesores, el número aproximado de nodos examinados sería de   para un valor moderado de  . En ajedrez se puede realizar una función de ordenación sencilla teniendo en cuenta primero capturas de fichas, después amenazas, movimientos hacia delante y por último movimientos hacia detrás, esto conseguiría aproximadamente un factor de dos del resultado   del mejor caso. La inclusión de esquemas dinámicos para ordenar movimientos, basados en experiencia podrían acercarse al límite teórico.[5]

Referencias

  1. Richards, D.J. and Hart, T.P. (4 de diciembre de 1961 to 28 October 1963). «The Alpha-Beta Heuristic (AIM-030)». Massachusetts Institute of Technology. Consultado el 21 de diciembre de 2006. 
  2. Kotok, Alan (XHTML 3 December 2004). «MIT Artificial Intelligence Memo 41». Consultado el 1 de julio de 2006. 
  3. Marsland, T.A. (mayo de 1987). (PDF). J. Wiley & Sons. pp. 159-171. Archivado desde el original el 30 de octubre de 2008. Consultado el 21 de diciembre de 2006. 
  4. Knuth, D. E., and Moore, R. W. (1975). «An Analysis of Alpha-Beta Pruning». Artificial Intelligence Vol. 6, No. 4: 293-326. 
  5. Russell, S.J; Norving, P. (2004). Inteligencia Artificial. Un enfoque moderno. Pearson Educación. ISBN 84-205-4003-Z |isbn= incorrecto (ayuda). 


  •   Datos: Q570496

poda, alfa, beta, poda, alfa, beta, técnica, búsqueda, reduce, número, nodos, evaluados, árbol, juego, algoritmo, minimax, trata, técnica, utilizada, programas, juegos, entre, adversarios, como, ajedrez, tres, raya, ejemplo, poda, alfa, beta, entre, pioneros, . La poda alfa beta es una tecnica de busqueda que reduce el numero de nodos evaluados en un arbol de juego por el algoritmo Minimax Se trata de una tecnica muy utilizada en programas de juegos entre adversarios como el ajedrez el tres en raya o el Go Ejemplo de poda alfa beta Entre los pioneros en el uso de esta tecnica encontramos a Arthur Samuel D J Edwards y T P Hart 1 Alan Kotok 2 Alexander Brudno 3 Donald Knuth y Ronald W Moore 4 El problema de la busqueda Minimax es que el numero de estados a explorar es exponencial al numero de movimientos Partiendo de este hecho la tecnica de poda alfa beta trata de eliminar partes grandes del arbol aplicandolo a un arbol Minimax estandar de forma que se devuelva el mismo movimiento que devolveria este gracias a que la poda de dichas ramas no influye en la decision final Indice 1 Desarrollo del algoritmo 1 1 Ejemplo de poda alfa beta 2 Eficacia de la poda alfa beta 3 ReferenciasDesarrollo del algoritmo EditarLa busqueda minimax es primero en profundidad por ello en cualquier momento solo se deben considerar los nodos a lo largo de un camino en el arbol La poda alfa beta toma dicho nombre de la utilizacion de dos parametros que describen los limites sobre los valores hacia atras que aparecen a lo largo de cada camino a es el valor de la mejor opcion hasta el momento a lo largo del camino para MAX esto implicara por lo tanto la eleccion del valor mas alto b es el valor de la mejor opcion hasta el momento a lo largo del camino para MIN esto implicara por lo tanto la eleccion del valor mas bajo Esta busqueda alfa beta va actualizando el valor de los parametros segun se recorre el arbol El metodo realizara la poda de las ramas restantes cuando el valor actual que se esta examinando sea peor que el valor actual de a o b para MAX o MIN respectivamente El desarrollo del algoritmo en pseudocodigo sera el siguiente funcion alfa beta nodo en nuestro caso el tablero profundidad a b jugador si nodo es un nodo terminal o profundidad 0 devolver el valor heuristico del nodo si jugador1 para cada hijo de nodo a max a alfa beta hijo profundidad 1 a b jugador2 si b a romper poda b devolver a si no para cada hijo de nodo b min b alfa beta hijo profundidad 1 a b jugador1 si b a romper poda a devolver b Llamada inicial alfa beta origen profundidad infinito infinito jugador deseado Ejemplo de poda alfa beta Editar La figura muestra un ejemplo de la poda alfa beta Cada nivel representa la jugada de los jugadores MAX y MIN que tendran que definir un valor a o b respectivamente A continuacion se presenta un ejemplo de aplicacion del algoritmo para el arbol de la figura En ella los nodos podados al aplicar el algoritmo se presentan sombreados en gris Comenzamos primero con la busqueda en profundidad El padre de los nodos hoja mas a la izquierda etiquetados con 5 y 6 respectivamente debera escoger un valor b al tratarse de un nivel MIN esto implica que debera escoger el valor minimo entre dichos nodos es decir 5 Siguiendo el desarrollo se expandiran el resto de sucesores del padre En este caso se expande el camino que conduce a los nodos hoja 7 y buscando un valor b menor el nodo etiquetado con 4 En este momento el valor momentaneo de b en ese nivel es 4 el minimo entre 7 y 4 Esto implica que en este momento en el nivel superior el padre del nodo que etiquetamos anteriormente con b igual a 5 y de este b igual a 4 momentaneo debe decidir el mejor valor el mas alto al encontrarse en un nivel MAX si siguieramos expandiendo hijos del nodo MIN padre de 7 y 4 solo podriamos conseguir valores menores a 4 lo que seguiria implicando una eleccion de la jugada izquierda en el nivel MAX por lo tanto podemos podar el resto de hijos tal y como se muestra en la figura El resto del desarrollo del arbol se seguiria utilizando los criterios mencionados con anterioridad Eficacia de la poda alfa beta EditarLa eficacia de la poda alfabeta depende del orden en el que se examinan los sucesores es decir el algoritmo se comportara de forma mas eficiente si examinamos primero los sucesores que probablemente seran los mejores Si esto pudiera hacerse implicaria que alfa beta solo tendria que examinar O b d 2 displaystyle O b d 2 en lugar de los O b d displaystyle O b d de Minimax Esto implica que el factor de ramificacion eficaz sera de b displaystyle sqrt b en lugar de b displaystyle b En otras palabras alfa beta podria mirar hacia delante aproximadamente dos veces mas que Minimax en la misma cantidad de tiempo Si se recurre a una ordenacion aleatoria en lugar de primero el mejor en los sucesores el numero aproximado de nodos examinados seria de O b 3 d 4 displaystyle O b 3d 4 para un valor moderado de b displaystyle b En ajedrez se puede realizar una funcion de ordenacion sencilla teniendo en cuenta primero capturas de fichas despues amenazas movimientos hacia delante y por ultimo movimientos hacia detras esto conseguiria aproximadamente un factor de dos del resultado O b d 2 displaystyle O b d 2 del mejor caso La inclusion de esquemas dinamicos para ordenar movimientos basados en experiencia podrian acercarse al limite teorico 5 Referencias Editar Richards D J and Hart T P 4 de diciembre de 1961 to 28 October 1963 The Alpha Beta Heuristic AIM 030 Massachusetts Institute of Technology Consultado el 21 de diciembre de 2006 Kotok Alan XHTML 3 December 2004 MIT Artificial Intelligence Memo 41 Consultado el 1 de julio de 2006 Marsland T A mayo de 1987 Computer Chess Methods PDF from Encyclopedia of Artificial Intelligence S Shapiro editor PDF J Wiley amp Sons pp 159 171 Archivado desde el original el 30 de octubre de 2008 Consultado el 21 de diciembre de 2006 Knuth D E and Moore R W 1975 An Analysis of Alpha Beta Pruning Artificial Intelligence Vol 6 No 4 293 326 Russell S J Norving P 2004 Inteligencia Artificial Un enfoque moderno Pearson Educacion ISBN 84 205 4003 Z isbn incorrecto ayuda Datos Q570496Obtenido de https es wikipedia org w index php title Poda alfa beta amp oldid 131077158, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos