Download Juegos con Oponentes

Document related concepts
no text concepts found
Transcript
Búsqueda con Adversarios
Dr Jesús Antonio González Bernal
Dr.
Buscar soluciones enfrentando
adversarios
y En un ambiente de un videojuego,
videojuego es muy común que un
agente “conviva” con un conjunto de agentes
y ¿Qué hacer si el agente tiene que resolver un problema a partir
de una búsqueda,
q
, pero
p la secuencia de acciones no depende
p
exclusivamente del agente en sí?
2
Juegos con Dos Agentes
y Considere un videojuego en el cual dos agentes A y B
interactúan en un tablero dividido en celdas
y Asuma que primero el agente A actúa (se mueve a una celda),
celda)
después el agente B (se mueve a otra celda) y así sucesivamente
y Objetivo
j
A: lograr
g qque el agente
g
A este en la misma celda del
agente B
y Objetivo B: evitar que el agente A ocupe la misma celda que
ocupa B
3
Juegos con Dos Agentes
4
Juegos con Dos Agentes
` Para resolver este problema
problema, se puede actuar de la siguiente
forma:
` Para el agente A:
` Determinar todos los posibles movimientos a partir de un estado dado y
ver cual camino es el más ventajoso a través de una heurística
` Dadas las limitantes de tiempo y cómputo, en ocasiones no es posible
determinar con precisión el “mejor” movimiento
Análisis por horizonte limitado
` Se puede utilizar una estrategia de sensar / planear / actuar
` ¿Existirán estrategias más acordes a este tipo de problemas?
5
El procedimiento “minimax”
y Consideremos que en un juego tenemos a dos agentes
agentes, MAX
y MIN
y Asumamos que MAX tira primero seguido de un movimiento
de MIN
y Nodos en un nivel de p
profundidad impar
p corresponden
p
a
estados en donde MIN debe de tirar en seguida (nodos MIN)
y Nodos a un nivel par corresponden a estados en donde MAX
debe de ejecutar un movimiento (nodos MAX)
y El nodo raíz es de profundidad cero
y Cada jugador realizará una búsqueda de horizonte limitado para
realizar su movimiento
6
El procedimiento “minimax”
y Asumamos que cualquier movimiento de MIN o MAX busca
llegar a un estado en el cual tenga una mayor ventaja que el
resto
esto analizado
a a a o
y El procedimiento “minimax” consiste en que cada jugador
analice sus pposibles jjugadas,
g
las reacciones del contrario, sus
reacciones y así sucesivamente, hasta llegar al límite del
horizonte
y Los nodos en el límite del horizonte son evaluados a través de
una función heurística para estimar cual es la probabilidad de
que dichos nodos sean ganadores
ganadores, empate o perdedores
7
Etiquetado
` Como en cualquier búsqueda heurística
heurística, es necesario
establecer una función “f ” de evaluación para los nodos
` Consideremos como ejemplo
j p de trabajo
j al juego
j g del “gato”
g
(tic-tac-toe)
` Asumamos que el horizonte se establece a partir de una
profundidad
f d d d “2”
“ ”
` Como función de evaluación:
` f(tablero) = (# de columnas
columnas, renglones o diagonales vacías disponibles
para MAX) – (# de columnas, renglones o diagonales vacías disponibles
para MIN)
` f(tablero) = ∞,
∞ si tablero es una posición ganadora para MAX
` f(tablero) = - ∞, si tablero es una posición ganadora para MIN
8
Etiquetado
y Asumamos lo siguiente:
, f(tablero) = 66-4=2
4 2
y Para simplificar el problema, se utilizará la simetría de los
tableros (q
(que den posiciones
p
idénticas))
y
y Consideremos q
que MAX marca con una “x” al tablero y MIN
con un “o” al tablero
9
Procedimiento Minimax
10
Procedimiento Minimax
y A partir del árbol anterior,
anterior el estado ganador para MAX es:
y Considere que MIN responde a partir del siguiente
movimiento
i i
11
Procedimiento Minimax
12
Procedimiento Minimax
y A partir de este nuevo árbol de expansión
y MAX tiene dos posibles movimientos (se elige uno
aleatoriamente))
y Considere que MAX elige la tirada marcada en el árbol
y Considere que MIN responde con el siguiente movimiento
13
Procedimiento Minimax
14
Procedimiento Minimax (1/2)
y El etiquetado en el procedimiento “minimax”
minimax se puede llevar
a cabo a través de dos estrategias
y Desde un nodo MAX
MAX, se elige el máximo de los hijos
y Desde un nodo MIN, se elige el mínimo de los hijos
h(m), m sin sucesores
⎧
⎪
f (m) = ⎨max{ f (n) : n sucesor de m}, m ∈ MAX
⎪ min{ f (n) : n sucesor de m}, m ∈ MIN
⎩
min
max
min
Nodos evaluados con h(m)
15
max
MAX
MIN
Procedimiento Minimax (2/2)
y El etiquetado en el procedimiento “minimax”
minimax se puede llevar
a cabo a través de dos estrategias
y Se toma el convenio de “lo
lo que le conviene a MAX es
inversamente proporcional a lo que le conviene MIN”
) m sin sucesores, m MAX
⎧ h(m),
⎪
f (m) = ⎨− h(m), m sin sucesores, m MIN
⎪ max{ f (n) : n sucesor de m}
⎩
2
max
max
-8
MAX
MIN
16
8
-9
9
2
-2
-2
-9
-9
2
-3
3
Notas Procedimiento Minimax
y Minimax requiere realizar una búsqueda exhaustiva del árbol
dentro del horizonte limitado
y Minimax no considera podas en el árbol
7
8
17
>8
Poda α - β
y La estrategia “poda
poda α - β
β” permite realizar podas a un árbol a
partir de información que acarrea de los nodos inferiores
y Mantiene en cada llamado recursivo dos valores (α,
(α β),
β) donde
α es la cota inferior de los valores que se irán buscando en la
parte superior del árbol y β la cota superior
y Si α llega a ser igual o superior a β, no se realiza la búsqueda en
las demás ramas del nodo que se expande
y Poda α si el nodo que se expande es MAX
y Poda β si el nodo que se expande es MIN
18
Poda α - β: Algoritmo
y J: nodo actual
y Jk: k-ésimo hijo del nodo “J” (k = 1,…,b)
y h(J): valor de la función heurística evaluada en J
Procedimiento αβ(J, α, β)
Si J es terminal
terminal, devolver h(j)
2. k Å 1
3. Si J es MAX,, hacer
1. α Å max{α, αβ(Jk, α, β)}
2. Si α >= β, devolver β; en caso contrario continuar
3. Si k = b (#hijos
#
de J), devolver α
4. k Å k + 1, regresar a 3.1
1
1.
19
Poda α - β: Algoritmo
Procedimiento αβ(J,
αβ(J α,
α β) (continuación…)
(continuación )
4.
y
20
Si J es MIN, hacer
1
1.
β Å MIN{β,
MIN{β αβ(Jk, α,
α β)}
2. Si α >= β, devolver α; en caso contrario continuar
3
3.
Si k = b (#hijos de J)
J), devolver β
4. k Å k + 1, regresar a 4.1
NOTA: para el primer llamado del procedimiento, α = ∞ β=∞
∞,
Poda α - β: Ejemplo
y Marcar en el siguiente ejemplo las podas α - β:
MAX
max
MIN
min
max
min
max
16 15 14 13 12 11 10 9 8
21
7 6 5
4 3 2 1
Idea para Proyecto de Curso
y Implementación del Juego de Ajedrez
y Juego básico
y Mini-Max con poda α - β
22
¿Cómo implementar un juego de
ajedrez?
23