tema 1: técnicas heurísticas en juegos introducción estrategias básicas: estrategia exhaustiva:...

71
Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS* Estrategia de test previo: Scout Técnicas avanzadas. Técnica de bajada progresiva. Poda heurística. Continuación heurística.

Upload: fabricio-loyola

Post on 27-Jan-2016

231 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Tema 1: Técnicas heurísticas enjuegos

• Introducción• Estrategias básicas:

• Estrategia exhaustiva: MiniMax• Estrategia de poda: alfa-beta• Estrategia: SSS*• Estrategia de test previo: Scout

• Técnicas avanzadas.• Técnica de bajada progresiva.• Poda heurística.• Continuación heurística.

Page 2: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Introducción

¿Porqué los juegos en Inteligencia Artificial? Historia:

Wolfgam Kempelem, el ajedrecista mecánico 1760. El Ajedrecista, Leonardo Torres Quevedo, 1912. Turing 1952. Shanon. Arthur Samuel, damas, 1963. El campo de batalla: El Ajedrez. Nuevos retos: El GO.

Page 3: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

¿Porqué los juegos en Inteligencia Artificial?

Entorno controlado. REGLAS CONCISAS. Se requiere “inteligencia”. La máquina imita al humano. Fácil evaluación.

Page 4: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Introducción Programación de las máquinas para juegos de

estrategia Basados en búsqueda (complejos espacios de

búsqueda) La existencia de un oponente introduce incertidumbre Existen limitaciones en el tiempo de respuesta Pueden competir contra la inteligencia humana

En general, se trata de construir sistemas que sean capaces de tomar decisiones en un entorno adverso.

Page 5: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Introducción

Tipos de juegos: Información completa, deterministas:

ajedrez, damas Información completa, con azar:

backgammon Información incompleta, con azar:

juegos de cartas

Page 6: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Características y ejemplos Características de los juegos que vamos a

estudiar en este tema: Juegos bipersonales. Los jugadores mueven alternativamente. La ventaja para un jugador es desventaja para el otro. Los jugadores poseen toda la información sobre el

estado del juego. Hay un número finito de estados y decisiones. No interviene el azar (reglas y configuración jugada).

Page 7: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Características y ejemplos

Ejemplos de juegos de ese tipo: Ajedrez, damas, go, otelo, 3 en raya, nim, ...

Ejemplos de juegos que no son de ese tipo: Backgammon, poker, bridge, ...

Page 8: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

El turco. Wolfgang von

Kempelen en 1769. En 1809, el Turco

derrotó a Napoleón Bonaparte.

Page 9: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

El turco.

Page 10: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia Leonardo Torres Quevedo. El ajedrecista hizo su debut

durante la Feria de París de 1914, generando gran expectación en aquellos tiempos y hubo una extensa primera mención en la Scientific American como "Torres and His Remarkable Automatic Device“.

Jugaba automáticamente el final rey y torre contra rey desde cualquier posición sin ninguna intervención humana.

Page 11: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

En 1952 Turing escribió un programa de ajedrez.

A falta de una computadora lo suficientemente potente como para ejecutarlo, él simulaba el funcionamiento de la computadora, tardando más de hora y media en efectuar un movimiento.

Una de las partidas llegó a registrarse; el programa perdió frente a un amigo de Turing.

Page 12: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia Claude Shannon. Se dio cuenta que el gran problema de las

máquinas que pretendiesen jugar al ajedrez sería el gran número de evaluaciones.

A-Strategy: búsqueda exhaustiva, hardware. Shannon predijo que buscando las 30^6 (más de 700.000.000) posiciones contenidas en los primeros tres movimientos (de ambos bandos, lo que son 6 plies), tardaría aproximadamente 16 minutos, incluso en el caso "muy optimista" que el programa evaluara un millón de posiciones por segundo. 40 años para conseguir esa velocidad.

B-Strategy: cortar las ramas de evaluación y reducir el número de evaluaciones de forma inteligente. Software. Los Maestros internacionales evalúan entre 50-60 posiciones.

Page 13: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia Arthur L. Samuel. 1963. Pensaba que enseñar a las

