inteligencia artificial - cs.upc.eduluigi/ii/ia-2007-fall/2d... · inteligencia artificial...

31
Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni

Upload: others

Post on 23-May-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Inteligencia Artificial Búsqueda entre adversarios

Primavera 2007

profesor: Luigi Ceccaroni

Page 2: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Juegos

• En los entornos multiagente (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. 2

Page 3: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Juegos• La teoría matemática de juegos, una rama de

la economía, ve a cualquier entorno multiagente como un juego.

• En IA, los “juegos” son una clase más especializada, que los teóricos llaman juegos:– de suma cero– de dos jugadores (jugador MAX, jugador MIN)– por turnos– deterministas– de información perfecta (ajedrez, damas, tres en

raya...) vs. información imperfecta (poker, stratego, bridge...) 3

Page 4: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

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

• Los juegos, como el mundo real, requieren la capacidad de tomar alguna decisión (la jugada) cuando es infactible calcular la decisión óptima.

4

Page 5: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Decisiones óptimas en juegos

• 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 5

Page 6: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Búsqueda entre adversarios

Page 7: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

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.

Page 8: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Búsqueda entre adversarios

Page 9: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Búsqueda entre adversarios

Page 10: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

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.

• Por convención:– las jugadas ganadoras se evalúan a “+∞”– las jugadas perdedoras se evalúan a “-∞”

• El algoritmo busca con profundidad limitada.• Cada nueva decisión por parte del adversario

implicará repetir parte de la búsqueda.

Page 11: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

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)

X

X

X0 X

0

X

0

X

0

X

0 X

0 X

X 0

0 X X0

X

0

X

0

X 0 6-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0 6-6=0 5-6=-1 4-6=-2

MIN = -1 MIN = 1 MIN = -2

MAX = 1

La mejor jugada de MAX es pues tras lo cual MIN podría jugar X 0 X

Page 12: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

0 X

X 0 X 0

X X

0 X X

0 XX

X 00 X

X 0 X0X 0 X 0X 0 X 0

X 0 X 0

X 0 0 X

4-2=2

3-2=1

4-2=2

2-2=0

4-2=2

3-2=1

MIN = 0

0 XX 0

0 X X 0

0 X 0 X

0 0 X X

4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=2

MIN = 0MIN = 1

MIN = 0

MAX = 1

La mejor jugada de MAX es pues tras lo cual MIN podría jugar 0 XX

0 0 XX

0 0 XX

0 0 XX

……………...

……………...

Page 13: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

0 0 XX

0 0 X XX

X 0 0 XX

0 0X XX

0 0 XX X

0 0 XX X

X 0 00 XX

X 0 0 XX 0

X 0 0 XX 0

X 0 0 X 0X

2-1=1

3-1=2

2-1=1

3-1=2

MIN = 1

MIN = -∞

MIN = -∞

MIN = -∞ MIN = -∞

MAX = 1

La mejor jugada de MAX es pues X 0 0 XX

Page 14: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Búsqueda entre adversarios: minimax

• Valor-Minimax(n): utilidad para MAX de estar en el estado n asumiendo que ambos jugadores jueguen óptimamente:– 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

Page 15: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Algoritmo minimax (1)

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

Page 16: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Algoritmo minimax (2)

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

• Entonces toma el mínimo de estos valores, 3, y lo devuelve como el valor del nodo B.

A

B

Page 17: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Algoritmo minimax (3)

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

Page 18: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Algoritmo minimax (4)

función Decisión-Minimax(estado) devuelve una acción variables de entrada: estado, estado actual del juego v ← Max-Valor(estado) devolver la acción de Sucesores(estado) con valor v

función Max-Valor(estado) devuelve un valor utilidad si Test-Terminal(estado) entonces devolver Utilidad (estado) v ← -∞ para un s en Sucesores(estado) hacer v ← Max(v, Min-Valor(s)) devolver v

función Min-Valor(estado) devuelve un valor utilidad si Test-Terminal(estado) entonces devolver Utilidad (estado) v ← ∞ para un s en Sucesores(estado) hacer v ← Min(v, Max-Valor(s)) devolver v

Page 19: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Poda alfa-beta

• Problema de la búsqueda minimax: el número de estados que tiene que examinar es exponencial con el número de movimientos.

• El exponente no se puede eliminar, pero se puede dividir en la mitad.

