Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
Motivacin rboles de Juegos Funciones de Evaluacin Minimax Podado Alfa-Beta Exitos de IA con Juegos
Motivacin
Porqu estudiar juegos?
Juegos son divertidos Papel historico en IA Permite compara resultados con humanos Espacios de estados enormes Juegos son dificiles Son reglas muy precisas, con criterios muy claros para exito
Juegos Sencillos
Ajedrez, damas, go, gato, Otelo, Nim, Dos jugadores que alternan movimientos Informacin perfecta: cada jugador conoce el estado completo del juego Deterministico: no hay un factor aleatorio Los movimientos legales son precisas Terminaciones bien definidas (p.e ganar, perder, empatar)
Juegos ms complicados
Muchos juegos de cartas y Scrabble No son deterministicos No tenemos informacin perfecta Juegos cooperativos Juegos en tiempo real (sin movimientos alternos)
rboles de Juegos
Representa el espacio del problema para el juego con un rbol Nodos representan posicines del tablero; conexiones representan movimientos legales La raz es la posicin en la cual hay que tomar una decisin sobre el siguiente movimiento Nodos terminales representan maneras el juego puede terminar
rboles de Juegos
X O X O
El juego de Grundy
2 jugadores C1, C2 tienen N monedas entre ellos. C1 juega primero y tiene que partir el montn en 2 montones desiguales p.e. N = 6 puede estar en 5/1, 4/2 pero no 3/3. C2 tiene que partir uno de los montones tambin de manera desigual. El juego termina cuando ningn montn puede ser partido en 2 montones de tamao desigual. Este jugador pierde. Cada montn tiene que tener 1 o 2 monedas. Encuentra el rbol del juego
rboles de Juegos
Generalmente no podemos desarrollar todo el rbol Como decidimos que movimiento hacer?
8-5 = 3
6-5 = 1
X X
X X O
X X O X X X X O X O O X O O
3-0 = 3
2-1 = 1
X X
X X O
X X O X X X X O X O O X O O
w feature (n)
i i
Cxg5?? f(n)=(9+3)-(5+5) =2
Nosotros a mover
Oponente
Valores de la evaluacin
8
Ms grande
La regla Minimax
Idea: realiza el movimiento para el jugador MAX que tiene mayor beneficio suponiendo MIN realiza sus mejores respuestas
Se calcula un valor en cada nodo interior, determinado por los valores de sus hijos Para un nodo MAX, el valor es el mximo de los valores de sus hijos Para un nodo MIN, el valor es el mnimo de los valores de sus hijos
Ejemplo de Minimax
Ejemplo de Minimax
Ejemplo de Minimax
Ejemplo de Minimax
-
7 5 -7 -5
10
-7
10
-7
-5
-7
-7
10
-7
-5
-10
-7
-7
10
-7
-5
-7
-10
-7
-7
10
-7
-5
Caso Ideal
Buscamos hasta las hojas (posiciones finales en el juego) Devolvemos la hoja(s) que garantiza ganar Algun problema?
Para ajedrez, tiene 35 movimientos legales (factor de ramificacin). 35 para un nivel, 352=1225 dos niveles, 356 2 billones y juegos pueden durar ms de 40 movimientos, entonces 3540 estrellas en el universo 228
Ms Realistica
Buscar hasta un nodo no-terminal y evalualo Ajedrez 4 niveles es un novato 8 niveles es un maestro 12 niveles puede competir al mejor nivel 12 niveles representa una bsqueda muy limitada en el espacio de estados La funcin de evaluacin esttica es vital tambin la profundidad
La Regla Minimax
Procedimiento Minimax
Inicia con la posicin actual como el nodo MAX Expander el rbol del juego a un nmero fijo de niveles (conocido en juegos como ply) Aplica la funcin de evaluacin en las hojas Sucesivamente calcular los valores en los nodos interiores Escoger el movimiento que dio el valor MAX en la raz
Minimax Implementado
Primero en profundidad, izquierdo a la derecha, recursivo, profundidad limitado nicamente las hojas estn evaluadas Los valores devueltos representan el mejor valor encontrado hasta esta profundidad
MinMax seudocdigo
minimax(nodo) Si nodo es una hoja devolver el valor f(nodo) Si nodo es un nodo MIN minvalor = + para cada hijo del nodo minvalor = min(minvalor, minimax(hijo)) devolver minvalor Si nodo es un nodo MAX maxvalor = - para cada hijo del nodo maxvalor = max(maxvalor, minimax(hijo)) devolver maxvalor
Otra Vez
MAX
3
A1 A2 A3
MIN
A 11 A 12
3
A 13 A 21
2
A 22 A 23 A 31
2
A 32 A 33
12
14
NegaMax
Se puede simplificar el seudocdigo de la siguiente manera: negamax(nodo) Si nodo es una hoja devolver f(nodo) maxvalor = - para cada hijo de nodo maxvalor = max(maxvalor, -negamax(hijo)) devolver maxvalor
Cromosoma
[a1,a2,a3]
Extensiones
Podado Alfa-Beta
El algoritmo minimax es una manera de encontrar un movimiento ptimo en un juego de dos jugadores Podado alfa-beta es una manera de encontrar el movimiento minimax sin buscar todo el rbol.
Podado Alfa-Beta
Con frecuencia podemos ignorar partes del espacio de bsqueda y encontrar la misma respuesta
Podado Alfa-Beta
MAX
MIN
12
Podado Alfa-Beta
MAX
MIN
12
Podado Alfa-Beta
MAX
MIN
14
12
14
Podado Alfa-Beta
MAX
MIN
14
12
14
Podado Alfa-Beta
MAX
33
MIN
14
5 2
12
14
Podado Alfa-Beta
Podado alpha-beta utiliza dos cotas que estn pasadas durante el clculo. Estas cotas restringen el conjunto de posibles soluciones basndose en la porcin del rbol del juego previamente vista.
Algoritmo -
Para determinar si se puede podar una rama en el rbol del juego, mantenemos un intervalo acotado por un valor inferior y un valor superior (alfa y beta). Alfa y beta cambian cuando buscamos en el rbol, de acuerdo a los valores encontrados. Cuando beta alfa la rama es podada. Seudocdigo para alfa-beta con minimax sigue donde se llama con minimax(nodo, -, + )
Algoritmo -
. minimax(nodo, alfa, beta) Si nodo es una hoja devolver f(nodo) Si nodo es un nodo MIN minvalor = beta para cada hijo de nodo minvalor = min(minvalor, minimax(hijo, alfa, beta)) beta = minvalor Si alfa >= beta devolver minvalor // podar devolver minvalor Si nodo es un nodo MAX maxvalor = alfa para cada hijo de nodo maxvalor = max(maxvalor, minimax(hijo, alfa, beta)) alfa = maxvalor Si alfa >= beta return maxvalor // podar devolver maxvalor
Algoritmo -
MAX
MIN
MAX
MIN
http://www.cs.ucla.edu/~rosen/161/notes/alphabeta.html
Algoritmo -
equivalente a
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Algoritmo -
Mejorando AB
Minimax es normalmente un procedimiento de primero en profundidad, izquierdo a la derecha AB trabaja mejor si los nodos ms informativos son evaluados primero (es decir, en el izquierdo)
Mejorando AB
MAX
3
A1 A2 A3
MIN
A 11 A 12
3
A 13
2
A 21 A 22 A 23 A 31
2
A 32 A 33
12
14
Manejando Tiempo
En torneos, hay una restriccin de tiempo Requiere una forma de manejar el reloj p.e. hay que estar seguro que tienes un movimiento cuando suena el timbre
Profundidad Iterativa
Corre Minimax adentro de PI Recuerda el mejor movimiento encontrado anteriormente Seguir iterando hasta algun limite de tiempo es alcanzado Importante: Siempre tienes respuesta disponible
Go: campeones humanos niegan jugar contra computadoras, que son demasiado malo. En go, b > 300. Premios de 1,000,000 de dolares para construir un programa que gana contra un campen humano.