computadoras jugar juegos era muy útil para desarrollar tácticas apropiadas para problemas generales.

Las damas son simples pero tienen una compleja estrategia.

Chinook 1989 - 2007. El problema ha sido completamente resuelto explorando todas las posibles posiciones.

Page 14: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

Ajedrez:Ajedrez: El campo de BatallaEl campo de Batalla En 1968, el MI David Levy realizó una

famosa apuesta, en la cual afirmaba que ninguna computadora de ajedrez sería capaz de derrotarle en diez años, bajo condiciones de torneo. Ganó la apuesta en 1978, venciendo por 3'5-1'5.

Page 15: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

• Deep blueDeep blue• Feng-hsiung Hsu y Murray Campbell desarrollaron

un chip dedicado al cálculo de jugadas llamado ChipTest.

• Escrito en C, era capaz de evaluar 200 millones de posiciones por segundo.

Page 16: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

Deep blue vs Kasparov 1996

1997

Page 17: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

Profundidad de búsqueda vs ELO

Page 18: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

2005 - Un equipo de computadoras (Hydra, Deep Junior y Fritz), gana 8.5-3.5 contra un fuerte equipo de humanos formado por Veselin Topalov, Ruslan Ponomariov y Sergey Karjakin, que tenía una media de ELO de 2681.

2006 - En el campeonato del mundo oficioso, Vladimir Kramnik es derrotado por Deep Fritz 4-2.

Page 19: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia

http://www.bobby-fischer.net/bobby_fischer_video_18.htm http://www.youtube.com/watch?v=NJarxpYyoFI

Page 20: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Historia Nuevos retos: EL GO. El tablero es muy grande

19x19, 361 intersecciones.

Hay muchos movimientos posibles.

Complejidad creciente. Función de evaluación.

difícil de definir. Nivel de aficionado.

Page 21: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Estrategias básicas:

Objetivo: búsqueda de la mejor jugada Nos centraremos en un juego genérico.

Dos jugadores, jugando por turnos. Cada jugador está perfectamente informado de las reglas

del juego y conoce en todo momento la configuración de cada jugada (no hay azar).

De estos dos jugadores cada uno intenta ganar para sí. Si decimos que un jugador gana, el otro pierde y viceversa. Puede existir un estado de empate.

Etiquetamos a los jugadores con MAX y MIN. Por norma siempre empezará a jugar MAX y vamos a querer que gane dicho jugador.

Page 22: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Estrategias básicas: Estado(N): configuración del juego en un momento dado. Árbol de juego. Cada arista de ese árbol indica un posible

movimiento. Una rama completa contempla una posible jugada.

En cada nivel se van alternando los jugadores. Factor de ramificación: número de posibles movimientos que se

pueden realizar.

Page 23: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Árboles de juego: tres en línea

Page 24: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Estrategias básicas:

Imposible generar todo el árbol de búsqueda Generar hasta un determinado nivel de profundidad. Aplicar alguna función de evaluación f(N).

Devuelve un valor numérico cómo de bueno es un estado. MAX maximizará esta función y MIN minimizará dicha

función. En algunos casos la función nos puede devolver valores

como PIERDE, GANA o EMPATA, siempre referidos a MAX.

Objetivo del análisis del árbol: determinar valor del nodo raíz (inicio de la jugada). A este valor se le denomina valor MiniMax.

Page 25: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 26: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 27: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 28: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 29: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 30: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 31: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 32: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Árboles de juego

Representación de todas las posibles situaciones que se pueden dar en el juego, a partir de un estado dado

Cada nivel corresponde a un jugador (el primero para MAX).

Page 33: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Estrategia exhaustiva: MiniMax

El problema de decidir el movimiento adecuado. En su turno, la máquina debe decidir que movimiento

hacer. Idea:

En cada turno, construir el árbol de juego completo cuyo nodo raíz sea la situación actual, desarrollándolo hasta los estados finales.

Valorar los finales según la función de utilidad. Propagar hacia arriba los valores de la función. Elegir el movimiento que lleve al estado sucesor del actual

con mejor valoración.

