planificación de trayectorias basada en optimización...

42
Planificación de Trayectorias Basada en Optimización Mediante Colonias de Hormigas Carlos Vázquez Hurtado Asesor: Jan Rosell Gratacós Septiembre 2005 1

Upload: buithien

Post on 05-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

Planificación de Trayectorias Basada en

Optimización Mediante Colonias de

Hormigas

Carlos Vázquez Hurtado

Asesor:

Jan Rosell Gratacós

Septiembre 2005

1

Page 2: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

2

Page 3: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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úsqueda 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.

Page 4: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

4 Índice

Í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. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Page 5: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

Índice de figuras 5

Índice de figuras

1. Forma en que las hormigas encuentran el camino más corto . . . . . . 72. La meta-heurística ACO en pseudo código. Los comentarios están en-

tre llaves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103. TSP con d* = 11 y nodo inicial = A. . . . . . . . . . . . . . . . . . . 214. Escenario para planificación de trayectorias. . . . . . . . . . . . . . . 225. Posibles movimientos de la hormiga en su entorno. . . . . . . . . . . 226. Diagrama de flujo del algoritmo. . . . . . . . . . . . . . . . . . . . . 257. Apariencia del programa escrito en C++ para planificación de trayec-

torias en 3D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278. Documentación del programa PT-ACO. . . . . . . . . . . . . . . . . 299. Mapa de bits a partir del cual se generara el mapa en 3D. . . . . . . . 3010. Busqueda inicial de la trayectoria. . . . . . . . . . . . . . . . . . . . 3111. Trayectoria generada en el primer intento. . . . . . . . . . . . . . . . 3212. Trayectoria optimizada. . . . . . . . . . . . . . . . . . . . . . . . . . 3313. Trayectorias obtenidas utilizando ACO y A* para un mapa de 30×30×30. 3514. Trayectorias obtenidas utilizando ACO y A* para un mapa de 40×40×40. 3515. Trayectorias obtenidas utilizando ACO y A* para un mapa de 50×50×50. 3616. Trayectorias obtenidas utilizando ACO y A* para un mapa de 60×60×60. 3617. Trayectorias obtenidas utilizando ACO y A* para un mapa de 70×70×70. 37

Page 6: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

6 1 INTRODUCCIÓN

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 lacalidad de las soluciones, la investigación en el campo de la optimización combinatoriaha 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 sellaman comúnmente meta-heurísticas y se componen de conceptos generales emplea-dos para definir métodos heurísticos [1]. Dicho de otra manera, una meta-heurísticapuede 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 mejoresaproximaciones para atacar los problemas de optimización combinatoria.

Las meta-heurísticas incorporan conceptos de muchos y diversos campos como lagené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 vecindariovariable, GRASP2 y algoritmos evolutivos. Una meta-heurística relativamente recientees la Optimización basada en Colonias de Hormigas3 (ACO), la cual se inspira en elcomportamiento 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 trabajoinicial de Dorigo, Maniezzo y Colorni en el Sistema de Hormigas4 (AS), la ACO seestá convirtiendo en un campo de investigación importante: un gran número de autoreshan 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 haincrementado 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 Hormigaspara encontrar la trayectoria óptima para un robot que se desplaza de un punto origena 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 altonivel 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 otraes la planificación local que evita que el robot colisione en tiempo real [2]. Mediantela combinación de ambas se consigue un buen balance entre eficiencia del algoritmo ydesempeño en tiempo real en el proceso de planificación.

1 Heurísticas2 "Greedy Randomized Adaptative Search Procedures" en Inglés3 "Ant Colony Optimization", ACO en inglés4 "Ant System", AS en inglés

Page 7: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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

1.1. De las Colonias de Hormigas Naturales a laMeta-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 tareascomplejas desde el punto de vista de una hormiga individual. Un aspecto interesantedel comportamiento de muchas especies de hormigas es su habilidad para encontrar loscaminos 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 seencuentra ningún rastro de feromona, las hormigas se mueven de manera básicamentealeatoria, pero cuando existe feromona depositada, tienen mayor tendencia a seguir elrastro.

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ónsuperior 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ónprobabilística influida por la cantidad de feromona: cuanto más fuerte es el rastro deferomona, mayor es la probabilidad de elegirlo. Puesto que las hormigas depositanferomona 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 deferomona elevada. Este comportamiento permite además a las hormigas encontrar loscaminos más cortos entre su hormiguero y la fuente del alimento.

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

