840 likes | 1.53k Views
Tema 3: Juegos bipersonales. Resumen:. Juegos bipersonales 3.1. Juegos bipersonales básicos (con información perfecta) 3.2. Juegos bipersonales con elementos de azar 3.3 Juegos bipersonales con información incompleta. Resolución de problemas con múltiples agentes. Entorno multiagente.
E N D
Tema 3: Juegos bipersonales Resumen: • Juegos bipersonales • 3.1. Juegos bipersonales básicos (con información perfecta) • 3.2. Juegos bipersonales con elementos de azar • 3.3 Juegos bipersonales con información incompleta – 1 –
Entorno multiagente • Situación: • múltiples agentes (jugadores) actúan en el mismo entorno • las acciones de los demás agentes influyen en la medida de rendimiento de cada agente • ningún agente puede controlar las acciones de los demás agentes • hasta cierto punto, un agente puede predecir las acciones de los demás • Tipos de problemas multiagente : • escenarios cooperativos: metas compartidas • escenarios parcialmente cooperativos: algunas metas compartidas, otras opuestas • escenarios antagónicos: metas opuestas – 1 –
Escenarios antagónicos: Juegos de suma cero • Juegos de suma cero: • juegos donde las ganancias y perdidas suman cero • lo que un jugador gana es lo que el otro pierde • ejemplo “clásico” de escenarios antagónicos • p.E.: Ajedrez, Póker, … • Juegos con recompensas: la ganancia /perdida tiene cantidad • el jugador quiere maximizar la cantidad • Juegos sin recompensas: solo se gana o se pierde • Tipos de juegos: • elementos de azar: • con elementos de azar (backgammon) / sin elementos de azar (damas) • información: • información perfecta (damas) / información incompleta (póker) – 1 –
Tema 3: Juegos bipersonales Resumen: • Juegos bipersonales • 3.1. Juegos bipersonales básicos (con información perfecta) • 3.2. Juegos bipersonales con elementos de azar • 3.3 Juegos bipersonales con información incompleta – 1 –
Modelo similar a la búsqueda con un único agente (juegos unipersonales): Estados: cada situación del juego define un estado Acciones: jugadas permitidas en una determinada situación los jugadores ejecutan sus acciones de forma alternando Estado inicial: estado actual del juego Estado final: estado en el que termina el juego Hay dos jugadores: max y min No se busca un plan de acciones ya que el jugador contrario influye en el progreso Objetivo de un agente: encontrar la mejor jugada para él (la jugada que tiene las mayores posibilidades de llevarle a ganar el juego) Modelar juegos bipersonales – 1 –
gana max gana min empate Ejemplo: Tres en Raya • Tres en Raya: • dos jugadores (min y max) • los jugadores van poniendo fichas en las casillas de un tablero 3x3 • max usa las fichas X / min usa las fichas O • una casilla puede contener como mucho una ficha • Reglas: • Inicialmente el tablero está vacío • max empieza y los jugadores se van alternando en poner sus fichas • max gana si obtiene una raya de tres fichas X • min gana si obtiene una raya de tres fichas O • si todas las casillas están ocupadas sin que haya una raya de 3 fichas del mismo tipo, hay empate – 1 –
Modelar juegos bipersonales • Conocimientos mínimos a priori de los agentes max y min : • s0posicióninicial (estado inicial) • expandir: s {si1, ..., sin} cjto. finito de posicionessucesores • terminal?: s true | false pruebaterminal • U: sk, k función parcial de utilidad del juego Nótese: • la función expandir • codifica las jugadas (acciones) permitidas en una posición s • supone implícitamente que los jugadores se alternan en realizar las jugadas • la función de utilidad está definida sólo en los estados terminales s • juegos de suma cero sin recompensas: max gana si y sólo si min pierde • gana max: U(s) = + / ganamin : U(s) = – / empate: U(s) = 0 – 1 –
. . . . . . ... ... ... terminal – + utilidad 0 Ejemplo: Árbol de juego para Tres en Raya max min max min – 1 –
Árboles de juego • Definición: • Sea N un conjunto de nodos, ENN, L = {max,min}, y G = (N,E,L) un árbol etiquetado. G es un árbol de juego si • G no es vacío • la raíz está etiquetada max • todos los sucesores de max son etiquetados min • todos los sucesores de min son etiquetados max • Observaciones: • cada nivel del árbol de juego representa un ply (media jugada) • en los nodos etiquetados max, es el turno del agente max • en los nodos etiquetados min, es el turno del agente min • las hojas de un árbol de juego (completamente desarrollado) representan las posiciones terminales del juego – 1 –
Estrategias • Problema del agente max: ¿cómo determinar su mejor jugada? • max podría aplicar métodos de búsqueda estándar, usando las posiciones en las que él gana como estados meta • pero min no querría realizar las acciones que el plan de max prevé para él ! • Estrategia: • define las jugadas de max para cada posible jugada de min • un subárbol del árbol de juego • Estrategia óptima (ó racional) : • la estrategia que implica el mejor resultado garantizado para max • escenarios totalmente antagónicos con agentes racionales: • max puede asumir que min hará lo mejor para sí mismo, lo cual el lo peor para max • la estrategiaóptima para max es la estrategia minimax: • maximizar la utilidad mínima en cada jugada – 1 –
estrategia óptima: - - 0 a3,1 a3,2 a3,3 0 0 + + + – 0 0 – utilidad Ejemplo: estrategia minimax mejor jugada de max: a1 max 0 a1 a2 a3 min a2,1 a2,2 a2,3 a1,1 a1,2 a1,3 terminal – 1 –
Método minimax • Método Minimax: • 1. Generar el árbol de juego completo • 2. Aplicar la función de utilidad en cada nodo terminal • 3. Propagar las utilidades hacia arriba • – en los nodos max, usar la utilidad máxima de los sucesores • – en los nodos min, usar la utilidad mínima de los sucesores • 4. Eventualmente los valores de utilidad llegan al nodo raíz (max) • 5. La jugada óptima de max es la que lleva al sucesor de utilidad máxima – 1 –
Algoritmo Minimax básico • Algoritmo: • funciones mutuamente recursivas • estado es el estado actual • a : máximo de la utilidad de los sucesores de un nodo max • b : mínimo de la utilidad de los sucesores de un nodo min {MaxValor en el Minimax básico} Función MaxValor(estado) Siterminal?(estado) entonces devolver(U(estado)) sucesores expandir(max, estado) a Paracada ssucesores hacer a max(a, MinValor(s)) devolver(a) Fin {MaxValor} {MinValor en el Minimax básico} Función MinValor(estado) Siterminal?(estado) entonces devolver(U(estado)) sucesores expandir (min, estado) b + Paracada ssucesores hacer b min(b,MaxValor(s)) devolver(b) Fin {MinValor} – 1 –
Decisiones imperfectas • Problema: crecimiento exponencial del árbol de juego • incluso en juegos muy simples, es imposible desarrollar el árbol de juego completo hasta todos sus nodos terminales • Solución: Heurísticas • sustituir la prueba terminal por una prueba suspensión que detiene la búsqueda aún sin llegar a una posición terminal: • límite de profundidad fijo • posiciones “en reposo” • aplicar una función de evaluacióne, que estime la utilidad esperada del juego correspondiente a una posición s determinada • suele ser función lineal ponderada : e(s) = w1 f1(s) + w2 f2(s) + . . . + wnfn(s) • Ajedrez: e(s) = “suma de los valores materiales en s” • Tres en Raya: e(s) = “nº de líneas abiertas para líneas max en s” – “nº de líneas abiertas para líneas min en s” – 1 –
estrategia óptima: 3 2 2 a3,1 a3,2 a3,3 3 12 8 2 4 6 14 5 2 evaluación e Ejemplo: minimax con suspensión mejor jugada de max: a1 max 3 a1 a2 a3 min a2,1 a2,2 a2,3 a1,1 a1,2 a1,3 – 1 –
Algoritmo Minimax con suspensión • Algoritmo: • funciones mutuamente recursivas • estado es el estado actual • a : máximo de la evaluación de los sucesores de un nodo max • b : mínimo de la evaluación de los sucesores de un nodo min {MaxValor: Minimax con suspensión} Función MaxValor(estado) Sisuspensión?(estado) entonces devolver(e(estado)) sucesores expandir(max, estado) a Paracada ssucesores hacer a max(a, MinValor(s)) devolver(a) Fin {MaxValor} {MinValor: Minimax con suspensión} Función MinValor(estado) Sisuspensión?(estado) entonces devolver(e(estado)) sucesores expandir (min, estado) b + Paracada ssucesores hacer b min(b,MaxValor(s)) devolver(b) Fin {MinValor} – 1 –
2 - - - ... ... - ... min + + max - 1 ... + + + 2 + 2 1 1 1 0 2 + 2 + 1 1 0 2 0 Ejemplo: Tres en Raya Suspensión en ply 3 2 max – 1 –
A veces la estrategia minimax es dudosa: 99 a2,1 a2,2 a2,3 a2 a1 100 99 ? a1,1 a1,2 a1,3 101 102 99 1000 1000 100 Juegos con recompensas variables • Juegos sin recompensas variables: • gana max: U(s) = + / gana min : U(s) = – / empate: U(s) = 0 • Juegos de recompensas variables: por ejemplo ganar puntos/dinero/… • La utilidad de un nodo hoja depende de la recompensa • la propia recompensa puede define la utilidad • La función de evaluación tiene que evaluar la recompensa esperada • Ejemplo: cantidad de dinero que se gana, … – 1 –
Ejercicio 3.1 Considérese el siguiente árbol de juego desarrollado hasta ply 3. Los nodos están etiquetados con los valores de la función de evaluación e. a) Evalúe el árbol del juego en base al algoritmo minimax. b) ¿Cuál es la mejor jugada para el agente max? 0 –2 6 2 5 8 9 2 7 6 8 5 2 3 – 1 –
a1 a2 a3 a3,1 a3,2 a3,3 a2,1 a2,2 a2,3 a1,1 a1,2 a1,3 3 12 8 14 5 2 Poda a-b • Nótese: • a veces es posible calcular la utilidad de un nodo sin tener que evaluar todos sus sucesores max 3 2 3 2 min 2 – 1 –
a Condición de poda: ba b Poda a-b Utilidad más alta encontrada en un nodo max hasta el momento: a max • La utilidad Umin del nodo min será como mucho b • La utilidad Umax del nodo max será al menos a • No es necesario explorar los sucesores restantes de min, ya que se cumple en todo caso:Umin b a Umax . . . min – 1 –
b Condición de poda: ab a Poda a-b Utilidad más baja encontrada en un nodo min hasta el momento: b min • La utilidad Umax del nodo max será al menos a • La utilidad Umin del nodo min será como mucho b • No es necesario explorar los sucesores restantes de max, ya que se cumple en todo caso:Umin b a Umax . . . max – 1 –
Minimax con poda a-b • Algoritmo: • funciones mutuamente recursivas • estado es el estado actual • a es el mejor valor de evaluación para max en el camino hasta estado • b es el mejor valor de evaluación para min en el camino hasta estado {MaxValor: Minimax con poda a-b} Función MaxValor(estado,a,b) Sisuspensión?(estado) entonces devolver(e(estado)) sucesores expandir(max, estado) Paracada ssucesores hacer a max(a, MinValor(s,a,b )) Si a bentonces devolver(a) devolver(a) Fin {MaxValor} {MinValor: Minimax con poda a-b} Función MinValor(estado,a,b) Sisuspensión?(estado) entonces devolver(e(estado)) sucesores expandir (min, estado) Paracada ssucesores hacer b min(b,MaxValor(s,a,b )) Si b aentonces devolver(b) devolver(b) Fin {MinValor} – 1 –
Ejercicio 3.2 Considerese el árbol de juego del ejercicio anterior. Evalúe el árbol utilizando el algoritmo minimax con poda a-b. Cuando aplica una poda, indique la condición de poda correspondiente. 0 –2 6 2 5 8 9 2 7 6 8 5 2 3 – 1 –
Resumen minimax • Análisis: • la eficiencia de minimax con poda a-b depende del orden en el que se exploran los nodos • en promedio, la poda a-b permite expandir 50% menos nodos que minimax • Problemas: • efecto horizonte: • la búsqueda se suspende justo cuando el jugador está por hacer una gran jugada • suposición de racionalidad perfecta: • suponga que max está a punto de perder si min juega de forma óptima • sin embargo, hay una jugada que hace ganar a max, si min hace un solo error • Extensiones: • heurísticas “fuertes” basados en meta-razonamiento • algoritmos de búsqueda guiados por la utilidad esperada de expandir un nodo – 1 –
Tema 3: Juegos bipersonales Resumen: • Juegos bipersonales • 3.1. Juegos bipersonales básicos (con información perfecta) • 3.2. Juegos bipersonales con elementos de azar • 3.3 Juegos bipersonales con información incompleta – 1 –
Juegos bipersonales con elemento de azar • Muchos jugos tienen elementos de azar: • p.E.: cualquier juego con dados • ¿Cómo tratar estos elementos? • Algoritmo: EXPEXTMINIMAX • Idea: • Utilizar el algoritmo minimax • Añadir un nuevo jugador: “azar” que se incluye en el árbol siempre que haya un evento independiente de los jugadores y cuyo resultado es aleatorio • Los sucesores de un nodo “azar” son las posibles situaciones que podrían ser el resultado de este elemento de azar • p.E.: todos los posibles resultados de tirar un dado • Cada uno de los sucesores de un nodo “azar” tiene asociado la probabilidad de que este resultado ocurra • p.E.: en el caso del dado: P(1)=1/6, …, P(6)=1/6 – 1 –
Ejemplo: Backgammon simplificado • Estado inicial: • Objetivo: • mover las fichas al lado opuesto (max= , al campo 5 y min= al campo 0) • Reglas: • max empieza y los jugadores se van alternando sus jugadas • Cada jugada consiste primero en tirar una moneda; la cara tiene el valor 1 y la cruz el valor 2. Después se mueve una de las fichas 1 o 2 campos en la dirección deseada (dependiendo del resultado de la tirada de la moneda) • No es posible mover una ficha a un campo que tiene una ficha del oponente • Si un jugador no puede mover sus fichas pierde su turno (si puede, tiene que mover una ficha) • Gana el jugador que primero ha movido ambas fichas al campo deseado • El elemento de azar ocurre antes de elegir la jugada 0 1 2 3 4 5 – 1 –
max 1;1/2 2;1/2 … azar … (2,0,5,5) (2,0,4,5) (0,0,5,5) (0,2,5,5) (1,1,4,5) (1,0,4,5) (1,0,5,5) (1,0,5,4) (0,1,5,5) min 1;1/2 2;1/2 azar max 1;1/2 2;1/2 azar … Ejemplo: Backgammon simplificado Representación eficiente de estados:(x1,x2,y1,y2) x1 y x2 posiciones de las fichas blancas e y1,y2 posiciones de las fichas negras Árbol del juego: azar – 1 –
Expectminimax • Objetivo: elegir la mejor jugada para max • ¿Cómo propagar los valores de utilidad/evaluación de los nodos hoja a los nodos superiores? • Solución: • Implementación: ejercicio – 1 –
Ejemplo: Backgammon simplificado • Situación actual: (toca a max) • (3,4,1,2); max tiene que mover una ficha (blanca) una posición • Suponemos el algoritmo expectminimax con un nivel de suspensión de 5 • Como función de evaluación se usa la siguiente: e((a,b,c,d))=a+b+c+d • valores altos de a y b son buenos para max porque indican que sus fichas • están cerca de la meta (5) • valores altos de c y d son buenos para max porque indican que las fichas • de min estan lejos de su meta (0) • para el estado actual: e((3,4,1,2))=10 0 1 2 3 4 5 cara – 1 –
e(nodo) max azar min azar max 11 1;1/2 11 10,5 11 10 2;1/2 1;1/2 10 10,5 11 1;1/2 11 10 10,5 11 10 2;1/2 10 10 9,5 1;1/2 2;1/2 10 10 9,5 2;1/2 9 9 (4,4,0,2) (5,4,1,0) (4,4,1,0) (5,4,1,1) (4,5,0,2) (5,4,0,2) (4,5,1,0) (4,5,0,2) (4,4,1,1) (4,5,1,1) (5,5,1,0) (4,4,1,1) (5,5,0,2) (4,5,1,1) (4,4,1,2) (3,5,1,0) (3,5,0,2) (3,5,1,2) (4,4,1,0) (4,5,1,0) (3,5,1,1) (5,5,1,1) (4,4,0,2) 11,5 1;1/2 11 11 1;1/2 2;1/2 11,5 12 12 1;1/2 11 11,5 11 11 2;1/2 12 2;1/2 12 1;1/2 10,5 10 10 10,5 2;1/2 11 11 11 – 1 –
max 2,1 4,9 1,3 4,9 2,1 4,8 azar 0,1 0,9 0,9 0,1 0,9 0,9 0,1 0,1 2 3 1 min 2 30 1 4 40 4 4 3 1 40 40 2 3 1 30 1 2 2 30 1 2 Funciones de evaluación/utilidad • Criterios de los funciones de evaluación/utilidad: • no pueden devolver + o – (los nodos azar tendrían siempre valores + o –) • la escala de los valores si importa (no como en el algoritmo minimax): – 1 –
Funciones de evaluación/utilidad • Caso ideal: • La función de evaluación debe ser una transformación lineal positiva de la probabilidad de ganar (o de la recompensa esperada) • Muchas veces es difícil establecer una función e que cumple este criterio (véase el ejemplo) • Juegos con recompensas: • la propia recompensa suele proporcionar una buena función de evaluación • Ejemplo: backgammon simplificado donde, además, el perdedor paga al ganador 1 euro por cada unidad de distancia de sus fichas respecto a la meta e(nodo) P(ganar|nodo) – 1 –
max azar 1,4 1,8 0,1 0,9 0,1 0,4 0,6 0,7 0,3 0 -4 1 5 3 -1 • Estrategia pesimista • elige el mínimo en los nodos de azar • Estrategia optimista • elige el máximo en los nodos de azar -4 5 -1 3 0 1 0,9 0,1 0,4 0,6 0,9 0,1 0,4 0,6 0,7 0,3 0,7 0,3 0 -4 1 0 5 -4 1 5 -1 -1 3 3 Estrategia ExpectMinimax/ Estartegias alternativas • Estrategia del algoritmo ExpectMinimax: • max siempre hace lo mejor para él (máximo) • min siempre hace lo mejor para si mismo (mínimo) • nodos de azar se pondera la utilidad por la probabilidad – 1 –
1.500.000 E 1.000.000 E 0,5 0,5 0 E 3.000.000 E • Mejor U(s)(0..10): U(0E)=0; U(1.000.000E)=8; U(3.000.000E)=9 U=4,5 1.000.000 E U=8 0,5 0,5 0 E U=0 3.000.000 E U=9 El dinero como función de utilidad • El dinero puede proporcionar una función de utilidad • Pero considera el siguiente ejemplo: • Un ganador de un concurso puede aceptar el premio de 1.000.000 euros o jugarse el premio a cara y cruz. Si acierta gana el 3.000.000 euros y si no acierta pierde todo. – 1 –
Complejidad ExpectMinimax • Proporcional al número de nodos en el árbol • d- nivel de suspensión, b- factor de ramificación • Si no tuviéramos nodos de azar, sería la misma complejidad que en el minimax: O(bd) • Si en cada jugada existe un elemento de azar con n posibilidades, la complejidad se convierte en O(bd*nd) • Ejemplo Backgammon: n=21 (2 dados) y b20 – 1 –
Ejercicio 3.3 Considere el siguiente árbol de juego. Evalúe el árbol utilizando el algoritmo expectminimax. Las probabilidades de los diferentes nodos son 0,5 para cada acción en los nodos de azar del nivel 3 y los que se indican en el árbol para los nodos de nivel 1. max azar 0,2 0,1 0,7 0,1 0,9 0,3 0,7 min azar 0 4 3 6 1 4 0 7 -2 7 1 1 2 7 0 3 7 6 4 7 8 12 2 7 9 11 8 6 – 1 –
Varios jugadores y alternancia no simétrica • Para más (o menos) jugadores y alternancias no estrictamente simétricas • Ejemplo: • Parchis: Si un jugador tiene un seis le toco otra vez • “La oca”: “de oca en oca y tiro porque me toca” • Minimax y Expectminimax son igualmente aplicables: • simplemente se añaden los nodos correspondientes en la posición correspondiente en el árbol min max azar 0,2 0,1 0,7 … – 1 –
Ejercicio 3.4 • El algoritmo ExpectMinimax también es aplicable en determinados casos en los que sólo actúa un agente y en los que existen elementos de azar. • Considere el siguiente juego. Un agente A quiere apostar dinero en una casa de apuestas. Las reglas de las apuestas son siempre las mismas: hay una probabilidad de ganar del 0,4 y de perder del 0,6. El agente puede elegir entre las siguientes acciones: irse a casa con el dinero que le queda, o apostar cualquier cantidad (entera) de su dinero. • Utilice el algoritmo ExpectMinimax para decidir que le conviene hacer al agente si tiene un euro. Para ello realiza el árbol hasta incluyendo dos rondas de apuestas. ¿Qué función de evaluación se puede usar? – 1 –
Tema 3: Juegos bipersonales Resumen: • Juegos bipersonales • 3.1. Juegos bipersonales básicos (con información perfecta) • 3.2. Juegos bipersonales con elementos de azar • 3.3 Juegos bipersonales con información incompleta – 1 –
Juegos bipersonales con información incompleta • En muchos juegos los jugadores no conocen el estado del juego completamente • El agente solo tienen información parcial sobre el estado actual • El agente sólo sabe que el juego se encuentra en alguno de los estados que concuerdan con la información de la que disponen • El estado actual real es uno de una serie de estados posibles • Ejemplo: • juegos con cartas (que se reparten al principio), bridge, versiones simples de póker, … • (Primera) Idea: • Considerar cada posible valor de los parámetros desconocidos y su probabilidad de ocurrencia / crear un árbol para cada posible estado • Aplicar el algoritmo ExpectMinimax • Elegir la acción que es mejor en todos los posibles casos – 1 –
s0 p(s1) p(sn) … s1 sn … a1 am … a1 am U(a1|s1) U(a1|sn) U(am|s1) • Obtener las utilidades para cada acción y cada posible estado si U(am|sn) ExpectMinimax con información incompleta • Situación actual del agente: • En un momento dado (estado indeterminado s0) existen n combinaciones distintas de valores para los parámetros desconocidos (estados posibles s1,…,sn) • La probabilidad de que el estado actual sea si es p(si) con p(s1)+…+p(sn)=1 • El agente puede elegir entre m posibles acciones: a1,…,am • Combinar todos los posibles árboles (para todos los posibles estados s1,…,sn) • Calcular la utilidad de cada acción: • Realizar la acción ai que maximize U(ai) – 1 –
Ejemplo 1: “Apuestas 1” • Dos jugadores (min y max) y una baraja de cartas con 2 ases (A), 2 reyes (K) y 2 reinas (Q). • Reglas: • Cada jugador pone un euro en el bote. Después obtiene una carta. • A continuación max puede pasar (min gana el bote), o puede apostar 2 o 4 euros. • Min puede pasar (max gana el bote) o igualar (poner igualmente dos euros). • Si min igual la apuesta de max, ambos enseñan sus cartas. • Gana el bote aquel jugador cuyas cartas tiene mayor valor (A>K>Q) • Si ambas cartas tienen el mismo valor entonces se reparte el bote (nadie gana ni pierde). • Problema para max: • max ha tenido una carta K y no conoce la carta de min • ¿Qué acción conviene a max? – 1 –
<K,?> <K,A> 2/5 2/5 <K,Q> 1/5 <K,K> 4 4 p 4 p p 2 2 2 0 -5 0 -3 1 1 -1 -1 -1 i i p p i i p p i i p p 1 -3 1 -5 1 0 1 0 1 3 1 5 Aplicar ExpectMinimax: Apuestas 1 • Calcular la utilidad de cada acción: Acción óptima: apostar 2 euros – 1 –
Aplicar ExpectMinimax: Apuestas 1 • ¿Porqué la utilidad de apostar 2 euros es -0,8? • max tiene mayores posibilidades de perder dinero que de ganar dinero • Analizamos: • si max tiene un K y apuesta 2 euros: • Si min tiene K (probabilidad 1/5) max no pierde nada • Si min tiene A (probabilidad 2/5) max pierde 3 euros • solo en el peor de los casos, es decir, si min iguala la apuesta • es lo que debería hacer min si tiene A • Si min tiene Q (probabilidad 2/5) max gana 1 euro • solo en el peor de los casos, es decir, si min pasa • eso es lo más razonable para min si tiene Q • el algoritmo siempre considera el peor caso para max • se supone que min siempre actúa lo mejor posible • La solución es razonable: • En muchos casos este algoritmo funciona aceptablemente bien – 1 –
Ejemplo 2: “Adivina la carta” • Consideramos el siguiente juego hipotético: • min coge una carta de una baraja (A o K con la misma probabilidad) y max tiene que adivinarla • max puede pasar o intentarlo. si pasa min le paga 1 euro • Luego min decide si pasa (tiene que pagar 10 euros a max) o permite a max que lo intente. • Finalmente, max intenta adivinar la carta. • Si acierta gana 5 euros de min y si no acierta pierde 5 euros a min. – 1 –
<?> <K> 1/2 1/2 <A> p i p i +5 +5 1 1 p i p i +5 +5 +10 +10 K A K A -5 +5 +5 -5 Ejemplo 2: Adivinar la carta • ¿Qual es la mejor jugada para max: pasar o intentarlo? Según el algoritmo, max debe intentar de adivinar la carta aunque tenga un 50% de posibilidad de perder 5 euros. Mientras si pasa gana 1 euro seguro. – 1 –
¿Porqué no funciona bien el algoritmo? • El algoritmo es: • demasiado optimista para max • Se supone que max siempre hace lo mejor para él • Si la carta que tiene min es K max dirá K • Si la carta que tiene min es A max dirá A • PERO: en realidad max no sabe la carta que tiene min • Para hacer lo mejor para si mismo, max necesita toda la información • sólo tiene información parcial • Solución: ExpectMinimax con estados de creencias – 1 –