Page 34: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Estrategia exhaustiva: MiniMax

La propagación de valores se hace según el principio minimax: MAX siempre escogerá lo mejor para MAX y MIN lo

peor para MAX. Un nodo de MAX toma el valor del sucesor con

mayor valor. Un nodo de MIN toma el valor del sucesor con menor

valor

Page 35: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 36: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 37: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 38: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Heurística: función de evaluación estática

Función de evaluación estática: Dado un estado del juego y un turno, es una estimación de la bondad de tal

situación respecto de MAX En los estados finales, deberá coincidir con la de utilidad Esta función heurística codifica todo el conocimiento que poseemos acerca

del juego Cuanto mayor el valor, mejor el estado para MAX Lo importante es la comparación del valor entre los estados

Calidad de la f.e.: En estados terminales f.e.=f.u. ¡Su cálculo no debe ser muy lento!. Compromiso precisión-costo en tiempo. La f.e. debe reflejar con precisión las posibilidades reales de ganar.

Page 39: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Heurística: función de evaluación estática

Implementación: En lo que sigue, asumiremos que en lugar de una

función f-utilidad(estado,turno), disponemos de una función f-e-estatica(estado,turno), definida sobre todos los estados

También necesitaremos dos variables: *maximo-valor* y *minimo-valor* almacenando, respectivamente, cotas para el mayor y el menor valor que puede tomar la función de evaluación estática

Page 40: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 41: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 42: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Complejidad: Sea r es el factor de ramificación y m el nivel de profundidad. Complejidad en tiempo: O(rm). Complejidad en espacio: O(rm).

Aún es ineficiente en la práctica: En el ajedrez, con 150 segundos por turno, solo sería posible

analizar 150000 nodos, luego sólo se podría generar un árbol de profundidad menor que 4

Por tanto, la calidad del juego de la máquina será muy baja (un jugador humano medio puede planificar al menos 6 jugadas por adelantado)

La poda alfa-beta mejora : En algunos casos, es posible podar el árbol sin que afecte a la

decisión que se toma finalmente

Complejidad de minimax

Page 43: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Estrategia de poda: alfa-beta

Page 44: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*
Page 45: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Minimax con poda alfa-beta

•Idea:•Cada nodo se analiza teniendo en cuenta el valor que por el momento tiene y el valor que por el momento tiene su padre•Esto determina en cada momento un intervalo de posibles valores que podría tomar el nodo

