Está en la página 1de 7

Minimax

De Wikipedia, la enciclopedia libre Saltar a navegacin, bsqueda Para otros usos de este trmino, vase Minimax (infantil). En teora de juegos, Minimax es un mtodo de decisin para minimizar la prdida mxima esperada en juegos con adversario y con informacin perfecta. Minimax es un algoritmo recursivo. El funcionamiento de Minimax puede resumirse como elegir el mejor movimiento para ti mismo suponiendo que tu contrincante escoger el peor para ti.

Contenido
[ocultar]

1 Teorema Minimax 2 Algoritmo Minimax con movimientos alternativos 3 Ejemplo 4 Optimizacin 5 Enlaces externos

[editar] Teorema Minimax


John von Neumann es el creador del teorema minimax, quien dio la siguiente nocin de lo que era un juego: "Un juego es una situacin conflictiva en la que uno debe tomar una decision sabiendo que los dems tambin toman decisiones, y que el resultado del conflicto se determina, de algn modo, a partir de todas las decisiones realizadas." Tambin afirm que: "Siempre existe una forma racional de actuar en juegos de dos participantes, si los intereses que los gobiernan son completamente opuestos." La demostracin a esa afirmacin se llama Teora Minimax y surge en 1926. Este teorema establece que en los juegos bipersonales de suma nula, donde cada jugador conoce de antemano la estrategia de su oponente y sus consecuencias, existe una estrategia que permite a

ambos jugadores minimizar la prdida mxima esperada. En particular, cuando se examina cada posible estrategia, un jugador debe considerar todas las respuestas posibles del jugador adversario y la prdida mxima que puede acarrear. El jugador juega, entonces, con la estrategia que resulta en la minimizacin de su mxima prdida. Tal estrategia es llamada ptima para ambos jugadores slo en caso de que sus minimaxes sean iguales (en valor absoluto) y contrarios (en signo). Si el valor comn es cero el juego se convierte en un sinsentido.

[editar] Algoritmo Minimax con movimientos alternativos

Pasos del algoritmo Minimax: 1. Generacin del rbol de juego. Se generarn todos los nodos hasta llegar a un estado terminal. 2. Clculo de los valores de la funcin de utilidad para cada nodo terminal. 3. Calcular el valor de los nodos superiores a partir del valor de los inferiores. Alternativamente se elegirn los valores mnimos y mximos representando los movimientos del jugador y del oponente, de ah el nombre de Minimax. 4. Elegir la jugada valorando los valores que han llegado al nivel superior. El algoritmo explorar los nodos del rbol asignndoles un valor numrico mediante una funcin de evaluacin, empezando por los nodos terminales y subiendo hacia la raz. La funcin de utilidad definir lo buena que es la posicin para un jugador cuando la alcanza. En el caso del ajedrez los posibles valores son (+1,0,-1) que se corresponden con ganar, empatar y perder respectivamente. En el caso del backgammon los posibles valores tendrn un rango de [+192,192], correspondindose con el valor de las fichas. Para cada juego pueden ser diferentes. Si Minimax se enfrenta con el dilema del prisionero escoger siempre la opcin con la cual maximiza su resultado suponiendo que el contrincante intenta minimizarlo y hacernos perder.

[editar] Ejemplo
En el siguiente ejemplo puede verse el funcionamiento de Minimax en un rbol generado para un juego imaginario. Los posibles valores de la funcin de utilidad tienen un rango de [1-9]. En los movimientos del contrincante suponemos que escoger los movimientos que minimicen nuestra

utilidad, en nuestros movimientos suponemos que escogeremos los movimientos que maximizan nuestra utilidad. El primer paso ser calcular los nodos terminales, en verde. Posteriormente calcularemos el cuarto nivel, movimiento min, minimizando lo elegido (5, 2 y 1). Despus podremos calcular el tercer nivel, movimiento max, maximizando la utilidad (5, 9). El segundo nivel es un movimiento min (5, 3 y 1). Finalmente llegamos al primer nivel, el movimiento actual, elegiremos el nodo que maximice nuestra utilidad (5).

[editar] Optimizacin
En la prctica el mtodo Minimax es impracticable excepto en supuestos sencillos. Realizar la bsqueda completa requeriran cantidades excesivas de tiempo y memoria. Claude Shannon en su texto sobre ajedrez de 1950 (Programming a Computer for Playing Chess) propuso limitar la profundidad de la bsqueda en el rbol de posibilidades y determinar su valor mediante una funcin heurstica. Para optimizar Minimax puede limitarse la bsqueda por nivel de profundidad o por tiempo de ejecucin. Otra posible tcnica es el uso de la poda alfa-beta. Esta optimizacin se basa en la suposicin que el jugador contrario no nos permitir jugar nuestras mejores jugadas.

Poda alfa-beta
De Wikipedia, la enciclopedia libre Saltar a navegacin, bsqueda

