Click here to load reader

Busqueda Heuristica

  • View
    7.127

  • Download
    0

Embed Size (px)

DESCRIPTION

Documento que enfatiza las ventajas de la busqueda heuristica

Text of Busqueda Heuristica

BSQUEDA HEURSTICAIntroduccinLa bsqueda es una de las tcnicas ms utilizadas para resolver los problemas de pathfinding o planificacin que se presentan en la inteligencia artificial en los juegos de vdeo. En particular, la bsqueda es utilizada para resolver el problema de la navegacin. La constante evolucin de los juegos de vdeo ha llevado a que la inteligencia artificial constituya uno de los aspectos ms importantes; es fundamental que los agentes (entidades autnomas) controlados por la computadora se comporten en forma inteligente. Un problema caracterstico es la navegacin, que consiste en determinar el camino ms conveniente entre una posicin inicial y una posicin de destino. Si bien el planteo del problema es sencillo, el mismo est lejos de ser trivial debido a la creciente complejidad de los entornos simulados y los requerimientos de tiempo real de los juegos modernos. Clasificacin de los algoritmos de bsqueda.

DefinicinLa bsqueda es una tcnica para resolver problemas cuya solucin consiste en una serie de pasos que frecuentemente deben determinarse mediante la prueba sistemtica de las alternativas. Desde los inicios de la Inteligencia Artificial, la bsqueda se ha aplicado en diversas clases de problemas como juegos de dos jugadores, problemas de satisfaccin de restricciones y problemas de un nico agente. Por lo tanto se puede decir que los algoritmos de bsqueda heurstica son mtodo computacional para resolver problemas de pathfinding bsqueda de la mejor ruta del punto A al punto B.

De los distintos tipos de algoritmos de bsqueda, los algoritmos bsqueda heurstica completa se encuentran ampliamente difundidos, el algoritmo A* es el algoritmo de bsqueda heurstica ms popular.

Algoritmo de bsqueda A*DEFINICIN El algoritmo de bsqueda A* o tambin denominado A Estrella se encuentra dentro de los tipos de algoritmos de bsqueda en grafos, representado por Peter E. Hart, Nils J. Nilsson y Bertram Rpale, en 1968. El algoritmo A* es el nico que garantiza, sea cual sea la funcin heurstica, que se tiene en cuenta el camino recorrido y por ende es mejor que la versin ms extendida de "primero el mejor", aqulla que slo considera la distancia a la meta. En definitiva, s tiene razn en el caso concreto que usted plantea, pero no la tiene en general. REPRESENTACIN A continuacin se muestra la clsica representacin del algoritmo A *. Donde: f'(n) = g(n) + h'(n)

g (n) es la distancia total que ha tomado para llegar desde la posicin inicial a la ubicacin actual. h '(n) es la estimacin de la distancia desde la posicin actual con el destino, es una funcin heurstica se utiliza para crear esta estimacin sobre cuan lejos se esta para alcanzar la meta. f '(n) es la suma de g (n) y h' (n). Este es el camino actual estimado ms corto. f (n) es el verdadero camino ms corto que no se descubrieron hasta que el algoritmo A * ha terminado. Ejemplo: Una familia cuando se dirige de vacaciones, y uno pregunta al padre que esta al volante, "Cunto ms falta para llegar?", a lo cual el Papa dir supongo "Otras 300 millas, si la familia ya haba conducido 100 millas en ese punto, que representan g (n), el total de distancia recorrida hasta el momento. La estimacin de 300 millas se h '(n), el adivinar en cunto ms sera. Por lo tanto, el f '(n) sera de 100 + 300 = 400 millas.

Ejemplo: pequeo juego.

CARACTERISTICAS Realiza la bsqueda informada teniendo en cuenta dos factores fundamentales, el valor heurstico de los nodos y el coste real del recorrido. Se utiliza en la bsqueda de un camino ms corto. El Algoritmo no desarrolla un camino por interaccin, sino que desarrolla varios caminos y elige los ms prometedores. Tiene algunas buenas referencias y consejos acerca elementos de juego de la programacin y la industria del juego, ejemplo tetris, camino ms corto entre dos puntos. Es una combinacin entre bsquedas del tipo primero en anchura con primero en profundidad: mientras que h(n) tiende a primero en profundidad, g(n) tiende a primero en anchura. De este modo, se cambia de camino de bsqueda cada vez que existen nodos ms prometedores. Si para todo nodo n del grafo se cumple que g(n) = 0, nos encontramos ante una bsqueda voraz. Si para todo nodo n del grafo se cumple h(n) = 0, el algoritmo A* pasa a ser una bsqueda de coste uniforme no informada. Para garantizar la optimalidad del algoritmo, la funcin h(n) debe ser admisible, quiere decir que no sobrestime el coste real de alcanzar el nodo objetivo, si fuese as el algoritmo pasa a denominarse simplemente A, debido a que no se asegura que el resultado obtenido sea el camino de coste mnimo. Debido a que se tiene que almacenar todos los posibles siguientes nodos de cada estado, la cantidad de memoria que requerir ser exponencial con respecto al tamao del problema.