5 Una sustancia que puede "olerse"

Page 8: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

8 1 INTRODUCCIÓN

En la Figura 1 se ilustra cómo este mecanismo permite a las hormigas encontrar elcamino 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 bifurcacionesposibles.

2. Según transcurre el tiempo y mientras que las hormigas están recorriendo loscaminos 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 lossiguen consiguen encontrar la comida más rápidamente, por lo que comienzansu viaje de retorno antes. Entonces, en el camino más corto habrá un rastro deferomona ligeramente superior y, por lo tanto, las decisiones de las siguienteshormigas 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. Esteproceso 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 coloniaconverja al más corto de todos los caminos posibles.

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

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

Información heurística, que mide la preferencia heurística de moverse desde elnodo r hasta el nodo s, o sea, de recorrer la arista ars. Se nota por ηrs (general-mente 1/drs

6). Las hormigas no modifican esta información durante la ejecucióndel algoritmo.

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

6 drs =distancia entre nodos adyacentes r y s.

Page 9: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

1.2 La meta-heurística ACO 9

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

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

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

1.2. La meta-heurística ACO

Una colonia de hormigas (artificiales) construyen soluciones de forma concurrentey asíncrona para un problema discreto de optimización dado moviendose en el grafo derepresentació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 queexplota los rastros de feromona. Al moverse, las hormigas construyen incrementalmen-te soluciones al problema de optimización. Una vez que la hormiga ha construido unasolución, o mientras la construye la hormiga evalúa su solución y deposita feromonaen los componentes del grafo que ha utilizado. Este rastro dirigirá la búsqueda de lashormigas 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 elcual 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 favoreciendola 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ónde 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-

7 Clase especial de programa que corre en segundo plano en vez de ser controlado directamente por elusuario, cabe decir que funciona sin tener relación con una terminal o consola y, consecuentemente, sininteractuar 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 sonDaemons (Daemons es la palabra correcta que los usuarios de UNIX han relajado a Demon o Demonio).

Page 10: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

10 1 INTRODUCCIÓN

ponentes utilizados por la hormiga que construyo la mejor solución. En la figura 2 semuestra 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 deHormigas

En la literatura se han propuesto diversos algoritmos que siguen la meta-heurísticaACO. Entre los algoritmos de ACO disponibles para problemas de optimización com-binatoria NP-complejos8, se encuentran el Sistema de Hormigas (AS), el Sistema deColonia de Hormigas (ACS), el Sistema de Hormigas Max-Min (MMAS, Max-MinAnt 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ñadescripció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 losrastros 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 apaso de feromona), con la diferencia de que la cantidad de feromona depositada en elAS-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

8 Un problema es NP-Complejo (NP-Hard) si un algoritmo para solucionarlo puede traducirse en unopara resolver otro problema NP (NP-Problem = Nondeterministic Polynomial time Problem). NP-Complejosignifica entonces - al menos tan complejo como cualquier problema NP, - aunque, de hecho, puede ser máscomplejo [12].

Page 11: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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 unosmejores 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 cabocomo 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 cadahormiga de la colonia deposita una cantidad de feromona que es función de la calidadde su solución. Inicialmente, el AS no usaba ninguna acción de mejora de deposiciónde feromona considerando las trayectorias generadas, sin embargo es relativamente fá-cil, por ejemplo, añadir un procedimiento de búsqueda local para refinar las solucionesgeneradas 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 lasiguiente ecuación:

pkrs =

[τrs]α·[ηrs]β∑s∈Nk

r[τrs]α·[ηrs]β

si s ∈ Nk(r)

0 en otro caso(1)

donde Nk(r) es el vecindario alcanzable por la hormiga k cuando se encuentraen 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 visitarlosnuevamente antes de n iteraciones [4], lista que es posteriormente limpiada). αy β sondos parámetros que ponderan la importancia relativa de los rastros de feromona y lainformación heurística, respectivamente. Cada hormiga k almacena la secuencia queha seguido hasta el momento y su memoria Lk, tal como se explicó antes, se utilizapara determinar Nk(r) en cada paso de construcción.

