Inteligencia Artificial. Oscar Bedoya

Inteligencia Artificial Oscar Bedoya [email protected] * * * * * Algoritmo minimax Poda alfa-beta Juegos con decisiones imperfectas Jue...
7 downloads 2 Views 2MB Size
Inteligencia Artificial Oscar Bedoya [email protected]

* * * * *

Algoritmo minimax Poda alfa-beta Juegos con decisiones imperfectas Juegos con elemento aleatorio Aplicaciones

Juegos Tipos de contrincantes • Humano Vs Humano

• Humano Vs Máquina • Máquina Vs Máquina

Juegos Tetris • La meta de cada agente es lograr una mayor cantidad de líneas que el otro • Es un problema de toma de decisiones en el que se tiene poco tiempo para analizar la jugada

Juegos Tetris • El campeón mundial supera las 900 líneas • Un agente ha logrado como máximo 597 líneas

Juegos Máquina Vs Máquina

Juegos Tipos de contrincantes • Humano Vs Humano

• Humano Vs Máquina • Máquina Vs Máquina • Mente humana – Mente humana

Juegos Juegos como problemas de búsqueda • La IA se centra en el análisis de juegos donde los estados se puedan representar fácilmente e intervenga en los movimientos la toma de decisiones • No resultan interesantes juegos que dependen totalmente del azar

Juegos Juegos como problemas de búsqueda

Juegos Go • Dinastía Chow (1500-200 a.c) •Tablero de 19x19 líneas • 361 intersecciones • Premio de 2 millones de dólares • Árbol de 4.6x10170

Juegos Ajedrez • Modificación del Chaturanga (India 500a.c) • El juego se creó debido a una situación surgida tras una guerra de sucesión al trono entre dos hermanos

• Número de Shanon 10120

Juegos Clasificación de juegos con adversario Información perfecta

Información imperfecta

Determinista

Triqui Ajedrez

Batalla naval

Aleatorio

Backgammon Monopolio

Dominó Póquer

Juegos Clasificación de juegos con adversario

¿Hay elementos aleatorios en el juego?

¿Qué tan accesible es el ambiente? Información perfecta

Información imperfecta

Determinista

Triqui Ajedrez

Batalla naval

Aleatorio

Backgammon Monopolio

Dominó Póquer

Juegos Árbol de juego

• Juegos por turnos • En cada profundidad se tienen los posibles movimientos de un jugador • Sirve para analizar el efecto de las jugadas

- Ajedrez: media de 50 movimientos, con un factor de ramificación medio de 35 posibilidades - Total de nodos: ~35100

...

...

...

Juegos Estrategias: • Teoría de juegos (von Neumann, 1944, The Theory of Games Behavior)

Trabajo de von Neumann y Oscar Morgenstern durante la guerra fría sobre estrategia militar (destrucción mutua garantizada) • Dilema del prisionero. Albert Tucker • Cómo tomar una buena decisión en cada avance del juego. Arboles minimax. Newel y Simon • Podar el árbol para reducir costos (McCarthy, 1956)

Juegos Dilema del prisionero Sospechoso 2 niega

Sospechoso 2 confiesa

Sospechoso 1 niega

Ambos son condenados a 6 meses

Sospechoso 1 confiesa

Sospechoso 2 es Ambos son condenado a 10 condenados a 6 años y años sospechoso 1 sale libre

* Albert Tucker

Sospechoso 1 es condenado a 10 años y sospechoso 2 sale libre

Juegos • Descubrió que en el árbol minimax construido por Newel y Simon, se hacían cálculos innecesariamente • Ganó el premio Alan Turing en 1971 • Inventó LISP (List Processing Language). Se basa en cálculo lambda

John McCarthy (1927 - )

Juegos • Nash fue capaz de demostrar que todos los juegos de suma cero de n jugadores tienen al menos un equilibrio de Nash

• Si un juego tiene un único equilibrio de Nash y los jugadores son completamente racionales, los jugadores escogerán las estrategias que forman el equilibrio

John Nash (1928 - )

Juegos • Juego HEX

Juegos Árbol de juego – Rock Piles

• Se tienen dos pilas de piedras, en una hay dos piedras y en la otra solo una • Cada jugador puede tomar máximo dos piedras pero en tal caso deben ser de la misma pila • Un jugador gana si su contrincante hace el último movimiento

Jugador1





Jugador1

Jugador2





Jugador1





Jugador2









Jugador1 Gana jugador1

Gana jugador1

Jugador1





Jugador2









Jugador1



Gana jugador1

Gana jugador1

Jugador2 Pierde jugador1 Pierde jugador1

Pierde jugador1

Si usted es jugador 1, con qué jugada empezaría Jugador1





Jugador2









Jugador1



Gana jugador1

Gana jugador1

Jugador2 Pierde jugador1 Pierde jugador1

Pierde jugador1

Si usted es jugador 2, con qué jugada respondería Jugador1





Jugador2









Jugador1



Gana jugador1

Gana jugador1

Jugador2 Pierde jugador1 Pierde jugador1

Pierde jugador1

Juegos Árbol de juego – Chomp (2x2) • Se tiene una chocolatina de 2x2 cuadros • El cuadro de la esquina superior izquierda está envenenado! • Cada “jugador” debe tomar uno o dos cuadros de chocolate • Pierde (“muere”) el jugador que se coma el cuadro con veneno

Juegos Árbol de juego – Chomp (2x2) • Se tiene una chocolatina de 2x2 cuadros • El cuadro de la esquina superior izquierda está envenenado! • Cada “jugador” debe tomar uno o dos cuadros de chocolate • Pierde (“muere”) el jugador que se coma el cuadro con veneno

