Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmo A
Algoritmo A
1. INTRODUCCIN
1.1. Introduccin a los algoritmos de bsqueda informada y exploracin Los algoritmos de bsqueda informada son ms eficientes que los algoritmos de bsqueda no informada, debido a que stos ltimos pueden encontrar soluciones a problemas generando sistemticamente nuevos estados y probndolos con el objetivo. Los algoritmos de bsqueda informada son muy tiles en problemas donde lo que importa es el estado de solucin en s mismo, no el camino. Utilizan mtodos inspirados en la fsica estadstica (temple simulado) y la biologa evolutiva (algoritmos genticos). Un primer contacto con stos algoritmos es el siguiente: bsqueda primero el mejor, que es un caso particular del algoritmo general de bsqueda de rboles o bsqueda de grafos, en el cul se selecciona un nodo para la expansin basada en una funcin de evaluacin, f(n). La evaluacin mide la distancia al objetivo. Otro algoritmo importante es el bsqueda voraz primero el mejor que expande el nodo ms cercano al objetivo. Evala los nodos utilizando solamente la funcin heurstica: f(n) = h(n) En nuestro trabajo nos centraremos en la bsqueda A* y sus variantes.
Ya que g(n) proporciona el coste del camino desde el nodo de inicio hasta el nodo n, y h(n) es el coste estimado del camino de menos coste desde n hasta el objetivo, f(n) es el coste estimado de la solucin de menor coste que atraviesa el nodo n. Si se intenta encontrar la solucin de menor coste, es razonable intentar primero el nodo con el menor valor de f. Lo bueno de esta estrategia, es que es ms que razonable. Se puede comprobar que es completa y ptima, dando una simple restriccin de la funcin h. La restriccin es escoger una funcin h que nunca sobreestime el coste para alcanzar el objetivo. Una funcin h de este tipo es una heurstica admisible. A este algoritmo se le conoce con el nombre de A*. Los algoritmos de bsqueda heurstica tradicionales como A* pueden llegar a necesitar un espacio de almacenamiento que crece de manera exponencial con la longitud de la solucin del problema. Esto puede propiciar que, a pesar de que el problema tenga un coste temporal relativamente asequible, el coste espacial lo convierta en un problema intratable. 2.1. Optimalidad de A* Definir f* - el costo de la solucin ptima para la ruta A* expande todos los nodos con f(n)<f* A* podra expandir algunos de los nodos a la derecha del contorno de la meta, para los cuales f(n) = f*, antes de seleccionar el estado meta. La primera solucin encontrada debe ser la ptima, dado que los nodos de todos los contornos subsiguientes tendrn un costo f ms alto y con ello un costo g ms alto (todos los estados meta tienen h(n) = 0). Teorema: Sea h*(n) el costo real desde n hasta la meta. Si h(n) < h*(n) para todo nodo n, entonces A* siempre va a encontrar un nodo meta ptimo. Prueba: Sea s el nodo meta de mnimo costo. Sea que A* seleccione un nodo meta subptimo s, donde g(s)<g(s) Sea n un nodo sin expandir en la ruta desde el nodo inicio y el nodo meta ptimo s. Notar que ese nodo sin expandir necesariamente existe, de acuerdo con la suposicin previa (en el otro caso, s ya habra sido elegido como el nodo meta). Puesto que n no ha sido elegido para su expansin en su ruta hacia s, se sigue que: f(n) = g(n) + h(n) f(s') = g(s') + h(s') = g(s')
Dado que h es admisible, g(n) + h*(n) g(n) + h(n) = f(n), y entonces g(n) + h*(n) f(s') = g(s') lo cual implica que g(s) g(s') Una heurstica admisible nunca sobreestima el costo de llegar a la meta Un estimado de costo optimista en la solucin de un problema es menor -ms barato- que el real. Si h es admisible, f(n) nunca sobreestima el costo real de la mejor solucin pasando por n La bsqueda A* - con f(n) y con h admisible es completa y ptima 2.2. Completitud de A* A* expande nodos en el orden de un creciente f, con lo cual eventualmente expandir hasta llegar al estado meta salvo que haya una cantidad infinita de nodos con f(n)< f* Un nodo con un factor de ramificacin infinito Una ruta con costo de ruta finito pero con un nmero infinito de nodos a lo largo de ella 2.3. Complejidad A* La bsqueda A* es OPTIMAMENTE EFICIENTE para cualquier funcin heurstica al contrastarse con otros algoritmos ptimos que compiten con ella. No hay otro algoritmo que expanda menos nodos que A* Cualquier algoritmo, que no expanda todos los nodos en los contornos existentes entre el contorno del inicio y el de la meta, corre el riesgo de no encontrar la solucin ptima Complejidad temporal: O(b^d) Complejidad espacial: O(b^d) El espacio de bsqueda de A* crece exponencialmente a no ser que sea h(n)-h*(n) =< O(log h*(n)) Prcticamente, el error es a lo menos proporcional al costo de la ruta El crecimiento exponencial satura a cualquier computadora
3.1. Caractersticas de IDA* IDA* es un mtodo de bsqueda completo y ptimo, lo que quiere decir que siempre encuentra una solucin si es que sta existe y adems garantiza encontrar la mejor solucin de entre todas las posibles.
Este mtodo tiene las mismas ventajas y desventajas que A*, excepto en lo referente al coste espacial. En este aspecto IDA* presenta notables ventajas ya que nicamente necesita un espacio proporcional a la longitud de la ruta ms larga que se explore.
Esta limitacin en el uso de la memoria resulta beneficiosa pero tambin tiene sus desventajas, ya que al convertir la bsqueda de la solucin en un proceso iterativo expandiremos varias veces los mismos nodos. Esto es algo muy a tener en cuenta, ya que dependiendo de las caractersticas de los problemas a resolver obtendremos mejores o peores prestaciones.
En el mejor caso el coste temporal de IDA* puede ser muy similar al de A*, e incluso menor, ya que al ser un algoritmo simple y no necesitar de inserciones, borrados y reordenamientos en listas de prioridades tiene una menor sobrecarga por nodo. Este mejor caso ocurrir cuando tengamos un problema en el que las heursticas adopten valores aproximados al coste real desde el comienzo de la ejecucin, ya que entonces se realizarn pocas iteraciones, expandiendo adems pocos nodos en las iteraciones iniciales. Podemos asociar este caso con el problema del 8-puzzle cuando se usa la heurstica de distancias.
En el peor caso el coste temporal de IDA* se acerca al de un algoritmo de profundizacin iterativa habitual como el IDS (Iterative Deepening Search), es decir, en cada iteracin se profundiza nicamente un nivel ms en el rbol. Esto ocurre en problemas en los que los valores heursticos son poco acertados, lo que provoca que en cada iteracin aumentemos el contorno en slo uno o dos niveles.
5.2. 8-Puzzle de 6 movimientos La primera matriz utilizada ha sido la siguiente (el 0 representa la casilla vaca):
1 6
3 2
0 4
Para resolver esta matriz de forma ptima se deben realizar 6 movimientos, los cuales son descritos a continuacin:
1 6 8
3 2 7
0 4 5
1 6 8
0 2 7
3 4 5
1 6 8
2 0 7
3 4 5
1 0 8
2 6 7
3 4 5
1 8 0
2 6 7
3 4 5
1 8 7
2 6 0
3 4 5
1 8 7
2 0 6
3 4 5
Para llegar ha este resultado se han tenido que efectuar los 6 movimientos que acabamos de describir y que enumeramos a continuacin: Izquierda, Abajo, Izquierda, Abajo, Derecha, Arriba
Todas las heursticas utilizadas llegan a una solucin optima, pero la diferencia principal radica en le cantidad de recursos que necesitan para resolver el problema.
Vamos a mostrar las principales diferencias obtenidas en la resolucin del problema con las diferentes heursticas:
H1 = 5 H2 = 6 H3 = 11 H= H2+2H3 = 28
5.3. 8-Puzzle de 12 movimientos Para la prueba de 12 movimientos hemos utilizado la siguiente matriz:
6 8 0
1 3 7
4 2 5
Para este ejercicio y para el de 18 movimientos, no vamos a escribir las configuraciones de las matrices en la resolucin de este problema pues resultara muy tedioso, pero si que daremos una descripcin optima de los pasos a seguir Una solucin ptima encontrada para la resolucin de esta matriz de forma ptima es: Arriba, Arriba, Derecha, Abajo, Izquierda, Abajo, Derecha, Arriba, Derecha, Arriba, Izquierda, Abajo. Si hacemos una comparacin entre las diferentes heursticas podremos comprobar que:
H1 = 6 H2 = 10 H3 = 15 H= H2+2H3 = 40
Nodos generados = 917 Nodos generados = 38 Nodos generados = 101 Nodos generados = 40
5.4. 8-Puzzle de 18 movimientos Para la prueba de 18 movimientos hemos utilizado la siguiente matriz:
6 8 7
3 0 5
1 4 2
Una solucin ptima encontrada para la resolucin de esta matriz de forma ptima es: Arriba, Izquierda, Abajo, Derecha, Arriba, Derecha, Abajo, Abajo, Izquierda, Arriba, Izquierda, Arriba, Derecha, Abajo, Derecha, Arriba, Izquierda, Abajo. Si hacemos una comparacin entre las diferentes heursticas podremos comprobar que:
H1 = 5 H2 = 10 H3 = 14 H= H2+2H3 = 38
Nodos generados = ? Nodos generados = 5421 Nodos generados = ? Nodos generados = 4709
En la resolucin de este problema tanto H1 como H3 provocan un desbordamiento de memoria debido al alto grado de recursos utilizados, y no se obtiene ninguna solucin.
5.5. Conclusiones de las pruebas de 8-puzzle En problemas de complejidad pequea (numero reducido de movimientos para resolver el problema) la heurstica ms eficaz es la de Manhattan, ya que es capaz de resolver el problema con menor consumo de memoria (utiliza menos nodos). A medida que la que la complejidad del problema va aumentando se va comprobando como la utilizacin de nodos por parte de las diferentes heursticas va aumentando en grandes cantidades. As podemos ver que la utilizacin de nodos resolviendo un problema de 18 movimientos por medio de la heurstica de Mahattan asciende a 5421, mientras que con la utilizacin de una heurstica H2+2H3 el numero de nodos se reduce a 4709. Con las otras 2 heursticas utilizadas el nmero de nodos utilizados es infinitamente mayor a estas 2 ltimas, tanto que es capaz de desbordar la memoria del ordenador impidindose as llegar a solucin alguna.
De esta forma queda demostrado que la utilizacin de la heurstica H2+2H3 es la ms efectiva, no solo por la menor utilizacin de nodos, sino porque a la larga es la nica capaz de resolver problemas de este tipo con una complejidad muy elevada utilizando al hacerlo la menor cantidad de recursos posibles. Se adjunta la implementacin en java del Algoritmo A* del juego 8-puzzle.
7. BIBLIOGRAFA
7.1. Internet: i i i i http://www.angelfire.com/oh4/ohcop/ClaseCap4nu.ppt http://dmi.uib.es/~abasolo/intart/2-juegos.html http://www.ii.uam.es/~fdiez/docencia/material/bh.pdf http://www.dc.fi.udc.es/.aios/~barreiro/iadocen/puzzle898/introalgoritmos.html i http://www.lsi.upc.es/~luigi/docencia/2bBusquedainformadayexploracion(es).p df
7.2. Bibliografa i [Rich, 94].- "Inteligencia Artificial". Segunda edicin. Elaine Rich. Kevin Knight. Editorial McGraw-Hill. (1994). i [Russell, 96].- "Inteligencia Artificial, un enfoque moderno". Stuart Russell. Peter Norvig. Editorial Prentice Hall. (1996).