Algoritmo de Juego Humano-Máquina
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 JuegoEjemplo: Othelo
1. Algoritmo de Juego Humano - Máquina
eI
eI es meta
Gana Humano óGana Máquina ó
EmpateFin
turno=HumanoJuega Humano
Genera estado “e”
Juega MáquinaGenera estado “e”
eI e
estado inicial
si
si
no
2. Algoritmo de Juega Máquina
eI eSistema deProducción
ek-1
ek
e2
e1
Selección
Estrategias
. . .
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 Nivel de
DificultadDificultadEstrategiasEstrategias DescripciónDescripción
0: Principiante0: Principiante No DeterminísticaNo Determinística Se selecciona en forma aleatoria una de Se selecciona en forma aleatoria una de las posibles jugadaslas posibles jugadas
1: Normal1: Normal Primero el mejorPrimero el mejor(voraz, glotón)(voraz, glotón)
Se selecciona la mejor jugada, esto es la Se selecciona la mejor jugada, esto es la jugada que genera mejor valor de la jugada que genera mejor valor de la función evaluadorafunción evaluadora
2: Experto2: Experto Min-MaxMin-Max(criterio: defensivo)(criterio: defensivo)
Se selecciona la jugada que genera peor Se selecciona la jugada que genera peor utilidad entre las mejores jugadas del utilidad entre las mejores jugadas del oponente (humano)oponente (humano)
Max-DiferenciaMax-Diferencia(criterio: ofensivo) (criterio: ofensivo)
Se selecciona la jugada que genera mayor Se selecciona la jugada que genera mayor diferencia de utilidades entre la jugada de diferencia de utilidades entre la jugada de la máquina y la correspondiente mejor la máquina y la correspondiente mejor jugada para el humano.jugada para el humano.
Juegos bipersonalesLos juegos bipersonales en la IA
Son problemas con contingenciasEn ocasiones pueden tener una ramificación alta
por ejemplo en ajedrez, b 35Puede haber limitaciones de tiempo
Entorno semidinámicoEn 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
El estado inicial y los movimiento legales de cada jugador definen el árbol del juego.
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)
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 maxs Sucesor(n) MINIMAX-VALUE(s) Si n es un nodo MAX mins Sucesor(n) MINIMAX-VALUE(s) Si n es un nodo MIN
Decisiones óptimas en juegos de dos Decisiones óptimas en juegos de dos adversariosadversarios
Ejemplo: tres en raya Ejemplo: tres en raya (Tarea: Explicar el Cuadro)(Tarea: Explicar el Cuadro)
Nodos MAX, le toca mover a MAX
Nodos MIN
Valores de la función de utilidad para MAX
• 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.
Valores minimax (cada nodo tiene asociado valor minimax o MINIMAX-VALUE(n))
Decisiones óptimas en juegos de dos adversarios Algoritmo:Algoritmo:
function MINIMAX-DECISION(state) return una acciónfunction MINIMAX-DECISION(state) return una accióninputs: state, estado actual en el juegoinputs: state, estado actual en el juegov v MAX-VALUE(state) MAX-VALUE(state)return una acción de SUCCESSORS(state) con valor vreturn una acción de SUCCESSORS(state) con valor v
function MAX-VALUE(state) returns valor utilidadfunction MAX-VALUE(state) returns valor utilidadif TERMINAL-TEST(state) then return UTILITY(n)if TERMINAL-TEST(state) then return UTILITY(n)v v - - for s en SUCCESSORS(state) dofor s en SUCCESSORS(state) do
v v MAX(v, MIN-VALUE(s)) MAX(v, MIN-VALUE(s))return vreturn v
function MIN-VALUE(state) returns valor utilidadfunction MIN-VALUE(state) returns valor utilidadif TERMINAL-TEST(state) then return UTILITY(n)if TERMINAL-TEST(state) then return UTILITY(n)v v for s en SUCCESSORS(state) dofor s en SUCCESSORS(state) do
v v MIN(v, MAX-VALUE(s)) MIN(v, MAX-VALUE(s))return vreturn v
La complejidad (m = máxima profundidad), como es una búsqueda en profundidad, es: La complejidad (m = máxima profundidad), como es una búsqueda en profundidad, es: Temporal: Temporal:
Espacial: Espacial: Para juegos reales la complejidad temporal hace que sea impracticable. Es válido para Para juegos reales la complejidad temporal hace que sea impracticable. Es válido para casos de libro.casos de libro.
)( mbO
)(bmO
Decisiones imperfectas en juegos de dos adversariosTres en raya
ver Nilsson