Juegos Árbol de juego – Chomp (2x2) • Se tiene una chocolatina de 2x2 cuadros • El cuadro de la esquina superior izquierda está envenenado! • Cada “jugador” debe tomar uno o dos cuadros de chocolate • Pierde (“muere”) el jugador que se coma el cuadro con veneno 1

2

3

4

Juegos Árbol de juego – Chomp (2x2) • Se tiene una chocolatina de 2x2 cuadros • El cuadro de la esquina superior izquierda está envenenado! • Cada “jugador” debe tomar uno o dos cuadros de chocolate • Pierde (“muere”) el jugador que se coma el cuadro con veneno 1

2

3

Construya el árbol de juego

1

J1

2

3 C(1) 2

J2

C(2) 1

3

C(3) 1

C(1,2)

2

2

3

Pierde jugador1

C(2,3)

C(1,3)

1

3 Pierde jugador1

Pierde jugador1

C(1)

J1

C(1)

C(3)

C(1,3)

1

2

3 Gana jugador1

C(1)

Pierde jugador1

C(1)

Gana jugador1

Gana jugador1

C(2)

C(1,2)

1

C(1)

Pierde jugador1

Gana jugador1

Gana jugador1

Juegos • La investigación sobre juegos ha generado una gran cantidad de ideas sobre cómo utilizar de la mejor manera el tiempo de cómputo para obtener buenas soluciones

-Poda: para ignorar partes del árbol de búsqueda que son irrelevantes en la decisión final -Funciones de evaluación heurística: para tener una idea de la verdadera utilidad en cada nodo del árbol

Juegos Algoritmo minimax

• El algoritmo minimax se aplica para el caso de juegos de dos participantes, MAX y MIN • La definición formal de juego requiere: - Estado inicial, posición en el tablero o ambiente - Conjunto de operadores, o jugadas posibles

- Prueba terminal, que indica si termina el juego - Función de utilidad, asigna un valor numérico al resultado obtenido en el juego

Juegos

Cada jugador tiene 3 lanzamientos 20 60 80

100

Clasifica quien obtenga 200 puntos acumulados

En juegos donde se gana o pierde, f=1 si gana, f=-1 si pierde

Juegos Algoritmo minimax MAX(X)

Estado inicial del juego. MAX juega con X

Juegos Algoritmo minimax MAX(X)

MIN(O)

X

X

X X

X

X X

X

X

Juegos Algoritmo minimax MAX(X)

MIN(O)

MAX(X)

X

X

X X

X

X X

X

O

X

O

...

X

O

X

...

X

Juegos Algoritmo minimax MAX(X)

MIN(O)

MAX(X)

X

X

X

X

X X

X

O

X

...

Terminal

X

O

X

...

...

O

...

...

X

O

X

X

O

X

X

O

O

X

O

O

X

X

O

O

X

X

O

O

X

O

O

X

X

O

O

...

X

...

X

Juegos Algoritmo minimax MAX(X)

MIN(O)

MAX(X)

X

X

X

Utilidad

X

X X

X

O

X

...

Terminal

X

O

X

...

O

...

...

X

O

X

X

O

X

X

O

O

X

O

O

X

X

O

O

X

X

O

O

X

O

O

X

X

O

O

-1

1

0

...

X

...

La utilidad desde el punto de vista de MAX

X

Juegos Algoritmo minimax

• Si fuese una búsqueda normal, MAX debería buscar la secuencia de jugadas que conduzca a un estado terminal ganador

Juegos Algoritmo minimax

• Minimax es un método de decisión para minimizar la pérdida esperada en juegos con adversario donde se tiene información completa

Juegos

MAX A1

A2

A3

MIN

A11 A12 Terminal

A13

A21 A22

A23 A31 A32

A33

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

8

4

14

5

2

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

8

4

14

¿Cuáles son las decisiones que debería tomar MAX?

5

2

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

8

4

14

5

2

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

Si MIN sabe de IA, qué acción emprenderá en este nodo?

8

4

14

5

2

Juegos

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

2

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

8

4

14

5

2

Juegos

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

2

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

Si MAX sabe de IA, qué acción emprenderá en este nodo?

8

4

14

5

2

Juegos 3

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

2

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

8

4

14

MAX intentará obtener el mayor valor. En este caso será 3 para el nodo raíz

5

2

Juegos 3

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

2

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

8

4

14

5

2

La mejor opción para MAX de iniciar el juego es A 1

Esta se conoce como la decisión minimax. Se supone que MIN siempre juega con la intensión de disminuir al máximo la utilidad de MAX

Juegos Algoritmo minimax

• El algoritmo sirve para determinar la estrategia óptima para MAX y decidir cuál es la mejor jugada. El algoritmo se compone de 3 pasos: - Paso 1: generar el árbol de juego hasta alcanzar nodos terminales* - Paso 2: aplicar la función de utilidad a cada estado terminal - Paso 3: calcular de abajo a arriba los valores para la función utilidad en los nodos intermedios, tenga en cuenta que si es un estado MAX se intentará maximizar pero si es MIN lo contrario

Jugador1





Jugador2









Jugador1



Gana jugador1

Gana jugador1

Jugador2 Pierde jugador1 Pierde jugador1

Pierde jugador1

MAX





MIN









MAX



Gana jugador1

Gana jugador1

MIN Pierde jugador1 Pierde jugador1

Pierde jugador1

MAX





MIN









MAX



+1

MIN -1

-1

-1

+1

MAX





MIN



-1

-1



+1



-1



+1

MAX



