Академический Документы
Профессиональный Документы
Культура Документы
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 2 como juegos.
Juegos
La teora matemtica de juegos, una rama de la economa, ve a cualquier entorno multiagente como un juego. En IA, los juegos son una clase ms especializada, que los tericos llaman juegos:
de suma cero de dos jugadores (jugador MAX, jugador MIN) por turnos deterministas de informacin perfecta (ajedrez, damas, tres en raya...) vs. informacin imperfecta (poker, 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:
grafo de bsqueda: aproximadamente 1040 nodos distintos rbol de bsqueda: 35100 o 10154
Los juegos, como el mundo real, requieren la capacidad de tomar alguna decisin (la jugada) cuando es infactible calcular la decisin ptima.
4
El algoritmo busca con profundidad limitada. Cada nueva decisin por parte del adversario implicar repetir parte de la bsqueda.
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) MAX = 1
MIN = -1
MIN = 1
MIN = -2
X0
X 0
X 0 6-5=1
X 0 5-5=0
X 0
0 X 5-4=1
0 X 6-4=2
0 X 0 5-6=-1
X 6-6=0
X 0 6-6=0
X 0
6-5=1
5-5=0
4-5=-1
0 5-6=-1 4-6=-2
0 X
4-2=2
X 0 0 X X 0 X 0 X 0 X 0 X 0 X 0 X 0 X0
0 X
MAX = 1 0 X X
3-2=1
4-2=2
X 0 X
0 XX
0 X X
MIN = 0
... MIN = 1
MIN = 0 ...
MIN = 0
0 0 X X 4-2=2 0 0X X 4-2=2 0 X X0 5-2=3 0 X X 0 X 4-2=2 3-2=1 0 X0 X 4-2=2 0 0 X
2-2=0
4-2=2
X 00 X
3-2=1 0 0 X X
0 X
0 0 X X MAX = 1
X 0 0 X X MIN = 1 0 0 XX X MIN = - 0 0 X XX 0 0 X X X X 0 0 X X 0
X 0 0 0 X X X 0 0 X X 0
2-1=1
3-1=2
0 0 XX X MIN = -
MIN = -
X 0 0 X 0 X
2-1=1
MIN = -
3-1=2
X 0 0 X X
Valor-Minimax(n): utilidad para MAX de estar en el estado n asumiendo que ambos jugadores jueguen ptimamente:
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
El algoritmo primero va hacia abajo a los tres nodos izquierdos y utiliza la funcin Utilidad para descubrir que sus valores son 3, 12 y 8. Entonces toma el mnimo de estos valores, 3, y lo devuelve como el valor del nodo B.
Juegos reales: los costos de tiempo son inaceptables, pero este algoritmo sirve como base para el primer anlisis matemtico y para algoritmos ms prcticos.
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 d g
-1 (gana MIN)
?
e f
-0.1
-0.05
En c: e= min(-0.05, v(g)) por lo tanto en a: e = max(0.03, min(-0.05, v(g))) = 0.03 Se pueden pues podar los nodos bajo g; no aportan nada.
El valor de la raz y la decisin minimax son independientes de los valores de las hojas podadas.
max
min
0.03
max
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 ...
i
min
max
-0.1
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 La bsqueda alfa-beta actualiza el valor de y
segn se va recorriendo el rbol y termina la recursin cuando encuentra un nodo peor que el actual valor o correspondiente.
MAX
{, }
Vi
MIN
{, }
Vi
El recorrido se inicia llamando a la funcin valorMax con =- =+. En la funcin valorMax es el valor que se actualiza. En la funcin valorMin es el valor que se actualiza.
= -, = + {-, +}
=3, = + {3, +}
{-, 3}
C
3 {-, 3}
D
3
E A
{3, +}
D
3
E
5
B
3 {3, +}
{3, +}
{3, +}
K
0
{3, +} {3, +}
B
3 {3, +}
{3, +}
B G H D
3 5
{3, 5}
J
5
{4, +} 4 {3, 4}
M 7
B
3 {3, 5}
H 4