Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.
-
Upload
jimena-huerta -
Category
Documents
-
view
25 -
download
2
Transcript of Inteligencia Artificial Búsqueda de Soluciones: Algoritmo miniMAX.
Inteligencia ArtificialInteligencia Artificial
Búsqueda de Soluciones: Búsqueda de Soluciones:
Algoritmo miniMAXAlgoritmo 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..
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.
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.
• 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.
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
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
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
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
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
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.
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
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.
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))
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.
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
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
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
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
Ejemplos de juegosEjemplos de juegos
GatoGato Conecta cuatro Conecta cuatro
9! = 362880 partidas
NimNim
Ejemplos de juegosEjemplos de juegos
DamasDamas AjedrezAjedrez
1031 partidas 10123 partidas
Ejemplos de juegosEjemplos de juegos
GoGo OthelloOthello
10360 partidas
Ejemplos de juegosEjemplos de juegos
• Juegos que no aplicaJuegos que no aplica
Bridge, Solitario, BackgammonBridge, Solitario, Backgammon
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
Ejemplo: Rock PilesEjemplo: Rock Piles
Jugador 2 Pierde Jugador 2 Pierde
Jugador 1 Pierde Jugador 1 Pierde Jugador 1 Pierde
MAX
MIN
MAX
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