Volviendo a los parámetros α y β, su función es la que sigue: si α = 0, aquellosnodos 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 nodosdistintos 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 unrá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 quelas hormigas siempre construyan las mismas soluciones, normalmente óptimos locales.Por tanto es preciso establecer una adecuada proporción entre la información heurísticay la información de los rastros de feromona.

Como se ha dicho, la deposición de feromona se realiza una vez que todas las

Page 12: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

12 1 INTRODUCCIÓN

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 todoslos 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 esrecorrer de nuevo el camino que ha seguido (el camino esta almacenado en su memorialocal Lk) y deposita una cantidad de feromona ∆τ t

rs en cada conexión por la que haviajado:

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

donde ∆τ trs = f (C (Sk)), es decir, la cantidad de feromona que se deposita de-

pende de la calidad C(Sk) de la solución Sk construida 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 Hormigastradicional, 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 mediantela 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):

pkrs =

[τrs]α·[ηrs]β∑s∈Nk

r[τ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 lainformación heurística y los rastros de feromona. Sin embargo, si (q > q0) se

9 En el caso de planificación, donde se busca la trayectoria más corta, si la trayectoria Sk generada porla 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 inversamenteproporcional la longitud de la trayectoria se tiene una función racional (o de potencia negativa).

Page 13: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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, laregla establece un compromiso entre la exploración de nuevas conexiones y laexplotació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 mejorsolució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 global12 tal comosigue:

τ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 comoen la ecuación (3). Adicionalmente, el demonio puede aplicar un algoritmo debúsqueda local para mejorar las soluciones de las hormigas antes de actualizarlos rastros de feromona.

3. Las hormigas aplican una actualización en línea paso a paso de los rastros deferomona, 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. Comopuede 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 deferomona depositada es muy pequeña13, la aplicación de esta regla hace que losrastros 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 lasconexiones atravesadas por un gran número de hormigas son cada vez menos

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

11 Aunque 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

12 Es importante recalcar que, en el ACS, la evaporación de feromona sólo se aplica a las conexiones de lasolución, que es también la usada para depositar feromona

13 τ0 es el valor del rastro de feromona inicial y se escoge de tal manera que, en la práctica, se correspondacon el límite menor de rastro de feromona, esto es, con la elección de las reglas de actualización de feromonadel SCH ningún rastro de feromona puede caer por debajo de τ0

Page 14: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

14 1 INTRODUCCIÓN

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

Page 15: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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 elcamino en un grafo G desde un nodo inicial nini hasta un final ng (poranchura se utiliza política FIFO y por profundidad LIFO).

b) A*: Obtiene el camino en el grafo G desde un nodo inicial nini hasta unfinal ng utilizando una heurística del tipo "el mejor - primero".

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

2. Métodos basados en campos potenciales: Realiza un búsqueda basada en campospotenciales en donde el objetivo es un potencial atrayente y los obstáculos sonpotenciales repulsivos. El gradiente negado de potencial total se trata como unafuerza 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 aleatoriamenteconfiguraciones libres y usando un planificador local simple para unir dichasconfiguraciones. En la segunda, dadas las configuraciones inicial y final se buscaun camino dentro del mapa a través de las configuraciones obtenidas en la faseuno.

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 naturaldel 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 ACOson: número de ciclo n = 100, número de hormigas m = 100, número máximo de ciclonmax = 1000, α = 1 y β = 1.

Page 16: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

16 2 Métodos tradicionales

Número de nodos Longitud ACO (Pixel) Tiempo ACO (Seg)100 824.053 0.89200 874.141 2.07300 947.935 2.98400 1046.886 4.13500 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 deconfiguraciones 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 paraacelerar 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 delas articulaciones entre el nodo actual y el nodo final. Utilizaron una mini-computadoraParkin-Elmer 3244 para realizar su simulación.

En la tabla 3 se aprecian los resultados obtenidos aplicando un método modificadode 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 paraconsiderarse validos. Así pues, son capaces de explorar un espacio mayor en un menornúmero de iteraciones, aunque cada iteración cuesta más pues se tiene que verificar queel vector sea libre. Resolvieron los problemas de dos dimensiones usando QuickBasicen un i486 a 50 MHz, los de tres dimensiones utilizando FORTRAN en una estaciónde trabajo IBM RS6000 320.

Escenario GDL Tamaño del mapa Paso Peso Tiempo [s]4 obstáculos 2 100× 100 10 1 0.05530 obstáculos 2 100× 100 5 1 0.055