-1

-1

+1

-1

MIN -1

-1

-1

+1

MAX

-1





+1

-1

MIN



-1

-1



+1



-1



+1

MAX



-1

-1

+1

-1

MIN -1

-1

-1

+1

La decisión minimax es

+1

MAX

-1





+1

-1

MIN



-1

-1



+1



-1



+1

MAX



-1

-1

+1

-1

MIN -1

-1

-1

+1

Juegos MAX -1

-1

-1

MIN

-1

MAX

+1 -1 +1

MIN -1

-1

MAX -1

+1

No hay decisión minimax, las 3 opciones tienen la misma utilidad

-1

+1

-1

-1

1

J1

2

3 C(1) 2

J2

C(2) 1

3

C(3) 1

C(1,2)

2

2

3

Pierde jugador1

C(2,3)

C(1,3)

1

3 Pierde jugador1

Pierde jugador1

C(1)

J1

C(1)

C(3)

C(1,3)

1

2

3 Gana jugador1

C(1)

Pierde jugador1

C(1)

Gana jugador1

Gana jugador1

C(2)

C(1,2)

1

C(1)

Pierde jugador1

Gana jugador1

Gana jugador1

1

MAX

2

3 C(1) 2

MIN

C(2) 1

3

C(3) 1

C(1,2)

2

2

3

Pierde jugador1

C(2,3)

C(1,3)

1

3 Pierde jugador1

Pierde jugador1

C(1)

MAX

C(1)

C(3)

C(1,3)

1

2

3 Gana jugador1

C(1)

C(1)

Gana jugador1

Gana jugador1

C(2) 1

C(1)

MIN Pierde jugador1

C(1,2)

Pierde jugador1

Gana jugador1

Gana jugador1

1

MAX

2

3 C(1) 2

MIN

C(2) 1

3

C(3) 1

2

2

3

-1

C(2,3)

C(1,3)

C(1,2)

1

3 -1

-1

C(1)

MAX

C(1)

C(3)

C(1,3)

C(1)

1

2

3 +1

+1

C(1)

C(2) 1

+1

C(1)

MIN -1

C(1,2)

-1

+1

+1

+1

1

MAX

La decisión minimax es C(2,3)

2

3 -1

C(1) 2

MIN

-1 C(2)

1

3

C(3) -1 1

C(1,2) -1

2

2

3

-1

C(2,3)

C(1,3) -1

+1

1

3 -1

-1

C(1)

MAX

C(1)

+1

C(3) -1

+1 C(1,3)

+1 C(1)

1

2

3 +1

+1

C(1)

-1

C(2) -1

C(1,2)

+1

1

+1

C(1) -1

MIN -1

+1

-1

+1

+1

Juegos Aplique el algoritmo minimax 1

2

3

4

• Chomp(2,2) • Solo puede comer de a 2 cuadros • El juego termina cuando se acaba la chocolatina • Muestre la decisión minimax

C(1,2)

C(3,4)

1 3

2

0

C(1,2)

0

2

3

4

C(1,3)

4

C(3,4)

1

C(2,4)

0

C(2,4)

C(2,3)

C(1,4)

2

1

2

4

3

3

C(1,3)

C(2,3)

0

-1

1 4 C(1,4)

+1

La decisión minimax es C(2,3)

+1

C(1,2)

0

C(3,4)

0

1 3

2

0

C(1,2)

0

2

3

4

C(1,3) 0

4

C(3,4)

1

C(2,4)

0

C(2,4) 0

C(1,4)

C(2,3) -1

2

1

2

4

3

3

C(1,3)

C(2,3)

0

-1

+1

1 4 C(1,4)

+1

Juegos Aplique el algoritmo minimax X

O

O X

O

• La jugada es de MAX (X) • Muestre la decisión minimax

X

Juegos Aplique el algoritmo minimax

• Muestre la decisión minimax

Juegos Aplique el algoritmo minimax

• Rock Piles (2,2)

Juegos Aplique el algoritmo minimax 1

2

3

4

• Chomp(1,4) • Cada persona debe tomar de a un cuadro por turno. Operador C(n) donde n es el número del cuadro

• El juego termina cuando se acaba la chocolatina y gana quien tenga mayor utilidad • La utilidad de comer cada cuadro es:

: -2

: -4

: -3

: +1

1

C(1) 2

3

4

2

3

4

C(4)

C(3)

C(2) 1

3

4

1

2

4

1

2

3

Juegos Complejidad de minimax

Si la profundidad máxima del árbol es m y hay b movimientos legales en cada punto, se tiene: • Complejidad temporal: O(bm) • Complejidad espacial: O(b*m)

Juegos Poda alfa-beta

• Problema de la búsqueda minimax: el número de estados que tiene que examinar es exponencial • Es posible calcular la decisión minimax correcta sin examinar todos los nodos del árbol • La poda alfa-beta permite eliminar grandes partes del árbol, sin influir en la decisión final

Juegos Poda alfa-beta

• Aplicada a un árbol minimax, produce la misma jugada que se obtendría sin ella • La poda se realiza en el paso 1, es decir, mientras se construye el árbol

Juegos 3

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

2

A21 A22

A23 A31 A32

2

6

A33

Terminal 3

12

8

4

14

5

2

Juegos

MAX A1 MIN

A2

A3

3

A11 A12

A13

Terminal 3

12

8

Se calcula la utilidad para A1

Juegos 3

MAX A1 MIN

3

A11 A12

A13

Terminal 3

12

8

A2

A3

Juegos 3

MAX A1 MIN

A2

3

A11 A12

A13

A21

Terminal 3

12

8

