T4

12
pp. 1 Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV Algoritmos de Búsqueda con Adversario pp. 2 Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV Indice Tema 4: Algoritmos de Búsqueda con Adversario. Caracterización de los problemas Procedimiento Minimax Poda alfa-beta. Variaciones. Refinamientos adicionales

description

diapositivas de la teoria de juegos

Transcript of T4

Page 1: T4

pp. 1

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Algoritmos de Búsqueda con Adversario

pp. 2

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Indice

Tema 4: Algoritmos de Búsqueda con Adversario.

Caracterización de los problemas Procedimiento Minimax Poda alfa-beta. Variaciones. Refinamientos adicionales

Page 2: T4

pp. 3

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

(Estrategias de Búsqueda para juegos)Características:Limitado a dos personas (computador, hombre), que juegan alternativamente.Perfectamente informados:

- Las reglas son conocidas y limitadas.- El juego termina en un nº finito de movimientos.- No influye la suerte- Cada jugador conoce perfectamente la evolución pasada del juego y lo que puede

hacer el y su oponente.- Puede ser representado por una árbol finito, donde cada nodo terminal es una

posición de movimiento para un jugador y sus sucesores son las posiciones que puede alcanzar en un movimiento.

- A cada estado del juego (nodo) se le puede asociar un valor.- La meta de un jugador es maximizar las evaluaciones de los nodos terminales, y el

oponente desea minimizarlas.

Cada uno de los jugadores gana, pierde o empata.Problema: Determinar la mejor jugada inicial.

Caracterización de los problemas

pp. 4

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Caracterización de los problemasEjemplo: Juego de Grundy

(7, MAX)

(6,1,MIN) (5,2,MIN) (4,3,MIN)

(5,1,1,MAX) (4,2,1,MAX) (3,2,2,MAX) (3,3,1,MAX)

(4,1,1,1,MIN) (3,2,1,1,MIN) (2,2,2,1,MIN)

(3,1,1,1,1,MAX) (2,2,1,1,1,MAX)

(2,1,1,1,1,1,MIN)

Nodos AND

Nodos OR

MIN

MAX

MIN

MAX

MIN

MAX

Page 3: T4

pp. 5

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Caracterización de los problemasCuestiones:

• Generalmente los juegos pueden ser resueltos mediante técnicas de búsqueda sobre grafos and/or.• Sin embargo, aún con juegos simples, una exploración completa del grafo es totalmente inviable.• Aunque se apliquen técnicas de búsqueda heurísticas, que limitan el crecimiento, no se reduce suficientemente el espacio de estados.

Soluciones:

a) Incrementar la potencia heurística del método, aún perdiendo admisibilidad, con la condición de que B ~ 1. (En algunos juegos impracticable por el poco conocimiento disponible).

b) Abandonar la búsqueda en cierto nivel, sin llegar a la meta, y mediante cierto procedimiento decidir la mejor jugada inicial (MINIMAX, ).

pp. 6

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento MINIMAX

• Aplicación de una búsqueda en anchura / profundidad.• Limitación del crecimiento del árbol en un cierto nivel: no terminamos la búsqueda en una posición ganadora, sino en un estado razonablemente ventajoso.• Medimos la bondad los nodo-hoja mediante una función de evaluación f(n):

> 0 : ventaja MAX < 0 : ventaja MIN = 0 : empate.• El procedimiento MINIMAX permite extraer el primer movimiento, en función de la visión que se tiene del juego en un nivel dado, sin necesidad de expandir todo el árbol.• Al nodo MAX le asignamos el máximo valor de las evaluaciones/valores-volcados de sus nodos sucesores.• Al nodo MIN le asignamos el mínimo valor de las evaluaciones/valor-volcado de sus nodos sucesores.

(7, MAX)

(6,1,MIN) (5,2,MIN) (4,3,MIN)

(5,1,1,MAX) (4,2,1,MAX) (3,2,2,MAX) (3,3,1,MAX)

(4,1,1,1,MIN) (3,2,1,1,MIN) (2,2,2,1,MIN)

MIN

MAX

MIN

MAX

2 4 3

4 4 3 4

4 3 4

Page 4: T4

pp. 7

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento MINIMAX / Ejemplo: TIC-TAC-TOE

Max: X MIN: 0

f(n) = (nº de filas, columnas o diagonales que están sin

ocupar por MIN) – (nº de filas, columnas o diagonales que están todavía sin ocupar por MAX).

