• No se han encontrado resultados

Planificación de Trayectorias Basada en Optimización Mediante Colonias de Hormigas

N/A
N/A
Protected

Academic year: 2021

Share "Planificación de Trayectorias Basada en Optimización Mediante Colonias de Hormigas"

Copied!
42
0
0

Texto completo

(1)

Planificación de Trayectorias Basada en

Optimización Mediante Colonias de

Hormigas

Carlos Vázquez Hurtado

Asesor:

Jan Rosell Gratacós

Septiembre 2005

(2)
(3)

3

Resumen

En este trabajo se presenta una alternativa de solución al problema de planificación de tra-yectorias basado en optimización mediante el sistema de colonias de hormigas (PT-ACO). La tema principal de este reporte es la generalización del algoritmo que esta pensado para búsque-da de caminos en grafos a la búsquebúsque-da de trayectorias en un escenario discreto que conforma el mapa de configuraciones en 3D de trabajo. Se ha desarrollado un programa que resuelve el problema de viajar desde un punto origen al final utilizando la trayectoria más corta.

(4)

Índice

1. INTRODUCCIÓN . . . 6

1.1. De las Colonias de Hormigas Naturales a la Meta-heurística ACO. . . 7

1.2. La meta-heurística ACO . . . 9

1.3. Modelos de Optimización Basada en Colonias de Hormigas . . . 10

1.3.1. El Sistema de Hormigas (AS) . . . 10

1.3.2. El Sistema de Colonias de Hormigas (ACS) . . . 12

2. Métodos tradicionales . . . 15

2.1. Tablas Comparativas . . . 15

3. DESARROLLO . . . 21

3.1. Introducción . . . 21

3.2. Aplicando ACO a Planificación de Trayectorias . . . 21

3.3. Algoritmo ACO adaptado a PT . . . 24

4. RESULTADOS . . . 27

4.1. Introducción . . . 27

4.2. Descripción del programa PT-ACO . . . 27

4.3. Ejecución del Programa . . . 30

4.4. Tiempos . . . 32

4.4.1. Comparación . . . 32

(5)

Índice de figuras 5

Índice de figuras

1. Forma en que las hormigas encuentran el camino más corto . . . 7

2. La meta-heurística ACO en pseudo código. Los comentarios están en-tre llaves. . . 10

3. TSP con d* = 11 y nodo inicial = A. . . . 21

4. Escenario para planificación de trayectorias. . . 22

5. Posibles movimientos de la hormiga en su entorno. . . 22

6. Diagrama de flujo del algoritmo. . . 25

7. Apariencia del programa escrito en C++ para planificación de trayec-torias en 3D. . . 27

8. Documentación del programa PT-ACO. . . 29

9. Mapa de bits a partir del cual se generara el mapa en 3D. . . 30

10. Busqueda inicial de la trayectoria. . . 31

11. Trayectoria generada en el primer intento. . . 32

12. Trayectoria optimizada. . . 33 13. Trayectorias obtenidas utilizando ACO y A* para un mapa de 30×30×30. 35 14. Trayectorias obtenidas utilizando ACO y A* para un mapa de 40×40×40. 35 15. Trayectorias obtenidas utilizando ACO y A* para un mapa de 50×50×50. 36 16. Trayectorias obtenidas utilizando ACO y A* para un mapa de 60×60×60. 36 17. Trayectorias obtenidas utilizando ACO y A* para un mapa de 70×70×70. 37

(6)

1. INTRODUCCIÓN

La solución de problemas de optimización combinatoria tradicionales se realiza uti-lizando algoritmos exactos o aproximados1. Para conseguir una mejora adicional en la calidad de las soluciones, la investigación en el campo de la optimización combinatoria ha centrado su atención en el diseño de técnicas de propósito general para guiar la cons-trucción de soluciones o la búsqueda local en las distintas heurísticas. Estas técnicas se llaman comúnmente meta-heurísticas y se componen de conceptos generales emplea-dos para definir métoemplea-dos heurísticos [1]. Dicho de otra manera, una meta-heurística puede verse como un marco de trabajo general referido a algoritmos que pueden apli-carse a diversos problemas de optimización combinatoria con pocos cambios signifi-cativos, si ya existe previamente algún método heurístico específico para el problema. De hecho, las meta-heurísticas son ampliamente reconocidas como una de las mejores aproximaciones para atacar los problemas de optimización combinatoria.

Las meta-heurísticas incorporan conceptos de muchos y diversos campos como la genética, la biología, la inteligencia artificial, las matemáticas, la física y la neuro-logía, entre otras. Algunos ejemplos de meta-heurísticas son: Enfriamiento simulado, búsqueda tabú, búsqueda local iterativa, algoritmos de búsqueda local con vecindario variable, GRASP2y algoritmos evolutivos. Una meta-heurística relativamente reciente es la Optimización basada en Colonias de Hormigas3 (ACO), la cual se inspira en el comportamiento que rige a las hormigas de diversas especies para encontrar los cami-nos más cortos entre las fuentes de comida y el hormiguero. De hecho, desde el trabajo inicial de Dorigo, Maniezzo y Colorni en el Sistema de Hormigas4 (AS), la ACO se está convirtiendo en un campo de investigación importante: un gran número de autores han desarrollado modelos cada vez más sofisticados para solucionar de manera satis-factoria un gran número de problemas de optimización combinatoria. Igualmente se ha incrementado el número de desarrollos teóricos sobre los algoritmos que se proponen. Aquí se utiliza la meta-heurística de Optimización basada en Colonias de Hormigas para encontrar la trayectoria óptima para un robot que se desplaza de un punto origen a otro final a través de un ambiente de trabajo complejo.

La planificación de trayectorias es base para la implementación de control de alto nivel y de navegación de robots. Dicha planificación se clasifica en dos categorías prin-cipales. Una es la planificación global cuyo fin son las trayectorias óptimas y la otra es la planificación local que evita que el robot colisione en tiempo real [2]. Mediante la combinación de ambas se consigue un buen balance entre eficiencia del algoritmo y desempeño en tiempo real en el proceso de planificación.

1Heurísticas

2"Greedy Randomized Adaptative Search Procedures" en Inglés 3"Ant Colony Optimization", ACO en inglés

(7)

1.1 De las Colonias de Hormigas Naturales a la Meta-heurística ACO. 7

1.1. De las Colonias de Hormigas Naturales a la

Meta-heurística ACO.

Las hormigas son insectos sociales que viven en colonias y que, debido a su cola-boración mutua, son capaces de mostrar comportamientos complejos y realizar tareas complejas desde el punto de vista de una hormiga individual. Un aspecto interesante del comportamiento de muchas especies de hormigas es su habilidad para encontrar los caminos más cortos entre su hormiguero y las fuentes de alimento.

Mientras que se mueven entre el hormiguero y la fuente de alimento, algunas es-pecies de hormigas depositan una sustancia química denominada feromona5. Si no se encuentra ningún rastro de feromona, las hormigas se mueven de manera básicamente aleatoria, pero cuando existe feromona depositada, tienen mayor tendencia a seguir el rastro.

De hecho, los experimentos realizados por biólogos han demostrado que las hor-migas prefieren de manera probabilística los caminos marcados con una concentración superior de feromona.

En la práctica, la elección entre distintos caminos toma lugar cuando varios ca-minos se cruzan. Entonces, las hormigas eligen el camino a seguir con una decisión probabilística influida por la cantidad de feromona: cuanto más fuerte es el rastro de feromona, mayor es la probabilidad de elegirlo. Puesto que las hormigas depositan feromona en el camino que siguen, este comportamiento lleva a un proceso de auto-refuerzo que concluye con la formación de rastros señalados por una concentración de feromona elevada. Este comportamiento permite además a las hormigas encontrar los caminos más cortos entre su hormiguero y la fuente del alimento.

