Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

26
Inteligencia Artificial Inteligencia Artificial Búsqueda de Soluciones: Búsqueda de Soluciones: Algoritmo miniMAX Algoritmo miniMAX

Transcript of Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Page 1: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Inteligencia ArtificialInteligencia Artificial

Búsqueda de Soluciones: Búsqueda de Soluciones:

Algoritmo miniMAXAlgoritmo miniMAX

Page 2: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Que es?Que es?

• En En teoría de juegosteoría de juegos, Minimax es un método , Minimax es un método de decisión para minimizar la perdida de decisión para minimizar la perdida máxima esperada en juegos con adversario máxima esperada en juegos con adversario con con información completainformación completa..

Page 3: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Que es?Que es?

• Esta diseñado para dos jugadores.(Max y Esta diseñado para dos jugadores.(Max y Min).Min).

• Es un procedimiento recursivo, hasta que se Es un procedimiento recursivo, hasta que se cumple alguna de las condiciones siguientes:cumple alguna de las condiciones siguientes:

• Gana algún jugador.Gana algún jugador.• Se han explorado N capas, siendo N el limite Se han explorado N capas, siendo N el limite

establecido.establecido.• Se ha agotado el tiempo de exploración.Se ha agotado el tiempo de exploración.• Se ha llegado a una situación estática donde no hay Se ha llegado a una situación estática donde no hay

grandes cambios de un nivel a otro.grandes cambios de un nivel a otro.

Page 4: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Representación de los juegos.Representación de los juegos.

• Posición inicial.Posición inicial.

• Conjunto de operadores o reglas del juego.Conjunto de operadores o reglas del juego.

• Estado terminal.Estado terminal.

• Función de utilidad.Función de utilidad.

Page 5: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

• Heurística:Heurística:

• No garantiza el éxito.No garantiza el éxito.

• El camino seleccionado es “razonablemente” un El camino seleccionado es “razonablemente” un camino hacia la victoria o empate.camino hacia la victoria o empate.

• Imita el comportamiento humano al examinar por Imita el comportamiento humano al examinar por anticipado un pequeño numero de jugadas antes de anticipado un pequeño numero de jugadas antes de decidirse por una.decidirse por una.

Representación de los juegos.Representación de los juegos.

Page 6: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Estructuras utilizadas.Estructuras utilizadas.

• El algoritmo Minimax utiliza la estructura de El algoritmo Minimax utiliza la estructura de un un árbol.árbol.

• En estructuras de datos un árbol esta formado por:En estructuras de datos un árbol esta formado por:

A

B C

D E

• Nodos. Nodos. • Nodo raízNodo raíz

• HojasHojas

Page 7: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Que es?Que es?

• El espacio de estados se presenta mediante El espacio de estados se presenta mediante árboles alternados.árboles alternados.

•NODONODO

•SUCESORES DE UN NODOSUCESORES DE UN NODO

•NIVELNIVEL

Page 8: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Ejemplo: Ejemplo:

1

12 -2 0 -1 0

x

x x

x xx x x x

oo

oo

oo

• MAX

• MIN

• MAX

1 -2 -1

• MAX

• MAX

• MIN

Page 9: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

HistoriaHistoria

• La teoría de juegos.La teoría de juegos.

• ¿Qué es un juego?¿Qué es un juego?

• Principales exponentes de la teoría de Principales exponentes de la teoría de juegos:juegos:– Emile BorelEmile Borel– John Von NeummanJohn Von Neumman– Oskar MorgensterOskar Morgenster

Page 10: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Teorema MinimaxTeorema Minimax

• ¿Quién fue John Von Neumman?¿Quién fue John Von Neumman?

• El teorema minimax.El teorema minimax.

• Ejemplo:Ejemplo:c1c1 c2c2 c3c3

r1r1 -2,2-2,2 1,-11,-1 10,-1010,-10

r2r2 -1,1-1,1 2,-22,-2 0,00,0

r3r3 -8,8-8,8 0,00,0 -15,15-15,15

Page 11: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Teorema MinimaxTeorema Minimax

• La suma de los valores maximin de los dos La suma de los valores maximin de los dos jugadores es igual a cero. jugadores es igual a cero.

• La solución maximin es la misma que el la La solución maximin es la misma que el la teoría del equilibrio de Nashteoría del equilibrio de Nash

• El punto de equilibrio de Nash. El punto de equilibrio de Nash.

Page 12: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Un ejemplo: Crisis 1914Un ejemplo: Crisis 1914

A.A. Comprometerse con Comprometerse con Serbia. Poca influencia Serbia. Poca influencia Rusa es conservada en Rusa es conservada en Serbia.Serbia.

(2)(2)

C. Serbia es salvado; la C. Serbia es salvado; la influencia Rusa en los influencia Rusa en los Balcanes es preservada; Balcanes es preservada; continua la agitación Serbia; continua la agitación Serbia; el imperio Austriaco comienza el imperio Austriaco comienza a desintegrarse.a desintegrarse.

(1)(1)

B. Rusia humillada y pierde B. Rusia humillada y pierde influencia en los Balcanes; influencia en los Balcanes; Austria gana el control de Austria gana el control de Serbia y preserva el imperios.Serbia y preserva el imperios.

(4)(4)

D. GuerraD. Guerra

(3)(3)

4 3

1

3

Mínimo de las filas

Atacar

No apoyar a Serbia Apoyar a Serbia

Comprometerse

Máximo de las columnas

Doble Alianza

(Austria-Alemania )

Rusia-Francia

Page 13: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

HistoriaHistoria