2

A3

Juegos 3

MAX A1 MIN

A2

A3

3

A11 A12

A13

A21

Terminal 3

12

8

2

+100

Juegos 3

MAX A1 MIN

A2

A3

3

A11 A12

A13

A21

Terminal 3

12

8

2

-100

Juegos 3

MAX A1 MIN

A2

A3

3

A11 A12

A13

A21

Terminal 3

12

8

5

Suponga que la utilidad es 5

+100

Juegos 3

MAX A1 MIN

A2

A3

3

A11 A12

A13

A21

Terminal 3

12

8

5

Suponga que la utilidad es 5

-100

Juegos 3

MAX A1 MIN

A2

3

A11 A12

A13

A21

Terminal 3

12

8

2

A3

Juegos 3

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

A21 A22

A23

Terminal 3

12

8

2

Como MIN va a escoger el menor entre sus hijos, se encontró un nodo con valor menor que 3 y MAX va a escoger el valor máximo, no se necesita explorar A 22 ni A23

Juegos 3

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

A21 A22

A23 A31

Terminal 3

12

8

2

14

Juegos 3

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

A21 A22

A23 A31 A32

Terminal 3

12

8

2

14

5

Juegos 3

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

A21 A22

2

A23 A31 A32

A33

Terminal 3

12

8

2

14

5

2

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

7

8

A33

Terminal 6

4

5

5

2

Indique qué nodos se podan

7

8

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

7

8

A33

Terminal 6

4

5

5

2

7

8

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

6

10

A33

Terminal 7

10

4

3

5

Indique qué nodos se podan

1

7

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

6

10

A33

Terminal 7

10

4

3

5

1

7

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

A33

Terminal 6

7

5

1

7

9

6

Indique qué nodos se podan

7

1

Juegos

MAX A1

A2

A3

MIN

A11 A12

A13

A21 A22

A23 A31 A32

A33

Terminal 6

7

5

1

7

9

6

7

1

Juegos

A1

A11A12

1

5

A13 A13

3

7

A21

3

A4

A3

A2

A22

4

A31 A32 A33 A34

2

5

9

3

Indique qué nodos se podan

A41 A42 A43 A44

7

2

6

5

Juegos

A1

A11A12

1

5

A13 A13

3

7

A21

3

A4

A3

A2

A22

4

A31 A32 A33 A34

2

5

9

3

A41 A42 A43 A44

7

2

6

5

Juegos 3

MAX A1 MIN

A2

3

A3

2

A11 A12

A13

A21 A22

2

A23 A31 A32

A33

Terminal 3

12

8

2

14

5

2

Juegos



...

... v1

v2

• Poda de los hijos de MIN

Podar los nodos a la derecha del nodo cuyo vi es menor que 

vk

Juegos Poda alfa-beta

Juegos Poda alfa-beta

4

Juegos Poda alfa-beta

4

4

Juegos Poda alfa-beta valor  4

4

Juegos Poda alfa-beta

4

4

Juegos Poda alfa-beta

4

4

-100

Juegos Poda alfa-beta

4

4

+100

Juegos Poda alfa-beta

4

4

Juegos

4

3

2

8

1

Indique qué nodos se podan

Juegos

4

4

4

3

2

8

1

Juegos

4

4

4

3

2

8

1

Juegos

4

3

1

2

7

3

Indique qué nodos se podan

Juegos

4

3

1

2

7

3

Juegos

2

4

5

2

1

2

Indique qué nodos se podan

6

3

Juegos

2

4

5

2

1

2

6

3

Juegos

3

5

4

2

1

6

Indique qué nodos se podan

3

2

Juegos

3

5

4

2

1

6

3

2

Juegos



v1

v2

v3

• Poda de los hijos de MAX

Podar los nodos a la derecha del nodo cuyo vi es mayor que 

Juegos Poda alfa-beta

4

4

Juegos Poda alfa-beta

4

4

6

Juegos Poda alfa-beta 4

4

4

6

Juegos Poda alfa-beta 4

4

4

6

2

Juegos Poda alfa-beta 4

4

4

2

6

2

Juegos Poda alfa-beta 4

4

4

2

6

2

5

Juegos Poda alfa-beta 4

4

4

2

6

2

5

5

Juegos Poda alfa-beta 4

4

4

2

6

2

5

5

Juegos Poda alfa-beta 5

4

4

2

6

2

5

5

7

Juegos 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

Juegos

2

5

3

4

1

2

7

8

5

Indique qué nodos se podan

6

7

2

Juegos

2

5

3

4

1

2

7

8

5

6

7

2

Juegos

3

4

6

7

3

2

5

8

1

2

Indique qué nodos se podan

7

8

6

3

Juegos

3

4

6

7

3

2

5

8

1

2

7

8

6

3

La decisión minimax es

MAX





MIN









MAX



+1

MIN -1

-1

-1

+1

1

MAX

La decisión minimax es C(2,3)

2

3 C(1) 2

MIN

C(2) 1

3

C(3) 1

2

2

3

-1

C(2,3)

C(1,3)

C(1,2)

1

3 -1

-1

C(1)

MAX

C(1)

C(3)

C(1,3)

C(1)

1

2

3 +1

C(1)

+1

+1

C(2) 1

C(1)

-1

MIN -1

C(1,2)

-1

+1

+1

Juegos

3

2

1

6

4

5

7

2

Indique qué nodos se podan

2

1

6

3

Juegos 5

3

5

3

5

6

3

2

1

2

6

4

7

5

7

2

2

2

1

6

3

Juegos Poda alfa-beta X

O

O X

O

X