Fig. 1: Forma en que las hormigas encuentran el camino más corto

(8)

En la Figura 1 se ilustra cómo este mecanismo permite a las hormigas encontrar el camino más corto:

1. Inicialmente no existe ningún rastro de feromona en el medio y, cuando una hor-miga llega a una intersección, elige de manera aleatoria una de las bifurcaciones posibles.

2. Según transcurre el tiempo y mientras que las hormigas están recorriendo los caminos más prometedores, estos van recibiendo una cantidad superior de fero-mona.

3. Esto ocurre gracias a que al ser los caminos más cortos, las hormigas que los siguen consiguen encontrar la comida más rápidamente, por lo que comienzan su viaje de retorno antes. Entonces, en el camino más corto habrá un rastro de feromona ligeramente superior y, por lo tanto, las decisiones de las siguientes hormigas estarán dirigidas en mayor medida a dicho camino.

4. Además, este camino recibirá una proporción mayor de feromona por las hormi-gas que vuelven por él que por las que vuelven por el camino más largo. Este proceso finaliza haciendo que la probabilidad de que una hormiga escoja el ca-mino más corto aumente progresivamente y que al final el recorrido de la colonia converja al más corto de todos los caminos posibles.

Esta convergencia se complementa con la acción del entorno natural que provoca que la feromona se evapore transcurrido un cierto tiempo. Así, los caminos menos prome-tedores pierden progresivamente feromona porque son visitados cada vez por menos hormigas.

Los algoritmos de ACO son esencialmente algoritmos constructivos: en cada itera-ción del algoritmo, cada hormiga construye una soluitera-ción al problema recorriendo un grafo de construcción. Cada arista del grafo, que representa los posibles pasos que la hormiga puede dar, tiene asociada dos tipos de información que guían el movimiento de la hormiga:

Información heurística, que mide la preferencia heurística de moverse desde el nodo r hasta el nodo s, o sea, de recorrer la arista ars. Se nota por ηrs

(general-mente 1/drs6). Las hormigas no modifican esta información durante la ejecución

del algoritmo.

Información de los rastros de feromona artificiales, que mide la "deseabilidad aprendida" del movimiento de r a s. Imita a la feromona real que depositan las hormigas naturales. Esta información se modifica durante la ejecución del algo-ritmo dependiendo de las soluciones encontradas por las hormigas. Se denota por τrs.

(9)

1.2 La meta-heurística ACO 9

A partir de ahora debe tenerse en cuenta que los algoritmos ACO presentan una doble perspectiva:

Por un lado, son una abstracción de algunos patrones de comportamiento natu-rales relacionados con el comportamiento que permite encontrar el camino más corto.

Por otro lado, incluyen algunas características que no tienen una contrapartida natural, pero que permiten que se desarrollen algoritmos para obtener buenas soluciones al problema que se pretende resolver (por ejemplo, el uso de informa-ción heurística sobre distancia, posiinforma-ción del objetivo, etc. que guíe el movimiento de las hormigas).

1.2. La meta-heurística ACO

Una colonia de hormigas (artificiales) construyen soluciones de forma concurrente y asíncrona para un problema discreto de optimización dado moviendose en el grafo de representación del problema, donde cada camino factible implica una solución del pro-blema [10]. Las hormigas se mueven aplicando una regla de decisión estocástica que explota los rastros de feromona. Al moverse, las hormigas construyen incrementalmen-te soluciones al problema de optimización. Una vez que la hormiga ha construido una solución, o mientras la construye la hormiga evalúa su solución y deposita feromona en los componentes del grafo que ha utilizado. Este rastro dirigirá la búsqueda de las hormigas en el futuro.

Además de la actividad de las hormigas, un algoritmo ACO incluye dos procedi-mientos adicionales: evaporación del rastro de feromona y las acciones del demonio7 (que puede ser opcional). La evaporación de la feromona es el proceso mediante el cual la intensidad del rastro de feromona en los componentes decrecen en el tiempo. Desde un punto de vista práctico, la evaporación de feromona es necesaria para evi-tar una convergencia rápida del algoritmo hacia una región sub-óptima favoreciendo la exploración de nuevas áreas. Las acciones del demonio pueden usarse para imple-mentar acciones centralizadas que no pueden ser realizadas por hormigas individuales. Ejemplos son la activación de un procedimiento de optimización local, o la colección de información global que puede ser usada para decidir si conviene o no depositar fe-romona adicional para influir en el proceso de búsqueda desde una perspectiva global. Como un ejemplo práctico, el demonio puede depositar feromona extra en los

com-7Clase especial de programa que corre en segundo plano en vez de ser controlado directamente por el

usuario, cabe decir que funciona sin tener relación con una terminal o consola y, consecuentemente, sin interactuar con el humano [18].

Los programas demonio reciben distintas denominaciones según el sistema operativo del que se trate. Así, en MS-DOS reciben el nombre de TSRs. En Windows, en cambio, son llamados servicios. En los Unix son Daemons (Daemons es la palabra correcta que los usuarios de UNIX han relajado a Demon o Demonio).

(10)

ponentes utilizados por la hormiga que construyo la mejor solución. En la figura 2 se muestra el pseudo-código de la meta-heurística ACO.

Procedimiento Metaheurística_ACO

ProgramarActividades {posiblemente en paralelo} DirigirActividadHormiga()

EvaporarFeromona()

AcionesDemonio() {opcional} fin ProgramarActividades

fin Metaheuristica_ACO

Fig. 2: La meta-heurística ACO en pseudo código. Los comentarios están entre llaves.

1.3. Modelos de Optimización Basada en Colonias de

Hormigas

En la literatura se han propuesto diversos algoritmos que siguen la meta-heurística ACO. Entre los algoritmos de ACO disponibles para problemas de optimización com-binatoria NP-complejos8, se encuentran el Sistema de Hormigas (AS), el Sistema de Colonia de Hormigas (ACS), el Sistema de Hormigas Max-Min (MMAS, Max-Min Ant System), el SH con ordenación (Rank-Based Ant System) y el Sistema de la Mejor-Peor Hormiga (BWAS, Best-Worst Ant System). A continuación se hará una pequeña descripción de los dos primeros algoritmos.

1.3.1. El Sistema de Hormigas (AS)

El AS, desarrollado por Dorigo, Maniezzo y Colorni en 1991, fue el primer al-goritmo de ACO, Inicialmente, se presentaron tres variantes distintas: AS-densidad, AS-cantidad y AS-ciclo, que se diferenciaban en la manera en que se actualizaban los rastros de feromona. En los dos primeros, las hormigas depositaban feromona mien-tras que construían sus soluciones (esto es, aplicaban una actualización en-línea paso a paso de feromona), con la diferencia de que la cantidad de feromona depositada en el AS-densidad es constante, mientras que la depositada en SH-cantidad dependía direc-tamente de la deseabilidad heurística de la transición ηrs. Por último, en AS-ciclo, la

8Un problema es NP-Complejo (NP-Hard) si un algoritmo para solucionarlo puede traducirse en uno

para resolver otro problema NP (NP-Problem = Nondeterministic Polynomial time Problem). NP-Complejo significa entonces - al menos tan complejo como cualquier problema NP, - aunque, de hecho, puede ser más complejo [12].

(11)

1.3 Modelos de Optimización Basada en Colonias de Hormigas 11

