Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2d Busqueda Entre Adversarios (Es)
2d Busqueda Entre Adversarios (Es)
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.
2
Juegos
La teora matemtica de juegos, una rama
de la economa, ve a cualquier entorno
multiagente como un juego.
Los juegos que se tratan en IA son una
clase ms especializada:
de suma cero
de dos jugadores (jugador MAX, jugador MIN)
por turnos
de informacin perfecta (ajedrez, damas, tres
en raya...) vs. informacin imperfecta (poker,
stratego, bridge...)
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:
grafo de bsqueda: aproximadamente 1040 nodos
distintos
rbol de bsqueda: 35100 o 10154 nodos
Ejemplo: tic-tac-toe
e (funcin utilidad) = nmero de filas, columnas y diagonales completas
disponibles para MAX - nmero de filas, columnas y diagonales
completas disponibles para MIN
MAX juega con X y desea maximizar e
MIN juega con 0 y desea minimizar e
Valores absolutos altos de e: buena posicin para el que tiene que mover
Controlar las simetras
Utilizar una profundidad de parada (en el ejemplo: 2)
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) Valor-Minimax(s), si n es un estado MAX
minsSucesores(n) Valor-Minimax(s), si n es un estado MIN
Algoritmo minimax
Calcula la decisin minimax del estado
actual.
Usa un clculo simple recurrente de los
valores minimax de cada estado sucesor.
La recursin avanza hacia las hojas del
rbol.
Los valores minimax retroceden por el
rbol cuando la recursin se va
deshaciendo.
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
O(bm) si se generan todos los sucesores a la vez;
O(m) si se generan los sucesores uno por uno.
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
Los dos parmetros alfa y beta describen los lmites
sobre los valores que aparecen a lo largo del
camino:
= el valor de la mejor opcin (el ms alto) que se ha
encontrado hasta el momento en cualquier punto del
camino, para MAX
= el valor de la mejor opcin (el ms bajo) que se ha
encontrado hasta el momento en cualquier punto del
camino, para MIN
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, +}
A
{3, +}
{3, +}
3
B
5
{3, +}
{3, 5}
{3, 5}