f(n)= +, Si es una posición ganadora para MAX

f(n)= - , Si es una posición ganadora para MIN

pp. 8

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento MINIMAX / Ejemplo: TIC-TAC-TOE-(2)

Árbol del Juego:

• Profundidad de exploración: 2 niveles

• Posiciones simétricas

Page 5: T4

pp. 9

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento MINIMAX / Ejemplo: TIC-TAC-TOE-(3)

pp. 10

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento MINIMAX / Ejemplo: TIC-TAC-TOE-(4)

Page 6: T4

pp. 11

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento MINIMAX

1) Expandir el árbol hasta un cierto nivel (anchura).2) Evaluar los nodos terminales del árbol mediante una función heurística f(n).3) Volcamos los valores a los nodos predecesores en cada nivel:

NODO MAX : máximo de sus sucesoresNODO MIN : mínimo de sus sucesores

4) Si el nodo inicial es MAX, elige aquella jugada sobre el nodo sucesor de mayor valor volcado.

Utilidad del procedimiento:La elección de la mejor jugada en el primer nivel, se realiza en función de la posición del juego en un nivel más profundo: los valores volcados sobre los nodos sucesores tienen mayor información que la función de evaluación aplicada sobre ellos.

Confianza del algoritmo:• nivel de expansión del árbol.• función de evaluación.

pp. 12

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA

El procedimiento MINIMAX separa completamente el proceso de generación del árbol y la evaluación de los nodos terminales ineficiencia.

El procedimientose basa en unir los dos procesos: cuando se genera un nodo terminal, simultáneamente, se evalúa y se vuelca su valor.

-1-1 30-1 3 -2 -1 -3 -2 5 -21 -233-1 04 3-23 4

MAX

MIN

Page 7: T4

pp. 13

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA-(2)

1) Inicialmente:

NODOS MAX: Valores (valor inicial = -)

NODOS MIN: Valores (valor inicial = + )

2) Desarrollar el árbol en profundidad.

3) Cuando alcancemos un nodo terminal, se evalúa.

4) Cuando un nodo (MAX,MIN) adquiere un valor provisional, se compara con todos sus predecesores, para ver si se puede hacer un corte :

pp. 14

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA-(3)

• Corte-: valor- <= valorde alguno de sus predecesores• Corte-: valor- >= valor- de alguno de sus predecesores

Cuando en un nodo se hace un corte o, ese nodo asume el valor de o.

MAX

MIN MAX

MIN

X X

CORTE : <= CORTE : >=

Page 8: T4

pp. 15

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA-(4)

5) Cuando un nodo tenga un valor ( o ) asumido,

• Por ser nodo terminal

• Por ser un valor volcado de sus sucesores (estando todos sus sucesores con un valor asumido)

lo comparamos con el valor de su nodo predecesor, que se modificará si:

• maximiza su valor ( si es nodo MAX)

• minimiza su valor(si es nodo MIN)

6) Cuando todos los sucesores del nodo inicial tengan un valor asumido, podemos entonces elegir la mejor jugada inicial, relativa al nodo sucesor de mayor valor.

pp. 16

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA-(5)

Características:

• Los nodos MAX tienen valores:- Tienen garantizado conseguir, a partir de ese nodo, un estado con un valor >= .

- Los valores a de un nodo MAX son límites inferiores del nodo y nunca pueden decrementarse.

- El valorde un nodo no terminal es el mayor valor entre los valores de sus nodos sucesores.

• Los nodos MIN tienen valores ß:- Tienen garantizado conseguir, a partir de ese nodo, un estado <= ß.

- Los valores ß de un nodo MIN son límites superiores del nodo, y nunca pueden incrementarse.

- El valor ß de un nodo no terminal es el menor valor entre los valores de sus nodos sucesores.

• La búsqueda puede detenerse (corte) en cualquier nodo que:- Cualquier nodo MIN que tenga una valor ß <= que el valor de un nodo MAX predecesor: corte

ALFA.

- Cualquier nodo MAX que tenga un valor >= que el valor ß de un nodo MIN predecesor: corte BETA

• Un nodo sobre el que se efectúe un corte, no volcará su valor a su predecesor, ni seráelegido en el procedimiento, ya que es mejorado por el nodo que le ha cortado.

• Los valores finales de los nodos en el procedimiento son iguales que en el procedimiento MINIMAX, excepto aquellos nodos cuyos valores provengan de cortes (podría ser menor) o(podría ser mayor).