deposición de feromona se lleva a cabo una vez que la solución está completa (actuali-zación en línea a posteriori de feromona). Esta última variante era la que obtenía unos mejores resultados y es por tanto la que se conoce como AS en la literatura.

El AS se caracteriza por el hecho de que la actualización de feromona se reali-za una vez que todas las hormigas han completado sus soluciones, y se lleva a cabo como sigue: primero, todos los rastros de feromona se reducen en un factor constan-te, implementándose de esta manera la evaporación de feromona. A continuación cada hormiga de la colonia deposita una cantidad de feromona que es función de la calidad de su solución. Inicialmente, el AS no usaba ninguna acción de mejora de deposición de feromona considerando las trayectorias generadas, sin embargo es relativamente fá-cil, por ejemplo, añadir un procedimiento de búsqueda local para refinar las soluciones generadas por las hormigas.

Las soluciones en el SH se construyen como sigue. En cada paso de construcción, una hormiga k escoge ir al siguiente nodo con una probabilidad que se calcula con la siguiente ecuación: pk rs =    [τrs]α·[ηrs]β P s∈N kr[τrs] α·[ηrs]β si s ∈ Nk(r) 0 en otro caso (1)

donde Nk(r) es el vecindario alcanzable por la hormiga k cuando se encuentra

en el nodo r (nodos que aún no visita [3], también se puede ver como una lista tabú Lk que salva los nodos previamente visitados para prohibirle a la hormiga visitarlos

nuevamente antes de n iteraciones [4], lista que es posteriormente limpiada). αy β son dos parámetros que ponderan la importancia relativa de los rastros de feromona y la información heurística, respectivamente. Cada hormiga k almacena la secuencia que ha seguido hasta el momento y su memoria Lk, tal como se explicó antes, se utiliza

para determinar Nk(r) en cada paso de construcción.

Volviendo a los parámetros α y β, su función es la que sigue: si α = 0, aquellos nodos con una preferencia heurística mejor tienen una mayor probabilidad de ser es-cogidos, haciendo el algoritmo muy similar a un algoritmo voraz probabilístico clásico (con múltiples puntos de partida en caso de que las hormigas estén situadas en nodos distintos al comienzo de cada iteración). Sin embargo, si β = 0, sólo se tienen en cuen-ta los rastros de feromona para guiar el proceso constructivo, lo que puede causar un rápido estancamiento, esto es, una situación en la que los rastros de feromona asocia-dos a una solución son ligeramente superiores que el resto, provocando por tanto que las hormigas siempre construyan las mismas soluciones, normalmente óptimos locales. Por tanto es preciso establecer una adecuada proporción entre la información heurística y la información de los rastros de feromona.

(12)

hormigas han acabado de construir sus soluciones y se hace de la siguiente manera: primero, los rastros de feromona asociados a cada arco se evaporan reduciendo todos los rastros de feromona en un factor constante:

τrs← (1 − ρ) · τrs (2)

donde ρ ∈ (0, 1] es la tasa de evaporación. El siguiente paso de cada hormiga es recorrer de nuevo el camino que ha seguido (el camino esta almacenado en su memoria local Lk) y deposita una cantidad de feromona ∆τrst en cada conexión por la que ha

viajado:

τrs← ∆τrsk, ∀ars ∈ Sk (3)

donde ∆τt

rs = f (C (Sk)), es decir, la cantidad de feromona que se deposita

de-pende de la calidad C(Sk) de la solución Skconstruida por la hormiga k9.

1.3.2. El Sistema de Colonias de Hormigas (ACS)

El ACS presenta tres características que lo diferencian del Sistema de Hormigas tradicional, estas son:

1. El ACS utiliza una regla de transición denominada regla proporcional pseudo-aleatoria. Sea k una hormiga situada en el nodo r, q0 ∈ [0, 1] un parámetro y q un valor aleatorio en [0,1], el siguiente nodo s se elige aleatoriamente mediante la siguiente distribución de probabilidad:

Si q ≤ q0: pkrs= ( 1, si s = arg maxs∈Nk(r) © τrs· ηrsβ ª 0, en otro caso (4) si no (q > q0): pk rs =    [τrs]α·[ηrs]β P s∈N kr[τrs] α·[ηrs]β si s ∈ Nk(r) 0 en otro caso (5)

Como puede observarse, la regla tiene una doble intención: cuando q ≤ q0, explota el conocimiento disponible, eligiendo la mejor opción con respecto a la información heurística y los rastros de feromona. Sin embargo, si (q > q0) se

9En el caso de planificación, donde se busca la trayectoria más corta, si la trayectoria S

kgenerada por

la hormiga k es mas pequeña que las demás significa que tiene mejor calidad C y por consiguiente conse-guirá una deposición de feromona mayor, por tanto, si la cantidad de feromona depositada es inversamente proporcional la longitud de la trayectoria se tiene una función racional (o de potencia negativa).

(13)

1.3 Modelos de Optimización Basada en Colonias de Hormigas 13

aplica una exploración controlada, tal como se hacia en el AS10. En resumen, la regla establece un compromiso entre la exploración de nuevas conexiones y la explotación de la información disponible en ese momento.

2. El demonio (y no las hormigas individualmente) actualiza la feromona, es decir, se realiza una actualización de feromona fuera de línea de los rastros. Para lle-varla a cabo, el ACS sólo considera una hormiga concreta, la que generó la mejor solución global, S mejor- global11.

La actualización de la feromona se hace evaporando primero los rastros de fero-mona en todas las conexiones utilizadas por la mejor hormiga global12tal como sigue:

τrs← (1 − ρ) · τrs, ∀ars∈ Smejor−global (6)

Después el demonio deposita feromona usando la regla:

τrs ← τrs+ ρ · f (C (Smejor−global)) , ∀ars∈ Smejor−global (7)

donde ρes un parámetro y f (C (Smejor−global)) es una función racional como

en la ecuación (3). Adicionalmente, el demonio puede aplicar un algoritmo de búsqueda local para mejorar las soluciones de las hormigas antes de actualizar los rastros de feromona.

3. Las hormigas aplican una actualización en línea paso a paso de los rastros de feromona, lo cual favorece la generación de soluciones distintas a las ya encon-tradas.

Cada vez que una hormiga viaja por una arista ars, aplica la regla:

τrs← (1 − ϕ) · τrs+ ϕ · τ0 (8)

donde ϕ ∈ (0, 1] es un segundo parámetro de decremento de feromona. Como puede verse, la regla de actualización en línea paso a paso incluye tanto la eva-poración de feromona como la deposición de la misma. Ya que la cantidad de feromona depositada es muy pequeña13, la aplicación de esta regla hace que los rastros de feromona entre las conexiones recorridas por las hormigas disminu-yan. Así, esto lleva a una técnica de exploración adicional del SCH ya que las conexiones atravesadas por un gran número de hormigas son cada vez menos

10De hecho la ecuación (5) es la misma que la ecuación (1) pero se ha vuelto a escribir para darle claridad

al documento

11Aunque en algunos trabajos iniciales se consideraba también una actualización basada en la mejor

hor-miga de la iteración, en ACS casi siempre se aplica la actualización por medio de la mejor global

12Es importante recalcar que, en el ACS, la evaporación de feromona sólo se aplica a las conexiones de la

solución, que es también la usada para depositar feromona

13τ

0es el valor del rastro de feromona inicial y se escoge de tal manera que, en la práctica, se corresponda

con el límite menor de rastro de feromona, esto es, con la elección de las reglas de actualización de feromona del SCH ningún rastro de feromona puede caer por debajo de τ0

(14)

atractivas para el resto de hormigas que las recorren en la iteración actual, lo que ayuda claramente a que no todas las hormigas sigan el mismo camino.

(15)

15

2. Métodos tradicionales

Entre los métodos más utilizados en la actualidad para la planificación de movi-mientos rudos están [11]:

1. Métodos basados en la descomposición: Utilizan algoritmos de búsqueda en gra-fos, algunos de ellos exactos y otros utilizan heurísticas.

a) Búsqueda en Anchura / Profundidad: son métodos exactos que calculan el camino en un grafo G desde un nodo inicial nini hasta un final ng (por

anchura se utiliza política FIFO y por profundidad LIFO).

