Sei sulla pagina 1di 45

Minimax

(Captulo 6 de AIMA)
Dra. Myriam Hernndez A.

Bsqueda competitiva
Al menos dos agentes y un ambiente competitivo:
juegos, mercados.
Juegos e Inteligencia Artificial:
Se considera que se requiere inteligencia para
ganar
Tiene que funcionar en tiempo real
Sirve para ambientes bien definidos y limitados

Juegos e Inteligencia Artificial

Informacin
completa
Informacin
incompleta

Determinstico

Azar

Damas, ajedrez,
Reversi

Backgamon,
Monopolio
Bridge, Poker,
Scrabble

Bsquedas y juegos
Juegos: Bsqueda contra un oponente.
Ejemplos: Juegos de mesa de dos jugadores: ajedrez, damas, tres en raya.

Configuracin del tablero: Arreglos nicos de piezas.


Representacin de juegos de mesa como bsquedas dirigidas a un objetivo. Estados:
configuraciones de piezas.

Estado inicial: configuracin actual del tablero


Funciones sucesoras: movimientos permitidos
Estado objetivo: ganar con su respectiva configuracin
de tablero

Funcin utilidad: valor para una configuracin actual

Ejemplo: tres en raya


Estado inicial: tabla 3x3 vaca
Funciones sucesoras: turnos para cada jugador en los que
se marca una X o una O en una celda de la tabla
Estado objetivo: Todas las celdas estn llenas o uno de
los jugadores tiene tres smbolos en fila
Funcin utilidad: +1 para tres en raya, 0 no se hizo tres
en raya, -1 el oponente hizo tres en raya

Principios para aplicar el algoritmo


Minimax
Se asume que el oponente juega para ganar y siempre
hace la mejor jugada posible.
El valor minimax para un nodo = utilidad para estar en
ese estado, asumiendo que ambos jugadores (usted y
el oponente) juegan en forma ptima hasta el final.
Terminologa:
MAX = usted, MIN = el oponente

Ejemplo: tres en raya


Tarea: Expanda el rbol hasta el final del juego

Ejemplo: Tres en raya

Ejemplo: tres en raya

Ejemplo: tres en raya

Ejemplo: tres en raya

El valor minimax
Valor minimax para el nodo n =
Utilidad(n)

Si n es un nodo terminal

MAX (valor minimax de sucesores)

Si n es un nodo MAX

MIN (valor minimax de sucesores) Si n es un nodo MIN

Caractersticas con altos valores de utilidad le favorecen a usted (MAX),


por lo tanto se debe escoger el movimiento con mayor utilidad.
Caractersticas con bajos valores de utilidad le favorecen al oponente
(MIN), por lo tanto para estos movimientos escoja el valor con menor
utilidad.

Algoritmo minimax
1.

Empezar con las utilidades de los nodos terminales.

2.

Propagarlas de regreso al nodo raz escogiendo la estrategia minimax.

Complejidad del algoritmo minimax


Es una bsqueda depth-first
Complejidad en tiempo O(bd)
Complejidad en espacio O(bd)
La complejidad en tiempo resulta muy difcil de
manejar para juegos reales (que tienen restricciones de
tiempo) excepto para juegos muy simples como tres
en raya.

Estrategias para mejorar minimax


1. Remover caminos redundantes en la bsqueda.
Simetra
2. Remover caminos de bsqueda menos interesantes.
Poda alfa beta
3. Cortar la bsqueda antes del objetivo.
Funciones de evaluacin
4. Movimientos de libro.

1. Remover caminos redundantes

Tres en raya tiene


simetra de espejo y
simetras
rotacionales

Remover caminos menos interesantes


Si el jugador tiene una mejor eleccin m en el nodo padre
n, o a cualquier nodo en adelante nunca se llegar al
nodo n.
Podar el camino completo ms abajo del nodo padre de
m (excepto por aquellos caminos a los que m pertenezca y
caminos que son iguales a este camino.
Minimax es una bsqueda primero en profundidad
mantenga el control de los valores ms altos () y ms
bajos () hasta el momento.
Este mtodo se llama poda alfa beta.

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta


Por qu? Oponentes que saben jugar seleccionan W o peor Os tienen
como lmite superior -3.
De modo que MAX no debe seleccionar O:-3 porque N:4 es mejor

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Ejemplo: Alfa Beta

Regla de poda para Alfa Beta


Dejar de expandir:
MAX nodo n SI (n) > en la parte
superior del rbol
MIN nodo n SI (n) < en la parte
superior del rbol

Regla de poda para Alfa Beta


Dejar de expandir:
MAX nodo n SI (n) > en la parte superior del rbol
MIN nodo n SI (n) < en la parte superior del rbol
Qu nodo no se expande de izquierda a derecha?

Regla de poda para Alfa Beta

Regla de poda para Alfa Beta

Regla de poda para Alfa Beta

Regla de poda para Alfa Beta

3. Acortar la bsqueda
Usar el lmite de profundidad de la bsqueda y estimar la utilidad para
nodos no terminales (funcin de evaluacin).
Evaluacin estadstica del tablero
De fcil computacin

Ejemplo: ajedrez:
SBE = Balance material + Centro de control +

Balance material = valor de piezas blancas valor de piezas negras


Donde pen = +1, alfil y torre = +3, reina = +9, rey = ?
Los parmetros , , , pueden ser aprendidos (ajustados con la experiencia)

Movidas de libro
Construir una base de datos (tabla de bsqueda) de finales de juego,
aperturas, etc.

Usar esto en lugar de minimax siempre que sea posible.

Juegos que incluyen factores de azar


Juegos de dados, cartas,
Extender el rbol minimax con capas de probabilidad