14
Algoritmo de Juego Humano-Máquina

Juego Humano Maquina

Embed Size (px)

Citation preview

Page 1: Juego Humano Maquina

Algoritmo de Juego Humano-Máquina

Page 2: Juego Humano Maquina

Algoritmo de Juego Humano-Máquina

Tópicos

Algoritmo de Juego Humano – Máquina

Algoritmo de Juega – Máquina

Estrategias de JuegoEjemplo: Othelo

Page 3: Juego Humano Maquina

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

Page 4: Juego Humano Maquina

2. Algoritmo de Juega Máquina

eI eSistema deProducción

ek-1

ek

e2

e1

Selección

Estrategias

. . .

Page 5: Juego Humano Maquina

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

Page 6: Juego Humano Maquina

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.

Page 7: Juego Humano Maquina

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.

Page 8: Juego Humano Maquina

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)

Page 9: Juego Humano Maquina

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)

Page 10: Juego Humano Maquina

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

Page 11: Juego Humano Maquina

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))

Page 12: Juego Humano Maquina

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

Page 13: Juego Humano Maquina

Decisiones imperfectas en juegos de dos adversariosTres en raya

ver Nilsson

Page 14: Juego Humano Maquina