b) A*: Obtiene el camino en el grafo G desde un nodo inicial ninihasta un

final ngutilizando una heurística del tipo "el mejor - primero".

c) Dijkstra: Calcula los caminos en el grafo G del nodo inicial a cualquier nodo, utiliza una heurística de costos.

2. Métodos basados en campos potenciales: Realiza un búsqueda basada en campos potenciales en donde el objetivo es un potencial atrayente y los obstáculos son potenciales repulsivos. El gradiente negado de potencial total se trata como una fuerza artificial aplicada al robot.

3. Métodos probabilísticas: Consta de dos fases: fase de procesado y fase de deman-da. En la primera se construye un mapa probabilístico generando aleatoriamente configuraciones libres y usando un planificador local simple para unir dichas configuraciones. En la segunda, dadas las configuraciones inicial y final se busca un camino dentro del mapa a través de las configuraciones obtenidas en la fase uno.

4. Métodos basados en algoritmos genéticos: Un algoritmo genético es un algorit-mo de optimización estocástico y adaptativo que involucra búsqueda y optimi-zación, esta basado en los principios genéticos y evolutivos de selección natural del mas fuerte con fines reproductivos (incluyendo random crossover y muta-ción) para encontrar una solución eficientemente en espacios muy grandes.

2.1. Tablas Comparativas

En la tabla 1 se muestran los resultados obtenidos utilizando el método de Optimi-zación mediante Colonias de Hormigas sobre un mapa generado aleatoriamente (PRM) y con parámetros de carga asociados a cada ruta [9]. Implementaron en Borland C++ Builder en una PC Intel Pentium 4 a 2.66GHz con 1GB RAM. Los Parámetros ACO son: número de ciclo n = 100, número de hormigas m = 100, número máximo de ciclo nmax= 1000, α = 1 y β = 1.

(16)

Número de nodos Longitud ACO (Pixel) Tiempo ACO (Seg) 100 824.053 0.89 200 874.141 2.07 300 947.935 2.98 400 1046.886 4.13 500 1181.610 6.94

Tab. 1: Resumen de los resultados con ACO en RGM. Método utilizado Tiempo aproximado (Seg)

Octree completo 5

Heurística 1

Tab. 2: Resumen de los resultados de Octree.

En la tabla 2 se observan los resultados que se obtuvieron al planificar la trayec-toria desde una configuración inicial a una final utilizando un octree en el espacio de configuraciones de las tres primeras articulaciones de un manipulador con seis articula-ciones de rotación [6]. En este artículo proponen un método heurístico alternativo para acelerar la búsqueda jerárquica en el octree. Dicha heurística basa su criterio de selec-ción en el coste mínimo del camino asociado a la distancia cartesiana en el espacio de las articulaciones entre el nodo actual y el nodo final. Utilizaron una mini-computadora Parkin-Elmer 3244 para realizar su simulación.

En la tabla 3 se aprecian los resultados obtenidos aplicando un método modificado de A* [8]. Este algoritmo basa su mejora en explorar la rejilla en pasos más grandes14 utilizando vectores del tamaño del paso que se verifican contra cruce de obstáculos para considerarse validos. Así pues, son capaces de explorar un espacio mayor en un menor número de iteraciones, aunque cada iteración cuesta más pues se tiene que verificar que el vector sea libre. Resolvieron los problemas de dos dimensiones usando QuickBasic en un i486 a 50 MHz, los de tres dimensiones utilizando FORTRAN en una estación de trabajo IBM RS6000 320.

Escenario GDL Tamaño del mapa Paso Peso Tiempo [s]

4 obstáculos 2 100 × 100 10 1 0.055

30 obstáculos 2 100 × 100 5 1 0.055

Laberinto 2 100 × 100 5 0.5 0.333

Pasillo estrecho 3 100 × 100 × 100 5 0.5 0.370

Pasillo estrecho 3 100 × 100 × 100 10 0.5 0.800 Tab. 3: Resumen de los resultados de A* modificado.

En la tabla 4 se presentan algunos de los resultados obtenidos con un planificador

(17)

2.1 Tablas Comparativas 17

para espacios de configuración n-dimensionales utilizando PRM [5]. Su procedimiento se divide en dos fases: la fase de aprendizaje y la fase de búsqueda. La fase de apren-dizaje se encarga de construir un mapa probabilístico almacenado como un grafo, en donde los nodos son configuraciones libres de colisiones y las aristas son trayectorias factibles entre dichas configuraciones. Esta fase se compone a su vez de dos paso: el paso de construcción y el paso de expansión. El objetivo del primer paso es el de obte-ner un grafo razonablemente conectado y el del segundo el de mejorar la conectividad del grafo en situaciones difíciles (por ejemplo, en pasajes estrechos). La fase de bús-queda, por otro lado, se encarga de encontrar un camino a través del grafo que conecte las configuraciones inicial y final (que a su vez deben ser añadidas al grafo).

Sus resultados fueron obtenidos utilizando una estación de trabajo alfa DEC con rendimiento 126 SPECfp92 y 74.3 SPECint9215 con una implementación en C. En la tabla 4 se muestran los resultados obtenidos para una prueba que consiste en pasar por ocho configuraciones distintas (C1...C8) de un robot con base fija y siete articulaciones de revolución. Se incluyen los tiempos de la fase de aprendizaje (TL), el tiempo del

paso de construcción (TC = 2TL/3) y el tiempo del paso de expansión (TE = TL/3),

el número de pruebas de colisión efectuadas , el promedio de nodos generados y la razón de configuraciones alcanzadas con éxito.

En las tablas 5, 6 y 7 se ilustran los resultados obtenidos para un planificador Dual de Dijkstra que busca caminos con diferentes topologías [7]. Dicho método consta de dos fases; en la primera, para cada nodo del grafo calcula el camino más corto entre los nodos de origen y final que pasan por dicho nodo. En la segunda fase, se seleccionan el camino más corto de cada clase de homotopía16. Su Algoritmo fue implementado en C++ en una Pentium 4 a 2 GHz con 256 MB de RAM.

En las tablas anteriores se analiza el tiempo de respuesta del algoritmo en escena-rios con distintas resoluciones y obstáculos aleatoescena-rios, P1, P2 y P3 son los siguientes procesos:

1. Construir una grafo reticulado en el espacio de configuraciones. 2. Calcular la primera fase de la búsqueda Dual de Dijkstra. 3. Calcular la segunda fase de la búsqueda Dual de Dijkstra.

15SPEC, del inglés Standard Performance Evaluation Corporation es una organización cuyo objetivo es

el de estimar el rendimiento de los sistemas informáticos mediante pruebas imparciales, así por ejemplo, SPECfp92 es un aprueba de rendimiento de punto flotante y SPECint92 es su análogo para enteros.

16Es una transformación continua desde una función a otra. En otras palabras, es un camino en el espacio

(18)