• ¿Quién fue Claude Shannon?¿Quién fue Claude Shannon?

• ““Programando una Computadora para que Juegue Programando una Computadora para que Juegue Ajedrez” artículo que describe la aplicación de Ajedrez” artículo que describe la aplicación de MINIMAX en el procedimiento para que una MINIMAX en el procedimiento para que una computadora juegue ajedrez.computadora juegue ajedrez.

• 1 punto para los peones,1 punto para los peones,• 3 puntos para los caballos o alfiles,3 puntos para los caballos o alfiles,• 5 puntos para las torres y 9 puntos para la reina. 5 puntos para las torres y 9 puntos para la reina. • 200 puntos para jaque mate.200 puntos para jaque mate.

Page 14: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Funcionamiento de MinimaxFuncionamiento de Minimax

• Planteamiento general: Planteamiento general:

– 2 jugadores: MAX y MIN (MAX mueve primero)2 jugadores: MAX y MIN (MAX mueve primero)

– Estado inicialEstado inicial

– Función sucesoraFunción sucesora

– Función objetivoFunción objetivo

– Función de utilidad (función Función de utilidad (función uu))

Page 15: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Funcionamiento de MinimaxFuncionamiento de Minimax

• Algoritmo Algoritmo minimaxminimax

– Tiene por objetivo decidir un movimiento para Tiene por objetivo decidir un movimiento para MAX.MAX.

– HIPÓTESISHIPÓTESIS– Jugador MAX trata de maximizar su beneficio (función de Jugador MAX trata de maximizar su beneficio (función de

utilidad).utilidad).– Jugador MIN trata de minimizar su pérdida.Jugador MIN trata de minimizar su pérdida.

Page 16: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Funcionamiento de MinimaxFuncionamiento de Minimax

– Aplicación algoritmo:Aplicación algoritmo:

• 1) Generar árbol entero hasta nodos terminales1) Generar árbol entero hasta nodos terminales

• 2) Aplicar función de 2) Aplicar función de utilidadutilidad a nodos terminales a nodos terminales

• 3) Propagar hacia arriba para generar nuevos valores 3) Propagar hacia arriba para generar nuevos valores de de utilidadutilidad para todos los nodos para todos los nodos

• 4) Elección jugada con máximo valor de 4) Elección jugada con máximo valor de utilidadutilidad

Page 17: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Decisiones imperfectasDecisiones imperfectas

• Dada una función de evaluación Dada una función de evaluación ff, se puede , se puede aplicar una búsqueda aplicar una búsqueda minimaxminimax con límite de con límite de profundidadprofundidad

• Uso de valores heurísticos para juegos con Uso de valores heurísticos para juegos con un espacio de estados extremadamente un espacio de estados extremadamente grandegrande

Page 18: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

5

5

2

9

98 9 2 1

17 8 3 4

5 2

3 1

1

5

5 9 2

9

99 2 1

17 8

5 2

3 1

1

5

5 9

5

Ejemplo: Juego imaginarioEjemplo: Juego imaginario

3 4

5 8

2

9

99 2 1

17 8

5 2

3 1

1

5 9

5

5

Page 19: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Funcionamiento: Pseudo códigoFuncionamiento: Pseudo código

MINIMAX(posicion, nivel)

/* casos base */

if (esGanador(posicion)) then

devolver +∞

else if (esPerdedor(posicion)) then

devolver −∞

else if (esEmpate(posicion)) then

devolver 0

else if (nivel = limite) then

devolver evaluacion(posicion)

else

/* caso recursivo */

for all sucesor i de posicion do

valores[i] := MINIMAX(sucesor i, nivel+1)

if (esNodoMAX(nivel)) then

devolver maximo(valores)

end if

if (esNodoMIN(nivel)) then

devolver minimo(valores)

end if

end for

end if

Page 20: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Ejemplos de juegosEjemplos de juegos

GatoGato Conecta cuatro Conecta cuatro

9! = 362880 partidas

NimNim

Page 21: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Ejemplos de juegosEjemplos de juegos

DamasDamas AjedrezAjedrez

1031 partidas 10123 partidas

Page 22: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Ejemplos de juegosEjemplos de juegos

GoGo OthelloOthello

10360 partidas

Page 23: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Ejemplos de juegosEjemplos de juegos

• Juegos que no aplicaJuegos que no aplica

Bridge, Solitario, BackgammonBridge, Solitario, Backgammon

Page 24: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Ejemplo: Rock PilesEjemplo: Rock Piles

• Dos jugadoresDos jugadores

• Los jugadores toman piedras de la pilaLos jugadores toman piedras de la pila

• ReglasReglas– Inicialmente hay 2 piedras en una pila y Inicialmente hay 2 piedras en una pila y

1 en otra1 en otra– MAX empieza y se alternan movimientosMAX empieza y se alternan movimientos

• MAX gana si MIN saca la última piedraMAX gana si MIN saca la última piedra• MIN gana si MAX saca la última piedraMIN gana si MAX saca la última piedra

Page 25: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Ejemplo: Rock PilesEjemplo: Rock Piles

Jugador 2 Pierde Jugador 2 Pierde

Jugador 1 Pierde Jugador 1 Pierde Jugador 1 Pierde

MAX

MIN

MAX

Page 26: Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.

Ejemplo: Rock PilesEjemplo: Rock Piles

Jugador 2 Pierde Jugador 2 Pierde

Jugador 1 Pierde Jugador 1 Pierde Jugador 1 Pierde

MAX

MIN

MAX

1

010

00 1 10

0 0 0

MAX

MIN

MAX