Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Supondremos que max mueve inicialmente y que luego se turnan para jugar.
Estado inicial: Es una configuración inicial del juego más una indicación de
quién tiene la próxima movida.
Operadores: Corresponden a las jugadas legales se pueden hacer en el juego.
Condición Terminal: Determina cuándo el juego se acabó.
Función de Utilidad: Da un valor numérico a una configuración final de un
juego. En un juego en donde se puede ganar, perder o empatar, los valores
pueden ser 1, 0, o -1.
Generalmente no es posible buscar a una profundidad tal que permita llegar a las
hojas del árbol.
Repetir mientras k ≥ 1
• Calcular la utilidad de los nodos de nivel 2k − 1 como la mı́nima utilidad entre
la de sus hijos.
• Calcular la utilidad de los nodos de nivel 2k − 2 como la máxima utilidad entre
la de sus hijos.
• k =k−1
Consideremos el árbol de juego de la última etapa del gato (figura 3). Supongamos
que un nodo hoja es evaluado en cuanto es generado.
Consideremos ahora la primera etapa del gato (figura 4). Supongamos que la
búsqueda se realiza usando una estrategia dfs y que cada vez que una hoja es
generada su se computa su evaluación. Supongamos, además, que también se
calculan las evaluaciones para los nodos no-hoja, en cuanto es posible.
Al calcular el valor para el nodo A, sabemos que el valor del nodo inicial (Start
El valor alfa de un nodo MAX es la cota inferior del valor de utilidad que se
conoce hasta el momento.
Si durante el cálculo del valor MAX de un nodo sólo se conoce el valor de la
utilidad de un subconjunto h de sus hijos, entonces el valor alfa corresponde a la
máxima utilidad que estos poseen.
Dada estas restricciones podemos establecer las siguientes reglas para el podado
del árbol de búsqueda:
• La búsqueda es abandonada bajo todo nodo min que tiene un valor beta menor
o igual al valor alfa de alguno de sus antecesores max.
• La búsqueda es abandonada bajo todo nodo max que tiene un valor alfa mayor
o igual al valor beta de alguno de sus antecesores min.
• El valor alfa de un nodo max es igual al mayor valor calculado en sus sucesores.
• El valor beta de un nodo min es el menor valor calculado en sus sucesores.
La figura 5 muestra los valores alfa-beta de los nodos justo después de producir
el corte en el arco que une al nodo C con el nodo I.
B C D
beta=3 beta=1
E F G H I J K
L M N O P Q R S T U V W X Y
(2) (3) (8) (5) (7) (6) (0) (1) (5) (2) (8) (4) (10) (2)
Supongamos que el árbol tiene profundidad d y cada nodo (excepto los nodos
hoja) tienen exactamente b sucesores. Si no realizamos poda alfa-beta, deberemos
revisar bd nodos hoja.
Supongamos que x1, x2, . . ., x5, x6 son vectores que codifican el dı́a y las
observaciones meteorológicas hechas el lunes, martes, . . ., sábado.
Supongamos que F es una función que calcula la salida de una red neuronal.
En ese caso, el problema se reduce a actualizar los pesos de ésta, para cada
ejemplo, usando la siguiente fórmula:
m
X
w←w+ ∆wt (1)
t=1
donde ∆wt está dado por:
La idea considera que la diferencia entre las distintas predicciones debe ayudar
a tener un mejor aprendizaje.
dt = F (xt+1, w) − F (xt, w)
y notando que
m
X
z − F (xt, w)) = (F (xk+1, w) − F (xk , w)), con z = F (xm+1, w)
k=t
El aprendizaje ahora depende de las diferencias entre las predicciones para los
elementos de la serie. Sin embargo, es equivalente al aprendizaje reforzado.
con 0 ≤ λ ≤ 1.
Empı́ricamente se ha visto que T D(λ) tiene mejores resultados que la técnica de
aprendizaje reforzado pura.
Realmente, nos interesa encontrar una estimación de J, digamos J(t, ˜ w), que
dado un tablero t y un vector de parámetros w, retorne una estimación para J(t).
˜ n+1, w) es el
Ası́, para una secuencia de tableros x1, . . . , xn, xn+1 (donde J(x
resultado final del juego), podemos aplicar una fórmula del siguiente estilo para
actualizar w: n n
X X
w=w+ ˜ t, w)
α∇w J(x λk−tdk
t=1 k=t
Sean x1, . . . , xn−1 los tableros donde MAX pudo jugar y xn el tablero final (r(xn)
˜ n, w) ← r(xn).
es el resultado del juego). Diremos, por simplicidad que J(x
1. Para cada estado xi, hacer xli igual a la hoja del árbol minimax que sirve para
computar el valor minimax de xi.
2. Para cada t ∈ 1..n − 1 computar
˜ lt+1, w) − J(x
dt ← J(x ˜ lt, w)
n−1
X n−1
X
w ←w+α ˜ lt, w)
∇J(x λj−tdt.
t=1 j=t