• La jugada es de MAX (X) • Indique la decisión haciendo poda

X

O

O

X

X

O

X

O

O

O

X

X

O

X

O

X

O

O

O

X

X

X

X

X

O

X

O

O

X

X X

O

O

O

X

O

O

X

X

X

X

O

X

X

X

O

O

X

O

O

X

O

X

X

O

O

O

O

O

X

X

X

X X

X

O

O

O

O

X

X

X

-1

X

O

O

X

O

O

X

O

O

X

O

O

O

X

X

X

X

X

X

X

X

O

X

X

O

X

X

O

X

O

O

X

O

O

X

X

+1

O X

-1

+1

O

+1

+1

Juegos Poda alfa-beta

4

4

6

• Se quiere saber si se poda un hijo de MAX • El primer hijo de MAX tiene utilidad mayor que el valor beta del padre de MAX

• Se podan los hijos de MAX hermanos del ya expandido

Juegos Poda alfa-beta 4

4

4

2

6

2

• Se quiere saber si se poda un hijo de MIN • El primer hijo de MIN tiene utilidad menor que el valor alfa del padre de MIN

• Se podan los hijos de MIN hermanos del ya expandido

Juegos Poda alfa-beta

Juegos Poda alfa-beta

2 nodos podados

Juegos Poda alfa-beta

Juegos Poda alfa-beta

Juegos Poda alfa-beta

Juegos Poda alfa-beta

Juegos Poda alfa-beta

Juegos Poda alfa-beta

http://www.ocf.berkeley.edu/~yosenl/extras/alphabeta/alphabeta.html

Juegos Decisiones imperfectas

• El algoritmo minimax supone que se tiene el tiempo y los recursos para construir todo el árbol hasta los nodos terminales • Shanon propuso que en lugar de llegar hasta los nodos terminales, se suspendiera antes la búsqueda y aplicar sobre estos nodos una función de evaluación heurística

Juegos Decisiones imperfectas

• La función de evaluación heurística intenta estimar el valor de la utilidad sin necesidad de llegar hasta la última jugada - En un nodo donde MAX tiene una victoria casi asegurada el valor de la función debe ser alto

Juegos Decisiones imperfectas

• Si se aplica minimax utilizando la función de evaluación heurística la decisión será imperfecta

Juegos Jugador1

Jugador2

Juegos Jugador1

Jugador2

Jugador1

. . .

Juegos Jugador1

Jugador2

Jugador1

. . .

• Se expande el árbol hasta un punto dado • Se aplica sobre las hojas la función de evaluación para estimar la utilidad • Se calcula la decisión minimax

Juegos Decisiones imperfectas

MAX juega con blancas, en cuál de los dos estados la utilidad estimada debe ser mayor?

Juegos Decisiones imperfectas Cada pieza tiene un valor: • Peón: 1 • Caballo: 3 • Alfil: 3 • Torre: 5 • Reina: 9

Juegos Decisiones imperfectas

• f1(n): valor material de las piezas que MAX ha tomado de su contrincante

Juegos Decisiones imperfectas

• f1(n): valor material de las piezas que MAX ha tomado de su contrincante • f1(n)=0 al inicio del juego • Lo será hasta que MAX elimine alguna pieza

Juegos Decisiones imperfectas Cada pieza tiene un valor:

Peón: 1 Caballo: 3 Alfil: 3 Torre: 5 Reina: 9

f1(n)=1

f1(n)=1

Juegos Decisiones imperfectas

• f2(n): valor material de las piezas que MAX ha tomado de su contrincante – valor material de las piezas que MAX ha perdido

Juegos Decisiones imperfectas Cada pieza tiene un valor:

Peón: 1 Caballo: 3 Alfil: 3 Torre: 5 Reina: 9

f2(n)=1-8=-7

f2(n)=1-3=-2

Juegos

X

O O X

X

O

O

O

X

O

X

O

O

X

MAX juega con X. En cuál de los dos estados el valor estimado de la utilidad debe ser mayor?

Juegos

X

O O X

X

O

O

O

X

O

X

O

O

X

f(n): cantidad de filas, columnas y diagonales libres para MAX

Juegos

X

O O X

X

O

O

f(n): 2

O

X

O

X

O

O

X

f(n): 0

Juegos

X

O O

X

X

O O O X

f(n): ?

X

X

f(n): ?

Juegos

X

O O

X

X

O O O X

f(n): ?

X

X

f(n): ?

f(n): cantidad de filas, columnas y diagonales libres para MAX

Si n es un estado ganador para MAX, f(n)= Si n es un estado perdedor para MAX, f(n)=-

Juegos

X

O O X

X

O

O

O

X

O

X

O

O

X

X O

f(n): ?

Juegos

X

O O X

X

O

O

O

X

O

X

O

O

X

X O

f(n)=4 pero no refleja que MIN tiene más formas de hacer el triqui

Juegos Decisiones imperfectas

f(n)=

(número de filas, columnas o diagonales libres para MAX) (número de filas, columnas o diagonales libres para MIN), si el nodo n no es estado en el que gane alguno de los jugadores , si gana MAX -, si gana MIN

Juegos

X

O O

X

O

X

O

O

O

X

f(n)=2-1

f(n)=0-1

X X

O

O

X O

f(n)=4-5

Juegos

X

X

X X

X

X

X

X

O

X

O

...

X

X

X

O

Minimax con decisiones imperfectas sigue la estrategia de búsqueda limitada por profundidad, se tiene un límite hasta el cual construir el árbol

Juegos • Aplique minimax con profundidad 2

Juegos • Aplique minimax con profundidad 2

X X