Laberinto 2 100× 100 5 0.5 0.333Pasillo estrecho 3 100× 100× 100 5 0.5 0.370Pasillo 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 planificador14 Lo tradicional es de uno en uno, es decir, paso = 1.

Page 17: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

2.1 Tablas Comparativas 17

para espacios de configuración n-dimensionales utilizando PRM [5]. Su procedimientose 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, endonde los nodos son configuraciones libres de colisiones y las aristas son trayectoriasfactibles entre dichas configuraciones. Esta fase se compone a su vez de dos paso: elpaso 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 conectividaddel 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 conectelas 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 conrendimiento 126 SPECfp92 y 74.3 SPECint9215 con una implementación en C. En latabla 4 se muestran los resultados obtenidos para una prueba que consiste en pasar porocho configuraciones distintas (C1...C8) de un robot con base fija y siete articulacionesde revolución. Se incluyen los tiempos de la fase de aprendizaje (TL), el tiempo delpaso 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 larazón de configuraciones alcanzadas con éxito.

En las tablas 5, 6 y 7 se ilustran los resultados obtenidos para un planificador Dualde Dijkstra que busca caminos con diferentes topologías [7]. Dicho método consta dedos fases; en la primera, para cada nodo del grafo calcula el camino más corto entre losnodos de origen y final que pasan por dicho nodo. En la segunda fase, se seleccionanel camino más corto de cada clase de homotopía16. Su Algoritmo fue implementado enC++ 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 aleatorios, P1, P2 y P3 son los siguientesprocesos:

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.

15 SPEC, del inglés Standard Performance Evaluation Corporation es una organización cuyo objetivo esel 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.

16 Es una transformación continua desde una función a otra. En otras palabras, es un camino en el espaciode mapeo MAP(X,Y) desde la primera función a la segunda [12].

Page 18: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

18 2 Métodos tradicionales

TL

TC

TE

Col

isió

nN

odos

C1

C2

C3

C4

C5

C6

C7

C8

20.1

13.1

7.0

6219

4310

6310

013

.336

.710

.040

.093

.313

.336

.730

.119

.510

.688

9384

1643

100

50.0

46.7

46.7

46.7

90.0

53.3

46.7

40.3

26.3

14.0

1145

091

2233

100

80.0

80.0

80.0

80.0

100.

080

.080

.050

.332

.717

.613

9245

427

8310

090

.096

.790

.096

.710

0.0

90.0

96.7

60.2

39.1

21.1

1631

612

3284

100

90.0

100.

090

.010

0.0

100.

090

.010

0.0

70.3

45.8

24.5

1876

006

3805

100

96.7

100.

096

.710

0.0

100.

096

.710

0.0

80.4

52.2

28.2

2104

209

4272

100

100.

010

0.0

100.

010

0.0

100.

010

0.0

100.

0

Tab. 4: Resumen de los resultados de PRM.

Resolución P1 [seg] P2 [seg] P3 [seg]10 0 0 020 0.016 0 030 0.016 0 040 0.015 0 060 0.047 0 0.031

Tab. 5: Resumen de los resultados de Dijkstra para 2 dimensiones.

Page 19: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

2.1 Tablas Comparativas 19

Resolución P1[seg] P2[seg] P3[seg]10 0.047 0 020 0.422 0.187 0.04730 1.765 0.766 0.34440 4.687 2.219 1.15660 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.06215 22.764 5.625 0.45420 93.657 33.219 2.141

Tab. 7: Resumen de los resultados de Dijkstra para 4 dimensiones.

Page 20: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

20 2 Métodos tradicionales

Page 21: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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 novisitar y cada arco que une estos nodos tiene un coste asociado que le hacen mas omenos 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 nodosrestantes 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 yel peso de cada arco influye también en la heurística pues se considera que ηrs = 1/drs,donde drs es la distancia o peso del arco ars.

Sin embargo, para resolver problemas de planificación de trayectorias (PT) no serealiza 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). Figura4.

Las hormigas deben encontrar el camino más corto partiendo del nido hasta lacomida, circulando por las regiones libres. A diferencia del TSP no se tienen arcos, ylos 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 ycomo se puede observar en la figura 5.

