Академический Документы
Профессиональный Документы
Культура Документы
Asignatura:
Análisis y diseño de algoritmos II
2º año de la carrera de Ingeniería de Sistemas
Facultad de Ciencias Exactas
Universidad Nacional del Centro de la Provincia de Buenos Aires
Tandil
Algoritmos de búsqueda heurística en tiempo real.
Aplicación a la navegación en los juegos de vídeo.
Resumen
1. Introducción
La consta n te evolución de los juegos de vídeo ha llevado a que la inteligencia artificial
constit uya uno de los aspectos más impo rta n t e s; es fund a m e n t al que los agente s
(entida de s autóno m a s) controla dos por la comp u t a d o r a se comp o r te n en forma
inteligente. Un proble ma característico es la navegación , que consiste en deter min a r el
camino más conveniente entre una posición inicial y una posición de destin o. Si bien el
planteo del proble ma es sencillo, el mis mo está lejos de ser trivial debido a la creciente
complejida d de los entor nos simulado s y los requeri mie n t o s de tiemp o real de los juegos
moder n os [Nareyek - 04 ].
La búsque da es una de las técnicas más utilizada s para resolver los proble ma s de
pathfinding 1 o planificación que se presen ta n en la inteligencia artificial en los juegos de
vídeo. En particular, la búsque da es utiliza da para resolver el proble m a de la navegación.
De los distintos tipos de algorit m os de búsq ue d a (figura 1 ), los algorit m o s búsq ue d a
heurística completa se encuentr a n amplia me n te difun did o s. Sin dudas, el algorit m o A* es
el algorit m o de búsque da heurística más popular [Stout - 96 ].
1 Es importante mencionar una ambigüeda d en la utilización del término pathfinding en la bibliografía referenciada.
Pathfinding se utiliza para hacer referencia tanto al problema general de encontrar una serie de pasos para llegar a un estado
objetivo partiendo de un estad o inicial, en el contexto de un problema cualquiera, como al problema específico de la
navegación.
Los algorit m o s heurísticos tradicionales mues tra n limitacione s impor ta n t e s cuan do el
espacio de búsque da es demasia d o grande o existen factores diná micos. En la
navegación, de los juegos de vídeo en tiemp o real, este proble ma aparece cuan d o las
rutas a deter mina r son muy largas, el terreno es modificable o existen muc ho s objeto s
móviles. Bajo esas condiciones, los algorit m o s de búsq ue d a básicos no puede n respo n d e r
en el tiempo requerido y resulta n inadecua d o s. De esta forma, surge la necesida d de
desarrollar nuevas estrat egias de búsq u e d a, que se adap te n a los requeri mie n t o s de
tiempo real de los juegos de vídeo y resuelvan adecua d a m e n t e caminos en condiciones
de incertidu m b r e sobre terre nos de gran extensió n [Laird,Pottinger - 00 ].
Aunque ambas técnicas se adapta n a los reque ri mie n t o s de los juegos en tiem p o real,
la idea de dividir la planificación en etapas de duració n limita da parece ser la más
difundi da. Esto se debe a que los algorit m o s de tiemp o real se basan en las estrat egias de
búsque da de profun di d a d limitada utiliza d a s en los proble ma s de juegos de dos
jugadores como el ajedre z, las dama s y el Othello [Brockington - 00 ].
Este trabajo se desarr olla considera n d o los algorit m o s de búsq ue d a heurís tica en
tiempo real. En la sección 2 se presenta n los fun da m e n t o s de la búsq ue d a en tiemp o real.
Esta discusión es carácter general y no se habla de ningún algorit mo en particular. En la
sección 3 se describen los algorit m o s imple me n t a d o s; además, se presen t a n los
resulta do s de las prueba s realizada s para analizar experi me n t al m e n t e el comp o r ta mie n t o
de estos algorit mo s, en un entor no similar al de los juegos de vídeo en tiem po real. Una
parte esencial del proyecto consistió en el desarrollo de la aplicación que proporcio nó la
platafor m a de prueba para los algorit m o s. Todas las imágene s de los ejemplo s
present a d o s en las figuras fueron generad a s con la misma. Los detalles del diseño y la
imple me n t ación de esta aplicación se encuen tr a n en el apén dice. Finalmen te en la sección
4 se encue ntra n las conclusiones y come n ta rios finales.
2. Fundamentos de la búsqueda en tiempo real
La búsque da es una técnica para resolver proble ma s cuya solución consiste en una serie
de pasos que frecuente m e n t e deben deter min a r s e media n te la prueba siste m á tica de las
alter na tivas. Desde los inicios de la Inteligencia Artificial, la búsq ue d a se ha aplicado en
diversas clases de proble ma s como juegos de dos jugadore s, proble m as de satisfacción
de restricciones y proble ma s de pathfin ding de un único agente [Korf- 00 ].
Búsqueda
Real-Time A* (RTA*)
Learning Real-Time A* (LRTA*)
Min-max LRTA*
Simple Heurística
Planificación Ejecución
2 La búsqueda completa puede realizarse sin información o utilizan do conocimiento del dominio del problema, lo que da
lugar a los algoritmo s de búsqued a simple y búsq ue da heurística respectivamen te.
Hacia fines de los 80' se comen z ó a utilizar concep to s de la búsq ue d a aplicada a
juegos de dos jugadore s en el desarrollo de estrategias para resolver problem a s de
pathfindi ng de un único agente. La idea funda m e n t al que se tomó fue la de intercalar
etapas de planificación (donde se realizan búsq u e d a s de profu n d i d a d limitad a) con
etapas de ejecución (figura 3 ). Este modo de operación se deno min a on- line y da lugar
los algorit m os de búsque da de tiem p o real 3 . Estos algorit m o s de búsq u e d a general son
capaces de respond e r a los requeri mien t o s de las aplicaciones de tiemp o real sobre
espacios de búsque da grande s y en condiciones de incertid u m b r e. Algunos algorit mo s
desarrolla dos con estas características son el Real- Time A*, el Learning Real- Time A* y
el Min- Max Learning Real- Time A*.
f = g + h = 5,23
1
1
Estado 1
Inicial
h = 2,23
Estado
g=3 Evaluado
Estado
distancia real: 8 Objetivo
Figura 4: Los componen tes de la función de evaluación de estados para un ejemplo sencillo
Los gráficos corresponden a los estados alcanzad os mediante los movi me n tos simulados.
La heurística utilizada es la distancia euclídea y la profundidad de búsqueda es 3.
4 En general, el costo entre dos estados vecinos puede ser fijado arbitrariamen te. En adelante se supon d rá un costo de una
unidad para pasar de un estado a cualq uier estado vecino.
2.1.2. La fase de ejecución
El principio para resolver el problem a del control de la etapa de ejecución es: sólo se
debería regresar a un estado visitado cuando la estimación de resolver el proble m a desde
ese estado más el costo de volver al mis mo es menor que el costo estimado de seguir hacia
adelante desde el estado actual . Los primero s algorit m o s en imple me n t a r esta solución
fueron el Real- Time A* y una variante llamad a Learning Real - Time A* [Korf - 90].
En esta sección se describen y prese n t a n las caracterís ticas principales de los algorit mo s
que se utilizaron para la planificación y el control de la navegación.
5,23
∞ 5,23
∞ 5,23
g=3 g=3
h=3 h = 2,23
6 5,23
profundidad de búsqueda: 3
Figura 5: Ejemplo de la asignación de valores a los estados intermedios realizada por el algoritmo Minimin.
Los gráficos corresponden a los estados alcanzad os mediante los movi me n tos simulados.
La heurística utilizada y el estado objetivo son los mismos que los del ejemplo de la figura 4.
• Real- Time A*
LRTA* [Korf- 90 ] es una versión del RTA* con apren di z aje. LRTA* es un algorit m o
eficiente para resolver proble m a s de búsq u e d a donde el estado objetivo es el mismo. El
algorit m o tiene la propieda d de que con las sucesivas resolucione s de un proble m a los
valores heurísticos convergira n a los valores exactos de los caminos óptim o s.
LRTA* se compor t a en forma similar que RTA*, sólo cambia la forma en la que se
guarda n los valores en la tabla (figura 6 ). En vez de guarda r el segun d o mejor valor f , la
tabla se actualiza con el mejor valor f . Entonces, cuando un proble m a es resuelto, se
guarda n los valores heurísticos y estos se convierten en los valores iniciales para la
próxima instancia del proble ma
Fig u ra 6 : Com para ción d e la form a en qu e se a ctu a liz a n
los v alores h eu rísticos, a l rea liz a rse la tra n sición d e f1
estados, en los alg oritm os RTA * y LRTA *.
Estado Segundo
f2 f3
Actual
mejor
f4 Mejor
RTA* LRTA*
Estado Estado
f2 Anterior f3 f2 Anterior f3
f3 + 1 f4 + 1
Estado Estado
Actual Actual
A qu í se m u estra com o fu n cion a n los a lg oritm os RTA * y LRTA * p a ra la resolv er d el ca m in o d el ejem p lo qu e se v ien e
desarrollan do. Los n ú m eros celestes son los v a lores h eu rísticos a sig n a d os a la s p osicion es p or el a lg oritm o Min im in d u ran te
la etapa de plan ifica ción . Los n ú m eros n eg ros son los v a lores h eu rísticos g u a rd a d os en la ta b la p a ra la s p osicion es v isitadas
du ran te la ejecución d e los m ov im ien tos.
RTA*
LRTA*
Figura 7: Diagra m a de clases de los componentes de la aplicación que implementa n el control de la navegación
if current_goal != 0
// verificar si se alcanzó la posición de algún objetivo
isgoal = false
for each: goal in: goals
if is_goal (token->get_x(), token->get_y(), goal->get_x(), goal->get_y())
isgoal = true
current_goal = goal
if isgoal
// si se alcanzó un objetivo se destruye el mismo
current_goal->destroy ()
current_goal = 0
else
// sino, se ejecuta un nuevo movimiento en la dirección del objetivo actual
move = pathfinder.get_move ()
token->perform_action (move)
}
Figura 8: Pseudocódigo del método Simple_Controller::update que imple me n ta el control global del proceso de navegación.
string Pathfinder::get_move (void){
action = ""
best = second_best = alpha = ∞
get_ordered_moves (moves)
for each: move in: moves
token->perform_action (move)
f = minimin (0, alpha, visited)
token->undo_action (move)
if f < best
second_best = best
best = f
action = move
else
if f < second_best
second_best = f
if RTA*
p.h = second_best + 1
else // LRTA*
p.h = best + 1
h_values.erase (p)
h_values.insert (p)
return action
}
Figura 9: Pseudocódigo del método Pathfinder:: get_move que impleme nta los algoritmos de control RTA* y LRTA*
Figura 10: Pseudocódigo del método Pathfin der::mini min que imple me nta el algoritmo de planificación Minimin
3.3. Análisis del comportamiento de los algoritmos
Se realizó una compara ción entre el RTA* y la primera instancia de resolución del
LRTA* en varios laberint os. En general se vió que el RTA* tiene un desem p e ñ o mucho
mejor. Esto se debe a que el LRTA* guarda valores meno res para los estado s visitado s y
por lo tanto tiende a volver a ellos con más frecuencia.
Por otra parte, la calidad de las soluciones de LRTA* tiende n a mejorar notable me n t e
en pocas repeticiones de la resolución del mismo camino. Esto no se da siem p re ya que,
cuando la frontera de búsque da es peque ñ a y los laberin to s son relativa me n te
complicados, el costo de las soluciones tarda varios ciclos en estabilizars e cerca del
óptimo.
Por otra parte, se compr obó una mejora muy importa n t e en la perfor m a n c e del
algorit m o Minimin con poda alfa, respecto a la versión sin poda (figura 11 ). Esta
optimi za ción, en conjunto con el orde na mie n t o de los nodos, es de extre ma impor ta ncia
para tener buenos tiempos de respue s t a, sin sacrificar demasia da precisión en las
evaluaciones.
Figura 11 : Comparación de los estados expandidos durante la planificación por el algoritmo Minimin, sin realizar podas y
utilizando branch - and - bound o poda alfa y ordena miento de nodos. La frontera de búsqueda es 10.
Las prueba s en entor nos diná micos fueron bastan t e satisfactorias con ambos
algorit m os. La estrategia de tener en cuenta sólo los cambios más cercano s al estado
actual parece ser basta nte buena, sobre todo en entorn o s dond e hay una cantidad elevada
de element o s diná micos. En general, si los obstáculos móviles no son extre ma d a m e n t e
difíciles de sortear, los movimient o s realiza d o s eventual m e n t e se coordina n para
supera rlos.
RTA* LRTA*
Figura 12 : Valores asignados a las posiciones visitadas para la mism a búsqueda utilizando la profundidad de búsqueda y
realizando el número de movi mientos indicados. El nú mero de movi mientos óptimo es 46. La posición de salida es siempre la
esquina superior izquierda y el destino es el casillero con el marco rojo. La heurística utilizada es la distancia euclídea.
En los casos que corresponde, se indica aproxim ad a m e n te la máxim a extensión de la zona de depresión heurística.
4. Conclusiones
La experiencia de implem e n t a r los algorit m o s y el análisis realiza do per mitió ganar una
compre n sió n mucho mayor del tema de búsq ue d a en general y, por sup ue s t o, de los
algorit m os de búsque da en tiem po real. Con la infor m ació n recopilad a dura n te el estu dio
de las técnicas de búsque da y los juegos de vídeo, y junto con los resulta d o s obtenid o s
dura nt e los experime n t o s realizados, se puede concluir que los algorit m o s de búsq ue d a
en tiempo real constit uyen una alterna tiva viable para la navegación en el context o de los
juegos de vídeo en tiempo real. Sin embargo, se ve son necesarias técnicas y estrategias
adicionales para poder obtener solucione s de la calidad requerid a por este tipo de
aplicaciones.
A.1. La arquitectura
La aplicación fue desarrollada tenien d o como premisas principales de diseño la
flexibilida d y expansibilidad. Para conseguirlo se crearon una serie de clases que abstrae n
las características y compor t a mi e n t o comú n de los juegos en tiemp o real que se
desarrollan en laberint os de dos dimensio n e s. Este conju n to de clases describe n una
arquitect ur a para la aplicación muy simple que se describe a contin uació n.
Figura A.1: La clase base los elementos lógicos, los controladores y los elementos visuales
La arquitect ur a incluye los compon e n t e s funda m e n t a les que constit uyen la lógica del
juego. A través de las clases Logic_Token y Action se logra desaco plar de los elemen t o s
lógicos los coman do s o acciones median t e los cuales modifican su estad o o el estado de
su entor no (este mecanis m o constituye el patró n coman d o [Gam m a - 94 ]). La clase Space
represe nt a a una estruc t ur a que per mite el acceso a los elemen to s lógicos a través de su
posición.
Figura A.2: Los componen tes de la lógica modelados en el fra mew ork
La visualización fue un aspecto secun d a rio y esto llevó a que sólo se añadiera un
sopor te míni mo para la visualización de animacio nes a través de la clase Anima tion . Sin
embargo, extende r esta parte del siste m a debería ser fácil porq ue el resto de los
compo ne n t e s son indepe ndie nt e s de la represe n tación gráfica.
Figura A.4: Los clases introducidas por la aplicación para instanciar el fra mework
En lo que respecta a la lógica es impor ta n t e remarcar que objeto s lógicos tan diversos
como los enemigos, las parede s y diama n t e s son todos instancias de la clase
Simple_Token . Esto se debe a que los atribu t o s estáticos (como la posición) son
esencialme nt e los mismos para todos. Lo que cambia es el compo r ta mi e n t o y esto se
modela mediante la asociación diná mica de las acciones y los controla d o re s.
Hay muchas ventajas al trabajar con el bajo nivel de acopla mie n t o presen t e entre los
compo ne n t e s lógicos, el control y la visualizació n. En la aplicación esto per mitió
imple me n t a r un siste m a de configuración median te script s muy flexible.
A.3. Detalles de la implementación
www.lua.org
• SDL (Simple Media Layer): Multime dia (video, sonido, entra da, eventos, thread s).
www.libsdl.org
www.stlpor t.or g
Bibliografía
[Bender - 96] “Mathe m a tical Methods in Artificial Intelligence ”
Edward A. Bender (IEEE Comp u te r Society Press and John Wiley –
Enero 1996)
[Brockinton - 00] “Pawns Captures Wyvern: How Computer Chess Can Improve Your
Pathfinding ”
Mark Brockingto n (Game Developer Conference – 2000)
[Ishida,Korf - 95] “Moving - Target Search: A Real- Time Search for Changing goals ”
Toru Ishida, Richard E. Korf (IEEE Transaction s on Pattern Analisys
and Machine Intelligence, 17 – Junio 1995)
[Laird,Pottinger - 00] “Game AI: The State of the Industry, Part Two ”
John E. Laird, Dave C. Pottinger (Gamasu t r a – Noviemb re 2000)
[Underger - 01] “Real- Time Edge Follow: A New Paradig m to Real- Time Search ”
Cagatay Underger, Faruk Polat, Ziya Ipekkan (2001)
Links
www.gamas ut r a.co m
www.gamedev.net
www- cs - studen t s.s t a nfo r d.e du / ~ a m i t p / g a m e p r o g. h t m l