TL TC TE Colisión Nodos C1 C2 C3 C4 C5 C6 C7 C8 20.1 13.1 7.0 621943 1063 100 13.3 36.7 10.0 40.0 93.3 13.3 36.7 30.1 19.5 10.6 889384 1643 100 50.0 46.7 46.7 46.7 90.0 53.3 46.7 40.3 26.3 14.0 1145091 2233 100 80.0 80.0 80.0 80.0 100.0 80.0 80.0 50.3 32.7 17.6 1392454 2783 100 90.0 96.7 90.0 96.7 100.0 90.0 96.7 60.2 39.1 21.1 1631612 3284 100 90.0 100.0 90.0 100.0 100.0 90.0 100.0 70.3 45.8 24.5 1876006 3805 100 96.7 100.0 96.7 100.0 100.0 96.7 100.0 80.4 52.2 28.2 2104209 4272 100 100.0 100.0 100.0 100.0 100.0 100.0 100.0

Tab. 4: Resumen de los resultados de PRM. Resolución P1 [seg] P2 [seg] P3 [seg]

10 0 0 0

20 0.016 0 0

30 0.016 0 0

40 0.015 0 0

60 0.047 0 0.031

(19)

2.1 Tablas Comparativas 19

Resolución P1[seg] P2[seg] P3[seg]

10 0.047 0 0

20 0.422 0.187 0.047

30 1.765 0.766 0.344

40 4.687 2.219 1.156

60 19.203 9.938 6.187

Tab. 6: Resumen de los resultados de Dijkstra para 3 dimensiones.

Resolución P1[seg] P2[seg] P3[seg]

5 0.109 0 0

10 3.125 0.328 0.062

15 22.764 5.625 0.454

20 93.657 33.219 2.141

(20)
(21)

21

3. DESARROLLO

3.1. Introducción

El algoritmo ACO sirve para encontrar el camino más corto en un grafo. La pecu-liaridad de este gafo es que cada nodo representa un lugar que la hormiga debe o no visitar y cada arco que une estos nodos tiene un coste asociado que le hacen mas o menos atractivo. Por ejemplo, en el problema clásico del viajante de comercio17[3][4]. se parte de un nodo inicial y se propone regresar al mismo nodo visitando los nodos restantes al menor coste, ver figura 3.

Fig. 3: TSP con d* = 11 y nodo inicial = A.

3.2. Aplicando ACO a Planificación de Trayectorias

Para TSP las hormigas depositan la feromona τ en los arcos por los que transitan y el peso de cada arco influye también en la heurística pues se considera que ηrs= 1/drs,

donde drses la distancia o peso del arco ars.

Sin embargo, para resolver problemas de planificación de trayectorias (PT) no se realiza una búsqueda en grafos como tal dado que el ambiente de trabajo es un escena-rio discreto con regiones libres (transparente) y regiones prohibidas (obscuro). Figura 4.

Las hormigas deben encontrar el camino más corto partiendo del nido hasta la comida, circulando por las regiones libres. A diferencia del TSP no se tienen arcos, y los nodos equivalen a casillas del mapa, pudiendo las hormigas moverse en seis posi-ciones posibles18 (X+, X-, Y+, Y-, Z+, Z-) siempre y cuando estén disponibles, tal y como se puede observar en la figura 5.

Otra diferencia con TSP es que la feromona τ debe depositarse en las casillas y la heurística de preferencia de movimiento ηrs depende ahora de la distancia entre

la ormiga y la configuración final. En este nuevo escenario discreto la distancia entre

17"Travel Salsesman Problem" en Inglés, consiste en visitar todas las ciudades con el menor coste posible. 18En realidad son (33− 1) = 26 posibles direcciones pero, para fines prácticos basta con seis.

(22)

Fig. 4: Escenario para planificación de trayectorias.

(23)

3.2 Aplicando ACO a Planificación de Trayectorias 23

nodos adyacentes es siempre uno (drs = 1), por consiguiente la nueva heurística de

preferencia de movimiento se ha modificado a una función pseudo-aleatoria que da mayor peso de movimiento hacia la casilla adyacente cuya distancia euclidiana19contra el destino sea menor, entonces ηrsqueda como:

ηk rs =    M axDistNk(r),f−Dists,t P s∈N kr(M axDistNk(r),f−Dists,t) si s ∈ Nk(r) 0 en otro caso (9)

que entrega la probabilidad de moverse a cada una de los seis vecinos válidos; sin embargo esta heurística presenta un fallo extremadamente importante que hace indis-pensable el uso del ACS como ACO. Observe los siguiente ejemplos:

1. Se tienen 4 vecinos en zona prohibida o han sido visitados, la distancia máxima MaxDist = 10, la distancia de los seis vecinos al punto final esta dada en forma de vector Distsf[6]=[0,0,10,8,0,0]20, entonces ηkrses:

ηkrs[2] = 10 − 10 (10 − 10) + (10 − 8) = 0 ηk rs[3] = 10 − 8 (10 − 10) + (10 − 8) = 1 ηkrs[ ] = 0 en otro caso

por consiguiente la hormiga solo se moverá en la dirección de ηk

rs[3] aunque

existan dos casillas libres.

2. Se tienen 5 vecinos en zona prohibida o han sido visitados, la distancia máxima MaxDist = 10, la distancia de los seis vecinos al punto final esta dada en forma de vector Distsf[6]=[0,0,10,0,0,0]21, entonces ηrskes cero en todos los casos aunque