•Significado intuitivo de en cada momento:•Nodos MAX: es el valor actual del nodo (que tendría eso o más) y es el valor actual del padre (que tendría eso o menos)•Nodos MIN: es el valor actual del nodo (que tendría eso o menos) y es el valor actual del padre (que tendría eso o más)

),(

y

Page 46: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Minimax con poda alfa-beta

•La poda se produce si en algún momento :•Y no hace falta analizar los restantes sucesores del nodo•En nodos MIN, se denomina poda y en los nodos MAX, poda

Page 47: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Minimax con poda alfa-beta

•A •B

•C •D

6

(10,6)

(6,10)

6

(6,+inf)

Page 48: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Minimax con poda alfa-beta

Page 49: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Complejidad: Sea r es el factor de ramificación y m el nivel de

profundidad. Complejidad en tiempo: O(r3m/4). Complejidad en espacio: O(rm). En la práctica, si los sucesores se exploran en orden de

valor minimax (creciente o decreciente dependiendo de si es un nodo MIN o MAX, resp.), se produce la máxima poda, y en ese caso la complejidad temporal es O(rm/2)

Complejidad de alfa-beta

Page 50: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Esto hace que en el mismo tiempo se puedan considerar el doble de jugadas por adelantado (haciendo a la máquina más competitiva)

Métodos (aproximados) para generar los sucesores en orden: Usar el valor de la función de evaluación estática para ordenar Usar búsqueda en profundidad iterativa y guardar los valores

minimax calculados en cada iteración

Complejidad de alfa-beta

Page 51: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SSS* Mejora, en algunos casos al algoritmo alfa-beta: ordenación de

los nodos terminales. Desventaja: incremento de la complejidad espacial. SSS* utiliza subárboles del árbol de juego (normalmente ramas

de dicho árbol). Estos subárboles tienen asignados el límite inferior más alto de

sus constituyentes. El valor asignado al subárbol siempre será mayor o igual que la

mejor solución encontrada dentro de ese subárbol. El valor asignado a un subárbol permite realizar la ordenación. Suponemos que empieza jugando MAX por lo que buscamos el

valor más alto posible entre todos los valores asignados a los nodos terminales.

Page 52: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SSS* SSS* utiliza la notación decimal de Dewey para representar los

nodos en el árbol. Nodo raíz:ε Resto de nodos: N.n (hijo n, desde la izquierda, del nodo N).

Tripleta(N, s, h) para cada estado N: numeración del nodo. s = {VIVO, SOLUCIONADO}: estado de la solución de N. h = [-∞, +∞] es el valor del estado.

Un nodo etiquetado con VIVO indica que aún se puede seguir generando sucesores del nodo,

SOLUCIONADO indica que todos los sucesores ya han sido generados.

Page 53: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SSS*

Funcionamiento en dos etapas: Generación de un conjunto de ramas, expandiendo el

primer hijo si se trata de un nodo MIN y todos los hijos si se trata de un nodo MAX.

Seleccionando estados según su valor h, se generan sucesores de los nodos no solucionados hasta que se solucionen. En el caso de que un nodo esté solucionado se soluciona el padre (si es nodo MIN o el último hermano de un MAX) o se genera el siguiente hermano, en el caso de tratarse de un nodo MAX que no sea último hermano.

Page 54: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SSS*

Page 55: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SSS*

Page 56: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SSS*

Ejemplo de ejecución del algoritmo SSS*

Page 57: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SCOUT Condición indispensable: se dispone de un método rápido para

comprobar desigualdades. Conocemos una función que permite comprobar si el valor

MiniMax de un nodo es menor o mayor que un determinado valor.

SCOUT utiliza dos rutinas TEST: Resuelve la desigualdad. Parámetros de entrada:

Nodo al que aplicar el test. Valor de comparación. Desigualdad a aplicar (> ó ≥). Salida: verdadero o falso, según se cumpla o no la desigualdad.

EVAL: Calcula el valor MiniMax de un nodo. Hace uso de TEST para comprobar si debe explorar una determinada

rama.

Page 58: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SCOUT

Page 59: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SCOUT

Page 60: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SCOUT

Page 61: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

SCOUT Negascout: ventana (α, α+1) En ajedrez se ha estimado una mejora del rendimiento del 10%.

function negascout(node, depth, α, β) if node is a terminal node or depth = 0 return the heuristic value of node b := β foreach child of node v := -negascout (child, depth-1, -b, -α) if α < v < β and not the first child v := -negascout(child, depth-1, -β, -v) (* re-búsqueda *) α := max(α, v) if α≥β return α (* poda *) b := α+1 (* nueva ventana *) return α

Page 62: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Técnicas avanzadas

Uso de movimientos de libros Técnica de bajada progresiva Poda heurística Continuación heurística Poda “movimiento nulo” (null-move prunning) Transposition table

Page 63: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Técnicas avanzadas Imposible seleccionar siempre un movimiento consultando la

configuración actual del juego en un catálogo y extrayendo el movimiento correcto.

Razonable para algunas partes de ciertos juegos. En ajedrez, tanto la secuencia de apertura como los finales

están muy estudiados. El rendimiento del programa puede mejorarse si se le

proporciona una lista de movimientos (de libro) que deberían realizarse en dichos casos.

Se usa el libro en las aperturas y los finales combinado con el procedimiento MiniMax para la parte central de la partida

Conocimiento + búsqueda

Page 64: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Técnica de bajada progresiva

Restricciones de tiempo: algoritmos presentados anteriormente no adecuados.

Técnica de bajada progresiva Recorrer nodos por niveles. Al llegar la petición de jugada, devolver la solución del

último nivel que se haya completado.

Page 65: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Técnica de bajada progresiva No se produce una evaluación de excesivos nodos (comparando

con métodos anteriores): El número de nodos terminales de un árbol con un factor de

ramificación de B y una profundidad de d es igual a Bd nodos. El número de nodos no terminales en dicho árbol se puede

calcular con la serie: B0+B1+..+Bd-1 = (Bd-1)/(B-1) Al dividir el número de nodos terminales entre el número de

nodos no terminales: Bd(B-1)/(Bd-1) ≈ B-1 El número de nodos terminales es B-1 veces mayor que el

número de nodos no terminales, por lo que no se produce sobre evaluación de nodos.

Page 66: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Poda heurística Objetivo: reducir B desarrollando únicamente los mejores

movimientos de cada nivel. g(N): Función adicional de evaluación

De bajo coste. Versión simplificada de f(N). Reordenación de nodos: el primer nodo de un nivel es el de

mayor g(N). Factor de ramificación:Factor(Nodo) = Factor(Padre(Nodo)) - Rango(Nodo)

Page 67: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Continuación heurística Intento de evitar el efecto horizonte. Provocado por la limitación en profundidad: solo se puede tener

conocimiento hasta la profundidad seleccionada. Secuencia:

Desarrollar en anchura hasta un determinado nivel. Seleccionar un subconjunto de nodos terminales para desarrollar

búsquedas más profundas. Selección dada por un conjunto de heurísticas directamente

relacionadas con el juego. En ajedrez:

Rey en peligro. Peón a punto de convertirse en dama. Jaque….

Page 68: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Movimiento nulo Null-move forward prunning permite a un programa de ajedrez

reducir de forma drástica el factor de ramificación con un cierto riesgo de perder información importante.

Chrilly Donniger, 1993. La idea es dar al oponente una jugada de ventaja, y si tu

posición sigue siendo buena, (alfa mayor que beta), se asume que el alfa real seguirá siendo mayor que beta y por tanto podamos esa rama y seguimos examinando otros nodos.

No se suelen permitir dos movimientos nulos seguidos. Inestabilidad en la búsqueda. Los valores de beta pueden

cambiar.

Page 69: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Transposition table En muchos juegos es posible llegar a la misma posición a partir

de diferencias secuencias de movimientos. En ajedrez, por ejemplo: 1. d4 Nf6 2. c4 g6 tiene 4 posibles

“transposiciones”. Se utiliza una hash table, por cada una de las posiciones

analizadas a partir de una determinada profundidad. Cada vez que llegamos a una nueva posición el programa

comprueba en la tabla para ver si ya se ha analizado esa posición. (Key, tiempo constante). Si está, se recoge el valor anteriormente asignado a esa posición y el valor es usado directamente. Si no se encuentra, se calcula el valor con la función de evaluación y se inserta esa posición-valor en la tabla.

Se pueden evitar evaluaciones de subárboles completos.

Page 70: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Cuestiones Técnicas Existen numerosas mejoras a las técnicas descritas, que

permiten crear máquinas que juegan a nivel competitivo Decisiones sobre la profundidad (>donde parar la busqueda?) Diseño de funciones de evaluación estática

Combinación lineal de características Pesos para ponderar la importancia de cada característica

Aprendizaje automático Aprendizaje de los pesos, tras una serie de partidas consigo

misma Redes neuronales, algoritmos genéticos, etc.

Page 71: Tema 1: Técnicas heurísticas en juegos Introducción Estrategias básicas: Estrategia exhaustiva: MiniMax Estrategia de poda: alfa-beta Estrategia: SSS*

Bibliografía

Russell, S. y Norvig, P. “Inteligencia Artificial. Un enfoque moderno” (Prentice Hall, 1996).

Cap. 5: Juegos". M.A.Cazorla, P. Campaña, F. Escolano y R. Rizo, “Fundamentos de Inteligencia Artificial” (Pub. Universidad Alicante, 1999).

Cap. 5: Búsqueda en Juegos". F. Escolano, M.A.Cazorla, I. Alfonso, O. Colomina y M.A. Lozano, “Inteligencia Artificial. Modelos, Técnicas y Áreas de Aplicación” (Thomson, 2003).

Cap. 2: Búsqueda Heurística (sección 2.3)".