Decisiones imperfectas en juegos de dos adversarios
Decisión imperfecta ? Estrategia Mixta
El algoritmo minimax asume una expansión hasta el final (en realidad es imposible).
Se usa una función de evaluación (f), que sea una estimación de u.
Función de evaluación:
El papel de f es el de u en nodos terminales
Ejemplos:
Si hay 50% posibilidades de ganar, 25% de perder y 25% de empate,
f=1*0.50+(-1)*0.25+0*0.25=0.25
En el ajedrez: peón=1, alfil=3, …. Suponiendo que MAX=fichas-blancas:
f=(num-peones-negros)*1 + (num-alfiles-negros)*3 …. -(num-peones-blancos)*1 – (num-alfiles-blancos)*3 ….
Decisiones imperfectas en juegos de dos adversarios
Dada una función de evaluación f, se puede aplicar una búsqueda minimax con límite de profundidad:
Se elige un límite de profundidad
Observación: el límite puede tener una posición desventajosa en un nivel más abajo.
Se pueden elegir sucesivos límites de profundidad.
El límite de profundidad se debería aplicar sólo a posiciones inactivas.
En ajedrez, serían por ejemplo posiciones en las que es poco probable que existan capturas
Problema del horizonte
Surge cuando el programa se enfrenta a una acción del oponente, inevitable y que causa serios perjuicios.
Ejemplo: en la figura anexa, peón blanco amenaza convertirse en dama. Torre negra amenaza con jaque. La ventaja actual es negra y la inmediata futura es blanca (evaluación calidad piezas).
Decisiones imperfectas en juegos de dos adversarios
Exploración y evaluación:
El procedimiento de exploración visto separa por completo el proceso de generación del árbol de exploración y la evaluación de posiciones.
Se puede reducir el esfuerzo requerido si se hace evaluación de los nodos finales y se llevan hacia atrás esas evaluaciones con la generación el árbol
Fcd-max: número de filas, columnas o diagonales libres para MAX
Fcd-min: número de filas, columnas o diagonales libres para MIN
Ejemplo: Tres en raya
Definimos la función de utilidad:
Decisiones imperfectas en juegos de dos adversarios
Ejemplo: Tres en raya
ver Nilsson
Poda
Consiste en tratar de localizar la decisión óptima minimax sin tener que explorar todos los nodos del árbol.
Aplicable a árboles de cualquier profundidad
Puede podar subárboles enteros
Principio general
El algoritmo efectúa una búsqueda
en profundidad. Si durante la misma se produce que m es mejor que n para un jugador, entonces nunca se llegará a n en el juego
Fundamentos del algoritmo de poda:
Si n es ascendiente de m, si se verifica alguna de estas condiciones:
Si n nodo MAX, m nodo MIN: el valor alpha se alcanza en nodo hijo de n
n nodo MIN, m nodo MAX: el valor alpha se alcanza en nodo hijo de n
En ambos casos no hace falta seguir examinando por debajo de m (se producen podas). El nodo m no afecta al resultado final y es prescindible.
Definimos
Un valor es una cota inferior para el valor obtenido por propagación.
Un valor es una cota superior para el valor obtenido por propagación.
Poda
Algoritmo
(Russell & Norvig)
Poda
Es similar al minimax salvo sendas líneas en
las rutinas MIN-VALUE y MAX-VALUE que mantienen
los valores de alpha y beta
Estimación en el ajedrez
Un agente puede examinar unas 1000 posiciones/segundo.
Si tenemos 150 segundos para pensar un movimiento, entonces, como b es aproximadamente 35, podemos descender 3 ó 4 niveles en el árbol.
La poda va a permitir bajar hasta más niveles.
Ejemplos, I
3
12
8
2
4
6
14
5
2
(Gp:) =3
(Gp:) < =2
(Gp:) =2
(Gp:) =3
Ejemplo sencillo de poda
Ejemplos, II
2
5
1
2
7
3
6
4
0
3
5
1
9
6
2
8
[? ?]
[-??]
[-??]
[-??]
[-??]
(Gp:) [-?2]
(Gp:) [2 ?]
(Gp:) [2 ?]
(Gp:) [2 1]
(Gp:) [-?2]
(Gp:) [-?2]
(Gp:) [-?2]
(Gp:) [-?2]
(Gp:) No mejoran ? = 2
(Gp:) [2 2]
? > ? !
? = ? !
? = ? !
(Gp:) [-?2]
(Gp:) No mejora valor de ? (lo devuelve hacia arriba)
(Gp:) [2 ?]
(Gp:) [2 ?]
(Gp:) [2 ?]
(Gp:) [2 ?]
(Gp:) [2 0]
? > ? !
(Gp:) [2 ?]
(Gp:) [2 2]
(Gp:) [2 ?]
(Gp:) [2 5]
(Gp:) [2 1]
Efectividad de la poda
La poda depende del orden en que se examinan los nodos
En el ejemplo de la página siguiente, no se producen podas por debajo del nodo n porque la rama se expande la última.
Si se pudiera elegir el nodo más conveniente (el nodo de f mínima en el caso de MIN):
Knuth y Moore [1], demostraron que la complejidad temporal es:
Por tanto, el factor de ramificación efectivo sería en lugar de b.
En el ajedrez tendríamos
Podríamos bajar hasta el nivel 8.
Es una situación ideal (supondría expandir los nodos para calcular el de menor f).
[1] Donald E. Knuth; Ronald W. Moore; An analysis of alpha-beta pruning. Artificial Intelligence 6(4); 293-326 (1975)
Efectividad de la poda
Knuth y Moore demostraron también que si examinan los sucesores de forma aleatoria para valores moderados de b, la complejidad temporal es aproximadamente:
O(b 3d/4)
3
12
8
2
4
6
14
5
2
n
[-??]
[-??]
[-?, 3]
[3, ?]
[3, ?]
[3, 2]
[3, ?]
[3, 14]
[3, 5]
[3, 2]
Página anterior | Volver al principio del trabajo | Página siguiente |