• Es posible calcular la decisión minimax correcta sin mirar todos los nodos en el árbol.

• La poda alfa-beta permite eliminar partes grandes del árbol, sin influir en la decisión final.

Page 20: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Minimax con poda α-β

a

cb e = min(-1, ?) = -1

-1 (gana MIN) ?

No tiene sentido seguir buscando los otros descendientes de c.

a

cb

g

f

d

e

0.03

-0.1 -0.05

e= max (-0.1, -0.05) = -0.05

En c: e= min(-0.05, v(g))por lo tanto en a: e = max(0.03, min(-0.05, v(g))) = 0.03Se pueden pues podar los nodos bajo g; no aportan nada.

?

• El valor de la raíz y la decisión minimax son independientes de los valores de las hojas podadas.

Page 21: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

a

cb

id

0.03

he

gf

-0.1

max

min

max

min

max

e(e) = min(-0.1,v(g))Como la rama b ya da un 0.03, cualquiercosa peor no sirve=> No hay que explorar ge(d) = max(e(e), h)=> Sí hay que explorar h...

• La búsqueda minimax es primero en profundidad: en cualquier momento sólo se consideran los nodos a lo largo de un camino del árbol.

Page 22: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Poda alfa-beta

• Los dos parámetros alfa y beta describen los límites sobre los valores que aparecen a lo largo del camino:– α = el valor de la mejor opción (el más alto) que se

ha encontrado hasta el momento en cualquier punto del camino, para MAX

– β = el valor de la mejor opción (el más bajo) que se ha encontrado hasta el momento en cualquier punto del camino, para MIN

• La búsqueda alfa-beta actualiza el valor de α y β según se va recorriendo el árbol y termina la recursión cuando encuentra un nodo peor que el actual valor α o β correspondiente.

Page 23: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Poda alfa-beta: ejemplo

Page 24: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Poda alfa-beta: ejemplo

Page 25: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Poda alfa-beta: ejemplo

Page 26: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Poda alfa-beta: ejemplo

Page 27: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Poda alfa-beta: ejemplo

Page 28: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

MAX

Vi

{α, β}Si Vi > α modificar αSi Vi ≥ β poda β

Retornar α

{α, β}Si Vi < β modificar βSi Vi ≤ α poda α

Retornar β

MIN

Vi

Las cotas α y β se transmiten de padres a hijos de 1 en 1 y en el orden de visitade los nodos.

Page 29: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

Minimax con poda α-β

Funcion valorMax (g,α,β) retorna entero Si estado_terminal(g) entonces retorna(evaluacion(g)) si no Para cada mov en movs_posibles(g) α=max(α,valorMin(aplicar(mov,g),α,β)) si α≥β entonces retorna(β) fPara retorna(α) fsifFuncion

Funcion valorMin (g,α,β) retorna entero Si estado_terminal(g) entonces retorna(evaluacion(g)) si no Para cada mov en movs_posibles(g) β=min(β,valorMax(aplicar(mov,g),α,β)) si α≥β entonces retorna(α) fPara retorna(β) fsifFuncion

El recorrido se inicia llamando a la función valorMax con α=-∞ β=+∞.En la función valorMax α es el valor que se actualiza.En la función valorMin β es el valor que se actualiza.

Page 30: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

A

CB

α = -∞, β = +∞{-∞, +∞}

ED

3

{-∞, 3}

A

CB

α =3, β = +∞{3, +∞}

ED

3 5

3{-∞, 3}

A

CB

ED

3

HF

{3, +∞}

G

JI

LK

{3, +∞}

{3, +∞}

{3, +∞}

0

Se puede podar I ya que es un nodo min y el valor de v(K) = 0 es < α = 3

Page 31: Inteligencia Artificial - cs.upc.eduluigi/II/IA-2007-fall/2d... · Inteligencia Artificial Búsqueda entre adversarios Primavera 2007 profesor: Luigi Ceccaroni. Juegos • En los

A

CB

ED

3

HF

{3, +∞}

G

J

{3, +∞}

{3, +∞}

5

5

A

CB

ED

3

HF

{3, +∞}

G

J

{3, 5}

5

5

NM 7

Podemos podar G pues es un nodo max y el valor de M (7) > β = 5

A

CB

ED

3

HF

{4, +∞}4

J

{3, 4}

4{3, 5}

5

54