X

……...

Juegos • Aplique minimax con profundidad 2

X X

X 0

X

X

X

X0

X 0

0

0

0

X

X 0

0

X

……...

Juegos • Aplique minimax con profundidad 2

X X

X 0

X

X

X

X0

X 0

0

0

0

X

X 0

0

X

……...

Aplicar la función de evaluación heurística para estimar la utilidad

Juegos • Aplique minimax con profundidad 2

X X

X 0 6-5=1

X

X

X

X0

X 0

0 5-5=0

0 6-5=1

0 5-5=0

4-5=-1 6-5=1

X

X

0

0 5-5=0

6-5=1

X

……...

Juegos • Aplique minimax con profundidad 2

-1 X X

X 0 6-5=1

X

X

X

X0

X 0

0 5-5=0

0 6-5=1

0 5-5=0

4-5=-1 6-5=1

X

X

0

0 5-5=0

6-5=1

X

……...

Juegos • Aplique minimax con profundidad 2

-1 X X

X

0

0 X

X

……...

0 X

0X

X0

0

X

X

0

X

0

5-4=1 6-4=2 5-4=1 6-4=2 6-4=2 5-4=1 6-4=2 5-4=1

Juegos • Aplique minimax con profundidad 2

-1

+1

X X

X

0

0 X

X

……...

0 X

0X

X0

0

X

X

0

X

0

5-4=1 6-4=2 5-4=1 6-4=2 6-4=2 5-4=1 6-4=2 5-4=1

Juegos Decisiones imperfectas X

O

X

O

Considere 2 niveles de profundidad e indique la decisión minimax

X

O

X

O

X

O

X

X

X

O

X

X O

X

O

X

X

O

X

X

O

X

X

O

X O

O

X

O

X

O

X

O

X

O

X

X

O

X

X

O

X

O

X

X

O

X O

1-2

O

X

X

2-2

O

X

X

O

X

O

O

O

X

X

O

X

X O

1-2

O

3-2

X

O

X

X

O

X

X

O

X

O

X

X

O

X

O

O

X

O

X

X

O

X

X

O

O

1-1

X

O

2-1

X

O

O

X

X O

O

X

X O

1-1

X

O

3-1

O

X

O

X

O

-1 X

O

X

0

X

O

X

X

O

X

O

X

X

O

X O

-1

O

X

X

0

O

X

X

O

X

O

O

O

X

X

O

X

X O

-1

O

1

X

O

X

X

O

X

X

O

X

O

X

X

O

X

O

O

X

O

X

X

O

X

X

O

O

0

X

O

1

X

O

O

X

X O

O

X

X O

0

X

O

2

O

Juegos Decisiones imperfectas

Hex simplificado Casa del jugador 1

Casa del jugador 2

• Inicialmente cada jugador coloca una ficha en su casa • En cada turno, puede colocar otra ficha siempre y cuando sea adyacente a alguna de su color (adyacencia: contigua incluida diagonal) • Gana el juego quien logre colocar una ficha en la casa del adversario

Juegos Decisiones imperfectas

Hex simplificado Casa del jugador 1

Casa del jugador 2

Juegos Decisiones imperfectas

Hex simplificado

Juegos Reversi ¿Qué heurística utilizaría?

Juegos Reversi • Algunos utilizan la cantidad de fichas del color como heurística • Una heurística fuerte combina los siguientes 4 criterios: - Movilidad: número de movimientos que un jugador puede hacer - Movilidad potencial: cantidad de posiciones vacías contiguas a fichas del oponente - Tabla de bordes: jugadas precalculadas para tomar los bordes - Esquinas: jugadas para tomar las esquinas

http://home.tiscalinet.ch/t_wolf/tw/misc/reversi/html/index.html

Juegos Damas

http://www.cs.caltech.edu/~vhuang/cs20/c/applet/more.html

Juegos Damas • En la actualidad los programas para jugar Damas implementan el algoritmo minimax con poda alfa-beta, además de que tienen movimientos aleatorios (el computador no necesariamente repite juegos) • La función de evaluación incluye conteo de piezas y consideraciones de las posiciones

http://www.cs.caltech.edu/~vhuang/cs20/c/applet/more.html

Juegos Damas

• Jonathan Schaeffer diseñó el programa Chinook que utilizaba poda alfa-beta. Además, para posiciones de seis piezas tenía una base de datos con soluciones perfectas • En 1992 Chinook ganó el abierto de Estado Unidos. Fue el primer programa que oficialmente participó en un campeonato mundial

Juegos Damas • Jugó desde 1950 hasta 1995 perdiendo solamente en 7 juegos, 2 de los cuales fue contra Chinook y algunos por abandono debido a problemas de salud • Afirmó que se aburrió de jugar contra humanos porque no representaban una competencia real. Solamente podían aspirar a un empate • Asegura que se sintió joven nuevamente cuando apareció Chinook

• Después de su muerte en 1995, Chinook ha sido el campeón mundial Marion Tinsley (1927-1995)

Juegos

http://www.cs.ualberta.ca/~chinook/

Juegos Ajedrez

• 1997. El superordenador IBM Deep Blue derrotó al campeón mundial Garry Kasparov

Juegos • 2006. El programa Deep Fritz, funcionando en un ordenador personal con procesador Intel Core 2 Duo consiguió derrotar también al actual campeón mundial Vladimir Krámnik por el marcador 4 – 2

Juegos Campeones mundiales de ajedrez

Juegos Juegos con elemento aleatorio

• Problema: cómo aplicar minimax en problemas donde interviene el azar

Juegos Juegos con elemento aleatorio