exista una casilla libre y sin visitar pues M axDist − Dist = 10 − 10. Una manera que existe de sortear esta situación es utilizando una adaptación de la ecuación (4) que explore en las casillas libres con distancia máxima, ver ecuación 10. ηrsk = ( 1 para M axDistNk(r),f 0 en otro caso (10) 19Dist sf= p

(xf− xs)2+ (yf− ys)2+ (zf− zs)2, con [xf,yf,zf ] = configuración final.

20Hay cuatro distancias que valen cero, no significa que s y f estén en el mismo punto, lo que sucede s

esta en zona prohibida o no pertenece a Nk(r) (es decir, ha sido visitado ya por esa hormiga).

21Hay cuatro distancias que valen cero, no significa que s y f estén en el mismo punto, lo que sucede s

(24)

Además se añadió una función aleatoria que propone nuevos movimientos distintos de los que se mencionan anteriormente, como se puede ver en la ecuación 11:

ηkrs =

(

rand(1..,6) si s ∈ Nk(r)

0 en otro caso (11)

3.3. Algoritmo ACO adaptado a PT

El algoritmo consta básicamente de dos etapas: inicialización y optimización; La inicialización es un proceso local22que trata de obtener cualquier trayectoria que conec-te al punto de configuración inicial con el punto de configuración final utilizando para ello las heurísticas del Sistema de Colonias de Hormigas. La Optimización es un proce-so global23que intenta encontrar el camino más corto que une las dos configuraciones a partir de los datos obtenidos en la inicialización.

La figura 6 muestra un diagrama de flujo que simplifica la composición del algorit-mo, en las siguientes lineas se explica cada una de las etapas del mismo:

1. Inicio: Se abre el mapa de configuraciones.

2. Se hace la deposición inicial de feromona, las casillas libres tienen deposición uno y las prohibidas cero.

3. De manera local, es decir, independientemente del comportamiento de las demás hormigas, se obtienen las trayectorias iniciales para la colonia de hormigas. Se generan algunas trayectorias factibles desde el punto de configuración inicial hasta el punto de configuración final utilizando la heurística de ACO (ecuaciones (4) y (5) de la sección 1.3.2) en cada punto de la trayectoria. Se obtienen igual número de trayectorias que de hormigas aunque algunas (o todas) las trayectorias pueden no estar conectadas con el punto de configuración final, estas trayectorias incompletas son descartadas (no reciben carga de feromona). En el caso de que no se consiga ninguna trayectoria completa entonces se informa al usuario y el programa termina.

4. Si se satisface la condición de final de trayectoria se procede al paso cinco, de lo contrario se permanece en el paso tres.

5. De manera global se busca la mejor trayectoria de la colonia, esta trayectoria es la que obtiene una mayor deposición de feromona y al mismo tiempo se evapora

22Es decir, que considera a cada hormiga localmente, sin que se vea afectada por el desempeño de las

demás.

(25)

3.3 Algoritmo ACO adaptado a PT 25

(26)

24y deposita25feromona de todas las trayectorias.

6. Si se ha obtenido la trayectoria óptima26el programa termina y se procede al paso siete. Independientemente el programa puede terminar después de un número fijo de iteraciones (2000 en este caso) e ir al paso 7. Si no se cumple ninguna de las condiciones anteriores ir al paso 3.

7. Fin de algoritmo, si se ha concluido correctamente se exporta el camino más corto como posible trayectoria del robot.

24En la evaporación, todas las trayectorias incompletas vuelven a tener carga de feromona cero en este

programa.

25La deposición de todas las hormigas es constante y con valor uno. La deposición de la mejor hormiga se

realiza de manera incremental, es decir, a cada paso que da recibe mayor carga.

(27)

27

4. RESULTADOS

4.1. Introducción

En este apartado se muestra la composición del programa escrito en C++27 para Planificación de Trayectorias basado en Optimización mediante Colonias de Hormigas (PT-ACO). En primer lugar se desglosa la estructura del programa para comprender su manejo a nivel usuario. En segundo lugar se explica el funcionamiento del mismo a nivel programación, mostrando el resultado gráfico que de cada fase se obtiene.

4.2. Descripción del programa PT-ACO

A continuación se explicará de manera detallada cada una de las partes que com-ponen la interfase gráfica con el usuario del programa PT-ACO.

Fig. 7: Apariencia del programa escrito en C++ para planificación de trayectorias en 3D.

En la figura 7 se muestra la apariencia de la ventana principal del programa PT-ACO. En las siguiente lista se presenta la función de cada uno de los componentes numerados en la figura.

1. Menu: sirve para seleccionar la acción que se ejecutará, está compuesto por:

27 Se ha utilizado Qt [13] para la interfase gráfica con el usuario y coin3D [14] para visualización de los

(28)

a) Archivo

1) Abrir: Sirve para abrir el mapa de Bits28, ver figura 9.

2) Limpiar: Sirve para borrar del visor los elementos individuales que han sido agregados o para reinicializar el programa y comenzar con un nuevo mapa.

3) Guardar Reporte 4) Imprimir Reporte 5) Cerrar

b) Insertar

1) Envolvente: dibuja una caja envolvente del espacio de configuraciones. 2) Coordenadas: dibuja el sistema de referencia (ejes coordenados) XYZ. 3) Origen: dibuja un arrastrador29 para posicionar el punto de

configu-ración inicial.

4) Final: dibuja un arrastrador para posicionar el punto de configuración final.

c) Reportes

1) Resumen: Genera un reporte indicando el nombre del mapa actual, el origen, el final así como los tiempo y longitudes de las trayectorias en las fases de inicialización y optimización. El reporte generado por el programa PT-ACO se puede guardar con formato .csv30que puede ser visualizado y editado en Excel .

2) Trayectoria: Muestra la trayectoria completa. d) Aestrella

1) Buscar: Busca la trayectoria que conecte las configuraciones inicial y final utilizando A*.

2) Resultados: muestra el tiempo demandado para completar la busqueda así como la longitud de la trayectoria encontrada.

e) Ayuda

1) Ayuda: Muestra la documentación HTML del programa de PT-ACO generada con Doxigen31, ver figura 8.

2) Acerca de: Generalidades del programa.

28 En éste trabajo se construye el espacio de configuraciones por medio de un mapa de bits X,Y que consta

de un número n de capas que dan la profundidad Z

29 Dragger en inglés, es un elemento de Coin3D 30Valores separados por comas.

31 Doxigen [16] es un siestema de documentación para c++, java... que ayuda a generar documenetación

(29)

4.2 Descripción del programa PT-ACO 29

Fig. 8: Documentación del programa PT-ACO.

2. Botón de Aceptar Origen: Ya que se ha seleccionado el origen con el arrastrador se acepta éste32y sus coordenadas se despliegan debajo del botón.

3. Botón de Aceptar Final: Similar a Aceptar Origen.

4. Botón de Trayectoria: Obtiene la trayectoria inicial desde el punto de origen al final, si es que existe.

5. Botón de Optimizar: Obtiene la trayectoria optimizada desde el punto inicial al final.

6. Visor de Reportes: En este recuadro se muestra el reporte generado despues de que se ha competado una trayectoria, puede ser la inicial o la optimizada. 7. Rueda de rotación en X: gira sobre el eje X considerando X la horizontal en la

pantalla.

8. Rueda de rotación en Y: gira sobre el eje Y considerando Y la vertical en la pantalla.

9. Recuadro de información de coordenadas: Muestra las coordendas actuales del arrastrador.

10. Recuadro de resultados del método A*: En este recuadro se muestran los resul-tados obtenidos tras aplicar el algoritmo de busqueda A*.

11. Selector Estático: Cambia a modo estático el visor.

12. Selecor Dinámico: Permite rotar libremente los objetos contenidos en el visor. 13. Autoajuste: Centra los objetos en el visor, facilita el rotarlos sobre de si mismos. 14. Rueda de teleobjetivo: Permire acercar o alejar el objeto en el visor.

(30)

15. Mapa de Configuraciones: Es el mapa en donde se buscará la trayectoria. 16. Envolvente: Es una caja envolvente del mapa de configuraciones.

17. Arrastrador: Es un elemento de interfase con el usuario que permite seleccionar un punto en el espacio de tres dimensiones.

18. Sistema de Referencia: Son los ejes coordenados relacionados con el mapa de configuraciones.

Fig. 9: Mapa de bits a partir del cual se generara el mapa en 3D.

4.3. Ejecución del Programa

Para facilitar la comprensión de la manera en la que el programa PT-ACO funciona se presenta una lista con los pasos y acciones a seguir para le ejecución del programa.

1. Abrir el mapa de configuraciones (figura 9), El programa se encargara de inte-grar cada capa en una figura drimensional33 que se desplegará si ha sido car-gada correctamente en el visor. A nivel de programación se construye una tabla de tres dimensiones a la cual se hace referencia mediante un puntero del tipo: mapa[X][Y][Z].

2. El programa espera a que el usuario introduzca las posiciones del punto de con-figuración inicial y el punto de concon-figuración final mediante los arrastradores. Es importante recalcar que es responsabilidad del usuario introducir los datos correctamente pues no se cuenta con un verificador de errores, entonces el pro-grama almacena las coordenadas en dos vectores del tipo: origen[3]=[Xo,Yo,Zo] y final=[Xf,Yf,Zf].

3. En este momento se puede ya calcular la trayectoria inicial, para ello se carga el mapa de configuraciones con un valor de feromona igual a uno para todo el espacio libre y cero en el prohibido, es decir, mapa[X][Y][Z] es cero si el espacio es prohibido y uno si el espacio es libre. Desde la ventana principal se cargan los datos que tenga la el deslizador de selección de pertenencia a la heurística para obtener el valor del parámetro q0(sección 1.3.2). A continuación se verifica el estado de los seis vecinos mencionados en la sección 3.2 y se aplican las heuristicas descritas en las ecuaciones (4) y (5); es decir, se debe obtener primero

