Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Juegos
En los entornos multiagente (cooperativos o
competitivos), cualquier agente tiene que
considerar las acciones de otros agentes.
La imprevisibilidad de estos otros agentes
puede introducir muchas contingencias en el
proceso de resolucin de problemas.
Los entornos competitivos, en los cuales los
objetivos de los agentes estn en conflicto,
dan ocasin a problemas de bsqueda entre
adversarios, a menudo conocidos como
juegos.
Juegos
de suma cero
por turnos
stratego, bridge...)
3
Juegos
Los juegos son interesantes porque son
demasiado difciles de resolver.
El ajedrez, por ejemplo, tiene un factor de
ramificacin promedio de 35 y los juegos van a
menudo a 50 movimientos por cada jugador:
El estado inicial
Una funcin sucesor, que devuelve una lista de pares (movimiento, estado)
Ejemplo: tic-tac-toe
Ejemplo: tic-tac-toe
Ejemplo: tic-tac-toe
Por convencin:
Minimax
Minimax
Valor-Minimax(n):
Utilidad(n),
si n es un estado terminal
maxsSucesores(n)
minsSucesores(n)
Algoritmo minimax
Algoritmo minimax
A
Algoritmo minimax
A
Algoritmo minimax
Realiza una exploracin primero en
profundidad completa del rbol de juegos.
Si la profundidad mxima del rbol es m, y
hay b movimientos legales en cada punto,
entonces la complejidad :
en tiempo es O(bm);
en espacio es
Algoritmo minimax
Algoritmo minimax
Poda alfa-beta
Problema de la bsqueda minimax: el nmero
de estados que tiene que examinar es
exponencial con el nmero de movimientos.
El exponente no se puede eliminar, pero se
puede dividir en la mitad.
Es posible calcular la decisin minimax
correcta sin mirar todos los nodos en el rbol.
La poda alfa-beta permite eliminar partes
grandes del rbol, sin influir en la decisin
final.
e = min(-1, ?) = -1
0.03
e= max (-0.1, -0.05) = -0.05
-1 (gana MIN)
?
e
-0.1
-0.05
min
0.03
max
min
max
-0.1
e(e) = min(-0.1,v(g))
Como la rama b ya da un 0.03,
Cualquier cosa peor no sirve
=> No hay que explorar g
e(d) = max(e(e), h)
=> S hay que explorar h
...
La bsqueda minimax es
primero en profundidad: en
cualquier momento slo se
consideran los nodos a lo
largo de un camino del
rbol.
Poda alfa-beta
Poda alfa-beta
MAX
{, }
Vi
MIN
Vi
Si Vi poda
Si Vi > modificar
Retornar
{, }
Si Vi poda
Si Vi < modificar
Retornar
Poda -: ejemplo
39
Poda -: ejemplo
40
Poda -: ejemplo
41
Poda -: ejemplo
42
Poda -: ejemplo
43
Poda -: ejemplo
44
Poda -: ejemplo
45
Poda -: ejemplo
46
Poda -: ejemplo
47
Poda -: ejemplo
48
Poda -: ejemplo
49
Poda -: ejemplo
50
Poda -: ejemplo
51
Poda -: ejemplo
52
Poda -: ejemplo
53
Poda -: ejemplo
54
Poda -: ejemplo
55
56
{alpha = -, beta = +}
{-, 3}
{-, +}
3
{-, 3}
3
A
{3, +}
{3, +}
{-, +}
{3, +}
{3, +}
F
{3, +}
Se puede podar I
ya que es un nodo min y
el valor de
v(K) = 0 es < = 3
{3, +}
{3, +}
{3, +}
3
D
5
{3, +}
{3, 5}
{3, 5}
5
A
3
5