• Un árbol de juego donde influye el azar, debe incluir nodos aleatorios

2

4

6

-4

Juegos Juegos con elemento aleatorio

• Un árbol de juego donde influye el azar, debe incluir nodos aleatorios

1/2

Cada rama que sale de un nodo aleatorio indica probabilidad

1/2

sello

cara

2

4

6

-4

1

2

Juegos Juegos con elemento aleatorio

• Un árbol de juego donde influye el azar, debe incluir nodos aleatorios

2

1

2

4

3

10

3

7

-1

4

5

-10

5

3

6

7

9

1

Juegos Juegos con elemento aleatorio

• Un árbol de juego donde influye el azar, debe incluir nodos aleatorios

1/6

2

1

2

1/6

1/6

4

3

10

1/6 3

7

-1

1/6

1/6

4

5

-10

5

3

6

7

9

1

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda

camino1

camino2

? ?

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda

camino1

camino2

? ?

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda Cara

camino1

camino2

? ?

Sello

Cara

Sello

Ataque1

2

Ataque2

4

Ataque1

7

Ataque2

4

Ataque1

6

Ataque2

0

Ataque1

5

Ataque2

-2

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda camino1

camino2

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda camino2

camino1

1/2 cara

1/2 sello

1/2 cara

1/2 sello

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda camino2

camino1

1/2

1/2

cara

sello

A1

A2

2

4

1/2 cara

1/2 sello

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda camino2

camino1

1/2

1/2

cara

1/2

sello

1/2

cara

sello

A1

A2

A1

A2 A1

A2

A1

A2

2

4

7

4 6

0

5

-2

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda camino2

camino1

1/2

1/2

cara

1/2

sello

2

1/2

cara

4

0

sello

-2

A1

A2

A1

A2 A1

A2

A1

A2

2

4

7

4 6

0

5

-2

Juegos Juegos con elemento aleatorio

• Se calcula el valor esperado en cada nodo aleatorio

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda 3 camino2

camino1

3

1/2

1/2

cara

sello

2

(½)*2 + (½)*4 = 3

1/2

1/2

cara

4

0

sello

-2

A1

A2

A1

A2 A1

A2

A1

A2

2

4

7

4 6

0

5

-2

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda 3 camino2

camino1

3

1/2

1/2

cara

1/2

sello

2

(½)*2 + (½)*4 = 3

-1

1/2

cara

4

0

sello

-2

A1

A2

A1

A2 A1

A2

A1

A2

2

4

7

4 6

0

5

-2

(½)*0 + (½)*(-2) = -1

Juegos Juegos con elemento aleatorio

• Ejemplo de juego con lanzamiento de moneda 3

3

1/2

-1

1/2

cara

1/2

sello

2

La decision minimax es tomar el camino1

camino2

camino1

1/2

cara

4

0

sello

-2

A1

A2

A1

A2 A1

A2

A1

A2

2

4

7

4 6

0

5

-2

Juegos Aplique minimax considerando un dado en lugar de una moneda: • En el camino 1, si usted saca un número par el fantasma puede optar entre dejarlo con una utilidad que es igual al número obtenido o dejarlo en 3, y si saca un número impar lo puede dejar en una utilidad que es igual a – el número obtenido o 4 • En el camino 2, si usted saca un número menor o igual que 4, el fantasma puede optar entre dejarlo con una utilidad que es igual al número obtenido o dejarlo en 2, y en los otros casos (5,6) lo puede dejar en – el número obtenido o en 3

? ?

Juegos La decision minimax es tomar el camino1 camino1

camino2 -4/6

-1/6

-1

A1

-1

1/6 1

2

1/6 2

-3

1/6 3

1/6

3

1/6 4

1/6

-5

1/6

5

3

6

1

1

2

1/6 2

1/6

2

3

1/6

2

1/6 4

1/6

-5

5

-6

6

A2 A1

A2 A1

A2 A1

A2 A1

A2 A1

A2A1

A2 A1

A2 A1

A2 A1

A2 A1

A2 A1

A2

4 2

3 -3

4 4

3 -5

4 6

3 1

2 2

2 3

2 4

2 -5

3 -6

3

Juegos Juego de los ejércitos

• Un jugador que vaya a atacar puede hacerlo con 1 o 2 ejércitos • El éxito de un ataque se representa por el valor obtenido en un dado* • Lanza primero el defensor • El atacante tiene que sacar un número mayor que el defensor para ganar, si se ataca con 2 ejércitos el atacante podrá lanzar 2 veces el dado Suponga que el dado solo tiene los números 1,2 y 3

Juegos Atacar con 1 ejército

1/3

1/3

1

1

1/3

2 2

1/3

2

Atacar con 2 ejércitos

3

1/3

3

1

2

1

3

1/3

1/3

3

1

2

1/3

3

2

1/3

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

11 22 21 33 32 31

11 22 21 33 32 31

11 22 21 33 32 31

Juegos

1/9 para cada posibilidad

11 22 33 12 21 13 31 23 32

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

11 22 21 33 32 31

Juegos Atacar con 1 ejército

1/3

1/3

1

1

1/3

2 2

1/3

2

Atacar con 2 ejércitos

3

1/3

3

1

2

1

3

1/3

1/3

3

1

2

1/3

3

2

1/3

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

11 22 21 33 32 31

11 22 21 33 32 31

11 22 21 33 32 31

Juegos Atacar con 1 ejército

1/3

1/3

1

1 -1

1/3

2 2

1/3

2

Atacar con 2 ejércitos

3

1/3

3

1

2

1

3

1/3

1/3

3

1

2

1/3

3