Otra diferencia con TSP es que la feromona τ debe depositarse en las casillas yla heurística de preferencia de movimiento ηrs depende ahora de la distancia entrela 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.18 En realidad son (33 − 1) = 26 posibles direcciones pero, para fines prácticos basta con seis.

Page 22: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

22 3 DESARROLLO

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

Fig. 5: Posibles movimientos de la hormiga en su entorno.

Page 23: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

3.2 Aplicando ACO a Planificación de Trayectorias 23

nodos adyacentes es siempre uno (drs = 1), por consiguiente la nueva heurística depreferencia de movimiento se ha modificado a una función pseudo-aleatoria que damayor peso de movimiento hacia la casilla adyacente cuya distancia euclidiana19 contrael destino sea menor, entonces ηrs queda como:

ηkrs =

MaxDistNk(r),f−Dists,t∑s∈Nk

r(MaxDistNk(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; sinembargo 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áximaMaxDist = 10, la distancia de los seis vecinos al punto final esta dada en formade vector Distsf [6]=[0,0,10,8,0,0]20, entonces ηk

rses:

ηkrs[2] =

10− 10(10− 10) + (10− 8)

= 0

ηkrs[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 ηkrs[3] aunque

existan dos casillas libres.

2. Se tienen 5 vecinos en zona prohibida o han sido visitados, la distancia máximaMaxDist = 10, la distancia de los seis vecinos al punto final esta dada en forma devector Distsf [6]=[0,0,10,0,0,0]21, entonces ηk

rses cero en todos los casos aunqueexista una casilla libre y sin visitar pues MaxDist − Dist = 10 − 10. Unamanera que existe de sortear esta situación es utilizando una adaptación de laecuación (4) que explore en las casillas libres con distancia máxima, ver ecuación10.

ηkrs =

{1 para MaxDistNk(r),f

0 en otro caso(10)

19 Distsf =√

(xf − xs)2 + (yf − ys)2 + (zf − zs)2, con [xf,yf,zf ] = configuración final.20 Hay 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).21 Hay 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).

Page 24: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

24 3 DESARROLLO

Además se añadió una función aleatoria que propone nuevos movimientos distintosde 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; Lainicialización es un proceso local22 que trata de obtener cualquier trayectoria que conec-te al punto de configuración inicial con el punto de configuración final utilizando paraello las heurísticas del Sistema de Colonias de Hormigas. La Optimización es un proce-so global23 que intenta encontrar el camino más corto que une las dos configuracionesa 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ónuno y las prohibidas cero.

3. De manera local, es decir, independientemente del comportamiento de las demáshormigas, se obtienen las trayectorias iniciales para la colonia de hormigas. Segeneran algunas trayectorias factibles desde el punto de configuración inicialhasta 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 igualnúmero de trayectorias que de hormigas aunque algunas (o todas) las trayectoriaspueden no estar conectadas con el punto de configuración final, estas trayectoriasincompletas son descartadas (no reciben carga de feromona). En el caso de queno se consiga ninguna trayectoria completa entonces se informa al usuario y elprograma termina.

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

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

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

23 Es decir, que considera el desempeño de todas las hormigas.

Page 25: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

3.3 Algoritmo ACO adaptado a PT 25

Fig. 6: Diagrama de flujo del algoritmo.

Page 26: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

26 3 DESARROLLO

24 y deposita 25 feromona de todas las trayectorias.

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

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

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

25 La deposición de todas las hormigas es constante y con valor uno. La deposición de la mejor hormiga serealiza de manera incremental, es decir, a cada paso que da recibe mayor carga.

26 El caso ideal sería la longitud que tiene el camino en línea recta desde el punto inicial al final.

Page 27: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

27

4. RESULTADOS

4.1. Introducción

En este apartado se muestra la composición del programa escrito en C++27 paraPlanificación de Trayectorias basado en Optimización mediante Colonias de Hormigas(PT-ACO). En primer lugar se desglosa la estructura del programa para comprender sumanejo a nivel usuario. En segundo lugar se explica el funcionamiento del mismo anivel 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 en3D.

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 componentesnumerados 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 losobjetos tridimensionales

Page 28: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

28 4 RESULTADOS

a) Archivo

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

2) Limpiar: Sirve para borrar del visor los elementos individuales quehan sido agregados o para reinicializar el programa y comenzar conun 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ónfinal.

c) Reportes

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

2) Trayectoria: Muestra la trayectoria completa.