APLICACIONES Se mencionar algunas aplicaciones: Minera de datos, bsqueda de comportamiento en los datos. Procesamiento de imgenes. Medicina humana, software mdicos, control de tumores, problemas cancerigenos, VESALIO. En la aeronavegacin y transporte, el pilotaje automtico, bsquedas de rutas mas prximas. Video juegos de estrategia, camino ms corto, ejemplo Pacman: Los fantasmas que persiguen a Pacman buscan el camino mas corto, en lugar de aparecer en forma aleatoria en el Mapa del Juego. Juegos, ejemplo Age of Empires, un juego de conquista de civilizaciones, los enemigos salvan obstculos para llegar a la ciudad del adversario.

SEGUIMIENTO Y EXPLICACION DEL PSEUDOCODIGO Para explicar el funcionamiento del cdigo primero vamos a ver algunas definiciones funcionamientos previos respecto a las reas de bsquedas. Introduccin: El rea de Bsqueda Vamos a asumir que tenemos a alguien que quiere ir desde el punto A hasta el punto B. Asumamos tambin que un muro separa estos dos puntos, esto se puede ver en el grfico siguiente, donde el recuadro verde es el punto de inicio A, el rojo es el punto de destino B y la zona azul el muro que hay entre ambos.

Lo primero que deberas advertir es que hemos dividido nuestra rea de bsqueda en una rejilla cuadrada. Simplificar el rea, tal y como hemos hecho, es el primer paso en un pathfinding. Este particular mtodo reduce nuestra rea de bsqueda a una simple matriz bidimensional. Cada elemento de la matriz representa uno de los cuadrados de la rejilla, y su estado se almacena como transitable o intransitable. El camino se elige calculando qu cuadros deberamos pisar para ir desde A hasta B. Una vez que el camino haya sido encontrado, el personaje de nuestro juego (o lo que sea) se mover desde el centro de un cuadrado hacia el centro del siguiente hasta que el objetivo haya sido alcanzado. A esos puntos centrales se les llama "nodos". Cuando leas en cualquier otro sitio sobre pathfinding, a menudo vers a gente hablando sobre nodos. Acaso no es ms fcil referirse a ellos como cuadrados? Esto se debe a que es posible dividir nuestra rea en otras cosas aparte de cuadrados. Podran ser rectangulares, hexagonales, o de cualquier otra forma; y podran situarse en cualquier lugar dentro de esas formas - en el centro, por los bordes, o en cualquier lugar. Se usa este sistema porque es el ms simple. Iniciando la Bsqueda Una vez que hemos simplificado nuestro rea de bsqueda en un nmero de nodos accesible, tal y como hemos hecho con la rejilla de la figura anterior, el siguiente paso es dirigir una bsqueda para encontrar el camino ms corto. En el pathfinding A*, lo hacemos empezando desde el punto A, comprobando los cuadros adyacentes y generalmente buscando hacia fuera hasta que encontremos nuestro destino. Empezamos la bsqueda haciendo lo siguiente: 1. Empieza en el punto inicial A y adelo a una "lista abierta" de cuadrados a tener en cuenta. La lista abierta es como una lista de la compra. Ahora mismo solo tenemos un elemento en la lista, pero ms tarde tendremos ms. La lista contiene los cuadrados que podran formar parte del camino que queremos tomar, pero que quizs no lo hagan. Bsicamente, esta es una lista de los cuadrados que necesitan ser comprobados. 2. Mira en todos los cuadrados alcanzables o transitables adyacentes al punto de inicio, ignorando cuadrados con muros, agua u otros terrenos prohibidos. Adelos a la lista abierta tambin. Por cada uno de esos cuadrados, guarda el punto A como su "cuadrado padre". El cuadrado padre es muy importante para trazar nuestro camino. Se explicar ms adelante. 3. Saca el cuadro inicial A desde tu lista abierta y adelo a una "lista cerrada" de cuadrados que no necesitan, por ahora, ser mirados de nuevo. En este punto, deberas tener algo como la siguiente ilustracin. En este diagrama, el cuadrado verde oscuro del centro es tu cuadrado de inicio. Esta bordeado el azul claro para indicar que el cuadrado ha sido aadido a la lista cerrada. Todos los cuadros adyacentes estn ahora en la lista abierta para ser comprobados, estn bordeados con verde claro. Cada uno tiene un puntero gris que seala a su padre, el cual es el cuadro inicial.

Despus, elegimos uno de los cuadrados adyacentes de la lista abierta y ms o menos repetimos el proceso anterior como se describe un poco ms abajo. Pero, cual cuadro debemos elegir? Aquel que tenga el coste F ms bajo. Puntuando el camino La clave para determinar que cuadrados usaremos para resolver el camino est en la siguiente ecuacin: F=G+H Donde G = el coste de movimiento para ir desde el punto inicial A a un cierto cuadro de la rejilla, siguiendo el camino generado para llegar all. h = el coste de movimiento estimado para ir desde ese cuadro de la rejilla hasta el destino final, el punto B. Esto es a menudo nombrado como la heurstica, la cual puede ser un poco confusa. La razn por la cual es llamada as, se debe a que es una suposicin. Realmente no sabemos la distancia actual hasta que encontramos el camino, ya que toda clase de cosas pueden estar en nuestro camino (muros, agua, etc.), existen muchas formas de calcular H.

Nuestro camino se genera por ir repetidamente a travs de