(31)

4.3 Ejecución del Programa 31

el rastro de feromona τrs así como la preferencia de movimiento ηrsen base

a la nueva heuristica de distancia (ecuaciónes 9, 10 y 11) - para cada vecino disponible.

En cada iteración la información sobre la nueva posición y pesos adyacentes se almacena en una lista circular y la hormiga actualiza el rastro de feromona localmente. Finalmente, si ha conseguido la trayectoria se actualiza el rastro de feromona global. El resultado de este proceso se ilustra gráficamente en la figura 10, en donde se ha representado mediante una esfera cada una de las posiciones contenidas en la lista circular.

El proceso de iteración descrito anteriormente esta contenido en un ciclo FOR que se rompe sólo en tres casos:

a) Que alcanze un tope máximo de iteraciones. b) Que sufra bloqueo.34

c) Que encuentre la trayectoria deseada.

Fig. 10: Busqueda inicial de la trayectoria.

4. Una opción muy útil es borrar el mapa del visor para analizar con más detalle la trayectoria encontrada, dicho proceso se realiza elegiendo la opción Archivo . Limpiar . Mapa del Menu principal. El resultado se muestra en la figura 11.

34 Bloqueo es en este programa una condición que ocurre cuando la hormiga no encuentra una solución

(32)

Fig. 11: Trayectoria generada en el primer intento.

5. La última opción es optimizar la trayectoria, si no se han registrado errores y se ha obtenido una trayectoria inical satisfactoria es hora de pulsar el botón de Optimizar, internamente el programa se encarga de leer los rastros de feromona que se han dejado en el mapa tridimensional y buscar un camino mejor utilizando las heuristicas de las que ya se habló en la 1.3.2. El resultado del proceso de optimización se muestra en la figura 12.

4.4. Tiempos

Para realizar las mediciones de tiempo se utilizaron funciones de temporizador de Windows35, además se trabajó con mapas de distintas resoluciones. Se empleó un procesador Pentium III a 750 MHz con 128 MB de RAM, corriendo bajo Windows 2000 y fue programado en el entorno de Visual C++ 6.0 con las librerias de Qt y Coin3D.

4.4.1. Comparación

Para realizar la comparación del método ACO, se implementó el método de bús-queda en gradillas A*. Éste método que ya ha sido mencionado en [11] considera una

35 En particular se usaron QueryPerformanceFrecuency() y QueryPerformanceCounter(), funciones que

realizan los calculos de tiempo mediante el valor del contador de desempeño de alta resolución. Esté último cuenta en algunos procesadores, por ejemplo, la frecuencia de reloj del ordenador.

(33)

4.4 Tiempos 33

Fig. 12: Trayectoria optimizada.

gradilla rectangular con celdas (nodos) libres y prohibidas. El método se resume en [8] mediante los siguientes pasos:

1. Se abre el nodo inicial y se coloca en una lista llamada OPEN. Este nodo se le refiere como s.

2. Si no hay nodos en la lista OPEN, no existe trayectoria libre entre las configura-ciones inicial y final. (Nunca ocurre en el primer paso).

3. Se determina la función de costo f para todos los nodos de la lista OPEN. el nodo con el coste mínimo se remueve de la lista OPEN y se coloca en la lista CLOSED. Este nodo sera referido como n. (El costo f, se detalla en el paso 5). 4. Si n es el nodo final, se recuperan los punteros de adelante hacia atrás hasta llegar

al nodo inicial y se sale (los punteros se explican en el siguiente paso).

5. Crear una lista de sucesores n’ de todos los nodos adyacentes de n. Se genera un puntero desde cada sucesor hacia el nodo n indicando la dirección de retorno hacia el punto inicial. Para cada sucesor de n’ hacer:

a) Si el sucesor, n’ no esta en la lista OPEN o CLOSED o es un nodo prohi-bido, colocarlo en la lista OPEN. Para este nodo calcular el costo g(n’) de la trayectoria desde el punto inicial hasta el sucesor n’. Este costo se determina sumando el costo de moverse del nodo n al n’ y el costo g(n)

(34)

(previamente calculado). También se realiza una estimación del costo de moverse desde el sucesor hasta el nodo final que se denomina h(n’). Este es típicamente el costo de una linea recta entre ambos puntos. Finalmen-te, el coste total f que se asigna a la celda es la suma de ambos costes: f (n’)=g(n’)+h(n’).

b) Si el sucesor n’ ya esta en la lista OPEN o CLOSED, direccionar los pun-teros a través de la trayectoria hasta el g(n’) con valor más bajo. Esto se hace comparando los g(n’) previamente calculados durante la apertura pre-via con el g(n’) nuevo y utilizando el n actual. si el nuevo g(n’) es menor, los punteros se re-direccionan hacia n, Si no, el nodo no se reabre. c) Si el sucesor n’ requiere ajuste de puntero como en el inciso anterior y si

estuviese en la lista CLOSED, reabrirlo. 6. Ir al paso 2.

Este método tiene la ventaja de encontrar el camino óptimo, si es que existe en un tiempo razonablemente bajo (a continuación se verá la comparación de tiempos contra ACO) que depende básicamente del tamaño de la gradilla a explorar. Su desventaja es el consumo alto de memoria, por ejemplo, para el caso de dos dimensiones, si se tiene un mapa de 100x100, ACO necesita una matriz de 100x100 para depositar feromona y una lista de 10000 elementos para almacenar la trayectoria36. En cambio, A* utiliza una matriz de 100x100 para explorar, una lista de 10000 elementos para la lista OPEN, otra para la trayectoria, otra para los costos F, G y H, los padres, etc, y todas de las mismas dimensiones.

En este programa en particular se utilizó el método Manhatan37 para calcular los costos H de la heurística, se realizó una búsqueda cuatro-conectada38 y se buscó en una gradilla tridimensional. En las figuras 13 a la figura 17 se muestran las trayectorias obtenidas utilizando ACO y A* en una gradilla tridimensional de distintas dimensiones, así mismo se puede apreciar los tiempos y longitudes para cada trayectoria.

En la tabla 8 se muestra la comparación de los tiempos obtenidos entre los métodos ACO y A*, observe que en promedio el método A* es un 742.13 % más lento que ACO. De la tabla 8 se aprecia que el tamaño del mapa afecta a la trayectoria inicial y casi nada al tiempo de optimización, la cual depende en mayor medida de la longitud de la trayectoria encontrada, pues una vez encontrado dicha trayectoria se optimiza sobre si misma. Solo en este programa se realiza la optimización en una iteración sobre

3610000 es muy grande y correspondería al peor de los casos en donde se tuviera que explorar toda la

gradilla, en la práctica se ha acotado a 2000 cuando mucho.

37A diferencia de ACO en donde se utilizó distancia euclidiana para la heurística. Sin embargo, como

este proyecto esta sirviendo también como banco de pruebas y con la intención de darle mayor rapidez al algoritmo A* al no realizar cálculos de coma flotante se propuso la utilización del método Mamhatan (ver [15]).

(35)

4.4 Tiempos 35

Fig. 13: Trayectorias obtenidas utilizando ACO y A* para un mapa de 30 × 30 × 30.

(36)

Fig. 15: Trayectorias obtenidas utilizando ACO y A* para un mapa de 50 × 50 × 50.

(37)

4.4 Tiempos 37