d) Aestrella

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

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

e) Ayuda

1) Ayuda: Muestra la documentación HTML del programa de PT-ACOgenerada 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 constade un número n de capas que dan la profundidad Z

29 Dragger en inglés, es un elemento de Coin3D30 Valores separados por comas.31 Doxigen [16] es un siestema de documentación para c++, java... que ayuda a generar documenetación

en-línea en HTML y fuera de línea en LATEX.

Page 29: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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 arrastradorse acepta éste32 y 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 alfinal, si es que existe.

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

6. Visor de Reportes: En este recuadro se muestra el reporte generado despues deque 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 lapantalla.

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

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

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.32 El usuario debe ser cuidadoso de no salirse o tocar la envolvente del mapa pues origina errorres.

Page 30: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

30 4 RESULTADOS

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 seleccionarun punto en el espacio de tres dimensiones.

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

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 funcionase 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 tablade 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 configuración final mediante los arrastradores.Es importante recalcar que es responsabilidad del usuario introducir los datoscorrectamente 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 cargael mapa de configuraciones con un valor de feromona igual a uno para todo elespacio libre y cero en el prohibido, es decir, mapa[X][Y][Z] es cero si el espacioes prohibido y uno si el espacio es libre. Desde la ventana principal se carganlos datos que tenga la el deslizador de selección de pertenencia a la heurísticapara obtener el valor del parámetro q0 (sección 1.3.2). A continuación se verificael estado de los seis vecinos mencionados en la sección 3.2 y se aplican lasheuristicas descritas en las ecuaciones (4) y (5); es decir, se debe obtener primero

33 Actualmente acotada a 100× 100× 100 como máximo.

Page 31: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

4.3 Ejecución del Programa 31

el rastro de feromona τrs así como la preferencia de movimiento ηrs en basea la nueva heuristica de distancia (ecuaciónes 9, 10 y 11) - para cada vecinodisponible.En cada iteración la información sobre la nueva posición y pesos adyacentesse almacena en una lista circular y la hormiga actualiza el rastro de feromonalocalmente. Finalmente, si ha conseguido la trayectoria se actualiza el rastro deferomona global. El resultado de este proceso se ilustra gráficamente en la figura10, en donde se ha representado mediante una esfera cada una de las posicionescontenidas en la lista circular.El proceso de iteración descrito anteriormente esta contenido en un ciclo FORque 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 latrayectoria 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ónporque se estanca en un mínimo local.

Page 32: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

32 4 RESULTADOS

Fig. 11: Trayectoria generada en el primer intento.

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

4.4. Tiempos

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

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 querealizan los calculos de tiempo mediante el valor del contador de desempeño de alta resolución. Esté últimocuenta en algunos procesadores, por ejemplo, la frecuencia de reloj del ordenador.

Page 33: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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 lerefiere 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. elnodo con el coste mínimo se remueve de la lista OPEN y se coloca en la listaCLOSED. 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 llegaral 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 generaun puntero desde cada sucesor hacia el nodo n indicando la dirección de retornohacia 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 sedetermina sumando el costo de moverse del nodo n al n’ y el costo g(n)

Page 34: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

34 4 RESULTADOS

(previamente calculado). También se realiza una estimación del costo demoverse desde el sucesor hasta el nodo final que se denomina h(n’). Estees 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 sehace 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 siestuviese 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 untiempo razonablemente bajo (a continuación se verá la comparación de tiempos contraACO) que depende básicamente del tamaño de la gradilla a explorar. Su desventaja esel consumo alto de memoria, por ejemplo, para el caso de dos dimensiones, si se tieneun mapa de 100x100, ACO necesita una matriz de 100x100 para depositar feromonay una lista de 10000 elementos para almacenar la trayectoria36. En cambio, A* utilizauna 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 lasmismas dimensiones.

En este programa en particular se utilizó el método Manhatan37 para calcular loscostos H de la heurística, se realizó una búsqueda cuatro-conectada 38 y se buscó enuna gradilla tridimensional. En las figuras 13 a la figura 17 se muestran las trayectoriasobtenidas 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étodosACO y A*, observe que en promedio el método A* es un 742.13 % más lento queACO. De la tabla 8 se aprecia que el tamaño del mapa afecta a la trayectoria inicial ycasi nada al tiempo de optimización, la cual depende en mayor medida de la longitudde la trayectoria encontrada, pues una vez encontrado dicha trayectoria se optimizasobre si misma. Solo en este programa se realiza la optimización en una iteración sobre