Page 9: T4

pp. 17

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA / Ejemplo

-1-1 30-1 3 -2 -1 -3 -2 5 -21 -233-1 04 3-23 4

S

A BC

D

X

XX

X-1

3

3

3

3 -1

3

43

3 4

1

1

3

3

-2

1

33

pp. 18

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA / Eficiencia

• La eficiencia del procedimiento depende del nº de cortes que se realizan.

• El nº de cortes que se pueden hacer depende de cuándo aparezcan los valores que permiten un corte.

• El valor final asumido por el nodo inicial es igual al valor de la evaluación de un nodo terminal (nodo óptimo en el nivel obtenido): si este nodo aparece pronto, en

la búsqueda en profundidad, el nº de cortes será máximo, generando el mínimo árbol de búsqueda.

• En unóptimo, el nº de nodos terminales que se generan en un árbol con profundidad n, es igual al nº de nodos terminales que se generarían en un procedimiento minimax de profundidad n/2. Es decir, dada una limitación espacio/tiempo, el procedimientopermite un profundidad doble que el procedimiento minimax.

Page 10: T4

pp. 19

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA / Métodos para mejorar la Eficiencia

Guía en el proceso de expansión del grafo, en vez de una búsqueda en profundidad

El objetivo es encontrar cuanto antes el nodo final óptimo

A) Expansión ordenada a cada nivel:• Se generan todos los sucesores del nodo a expandir (a partir del nodo inicial).• Se evalúan los nodos sucesores generados.• Se expande aquel nodo que:

- tenga un valor máximo, si es sucesor de un nodo max- tenga un valor mínimo, si es sucesor de un nodo min

• Este método es una combinación anchura/profundidad, y supone no elegir los sucesores a expandir de cada nodo de forma arbitraria.

B) Orden preliminar:• Generar el árbol en anchura hasta un nivel m.• Evaluamos los nodos terminales del nivel m.• Ordenar los nodos del nivel m en función de su mejor posición para el nodo inicial.• Empezamos un procedimiento a partir de ese nivel hasta el deseado, pero expandiendo losnodos en orden a su mejor promesa.

pp. 20

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA / Expansión Ordenada

-4

2 1 3 0

5 -4 2 -1 0 -3 3 4

2 4 -3 1 -4-1 5 0 -1 4 0 -1

-2 -2 05 -3 3 -1-2 4-1 3-2 -11 33 4-2 3

X

XX

-2 -2 0 -2 1 -2 4 3 -1 3

-2 0 -2 1 -2 4 3

3-2-2-2

-2

A B C D

S

X

3

Page 11: T4

pp. 21

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA / Expansión Arbitraria

2 -1 0 3 0 -1

4

0

0-1

3

3 0

X

X X

X

X

-2

2

0

2 0

0

-1

-1

3

3

-2

-2

-2

3

3-3

4

4

2 -2 5 2 0 1 -1 4 3 -2 -3 3 4

5 3 4 6

2 5 1 2 4 -3 3 4

5 1 2 4 3 4

-1

X

pp. 22

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA / Expansión Ordenada

2 -2 0 1 2 -1 0 -2 3 -3 4 -1

0-11 3

XX

X

X

X

X

4

4

2

25 -1 3 3 0

5 3 4 6

5 2 4 -3 3 4 0

43340215

0

X

0

0

X

0

0

0

-1 3

3

3

3

3

X

-3

3

4

4

Page 12: T4

pp. 23

Técnicas de Inteligencia Artificial /Departamento de Sistemas Informáticos y Computación/Facultad de Informática/ UPV

Procedimiento ALFA-BETA / Refinamientos adicionales

• El problema que se plantea es un problema de búsqueda, con un coste exponencial.

• Se intenta limitar el tamaño del árbol de búsqueda:

- en anchura

- en profundidad

y la aplicación de procedimientos especiales, con la utilización de una función de evaluación f(n) heurística.

Pero se deben utilizar más recursos e inteligencia que potencia computacional en un problema de búsqueda.

Así como variar la conducta y no hacerla tan, aparentemente, mecánica.

• Tener una serie de movimientos clásicos (biblioteca de movimientos, salidas, preferencia de piezas, zonas de tablero).

• Tener patrones de tablero y actuar en consecuencia (refranes, costumbres del jugador).

• Tácticas y estrategias de juego.

• Equivocaciones.

• Modificaciones / aprendizaje de la función de evaluación.