Exp BúSqueda Entre Adversarios

Preview:

Citation preview

BÚSQUEDA ENTRE

ADVERSARIOSCAPITULO 6

Diana L. Poma

Ana Paz

Edwin Maza

Argenis Riofrío

INTEGRANTES:

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

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.

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

JUEGOS

Los juegos son interesantes porque son demasiadodifíciles de resolver.

El ajedrez, por ejemplo, tiene un factor deramificación promedio de 35 y los juegos van amenudo 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 lacapacidad de tomar alguna decisión (la jugada)cuando es infactible calcular la decisión óptima.

La investigación en juegos ha generado, variasideas interesantes de cómo hacer uso del tiempo, lomejor posible.

DECISIONES OPTIMAS EN EL

JUEGO

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

BÚSQUEDA ENTRE ADVERSARIOS

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 utilidadde, 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.

BÚSQUEDA ENTRE ADVERSARIOS

BÚSQUEDA ENTRE ADVERSARIOS

BÚSQUEDA ENTRE ADVERSARIOS

BÚSQUEDA ENTRE ADVERSARIOS

BÚSQUEDA ENTRE ADVERSARIOS

BÚSQUEDA ENTRE ADVERSARIOS

BÚSQUEDA ENTRE ADVERSARIOS

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.

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)

EJEMPLO: TIC-TAC-TOE

EJEMPLO: TIC-TAC-TOE

Por convención:

las jugadas ganadoras se evalúan a “+ ”

las jugadas perdedoras se evalúan a “- ”

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.

¿QUÉ HACE MINIMAX?

• ¿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?

Nivel de Maximización

Nivel de Minimización

3 4

2 7 1 8

2 1

2

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.

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.

ORDEN DE VISITAS Y EVALUACIÓN

1 – 2 3 – 7 6 – 1 8 – 8

2 – 2

4 – 2

7 – 1

9 – 1

5 – 2

10 – 2

EJEMPLO MINIMAX

Valor-Minimax(n): utilidad para MAX de estar en el

estado n asumiendo que ambos jugadores jueguen

óptimamente.

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

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.

ALGORITMO MINIMAX

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.

A

B

ALGORITMO MINIMAX

Entonces el algoritmo toma el mínimo de estos valores,

3, y lo devuelve como el valor del nodo B.

A

B DC

ALGORITMO MINIMAX

Realiza una exploración primero en profundidadcompleta del árbol de juegos.

Si la profundidad máxima del árbol es m, y hay bmovimientos legales en cada punto, entonces lacomplejidad :

en tiempo es O(bm);

en espacio es

• O(bm) si se generan todos los sucesores a lavez;

• 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 primeranálisis matemático y para algoritmos más prácticos.

PODA ALFA-BETA

PODA ALFA-BETA

DECISIONES EN TIEMPO REAL

IMPERFECTAS

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 programasdeberían cortar la búsqueda antes y aplicar unafunción de evaluación heurística a los estados.

Convirtiendo los nodos no terminales en hojasterminales. (Test-límite)

FUNCIONES DE EVALUACIÓN

o Devuelve una estimación de la utilidadesperada de una posición dada. (Capitulo 4 yjuego de Ajedrez)

¿Cómo diseñamos funciones de evaluaciónbuenas?

1. Ordenar los estados terminales – (función deutilidad verdadera)

2. El cálculo no debe utilizar demasiado tiempo

3. Para estados terminales, la función deevaluación debería estar correlacionada con lasposibilidades actuales de ganar.

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)

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.

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.

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

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.

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

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).

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.

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.

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).

JUEGOS QUE INCLUYEN UN

ELEMENTO DE POSIBILIDAD

INTRODUCCIÓN

En la vida real existen factores imprevisible.

Los juegos reflejan esto (los dados).

El elemento aleatorio acerca a la realidad

Backgammon

Indicaciones

BACKGAMMON

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.

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)

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).

BLANCO

NEGRO

Figura 6.11 Árbol de juegos esquemático para la posición del backgammon

NODOS DE

POSIBILID

AD

POSIBLES

TIRADAS

Posibilidad

de que

ocurra

Hay 36 resultados posibles. 6 x 6 lados.

11 12 13 14 15 16

21 22 23 24 25 26

31 32 33 34 35 36

41 42 43 44 45 46

51 52 53 54 55 56

61 62 63 64 65 66

Pero como 6 y 5 es igual a 5 y 6 solo hay 21 resultados distintos

11 12 13 14 15 16

21 22 23 24 25 26

31 32 33 34 35 36

41 42 43 44 45 46

51 52 53 54 55 56

61 62 63 64 65 66

Los 6 dobles tienen una posibilidad de 1/36

11 12 13 14 15 16

21 22 23 24 25 26

31 32 33 34 35 36

41 42 43 44 45 46

51 52 53 54 55 56

61 62 63 64 65 66

Los 15 restantes 1/18

11 12 13 14 15 16

21 22 23 24 25 26

31 32 33 34 35 36

41 42 43 44 45 46

51 52 53 54 55 56

61 62 63 64 65 66

PROGRAMAS DE JUEGOS

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.

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.

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.

PROGRAMAS DE JUEGOS: BACKGAMMON

El primer programa que tuvo repercusión, BK.G,utilizaba sólo búsqueda de una capa, aunque lafunción de evaluación era bastante compleja.

Y lo más interesante es que su inteligenciaartificial está mejorando gradualmente.

Recientemente, Gerry Tesauro combinó el métodode aprendizaje de Samuel con las técnicas de lasredes neuronales para crear una nueva función deevaluación.

El programa TD-Gammon está considerado sinlugar a dudas entre los tres mejores jugadores delmundo

El elemento de incertidumbre queintroduce el lanzamiento de dados enel juego del backgammon hace de labúsqueda un lujo muy costoso.

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óncomienza en 361, desalentando los métodos debúsqueda.

La mayor parte de los mejores programas mejorescombinan técnicas de reconocimiento de modeloscon la búsqueda limitada.

Los programas mas fuertes son Goemate de ChenZhixing y Go4++ de Michael Reiss.

Go es una área que se beneficiara de lainvestigación que utiliza métodos de razonamientomas sofisticados .

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

GRACIAS

Recommended