2

1/3

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

11 22 21 33 32 31

11 22 21 33 32 31

11 22 21 33 32 31

Juegos Atacar con 1 ejército

1/3

1/3

1

1/3

2 2

1/3

Atacar con 2 ejércitos

3

1/3

1

2

3

-1

1

1

1

2

1

3

1/3

1/3

3

1

2

1/3

3

2

1/3

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

11 22 21 33 32 31

11 22 21 33 32 31

11 22 21 33 32 31

Juegos Atacar con 1 ejército

1/3

1/3

1

1

1/3

2 2

1/3

2

Atacar con 2 ejércitos

3

1/3

3

1

2

1

3

3

1

2

3

2

1/3

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

1/3

1/3

1/3

11 22 21 33 32 31

? ? ?

11 22 21 33 32 31

11 22 21 33 32 31

Juegos Atacar con 1 ejército

1/3

1/3

1

1

1/3

2 2

1/3

2

Atacar con 2 ejércitos

3

1/3

3

1

2

1

3

3

1

2

3

2

1/3

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

1/3

1/3

1/3

11 22 21 33 32 31

-1

1

1

11 22 21 33 32 31

11 22 21 33 32 31

Juegos Atacar con 1 ejército

1/3

1/3

1

1/3

2 2

1/3

Atacar con 2 ejércitos

3

1/3

1

3

1

2

3

1

2

3

1

2

3

-1

1

1

-1

-1

1

-1

-1

-1

1/3

2

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

1/3

1/3

1/3

11 22 21 33 32 31

-1

1

1

1

1

1

11 22 21 33 32 31

-1 -1 -1 1

1

11 22 21 33 32 31

1 -1 -1 -1 -1 -1 -1

Juegos Atacar con 1 ejército

1/3

1/3

1

1/3

2 2

1/3

Atacar con 2 ejércitos

3

1/3

1

3

1

2

3

1

2

3

1

2

3

-1

1

1

-1

-1

1

-1

-1

-1

1/3

2

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

1/3

1/3

1/3

11 22 21 33 32 31

-1

1

1

1

1

1

11 22 21 33 32 31

-1 -1 -1 1

Indique la decisión minimax

1

11 22 21 33 32 31

1 -1 -1 -1 -1 -1 -1

Juegos (1/3)(-1) + (1/3)(1) + (1/3)(1) = 1/3 Atacar con 1 ejército

Atacar con 2 ejércitos

(1/9)(-1) + (1/9)(1)(2) + (2/9)(1)(3) = 7/9

1/3

1/3

1

1/3

2 2

1/3

3

1/3

1

3

1

2

3

1

2

3

1

2

3

-1

1

1

-1

-1

1

-1

-1

-1

1/3

2

3

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

1/3

1/3

1/3

11 22 21 33 32 31

-1

1

1

1

1

1

11 22 21 33 32 31

-1 -1 -1 1

1

11 22 21 33 32 31

1 -1 -1 -1 -1 -1 -1

Juegos La decisión es atacar con 2 ejércitos Atacar con 1 ejército

Atacar con 2 ejércitos

(1/3)(-1) = -0.33

1/3

(1/27)= -0.037

1/3

1

1/3

2 2

1/3

3

-1/3 1/3

1/3

3

-1

1

2

7/9

1/9

1

2

3

1

2

3

1

2

3

-1

1

1

-1

-1

1

-1

-1

-1

11 22 21 33 32 31

-1

1

1

1/3

3

-1

1/9 para 11, 22 y 33 2/9 para 21, 32 y 31

1/3

1/3

1/3

1

1

1

11 22 21 33 32 31

-1 -1 -1 1

1

11 22 21 33 32 31

1 -1 -1 -1 -1 -1 -1

Juegos Juegos con elemento aleatorio

• El backgammon combina estrategia y suerte

Juegos Juegos con elemento aleatorio

• Aunque el jugador de las fichas blancas sabe sus jugadas permitidas, ignora qué valores obtendrá su contrincante al lanzar los dados • Un árbol de juego en el backgammon debe incluir nodos aleatorios, además de los nodos MAX y MIN

Max

Dado 1,1

1,2

1/36

1/18

Min

...

6,5

6,6

1/18

1/36

... Dado

Max

1,1

1,2

1/36

1/18

6,5 1/18

6,6

1/36

...

... Terminal -1

...

1

Juegos Backgammon • Primer programa fue BKG que utilizaba una función de evaluación heurística • En 1980 derrotó al campeón mundial por 5-1 • Como interviene la suerte, BKG puede tener buenas y malas partidas

Juegos Aplique minimax en el siguiente juego: • El juego consiste en que dos personas lanzan un dado* y se quiere saber quién obtiene un mayor puntaje. El jugador A puede inicialmente decidir si va a jugar doblando el valor obtenido o no • Si A dobla su puntaje y obtiene un valor mayor (doblando) que el de B, su utilidad 5, si obtiene menos o lo mismo su utilidad será -10

• Si A no dobla su puntaje y saca más o lo mismo que B, obtiene utilidad 10, si saca menos obtiene utilidad -2 • B no puede decidir si doble su puntaje • Primero lanza el dado A y luego B * Considere el dado de solo números 1, 2 y 3

Juegos La decision minimax es no doblar 5/3

1/3

1/3

1 -5

1/3

2

5

-10

1/3

-10

1/3

1/3

3

1

2

3

5

5

2

6

10

1/3

1/3

3

6

2

1/3

1

no doblar

doblar

1/3

1/3

1/3

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

5

5

5

5

5

5

10

-2

-2

10

10

-2

10

10

10