Fig. 17: Trayectorias obtenidas utilizando ACO y A* para un mapa de 70 × 70 × 70. la misma trayectoria generada, lo cual no entrega el camino óptimo. En realidad la optimización es el procedimiento que consume más tiempo pues de resultados como [2] se observa que se necesitan en promedio 120 iteraciones; en este caso si se multiplica la más sencilla (30x30x30) para 100 iteraciones daría 2.34 E-3 x 100 = 234 ms para encontrar el óptimo, este tiempo aproximado tendría que sumarse al que tome encontrar la trayectoria inicial, trayectoria que además pude variar bastante mientras se optimiza. Por lo tanto, para un mapa pequeño de 30x30x30 utilizando el método ACO, se puede esperar un tiempo mayor a 26,7+(100×2,34) = 260, 7 [ms] para obtener la trayectoria optimizada. En la misma tabla 8 se se tiene que este tiempo aproximado sigue siendo menor que el obtenido con A*, así que aunque en este trabajo no se hizó, sería muy importatnte optimizar mínimo en 100 iteraciones.

En la tabla se tiene la comparación entre las longitudes de las trayectorias generadas con los enfoques ACO y A*, observe que, en promedio, la longitud de la trayectoria obtenida mediante A* es un 65 % más corta que la obtenida con ACO. Cabe mencionar que la longitud de A* siempre será la misma mientras que la de ACO puede variar.

(38)

tiempo [ms] A CO inicialización A CO optimización A CO T otal A estrella A AC O × 100 30 × 30 × 30 26.7 2.34 29.04 169.75 584.54 40 × 40 × 40 20.7 1.19 21.89 151.78 693.38 50 × 50 × 50 20.3 2.11 22.41 126.15 562.92 60 × 60 × 60 49.8 2.55 52.35 746.27 1425.54 70 × 70 × 70 117.0 3.37 120.37 534.80 444.30

Tab. 8: Comparación de tiempos entre ACO y A*.

longitud ACO al inicializar ACO al optimizar A estrella A∗ ACO × 100 30 × 30 × 30 330 154 68 44.16 40 × 40 × 40 113 101 95 94.06 50 × 50 × 50 306 174 106 60.92 60 × 60 × 60 314 180 132 73.33 70 × 70 × 70 726 278 146 52.52

(39)

39

5. Conclusiones

Este trabajo tiene como objetivo el presentar una alternativa de solución al pro-blema de planificación de trayectorias en gradillas tridimensionales. Se desarrolló un programa escrito en C++ capaz de encontrar trayectorias que unan las configuraciones inicial y final definidas por el usuario, en un mapa de configuraciones de tres dimen-siones que tambien puede ser definido por el usuario.

Los tiempos de respuesta que se obtuvieron en todos los casos vistos en en el apar-tado 4.4.1 fueron menores a los obtenidos con A*. ACO Resultó menos ventajoso en cuanto a las longitudes de las trayectorias obtenidas, que siempre fueron mayores a las de A* por las razones que ya se mencionaron. El programa es capaz de encontrar trayectorias en mapas con obstáculos que no están unidos y hasta en pasajes estrechos pero es deficiente para mapas del tipo laberinto o con huecos.

Una ventaja que se puede señalar de PT-ACO con respecto a A* es en la busqueda de trayectorias en espacios de configuraión que varían con el tiempo. Por ejemplo, si se ha encontrado ya la trayectoria y el robot tratase de recorerla encontrando en su camino un obstaculo que no estaba presente, esto supone: (a) para A* volver a planificar la trayectoria por completo, (b) para ACO buscar y optimizar sobre la región que ha sufrido cambios.

Por las razones anteriormente dichas se concluye que el método de optimización mediante colonias de hormigas para planificación de trayectorias es una buena opción cuando el entorno esta cambiando constantemente, aunque la busqueda en gradillas no sea la mejor elección.

Las actualizaciones y/o correcciones, así como la aplicación se pueden encontrar en [17] o mediante el correo: [email protected]

(40)
(41)

Referencias 41

Referencias

[1] Sergio Alonso, et. al., La Metaheurística de Optimización Basada en Colonias de Hormigas. <http://sci2s.ugr.es/docencia/index.php>, Soft Computing and Intelli-gent Information Systems, 2004.

[2] Xiaoping Fan, et. al., Optimal Path Planning for Mobile Robots Based on Infes-ted Ant Colony Optimization Algorithm. Proc. Of the 2003 IEEE international Conference on Robotics, Intelligent Systems and Signal Processing, Changsha, China, 2003, 131-136.

[3] Dorigo, M.; Maniezzo, V.; Colorni, A., Ant system: optimization by a colony of cooperating agents, Systems, Man and Cybernetics, Part B, IEEE Transactions on, Volume: 26 , Issue: 1, 1996, 29 41.

[4] Dorigo, M.; Gambardella, L.M., Ant colony system: a cooperative learning ap-proach to the traveling salesman problem, Evolutionary Computation, IEEE Tran-sactions on, Volume: 1, Issue: 1, 1997, 53 66.

[5] Kavraki,L.E. et.al; Probabilistic roadmaps for path planning in high-dimmensional configuration spaces, IEEE transactions on Robotics and Automa-tion, Volume 12, issue 4, Aug. 1996. Page(s):566-580.

[6] Faverjon, B; Obstacle avoidance using an octree in the configuration space of a manipulator, Proceedings of the 1984 IEEE International Conference on Robotics and Automation, Volume 1, Mar 1984, Page(s) 504-512.

[7] Fujita, Y,; Nakamura, Y,; Shiller, Z.; Dual Dijkstra Search for paths with diffe-rent topologies, Proceedings of the ICRA ’03 IEEE International Conference on Robotics and Automation, Volume 3, 19 Sept. 2003, Page(s) 3359-3364, vol 3. [8] Warren, C.W.; Fast path planning using modified A* method, Proceedings of the

1993 IEEE International Conference on Robotics and Automation. 2-5 May 1993 Page(s) 662-667 vol. 2.

[9] Ying-Tung Hsiao, et.al.; Ant colony optimization for best path planning, ISCIT 2004, IEEE International Symposium on Communications and Information Te-chnology, Volume 1, 26-29 Oct. 2004, Page(s) 1009-113 vol. 1.

[10] Marco Dorigo; Ant Algorithms Solve Difficult optimization Problems, Advances in Artificial Lif, Proceedings os the Sixth European Conference on Artificial Life, LNAI 2159, Springer-Verlag, pp. 11-12.

[11] Jan Rosell; Planificació de moviments en robòtica

(42)

PlanificacioMovimentsRobotica.htm>, Curso de Doctorado en AAR del IOC, 2004.

[12] Eric W. Weisstein;MathWorld,<http://mathworld.wolfram.com>, Web Mathematical Resource, 2005.

[13] Trolltech; Qt Technical Documentation, <http://www.trolltech.com/ developer/doc.html>, web resources, 2005.

[14] SIM; Coin3D, <http://www.coin3d.org/doc/>, web resources, 2005. [15] Patrick Lester; A* Pathfinding for Beginers, <http://www.

policyalmanac.org/games/aStarTutorial.htm>, web resour-ces, 2004.

[16] Dimitri van Heesch; Doxygen,<http://www.stack.nl/~dimitri/ doxigen/index.html>, web resources, 2005.

[17] Carlos Vázquez; Documentación, <http://www.ioc.upc.edu/ usuaris/carlosvazquez/>, web resources, 2005.

[18] Jimmy Wales, Larry Sanger; Wikipedia, <http://www.wikipedia. org/>, web resources, 2005.

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

Se ha estudiado el rendimiento y posibilidades de los cohetes de dos etapas y se ha presentado un método de optimización de la distibución de masas de las etapas para hallar la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

D) El equipamiento constitucional para la recepción de las Comisiones Reguladoras: a) La estructura de la administración nacional, b) La su- prema autoridad administrativa

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación