You are on page 1of 14

Algoritmo de Juego Humano-

Máquina
Algoritmo de Juego Humano-Máquina

Tópicos

Algoritmo de Juego Humano –


Máquina
Algoritmo de Juega – Máquina
Estrategias de Juego
Ejemplo: Othelo
1. Algoritmo de Juego Humano - Máquina

eI estado inicial

Gana Humano ó
si Gana Máquina ó
eI es meta Fin
Empate

si Juega Humano
turno=Humano
Genera estado “e”
eI  e
no Juega Máquina
Genera estado “e”
2. Algoritmo de Juega Máquina

e1
Estrategias
e2

Sistema de
eI ... Selección e
Producción

ek-1

ek
2. Algoritmo de Juega Máquina

• La máquina recibe un estado “eI”, usa el sistema de


producción y genera sus posibles alternativas de juego, y
mediante una estrategia, selecciona la jugada a realizar “e”

• La estrategia de selección de la jugada, depende del nivel de


dificultad que se desea impregnar en la competición.

• La inteligencia de los juegos humano – máquina depende de


la estrategia de selección, del nivel de ramificación del árbol
de jugadas (estados), y de la función evaluadora
3. Estrategias de Juego

Nivel de Estrategias Descripción


Dificultad
0: Principiante No Determinística Se selecciona en forma aleatoria una de
las posibles jugadas

1: Normal Primero el mejor Se selecciona la mejor jugada, esto es la


(voraz, glotón) jugada que genera mejor valor de la
función evaluadora
2: Experto Min-Max Se selecciona la jugada que genera peor
(criterio: defensivo) utilidad entre las mejores jugadas del
oponente (humano)
Max-Diferencia Se selecciona la jugada que genera mayor
(criterio: ofensivo) diferencia de utilidades entre la jugada de
la máquina y la correspondiente mejor
jugada para el humano.
Juegos bipersonales
Los juegos bipersonales en la IA
 Son problemas con contingencias
 En ocasiones pueden tener una ramificación alta
 porejemplo en ajedrez, b  35
 Puede haber limitaciones de tiempo
 Entorno semidinámico

En la resolución se utilizan:


 Funciones de evaluación
 Evalúan los operadores utilizados por cada jugador.

 Ayudan a decidir el resultado del juego y las mejores

estrategias para cada jugador.


 Métodos de poda
 Simplificación de la búsqueda.
Planteamiento general:
 2 jugadores: MAX y MIN (MAX mueve primero):
 Estado inicial
 Posición del tablero e identificación del primer jugador a mover
 Función sucesora:
 Lista de pares (movimiento, estado) indica cada movimiento

legal y su estado resultante


 Función objetivo:
 Determina cuándo se acaba el juego (en nodos objetivo o

terminales)
 Función de utilidad (función u):
 Definida en nodos terminales (valores numéricos)

 Resultado del juego. Por ejemplo:

 +1 si gana MAX

 -1 si gana MIN

 0 si empate (tablas)
Ejemplo: tres en raya

Inicialmente MAX puede realizar uno de entre nuevo movimientos posibles

Jugadas alternas entre MAX (x) y


MIN (o), hasta llegar a un estado
terminal

El valor de cada nodo hoja indica el valor de la


función utilidad desde el punto de vista de MAX
(valores altos son buenos para MAX y bajos
buenos para MIN)

El estado inicial y los movimiento legales de cada jugador definen el


árbol del juego.
Decisiones óptimas en juegos de dos adversarios
 Algoritmo minimax
 Tiene por objetivo decidir un movimiento para MAX.
 HIPÓTESIS
 Jugador MAX trata de maximizar su beneficio (función de utilidad).
 Jugador MIN trata de minimizar su pérdida.

 Aplicación algoritmo:
 1) Generar árbol entero hasta nodos terminales
 2) Aplicar función u a nodos terminales
 3) Propagar hacia arriba para generar nuevos valores de u para todos los nodos
 minimizando para MIN

 maximizando para MAX

 4) Elección jugada con máximo valor de u


 MINIMAX-VALUE(n) =
 UTILITY(n) Si n es un nodo terminal
 max
s  Sucesor(n) MINIMAX-VALUE(s) Si n es un nodo MAX
 min
s  Sucesor(n) MINIMAX-VALUE(s) Si n es un nodo MIN
Decisiones óptimas en juegos de dos adversarios
 Ejemplo: tres en raya (Tarea: Explicar el Cuadro)

Nodos MAX, le toca mover a MAX

Nodos MIN

Valores de la función de utilidad para MAX

Valores minimax (cada nodo tiene asociado valor


minimax o MINIMAX-VALUE(n))

• La mejor jugada de MAX es A1 porque genera el mayor valor minimax entre sus nodos sucesores: ÓPTIMA
• La mejor jugada entonces de MIN es A11 porque genera el menor valor minimax entre sus nodos sucesores.
Decisiones óptimas en juegos de dos adversarios
 Algoritmo:

function MINIMAX-DECISION(state) return una acción


inputs: state, estado actual en el juego
v  MAX-VALUE(state)
return una acción de SUCCESSORS(state) con valor v

function MAX-VALUE(state) returns valor utilidad


if TERMINAL-TEST(state) then return UTILITY(n)
v -
for s en SUCCESSORS(state) do
v  MAX(v, MIN-VALUE(s))
return v

function MIN-VALUE(state) returns valor utilidad


if TERMINAL-TEST(state) then return UTILITY(n)
v  
for s en SUCCESSORS(state) do
v  MIN(v, MAX-VALUE(s))
return v

 La complejidad (m = máxima profundidad), como es una búsqueda en profundidad, es:


 Temporal: O (b m )
 Espacial: O (bm)
 Para juegos reales la complejidad temporal hace que sea impracticable. Es válido para casos de libro.
Decisiones imperfectas en juegos de dos adversarios
Tres en raya

ver Nilsson

You might also like