Este documento discute los juegos y la búsqueda entre adversarios en inteligencia artificial. Explica que los juegos son dominios útiles para explorar la inteligencia computacional y que la teoría de juegos ve cualquier entorno multiagente como un juego. Luego describe el procedimiento minimax y cómo propaga la información de abajo hacia arriba para tomar decisiones óptimas en un juego entre dos jugadores. Finalmente, discute cómo las funciones de evaluación heurística y el corte de la búsqueda permiten tomar decisiones en tiempo real aun
2. JUEGOS
Los juegos han desafiado en intelecto humano
desde que existe la civilización.
En los entornos multi-agente (cooperativos o
competitivos), cualquier agente tiene que
considerar las acciones de otros agentes
La imprevisibilidad de estos otros agentes puede
introducir muchas contingencias en el proceso de
resolución de problemas
Los entornos competitivos, en los cuales los
objetivos de los agentes están en conflicto, dan
ocasión a problemas de búsqueda entre
adversarios, a menudo conocidos como juegos
3. JUEGOS
Desde los 50s la comunidad de inteligencia
artificial se interesó por los juegos (Turing,
Shannon, Zuse, etc.)
Los juegos son un dominio apropiado para explorar
la inteligencia computacional.
Tarea bien estructurada, que permite medir
claramente el éxito o fracaso.
No requiere gran cantidad de conocimiento.
Pueden ser resueltos buscando una ruta del estado
inicial a la meta.
Con el progreso continuo del juego las maquinas
han superado a las personas, derrotando a
campeones mundiales humanos en ajedrez y
backgammon.
4. JUEGOS
La teoría matemática de juegos, una rama de la
economía, ve a cualquier entorno multiagente
como un juego
Los “juegos” que se tratan en IA son una clase
más especializada, usualmente tienen las
siguientes características:
Ambientes totalmente observables.
Dos jugadores
Son deterministas
Información perfecta
Movimientos alternados
5. JUEGOS
Los juegos son interesantes porque son demasiado
difíciles de resolver.
El ajedrez, por ejemplo, tiene un factor de
ramificación promedio de 35 y los juegos van a
menudo a 50 movimientos por cada jugador:
grafo de búsqueda: aproximadamente 1040
nodos distintos
árbol de búsqueda: 35100 o 10154 nodos
Los juegos, como el mundo real, requieren la
capacidad de tomar alguna decisión (la jugada)
cuando es infactible calcular la decisión óptima.
La investigación en juegos ha generado, varias
ideas interesantes de cómo hacer uso del tiempo, lo
mejor posible.
7. INTRODUCCIÓN
Un juego puede definirse formalmente como una clase
de problemas de búsqueda con los componentes
siguientes:
El estado inicial
Una función sucesor, que devuelve una lista de
pares (movimiento, estado)
Un test terminal, que determina cuándo termina
el juego (por estructura o propiedades o función
utilidad)
Una función utilidad
7
7
9. BÚSQUEDA ENTRE ADVERSARIOS
Aproximación trivial: generar todo el árbol de
jugadas.
Se etiquetan las jugadas terminales, dependiendo
de si gana MAX o MIN, con un valor de utilidad
de, por ejemplo, “+1” o “-1”.
El objetivo es encontrar un conjunto de
movimientos accesible que dé como ganador a
MAX.
Se propagan los valores de las jugadas terminales
de las hojas hasta la raíz.
Incluso un juego simple como tic-tac-toe es
demasiado complejo para dibujar el árbol de
juegos entero.
17. BÚSQUEDA ENTRE ADVERSARIOS
• Aproximación heurística: definir una función
que nos indique lo cerca que estamos de una jugada
ganadora (o perdedora).
• En esta función interviene información del
dominio.
• Esta función no representa ningún coste, ni es una
distancia en pasos.
• El algoritmo busca con profundidad limitada.
• Cada nueva decisión por parte del adversario
implicará repetir parte de la búsqueda.
18. EJEMPLO: TIC-TAC-TOE
e (función utilidad) = número de filas, columnas y diagonales completas
disponibles para MAX - número de filas, columnas y diagonales
completas disponibles para MIN
MAX juega con X y desea maximizar e
MIN juega con 0 y desea minimizar e
Valores absolutos altos de e: buena posición para el que tiene que mover
Controlar las simetrías
Utilizar una profundidad de parada (en el ejemplo: 2)
20. EJEMPLO: TIC-TAC-TOE
Por convención:
las jugadas ganadoras se evalúan a “+ ”
las jugadas perdedoras se evalúan a “- ”
21. PROCEDIMIENTO MINIMAX
Tres ideas básicas:
Evaluación estática: cálculo de un número que refleje la
calidad del tablero (positivo indica una posición favorable,
negativo una favorable al adversario).
Búsqueda hacia delante: se deben analizar varios
niveles abajo para tomar una buena decisión (en
profundidad limitada).
Modelado de adversarios: se modela el comportamiento
de un jugador de maximización (la máquina) y uno de
minimización (el adversario). Ambos siempre toman las
mejores decisiones.
22. ¿QUÉ HACE MINIMAX?
2
Nivel de Maximización
2 1
Nivel de Minimización
3 4
2 7 1 8
• ¿qué jugada debemos seleccionar?
• ¿realmente estamos seguros que será una buena jugada?
• ¿el adversario podría quedar en una posición adecuada
para hacernos daño?
23. ANALIZANDO EL PROCEDIMIENTO
En el nivel de maximización se busca un movimiento
que lleve a un número positivo grande. En el de
minimización uno que lleve hacia negativos.
Las decisiones del maximizador deben tener
conocimiento de las alternativas disponibles para el
minimizador del nivel inferior, y al revés.
Cuando se alcanza el limite de exploración, el
evaluador estático proporciona una base directa para
la selección de alternativas.
Minimax propaga información de abajo hacia arriba.
24. ALGORITMO
Para efectuar una búsqueda mediante MINIMAX:
Si el límite de búsqueda se ha alcanzado, calcular el valor
estático de la posición actual. Dar a conocer el resultado.
De otro modo, si el nivel es de minimización, usar MINIMAX
en los hijos de la posición actual y dar a conocer el menor de los
resultados.
De lo contrario, si el nivel es de maximización, usar MINIMAX
en los hijos de la posición actual y notificar el mayor de los
resultados.
25. ORDEN DE VISITAS Y EVALUACIÓN
5–2
10 – 2
2–2 7–1
4–2 9–1
1–2 3–7 6–1 8–8
26. EJEMPLO MINIMAX
Valor-Minimax(n): utilidad para MAX de estar en el
estado n asumiendo que ambos jugadores jueguen
óptimamente.
27. Valor-Minimax(n):
Utilidad(n), si n es un estado terminal
maxs∈Sucesores(n) Valor-Minimax(s), si n es un estado
MAX
mins∈Sucesores(n) Valor-Minimax(s), si n es un estado MIN
28. ALGORITMO MINIMAX
Calcula la decisión minimax del estado actual.
Usa un cálculo simple recurrente de los valores
minimax de cada estado sucesor.
La recursión avanza hacia las hojas del árbol.
Los valores minimax retroceden por el árbol
cuando la recursión se va deshaciendo.
29. ALGORITMO MINIMAX
A
B
El algoritmo primero va hacia abajo a los tres nodos
izquierdos y utiliza la función Utilidad para descubrir
que sus valores son 3, 12 y 8.
30. ALGORITMO MINIMAX
A
B C D
Entonces el algoritmo toma el mínimo de estos valores,
3, y lo devuelve como el valor del nodo B.
…
31. ALGORITMO MINIMAX
Realiza una exploración primero en profundidad
completa del árbol de juegos.
Si la profundidad máxima del árbol es m, y hay b
movimientos legales en cada punto, entonces la
complejidad :
en tiempo es O(bm);
en espacio es
• O(bm) si se generan todos los sucesores a la
vez;
• O(m) si se generan los sucesores uno por uno.
Juegos reales: los costos de tiempo son inaceptables,
pero este algoritmo sirve como base para el primer
análisis matemático y para algoritmos más prácticos.
44. INTRODUCCIÓN
Algoritmo minimax genera el espacio entero
Algoritmo alfa-beta permite podar partes grades de
él, además tiene que buscar en todos los caminos,
hasta los estados terminales.
Estos aun no son óptimos en cuanto al tiempo
Shannon en 1950 propuso que los programas
deberían cortar la búsqueda antes y aplicar una
función de evaluación heurística a los estados.
Convirtiendo los nodos no terminales en hojas
terminales. (Test-límite)
45. FUNCIONES DE EVALUACIÓN
o Devuelve una estimación de la utilidad
esperada de una posición dada. (Capitulo 4 y
juego de Ajedrez)
¿Cómo diseñamos funciones de evaluación
buenas?
1. Ordenar los estados terminales – (función de
utilidad verdadera)
2. El cálculo no debe utilizar demasiado tiempo
3. Para estados terminales, la función de
evaluación debería estar correlacionada con las
posibilidades actuales de ganar.
46. FUNCIONES DE EVALUACIÓN
En caso del juego de ajedrez, si cortamos la
búsqueda en algún estado no termina, el
algoritmo seria incierto sobre los resultados
finales.
Las funciones de evaluación trabajan calculando
varias características. (El juego de ajedrez,
numero de perones capturados)
47. FUNCIONES DE EVALUACIÓN
Las características juntas definen varias
categorías o clases de equivalencia.
Cualquier categoría puede tener algunos estados
que conduzcan a empates, triunfos o pérdidas.
Se puede obtener un valor que refleje la
proporción de estado en con cada resultado.
48. FUNCIONES DE EVALUACIÓN
Ejemplo: Estados encontrados en la categoría
que conducen.
72% de triunfo. (Utilidad + 1)
20% de pérdida (-1)
8% a un empate (0)
Se lo puede determinar para cada categoría, y
que puede producirse una función para cualquier
estado.
49. FUNCIONES DE EVALUACIÓN
En la práctica se requiere demasiadas categorías
y demasiada experiencia para estimar todas las
posibilidades de ganar.
Matemáticamente se existe una función llamada
función ponderada lineal
50. FUNCIONES DE EVALUACIÓN
Donde: cada es un peso y cada es una
característica de la posición.
En el ajedrez sería serían los números de cada
clase de pieza sobre el tablero y los podrían ser
los valores que tienen las piezas.
51. FUNCIONES DE EVALUACIÓN
El axioma debería ser muy fuerte de tal forma
que contribuya a que cada característica sea
independiente de los valores de las otras
características
52. CORTE DE LA BÚSQUEDA 1/4
Se debe modificar la búsqueda ALFA-BETA de
modo que llame a la función heurística Eval
cuando se corte la búsqueda.
Se sustituye la función Teste_Terminal con la
siguiente si TEST-CORTE(estado, profundidad)
entonces devolver Eval(estado).
53. CORTE DE LA BÚSQUEDA 2/4
La profundidad se incrementa sobre cada
llamada recursiva.
Para controlar la cantidad de búsqueda es poner
un límite de profundidad fijo. De modo que la
función devuelve verdadero para la profundidad
mayor de que la fija.
Una aproximación robusta es aplicar la
profundidad iterativa.
54. CORTE DE LA BÚSQUEDA 3/4
Pueden conducir a errores.
Las posiciones no estables en un ajedrez se
pueden extender hasta que se alcancen posiciones
estables. Denominada búsqueda de
estabilidad o de reposo, a veces se restringe a
solo ciertos tipos de movimientos, como
movimientos de captura, que resolverán
rápidamente la incertidumbre en la posición.
55. CORTE DE LA BÚSQUEDA 4/4
Efecto horizonte es más difícil de eliminar. Se
produce cuando el programa afronta un
movimiento, del oponente.
El uso de extensiones excepcionales ha sido
bastante eficaz para evitar el efecto horizonte sin
añadir demasiado coste a la búsqueda.
Como conclusión , la combinación de todas las
técnicas descritas proporciona un programa que
pueda jugar al ajedrez loablemente (O a otros
juegos).
57. INTRODUCCIÓN
En la vida real existen factores imprevisible.
Los juegos reflejan esto (los dados).
El elemento aleatorio acerca a la realidad
Backgammon
Indicaciones
59. BACKGAMMON
El objetivo de Backgammon es quitar todas sus
piezas del tablero antes que su oponente.
Un árbol de juegos en el backgamman debe
incluir nodos de posibilidad, nodos max, nodos
min.
60. BACKGAMMON
Blanco sabe cuáles son sus propios movimientos
legales, no sabe lo que va salir a Negro.
Blanco no puede construir un árbol de juegos estándar
con el ajedrez. (Nodos de posibilidad)
61. BLANCO
NEGRO
Una posición típica del backgammon. El objetivo del juego es
mover todas las fichas del tablero. Blanco mueve a la derecha
hacía 25, y los movimientos de Negro al contrarío, hacia 0. Una
ficha puede moverse a cualquier posición a menos que haya varias
piezas del oponente; si hay un oponente, es capturado y debe
comenzar. En la posición mostrada, Blanca ha sacado 6-5 y debe
elegir entre cuatro movimientos legales: (5-10,5-11 ), (5-11 ,19-24),
(5- 10, 10- 16) y (5-11, 11- 16).
62. NODOS DE
POSIBILID
AD
POSIBLES Posibilidad
TIRADAS de que
ocurra
Figura 6.11 Árbol de juegos esquemático para la posición del
backgammon
68. PROGRAMAS DE JUEGOS: AJEDREZ
Tiene unas reglas claramente definidas y unos
objetivos inequívocos.
Deep Blue fue clasificado como el mejor jugador de
ajedrez de ordenador en el mundo, además de ser
el primero en batir al maestro del ajedrez Garry
Kasparov.
La búsqueda que utiliza la alfa-beta estándar de
profundidad iterativa, con capacidad de generar
extensiones mas allá de su limite.
69. PROGRAMAS DE JUEGOS: DAMAS
Chinook (J.Schaffer) es probablemente el mejor
programa de ordenador de Damas, ya que fue el
primero en ganar un campeonato del mundo
contra humanos.
Este programa usa la búsqueda alfa-beta.
Chinook usa una base de datos pre calculados de
444 billones de posiciones con 8 o menos piezas
sobre el tablero para así hacer la fase final del
juego de forma impecable.
70. PROGRAMAS DE JUEGOS: OTELO
Llamado también Reversi, siendo mas popular
como un juego de computador que como de mesa.
Otelo crea interés entre los programadores
debido a la sencillez de sus reglas: sólo un tipo de
movimiento, un único tipo de fichas, etc
Por ejemplo, el programa Logistello en 1997
derrotó claramente al campeón mundial
Murakami por 6 victorias a 0.
Minimax es el método de decisión que utiliza
otelo para minimizar la pérdida máxima
esperada en juegos, con poda alfa-beta.
71. PROGRAMAS DE JUEGOS: BACKGAMMON
El elemento de incertidumbre que
introduce el lanzamiento de dados en
el juego del backgammon hace de la
búsqueda un lujo muy costoso.
El primer programa que tuvo repercusión, BK.G,
utilizaba sólo búsqueda de una capa, aunque la
función de evaluación era bastante compleja.
Y lo más interesante es que su inteligencia
artificial está mejorando gradualmente.
Recientemente, Gerry Tesauro combinó el método
de aprendizaje de Samuel con las técnicas de las
redes neuronales para crear una nueva función de
evaluación.
El programa TD-Gammon está considerado sin
lugar a dudas entre los tres mejores jugadores del
mundo
72. PROGRAMAS DE JUEGOS: GO
Juego de mesa mas popular de Asia, que …. …….
requiere tanta disciplina como el ajedrez.
El tablero es de 19x19, el factor de ramificación
comienza en 361, desalentando los métodos de
búsqueda.
La mayor parte de los mejores programas mejores
combinan técnicas de reconocimiento de modelos
con la búsqueda limitada.
Los programas mas fuertes son Goemate de Chen
Zhixing y Go4++ de Michael Reiss.
Go es una área que se beneficiara de la
investigación que utiliza métodos de razonamiento
mas sofisticados .
73. PROGRAMAS DE JUEGOS: BRIDGE
Es un juego de información imperfecta: en donde
las cartas de un jugador se esconden de los otros.
El juego optimo en el bridge incluye elementos de
reunión de información, comunicación y
probabilidades.
Bridge barón, es un sistema de juegos que usa
planes complejos y jerárquicos que implica ideas
de alto nivel como astucia y aprieto.
GIB, el mejor programa de bridge actual,
aproxima esta idea, generando 100 partidas
consistente con información propuesta y
escogiendo la acción que gana mas en promedio