Ejemplo de poda alfa-beta.

La poda alfa beta es una tcnica de bsqueda que reduce el nmero de nodos evaluados en un rbol de juego por el algoritmo Minimax. Se trata de una tcnica muy utilizada en programas de juegos entre adversarios como el ajedrez, el tres en raya o el Go. Entre los pioneros en el uso de esta tcnica encontramos a Arthur Samuel, D.J Edwards y T.P. Hart,1 Alan Kotok,2 Alexander Brudno3 , Donald Knuth y Ronald W. Moore4 El problema de la bsqueda Minimax es que el nmero de estados a explorar es exponencial al nmero de movimientos. Partiendo de este hecho, la tcnica de poda alfa-beta trata de eliminar partes grandes del rbol, aplicndolo a un rbol Minimax estndar, de forma que se devuelva el mismo movimiento que devolvera este, gracias a que la poda de dichas ramas no influye en la decisin final.

Contenido
[ocultar]

1 Desarrollo del algoritmo o 1.1 Ejemplo de poda alfa-beta 2 Eficacia de la poda alfa-beta 3 Referencias

[editar] Desarrollo del algoritmo

La bsqueda minimax es primero en profundidad, por ello en cualquier momento slo se deben considerar los nodos a lo largo de un camino en el rbol. La poda alfa-beta toma dicho nombre de la utilizacin de dos parmetros que describen los lmites sobre los valores hacia atrs que aparecen a lo largo de cada camino.

es el valor de la mejor opcin hasta el momento a lo largo del camino para MAX, esto implicar por lo tanto la eleccin del valor ms alto es el valor de la mejor opcin hasta el momento a lo largo del camino para MIN, esto implicar por lo tanto la eleccin del valor ms bajo.

Esta bsqueda alfa-beta va actualizando el valor de los parmetros segn se recorre el rbol. El mtodo 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 pseudocdigo ser el siguiente:
funcin alfabeta(nodo, profundidad, , ) si nodo es un nodo terminal o profundidad = 0 devolver el valor heurstico del nodo para cada hijo de nodo := max(, -alfabeta(hijo, profundidad-1, -, -)) si break devolver (* Llamada inicial *) alfabeta(origen, profundidad, -infinito, +infinito)

[editar] 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 tendrn que definir un valor o respectivamente.

A continuacin se presenta un ejemplo de aplicacin del algoritmo para el rbol de la figura. En ella los nodos podados al aplicar el algoritmo se presentan sombreados en gris.

Comenzamos con la bsqueda de primero en profundidad. El padre de los nodos hoja ms 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 mnimo entre dichos nodos, es decir 5. Siguiendo el desarrollo, se expandirn 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 momentneo de en ese nivel es 4 (el mnimo 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 momentneo, debe decidir el mejor valor, el ms alto al encontrarse en un nivel MAX), si siguiramos expandiendo hijos del nodo MIN padre de 7 y 4, slo podramos conseguir valores menores a 4, lo que seguira implicando una eleccin 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 seguira utilizando los criterios mencionados con anterioridad.

[editar] 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 ms eficiente si examinamos primero los sucesores que probablemente sern los mejores. Si esto pudiera hacerse, implicara que alfa-beta slo tendra que examinar O(bd / 2) en lugar de los O(bd) de Minimax. Esto implica que el factor de ramificacin eficaz ser de en lugar de b. En otras palabras, alfa-beta podra mirar hacia delante aproximadamente dos veces ms que Minimax en la misma cantidad de tiempo. Si se recurre a una ordenacin aleatoria en lugar de primero el mejor en los sucesores, el nmero aproximado de nodos examinados sera de O(b3d / 4) para un valor moderado de b. En ajedrez se puede realizar una funcin de ordenacin sencilla teniendo en cuenta primero capturas de fichas, despus amenazas, movimientos hacia delante y por ltimo movimientos hacia detrs, esto conseguira aproximadamente un factor de dos del resultado O(bd / 2) del mejor caso. La inclusin de esquemas dinmicos para ordenar movimientos, basados en experiencia podran acercarse al lmite terico.5

[editar] 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-12-2006. 2. Kotok, Alan (XHTML 3 December 2004). MIT Artificial Intelligence Memo 41. Consultado el 01-07-2006. 3. Marsland, T.A. (May de 1987). Computer Chess Methods (PDF) from Encyclopedia of Artificial Intelligence. S. Shapiro (editor) (PDF) pgs. 159-171. J. Wiley & Sons. Consultado el 2112-2006.

4. Knuth, D. E., and Moore, R. W. (1975). An Analysis of Alpha-Beta Pruning. Artificial Intelligence Vol. 6, No. 4: pp. 293326. 5. Russell, S.J; Norving, P. (2004). Inteligencia Artificial. Un enfoque moderno. Pearson Educacin. ISBN 84-205-4003-Z.

También podría gustarte