36 10000 es muy grande y correspondería al peor de los casos en donde se tuviera que explorar toda lagradilla, en la práctica se ha acotado a 2000 cuando mucho.

37 A diferencia de ACO en donde se utilizó distancia euclidiana para la heurística. Sin embargo, comoeste proyecto esta sirviendo también como banco de pruebas y con la intención de darle mayor rapidez alalgoritmo A* al no realizar cálculos de coma flotante se propuso la utilización del método Mamhatan (ver[15]).

38 Para que se correspondiera con la utilizada en ACO.

Page 35: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

4.4 Tiempos 35

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

Fig. 14: Trayectorias obtenidas utilizando ACO y A* para un mapa de 40× 40× 40.

Page 36: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

36 4 RESULTADOS

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

Fig. 16: Trayectorias obtenidas utilizando ACO y A* para un mapa de 60× 60× 60.

Page 37: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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 laoptimizació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 multiplicala más sencilla (30x30x30) para 100 iteraciones daría 2.34 E-3 x 100 = 234 ms paraencontrar el óptimo, este tiempo aproximado tendría que sumarse al que tome encontrarla 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 puedeesperar un tiempo mayor a 26,7+(100×2,34) = 260, 7 [ms] para obtener la trayectoriaoptimizada. En la misma tabla 8 se se tiene que este tiempo aproximado sigue siendomenor que el obtenido con A*, así que aunque en este trabajo no se hizó, sería muyimportatnte optimizar mínimo en 100 iteraciones.

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

Page 38: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

38 4 RESULTADOS

tiem

po[m

s]A

CO

inic

ializ

ació

nA

CO

optim

izac

ión

AC

OTo

tal

Aes

trel

laA∗

AC

100

30×

30×

3026

.72.

3429

.04

169.

7558

4.54

40×

40×

4020

.71.

1921

.89

151.

7869

3.38

50×

50×

5020

.32.

1122

.41

126.

1556

2.92

60×

60×

6049

.82.

5552

.35

746.

2714

25.5

470×

70×

7011

7.0

3.37

120.

3753

4.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.1640× 40× 40 113 101 95 94.0650× 50× 50 306 174 106 60.9260× 60× 60 314 180 132 73.3370× 70× 70 726 278 146 52.52

Tab. 9: Comparación de longitudes entre ACO y A*.

Page 39: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

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ó unprograma escrito en C++ capaz de encontrar trayectorias que unan las configuracionesinicial 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 encuanto a las longitudes de las trayectorias obtenidas, que siempre fueron mayores alas de A* por las razones que ya se mencionaron. El programa es capaz de encontrartrayectorias en mapas con obstáculos que no están unidos y hasta en pasajes estrechospero 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 busquedade 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 sucamino un obstaculo que no estaba presente, esto supone: (a) para A* volver a planificarla trayectoria por completo, (b) para ACO buscar y optimizar sobre la región que hasufrido cambios.

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

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

Page 40: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

40 5 Conclusiones

Page 41: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

Referencias 41

Referencias

[1] Sergio Alonso, et. al., La Metaheurística de Optimización Basada en Colonias deHormigas. <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 internationalConference 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 ofcooperating agents, Systems, Man and Cybernetics, Part B, IEEE Transactionson, 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 amanipulator, Proceedings of the 1984 IEEE International Conference on Roboticsand 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 onRobotics 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 the1993 IEEE International Conference on Robotics and Automation. 2-5 May 1993Page(s) 662-667 vol. 2.

[9] Ying-Tung Hsiao, et.al.; Ant colony optimization for best path planning, ISCIT2004, 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, Advancesin 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<\\iocsi\ioc\DOCENCIA\DOCTORAT\JanRosell\

Page 42: Planificación de Trayectorias Basada en Optimización ...aibo.tol.itesm.mx/cvazquez/commondoct/tutelados/ACO_Path_Planning… · mino más corto aumente progresivamente y que al

42 Referencias

PlanificacioMovimentsRobotica.htm>, Curso de Doctorado enAAR del IOC, 2004.

[12] Eric W. Weisstein;MathWorld,<http://mathworld.wolfram.com>, WebMathematical 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.