Una propuesta evolutiva para el desarrollo de comportamientos
Transcripción
Una propuesta evolutiva para el desarrollo de comportamientos
Una propuesta evolutiva para el desarrollo de comportamientos robóticos TESIS Que para obtener el grado de MAESTRO EN INTELIGENCIA ARTIFICIAL Presenta: Víctor Ricardo Cruz Álvarez Director: Dr. Fernando Martín Montes González Co-director: Dr. Efrén Mezura Montes UNIVERSIDAD VERACRUZANA Noviembre 2012 Documento maquetado con TEXiS v.1.0+. Este documento está preparado para ser imprimido a doble cara. Una propuesta evolutiva para el desarrollo de comportamientos robóticos Tesis para obtener el grado de Maestría Facultad de Física e Inteligencia Artificial Versión 1.0 UNIVERSIDAD VERACRUZANA Noviembre 2012 Para Rosita, mi hermana y para Angelita, mi abuela Agradecimientos Es imposible mencionar todos los nombres de las personas a las que les estoy infinitamente agradecido por su apoyo, pero también es imposible dejar de mencionar a algunos de ellos. A mis padres, Rosalba y Hugo, porque en las buenas y en las malas siempre me han brindado su confianza, entrega , paciencia, consejos y amor. Porque ustedes me han apoyado para culminar cada proyecto en mi vida, mi infinito agradecimiento y amor. A Dios, por llenar mi vida de bendiciones, retos, aprendizajes y por poner en mi camino este proyecto. A mis 4 compañeros y amigos de la generación MIA 2010-2012: Enrique, Carlos, Edgar e Iluicatl, por permitirme compartir con ellos tantas alegrías, desvelos, retos entre otras tantas experiencias de vida. A mis amistades de otras generaciones de la MIA, en especial a Carlos, Rodrigo y Rubén por sus consejos, apoyo y amistad. A mis directores de tesis, los Dres. Fernando y Efrén, por darme la oportunidad de trabajar con ellos, por brindarme su apoyo, paciencia, tiempo, amistad y confianza. Ellos han sido un gran ejemplo de vida en los ámbitos académicos, personal y profesional. A mi jurado revisor de tesis, los Dres. Homero y Luis Felipe, por el tiempo que dedicaron en apoyarme en cumplir con mi meta, aparte de brindarme su amistad e innumerables consejos. A todos mis profesores de la MIA por las enseñanzas, paciencia y lecciones de vida; en especial a los Dres. Nicandro y Guillermo, por brindarme además su amistad. vii viii Agradecimientos Al personal administrativo del DIA que siempre tuvo una excelente disponibilidad y trato maravilloso. Al Dr. José Santos, quien fue mi tutor en la estancia de investigación que realicé en la Universidad de La Coruña, en especial por su paciencia y enseñanzas. Así como mis compañeros de laboratorio: Martín, Ángel, Eduardo y Javier, que me apoyaron en todo momento, sin ellos hubiera sido imposible realizar mi estancia. A Eloisa, por ser mi amiga, confidente y amante. Porque en todo momento siempre conté con su apoyo incondicional, consejos y comprensión. A todos mis amigos que me apoyaron durante este proyecto, en especial a Luis, Claude, Roberto, Tomás e Israel, por alentarme a tomar la decisión de estudiar la Maestría. Al Consejo Nacional de Ciencia y Tecnología por otorgarme la beca de posgrado número de becario/beca 376980/290604 que me permitió estudiar la Maestría en Inteligencia Artificial en la Universidad Veracruzana. Por otorgarme también la beca mixta número 290618 que me permitió desarrollar la estancia de investigación en la Universidad de La Coruña, España. Índice Agradecimientos 1. Motivo de la Investigación 1.1. Introducción . . . . . . . . . . . 1.1.1. Aproximación basada en 1.1.2. Aproximación basada en 1.2. Objetivo general . . . . . . . . 1.3. Objetivos específicos . . . . . . 1.4. Alcances y limitaciones . . . . . 1.5. Justificación . . . . . . . . . . . 1.6. Planteamiento del problema . . 1.7. Hipótesis . . . . . . . . . . . . vii . . . . . . . . . . conocimiento . . comportamientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Robótica Evolutiva 2.1. Historia de la Robótica Evolutiva . . . . . . . . 2.2. Redes Neuronales Artificiales . . . . . . . . . . 2.3. Evolución de controladores de comportamiento 2.4. Representación de las estructuras a evolucionar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 4 8 8 8 9 9 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 13 16 17 . . . . . . . . . . . . . . . binaria real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 22 23 25 26 26 27 27 29 29 29 3. Algoritmos Bioinspirados 3.1. Historia de los algoritmos bioinspirados . . . . . . . . 3.2. Paisaje de calidad . . . . . . . . . . . . . . . . . . . . 3.3. Algoritmo Genético . . . . . . . . . . . . . . . . . . . 3.3.1. Inicialización de individuos con representación 3.3.2. Inicialización de individuos con representación 3.3.3. Selección de padres . . . . . . . . . . . . . . . 3.3.4. Cruza con representación binaria . . . . . . . 3.3.5. Cruza con representación real . . . . . . . . . 3.3.6. Mutación con representación binaria . . . . . 3.3.7. Mutación con representación real . . . . . . . 3.3.8. Reemplazo . . . . . . . . . . . . . . . . . . . ix x Índice 3.4. Evolución Diferencial . . . . . . . . . . . . . . . . . . . . . . . 3.5. Optimización mediante cúmulos de partículas (PSO) . . . . . 30 34 4. Diseño del Experimento 4.1. Plataforma Robótica e-puck . . . . . . . . . . . . . . . . . . . 4.2. Simulador Player-Stage . . . . . . . . . . . . . . . . . . . . . . 4.2.1. Filosofía de programación Player-Stage . . . . . . . . . 4.3. Archivos de configuración Player-Stage . . . . . . . . . . . . . 4.4. Simulación de robot e-puck en Player-Stage . . . . . . . . . . 4.5. Comportamientos a evolucionar . . . . . . . . . . . . . . . . . 4.5.1. Comportamiento de seguir paredes . . . . . . . . . . . 4.5.2. Comportamiento de evadir obstáculos . . . . . . . . . 4.6. Adaptación del comportamiento a una Red Neuronal Artificial 4.7. Afinación de pesos de la RNA mediante Algoritmos Bioinspirados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8. Elaboración de pruebas estadísticas . . . . . . . . . . . . . . . 39 39 43 45 46 48 49 50 50 51 52 54 5. Discusión de resultados 55 5.1. Evolución del comportamiento seguidor de paredes . . . . . . 55 5.2. Evolución del comportamiento evadir obstáculos . . . . . . . . 62 6. Conclusiones y trabajo a futuro 69 6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.2. Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . 70 I Apéndices 73 A. Artículos publicados 75 A.1. The Coevolution of Behavior and Motivated Action Selection 75 A.2. Robotic Behavior Implementation Using Two Different Differential Evolution Variants . . . . . . . . . . . . . . . . . . . . 92 Referencias 105 Índice de figuras 1.1. Modelo basado en aproximación tradicional en robótica. . . . 3 1.2. Modelo basado en arquitectura de subsunción. . . . . . . . . . 5 1.3. La RE produce de forma automática los comportamientos y la interacción entre éstos, quitando ó por lo menos disminuyendo la tarea al diseñador de cómo generar los comportamientos. . 7 1.4. Proceso de evolución del neurocontrolador. . . . . . . . . . . . 9 2.1. Neurona natural. . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2. Neurona artificial. . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3. Ejemplo de representación genotípica del neurocontrolador. . 17 3.1. Diagrama de flujo del proceso de evolución artificial. . . . . . 20 3.2. Representación artificial de una colonia de hormigas. . . . . . 21 3.3. Paisaje de calidad para un problema de 2 dimensiones. El eje z representa el resultado de la función de calidad, mientras que los ejes x y y representan los valores de las variables utilizadas por la función de calidad. . . . . . . . . . . . . . . . . . . . . 22 3.4. Ejemplo de representación genotípica y su equivalente en representación fenotípica (asumiendo un problema de optimización con variables enteras). . . . . . . . . . . . . . . . . . . . 24 3.5. Ejemplo de selección por ruleta. . . . . . . . . . . . . . . . . . 27 3.6. Funcionamiento del operador de cruza de un punto para representación binaria. . . . . . . . . . . . . . . . . . . . . . . . 28 3.7. Funcionamiento del operador de mutación uniforme para representación binaria. . . . . . . . . . . . . . . . . . . . . . . . 29 3.8. Inicialización de la población de la DE. . . . . . . . . . . . . . 30 3.9. Selección de vectores. . . . . . . . . . . . . . . . . . . . . . . . 32 3.10. Mutación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.11. Un cúmulo de cinco partículas en búsqueda del mínimo global en un espacio de búsqueda con una variable x. . . . . . . . . . 35 xi xii Índice de figuras 3.12. La actualización de una partícula (círculo negro) está dada por la suma de las tres direcciones: su anterior dirección (círculo negro transparente), su mejor posición (círculo gris) y la mejor posición del vecino (círculo gris con borde negro). Cada dirección es pesada separadamente por las constantes a, b y c. Por lo que cierta aleatoriedad (líneas punteadas) es adherida a estas tres posiciones. . . . . . . . . . . . . . . . . . . . . . . 36 3.13. Diferentes topologías usadas en PSO. . . . . . . . . . . . . . . 38 4.1. Robot e-puck. . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2. Robot e-puck con torreta, la cual contiene tres cámaras lineales, utilizadas para calcular flujo óptico y poder simular la señal utilizada por los insectos para determinar la distancia a un objeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3. Partes físicas del robot e-puck. . . . . . . . . . . . . . . . . . 42 4.4. Distribución de sensores infrarrojos en el e-puck. . . . . . . . 43 4.5. Simulación en Player-Stage de un robot Pioneer con un laser Sicklms200. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.6. Diagrama de las clases PlayerClient, Position2dProxy, RangerProxy, SimulationProxy. . . . . . . . . . . . . . . . . . . . 47 4.7. a) El robot físico colocado en una arena delimitada por cuatro paredes. b) El escenario virtual en Player-Stage, con un robot e-puck (círculo rojo) con ocho sensores de proximidad (en verde) dentro de una arena delimitada por cuatro paredes. 49 4.8. Topología de la RNA empleada en los experimentos (no todas las conexiones están representadas). . . . . . . . . . . . . . . . 52 5.1. Gráfica de convergencia en la que se muestra la media de las 5 ejecuciones de cada AB utilizados para evolucionar el comportamiento de seguir paredes. Donde se puede observar que la mejor calidad la obtuvo la ED con 230.918, seguido del AG con representación real con 203.432, PSO con 201.966 y el AB con representación binaria con 169.77. . . . . . . . . . . 57 5.2. Simulación del mejor individuo encontrado por la ED. En la cual se puede observar que el robot simulado comienza a buscar la pared casi en línea recta hasta encontrar la pared, una vez que localiza la pared, empieza a seguirla evitando chocar en la pared. Mostrando el comportamiento de seguir paredes. 58 5.3. Comportamiento del mejor individuo encontrado por la ED en el robot e-puck físico. El robot inicia buscando una pared, cuando la pared es encontrada, el e-puck comienza a seguir la pared sin chocar. . . . . . . . . . . . . . . . . . . . . . . . . . 58 Índice de figuras xiii 5.4. Gráfica de convergencia de la mejor evolución del AG con representación binaria para el comportamiento de seguir paredes. El mejor individuo obtuvo una calidad de 202.775, se puede observar que la calidad media de la población está alejada del mejor individuo. . . . . . . . . . . . . . . . . . . . . . 59 5.5. Gráfica de convergencia de la mejor evolución del AG con representación real para el comportamiento de seguir paredes. El mejor individuo obtuvo una calidad de 242.439 y la media de la población es de 185.376. . . . . . . . . . . . . . . . . . . 60 5.6. Gráfica de convergencia de la mejor evolución de la ED para el comportamiento de seguir paredes. El mejor individuo obtuvo una calidad de 246.266 y la media de la población es de 210.770. La calidad media de la población es muy cercana a la calidad del mejor individuo. . . . . . . . . . . . . . . . . . . 61 5.7. Gráfica de convergencia de la mejor evolución del PSO para el comportamiento de seguir paredes. El mejor individuo obtuvo una calidad de 215.697 y la media de la población es de 66.389. 61 5.8. Gráfica de convergencia en la que se muestra la media de las 5 ejecuciones de cada AB utilizados para evolucionar el comportamiento de evadir obstáculos. Donde se puede observar que la mejor calidad la obtuvo la ED con 313.59, seguido del AG con representación real con 304.76, el AG con representación binaria con 292.42 y el PSO con 288.98. . . . . . . . . . . . . 64 5.9. Simulación del mejor individuo encontrado por la ED. En la cual se puede observar que el robot simulado avanza en línea recta, cuando se encuentra con una pared gira para evadirla y continúa con su recorrido en línea recta. Mostrando el comportamiento de evadir obstáculos. . . . . . . . . . . . . . 64 5.10. Gráfica de convergencia de la mejor evolución del AG con representación binaria para el comportamiento de evadir obstáculos. El mejor individuo obtuvo una calidad de 308.687, se puede observar que la calidad media de la población está alejada del mejor individuo. . . . . . . . . . . . . . . . . . . . 66 5.11. Gráfica de convergencia de la mejor evolución del AG con representación real para el comportamiento de evadir obstáculos. El mejor individuo obtuvo una calidad de 312.185 y la media de la población es de 204.276. . . . . . . . . . . . . . . 66 5.12. Gráfica de convergencia de la mejor evolución de la ED para el comportamiento de evadir obstáculos. El mejor individuo obtuvo una calidad de 315.481 y la media de la población es de 312.835. La media de la población es casi igual a la calidad del mejor individuo. . . . . . . . . . . . . . . . . . . . . . . . 67 xiv Índice de figuras 5.13. Gráfica de convergencia de la mejor evolución del PSO para el comportamiento de evadir obstáculos. El mejor individuo obtuvo una calidad de 299 y la media de la población es de 254.144. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Índice de Tablas 4.1. Parámetros de algoritmos bioinspirados . . . . . . . . . . . . 5.1. Resultados de los ABs en las 5 evoluciones para desarrollar el comportamiento de seguir paredes . . . . . . . . . . . . . . . 5.2. Estadísticas de ABs para el comportamiento de seguir paredes 5.3. Resultados de la prueba estadística Wilcoxon para el comportamiento de seguir paredes . . . . . . . . . . . . . . . . . . . . 5.4. Resultados de los ABs en las 5 evoluciones para desarrollar el comportamiento de evadir obstáculos . . . . . . . . . . . . . . 5.5. Estadísticas de ABs para el comportamiento de evadir obstáculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6. Resultados de la prueba estadística Wilcoxon para el comportamiento de evadir obstáculos . . . . . . . . . . . . . . . . . . 53 55 56 62 62 63 68 xv Capítulo 1 Motivo de la Investigación Resumen: En este Capítulo se comenta acerca del surgimiento de la robótica, las primeras posturas para resolver los problemas en torno a la robótica así como los trabajos más destacados, que servirá de introducción para establecer la problemática que se quiere resolver con este trabajo, así como la propuesta para resolverla. Por último, se establece el objetivo general, objetivos específicos, alcances y delimitaciones, justificación, planteamiento del problema y la hipótesis con respecto a este trabajo. 1.1. Introducción La cibernética es una ciencia que versa fundamentalmente en la teoría de control, ciencias de la información y la biología; a Nobert Winer se le acredita el desarrollo de ésta ciencia (Wiener, 1948), quién explora la posibilidad de aplicar los principios de control y comunicación en máquinas y animales. Ashby y Weiner llevaron más allá su concepción de un organismo como una máquina que hacía uso de sistemas de control para expresar el comportamiento natural (Ashby, 1960). Continuando con esta tendencia en 1953 W. Grey Walter diseñó la Machina Speculatrix (Walter, 1953), la cual implementada en hardware se le conoce como la tortuga de Walter, la cual tenía diversos comportamientos: buscar luz, detección de luz tenue, girar, empujar y recargar batería. La Inteligencia Artificial (IA) nace como un campo de estudio a raíz del surgimiento de la cibernética con las siguientes vertientes: lenguaje, redes neuronales, teoría de la complejidad, abstracciones y creatividad. Marvin Minsky (Minsky, 2006) argumentó que “la máquina inteligente podría construir dentro de sí misma, un modelo abstracto del entorno y entonces intentar experimentos externos” 1 2 Capítulo 1. Motivo de la Investigación debido a la naturaleza del concepto que propuso Minsky, se dió origen a la investigación en robótica. La robótica autónoma se considera un sub-campo de la IA, la cual considera que un robot es autónomo cuando es capaz de reaccionar ante situaciones no consideradas en la programación de su control sin ninguna supervisión exterior. Aunque su control venga definido por un programa, el robot debe realizar en todo momento los movimientos necesarios para “sobrevivir” en su entorno y cumplir con las tareas encomendadas, sin que su programa de control defina necesariamente de modo explícito todas las posibles acciones que debería realizar ante todas las posibles situaciones que se pueden presentar en su medio ambiente. En este sentido, el robot autónomo no debe ser totalmente programado. Históricamente, el comienzo del desarrollo de la investigación en robótica consideró mayormente ambientes estructurados, un entorno estructurado se puede definir de modo inequívoco, es decir, la definición precisa de objetos y su posición, estructura, color, etc; así como el cambio que pueden recibir estos objetos en el paso del tiempo. Sin embargo, si se desea que el robot opere en un entorno no estructurado, dinámico y no conocido totalmente por el diseñador, el robot no puede estar programado para todos los posibles escenarios. El robot debe poseer algún tipo de arquitectura cognitiva que le permita establecer relaciones entre sus entradas sensoriales (los sensores) y sus acciones sobre el mundo (los actuadores), permitiéndole generar de modo autónomo un mapeo de sensores-actuadores, de modo que pueda sobrevivir y alcanzar sus objetivos, al mismo tiempo, realizar cada vez mejor su tarea, por ejemplo, aprendiendo de sus errores. Como consecuencia de esto, el robot tendrá la capacidad de adaptarse a los cambios que ocurren en el entorno (Santos y Duro, 2005). Para atacar el problema de diseño de robots autónomos, la IA propuso estas aproximaciones: la tradicional, llamada aproximación basada en el conocimiento, que proviene de la relación íntima con la IA simbólica, y la aproximación basada en comportamientos, que toma inspiración en la naturaleza y rompe con los esquemas tradicionales. 1.1.1. Aproximación basada en conocimiento Como un primer intento de alcanzar la autonomía en los robots, los investigadores utilizaron la inteligencia artificial simbólica tradicional, que tenía como principal premisa que la inteligencia es intrínsecamente un fenómeno computacional que puede ser estudiada y llevada a la práctica en distintos sistemas. Las arquitecturas que siguen esta aproximación parten de una descomposición de los procesos que el robot debe realizar en tareas independientes que posteriormente se unirán. Por ejemplo, las tareas de: procesar e inter- 1.1. Introducción 3 Figura 1.1: Modelo basado en aproximación tradicional en robótica. pretar la lectura de los sensores, modelado del entorno en el que el robot opera, planificación de las acciones a realizar por el robot y por último la ejecución de dichas acciones, en la figura 1.1 se muestra el modelo descrito anteriormente. Un ejemplo popular que ilustra esta aproximación es Shakey (Russell y Norvig, 2010), un robot desarrollado en el Instituto de Investigación de Stanford en 1969, el cual se movía en una oficina con objetos de formas y colores predeterminados para su reconocimiento por el sistema visual de Shakey. El robot constaba de dos equipos de cómputo, uno interno y uno externo, el primero se encargaba de la ejecución de secuencias de control sobre los motores, el segundo se hacía cargo del resto de las etapas del modelo (procesamiento de imágenes y planificación de acciones). La planificación se basaba en un sistema de resolución de problemas llamado STRIPS (STanford Research Institute Problem Solver, en inglés) sobre un modelo de entorno simbólico (utilizando lógica de predicados de primer orden) para tareas como mover objetos o desplazarse (Fikes y Nilsson, 1971).Cabe mencionar el comentario que realizó Nils Nilsson en su libro Principios de Inteligencia Artificial acerca de los primeros estudios en robótica: “La investigación sobre robots o robótica ha ayudado al desarrollo de muchas ideas de IA. Ha conducido a varias técnicas para modelar estados del mundo y para describir los procesos de cambio de uno de estos estados a otro. Ha conducido también a una mejor comprensión de cómo generar planes para secuencias de acciones y cómo dirigir la ejecución de estos planes. Los problemas complejos de control de robots nos han forzado a desarrollar métodos de planificación con altos niveles de abstracción, ignorando detalles, para después planificar a niveles cada vez más bajos, en los que los detalles se van haciendo importantes” (Nilsson, 1982) En la aproximación clásica el diseñador define, mediante entidades simbólicas, un modelo del mundo, para poder realizar una planificación de mo- 4 Capítulo 1. Motivo de la Investigación vimientos para realizar una determinada tarea. Todo ello lleva a un gran problema: la formalización del mundo, la cual es extremadamente difícil, ya que el mundo se encuentra en constante cambio, este cambio es muy difícil de modelar para el diseñador. Otras desventajas que tiene esta aproximación al momento de diseñar una arquitectura cognitiva son las mencionadas por (Harvey, 1997), las cuales son: La descomposición del sistema de control de un robot en subpartes no siempre es evidente. Las interacciones entre los módulos son más complejas que unos simples enlaces entre ellos, dado que muchas de ellas las determina el propio entorno. A medida que la complejidad del sistema crece, las interacciones entre los módulos crecen de modo exponencial. Al enfrentarse a estas debilidades de la aproximación tradicional, la comunidad de investigadores en robótica comenzó a dedicar mayores esfuerzos al desarrollo de arquitecturas cognitivas integradas, en las que diversos módulos se desarrollan e interactúan de forma simultánea y coordinada, dando pie a la creación de la aproximación basada en comportamientos. 1.1.2. Aproximación basada en comportamientos A principios de los años 90s surgieron posturas importantes, por ejemplo, la de (Brooks, 1986a, 1987, 1990, 1991a,b) con la arquitectura de subsunción, en la que casi siempre el comportamiento se implementa como reglas del tipo: si (situación) entonces (acción); donde la situación se toma directamente de la percepción (sensores), sin ningún tipo de transformación a representación simbólica. La selección del comportamiento se basa en la jerarquía de subsunción. En esta idea los comportamientos están ordenados por capas, tal como se muestran en la figura 1.2, donde los comportamientos de las capas más bajas (máxima prioridad) inhiben a los de las capas superiores (comportamiento más abstracto). Partiendo de esta postura, (Brooks, 1991b; Arkin, 1998) mencionan los siguientes aspectos que se deben tomar en cuenta para diseñar sistemas robóticos robustos: El robot se encuentra en el mundo real y no requiere operar con representaciones abstractas del mundo, al contrario, debe operar con el mundo mismo. El robot presenta características físicas, las cuales se deben considerar en las acciones que el robot realiza en el mundo. La inteligencia del robot debe surgir a raíz de la interacción con el mundo. 1.1. Introducción 5 Figura 1.2: Modelo basado en arquitectura de subsunción. Toda la información que el robot recibe debe ser información directa del ambiente y no a través de símbolos. El robot se encuentra en un ambiente dinámico, con cambios continuos en el espacio y el tiempo, a esta propiedad Arkin le denomina dinámica ecológica. El sistema robótico debe ser escalable. Otra postura importante es la de (Maes, 1991), la cual considera que la aproximación basada en comportamientos no sólo es aplicable en la robótica, sino también en aquellos casos en los que se requiera que un sistema realice varias tareas en un entorno impredecible y dinámico. También es importante recalcar la aportación de (Mataric, 1992), con los trabajos de control en una colectividad de agentes o robots que utilizan la arquitectura de subsunción propuesta por Brooks (Brooks, 1986b). (Sharkey, 1997) denota que este conjunto de trabajos marcaron una nueva tendencia en la robótica, una tendencia que toma inspiración de fenómenos naturales y realiza énfasis en comportamiento y reacción rápida, sin tomar en cuenta el conocimiento y la planificación, Sharkey define esta postura como una tendencia a la simplicidad, adaptabilidad y como actitud de lo que la naturaleza conoce mejor. Hasta el momento se han mencionado aportaciones que dieron pie a la aproximación basada en comportamientos. Sin embargo, no se ha mencionado el concepto de comportamiento aplicado al dominio de la robótica, en el cual un comportamiento se puede definir como: estructuras de control construidas sobre una base de procesado cualquiera (redes neuronales, programas tradicionales, sistemas difusos, etc.). Tal que en un entorno y robot determinado producen una actuación del robot etiquetada como comportamiento (Santos y Duro, 2005). 6 Capítulo 1. Motivo de la Investigación El problema central de la aproximación basada en el comportamiento es generar mecanismos que relacionen correctamente sensores y actuadores, que lleven a un nivel de coordinación capaz de generar un comportamiento autónomo en el entorno real. De acuerdo con (Kodjabachian y Meyer, 1995), mencionan que la naturaleza ya ha inventado y utilizado tres procedimientos de diseño automático: evolución, desarrollo y aprendizaje, los dos primeros permiten la creación del organismo y su organización interna, mientras que el tercero se utiliza para el propósito de una adaptación a un corto plazo en el entorno. Desde hace más de 50 años, investigadores optaron por diseñar algoritmos basados en la evolución natural (Rechenberg, 1973; Fogel et al., 1966; Holland, 1992) para generar soluciones en problemas a los cuales los métodos analíticos tradicionales no pudieran resolver de una forma natural. Aunque la evolución artificial se basa en la evolución natural, es importante mencionar la diferencia entre estos dos procesos; la evolución natural no tiene un objetivo predefinido y es esencialmente un proceso de adaptación constante mientras que la evolución artificial es un proceso de optimización que pretende encontrar soluciones a un problema definido. En la evolución natural la calidad de un individuo es definida por su capacidad de adaptación al ambiente, en la evolución artificial la calidad de un individuo está definida por una función que mide el desempeño de un individuo al momento de resolver un problema establecido. Partiendo de esto, muchos investigadores contemplaron la alternativa de la evolución artificial y desarrollaron diferentes mecanismos de evolución así como estrategias para obtener controladores de robots con el objetivo de su operación autónoma en entornos estructurados y no estructurados. A principios de los 90 los trabajos de (Cliff et al., 1993; Harvey et al., 1993; Husbands et al., 1994; Beer y Gallagher, 1992) proponen la evolución artificial como un medio para automatizar el proceso de diseño de este tipo de mecanismos. Se define como sistema evolutivo a todo aquel sistema derivado de un proceso de evolución, caracterizados por su robustez y adaptabilidad. (Cliff et al., 1993) mencionan que con esta nueva aproximación en vez de decidir cómo van a ser generados los comportamientos adaptativos, ahora se debe decidir qué comportamientos van a ser generados. A esta nueva aproximación se define cómo Robótica Evolutiva (RE), ver figura 1.3. La RE es un área de la robótica autónoma, la cual se basa en el uso de algoritmos bioinspirados (AB), como lo son las redes neuronales artificiales (RNA), algoritmos evolutivos (AE) y de inteligencia colectiva (IC), para el desarrollo de comportamientos robóticos. La idea básica de la RE se centra en crear aleatoriamente una población de diversos individuos, en los cuales se encuentran codificados posibles configuraciones para el controlador de un robot, en ocasiones también codifican la configuración morfológica (propiedades físicas). Cada individuo es carga- 1.1. Introducción 7 Figura 1.3: La RE produce de forma automática los comportamientos y la interacción entre éstos, quitando ó por lo menos disminuyendo la tarea al diseñador de cómo generar los comportamientos. do en un robot y puesto a prueba en un ambiente (simulado o físico), en el cual el robot es libre de actuar (moverse, sensar, manipular objetos, etc.), generando un comportamiento basado en la codificación especificada por el individuo. El desempeño del robot es constantemente evaluado al tratar de realizar una o varias tareas. En muchos casos, el sistema de control de los robots es una o varias RNAs, razón por lo que se le conoce como neurocontrolador. Los mejores individuos de esta población son propensos a reproducirse (sexual o asexualmente), generando copias de su configuración en conjunto con cambios producidos por algún operador (cruza, mutación, clonación). A este proceso se le conoce como evolución y es repetido un cierto número de generaciones hasta que un individuo que nace satisface, en la medida de lo posible, cierta tarea. Para realizar el proceso de evolución del neurocontrolador, la técnica más utilizada es el Algoritmo Genético (AG) propuesta por (Holland, 1992), la cual opera en una población de cromosomas artificiales1 (cada cromosoma artificial contiene la información de un individuo), reproduciendo los cromosomas de los individuos con el mejor desempeño y aplicando cambios aleatorios a los cromosomas hijos, este procedimiento es repetido en diversas generaciones hasta que se cumpla alguna condición de paro ó ya no se generen mejores individuos con el paso de las generaciones. La métrica utilizada para calificar el desempeño de algún individuo se conoce como función de calidad. En los trabajos de (Kodjabachian et al., 1997; Lazarus y Hu, 2001) se utiliza la Programación Genética (Fogel et al., 1966) para el desarrollo de comportamientos robóticos, sin embargo, en estos trabajos no se evolucionan RNAs sino estructuras de control como lo son reglas Si-Entonces. 1 En lo que resta del documento para referirse al cromosoma artificial se utilizará la palabra cromosoma. 8 Capítulo 1. Motivo de la Investigación El cromosoma en el AG se puede representar en dos niveles: en un nivel de cadena de bits (genotipo) o a nivel de características de un individuo (fenotipo). El cromosoma puede contener diversas variables, entre ellas, los pesos de las conexiones de una RNA, la cual es utilizada para controlar nuestro robot (Nolfi y Floreano, 2000). A pesar que la técnica más utilizada para realizar la optimización del neurocontrolador es el AG con representación binaria, no implica que sea la técnica más adecuada, la más sencilla de codificar y calibrar parámetros de los ABs, además de que realice una buena exploración y explotación del espacio de búsqueda para encontrar una buena solución. En este trabajo se propone utilizar, para la optimización del neurocontrolador, las siguientes técnicas de los ABs: AG con representación binaria (técnica clásica en la RE), AG con representación real, optimización basada en cúmulo de partículas y evolución diferencial; para desarrollar los comportamientos de seguir paredes y evadir obstáculos. Posteriormente, se compararán los resultados obtenidos por los ABs utilizando pruebas estadísticas. 1.2. Objetivo general Utilizar técnicas de los AB: algoritmo genético, evolución diferencial y optimización mediante cúmulo de partículas, para el desarrollo de controladores robóticos y comparar los resultados obtenidos. 1.3. Objetivos específicos Generar comportamientos robóticos para tareas específicas utilizando diversas técnicas de los AB. Analizar y comparar el comportamiento resultante de utilizar diversas técnicas de los AB. Elaboración de pruebas estadísticas sobre los resultados obtenidos para determinar el desempeño de los AB implementados. 1.4. Alcances y limitaciones Los experimentos se realizarán en la plataforma robótica epuck. Se utilizarán los siguientes ABs: • Algoritmos genéticos. • Optimización mediante cúmulo de partículas (Particle Swarm Optimization). 1.5. Justificación 9 Figura 1.4: Proceso de evolución del neurocontrolador. • Evolución diferencial. Se empleará la versión mono-objetivo y sin manejo de restricciones de las técnicas mencionadas. Estas técnicas se aplicarán para el entrenamiento de neurocontroladores (RNA). Se experimentará desarrollando los comportamientos de: seguir paredes y evitar obstáculos, en experimentos separados. 1.5. Justificación Para la optimización de los neurocontroladores robóticos, como ya fue mencionado, la técnica más usada en la RE es el AG. Sin embargo, existen otras técnicas de los AB como lo son: otro tipo de AE y de IC que suelen proveer mejores resultados en espacios continuos, como es el caso de este trabajo de tesis, además de presentar una implementación más sencilla que el AG (menos parámetros definitorios). Dichos métodos evolutivos no han sido aplicados en la RE, por lo que en este trabajo se explorarán estas alternativas. 1.6. Planteamiento del problema El gran problema de la RE es generar controladores que relacionen los sensores y los actuadores satisfaciendo en lo posible una tarea específica. Además, deben llegar a un nivel de coordinación capaz de generar un comportamiento autónomo, el cual debe de ser lo suficientemente robusto para desarrollar la tarea en un entorno cambiante. Todo esto agrega una gran 10 Capítulo 1. Motivo de la Investigación complejidad en el costo de procesamiento de cómputo y del proceso de búsqueda de la configuración del controlador. En la figura 1.4 se puede observar el mecanismo de evolución artificial, en el cual se utiliza un AG para optimizar los pesos de la RNA, que controlará el comportamiento del robot, posteriormente se evalúa el desempeño del robot y se regresa al AG la calidad del individuo. De este modo, el verdadero reto versa en el entrenamiento del neurocontrolador. 1.7. Hipótesis El uso de algoritmos evolutivos alternativos y de inteligencia colectiva pueden mejorar el desempeño de controladores robóticos en tareas específicas como son el seguimiento de paredes o la evasión de obstáculos. Capítulo 2 Robótica Evolutiva Resumen: En este Capítulo se presenta un panorama general de la RE, iniciando con una breve historia de la robótica, sus primeras aplicaciones, primeras posturas y cómo surge la RE como alternativa para desarrollar controladores robóticos. Posteriormente se detalla la metodología que sigue la RE tomando como base enfoques de los ABs para la generación automática de controladores robóticos, en un ambiente dinámico y sin interacción humana. 2.1. Historia de la Robótica Evolutiva La robótica inició básicamente en dos caminos: industrial y doméstico. En el industrial, un robot se sometía a una tarea o un conjunto de tareas específicas en ambiente controlados y no dinámicos, por lo tanto este tipo de robots carecía de inteligencia y capacidad de adaptarse a cambios en el entorno. Por otro lado, los robots domésticos deben: realizar tareas específicas, reaccionar a eventos inesperados, adaptarse a cambios en el ambiente, entre otras. Es por esto que el robot debe ser capaz de percatarse de esos cambios y reaccionar correctamente ante ellos. Siempre que el robot realiza una tarea, está tomando datos acerca de su medio ambiente mediante sensores, los cuales usualmente presentan ruido. Por lo tanto se necesita algún mecanismo lo suficientemente robusto para poder interpretar la lectura de los sensores y proporcionar instrucciones correctas a los actuadores. Los mecanismos más populares para esta tarea son: algoritmo de back-propagation (Rumelhart et al., 1986), aprendizaje por refuerzo (Barto et al., 1995), sistemas de clasificación (Booker et al., 1989) y los mapas auto-organizados (Kohonen, 1982). Estos algoritmos imponen diferentes restricciones en el tipo de arquitectura que puede ser utilizada, además de la cantidad y calidad de supervisión requerida por el diseñador. 11 12 Capítulo 2. Robótica Evolutiva Por ejemplo, en el caso del algoritmo de back-propagation, el diseñador debe especificar de forma explícita los valores correctos de las salidas de los motores para cada configuración de los sensores. Por otro lado, el aprendizaje por refuerzo solo necesita una evaluación de que tan bien o mal se realiza una tarea (Nolfi y Floreano, 2000). Existe una variedad de arquitecturas robóticas utilizadas para los sistemas robóticos autónomos. La más usada es la arquitectura jerárquica, donde funcionalidades de robots son descompuestas en capas de alto y bajo nivel (Nicolescu y Mataric, 2002), las capas de alto nivel se encargan de modelar el sistema y de la planeación de la tarea. Por otro lado, las capas de bajo nivel son encargadas de realizar la lectura de sensores y ejecución de movimientos. Otro tipo de arquitectura es la basada en comportamientos (Mahadevan y Connell, 1992; Laue y Röfer, 2004) donde se descompone al robot en comportamientos simples, ésta última es muy utilizada en el diseño de sistemas robóticos autónomos. Otra arquitectura conocida es la híbrida (Connell, 1992), en la que se utiliza tanto la descomposición de tareas en capas como en comportamientos. La robótica basada en comportamientos ofrece al robot un conjunto de posibles comportamientos a seguir, de los cuales, el robot selecciona uno de ellos dependiendo de la percepción que el robot recibe del ambiente. Es por esto que el ambiente juega un papel crucial en la selección de comportamientos, ya que dependiendo precisamente del ambiente, los comportamientos se activarán o desactivarán. En general, el mecanismo de control para esta selección se hace mediante un proceso de prueba y error, hasta llegar a calibrarlo, es aquí donde se encuentra el verdadero reto para los diseñadores de robots. Inspirado por la teoría Darwinista, los AE han sido aplicados en el campo de los controladores robóticos (Gomi y Griffith, 1996; Meyer et al., 1998). Esta disciplina basada en la evolución biológica es usada para ajustar automáticamente el diseño de control para los robots. La RE es una rama de la robótica autónoma donde el diseñador hace uso de los AEs y de la IC para el diseño de controladores robóticos. En el Capítulo 3 se detallarán los AB, por el momento basta la idea que se utilizan para encontrar la calibración automática de los controladores robóticos. La RE permite a los sistemas robóticos adaptarse a ambientes dinámicos y desconocidos sin intervención humana. Los controladores robóticos derivados de la RE tienen la ventaja de tener poco tiempo de adaptación y robustez para la selección de operaciones (en este caso comportamientos) (Floreano y Mondada, 1996; Lund et al., 1997; Nolfi y Floreano, 2000). En RE una población inicial de individuos es generado aleatoriamente, donde cada individuo codifica un controlador robótico. Cada robot (ya sea físico o simulado) actúa con base en el controlador que tiene codificado el individuo y en el proceso evolutivo el desempeño del controlador robótico es evaluado. Los mejores individuos tienen mayores probabilidades de generar copias de 2.2. Redes Neuronales Artificiales 13 ellos mismos, apoyados con otros operadores, generan nuevos individuos, los cuales pueden tener un mejor o un peor desempeño. Este proceso es repetido hasta que algún individuo satisface la(s) tarea(s) que se requiere(n). Por lo tanto, la RE es completamente diferente a la forma convencional de diseñar controladores robóticos. Como resultado de la evolución del controlador, éste es capaz de tomar decisiones apropiadas en tiempo real casi con conexión directa entre los sensores y actuadores. En los trabajos de (Nolfi, 1997a) se muestra que los comportamientos robóticos pueden ser obtenidos por el uso de algoritmos bioinspirados y son más robustos que los métodos tradicionales. En los trabajos mencionados, y en trabajos similares como lo son (Nolfi et al., 1994; Mondada y Floreano, 1995; Floreano y Mondada, 1996; Nolfi, 1997b; Quinn et al., 2002; Nelson et al., 2004; Montes-Gonzalez y Aldana-Franco, 2011), el enfoque evolutivo utilizado para evolucionar el controlador es el Algoritmo Genético. 2.2. Redes Neuronales Artificiales Las RNA son las más utilizadas por los investigadores como controladores de comportamientos, que intentan simular el funcionamiento de las neuronas biológicas. La RNA es una estructura de procesamiento distribuido en la que distinguimos entre nodos o neuronas, que realizan una función matemática, típicamente no lineal, que simulan la frecuencia de la activación eléctrica en las neuronas biológica. Las conexiones o pesos entre los nodos simulan la eficiencia de la conexión sináptica entre las dendritas y axones de las neuronas biológicas. Entre los componentes de una neurona biológica se encuentran el soma, las dendritas y el axón. Existen diferentes formas de comunicación dentro de las redes neuronales, éstas pueden ser químicas mediante el intercambio de sustancias (regularmente proteínas) y eléctricas. Dentro de las neuronas se producen diferentes procesos químicos que generan señales en forma de impulsos nerviosos los cuales son transmitidos por medio de la sinapsis. Las dendritas son los elementos que reciben estos impulsos nerviosos que provienen de otras neuronas, las cuales están conectadas con el soma, conocido también como cuerpo celular. El soma realiza la sumatoria de todas las señales provenientes de las dendritas, cuando en el soma se llega a una suma suficiente, se dispara la célula, o en su defecto, transmite mediante el axón, una señal hacia otras neuronas. En la figura 2.1 se muestra la forma de una neurona y sus partes previamente mencionadas. Una RNA se define como un dispositivo simple de cálculo, el cual a partir de un vector de entrada (conjunto de datos) procedente del exterior o de otras neuronas, proporciona una única respuesta o salida y puede estar conectada o no a otras neuronas. Por lo tanto, los elementos que constituyen 14 Capítulo 2. Robótica Evolutiva Figura 2.1: Neurona natural. la neurona son: conjunto de entradas, pesos sinápticos, regla de propagación, función de activación, y función de salida. En un sistema de RNA el elemento principal es la neurona artificial (ver figura 2.2), la cual puede definirse una o varias en capas conectadas, el conjunto de capas constituye una RNA. A la topología, estructura o patrón de interconexión de una red neuronal, se le denomina arquitectura de la red. En una red neuronal, los nodos se conectan por medio de la sinápsis, esta estructura de conexiones sinápticas determina el comportamiento de la red. Las conexiones sinápticas son direccionales, es decir, la información sólo puede propagarse en un único sentido (de la neurona presináptica a la postsináptica). Las neuronas de una capa pueden agruparse a su vez, formando grupos neuronales. Finalmente, el conjunto de una o más capas construye la RNA. Generalmente en una RNA se utilizan 3 capas: capa de entrada, capa de salida y capas ocultas. Una capa de entrada está compuesta por neuronas que reciben datos o señales procedentes del entorno, de un sistema, de una base de datos, etc. (por ejemplo proporcionados por sensores de un robot). La capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (por ejemplo las neuronas de salida de una RNA en un sistema robótico suelen estar conectadas a los actuadores). La capa oculta es aquella que no tiene una conexión directa con el entorno ni con los datos de entrada, es decir, no se conecta directamente a sensores ni actuadores, sino que está conectada a las neuronas de la capa de entrada y a la capa de salida. Este tipo de capa proporciona a la red neuronal grados de libertad adicionales, los grados de libertad pueden encontrar representaciones internas correspondientes a determinados rasgos del entorno, proporcionando una mayor riqueza computacional. Las conexiones entre las neuronas pueden ser excitatorias o inhibitorias: un peso sináptico negativo define una conexión inhibitoria, mientras que uno positivo determina una conexión excitatoria. No se suele definir una conexión 2.2. Redes Neuronales Artificiales 15 Figura 2.2: Neurona artificial. como de un tipo o de otro en un primer momento, sino que por medio del aprendizaje se obtiene un valor para el peso, que incluye signo y magnitud. En una RNA puede definirse el aprendizaje como el proceso por el que se produce el ajuste de los parámetros libres de la red (pesos entre las conexiones) a partir de un proceso de estimulación por el entorno que rodea la red. El tipo de aprendizaje vendrá determinado por la forma en la que los parámetros son adaptados. En la mayor parte de las ocasiones el aprendizaje consiste simplemente en determinar un conjunto de pesos sinápticos que permita a la red realizar correctamente el tipo de procesamientos deseado. Básicamente existen dos tipos de aprendizaje: el supervisado y el no supervisado. En el aprendizaje supervisado se presenta a la red un conjunto de patrones, junto con la salida deseada, e iterativamente ésta ajusta sus pesos hasta que la salida tiende a ser la deseada, utilizando para ello información detallada del error que comete a cada paso. Por otro lado, el aprendizaje no supervisado, se presenta a la red un conjunto de patrones sin adjuntar la respuesta asociada. La red, por medio de la regla de aprendizaje, estima la función de densidad de probabilidad a partir de la cual pueden reconocerse regularidades en el conjunto de entradas, extraer rasgos, o agrupar patrones según su similitud (clustering). Un ejemplo típico de modelo que emplea este tipo de aprendizaje es el de los mapas auto-organizados (Kohonen, 1984). Sintetizando el funcionamiento de una RNA, trabaja en dos fases: la primera se presentan las entradas a los nodos de entrada y, con la configuración actual de pesos, se actualiza el valor en cada nodo de la red y en particular de los que generan la salida de la red. La segunda fase, la cual es la característica más importante de las RNAs, es la capacidad de aprendizaje, en la 16 Capítulo 2. Robótica Evolutiva RE, el proceso de aprendizaje está regido por la evolución de las RNAs, las cuales son los controladores robóticos. 2.3. Evolución de controladores de comportamiento El aprendizaje en las RNAs se realiza a través de un proceso de entrenamiento en el que se presentan vectores de parámetros a la red (conjunto de entrenamiento), la RNA modifica sus conexiones entre los nodos y en algunos casos su topología. Posterior al proceso de aprendizaje, la RNA es capaz de discernir entre entradas con parámetros comunes, es decir, es capaz de aprender de modo automático mediante algún algoritmo o proceso de entrenamiento. Debido al modelo de procesamiento que presentan las RNAs, ellas tienen características importantes al aplicarlas en la robótica autónoma. En su trabajo, (Nolfi, 1997b) indica varias de estas características: tolerancia a fallos, tolerancia a ruido (propiedad común y muy problemática en la robótica debido a la alta presencia de éste en entornos reales) y por último la posibilidad de utilizar algoritmos de aprendizaje conexionistas tradicionales, pudiendo hacer uso de la combinación de la evolución con el aprendizaje conexionista. Por estas características las RNAs son la estructura de control más utilizada en la robótica autónoma. Por citar algunos trabajos que hacen uso de esta herramienta se encuentran: (Beer y Gallagher, 1992; Floreano y Mondada, 1998; Nolfi et al., 1990; Reyes y Duro, 1998). El uso de ruido al momento del entrenamiento de la RNA es benéfico, pues consigue una mejor generalización de resultados cuando la red trabaja con entradas ruidosas, como se muestra en (Reyes y Duro, 2001). En el diseño evolutivo de la RNA la representación fenotípica (no codificada) de los individuos son los controladores candidatos de un determinado comportamiento, por lo tanto, el fenotipo representa la configuración de la RNA. En este caso, los pesos que conforman las conexiones entre las neuronas, aunque en algunos casos puede incluirse también en los individuos el número de capas, nodos por capa, tipo de nodo, etc. Agregar estos parámetros puede ser poco práctico como describe (Reynolds, 1994). Durante el proceso de evolución, cada individuo (posible controlador) es puesto en funcionamiento en un ambiente, ya sea en un robot físico o en un simulador. Este controlador será probado durante cierto tiempo (un parámetro para el proceso de evolución) en un ambiente y será calificado mediante una función de calidad; en cada prueba, el individuo es posicionado aleatoriamente en el ambiente. Para asegurar que el individuo es correctamente evaluado, éste es probado en varias ocasiones, ya que se puede dar el caso en que un buen individuo al momento de evaluar su desempeño tenga ubicado al robot en un mal lugar en el ambiente. Debido a lo anterior se incrementa la posibilidad de chocar 2.4. Representación de las estructuras a evolucionar 17 Figura 2.3: Ejemplo de representación genotípica del neurocontrolador. inmediatamente o tener un mal desempeño, por lo que el robot se posiciona en lugares diferentes en el ambiente y la calidad de cada individuo del AB se obtiene de la media de las calidades obtenidas en estas evaluaciones. Durante el proceso de evaluación los individuos van cambiando sus fenotipos mediante los operadores propios del algoritmo bioinspirado usado. En el Capítulo 3 se explicarán a detalle los paradigmas utilizados para la evolución de los controladores robóticos. 2.4. Representación de las estructuras a evolucionar En la mayoría de los trabajos en la RE se ha representado a los controladores robóticos a nivel genotípico (binario), también llamada representación directa, ya que cada posible peso de la RNA se codifica en el cromosoma del individuo. En la figura 2.3 se muestra un ejemplo de cómo cada peso de la RNA es codificada en una parte del cromosoma de un individuo. En los trabajos de (Husbands et al., 1994) se menciona lo siguiente: “la tarea de codificación es central en el desarrollo evolutivo de sistemas de control” De ahí que esta tarea se vuelve crucial al momento de diseñar un sistema robótico, lo que lleva a estudiar las ventajas y desventajas de ambas representaciones. El investigador Fréderic Gruau menciona siete propiedades que deben tomarse en cuenta al codificar una RNA (Gruau, 1992), las cuales son: Completitud, es decir se debe poder codificar cualquier RNA. El nivel de compactación en la codificación, debido a que determina el tamaño del cromosoma. 18 Capítulo 2. Robótica Evolutiva Todo genotipo debe corresponder con una red, es decir, un genotipo no tiene que tener ambigüedades. Modularidad, debe tener un orden entendible y escalable si la codificación representa, aparte de las conexiones de una red, alguna otra propiedad, por ejemplo: la topología, número de redes, etc. Interacción suave entre operadores genéticos, es decir, que en el proceso evolutivo el algoritmo pueda tener movimientos suaves en el espacio de búsqueda. Dimensionalidad, la codificación no debe presuponer la dimensionalidad del espacio de búsqueda. La codificación debe representar: sensores, actuadores y propiedades de la RNA, es decir, debe mapear claramente con todas las partes que interaccionan del sistema robótico. Dependiendo del algoritmo bioinspirado a utilizar, la representación puede darse a nivel genotípico o fenotípico. Por ejemplo, el AG puede tomar ambas representaciones, pero la Evolución Diferencial trabaja con vectores de números reales, es decir, en representación fenotípica. En el Capítulo 3 se detallarán estas características. Discusión En este Capítulo se describió la historia y la metodología de la RE. La mayoría de los trabajos desarrollados en la RE utilizan el AG con representación binaria para la optimización del neurocontrolador. Sin embargo, existen otros ABs que pueden ser utilizados para el proceso de optimización e incluso, pueden llegar a obtener mejores resultados que el AG clásico en este tipo de problemas. En el Capítulo 3, se describirán las diversas técnicas de los ABs utilizados en este trabajo para la optimización del neurocontrolador. Capítulo 3 Algoritmos Bioinspirados Resumen: En este Capítulo se presentará una introducción a los algoritmos bioinspirados así como la descripción, funcionamiento y características de los enfoques utilizados en los experimentos. Estos enfoques son: algoritmo genético, evolución diferencial y optimización mediante cúmulo de partículas; los cuales permiten el proceso de optimización del neurocontrolador. 3.1. Historia de los algoritmos bioinspirados La teoría de la evolución es considerada actualmente como la combinación de las posturas de Darwin, la cual complementada con la de Weismann y Mendel se le conoce como el paradigma Neo-Darwiniano. Este paradigma sostiene que los procesos de vida del planeta se pueden explicar mediante unos pocos procesos estadísticos que actúan en las poblaciones y especies. Estos procesos son: reproducción, mutación, competencia, selección. Al resultado de aplicar estas operaciones se le conoce como evolución. Un concepto importante en la evolución es la selección natural, la cual constituye un método adaptativo en los componentes de una población ante cambios en las condiciones del entorno. La evolución artificial intenta emular en un equipo de cómputo el mismo procedimiento que ha tenido lugar a lo largo de millones de años en el mundo natural. Para llevar a cabo esta emulación, la evolución artificial genera y simula los individuos de una población, los cuales se someten a determinadas operaciones, como lo son: selección, cruza y mutación. Los diversos enfoques de la evolución artificial son utilizados para resolver principalmente problemas de optimización, ya que sin necesidad de conocimiento alguno del problema, logran encontrar una solución satisfactoria. En la figura 3.1 se muestra el diagrama de flujo del proceso de evolución artificial. Al conjunto de estos enfoques se les conoce como Algoritmos Bioinspirados, ya que como 19 20 Capítulo 3. Algoritmos Bioinspirados Figura 3.1: Diagrama de flujo del proceso de evolución artificial. su nombre lo dice, basan su metodología en la naturaleza (evolución, selección natural, generación de nuevos individuos, intercambio de información entre individuos, etc.). Los primeros intentos para implementar evolución artificial para resolver problemas de optimización se sitúan en los años 30s. Cuando Wright sugirió la utilidad de visualizar un sistema evolutivo que explora los picos de funciones multimodales mediante clusters alrededor de los picos. Desde entonces, diversas versiones de algoritmos han sido propuestas por diversos investigadores. En 1956 George J. Friedman propone una aplicación de técnicas evolutivas a la robótica. Es un proceso similar a la selección natural, propuso evolucionar circuitos de control similares a lo que hoy se conoce como redes neuronales (Friedman, 1956). En 1954 Nils Barricelli desarrolla las primeras simulaciones de procesos de evolución y las utiliza sobre problemas de optimización (Barricelli, 1954). R. M. Fiedberg intenta evolucionar programas generando conjuntos de instrucciones en lenguaje máquina en 1958 (Friedberg, 1958). De este modo, Friedberg fue el primero en utilizar conceptos de paralelismo implícito y esquemas. En el mismo año, Hans Joachim Bremermann (Bremermann, 1958), consideró la evolución como un proceso de optimización y usó cadenas binarias que se combinaban por medio de operadores de reproducción, selección y mutación. En los años 60s tres grupos marcaron el nacimiento de los AEs. Primero en la Technische Universität de Berlin un grupo formado por Ino Rechenberg y Schwefel formularon en 1965 ideas sobre cómo un proceso evolutivo puede usarse para resolver problemas numéricos de optimización complejos. De estas ideas surge un paradigma conocido como Estrategia Evolutiva (Rechenberg, 1973), en este paradigma, en su versión original, se utiliza sólo el operador de mutación y sólo utiliza un individuo. Como segundo grupo, en 1966 Lawrence J. Fogel en la University of California, Los Angeles (UCLA) 3.1. Historia de los algoritmos bioinspirados 21 Figura 3.2: Representación artificial de una colonia de hormigas. visualizó la evolución como un medio para alcanzar las metas de la Inteligencia Artificial, por lo que evolucionó agentes inteligentes representados como máquinas de estado finito. A este paradigma se le conoce como Programación Evolutiva (Fogel et al., 1966). Por último en 1975 John Henry Holland en la University of Michigan vio a un proceso evolutivo como la clave en el diseño e implementación de sistemas adaptativos robustos, los cuales pueden desempeñarse en un ambiente cambiante e incierto, con capacidad de autoadaptación. Estas ideas originaron los llamados planes reproductivos, mejor conocidos como el paradigma de los Algoritmos Genéticos (Holland, 1992). En los 70s se avanzó en los estudios empíricos y en la teoría con respecto a los paradigmas mencionados, mejorando el desempeño y su aplicabilidad. Durante los años 80s, se amplió la diversidad de aplicaciones y se generaron variantes de estos paradigmas. En los 90s, surgieron los primeros congresos, lo que permitió el trabajo de colaboración y diferenciación, nació el término de Cómputo Evolutivo y el primer journal Evolutionary Computation del MIT press. En 1992, en su tesis doctoral, Marco Dorigo propuso una técnica probabilística para resolver problemas computacionales relacionados con la búsqueda de caminos en grafos llamada Ant Colony Optimization (ACO), basada en el comportamiento de una colonia de hormigas buscando caminos entre el nido y la fuente de comida más cercana (Dorigo, 1992). En la figura 3.2 se presenta una analogía entre una colonia de hormigas física y su representación en grafos. En 1995 Kennedy y Eberhart propusieron la Optimización Mediante Cúmulos de Partículas o Particle Swarm Optimization (PSO), el cual es un algoritmo de búsqueda basado en la simulación del comportamiento social del vuelo de las aves dentro de una parvada (Kennedy y Eberhart, 1995). Este tipo de algoritmos (PSO y ACO) se les llama de inteligencia colectiva ya que entre los individuos intercambian información y colaboran para un fin en común. En el año 1997, Rainer Storn y Kenneth Price presentan el algoritmo 22 Capítulo 3. Algoritmos Bioinspirados Figura 3.3: Paisaje de calidad para un problema de 2 dimensiones. El eje z representa el resultado de la función de calidad, mientras que los ejes x y y representan los valores de las variables utilizadas por la función de calidad. de Evolución Diferencial (ED), el cual se basa en generar nuevos individuos a partir de la población actual utilizando una fórmula simple basada en la diferencia entre vectores (Storn y Price, 1997). Cambiando de década, en el 2005 D. Karaboga propuso el algoritmo Artificial Bee Colony (ABC), el cual se basa en el proceso de búsqueda de néctar que realizan las abejas para el proceso de optimización (Karaboga, 2005). Una de las diferencias fundamentales entre la evolución natural y la evolución artificial, es que en la natural no persigue ningún objetivo en específico, simplemente las especies se van modificando como consecuencia de las fuerzas y fenómenos de la naturaleza que actúan sobre tales especies. La evolución artificial tiene como objetivo producir, en el proceso de evolución, un individuo capaz de resolver una tarea o proceso, medido por su calidad. Es aquí donde cobra importancia el paisaje de calidad. 3.2. Paisaje de calidad El paisaje de calidad, también llamado espacio de búsqueda, es un concepto muy importante en todo problema de optimización. Formalmente se puede definir el paisaje de calidad como un lugar geométrico en un plano donde pueden apreciar todas las calidades obtenidas de un problema concreto para todos los posibles cromosomas que se pueden generar utilizando una codificación dada (Santos y Duro, 2005). Esta descripción puede apreciarse en la figura 3.3, donde las coordenadas ’x’ y ’y’ definen las soluciones potenciales de un problema (suponiendo que es un problema de 2 dimensiones), y el eje ’z’ representa la calidad (fitness en inglés) obtenida resolviendo el problema con los respectivos valores de ’x’ y ’y’. Continuando con el ejemplo de la figura 3.3, asumiendo que los posibles valores de las dos variables puede ser entre 1 y 20, en valores discretos, es 3.3. Algoritmo Genético 23 decir, sólo enteros; entonces existen 20 posibles valores para cada variable, dando un total de 400 posibles soluciones. Aterrizando este concepto al dominio del control robótico, como se menciona en (Santos y Duro, 2005), suponga que el cromosoma que codifica un controlador robótico consta de 100 genes y que de igual forma pueden tomar valores entre 1 y 20, obteniendo 20100 posibles soluciones, lo que también es decir 20100 evaluaciones, lo que quiere decir que si se de un equipo de cómputo que pueda realizar una evaluación cada milisegundo, llevaría 4*10117 siglos (aproximadamente 3 seguido de 109 ceros veces la edad del universo) obtener el paisaje de calidad completo. Existen principalmente 2 tipos de algoritmos para la exploración del paisaje de calidad, el primer tipo de algoritmos basan su funcionamiento en un punto que se desplaza por toda la superficie de calidad, por ejemplo los algoritmos de descenso o ascenso de gradiente. El segundo tipo de algoritmos se basan en poblaciones de puntos que exploran la superficie de forma paralela. Los ABs pertenecen al segundo tipo de algoritmos, donde cada individuo es un punto que explora el paisaje de calidad buscando el óptimo. Otro término paralelo a la exploración es la explotación, la cual se encarga de realizar evaluaciones en el vecindario de una buena solución para encontrar una mejor posición del óptimo. Es por eso que cuando se utilizan este tipo de algoritmos es importante equilibrar la exploración y explotación. En lo que resta del Capítulo se detallarán los algoritmos utilizados en este trabajo, que son el AG, la ED y el PSO. 3.3. Algoritmo Genético El AG es un algoritmo de búsqueda basado en el mecanismo de la selección natural y genética. Como se mencionó anteriormente, el AG fue propuesto por John Holland en la Michigan University en los años 60’s, la idea fue desarrollada en el libro “Adaptation in Natural and Artificial Systems” (Holland, 1992), donde los objetivos de su investigación fueron: abstraer y a su vez explicar el proceso de sistemas naturales y diseñar sistemas artificiales que contengan los mecanismos importantes de su contraparte natural. Este enfoque se caracteriza porque el factor dominante de la evolución es la cruza, en la que se toman 2 individuos de la población e intercambian sus materiales genéticos para crear individuos nuevos (llamados hijos). La mutación es una forma de generar variedad en la población y generalmente presenta una baja probabilidad de ocurrencia. Por lo que a la cruza se le considera un operador primario y la mutación un operador secundario de los AGs. El dominio de aplicación más común de los AGs ha sido los problemas de optimización, en donde han mostrado ser muy eficientes, confiables y robustos. Sin embargo, no todos los problemas pueden ser apropiados para la técnica, en (Wang et al., 2006) se recomienda tomar en cuenta las siguientes 24 Capítulo 3. Algoritmos Bioinspirados Figura 3.4: Ejemplo de representación genotípica y su equivalente en representación fenotípica (asumiendo un problema de optimización con variables enteras). características del problema: Su espacio de búsqueda debe estar delimitado dentro de un cierto rango. Debe ser posible definir una función de calidad (también llamada función de aptitud) que nos indique la eficiencia de una posible solución. Una característica que debe tener esta función es que debe castigar a las malas soluciones y premiar a las buenas, de forma que sean estas últimas las que se propaguen con mayor rapidez. Las soluciones deben codificarse de una forma que resulte relativamente fácil su implementación. Las representación de las soluciones puede hacerse a nivel genotípico (espacio genotípico) o fenotípico (espacio fenotípico). En el primero, la representación se hace en genes, los cuales pueden tomar el valor de 0 o 1, mientras que la representación fenotípica es (par el caso de espacios continuos) la representación decimal (con o sin decimales) del genotipo; solución, fenotipo o individuo suelen utilizarse como sinónimos. En la figura 3.4 se puede observar la representación genotípica, la cual mediante un proceso de decodificación se obtiene su equivalente a nivel fenotípico, para este ejemplo simplemente la cadena binaria se transformó a su equivalente en el dominio de números enteros. Esto no quiere decir que la representación genotípica solo pueda codificar números enteros, también se puede codificar números reales con N decimales de precisión. El mecanismo de un algoritmo genético simple es muy sencillo, está compuesto de cuatro elementos principales: selección de padres, cruza, mutación y reemplazo. En la selección de padres, se seleccionan N padres de una población de N individuos, es decir, el número de padres seleccionados es igual al número de individuos en la población, existen diversos métodos para la selección de padres, algunos totalmente estocásticos y algunos deterministas. En la cruza, se producen 2 hijos basados en los cromosomas de 2 padres; al igual que en la selección, existen diversos mecanismos para la generación de 3.3. Algoritmo Genético 25 hijos. La mutación es un operador unario, es decir, que sólo depende de un cromosoma, se aplica a un individuo para generar una versión ligeramente modificada del individuo y es totalmente estocástica. Finalmente se lleva a cabo el reemplazo, en el AG los hijos generados reemplazan a los padres en la población; a este remplazo se le llama generacional, ya que la nueva generación reemplaza a la antigua generación. Existe otro operador adicional a estos cuatro operadores básicos, llamado elitismo, en el cual la mejor solución de la población es copiado sin cambio alguno a la siguiente generación. En el algoritmo 1 se muestra el funcionamiento de un AG simple propuesto por (Holland, 1992); en el cual primero se genera una población inicial de forma totalmente aleatoria, se evalúa la población generada, posteriormente inicia ciclo en el cual se generan nuevas poblaciones, y se evalúan, hasta encontrar una buena solución o llegar a un número máximo de evaluaciones. Algorithm 1 Algoritmo general del AG Iniciar población aleatoriamente for cada individuo de la población do Calcular calidad end for repeat Selección de padres Cruza Mutación for cada individuo de la población do Calcular calidad end for Reemplazo Elitismo (si aplica) until alcanzar la condición de paro Tanto la cruza como la mutación dependen del tipo de representación a utilizar, por otro lado, la selección de padres y el reemplazo son independientes a la representación. A continuación se detallarán cada uno de estos elementos. 3.3.1. Inicialización de individuos con representación binaria Para inicializar los individuos con representación binaria, el primer paso es calcular la longitud de la cadena binaria (cromosoma) de cada individuo, para ésto se debe calcular la longitud de cada variable del individuo utilizando la fórmula 3.1. T = int{log2 [(limsup − liminf ) ∗ prec] + .9} (3.1) 26 Capítulo 3. Algoritmos Bioinspirados donde: limsup , liminf : son los límites, tanto superior como inferior, de la variable. prec: precisión, es el número de decimales de la variable. Una vez obtenido el tamaño del cromosoma de la variable, se procede a llenar cada gen de este cromosoma con un 0 o 1 de forma aleatoria, hasta completar todas las variables del individuo. Para decodificar el cromosoma se utiliza la fórmula 3.2 por cada variable. Xreal = liminf + [ donde: Xdecod ∗ (limsup − liminf ) ] 2T − 1 (3.2) Xdecod : es la cadena de bits del cromosoma decodificada en su correspondiente número entero. T : es el tamaño del cromosoma de la variable. 3.3.2. Inicialización de individuos con representación real Las variables de los individuos con representación real se inicializan utilizando la fórmula 3.3, la cual se va aplicando a cada variable del individuo. X = liminf + [rand(0, 1) ∗ (limsup − liminf )] 3.3.3. (3.3) Selección de padres Con la técnica de selección de padres, una vez evaluada cada solución en la población, se deciden los padres que se van a reproducir para generar nuevos descendientes, donde el único criterio a tener en cuenta en la selección es que se les da mayor preferencia a los individuos mejor adaptados (con mejor calidad). Actualmente existen múltiples estrategias para la selección de padres, a continuación se mencionarán las más comunes. En la selección por torneo se elige un número de individuos, de forma aleatoria, candidatos a ser padres (como mínimo 2) para someterlos a un torneo, el número de individuos que participan en el torneo es un parámetro para esta técnica. En la versión determinística, el torneo siempre seleccionará al mejor individuo, en la versión probabilística se seleccionará al mejor individuo en función a una probabilidad, la cual se da como parámetro al algoritmo. La selección por ruleta es el método usado por Goldberg en su libro (Goldberg, 1989) que consiste en crear una ruleta en la que cada cromosoma 3.3. Algoritmo Genético 27 Figura 3.5: Ejemplo de selección por ruleta. tiene asignada una fracción proporcional a su aptitud. En la figura 3.5 se muestra un ejemplo donde se tienen 5 cromosomas con su correspondiente calidad y su porcentaje de probabilidad en la ruleta. Una vez seleccionados a todos los padres se procede a realizar el operador de cruza. 3.3.4. Cruza con representación binaria La cruza a utilizar en este trabajo es de un punto, en la cual se selecciona una posición aleatoria del cromosoma de los padres, llamado punto de cruce, y se procede a intercambiar el material genético de ambos padres para generar a los hijos, en la figura 3.6 se muestra el funcionamiento de este operador. 3.3.5. Cruza con representación real Para la cruza con representación real se utilizará el operador SBX (Simulated Binary Crossover)(Agrawal et al., 1994), el cual trata de simular el cruce de un punto de la representación binaria. SBX trabaja de la siguiente forma, primero se obtiene un número aleatorio uniforme u(0,1) y se procede a obtener ß con las fórmulas 3.4 y 3.5. Si u(0,1) ≤ 12 1 β(u) = (2u) η+1 Si u(0,1) > 1 2 β(u) = ( 1 1 ) η+1 2(1 − u) (3.4) (3.5) Posteriormente se procede a generar los 2 hijos utilizando la fórmula 3.6 para el hijo 1 y 3.7 para el hijo 2. 28 Capítulo 3. Algoritmos Bioinspirados Figura 3.6: Funcionamiento del operador de cruza de un punto para representación binaria. 1 h1i = [(1 − βk )c1i + (1 + βk )c2i ] 2 (3.6) 1 h2i = [(1 + βk )c1i + (1 − βk )c2i ] 2 (3.7) donde: h1i y h2i : son los valores obtenidos para los hijos de la variable i en el cromosoma. c1i y c2i : son los valores de la variable i en los cromosomas de los padres, se asume que c1i < c2i . El procedimiento antes mencionado es usado para variables donde no se manejan límites en las variables, es decir, los hijos pueden tener cualquier valor real. Para calcular los hijos, donde el límite superior y el límite inferior de las variables son especificados, se debe modificar las fórmulas para obtener β, por las fórmulas 3.8 y 3.9. Si u(0,1) ≤ α1 1 β(u) = (αu) η+1 Si u(0,1) > (3.8) 1 α 1 1 ) η+1 2 − αu Donde α se calcula utilizando la fórmula 3.10. β(u) = ( α = 2 − β 0−η+1 (3.9) (3.10) 3.3. Algoritmo Genético 29 Figura 3.7: Funcionamiento del operador de mutación uniforme para representación binaria. En la fórmula 3.10 se utiliza la variable β 0 , la cual se calcula con la fórmula 3.11, donde se utilizan los límites superior (cui ) e inferior (cli ) de la variable. 2 β0 = 1 + 2 min[(c1i − cli ), (cui − c2i )] (3.11) ci − c1i Para crear los hijos de igual forma que en el procedimiento sin límite de variables se utilizan las fórmulas 3.6 para el hijo 1 y 3.7 para el hijo 2. 3.3.6. Mutación con representación binaria La mutación, como se ha mencionado anteriormente, es un operador asexual, es decir, que no se necesita de otro individuo realizarla. En el caso de la representación binaria el único cambio posible es invertir el bit correspondiente, en otras palabras, cambiar de 0 a 1, o de 1 a 0 dependiendo el caso. Los operadores de mutación más comunes son la mutación simple, donde basada en una probabilidad (parámetro del AG) cambia aleatoriamente un gen del cromosoma. La mutación uniforme aplica el operador de mutación simple a todo el cromosoma con el mismo valor de probabilidad de mutación, es decir, gen por gen se decide si muta o no, dependiendo del porcentaje de mutación. En la figura 3.7 se muestra el efecto del operador de mutación uniforme. 3.3.7. Mutación con representación real Para la mutación con representación real, simplemente basándose en una probabilidad de mutación (parámetro del AG), el individuo sufrirá un cambio en la posición aleatoria con un valor aleatorio entre los rangos mínimos y máximos de la variable en cuestión utilizando la fórmula 3.3. 3.3.8. Reemplazo En el AG el reemplazo es generacional, quiere decir que los hijos generados reemplazan por completo a los padres de la población, sin importar si 30 Capítulo 3. Algoritmos Bioinspirados Figura 3.8: Inicialización de la población de la DE. son mejores o peores individuos, excepto si se utiliza el efecto del elitismo previamente mencionado. Para la optimización de controladores robóticos se han aplicado muchas variantes de los AGs, con más o menos probabilidad de mutaciones, tipos de cruzas y diversas formas de seleccionar a los padres. El uso de cada uno depende del problema en concreto ya que actualmente no existe una estrategia que se pueda considerar como mejor en todos los casos, debido a que los problemas de robótica son no determinísticos y dinámicos. 3.4. Evolución Diferencial Price y Storn desarrollaron ED con el objetivo de generar un versátil optimizador de funciones fácil de utilizar y de implementar (Storn y Price, 1997). Desde entonces la ED ha destacado en competencias tales como la IEEE’s International Contest on Evolutionary Optimization (ICEO) en los años 1996 y 1997. Como la mayoría de los ABs, la ED trabaja con una población de posibles soluciones inicializada de forma aleatoria (ver figura 3.8, para el caso de un problema de dos dimensiones), sin embargo la principal diferencia radica en sus operadores de cruza y mutación. A diferencia de otros enfoques, el operador de mutación en la ED no está basada en una función de distribución de probabilidad predefinida (por ejemplo la distribución Gaussiana), en su lugar la distribución del operador 3.4. Evolución Diferencial 31 de mutación depende de la distribución de las soluciones actuales y parece ser esa una de sus principales ventajas (Price, 1999). A los individuos de la población en la ED se les llama vectores. La ED maneja una codificación de números reales organizados en vectores, y maneja una selección de padres determinística, es decir, cada vector target (padre) crea un vector trial (hijo) y la selección de sobrevivientes es determinística, sobrevive el que tiene mejor calidad entre el vector target y el trial. El algoritmo de la ED en su versión simple se presenta en el algoritmo 2. Algorithm 2 Algoritmo general de la ED Iniciar población de vectores aleatoriamente for cada vector target de la población do Calcular calidad end for repeat for cada vector target de la población do Seleccionar tres vectores aleatorios Generar un trial Calcular calidad if Vector trial es mejor que Vector target then Reemplazar el target por el trial else Mantener target end if end for until alcanzar la condición de paro El operador de mutación en la ED consiste en una simple diferencia aritmética entre pares de vectores seleccionados aleatoriamente (x1 y x2 ), a esta diferencia se le conoce como el vector de perturbación (ver figura 3.9). Una vez obtenido el vector de perturbación, un tercer vector (x3 ) es seleccionado aleatoriamente y se le suma el vector de perturbación escalado, es decir, el vector de perturbación es multiplicado por un factor F que es un parámetro de la ED, el funcionamiento de la mutación es mostrado en la figura 3.10. En el operador de cruza en la ED realiza una selección por cada vector entre el vector mutado y el vector target para asignarlo al vector trial, esta selección es controlada por el parámetro CR (también llamado probabilidad de cruza). Básicamente la cruza y mutación se resume en el algoritmo 3. Aunque la ED es sumamente simple de entender e implementar, esto no impacta en el desempeño con respecto a los demás algoritmos bioinspirados, ya que es considerado uno de los más poderosos. Otra ventaja que ofrece la ED es que la calibración de sus parámetros no suelen requerir un ajuste muy fino (F y CR). 32 Capítulo 3. Algoritmos Bioinspirados Figura 3.9: Selección de vectores. Figura 3.10: Mutación. 3.4. Evolución Diferencial 33 Algorithm 3 Funcionamiento de la cruza binomial en la ED for cada vector target i de la población do jrand = rand[1,2,3,...,numVariables] Seleccionar aleatoriamente x1 , x2 , x3 for cada variable j del vector trial do if ( rand [0,1) <CR ) o ( j = jrand ) then uij = x3j + F (x1j -x2j ) else uij = xij end if end for end for El nombre técnico para el operador de cruza/mutación hasta ahora descrito es DE/rand/1/bin, debido a que el vector base es seleccionado aleatoriamente (rand ), 1 vector de diferencia es adherido al vector base, por último siguiendo una distribución binomial de sus parámetros, a esta versión se le denomina la ED clásica. Esta versión de la ED es suficientemente robusta para la mayoría de las aplicaciones, sin embargo, existen otros operadores de cruza. En la cruza uniforme (binomial ), es como tal uniforme en el sentido que cada variable en el vector tiene la misma probabilidad de heredar su valor de algún vector dado, esta probabilidad está dada por el parámetro CR de la ED. Este efecto puede notarse en el algoritmo 3. Por otro lado, la cruza exponencial (exponential ) simula de cierta forma la cruza de dos puntos del AG; en este operador, la selección de valores para el vector trial se realiza seleccionando aleatoriamente un número entre 0 y 1 por cada variable, si el valor aleatorio es menor o igual a CR, tomará el valor del vector mutado, cuando algún valor aleatorio sea mayor que CR, el actual y los siguientes valores del vector trial son tomados del vector target, el funcionamiento de la cruza exponencial se puede observar en el algoritmo 4. A esta cruza se le denomina exponencial debido al hecho que el número de herencias del vector mutante es exponencialmente distribuida en variables aleatorias y su nombre técnico es DE/rand/1/exp (Price et al., 2005). Otra forma de seleccionar al vector base en la ED es seleccionando al vector con mejor calidad en la población de vectores. Para el caso de la cruza binaria se le conoce como DE/best/1/bin y en el caso de la cruza la exponencial es conocida como DE/best/1/exp. En trabajos como (Slowik y Bialko, 2008; Garro et al., 2010) se ha utilizado la ED para entrenar y configurar una RNA. En el dominio de la robótica, la ED se ha utilizado en trabajos como (Joshi y Sanderson, 1999), donde se utiliza la ED para encontrar una representación mínima de la fusión de multisensores, y en (Moreno et al., 2007), donde la ED es utilizado en problemas 34 Capítulo 3. Algoritmos Bioinspirados Algorithm 4 Funcionamiento de la cruza exponencial en la ED for cada vector target i de la población do jrand = rand[1,2,3,...,numVariables] Seleccionar aleatoriamente x1 , x2 , x3 for cada variable j del vector trial do if ( rand [0,1) <CR ) o ( j = jrand ) then Romper ciclo else uij = x3j + F (x1j -x2j ) end if end for for cada variable restante j del vector trial do uij = xij end for end for de mapeo. 3.5. Optimización mediante cúmulos de partículas (PSO) Optimización de partículas, Particle Swarm Optimization (PSO) en inglés, es una técnica inspirada por el vuelo de las aves en busca de comida (Kennedy y Eberhart, 1995), Se puede describir en este ejemplo: en una parvada donde cada pájaro emite un sonido tan fuerte como la intensidad de comida que encuentra y puede percibir el sonido de las otras aves vecinas, y puede saber cuál de los vecinos emite el sonido más alto. Esto es una buena estrategia para encontrar rápidamente una fuente de alimento, además de que cada ave sigue una trayectoria combinando estos tres elementos: continuar volando en la misma dirección, regresar a la ubicación donde éste encontró la mayor concentración de alimentos y por último moverse hacia el ave vecino que mayor emite su sonido. PSO consiste en un número de partículas (aves) que colectivamente se mueven en el espacio de búsqueda tratando de localizar el máximo global. Cada partícula se caracteriza por su posición y su desempeño (ver figura 3.11). Por ejemplo si se busca optimizar una función, cada partícula contendrá las variables de la función y el correspondiente valor del resultado de la función. Las partículas son inicializadas aleatoriamente dentro del espacio de búsqueda (como los anteriores enfoques vistos) y se mueven de acuerdo a su información local. Cada partícula comunica su desempeño a las partículas vecinas y cada partícula puede recordar la posición con mejor desempeño 3.5. Optimización mediante cúmulos de partículas (PSO) 35 Figura 3.11: Un cúmulo de cinco partículas en búsqueda del mínimo global en un espacio de búsqueda con una variable x. en que ha estado, y puede comunicar la mejor posición a las demás partículas. Cada partícula actualiza su posición sumando fracciones de estos tres desplazamientos: Una fracción del desplazamiento en la misma dirección que este estaba siguiendo en el paso anterior (inercia). Una fracción del desplazamiento en la dirección hacia la posición que recuerda donde tuvo mejor desempeño (conocimiento cognitivo). Una fracción del desplazamiento en la dirección del vecino con mejor desempeño (conocimiento social). Formalmente la nueva posición xt+1 se describe en la fórmula 3.12, llamado i operador de vuelo. xt+1 = xti + vit+1 i donde: xti , es la posición actual de la partícula vit+1 , es la nueva velocidad de la partícula (3.12) 36 Capítulo 3. Algoritmos Bioinspirados Figura 3.12: La actualización de una partícula (círculo negro) está dada por la suma de las tres direcciones: su anterior dirección (círculo negro transparente), su mejor posición (círculo gris) y la mejor posición del vecino (círculo gris con borde negro). Cada dirección es pesada separadamente por las constantes a, b y c. Por lo que cierta aleatoriedad (líneas punteadas) es adherida a estas tres posiciones. La velocidad de cada partícula es computada sumando las tres direcciones mencionadas anteriormente(ver figura 3.12), la sumatoria se describe en la fórmula 3.13. vit+1 = avit + b(xpi − xti ) + c(xtj − xti ) (3.13) donde: a, b y c, son constantes que por separado controlan la importancia de las tres direcciones. vit , es la velocidad actual de la partícula. (xpi - xti ), es la diferencia entre la posición actual de la partícula y la mejor posición registrada p. (xtj - xti ), es la diferencia entre la posición actual de la partícula y la posición del vecino j con el mejor desempeño hasta el tiempo t. Cuando una partícula encuentra un mejor desempeño en un punto, se actualiza el valor de xpi . Sin embargo, la actualización de la velocidad requiere 3.5. Optimización mediante cúmulos de partículas (PSO) 37 cierta aleatoriedad que permita a las partículas explorar nuevas áreas en el espacio de búsqueda para evitar caer en un óptimo local. Este efecto se obtiene considerando valores aleatorios en el cálculo del conocimiento cognitivo y el conocimiento social. El efecto formalmente se representa en la fórmula 3.14. Donde rs y rt son valores aleatorios entre [0, s] y [0, t] respectivamente. vit+1 = avit + brs (xpi − xti ) + crt (xtj − xti ) (3.14) Existen diversas versiones para la selección de líderes, las más comunes son: Individual-best, en la que cada partícula compara únicamente su posición actual con respecto a su mejor posición obtenida hasta el momento (pbest). Global-best, donde cada partícula es influenciada por la mejor solución de toda la parvada (gbest) y por su experiencia propia (pbest). Local-best, cada partícula es influenciada por la mejor solución dentro de su vecindario (lbest) y por su experiencia propia (pbest). El vecindario de las partículas puede ser geográfico, donde el vecindario es dado por la posición de las partículas en el espacio de búsqueda, o puede ser social, en donde el vecindario se encuentra definido desde el principio de la evolución y es independiente a la posición en el espacio de búsqueda. Por ejemplo, una forma frecuente de usar un vecindario social consiste en ordenar las partículas en un círculo, en el cual, una partícula siempre escuchará y se comunicará con las partículas que integran este círculo. Se distinguen tres tipos (ver figura 3.13) para la formación de vecindarios: Topología de estrella, cada partícula se comunica con todas las demás partículas, formando una red totalmente conectada, se utiliza con el modelo gbest. Topología de anillo, cada partícula se comunica con sus n vecinos inmediatos, se utiliza con el modelo lbest. Topología de rueda, sólo una partícula se conecta a todas las otras; cuando esta partícula focal ajusta su posición hacia la mejor partícula, el resto de las partículas también ajustan su posición. En (Floreano y Mattiussi, 2008) se menciona que un tamaño típico de la parvada es entre [20, 200] partículas; mientras que el número de vecindarios suele ser una décima parte del número de partículas en una parvada. Los valores de a, b y c pueden estar entre el rango de [0.1,1.0]. El PSO se ha utilizado para el diseño de las RNA en trabajos como (Garro et al., 2009). Por otro lado, en el dominio de la robótica, el PSO se ha utilizado en trabajos como (Vahdat et al., 2007), donde el PSO en conjunto con la ED se utilizaron para tareas de localización. 38 Capítulo 3. Algoritmos Bioinspirados Figura 3.13: Diferentes topologías usadas en PSO. Discusión En el Capítulo 3 se presentó una breve historia de los ABs, y se describió la forma de operar de los siguientes ABs: AG con representación binaria, AG con representación real, PSO y ED. Estas técnicas se ocuparon para la optimización del neurocontrolador para obtener comportamientos. En el Capítulo 4 se describirá la metodología a seguir para realizar los experimentos, los cuales permitirán realizar una comparación entre los ABs previamente descritos. Capítulo 4 Diseño del Experimento Resumen: En este Capítulo se expone la forma en que se lleva a cabo el desarrollo experimental del proyecto, así como los aspectos técnicos correspondientes a la implementación. Se expone el escenario en el cual se realiza la implementación y también se realiza una descripción acerca de las herramientas y técnicas utilizadas para su elaboración. Para iniciar con el contenido de este Capítulo, es importante detallar un poco acerca de las herramientas utilizadas para el desarrollo de este proyecto; es por eso que a continuación se mencionan algunos detalles técnicos acerca de la plataforma robótica y la plataforma de simulación utilizados. Continuando con una descripción de los comportamientos a evolucionar (seguir paredes y evadir obstáculos) y los diferentes enfoques de los ABs utilizados en los experimentos. Por último, se describen las pruebas estadísticas que se aplicarán a los resultados obtenidos. En general, el objetivo de los experimentos es que cada AB desarrolle los comportamientos de seguir paredes y evadir obstáculos con los parámetros descritos en este Capítulo, en una serie de 5 evoluciones por cada AB, y así poder comparar, obtener conclusiones y realizar pruebas estadísticas de los resultados obtenidos. 4.1. Plataforma Robótica e-puck El e-puck es un robot diferencial de ruedas móviles (ver figura 4.1), originalmente fue diseñado para enseñanza de micro-ingeniería por Michael Bonani y Francesco Mondada en el laboratorio ASL del profesor Roland Siegwart de la EPFL (EscuelaPolitécnica Federal de Lausana, Suiza) (Bonani et al., 2009). Bonani y Mondana basaron el diseño del e-puck en los siguientes factores: Diseñar un pequeño robot, es decir, querían un robot que pudiera evolucionar y desenvolverse en un escritorio de trabajo de un estudiante, ya que ellos pensaban que para un estudiante, era importante tener la 39 40 Capítulo 4. Diseño del Experimento Figura 4.1: Robot e-puck. computadora junto al robot porque mejora drásticamente la eficiencia del experimento. Amplio campo de aplicación para actividades educativas, por lo que buscaron un compromiso entre sus sensores, procesamiento de energía y las extensiones, algunos ejemplos del campo de estudio que este robot ofrece son la robótica móvil, la programación en tiempo real, procesamiento de señales, electrónicas, sistemas colectivos entre otros. Una característica importante del e-puck es el poder adaptar módulos o aditamentos para mejorar su rendimiento o extender sus funciones; estos módulos son comúnmente llamados torretas y son montados en la parte superior del robot (ver figura 4.2), en las torretas se pueden agregar: cámaras, sonares, leds, etc. El e-puck es hardware abierto y el software de a bordo es de código abierto. Está construido y comercializado por varias empresas. Aunque el e-puck ha sido desarrollado para la educación, sus bajos precios y su gran número de sensores hacen que sea atractivo para la investigación. Se ha utilizado en robótica colectiva, robótica evolutiva, y el arte robótico (Bonani et al., 2009; Nolfi y Mirolli, 2009). Las características físicas del robot e-puck se pueden observar en la figura 4.3, a continuación se enlistan estas características: Diámetro: 70 mm. Altura: 50 mm. Peso: 200 g. Velocidad máxima: 13 cm/s Autonomía: 2 horas en movimiento. 4.1. Plataforma Robótica e-puck 41 Figura 4.2: Robot e-puck con torreta, la cual contiene tres cámaras lineales, utilizadas para calcular flujo óptico y poder simular la señal utilizada por los insectos para determinar la distancia a un objeto. Procesador: DsPIC30F6014A @ 30 MHz (15 MIPS) RAM: 8 KB.Flash: 144 KB. 2 motores paso a paso. 8 sensores de distancia por infrarrojos (TCRT1000). Cámara a color VGA (640 x 480). 8 LEDs en anillo, 1LED frontal y 1 LED de alimentación. Acelerómetro 3D. 3 micrófonos. Un altoparlante. En toda plataforma robótica tanto los sensores como los actuadores permiten al robot interpretar e interactuar con el mundo real. A continuación se describen los principales sensores y actuadores del e-puck: Sensores infrarrojos, son utilizados para detectar la proximidad de algún objeto, o para distinguir colores, por estas características son los sensores más usados del e-puck. El e-puck tiene ocho sensores infrarrojos distribuidos alrededor de su circunferencia (ver figura 4.4). Cada sensor infrarrojo está constituido por un módulo emisor de luz (led) 42 Capítulo 4. Diseño del Experimento Figura 4.3: Partes físicas del robot e-puck. y un receptor (fototransistor) normalmente de tipo infrarrojo que interactúan entre sí. De esta manera cuando se encuentran con un obstáculo, los rayos que emite el LED son reflejados y percibidos por el fototransistor. Cámara CMOS, la cámara del e-puck cuenta con una resolución de hasta 640 x 480 pixels y a color; la desventaja es que tal cantidad de información no puede ser procesada en tiempo real por el procesador del e-puck. Por lo que en la práctica se toman imágenes de 40 x 40 pixels, a 4 fotogramas por segundo y en escala de grises. Acelerómetro 3D, utilizado por el e-puck para medir las fuerzas de aceleración utilizadas para calcular su velocidad, detectar vibraciones así como si se encuentra subiendo o bajando una pendiente. Micrófonos y bocina, mediante estos dispositivos el e-puck emite y percibe sonidos del ambiente que los rodea. Comunicación por bluetooth, este tipo de comunicación inalámbrica, es muy utilizada por los usuarios porque permite enviar el programa (o controlador robótico) de la computadora hacia el e-puck para la ejecución del programa. Otra funcionalidad es que permite la comunicación entre dos o más e-pucks. Motores paso a paso, este tipo de motores son los más recomendados para este tipo de robots debido a que son mucho más precisos que otros motores. Un motor paso a paso es capaz de avanzar una serie de grados (un paso) según como se desee. Los motores del e-puck pueden avanzar desde 1.8 hasta 90 grados. 4.2. Simulador Player-Stage 43 Figura 4.4: Distribución de sensores infrarrojos en el e-puck. El e-puck cuenta con un software integrado, en el software se incluye una biblioteca para el acceso al hardware y un gestor de arranque para cargar programas a través de bluetooth. 4.2. Simulador Player-Stage Player es un servidor que permite controlar los dispositivos (actuadores) de un robot y obtener información de sus percepciones (sensores). Es una capa de software que abstrae los detalles del hardware del robot, independizando al usuario del mismo. Los programas controladores del robot funcionarán como clientes de Player (a través de sockets TCP/IP). Así podemos controlar el robot enviando mensajes que sigan el protocolo de comunicación de Player o (que será lo habitual) llamando a funciones de las librerías de Player, que abstraen los detalles de comunicación. La distribución actual de Player incluye librerías en lenguajes tan diversos como C++, Java, Python o Lisp. Para este proyecto se utilizó el lenguaje C++. Player define una serie de interfaces estándar, cada una de las cuales es una especificación de las formas en las que se puede interactuar con alguna clase de dispositivos. Por ejemplo la interfaz interface_position2d es usado por los robots móviles que se mueven por el suelo; permitiéndoles aceptar comandos que les hacen moverse (con objetivos a conseguir en velocidad o en posición) y devuelve su estado (la velocidad y la posición actual). El trabajo del driver es hacer que el robot de soporte a una interfaz definida como estándar. Así el código de control escrito para Player que es usado en un robot podrá funcionar (dentro de unos límites razonables) en otro robot. Del lado del cliente en Player existe flexibilidad para programar el con- 44 Capítulo 4. Diseño del Experimento trolador robótico, es decir, no impone un paradigma de programación en particular, puede programarse el controlador con un paradigma percepción/ planificación/acción, un paradigma basado en comportamientos, etc. Otra ventaja de Player es que puede ser utilizado en diversas plataformas robóticas (pioneer, roomba, e-puck, khepera, etc.), Por otro lado, Stage es un simulador de robots móviles en 2D que se puede utilizar en conjunto con Player, ya sea para hacer pruebas iniciales de los algoritmos o cuando no se dispone de un robot real. Para el código será transparente el trabajar con un robot real o con un robot simulado en Stage. Stage proporciona varios modelos de sensores y actuadores, incluyendo sensores de rango sonar e infrarrojo, sensores para encontrar y seguir ciertos colores, sensores para encontrar información sobre la identidad de un determinado objeto y bases de robot con localización odométrica o global(ver figura 4.5). Stage se diseñó pensando en sistemas de múltiple agente, así que dispone de modelos que son simples y no son muy pesados computacionalmente de la mayoría de los dispositivos en vez de intentar emular cada dispositivo con gran fidelidad. Con este diseño se intenta tener un compromiso útil entre una simulación de gran calidad y la simulación mínima útil. Con esto se pretende que Stage sea suficientemente realista para permitir a los usuarios usar los mismos programas de control entre los robots de Stage y los del mundo real y a la vez que sea posible simular con velocidad suficiente grandes poblaciones de robots (Player-Stage, 2011). Player y Stage juntos se llaman Player-Stage y hacen una simulación de robots, sin embargo, las mismas instrucciones que se utilizan en la simulación se pueden utilizar en un robot real de manera casi transparente. Una simulación generalmente se compone de tres partes: El código, el cual habla o interactúa con Player. Player, que contiene su código y envía instrucciones a un robot. Desde el robot consigue datos de los sensores y los envía a su código. Stage, escenario de interfaces con Player, de la misma manera como el hardware del robot haría. Recibe las instrucciones de Player y mueve un robot en un mundo simulado, y pone los datos del sensor del robot en la simulación y la envía a Player. Player y Stage fueron desarrollados originalmente en el Robotic Research Lab de la USC (University of South California), pero en la actualidad son el resultado del esfuerzo conjunto de una amplia comunidad de desarrolladores. Es un proyecto de código abierto mantenido actualmente en el repositorio de Sourceforge. 4.2. Simulador Player-Stage 45 Figura 4.5: Simulación en Player-Stage de un robot Pioneer con un laser Sicklms200. 4.2.1. Filosofía de programación Player-Stage La librería de Player desarrollada en C++ sigue un modelo de programación basado en proxies. El programa cliente interactúa con objetos locales (los proxies), que actúan de intermediarios con los dispositivos físicos del robot. Siguiendo la filosofía de la Programación Orientada a Objetos, el programador llama a los métodos de los objetos proxy para controlar al robot y para obtener información de éste, olvidándose de los detalles de la comunicación por la red. Cada proxy es una clase de C++ y representa al propio robot o bien uno de sus dispositivos. La documentación de Player incluye una referencia de todas las clases proxy existentes junto con sus métodos. Los programas hechos con Player normalmente seguirán estos pasos: Establecer la conexión con el robot, a través de un objeto de la clase PlayerClient Conectarse a los dispositivos con los que se va a interactuar. Por ejemplo, usando la clase SonarProxy para realizar lecturas con los sonares, o la clase PositionProxy para interactuar con los motores. Entrar en un ciclo en el cual se leerá la información de los sensores y se enviarán instrucciones a los actuadores. Player se comunica con el 46 Capítulo 4. Diseño del Experimento robot a intervalos regulares, para realizar esta comunicación se utiliza el método Read() de la clase PlayerClient. En la figura 4.6 se muestran los diagramas de clase que se utilizaron en este proyecto. A continuación se detallan las clases y métodos utilizados: PlayerClient, el cual permite realizar la conexión con el robot o el simulador Stage. • Read, leer datos del servidor. Position2dProxy, permite interactuar con las propiedades asociadas al movimiento del robot. • SetSpeed, manda la instrucción a los motores para movimiento. • GetStall, método utilizado para saber si el robot ha chocado. RangerProxy, accede a la lectura de los sensores infrarrojos del robot. • GetRange, obtiene el valor de la lectura de un infrarojo. SimulationProxy, permite interactuar con los objetos del mundo, es útil para situar al robot en nuevas posiciones cuando choca. • SetPose2d, mueve un objeto del mundo de Stage a una nueva posición en el mapa. 4.3. Archivos de configuración Player-Stage En Player-Stage existen tres tipos de archivo importantes para realizar simulaciones robóticas en un mundo simulado, estos son: El archivo de configuración de Player (.cfg) contienen información sobre los dispositivos del robot. En caso de utilizar Stage, estos no serán reales, sino simulados. Para la configuración de los dispositivos del robot, Player distingue entre interfaz y driver. Una interfaz es una serie de funcionalidades que proporciona un determinado dispositivo, mientras que un driver es una implementación concreta de una interfaz. Por ejemplo, si un robot tiene un láser, en el archivo de configuración se debe de indicar a Player el nombre del dispositivo, el tipo de dispositivo y el puerto donde está conectado. Suponiendo que el robot tiene un láser sick lms 200, en el archivo de configuración se debe de especificar de la siguiente manera: 4.3. Archivos de configuración Player-Stage 47 Figura 4.6: Diagrama de las clases PlayerClient, Position2dProxy, RangerProxy, SimulationProxy. 48 Capítulo 4. Diseño del Experimento driver( name "sicklms200" provides ["laser:0"] port "/dev/ttyS0" ) Para indicar a Player que se desea utilizar Stage para la simulación, se debe de agregar de igual manera en el archivo de configuración un driver especificando el plugin del Stage, así como el archivo de las propiedades del mundo de la simulación, por ejemplo: driver ( name "stage" provides ["simulation:0"] plugin "libstage" worldfile "simple.world" ) El archivo del mundo (.world) se encuentran listados los objetos que contiene el mundo simulado en Stage: obstáculos, mapa, robot(s), ventana de simulación, etc.; así como sus características: tamaño, posición, color, etc. Por ejemplo, el tamaño de la ventana de la simulación y el mapa se declaran de la siguiente forma: window ( size [700.000 700.000] scale 41 ) # load an environment bitmap floorplan ( bitmap "bitmaps/cave.png" size [15 15 1.5] ) El archivo de inclusión (.inc) sigue la misma sintaxis que el formato de un archivo del mundo, con la diferencia de que los archivos .inc pueden ser incluidos en varios archivos sin necesidad de copiar el mismo código. 4.4. Simulación de robot e-puck en Player-Stage Para la simulación del robot e-puck en Player-Stage se tomó como base el trabajo de Jenny Owen (Owen, 2011), al cual se le hicieron unas modificaciones para adaptarlo a las necesidades del proyecto. 4.5. Comportamientos a evolucionar a) Ambiente real 49 b) Ambiente simulado Figura 4.7: a) El robot físico colocado en una arena delimitada por cuatro paredes. b) El escenario virtual en Player-Stage, con un robot e-puck (círculo rojo) con ocho sensores de proximidad (en verde) dentro de una arena delimitada por cuatro paredes. En la simulación, el robot utilizará los 8 sensores de proximidad (infrarrojos) y los 2 motores. En la figura 4.7 se muestra el robot e-puck en la arena donde se realizan las pruebas reales y el robot e-puck simulado en PlayerStage, que es donde se realizará la evolución para alcanzar el comportamiento deseado. En la simulación las lecturas de los sensores son normalizadas de 0 a 1, es decir, la entrada se divide entre el rango máximo permitido, esto facilita tener una equivalencia más real entre las lecturas del e-puck físico y el simulado. El 1 indica que el sensor no detecta obstáculo alguno, mientras que la lectura más cercana a 0 indica la cercanía de un objeto o la pared, dependiendo el caso. Los motores se mueven en función de dos velocidades: la velocidad lineal y la velocidad angular. 4.5. Comportamientos a evolucionar Los comportamientos a evolucionar en los experimentos son:seguir paredes y evadir obstáculos. Como fue mencionado en el Capítulo 2, en el proceso de evolución, cada individuo es probado en n ocasiones en el ambiente para evaluar de forma cuantitativa el desempeño del comportamiento que se desea alcanzar. La calidad del comportamiento se evalúa mediante la función de calidad durante cierto tiempo. Generalmente se otorga el tiempo suficiente para que el robot pueda desarrollar el comportamiento por completo; por ejemplo, en el caso del comportamiento de seguir paredes, se evalúa un tiempo suficiente para que el robot encuentre la pared y ejecute una vuelta completa a la arena sin alejarse de la pared. En la fórmula 4.1 se describe la función de calidad utilizada para el comportamiento de seguir paredes y en la fórmula 4.2 la 50 Capítulo 4. Diseño del Experimento función de calidad para evadir obstáculos. 4.5.1. Comportamiento de seguir paredes Para el comportamiento de seguir paredes, se diseñó la fórmula 4.1 en conjunto con el profesor José Santos1 . f= n X [(velocidadLineal)∗(1−abs(velocidadAngular))∗(1−minir )] (4.1) i=0 Donde: velocidadLineal ∈ {0, 1}, 0 representa el valor mínimo para la velocidad y 1 el máximo. velocidadAngular ∈ {−1, +1}, -1 representa que el robot está girando a la izquierda y +1 hacia la derecha, mientras que 0 indica que está moviendo en línea recta (sin giros). min_ir ∈ {0, 1} es la menor lectura de los 8 sensores infrarrojos. El primer término velocidadLineal del producto maximiza la velocidad del robot, el segundo término 1 − abs(velocidadAngular) maximiza que el movimiento del robot sea recto. Por último, el tercer término 1 − min_ir premia cuando el robot se encuentra cerca de una pared. Obteniendo, con esta función de calidad, el comportamiento de seguir paredes. Para esta función de calidad, en las neuronas de entrada los valores se normalizan de 0 a 1, las neuronas intermedias y de salida utilizan la función de transferencia sigmoide para generar salidas en un rango de -1 a 1. Las salidas de la primer neurona se utilizan para determinar la velocidad lineal del e-puck, aunque las salidas son de -1 a 1, al robot sólo se le permite ir hacia adelante (solo valores positivos) con una velocidad máxima de 0.4. Por lo tanto se le aplica una regla de 3 a la salida de la neurona. En el caso de la segunda neurona de salida que controla la velocidad angular, la salida es multiplicada por π2 y el resultado es la velocidad del motor, por lo que puede tomar valores entre − π2 y π2 . 4.5.2. Comportamiento de evadir obstáculos Para el comportamiento de evasión de obstáculos se diseñó la fórmula 4.2 tomando como base la función de calidad descrita en (Nolfi y Floreano, 1 Profesor titular de Ciencias de la Computación e Inteligencia Artificial, Departamento de Computación, Universidad de Coruña, España. [email protected] 4.6. Adaptación del comportamiento a una Red Neuronal Artificial 51 2000). f= n X i=0 [(velocidadLineal) ∗ (1 − abs(velocidadAngular)) ∗ minir ] (4.2) Donde: velocidadLineal ∈ {0, 1}, 0 representa el valor mínimo para la velocidad y 1 el máximo. velocidadAngular ∈ {−1, +1}, -1 representa que el robot está girando a la izquierda y +1 hacia la derecha, mientras que 0 indica que se está moviendo en línea recta (sin giros). min_ir ∈ {0, 1} es la menor lectura de los 8 sensores infrarrojos. De acuerdo a lo descrito en la función 4.1, el primer término velocidadLineal del producto maximiza la velocidad del robot, el segundo término 1- abs(velocidad Angular) maximiza que el movimiento del robot sea recto. A diferencia de la función 4.1, en la función 4.2 el término min_ir premia cuando el robot no está cerca de la pared u obstáculos, generando el comportamiento de evadir obstáculos. En la primera función de calidad, las entradas de la RNA se normalizan de 0 a 1, las neuronas intermedias y de salida utilizan la función de transferencia sigmoide para generar salidas en un rango de -1 a 1. Las salidas de la primer neurona se utilizan para determinar la velocidad lineal del e-puck, aunque las salidas son de -1 a 1, al robot sólo se le permite ir hacia adelante (solo valores positivos) con una velocidad máxima de 0.4, por lo que se le aplica una regla de 3 a la salida de la neurona. En el caso de la segunda neurona de salida que controla la velocidad angular, la salida es multiplicada por π2 y el resultado es la velocidad del motor, por lo que puede tomar valores entre − π2 y π2 . 4.6. Adaptación del comportamiento a una Red Neuronal Artificial En los experimentos de este trabajo se emplean los sensores infrarrojos del e-puck para recibir información del ambiente (de la arena delimitada por las 4 paredes) y así poder evolucionar los comportamientos de seguir paredes y evadir obstáculos. Estos comportamientos, como se menciona en el Capítulo 2, serán desarrollados por una RNA. La RNA consta de una red tipo perceptrón multi-capa unidireccional con conexiones no recurrentes, la topología de la red es de ocho neuronas en la capa de entrada (que representan los 8 sensores infrarrojos), cuatro neuronas en la capa oculta y dos en la capa 52 Capítulo 4. Diseño del Experimento Figura 4.8: Topología de la RNA empleada en los experimentos (no todas las conexiones están representadas). de salida (que representan los motores o actuadores del robot). En la figura 4.8 se muestra la topología de la red. Los pesos de la RNA son codificados directamente dentro de un vector de 40 elementos, los valores de los pesos se inicializan de forma aleatoria y se van modificando dependiendo la técnica evolutiva empleada. Los pesos se controlan para que no salgan del rango de -10 a 10 durante el proceso de evolución. 4.7. Afinación de pesos de la RNA mediante Algoritmos Bioinspirados Como se mencionó en el Capítulo 2, los algoritmos bioinspirados son utilizados para encontrar una configuración de pesos en la RNA que pueda desarrollar el comportamiento deseado. Cada individuo en la población es una posible configuración de pesos, y este individuo es probado en el ambiente y evaluado mediante las funciones de calidad descritas en el apartado 4.5. Dependiendo de la técnica y sus operadores, los pesos se van modificando a lo largo de todo el proceso de evolución, buscando generar mejores individuos que puedan maximizar la función de calidad. Las técnicas empleadas para el desarrollo de comportamientos robóticos son: AG con representación binaria, AG con representación real, ED y PSO. En la tabla 4.1 se detallan los parámetros de cada uno de estos algoritmos, obtenidos mediante prueba y error. Particularmente, para los parámetros de 4.7. Afinación de pesos de la RNA mediante Algoritmos Bioinspirados 53 la ED se basó en el trabajo de (Mezura-Montes et al., 2010), donde se explora la efectividad de la configuración de los parámetros de la ED para diversos problemas. Tabla 4.1: Parámetros de algoritmos bioinspirados Algoritmo AG bin Selección de Padres Torneo bin determinista Cruza Un punto Mutación Uniforme AG real Torneo bin determinista SBX Uniforme ED DE/best/1/bin PSO Local Best Parámetros Pop: 100 Generaciones: 300 Cruza: 85 % Mutación: 1 % Torneo: 5 % Elitismo: 2 % Pop: 100 Generaciones: 300 Cruza: 70 % Mutación: 1 % Torneo: 5 % Elitismo: 2 % Pop: 150 Generaciones: 200 CR: 1.0 F: .8 Pop:160 Generaciones: 200 w: 0.5 c1: 0.7 c2: 0.7 Vecindarios: 4 Al momento de evaluar a un individuo del AB, el robot es colocado aleatoriamente en alguna posición de la arena, esta posición debe ser válida, es decir, no se colocará en alguna zona donde se localice un objeto o sobre alguna pared de la arena. El individuo es probado durante 400 pasos o lecturas, este tiempo es suficiente para que el robot pueda desarrollar el comportamiento en toda la arena, durante cada paso se calcula la aptitud y se sumará a la fitness acumulada. Este proceso es repetido 5 veces por cada individuo del AB, por lo que al final de cada evaluación se tendrán 5 aptitudes, la media de éstas será asignado como la aptitud final del individuo. 54 4.8. Capítulo 4. Diseño del Experimento Elaboración de pruebas estadísticas Cada experimento se repetirá 5 veces, es decir, para obtener cada uno de los comportamientos previamente mencionados se utilizará cada AB con los parámetros mencionados en la sección anterior en 5 ocasiones. Esto permite observar si los resultados obtenidos por cada AB son consistentes y permite elaborar diversas pruebas estadísticas. Las pruebas estadísticas que se utilizarán son las recomendadas en (Derrac et al., 2011). Éstas son la prueba de Wilcoxon y la prueba de Friedman, que se emplean para el análisis estadístico de resultados en la rama del Cómputo Inteligente. La prueba estadística de Wilcoxon es un procedimiento no paramétrico utilizado para definir si existe diferencia significativa entre 2 poblaciones. Para nuestro caso, se hará una comparativa de los resultados de cada AB contra los demás; por ejemplo, se comparará los resultados obtenidos de las 5 ejecuciones del PSO contra el resultado de las 5 ejecuciones de los otros tres ABs utilizados. Por otro lado, la prueba estadística de Friedman es una prueba de comparación de tres o más muestras relacionadas y se utiliza para comparar más de dos poblaciones. Así como determinar que la diferencia entre éstas no se deba al azar, es decir, que la diferencia sea estadísticamente significativa. Ambas pruebas se desarrollarán con un 95.0 % de probabilidad. Además de las pruebas estadísticas de Wilcoxon y Friedman, que involucran comparación de los resultados entre dos o más ABs, para los resultados de las 5 ejecuciones por cada AB se obtendrá: la mejor solución obtenida por el AB en las 5 ejecuciones; la media y la desviación estándar de la mejor solución de las 5 ejecuciones; y por último el número de evaluaciones que realizó el AB hasta llegar a la mejor solución (una evaluación es efectuada cuando el AB evalúa y asigna la calidad a un individuo). Discusión En este Capítulo se describió la metodología a desarrollar en los experimentos, desde la plataforma robótica a utilizar, simulador utilizado para la etapa de evolución del neurocontrolador, comportamientos a desarrollar, parámetros de los ABs utilizados y pruebas estadísticas para el análisis de resultados. En el Capítulo 5, se discutirán los resultados obtenidos de los experimentos descritos en este Capítulo. Capítulo 5 Discusión de resultados Resumen: En este Capítulo se detallarán los resultados obtenidos de los experimentos descritos en el Capítulo 4. Se mostrarán gráficas y datos estadísticos obtenidos de los resultados, así como comparaciones entre los algoritmos utilizados para ambos comportamientos. 5.1. Evolución del comportamiento seguidor de paredes Para estos experimentos se utilizaron los ABs, así como los parámetros mencionados en la Tabla 4.1, con la función de calidad descrita en la fórmula 4.1. Para el desarrollo de este comportamiento se utilizó el mapa 4.7b en el simulador Player-Stage. Tabla 5.1: Resultados de los ABs en las 5 evoluciones para desarrollar el comportamiento de seguir paredes Ev.1 Ev.2 Ev.3 Ev.4 Ev.5 AB Mejor 164.588 172.177 163.499 145.812 202.775 bin Media 5.346 8.000 3.571 3.442 5.670 AG Mejor 142.985 198.904 227.894 242.439 204.941 real Media 53.744 129.564 133.631 185.376 97.901 ED Mejor Media 246.266 210.770 215.079 186.629 229.796 211.943 232.882 223.153 230.570 221.153 PSO Mejor Media 198.314 67.844 215.697 66.389 189.816 60.664 207.614 141.542 198.389 84.579 En la Tabla 5.1 se muestran los resultados obtenidos por evolución de cada AB, donde se describe la calidad obtenida por el mejor individuo y la media de las calidades de los individuos en la última generación. 55 56 Capítulo 5. Discusión de resultados El AG con representación binaria obtuvo resultados bajos en la mayoría de sus evoluciones, excepto en la evolución 5 donde obtuvo una calidad aceptable. El AG con representación real obtuvo buenos resultados en 4 de sus evoluciones, sobresaliendo la evolución número 4, donde alcanza una calidad de 242.439, siendo la segunda mejor calidad obtenida por todos los ABs. La ED genera buenos resultados en todas las evoluciones, obteniendo una calidad de 246.266 en la primer evolución, la cual es la mejor calidad de los presentados por los ABs. Por último, el PSO obtiene soluciones aceptables, sin embargo, no obtiene soluciones sobresalientes. Se puede observar que la ED es el único AB en el que la media de la población es cercana al valor del mejor individuo. Mientras que los demás ABs muestran diferencia entre estos 2 valores, lo cual indica una población dispersa, en especial el caso del AG con representación binaria, que la media de la población es muy baja con respecto al mejor individuo. De los resultados descritos en la Tabla 5.1 se obtuvieron las siguientes estadísticas por cada AB: el mejor individuo; la media de los mejores individuos; la desviación estándar de los mejores individuos; y el número de evaluaciones de cada evolución. Estas estadísticas son mostradas en la Tabla 5.2. Tabla 5.2: Estadísticas de ABs para el comportamiento de seguir paredes Mejor Media Desv. Est. Evaluaciones AB bin 202.775 169.77 20.828 30,000 AG real 242.439 203.432 38.067 30,000 ED 246.266 230.918 11.086 30,000 PSO 215.697 201.966 9.927 30,080 En la Tabla 5.2 se puede observar que la mejor solución, es decir, la que tiene la calidad más alta, lo generó la ED con 246.266 de calidad, seguida del AG con representación real con 242.439 de calidad, continuando con el PSO con 215.697 y por último el AG con representación binaria con 202.775. En el caso de la media, el mejor desempeño lo obtuvo de nuevo la ED con 230.918, lo cual indica que en las 5 ejecuciones tuvo un buen y constante desempeño, seguida del AG con representación real, PSO y por último el AG con representación binaria con una media muy baja, debido a que sólo en una evolución obtuvo un buen resultado. La desviación estándar indica la diferencia que existe entre los mejores individuos de cada evolución por AB, es decir, la consistencia de los resultados obtenidos, en el cual el PSO tuvo una desviación estándar de 9.927, mientras que la ED muy cercana obtuvo 11.086; estos dos algoritmos demostraron ser muy consistentes en sus resultados, caso contrario de ambos AGs. Aunque la ED obtuvo una desviación estándar mayor que el PSO, cabe 5.1. Evolución del comportamiento seguidor de paredes 57 Figura 5.1: Gráfica de convergencia en la que se muestra la media de las 5 ejecuciones de cada AB utilizados para evolucionar el comportamiento de seguir paredes. Donde se puede observar que la mejor calidad la obtuvo la ED con 230.918, seguido del AG con representación real con 203.432, PSO con 201.966 y el AB con representación binaria con 169.77. resaltar que la ED obtuvo calidades superiores que el PSO. Se puede observar que en el número de evaluaciones de la mayoría de los ABs es 30,000, excepto el PSO que tiene 30,080 evaluaciones, esto debido al número de individuos seleccionados para el PSO. Para una comparación más significativa, se realizó la media de las 5 evoluciones por algoritmo, obteniendo así una “evolución promedio” de cada AB. El resultado de esta comparativa se muestra en la Figura 5.1, donde se puede observar que la ED obtuvo el mejor rendimiento, seguido del AG con representación real, PSO y AG con representación binaria respectivamente. El PSO encontró más rápido a una solución competitiva, alrededor de la generación 85, sin embargo a partir de esta generación el PSO mejoró poco. Por otro lado, la ED siguió incrementando la calidad con el paso de las generaciones sobrepasando el desempeño del PSO. El AG con representación real mostró un mejor desempeño que el AG con representación binaria principalmente a partir de la generación 55, donde la calidad del AG con representación real muestra un crecimiento superior al del AG con representación binaria, llegando a superar al PSO al final de la evolución. En general, los mejores individuos de cada evolución de los ABs presentan el siguiente comportamiento: cuando el robot es situado en la parte central 58 Capítulo 5. Discusión de resultados Figura 5.2: Simulación del mejor individuo encontrado por la ED. En la cual se puede observar que el robot simulado comienza a buscar la pared casi en línea recta hasta encontrar la pared, una vez que localiza la pared, empieza a seguirla evitando chocar en la pared. Mostrando el comportamiento de seguir paredes. Figura 5.3: Comportamiento del mejor individuo encontrado por la ED en el robot e-puck físico. El robot inicia buscando una pared, cuando la pared es encontrada, el e-puck comienza a seguir la pared sin chocar. 5.1. Evolución del comportamiento seguidor de paredes 59 Figura 5.4: Gráfica de convergencia de la mejor evolución del AG con representación binaria para el comportamiento de seguir paredes. El mejor individuo obtuvo una calidad de 202.775, se puede observar que la calidad media de la población está alejada del mejor individuo. de la arena, comienza a buscar la pared casi en línea recta, una vez que localiza la pared, empieza a seguirla, ya sea por la derecha o por la izquierda del robot, evitando chocar en la pared. Mientras mejor calidad tienen los individuos, este comportamiento lo realizan de una manera más fina, es decir, se nota este comportamiento con mucha uniformidad. Por ejemplo, el mejor individuo de la ED avanza más cerca de la pared que el mejor individuo del AG con representación binaria, además de avanzar más rápido por la arena. En la Figura 5.2 se muestra el comportamiento en el simulador PlayerStage del mejor individuo de la ED, mientras que en la Figura 5.3 se muestra el mismo comportamiento en el robot físico e-puck. Por cada AB se realizó la gráfica de convergencia de la evolución con mejor desempeño, estas gráficas son mostradas de la Figura 5.4 a la Figura 5.7. En la gráfica de convergencia se muestra por cada generación (eje x ) el mejor individuo y la media de la población (eje y). En la Figura 5.4, se muestra la gráfica de convergencia del AG con representación binaria, alcanzando una calidad de 202.775 en la generación 235. En la gráfica de convergencia se puede observar que la calidad media de la población se encuentra muy separada de los mejores individuos, indicando una población dispersa dentro del espacio de búsqueda y generalmente ubicadas en lugares donde la calidad es baja, generando dificultad para encontrar 60 Capítulo 5. Discusión de resultados Figura 5.5: Gráfica de convergencia de la mejor evolución del AG con representación real para el comportamiento de seguir paredes. El mejor individuo obtuvo una calidad de 242.439 y la media de la población es de 185.376. a soluciones competitivas. La gráfica de convergencia del AG con representación real se muestra en la Figura 5.5, que a diferencia del AG con representación binaria, la calidad media de la población se acerca al mejor individuo conforme avanza la evolución. El AG con representación real encuentra una buena solución en la generación 140, donde el mejor individuo obtiene una calidad superior a 220. La mejor calidad es obtenida en la generación 238, donde el mejor individuo alcanza una calidad de 242.439. En la Figura 5.6, se muestra la gráfica de convergencia de la ED, la cual muestra una evolución consistente alcanzando una calidad de 246.266, la cual es la mejor calidad obtenida por los ABs. Es importante destacar que la diferencia entre la media de la población y el mejor individuo es pequeña, indicando que tiene una población con buenas soluciones, sin embargo, la población no se estanca en máximos locales, ya que sigue encontrando mejores soluciones conforme avanza la evolución. En la gráfica de convergencia del PSO, mostrada en la Figura 5.7, se puede observar que desde generaciones jóvenes obtiene una buena calidad, sin embargo el aumento de calidad conforme madura la evolución es mínima. El PSO alcanza una calidad de 215.697; la media de la población se encuentra alejada del mejor individuo y conforme avanza la evolución la media se acerca al mejor individuo. 5.1. Evolución del comportamiento seguidor de paredes 61 Figura 5.6: Gráfica de convergencia de la mejor evolución de la ED para el comportamiento de seguir paredes. El mejor individuo obtuvo una calidad de 246.266 y la media de la población es de 210.770. La calidad media de la población es muy cercana a la calidad del mejor individuo. Figura 5.7: Gráfica de convergencia de la mejor evolución del PSO para el comportamiento de seguir paredes. El mejor individuo obtuvo una calidad de 215.697 y la media de la población es de 66.389. 62 Capítulo 5. Discusión de resultados En la Tabla 5.3 se muestran los resultados de aplicar la prueba estadística Wilcoxon entre los resultados de los cuatro ABs utilizados, en todos los casos el p-value es menor a 0.05, lo cual indica que la diferencia en la comparación de cada uno de los algoritmos es estadísticamente significativa con un 95.0 % de probabilidad. Al aplicar la prueba de Friedman al resultado de los 4 ABs, se obtuvo un p-value de 1.30E-99, lo cual indica una diferencia significativa en el resultado de los 4 ABs, de igual forma con un 95.0 % de probabilidad. Tabla 5.3: Resultados de la prueba estadística Wilcoxon para el comportamiento de seguir paredes Algoritmo AG bin AG real ED PSO 5.2. AG bin 9.89E-78 1.93E-192 3.22E-215 AG real 9.89E-78 1.95E-38 3.71E-16 ED 1.93E-192 1.95E-38 4.80E-36 PSO 3.22E-215 3.71E-16 4.80E-36 - Evolución del comportamiento evadir obstáculos Al igual que en el comportamiento de seguir paredes, para la evolución del comportamiento de evadir obstáculos se utilizaron los ABs, así como los parámetros mencionados en la Tabla 4.1, y la función de calidad descrita en la fórmula 4.2. Para el desarrollo de este comportamiento se utilizó el mapa 4.7b en el simulador Player-Stage. Tabla 5.4: Resultados de los ABs en las 5 evoluciones para desarrollar el comportamiento de evadir obstáculos Ev.1 Ev.2 Ev.3 Ev.4 Ev.5 AB Mejor 285.963 308.687 286.463 279.703 301.196 bin Media 18.613 21.494 15.592 15.478 19.578 AG Mejor 310.721 308.748 285.009 307.154 312.185 real Media 276.851 122.123 192.078 217.603 204.276 ED Mejor Media 312.855 309.427 313.781 310.438 313.231 310.638 312.604 310.073 315.481 312.835 PSO Mejor Media 299.002 254.144 283.582 199.957 297.191 246.1 290.856 212.384 274.277 218.061 Los resultados obtenidos de la evolución del comportamiento de evadir obstáculos se describen en las Tablas 5.4 y 5.5, en la primer tabla se describe la calidad obtenida por el mejor individuo y la calidad media de la población en la última generación. En la segunda tabla, por cada AB se describe: el mejor individuo; la media de los mejores individuos; la desviación estándar 5.2. Evolución del comportamiento evadir obstáculos 63 de los mejores individuos; y el número de evaluaciones de cada evolución. En la Tabla 5.4 se puede observar que en general los ABs obtienen resultados aceptables, sobresaliendo el caso de la ED que en todas sus evoluciones obtiene mejores resultados que cualquier otro AB. Seguido del AG con representación real, el cual en la mayoría de los casos obtuvo calidades superiores a 307, excepto en la evolución número 3, mismo efecto que mostró en el comportamiento de seguir paredes. El AG con representación binaria alcanzó calidades superiores a 300 sólo en 2 evoluciones, mientras que el PSO mostró un desempeño por debajo de los demás ABs debido a que en todas sus evoluciones obtuvieron calidades menores a 300. En la Tabla 5.4 se puede observar que la ED es el único AB que el valor de la media de la población es muy cercano al valor del mejor individuo, resultado similar al que se obtuvo en el comportamiento de seguir paredes. Mientras que los demás ABs muestran diferencia entre los valores mencionados, en especial el caso del AG con representación binaria, que al igual que en el comportamiento de seguir paredes, la media de la población se encuentra muy separada del mejor individuo, lo cual indica una población dispersa. Tabla 5.5: Estadísticas de ABs para el comportamiento de evadir obstáculos Mejor Media Desv. Est. Evaluaciones AB bin 308.687 292.402 12.047 30,000 AG real 312.185 304.763 11.207 30,000 ED 315.481 313.59 1.146 30,000 PSO 299.002 288.981 10.206 30,080 Se puede observar en la Tabla 5.5 que la mejor solución, al igual que en el comportamiento de seguir paredes, fue generada por la ED con una calidad de 315.481, seguida del AG con representación real con una calidad de 312.185, continuando con el AG con representación binaria obteniendo una calidad de 308.687 y terminando con el PSO con una calidad de 299.002. Para la media, el mejor resultado lo obtuvo la ED con una media de 313.59, obteniendo muy poca diferencia entre el mejor resultado y la media, seguida del AG con representación real, AG con representación binaria y el PSO, obteniendo las medias 304.763, 292.402 y 288.981 respectivamente. En el caso de la desviación estándar, la ED obtuvo 1.146, el cual es un valor muy pequeño en comparación de los demás ABs, los cuales obtuvieron valores superiores a 10.0, lo que indica una fuerte consistencia en los resultados obtenidos en las 5 evoluciones por la ED. Como se describió en el comportamiento de seguir paredes, el número de evaluaciones de la mayoría de los ABs es 30,000, excepto el PSO que tiene 30,080 evaluaciones, esto debido al número de individuos seleccionados para el PSO. 64 Capítulo 5. Discusión de resultados Figura 5.8: Gráfica de convergencia en la que se muestra la media de las 5 ejecuciones de cada AB utilizados para evolucionar el comportamiento de evadir obstáculos. Donde se puede observar que la mejor calidad la obtuvo la ED con 313.59, seguido del AG con representación real con 304.76, el AG con representación binaria con 292.42 y el PSO con 288.98. Figura 5.9: Simulación del mejor individuo encontrado por la ED. En la cual se puede observar que el robot simulado avanza en línea recta, cuando se encuentra con una pared gira para evadirla y continúa con su recorrido en línea recta. Mostrando el comportamiento de evadir obstáculos. 5.2. Evolución del comportamiento evadir obstáculos 65 En la Figura 5.8 se muestra la gráfica de convergencia de la media de las 5 evoluciones de cada AB, donde la ED obtuvo un rendimiento superior a los demás ABs, encontrando buenos resultados desde la generación 65. Seguido del AG con representación real, el cual conforme avanza la evolución encuentra mejores resultados. Por último con resultado similares el AG con representación binaria y el PSO. Aunque el PSO y el AG con representación binaria obtuvieron resultados parecidos, se puede observar que el PSO obtiene resultados muy buenos desde generaciones jóvenes, mientras que el AG con representaciones binarias va obteniendo mejores resultados a medida que avanza la evolución. En general, los mejores individuos de cada evolución de los ABs presentan el siguiente comportamiento: el robot avanza en línea recta, cuando el robot se encuentra con una pared gira para evitarla y continúa con su recorrido en línea recta. Mientras la calidad sea más alta, el comportamiento se desarrollará de una manera más fina. Es decir, el robot se mueve de forma más recta, más rápido y evade obstáculos más rápidamente. En la Figura 5.9 se muestra el comportamiento en el simulador Player-Stage del mejor individuo de la ED. Al igual que en el comportamiento de seguir paredes, mientras mejor calidad tienen los individuos, el comportamiento de evadir obstáculos es realizado de una manera más fina, es decir, se nota este comportamiento con mucha uniformidad. Por ejemplo, el mejor individuo de la ED avanza más rápido y evade obstáculos de una forma más eficaz que el mejor individuo del AG con representación binaria. De la Figura 5.10 a la Figura 5.13 se muestran las gráficas de convergencia de la mejor evolución de cada AB utilizado. A continuación se describen estas gráficas. En la figura 5.10 se presenta la gráfica de convergencia del AG con representación binaria, alcanzando una calidad de 308.687, en la gráfica se observa que la calidad media de la población va muy separada del mejor individuo. El mismo efecto que ocurrió con el comportamiento de seguir paredes. En la Figura 5.11 se muestra la gráfica de convergencia del AG con representación real, el cual obtiene una calidad de 312.185 en la generación 175. A diferencia del AG con representación binaria, la media de la población de cada generación se acercan conforme avanza la evolución al mejor individuo. La gráfica de convergencia de la ED, mostrada en la Figura 5.12, muestra que desde generaciones tempranas encuentra una buena solución y la calidad media de la población va muy cercana a la calidad del mejor individuo. La ED obtiene una calidad de 315.481 desde la generación 158. Por último en la Figura 5.13 se muestra la gráfica de convergencia del PSO, donde se puede observar que encuentra la mejor solución en la generación 145 con una calidad de 299. La media de la población se va acercando al mejor individuo conforme avanza la evolución. En la Tabla 5.6 se pueden observar los resultados de aplicar la prueba 66 Capítulo 5. Discusión de resultados Figura 5.10: Gráfica de convergencia de la mejor evolución del AG con representación binaria para el comportamiento de evadir obstáculos. El mejor individuo obtuvo una calidad de 308.687, se puede observar que la calidad media de la población está alejada del mejor individuo. Figura 5.11: Gráfica de convergencia de la mejor evolución del AG con representación real para el comportamiento de evadir obstáculos. El mejor individuo obtuvo una calidad de 312.185 y la media de la población es de 204.276. 5.2. Evolución del comportamiento evadir obstáculos 67 Figura 5.12: Gráfica de convergencia de la mejor evolución de la ED para el comportamiento de evadir obstáculos. El mejor individuo obtuvo una calidad de 315.481 y la media de la población es de 312.835. La media de la población es casi igual a la calidad del mejor individuo. Figura 5.13: Gráfica de convergencia de la mejor evolución del PSO para el comportamiento de evadir obstáculos. El mejor individuo obtuvo una calidad de 299 y la media de la población es de 254.144. 68 Capítulo 5. Discusión de resultados estadística Wilcoxon entre los resultados de los 4 ABs utilizados, al igual que para el comportamiento de seguir paredes. En todos los casos el p-value es menor a 0.05 lo cual indica que la diferencia en la comparación de cada uno de los algoritmos es estadísticamente significativa con un 95.0 % de probabilidad. Por otro lado, la prueba de Friedman aplicada al resultado de los 4 ABs obtuvo un p-value de 1.14E-228; lo cual indica una diferencia significativa en el resultado de los 4 ABs, de igual forma con un 95.0 % de probabilidad. Tabla 5.6: Resultados de la prueba estadística Wilcoxon para el comportamiento de evadir obstáculos Algoritmo AG bin AG real ED PSO AG bin 1.64E-103 1.21E-226 1.90E-03 AG real 1.64E-103 1.81E-142 4.92E-88 ED 1.21E-226 1.81E-142 1.74E-179 PSO 1.90E-03 4.92E-88 1.74E-179 - Discusión En este Capítulo se mostraron los resultados obtenidos de aplicar las técnicas descritas en el Capítulo 3 para la optimización de neurocontroladores, donde se puede observar que tanto para el comportamiento de seguir paredes, como para el comportamiento de evadir obstáculos, la ED obtuvo mejores resultados que los demás ABs, en especial con los resultados obtenidos por el AG con representación binaria, que es la técnica clásica utilizada para la optimización de neurocontroladores en la RE; el AG con representación binaria y el PSO obtuvieron resultados muy similares, ambos mejores que el AG con representación binaria pero por debajo que la ED. En el siguiente Capítulo se comentarán las conclusiones de este trabajo, y se mencionarán los posibles trabajos a futuro. Capítulo 6 Conclusiones y trabajo a futuro 6.1. Conclusiones En este trabajo se exploró la alternativa de desarrollar comportamientos robóticos, basados en la metodología de la RE, utilizando diversos ABs para la optimización del neurocontrolador, con el fin de encontrar un algoritmo que realice una mejor exploración/explotación del espacio de búsqueda, así como una sencilla calibración de parámetros. Con el fin de hacer una comparación con el AG con representación binaria, el cual es el algoritmo base utilizado para optimizar neurocontroladores en la RE. Los ABs utilizados en los experimentos fueron, por parte de los algoritmos evolutivos: el AG con representación real y la ED; por parte de los algoritmos de inteligencia colectiva el PSO. Se evolucionaron los neurocontroladores para dos comportamientos básicos en la RE, estos comportamientos son: seguir paredes y evadir obstáculos. Se adoptó como plataforma robótica el e-puck, el cual es un robot muy utilizado por los investigadores en la RE. Para simplificar el proceso de evolución, se utilizó el simulador PlayerStage, la cual es una herramientas ampliamente utilizada por los investigadores robóticos por su desempeño, robustez y soporte de una amplia variedad de plataformas robóticas. En la mayoría de las ejecuciones realizadas en los experimentos para evolucionar ambos comportamientos, el AG con representación real, el PSO y la ED mostraron un mejor desempeño que el AG con representación binaria. Especialmente el caso de la ED, donde todas sus evoluciones encontraron resultados sobresalientes y consistentes en ambos comportamientos. En las gráficas de convergencia del AG con representación real, el PSO y la ED, la media de calidades en cada generación va acercándose a la calidad del mejor individuo, en especial en la ED que la media de la población esta muy cerca del mejor individuo. Mientras que en el AG con representación binaria, estas curvas se encuentran muy alejadas, provocando que los 69 70 Capítulo 6. Conclusiones y trabajo a futuro individuos en la generación no alcancen apropiadamente buenas calidades, por lo que el concepto de exploración domina en los primeros algoritmos. Lo anterior valida la hipótesis de este trabajo. Los resultados demostraron que otros ABs de búsqueda ofrecen: Una menor cantidad de parámetros por calibrar; por ejemplo la ED maneja solo 3 parámetros mientras que el AG dependiente al operador de cruza y del método de selección de padres, puede llegar a tener hasta 6 ó 7 parámetros. Rápida implementación, tanto el PSO como la ED, son algoritmos sencillos de codificar debido a su estructura simple, y manejo de soluciones con representación real. Un compromiso entre la explotación y exploración del espacio de búsqueda, el AG con representación real, la ED llegaron a buenas soluciones, mejores que las presentadas por el AG con representación binaria y el PSO. Resultados consistentes, la ED mostro consistencia en sus resultados, es decir, los resultados fueron parecidos y buenos, sobresaliendo la ED sobre los demás ABs. En conclusión, la ED demostró tener un buen desempeño para la evolución de comportamientos robóticos, mucho mejor que la demostrada por el AG con representación binaria y los demás algoritmos. La ED produjo comportamientos más finos y mejores que las otras posturas de los ABs. Por lo que ésta demuestra ser una herramienta robusta, fácil de implementar y eficaz para la generación de comportamientos robóticos en la RE. 6.2. Trabajo a futuro Como trabajo a futuro, se propone explorar otras alternativas para el desarrollo de comportamientos robóticos como lo son: Explorar, en cada AB, el uso de diversos parámetros para encontrar configuraciones aptas para el dominio de la RE. Utilizar otras técnicas evolutivas (colonia de abejas, colonia de hormigas) o emplear mejoras de las técnicas ya propuestas (ED con vectores multi-trial). Combinar técnicas evolutivas (búsqueda global) con algoritmos de búsqueda local, como lo es el backpropagation. 6.2. Trabajo a futuro 71 Utilizar micro-algoritmos bioinspirados (que trabajan con poblaciones pequeñas), para reducir el costo computacional asociado al proceso de búsqueda. Utilizar versiones multiobjetivo para el desarrollo de diversos comportamientos en la misma evolución. Parte I Apéndices Apéndice A Artículos publicados A.1. The Coevolution of Behavior and Motivated Action Selection Montes-Gonzalez, F., Palacios Leyva, R., Aldana Franco, F. & Cruz Alvarez, V. (2011), The Coevolution of Behavior and Motivated Action Selection. In On Biomimetics, Book Edited by: Lilyana D. Pramatarova, ISBN 978-953-307-271-5, INTECH, CROATIA. 75 0 23 The Coevolution of Behavior and Motivated Action Selection Fernando Montes-González, Rodrigo Palacios Leyva, Fernando Aldana Franco and Victor Cruz Alvarez Departamento de Inteligencia Artificial, Universidad Veracruzana México 1. Introduction The problem of action selection can be identified in ethology as the behavior switching problem. Here, a behavioral repertoire is chosen and then one behavioral module has to be selected until completion or its execution proves ineffective. In behavior based robotics this approach has been widely employed [Arkin (1998)], where an action selection mechanism (ASM) is used to arbitrate between several behavioral modules. The ASM helps in finding an immediate response to the basic question of intelligent systems of what to do next based on its previous sensory perception. However, it is important to notice that the right decision has to be made at the right time [Maes (1990)]. Therefore, some researchers in robotics consider important to develop a model able to decide the right time for making the right decision when solving a particular task. On the other hand, some other researchers are interested in providing a complete solution for the task to be solved. For example Nolfi proposes the evolution of a can-collection task using different motor neurons, and providing some sort of selector, but integrating the solution as a general behavior [Nolfi (1997)]. Potential problems related to the artificial separation of behavioral modules and to the process fusion of the behaviors support the development of general behavior. Also pointed out by the work of [Seth (1998). However, the works of [Kyong Joong & Sung Bae (2001); Yamauchi & Beer (1994)] offer an incremental solution for combining different architectures for solving an entire task. Here, the full integration of evolution with a central action selection model is the main interest. In this work, the behavioral modules are developed as separate components that can be integrated by the use of a selector. These modules can be implemented as neural networks, programming routines, or a mixture of both. The neural controllers may be optimized by the use of artificial evolution. An important feature of action selection is the emergence of opportunistic behavior [Brooks (1989)] that is not coded in the behavioral modules. We have based our current implementation on a model of central action selection that uses sensor fusion (CASSF) to build a uniform perception of the world in the form of perceptual variables [Montes González, Marín Hernández & Ríos Figueroa (2006)]. However, in this implementation we added the use of two simulated motivations which correspond to fear and hunger. Also, the model is able to switch behaviors in normal and lesioned conditions (not explored in this paper). At this point we have decided to use staged evolution of behavior and then coevolution to adjust the weights of the neural controller for the selection mechanism. Hence, the evolutionary robotics approach was used in the design of three www.intechopen.com 490 2 On Biomimetics Biomimetic exploration behavioral patterns: one for finding walls, another to locate corners, and other for locating cylinders. Then, due to its sequential nature the design of the collection and deposit behavioral patterns was implemented as algorithmic routines. The optimization of action selection and behavioral modules present differences with a standard hand-coded implementation. For instance, in a previous work hand-coded selection produced regular patterns of behavior [Montes González, Santos Reyes & Ríos Figueroa (2006)]. Non-regular patterns of behavior were produced using coevolution to optimize both behavior and selection [Montes González (2007)]. However, instability in the system was avoided by the execution of selection in a non-motivated environment. Here, we show how motivated behavior can be optimized by the use artificial evolution. 2. Action selection and evolutionary robotics The action selection problem is related to granting control of available actuators to behavioral modules while the stimuli that activated them is valid or wears out. In the vertebrate brain, at specific loci, specialized centers of selection can be identified. One of them is the basal ganglia, and recent works support the idea of these nuclei playing an important role in action selection [Prescott et al. (2006)]. The basal ganglia act as a relay station in the planning and the execution of movements (behavior); hence gathering information from the cortex and motor cortex. The basal ganglia are able to mediate cognitive and muscular processes. Not only serves the basal ganglia as an important center of action selection also in cooperation with the cerebellum and the sensory cerebrum; all of them are able to veto muscular contraction by denying the motor areas sufficient activation. In turn, these individual motor elements form more complex patterns, which can be thought as essential elements in the development of intelligence [Bares & Rektor (2001)]. The development of intrinsic basal ganglia circuitry with evolvable behavioral modules has already been explored in [Montes González (2007)]. The use of artificial evolution in robotics requires an implementation based on Evolutionary Algorithms. Outstanding representatives of the Evolutionary Algorithms are Genetic Algorithms (GAs), Evolution Strategies, Genetic and Evolutionary Programming and Coevolution [Bäck (1996); Santos & Duro (2005)]. However, in this study the use of GAs [Holland (1975)] and Coevolution [Ebner (2006)] were preferred. In the existing literature examples of evolutionary algorithms are provided for the modeling of elementary behavior controllers [Floreano & Mondana (1996); Seth (1998); Yamauchi & Beer (1994)]. The use of neural networks with genetic algorithms is a common approach for providing a solution to the modeling of robot behavior [Nolfi & Floreano (2000)]. The use of this approach requires the right choice of a topology and the neural weights to control the robot. Evolutionary Robotics (ER) employs several iterations to refine random individuals that are neural controllers for modelling autonomous robot tasks that are solved in semi-controlled environments. In turn, individuals form a changing population that survives across generations according to their adaptability (fitness) to solve a particular task. Therefore a population of these controllers forms the elementary building blocks [Goldberg (1989)] that will serve as the necessary leverage to increment the overall fitness population. Parameter interactions in the implementation of a robot controller epistatically increment the chances to find near-optimal solutions. Most of the times a single objective evaluation function is employed in ER due to the fact that the resultant robot behavior comes from a dynamic system made with the robot and its environment [Doncieux & Mouret (2010)]. However, in evolutionary computation is possible to simultaneously optimize several objectives without aggregating them as a single monolithic fitness function [Deb (2001)]. Recent research relies on the concept of domination www.intechopen.com The Coevolution Motivated Action Selection The Coevolution of Behavior of and Behavior Motivated Actionand Selection 4913 and generates the so-called Pareto front to bootstrapping a light-seeking robot behavior [Mouret & Doncieux (2009)]. In this paper we use a single objective function to shape a global behavior to be achieved. As a consequence the use of GAs is sufficient to model complex robot behavior that provides a solid approach for starting to work on ER. In this approach is important to notice that tuning the obstacle avoidance behavior, which is shaped and nearly optimized by the use of the GA, ultimately depends on the right choice of the fitness function [Reynolds (1994)]. Furthermore, evolution not only optimizes specific features of individual neural controllers; also pairs or groups of individuals can be evolved together. The evolution of one individual can be affected by the change of other related individuals in the group [Lapchin & Guillemaud (2005)]. The latter approach has been identified, as its biological counterpart, as coevolution that can be cooperative or competitive. A cooperative strategy can be developed to achieve a common task (e.g. pushing objects, solving a common task), whereas in a competitive strategy individuals have to struggle to assimilate some scarce resources (e.g. prey and predator, securing of food stashes). In biology diffuse coevolution has been referred to species evolving in response to a number of other species, which in turn are also evolving in response to a set of species [Ridley (2003)]. Cooperative individuals not only require a society interaction, but the existence of an internal mechanism (e.g. among other CASSF and the computational model of the basal ganglia) that is able to mediate between various sensory processes. Therefore, individuals need to build up unified internal perceptions based on their available sensory capabilities in order to produce specialized behavior. As a consequence sensory processes need to be augmented when possible. The work of [Montes González et al. (2008)] shows how non-standard avoidance can be achieved by extending infrared sensory information through an evolutionary refinement. 3. The development of behavior using evolution The optimization of behavior was carried out using an incremental approach following the evolutionary robotics methodology [Nolfi & Floreano (2000); Santos & Duro (2005)]. Initially modules were evolved in the Webots robot simulator [Cyberbotics (2011)], and later on the modules were further evolved in the real Khepera robot [Mondana et al. (1993)]. The Khepera has been equipped with a ring of eight infrared sensors distributed around the body of the robot and two DC motors that control the movement of the wheels. A foraging task was set in a square walled arena where the robot has to collect simulated "food" in the form of wooden cylinders. Thus, we employ the gripper turret attachment for the Khepera (see Figure 1), this small arm has two degrees of freedom with encoders for determining the arm position and two sensors in the gripper claw for detecting the presence and the resistivity of a collected item. Behavior can be identified as belonging to two different kinds, some related to travelling the arena and the other related to handling objects with the gripper. Hence, exploration behavior implemented as neural behavior corresponds to cylinder-seek which locates and positions the robot body in front of a cylinder in order to collect an object; wall-seek travels the arena searching for the closest wall, and then corner-seek runs parallel to a wall until the robot finds a corner. In order to complete the behavioral repertoire collection and release of cylinders is carried out by cylinder-pickup that moves the robot backwards to safely lower the robot arm and then pick up a cylinder; finally cylinder-deposit lowers the robot arm, opens the gripper and returns the arm to an upper position. www.intechopen.com 492 4 On Biomimetics Biomimetic Fig. 1. The robot is shown in a walled arena where has to collect wooden cylinders. Thus the robot has been fitted with a gripper turret attached to the Khepera robot. 3.1 Neural behavior In our experiments we use the infrared sensors of the Khepera robot to transverse the arena. Thus, we chose to implement exploration behavior as neural controllers. At an initial stage we individually evolve the next behavioral modules wall-seek, corner-seek and cylinder-seek. These modules use a fully connected feedforward multilayer-perceptron neural network with no recurrent connections. The topology of the neural network is six neurons in the input layer, five neurons in the hidden layer, and two in the output layer. The sigmoid transfer function is used at the hidden and the output neurons. The infrared output from the Khepera, ranging from 0 to 1023 from the six frontmost sensors forms the input to the neural neural network. Then, the output of the neural network is scaled to the ±20 values required for driving the DC motors at full speed. Next, a genetic algorithm with selection, crossover and mutation operators was applied to the neural network and the desired behavior for each individual module was shaped using different fitness functions (Eqs. 1, 2 and 3). The weights of each neural network are directly encoded into a vector w of 40 elements, the weights were initialized with random values ranging from -1 < wi < 1 for all elements. Thus, a single vector representation is used to define each of the individuals in the population. The initial population, G0 , consists of n=100 neural controllers. Selection is made using elitism to replicate the two best individuals from one generation to the next. Next, a tournament allows random parents to be chosen from (n/2)-1 competitions. The most fitted parents are bred in pairs with a random crossover point generated with a probability of 0.5. Each individual in the new population is then affected with a mutation probability of 0.01. The fitness is scored by running each individual in the simulator for about 30 seconds. The initial location and orientation of the individuals are randomized across trials. The behavior for locating a wall (wall-seek) can be seen as a form of obstacle-avoidance due to the fact that the arena has to be explored avoiding cylinders. Then, the behavior is completed when the robot is in front of a wall. The fitness formula for this behavioral module was f c1 = www.intechopen.com 4000 ∑ i =0 abs(lsi ) ∗ (1 − dsi ) ∗ (1 − max_iri ) (1) The Coevolution Motivated Action Selection The Coevolution of Behavior of and Behavior Motivated Actionand Selection 4935 where for iteration i: ls is the linear speed in both wheels (the absolute value of the sum of the left and right speeds), ds is the differential speed on both wheels (a measurement of the angular speed), and max_ir is the highest infrared normalized-value. A formula such as this favors the evolution of fast individuals that run in a straight line while avoiding obstacles. The behavioral module for running parallel to a wall makes the robot move in a straight line aside a located wall; though any obstacles blocking a straight path to the nearest corner have to be first avoided. The module is stopped when a corner is detected. The fitness formula employed for the behavior corner_seek was f c2 = f c1 ∗ (tgh)2 (2) f c3 = f c1 + K1 ∗ cnear + K2 ∗ cfront (3) This formula employs a thigmotaxis factor (tgh), which accounts for the tendency to remain next to walls and is calculated as the fraction of the test period for which an individual is close to any of the walls in the arena. This formula therefore evolves individuals that avoid obstacles while traveling parallel to the arena walls. The cylinder-seek behavior explores the arena avoiding walls until it locates a cylinder set in the middle of the arena. If a cylinder is located (detected by the two frontmost pair of infrared sensors), then the robot stops to let the gripping-behavior handle cylinder collection. The formula for a behavioral module such as this was In this formula avoidance is displayed for travelling the arena. The constants K1 and K2 , with K1 < K2 , are employed for rewarding the robot when a cylinder is detected around the ring of infrared sensors assuming that a cylinder is near (cnear). However, the robot is most rewarded when aligns its frontal part with a nearby cylinder (cfront). 3.2 Fixed sequences of behavior The previous behavioral modules can be considered as timed sequences of action triggered by an initial sensory stimulus. However, behavior related to handling the gripper should be modeled as a sequence of particular actions executed always in the same order and with the same duration. Thus, behavior modeled in this way can be thought as fixed action patterns [Mcfarland (1993)]. For instance, cylinder-pickup requires the gripper claw to be opened, and then the robot move backwards to create free space in front of the body, the gripper closed, and the arm moved back into the upright position. Cylinder-deposit requires a fixed sequence of lowering the arm, opening the gripper, and then raising the arm. Therefore, these two behavioral modules were implemented as algorithmic routines following the aforementioned action sequences. 4. Central action selection In writing different models have been proposed to design systems, which are able to exhibit a variety of behavior and to arbitrate between them [e.g. Arkin (1998); Brooks (1986); Maes (1989)]. Nevertheless, these models based on explicit design do not seem to be scalable enough for developing systems capable of displaying a large variety of behavioral patterns that cope with task/environmental variations. In previous research we have proved that a computational model of the intrinsic circuitry of the vertebrate basal ganglia [Prescott et al. (1999)] produces action selection when embedded in a robot control system [Montes González et al. (2000); Prescott et al. (2006)]. The motivated robot basal ganglia model has been set in a www.intechopen.com 494 6 On Biomimetics Biomimetic similar environment to the one described using hand-coded [Prescott et al. (2006)] and evolved behavioral patterns [Montes González (2007)]. The importance of the basal ganglia in natural action selection becomes evident when we observe that these nuclei are an archaic feature common to all vertebrate animals [Prescott et al. (1999)]. However, we have also worked in an alternative selection model named CASSF [Montes González & Marín Hernández (2004)] that shares common features with the robot basal ganglia model. Both are centralized and both produce motor selection based on building perceptual information from raw sensory input. One of the main features of CASSF (Central Action Model with Sensor Fusion) is that is modular and able to cope with the variations of a dynamic environment. However, in this study we have extended CASSF to include internal motivations for the calculation of motor selection (Figure 2). In addition, CASSF is an effective action selection mechanism [Montes González, Santos Reyes & Ríos Figueroa (2006)] that is centralized and presents sufficient persistence to complete a task. The implementation of tasks such as foraging can be carried out in CASSF by determining a set of behavioral patterns that can be integrated in time to complete such a task. The adjustment of selection parameters and behavior has been optimized by coevolution in CASSF as described in [Montes González (2007)]. The foraging activity for our behavioral setup has been modeled loosely based on observations of hungry rats placed in a box containing a central small dish of food. These animals, even when deprived from food for twenty four hours, will be fearful and exhibit preference of staying next to walls and corners. Later on, they will go across the arena to collect food from the dish that is then consumed in a corner. The urgency to be selected (salience) of each of the behavioral modules is tuned to provide appropriate behavioral selections that simulate the avoidance-related and food-acquisition-related behavior observed in these animals. Therefore, the salience for each module depends on the values of a number of extrinsic and intrinsic variables. Extrinsic values are calculated as bi-polar perceptual variables calculated from robot raw sensory information. These perceptual variables are labeled as wall_detector, gripper_sensor, cylinder_detector and corner_detector. Additionally, these perceptual variables are also sent to each of the behavioral modules. The information of the sensors is updated at every step of the simulation and the perceptual variables are recalculated depending on the presence (+1) or absence (-1) of the relevant target feature (e.g. a cylinder, a wall, a corner, or an object in the gripper). Intrinsic variables are produced by motivational modules and are functions of recent experience and internal state. In our experiments these roughly model “fear” (initially high and reduced when exploring the arena) and “hunger” (increases with time and reduced when “food” is deposited outside the arena). Therefore, the value for each of the simulated motivations is a single scalar value in the range (0-1) that can be either increased or decreased over time. Hunger is also reduced by a fixed amount when a cylinder is deposited in a corner of the arena. On the other hand, behavioral modules are also able to generate an intrinsic variable (a “busy signal”) that facilitates its own selection during critical phases of activity. The value of the busy signal is a binary value that is on when a critical period of activity has been reached. As a result the salience is calculated from the relevant information for each behavioral module composed by perceptual variables (bi-polar), its own busy-signal (binary) and extrinsic motivations (scalar values). These signals constitute the input vector for the selection network and activation is computed at every step of the main loop. Thus, CASSF runs within a main loop in which sensor readings are updated and motor commands are sent. At each time-step, salience is calculated and the competition between behavioral components is resolved in a winner-takes-all manner. www.intechopen.com The Coevolution Motivated Action Selection The Coevolution of Behavior of and Behavior Motivated Actionand Selection 4957 Fig. 2. In the CASFF model, perceptual variables (ei ) form the input to the decision neural network. The output of the selected behavior with the highest salience (si ) is gated to the motors of the Khepera. The busy-status signal (c1 ) from behavior B1 to the output neuron O1 should be taken into account. The behavioral repertoire (B1 - Bn ) is extended by preserving similar connections for each of the additional behavioral modules. Motivations (mi ) are added as inputs (Ii ) to the decision network. The calculation of salience is carried out using a decision neural network with an input layer and an output layer both with five neurons (Figure 2). The output of the neurons make use of the identity function to preserve the original calculation of the salience. The raw sensory information from the Khepera is fed into the neural network in the form of perceptual variables. Next, the input neurons distribute the variables to the output neurons. The behavior that is selected sends a busy signal to the output neurons when its salience is above the salience of the other behaviors. A selected behavior sends a copy of this busy signal to the five output neurons. In turn the five behavioral modules can be selected, thus each of the five modules add five more inputs to the output neurons. Additionally, two more inputs are added from the two simulated motivations. Hence, salience output is calculated from the five salience signals of the behavioral modules plus four perceptual variables plus two simulated motivations. In this paper artificial coevolution is employed to adjust the weights of the decision network. The exploration behavioral modules were evolved as an initial stage in the evolution. A second stage consisted in evolving both the decision network weights and the behavioral networks. The decision network weights depend on the input of the context vector (ei ) which is formed by the perceptual variables. In turn, the variables wall_detector (ew ), gripper_sensor (eg ), cylinder_detector (ec ), and corner_detector (er ) are encoded from readings of different sensors. These perceptual variables form the context vector, which is constructed as follows (e = [ew , eg , ec , er ], ew , eg , ec , er ∈ {1, -1}). Then, five different behavioral modules return a www.intechopen.com 496 8 On Biomimetics Biomimetic current busy-status (ci ) indicating that ongoing activities should not be interrupted. The current busy-status vector is c = [cs , cp , cw , ck , cd ], cs , cp , cw , ck , cd ∈ {1, 0}, for cylinder-seek, cylinder-pickup, wall-seek, corner-seek, and cylinder-deposit respectively. The motivational vector is composed by m = [mf , mh ], −1 < mi , < 1. The salience (si ) or urgency is calculated from the input of the decision network Ii which in turn modifies the output Oi of the behavioral modules by allowing the most salient to win the competition. Thus, selection is evolved for five behavioral modules with a context vector composed of eleven elements making a selection vector chs of 55 weights with initial random values of chs , -Kw < chs < Kw with Kw = 0.75. Therefore, the full chromosome to be coevolved is formed as an array of 55 weights of the decision network plus 40 weights of cylinder-seek plus 40 weights of wall-seek plus 40 weights of corner-seek giving a total of 175 weights. Evolution was carried out as previously described in section 3.1. The fitness formula for the evolution of the weights of the decision network was f c4 = (K1 ∗ avfactor) + (K2 ∗ cwfactor) + (K3 ∗ pkfactor) + (K4 ∗ dpfactor) (4) The evolution of the weights of the selection network was nearly optimized using in the fitness formula fc4 the constants K1 , K2 , K3 and K4 with K1 < K2 < K3 < K4 for the selection of those individuals that move in a traight line while avoiding obstacles (avfactor), also those individuals that locate corners and walls in the arena (cwfactor). Moreover, the fitness formula also rewards cylinder-collection inside the arena (pkfactor), and their release near the outside walls (dpfactor). The average fitness of a population, for over 100 generations, and its maximum individual fitness are shown in Figure 3. Fig. 3. Fitness is plotted across 100 generations. For each generation the highest fitness of one individual was obtained from the averaged fitness of five trials under similar conditions. The maximum fitness of all individuals was averaged as a measure of the population fitness. Individuals are more rewarded if they avoid obstacles, collect cylinders, and deposit cylinders close to corners. The evolution is stopped after fitness stabilizes over a value around 4500. www.intechopen.com The Coevolution Motivated Action Selection The Coevolution of Behavior of and Behavior Motivated Actionand Selection 4979 5. Experiments and results The foraging task was set in an arena with four cylinders as simulated food (see Figure 4). The use of selection with evolved parameters is shown in Figure 5. On the other hand, the coevolution of behavior and selection parameters is presented in Figure 6. It is important to notice that coevolution tends to optimize behavior and their selection in time and in the physical environment. Therefore, it is possible to observe that in attempt to maximize fitness; evolution may disrupt the order of selection as anticipated by the human designer. The latter, has been pointed out in [Montes González, Santos Reyes & Ríos Figueroa (2006)] where five behavioral modules were setup for coevolution. The presence of redundant behavior leads to an evolutionary race, because interference from other behavior may affect the development and selection of a particular behavior. A regular behavioral pattern may be easily observed if we were using hand-coded selection whereas for evolved and coevolved selection the use of corner-seek is avoided in order to optimize timed selection. The selection of behavior patterns is also summarized as elementary statistics in tables 1 and 2 for evolved selection and coevolved selection/behavior. In this paper a behavior is considered as the joint product of the robot and its internal status, environment, and observer. Hence, a regular grasping-depositing pattern in the foraging task should be the result of the selection of the behavioral modules: cylinder-seek, cylinder-pickup, wall-seek, corner-seek, and cylinder-deposit in that order. Collection patterns can be disrupted if for example the cylinder slips from the gripper or a corner is immediately found. Another cause for a change in a regular pattern occurs after long search periods when a cylinder is not promptly located. The use of motivations is also another cause for the interruption in the collection of a cylinder. For instance travelling for long time increases the value of hunger up to its maximum value, which makes locating a cylinder erratic and increasing periods of exploration. Finally, the fitness of the agent solving the foraging task is an additional factor that alters the order in the selection of behavior. In Figure 7 we present a comparison of evolved-selection and coevolved-selection/behavior. In this comparison we notice that even though individuals present different fitness values, they are able to complete the task of collecting from one to four cylinders. Fitness is increased after long search periods, and those individuals able to complete the same task with lower fitness are because they have to travel less to locate cylinders. Consequently, “lucky” collectors, by chance, travel less earning fewer rewards; whereas “unlucky” collectors travel more earning additional rewards. As a result, in the same figure we observe an improvement on the fitness and the collection of cylinders of coevolved selection in comparison to evolved selection and behavior. 6. Discussion and future work For our discussion it is important to remember that there is evidence of central selection in the vertebrate brain [Prescott et al. (1999)], particularly at the basal ganglia buried under the cortex. It is important to notice that these structures receive information from several different regions of the cerebral cortex. We have based the development of motivated CASSF on that of the robot basal ganglia [Prescott et al. (2002)]. Therefore, we have implemented an action selection model that makes use of artificial evolution for optimizing both neural behavior and the decision network (ruling out the evolution of sequential behavior). In our selection model we have build an intrinsic perception of the world based on raw sensory information to provide pre-processed information to the decision network in order to produce a unified perception of the “extrinsic” world. Additionally, we have let intrinsic variables such as www.intechopen.com 498 10 On Biomimetics Biomimetic Fig. 4. The selection of behavioral modules and their related motivations are shown in the image. The robot simulator window and the window for the gripper and infrared sensors are also displayed. In the motivations window, the blue line corresponds to “fear” and the green line represents “hunger”. Final behavior is then transferred to the real robot for further optimization. simulated fear and hunger to affect the results of selection. Therefore, selection arbitrates among competing behavioral modules to allow the execution of behavior in response to a specific configuration of the world and the internal status of the animal robot. Table 1. Evolved selection (Figure 5) is summarized in this table. Labels in the table are as follows: Freq shows the frequency in the selection of a module; Latency represents the time when the module was initially selected; the total duration of the module is indicated by Totdur and its percentage by TotDur%;Mean, Standard Deviation (StdDev) and Standard Error (StdErr) are some simple statistics; MinDur represents the minimal time the module was selected and MaxDur the maximal time for the selection of the module. Here we observe that cylinder deposit was activated only four times corresponding to the collection-release of the four cylinders set in the arena. Evolutionary robotics employs a quasi-optimal approach to develop autonomous controllers for different kinds of robots and groups of individuals which can be evolved together. Following this approach a change in the evolution of one individual can be affected by the change of other related individuals in the group. The latter approach has been identified, as its biological counterpart, as coevolution that can be cooperative or competitive. A cooperative www.intechopen.com The Coevolution Motivated Action Selection The Coevolution of Behavior of and Behavior Motivated Actionand Selection 499 11 Fig. 5. Ethogram for a run of typical evolved selection; modules are numbered as 1-cylinderseek, 2-cylinder-pickup, 3-wall-seek, 4-corner-seek, 5-cylinder-deposit and 6-no action selected. We notice that although cylinder-pickup was activated thirteen times, only four cylinders were collected. The latter is due to motivations causing variations in the internal variables thus affecting salience calculation causing the robot to rapidly select and deselect cylinder-pickup several times before actually grasping a cylinder. This individual presents a semi-regular grasping-depositing pattern (behavioral pattern selection of 1-2-3-5). strategy can be developed to achieve a common task (e.g. pushing objects, solving a common task), whereas in a competitive strategy individuals have to struggle to assimilate some scarce resources (e.g. prey and predator, securing of food stashes). In biology diffuse coevolution has been referred to species evolving in response to a number of other species, which in turn are also evolving in response to a set of species. Consequently, the identification of collective intelligence is more evident when coevolving cooperative groups. Table 2. Elementary statistics for evolved selection; we notice several activations of cylinder-pickup. However, only four cylinders were collected and released outside the arena (notice that cylinder-seek is selected only four times). A proper release of a grasped cylinder corresponds in the image to a decay in the fear motivation (around seconds 8, 29, 64 and 76 in Figure 6). Additionally, evolution avoids the use of corner-seek and that is the reason for its latency to be shown as the total elapsed time even though selection never occurred. The development of collective behavior in simulation can be achieved by simple scalable control systems as a form of decentralized control. Therefore, the work of [Kube & Zhang (1993)] exhibited group behavior without the use of explicit communication. A more recent www.intechopen.com 500 12 On Biomimetics Biomimetic Fig. 6. A typical run for coevolved selection; the behavioral modules are numbered as 1-cylinder-seek, 2-cylinder-pickup, 3-wall-seek, 4-corner-seek, 5-cylinder-deposit and 6-no action selected. A standard grasping-depositing pattern (1-2-3-4-5) is also not observed here. Because of opportunism presented in the collection of cylinders, artificial evolution optimizes the use of corner-seek that is never selected. Instead wall-seek is employed, after collection, for taking the cylinder to the nearest wall where the cylinder is released. It is important to notice that cylinder collection is a bit more erratic but in the end the value of fitness is greater compared to evolved selection. As a result, a semi-regular behavioral pattern selection of 1-2-3-5 is observed in the graph. approach by Marocco et al. [Marocco & Nolfi (2007)] set a collective task where a group of four robots developed the ability to reach two different target areas and to group in pairs at each different location. Elementary communication skills were evolved alongside the abilities to reach target areas. In this way, coordination is achieved through stigmergy; nevertheless more elaborated communication can be implemented [Mitri & Vogt (2006)]. In general, the individual ability to communicate may be one of the requirements for the development of collective intelligence. The evolutionary approach has been sufficient to solve problems were cooperation and communication skills are necessary for solving a particular task; in contrast communication arises as a deceptive feature within a competitive scenario. In this scenario a common setting is that of the prey and the predator where both individuals are competing for scoring points either for escaping or capturing each other. The experiment can be expanded to add more preys and predators. The presence of collective intelligence is found in different areas ranging from biology, sociology, and business to computer science. However, a common definition looks for the identification of certain “intelligence” derived from the efforts of joined entities. The aforementioned entities range from bacteria, animals, human to computer processes. Moreover, the same definition can be applied, in a broad sense, to action selection and evolutionary robotics. The emergence of collective intelligence based on the behavior-based approach requires stepping out from the modeling of selfish solitary individuals to social organisms. Therefore, we need to group our robots and expose them to numerous interactions www.intechopen.com The Coevolution Motivated Action Selection The Coevolution of Behavior of and Behavior Motivated Actionand Selection 501 13 to assure complex performances at the level of the group. Here, we have identified some common elements in collective robotics: cooperation, intelligence, communication skills, and the integration of sensory information with action selection. All of those accomplished with the use of the evolutionary robotics approach. As a consequence, we believe that we may contribute to the development of robotic collective intelligence by way of social experiments using the artificial evolutionary method. (a) (b) Fig. 7. A comparison of one hundred individuals with evolved and coevolved selection is presented. In average an evolved individual collects 3.0 cylinders whereas an evolved individual collects 3.6 cylinders. Moreover, in average evolved selection scores 57% of the highest fitness; in contrast, coevolved-selection scores 69% of the highest evolved fitness. In (a) we notice the first twelve individuals failing to collect cylinders with fifty-seven individuals collecting four cylinders. Whereas in (b) eighty-two individuals accomplish the task of collecting four cylinders and only two individuals not collecting any at all. www.intechopen.com 502 14 On Biomimetics Biomimetic 7. Conclusion The evolution of central action selection with neural behavior was carried out in this study. Later on, the selection mechanism and neural behavior were coevolved and then compared to evolved selection. The experiments presented in this paper provide an insight of the effects of evolution when optimizing behavior that needs to be coupled within a regular pattern. For example, a disruption of regular selection occurs in an attempt to increase their fitness value as shown in Figures 5 and 6. On the other hand, the use of coevolution constrains candidate solutions to those that maximize the proposed fitness function. Consequently, the maximum fitness is reached when individuals pick up all cylinders in the arena and motivations not affect the localisation of cylinders having to travel less for their collection (Figure 7). Additionally, in order to extend our model we expect to include a component of simulated “dopamine”, similar to the one reported in Montes et al. [Montes González et al. (2000)], to regulate behavior through motor commands sent to the Khepera robot. Next, we pretend to analyze motivated behavior at normal dopamine levels to see the elicitation of movement (normal selection) and abnormal selection as the result of inducing different levels of simulated dopamine. Furthermore, we expect to develop a prey-predator setup where the prey employs evolvable action selection and the predator a pure evolvable approach both optimized by means of coevolution to study any potential improvements in selection under such a competitive scheme. Also, we may extend our model in a social sense evolving groups of robots. Finally, our approach aims to reduce the number of decisions made by the human designer when evolving both selection and behavior. 8. Acknowledgments This work has been sponsored by CONACyT-MEXICO grant SEP No. 0100895. 9. References Arkin, R. C. (1998). Behavior-Based-Robotics, The MIT Press, USA. Bäck, T. (1996). Evolutionary Algorithms in Theory and Practice: Evolution Strategies, Evolutionary Programming, Genetic Algorithms, Oxford University Press. Bares, M. & Rektor, I. (2001). Basal ganglia involvement in sensory and cognitive processing. A depth electrode CNV study in human subjects, Clinical Neurophysiology 112(11): 2022–2030. Brooks, R. A. (1986). A robust layered control system for a mobile robot, IEEE Journal of Robotics and Automation 2(1): 14–23. Brooks, R. A. (1989). A robot that walks; emergent behaviors from a carefully evolved network, Neural Computation 1(2): 253–262. Cyberbotics (2011). Webots,Commercial Mobile Robot Simulation Software. URL: www.cyberbotics.com Deb, K. (2001). Multiobjectives optimization using evolutionary algorithms. Doncieux, S. & Mouret, J. (2010). Behavioral diversity measures for evolutionary robotics, In IEEE Congress on Evolutionary Computation 2010 (CEC 2010). Ebner, M. (2006). Coevolution and the Red Queen effect shape virtual plants, Genetic Programming and Evolvable Machines 7(1): 103–123. Floreano, D. & Mondana, F. (1996). Evolution of homing navigation in a real mobile robot, IEEE Transactions on Systems Man and cybernetics Part B Cybernetics a publication of the IEEE Systems Man and Cybernetics Society 26(3): 396–407. www.intechopen.com The Coevolution Motivated Action Selection The Coevolution of Behavior of and Behavior Motivated Actionand Selection 503 15 Goldberg, D. E. (1989). Genetic Algorithms in search, optimization, and machine learning, AddisonWesley Reading MA p. 412. Holland, J. (1975). Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor. Kube, C. R. & Zhang, H. (1993). Collective robotics: From social insects to robots, Adaptive Behavior 2(2): 189–218. Kyong Joong, K. & Sung Bae, C. (2001). Robot action selection for higher behaviors with cam-brain modules, In Proceedings of the 32nd ISR(International Symposium in Robotics). Lapchin, L. & Guillemaud, T. (2005). Asymmetry in host and parasitoid diffuse coevolution: when the red queen has to keep a finger in more than one pie, Frontiers in Zoology 2(4): 4. Maes, P. (1989). The dynamics of action selection, In IJCAI’89 Proceedings of the 11th international joint conference on Artificial intelligence, Vol. 2, MI, Detroit, pp. 991–997. Maes, P. (1990). How to do the right thing, Connection Science Journal Special Issue on Hybrid Systems 1(3): 293–325. Marocco, D. & Nolfi, S. (2007). Emergence of communication in embodied agents evolved for the ability to solve a collective navigation problem, Connection Science 19(1): 53–74. Mcfarland, D. (1993). Animal Behaviour, Harlow, Essex, Longman Scientific and Technical. Mitri, S. & Vogt, P. (2006). Co-evolution of language and behaviour in autonomous robots, The sixth international conference on the Evolution of Language (Evolang6), World Scientific, pp. 428–429. Mondana, F., Franzi, E. & Ienne, P. (1993). Mobile robot miniaturisation: a tool for investigation in control algorithms, in S. Verlag (ed.), Experimental Robotics III, Proceedings of the Third International Symposium on Experimental Robotics, London, pp. 501–513. Montes González, F. M. (2007). The coevolution of robot behavior and central action selection, In IWINAC ’07 Proceedings of the 2nd international work-conference on Nature Inspired Problem-Solving Methods in Knowledge Engineering: Interplay Between Natural and Artificial Computation, Part II, pp. 439–448. Montes González, F. M., Flandes Eusebio, D. & Pellegrin Zazueta, L. (2008). Action selection and obstacle avoidance using ultrasonic and infrared sensors, In Frontiers in Evolutionary Robotics, Book edited by: Hitoshi Iba, I-Tech Education and Publishing, Vienna, Austria, pp. 327–340. Montes González, F. M. & Marín Hernández, A. (2004). Central action selection using sensor fusion, In the Proceedings of the fifth Mexican International Conference in Computer Science (ENC’04), Baeza-Yates R., Marroquín J.L. and Chávez E (Eds.), IEEE Press, Colima, Mexico, pp. 289–296. Montes González, F. M., Marín Hernández, A. & Ríos Figueroa, H. (2006). An effective robotic model of action selection, In R. Marín et al. (Eds.): CAEPIA 2005, LNAI 4177, pp. 123–132. Montes González, F. M., Prescott, T. J., Gurney, K., Humphries, M. D. & Redgrave, P. (2000). An embodied model of action selection mechanisms in the vertebrate brain, In From Animals to Animats 6: Proceedings of the Sixth International Conference on Simulation of Adaptive Behavior, MA, MIT Press, Cambridge, pp. 157–166. Montes González, F. M., Santos Reyes, J. & Ríos Figueroa, H. (2006). Integration of evolution with a robot action selection model, In A. Gelbukh and C. A. Reyes-García (Eds.): MICAI 2006, LNAI 4293, pp. 1160–1170. www.intechopen.com 504 16 On Biomimetics Biomimetic Mouret, J. & Doncieux, S. (2009). Overcoming the bootstrap problem in evolutionary robotics using behavioral diversity, In Proceedings of the Eleventh Conference on Congress on Evolutionary Computation, IEEE Press, Piscataway, NJ, USA, pp. 1161–1168. Nolfi, S. (1997). Evolving non-trivial behaviors on real robots: a garbage collecting robot, Robotics and Autonomous Systems 22(3-4): 187–198. Nolfi, S. & Floreano, D. (2000). Evolutionary Robotics, The MIT Press, USA. Prescott, T. J., Gurney, K., Montes González, F. M., Humphries, M. D. & Redgrave, P. (2002). The Robot Basal Ganglia:Action Selection by and embedded model of the basal ganglia", In Basal Ganglia VII, edited by Nicholson L. F. B. and R. L. M. Faull. New York: Kluwer Academic/Plenum Press, pp. 349–358. Prescott, T. J., Montes González, F. M., Gurney, K., Humphries, M. D. & Redgrave, P. (2006). A robot model of the basal ganglia: behavior and intrinsic processing, Neural Networks 19(1): 31–61. Prescott, T. J., Redgrave, P. & Gurney, K. (1999). Layered control architectures in robots and vertebrates, Adaptive Behavior 7(1): 99–127. Reynolds, C. W. (1994). Evolution of obstacle avoidance behaviour: Using noise to promote robust solutions, In Advances in Genetic Programming, MIT Press, Cambridge, MA, USA. Ridley, M. (2003). Evolution, Wiley-Blackwell, USA. Santos, J. & Duro, R. (2005). Artificial Evolution and Autonomous Robotics (in Spanish), Ra-Ma Editorial, Spain. Seth, A. K. (1998). Evolving action selection and selective attention without actions, attention, or selection, In Animals to animats 5: Proceedings of the Fifth International Conference on the Simulation of Adaptive Behavior, MIT Press, Cambridge, MA, pp. 139–147. Yamauchi, B. & Beer, R. (1994). Integrating reactive, sequential, and learning behavior using dynamical neural networks, In From Animals to Animats 3, Proceedings of the 3rd International Conference on Simulation of Adaptive Behavior, MIT Press, Cambridge, MA, USA, pp. 382–391. www.intechopen.com 92 A.2. Apéndice A. Artículos publicados Robotic Behavior Implementation Using Two Different Differential Evolution Variants Cruz-Álvarez, V. R., Montes-González, F., Mezura-Montes, E. and Santos, J. (2012), Robotic Behavior Implementation Using Two Different Differential Evolution Variants, MICAI 2012. Robotic Behavior Implementation Using Two Different Differential Evolution Variants Vı́ctor Ricardo Cruz-Álvarez1 , Fernando Montes-Gonzalez1 , Efrén Mezura-Montes2 , and José Santos3 1 Departmet of Artificial Intelligence, Universidad Veracruzana (Mexico), [email protected], [email protected] 2 Laboratorio Nacional de Informática Avanzada (Mexico), [email protected] 3 Computer Science Department, University of A Coruña (Spain), [email protected] Abstract. In Evolutionary Robotics, Bioinspired Algorithms are used to generate robotic behavior. Several researchers used classic Genetic Algorithms or adaptations of Genetic Algorithms for developing experiments in ER. Here, we use Differential Evolution as an evolutionary alternative method to automatically obtain robotic behaviors, selecting a wall-following behavior as a representative example. We used an e-puck robot and the Player-Stage simulator for the experiments. We detail the results and the advantages when using the DE variants in our application with the simulated and the real robot. In order to optimize time for evolution, and test the resultant behavior in the e-puck robot, for our experiments we employed the Player-Stage simulator. Key words: Evolutionary Robotics, Differential Evolution, Genetic Algorithm, Behavior Based Robotics 1 Introduction In robotics, Evolutionary Robotics (ER) is an area that uses Bioinspired Algorithms, especially evolutionary algorithms, to develop the control architecture of an autonomous robot, and particularly the behavior controllers[1]. ER operates creating an initial population of candidate controllers and the population is repeatedly modified based on the fitness-function to optimize the robot controller[2]. The most used approach in ER is the classic Genetic Algorithm (GA)[3, 4], which generates solutions to optimization problems using operators inspired by natural evolution, these operators are crossover and mutation. Take for instance the work of Trefzer, et ál.[5] where an e-puck had been provided with a general purpose obstacle-avoidance controller both in simulation and in the real robot using GA. In similar works like[6–10, 12–14] like Evolutionary Strategies[15] and Differential Evolution (DE)[16]; some works in ER uses Genetic Programming [17] to evolve the robot controller[11, 18]. In general, ER employs GAs as optimization method, whereas uses Artificial Neural Network (NN) as the elements to evolve, since the NNs implement the 2 Authors Suppressed Due to Excessive Length robot controllers. The evolutionary method, after several generations, produces the fittest individuals (NNs) that generate the required behavior. The calibration of the associated parameters of the evolutionary method increments the chances to find near-optimal solutions. The use of a standard platform in ER is commonly preferred. The e-puck[19] is an educational and research robot developed in the EPFL (École Polytechnique Féderale de Lausanne, Switzerland). In our experiments we use this robot. The size of the e-puck is about 7 cm diameter; the battery provides movement autonomy for about 3 hours, two stepper motors with a 20 steps per revolution and a 50:1 reduction gear. The e-puck has a ring of eight infrared sensors measuring ambient light and proximity of obstacles in a range of 4 cm. and has a VGA camera with a field of view of 36; for communication, the robot uses a wireless Bluetooth. The robot is controlled by a Microchip microprocessor dsPIC 30F6014A at 60MHz. The e-puck can be simulated under free and commercial applications, in this work, we use the Player-Stage simulator. In the experiments, to evolve the wall-following behavior, we use an e-puck robot, the Player-Stage simulator and two DE variants for the evolutionary optimization. These variants are the DE/rand/1/bin and the DE/best/1/ bin. We compare the results of using these differents variants. In Section 2, we discuss the methods mentioned. In Section 3, some topics related to Player-Stage are discussed. Section 4 describes the parameters for the neural network, the evolutionary methods and the e-puck robot. Results are presented in Section 5. Finally, in Section 6 we provide a general conclusion about our work. 2 Evolutionary Robotics and Bioinspired Algorithms Generally, ER relies on the use of a Bioinspired Algorithms (generally the GA with binary representation [2, 7, 9]). The population is a set of candidate controllers. Most of the times a single objective evaluation function (fitness function) is employed by the fact that the resultant robot behavior comes from a dynamic system made with the robot an its environment[20]. The use of Bioinspired Algorithms and Artificial Neural Networks offers a good solution to the problem of modeling behavior in maze-like environments[1]. Artificial Neural Networks have many applications in robotics due to their benefits as powerful classifiers, they are both noise and fault tolerant, which facilitates the robot to be driven in dynamical environments[21]. The optimization of neural controllers with an evolutionary method requires a representation, as a vector of the weights of the neural controller. Therefore, the codification of the weights vectors using an array representation is a common practice. This array represents the genetic material to be manipulated by artificial evolution. A single neural controller represents one of the many individuals that form a population, which in turn are candidates for providing a good solution for the task to be solved. The quality of a candidate solution (fitness) is measured to acknowledge whether a solution is a good solution to the task we are trying to solve. The Title Suppressed Due to Excessive Length 3 quality-space of all possible solutions forms the fitness landscape, with mountains and valleys, where landmarks in the mountains represents good solutions and landmarks in valleys are poor solutions. The search of the best solution in the landscape depends on the chosen evolutionary method. The search of the best solution requires the guide of an evolutionary method to move uphill to find better solutions, and variations in the landscape may cause the search to revolve around local minima and maximum areas. In ER, the GA uses a population to represent the solutions (binary representation); for exploration the GA employs the next operators: the reproduction of the individuals selected in pairs by the crossover of their genetic material, and mutation of some of the genetic material of the new individuals in the next generation. Also the GA uses selection, where a subset of population is selected to produce the next generation. Finally the GA replace the population with the new individuals. The iterative application of these operators to the genetic material (the NN weights) will produce refined solutions over time. On the other hand, DE uses a population of real numbers (called vectors) that in our case represents the weights. The main idea behind DE is a scheme for generating trial parameter-vectors based on the population distribution. The basic idea of the DE is very simple, it works with two populations: P (the old generation) and Q (the new generation) of the same size N (the size of population). A new trial vector y is composed of the current point xi of the old generation and a new point u obtained by using mutation. If f(y) > f(xi ) (in case of fitness maximization), the point y is inserted, instead of xi , into the new generation Q. After completion of the new generation Q, the old generation P is replaced by Q and the search continues until the stopping condition is reached[23]. In related work different variants exist for producing the mutation vector. In this work we use the DE/rand/1/bin and DE/best/1/bin, which generate the point u by adding the weighted difference of two points. u = r1 + F (r2 − r3 ). (1) Equation 1 shows how a new point u is created; r1 , r2 and r3 in the DE/rand/1 /bin are randomly selected from P. For DE/best/1/bin, r1 is the best individual in the population, r2 and r3 are both randomly selected. As for the DE parameters, we have F, CR and N, which respectively represent the differential weight, F that takes the next values F ∈ [0, 1]; CR which in turn represents the crossover probability with possible values in CR ∈ [0, 1]; and the last parameter represents the population size N. A general description of the DE pseudocode is presented below (Algorithm 1). For our work we have selected DE due to an easy parameter calibration, easy encoding, and a refined exploration search in the fitness landscape. In [22], the authors demonstrate the effectiveness of the algorithm establishing a comparison with other different evolutionary methods related to Artificial Neural Networks optimization. In some works like [24, 25] the DE had been used in robotics for mapping and localization tasks, in [26] the DE was used to find a minimal representation for a multi-sensor fusion. 4 Authors Suppressed Due to Excessive Length Algorithm 1 Differential Evolution Algorithm Initialize the population with random positions, P = (x1 ; x2 ; ...; xN ) repeat for each individual, i = 1 → N do select randomly r1 , r2 , r3 of P select randomly R ∈ 1, ..., n (n is the number of dimensions of the problem) for each position, j = 1 → n do select an uniformly distributed number randj ∈ U (0, 1) if randj < CR or j = R then generate a mutated position uij , being yj = uij ← r1j + F (r2j − r3j )(Eq.1) else yj = xij end if end for if f(y) > f(xi ) then insert y in Q else insert xi in Q end if end for P =Q until reaching the stop condition The main problem of the GA methodology is the need of tuning a series of parameters for the different genetic operators like crossover or mutation, the decision of the selection (tournament, roulette,...), and tournament size. Hence, in a standard GA is difficult to control the balance between exploration and exploitation. On the contrary, DE reduces parameter tuning and provides an automatic balanced search. As Feoktistov [27] indicates, the fundamental idea of this algorithm is to adapt the step-length (F (x2 − x3 )) intrinsically along the evolutionary process. For the initial generations the step-length is large because individuals are far away from each other. As evolution goes on, population converges and the step-length becomes smaller and smaller, providing an automatic search exploration level. 3 Robot Software Simulator Player-Stage is a free software tool for robot and sensor applications[28]. Player provides a network interface to a variety of robot and sensor hardware such as: the Khepera, Pioneer, Lego mindstorm, E-puck, etc. Player’s client/server model allows robot control programs to be written in any programming language and to run in any computer with a network connection to the robot. Also it supports multiple concurrent client connections to devices, creating possibilities for distributed and collaborative sensing and control. On the other hand, Stage simulates a population of mobile robots moving and sensing in a two-dimensional Title Suppressed Due to Excessive Length 5 bitmapped environment. Various sensor-models are provided, which includes a sonar, scanning laser rangefinder, pan-tilt-zoom camera with color blob detection, and an odometry sensor. It is important to notice that Stage devices offer a standard Player interface with little required changes for using the same code in simulation and hardware. For our experiments we implemented, in Player-Stage, a squared arena delimited by four walls which includes an e-puck robot, This simulated arena is similar in dimensions to a real arena set in our laboratory (see Fig.1). a) Real Environment b) Simulated Environment Fig. 1. a) The physical robot is set inside an arena delimited by four walls. b) The virtual scenario is modeled as a squared arena, in Player-Stage, where we set the e-puck robot (red circle) with eight proximity sensors (in green). 4 Robotic Experimental Setup The robot controller consists of a neural controller fully connected (see Fig.2) with 8 input neurons that encode the activation states of the corresponding 8 infrared sensors. Values for activation are normalized between 0 and 1, where 0 means that an obstacle is detected nearby, and 1 represents no obstacle detection. Additionally, 4 internal neurons receive connections from sensory neurons and send connections to 2 motor neurons. The first motor neuron is used to define the linear velocity, whereas the second one defines the angular velocity. The output and the internal neurons use a sigmoid transfer function. The robot controllers were evolved, using DE as the evolutionary approach, for automatically obtain the wall-following behavior. Based on the work of Mezura et ál.[29], for solving a high-dimensionality problem, we have chosen the next DE variants: DE/rand/1/bin and DE/best/1/bin; with the following parameters: DE/rand/1/bin with F =0.7, CR=1.0, N =120; and the DE/best/1/bin with: F =0.8, CR=1.0, N =150. For our experiments we evolved neural controllers in the Player-Stage simulator. The evolutionary process is computed by the DE with the above variants and 6 Authors Suppressed Due to Excessive Length Fig. 2. The Neural Network used as robot controller for the e-puck robot, composed by 8 neurons in the input layer for the infrared sensors, 4 neurons in the hidden layer and the output layer made of 2 neurons for controlling robot-motion (notice that not all connections are shown). parameters. The algorithm is left to run until an optimal level is reached. The fitness function looks for those individuals able to locate and follow a wall without crashing. The fitness function is defined in equation (2). Fitness is averaged during 5 different trials for an individual tested with initial random positions and orientations. The average fitness is scored as the individual fitness. f= n X i=0 [(linearV elocity) ∗ (1 − abs(angularV elocity) ∗ (1 − min ir))] (2) where: linearVelocity ∈ {0, 1}, 0 represents the minimum value of velocity and 1 its maximum value; angularVelocity ∈ {−1, +1}, -1 represents a left-turn, +1 a right-turn and 0 forward-movement; min ir ∈ {0, 1} is the minimum reading of the 8 infrared sensors. Infrared sensors take values of ∈ {0, 1}, where 1 represents that no-obstacle is detected; in contrast 0 is obtained when an object is detected in the vicinity of the robot body. When a robot crashes, calculation of the fitness is stopped and its current value is returned as the scored fitness. The fitness formula is set to maximize linear velocity while minimizing both the angular velocity and robot-distance to the wall. In other words, the fitness function looks for moving forward quickly and running parallel to walls. In summary, a neuro-controller was evolved in order to develop wall-following behavior using the DE variants. 5 Results In order to verify the quality of the evolved solutions, experiments are replicated at least three times due to the expensive time execution. The best results are Title Suppressed Due to Excessive Length 7 obtained with the DE/best/1/bin, which reaches a maximum fitness of 246.66 (see Fig.4), while the DE/rand/1/bin reaches a maximum fitness of 215.217 (see Fig.3). For all cases each individual is evaluated 5 times with random positions and orientations. In general, the DE/best/1/bin makes a better exploitation of candidate neural-controllers in the fitness landscape than DE/rand/1/bin. Figures 3 and 4 denote the evolution of the average quality of the population and the evolution of the quality of the best individual. In both cases, the DE/best/1/bin and the DE/rand/1/bin, the average quality approaches progressively to the best quality through generations, though maintaining an adequate diversity in the population able to obtain better solutions. Therefore, the exploration dominates completely in DE searching. In total, evolution was carried out for 30,000 evaluations. After evolution is stopped the wall-following behavior can be described as follows: robot is located in the arena, first it starts by looking for the nearest wall, when the wall is found, the e-puck follows the wall while it avoids crashing into walls (see Fig.5 and Fig.6). Fig. 3. Maximum and average fitness is plotted across 250 generations using the DE/rand/1/bin method. 6 Discussion and Conclusions In ER, the most common approach relies on the use of GA and NNs for evolving robot controllers. In this work we evolve neuro-controllers using two DE variants. 8 Authors Suppressed Due to Excessive Length Fig. 4. Maximum and average fitness is plotted across 200 generations using the DE/best/1/bin method. The work on this paper shows the results of using DE variants: DE/rand/1/bin and DE/best/1/bin to evolve a wall-following behavior; using the Player-Stage simulator, which facilitated testing individuals during evolution. The resultant behavior is equivalent for both the real and the simulated e-puck robot. Here, we have shown that the use of DE produces fine candidate neuro-controller solutions for robot behavior. DE offers easy parameter calibration, fast implementation, fine exploration/exploitation of candidate solutions in the fitness landscape, and also production of mature individuals during the initial generations of the evolutionary process. As future work, we propose to combine or hybridize DE with local search methods, like supervised and reinforcement learning in the neural network controllers. This will allow the integration of the advantages of the two search methods: the global search provided by the DE method with the fast local search of the neural learning methods. Acknowledgments. This work has been sponsored by CONACyT-MEXICO grant SEP No. 0100895 and by the Ministry of Science and Innovation of Spain (project TIN2011-27294). The third author acknowledges support from CONACyTMEXICO through project No. 79809. Title Suppressed Due to Excessive Length 9 Fig. 5. Robot behavior in the real e-puck robot for the best individual of evolution using the DE/best/1/bin method. The robot starts searching for a wall, when a wall is found, the epuck follows the wall while avoids crashing into walls. Fig. 6. The Player-Stage simulated e-puck robot for the best individual of evolution using the DE/best/1/bin method. A wall-following behavior is exhibited by the best individual. 10 Authors Suppressed Due to Excessive Length References 1. Nolfi, S., Floreano, D.: Evolutionary Robotics, The Biology, Intelligence, and Technology of Self-Organizing Machines, The MIT Press, Cambridge Massachusetts (2000) 2. Cliff, D. T., Harvey, I., Husbands, P.: Explorations in Evolutionary Robotics. Adaptive Behavior 2, 73-110 (1993) 3. Holland, J.: Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor (1975) 4. Goldberg, D.E.: Genetic Algorithms in Search, Optimization, and Machine Learning. Reading, MA: Addison-Wesley (1989) 5. Trefzer, M., Kuyucu, T., Miller, J. F., Tyrrell, A. M.: Evolution and analysis of a robot controller based on a gene regulatory network. In: Tempesti, G., Tyrrell, A.M., Miller, J.F. (eds.) Proceedings of the 9th international conference on Evolvable systems: from biology to hardware (ICES 2010). pp. 61-72. Springer-Verlag, Berlin, Heidelberg (2010) 6. Nolfi S., Floreano, D., Miglino, O., Mondada, F.: How to Evolve Autonomous Robots: Different Approaches in Evolutionary Robotics. In: Brooks, R.A., Maes, P. (eds.) Proceedings of the IV International Workshop on Artificial Life, pp. 190197. Cambridge, MA, MIT Press (1994) 7. Mondada, F., Floreano, D.: Evolution of Neural Control Structures: Some Experiments on Mobile Robots. J. Robotics and Autonomous Systems, vol. 16, pp. 183-195 (1995) 8. Floreano, D., Mondada, F.: Evolution of homing navigation in a real mobile robot. In: IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics 26, pp. 396-407. IEEE Press Piscataway, NJ, USA (1996) 9. Nolfi, S.: Evolving non-Trivial Behaviors on Real Robots: a garbage collecting robot. In: Robotics and Autonomous Systems, vol. 22, pp. 187-198 (1997) 10. Nolfi, S.: Evolving non-trivial behavior on autonomous robots: Adaptation is more powerful than decomposition and integration. In: Gomi, T. (eds.), Evolutionary Robotics, pp. 21-48, AAI Books, Ontario, Canada (1997) 11. Kodjabachian, J., Meyer J., Ecole A., Superieure France.: Evolution and development of neural controllers for locomotion, gradient-following, and obstacle-avoidance in artificial insects. J. Trans. Neur. Netw. 796-812 (1997) 12. Quinn, M.,Smith, L., Mayley, G., Husbands, P.: Evolving team behavior for real robots. In: EPSRC/BBSRC International Workshop on Biologically-Inspired Robotics: The Legacy of W. Grey Walter (WGW ’02), Aug. 14-16 (2002) 13. Nelson, A.L., Grant, E., Galeotti, J.M., Rhody, S.: Maze exploration behaviors using an integrated evolutionary robotics environment. J. Robotics and Autonomous Systems 46, 159-173 (2004) 14. Montes-Gonzalez, F., Aldana-Franco, F.: The evolution of signal communication for the e-puck robot. In: Batyrshin, I., Sidorov, G. (eds.) Proceedings of the 10th Mexican international conference on Advances in Artificial Intelligence - Volume Part I (MICAI’11), pp. 466-477, Springer-Verlag, Berlin, Heidelberg (2011) 15. Rechenberg, I.: Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution. Dr.-Ing. Thesis, Technical University of Berlin, Department of Process Engineering (1973) 16. Storn, R., Price, K.: Differential Evolution a Simple and Efficient Heuristic for Global Optimization over Continuous Spaces. J. of Global Optimization vol. 11, no. 4, 341-359 (1997) Title Suppressed Due to Excessive Length 11 17. Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press (1992) 18. Christopher, L., Huosheng, H.: Using Genetic Programming to Evolve Robot Behaviours. In: Proceedings of the 3rd British Conference on Autonomous Mobile Robotics & Autonomous Systems (2001) 19. Mondana, F., Bonani, M., The e-puck education robot, http://www.e-puck.org/ 20. Doncieux, S., Mouret, J.: Behavioral diversity measures for Evolutionary Robotics. In: IEEE Congress on Evolutionary Computation. pp. 1-8 (2010) 21. Santos, J., Duro, R.: Artificial Evolution and Autonomous Robotics (in Spanish). Ra–Ma Editorial, Spain (2004) 22. Slowik, A., Bialko, M.: Training of artificial neural networks using differential evolution algorithm. In: Proc. IEEE Conf. Human Syst. Interaction, Cracow, Poland, pp. 60-65 (2008) 23. Price, K.: An introduction to differential evolution. In New ideas in optimization. In: Corne, D., Dorigo, M., Glover, F., Dasgupta, D., Moscato, P., Poli, R., Price, K.V. (eds.) New ideas in optimization, pp. 79-108. McGraw-Hill Ltd., UK, Maidenhead, UK, England (1999) 24. Moreno, L., Garrido, S., Martı́n, F., Munoz,M.L.: Differential evolution approach to the grid-based localization and mapping problem. In: Intelligent Robots and Systems (IROS 2007). IEEE/RSJ International Conference, pp. 3479-3484 (2007) 25. Vahdat, A.R., NourAshrafoddin, N., Ghidary, S.S.: Mobile robot global localization using differential evolution and particle swarm optimization. In: Proceedings of the IEEE Congress on Evolutionary Computation (CEC) , pp. 1527-1534 (2007) 26. Joshi, R., Sanderson, A.C.: Minimal representation multisensor fusion using differential evolution. In: IEEE Transactions on Systems, Man and Cybernetics, Part A: Systems and Humans, vol. 29, no. 1, pp. 63-76 (1999) 27. Feoktistov, V.: Differential Evolution: In Search of Solutions, Springer (2006) 28. The Player Project. Free Software tools for robot and sensor applications, http: //playerstage.sourceforge.net/ 29. Mezura-Montes, E., Miranda-Varela, M.E., Gómez-Ramón, R.C.: Differential evolution in constrained numerical optimization: An empirical study. J. Information Sciences, vol. 180, issue 22, 4223-4262 (2010) Referencias Agrawal, R. B., Deb, K., Deb, K. y Agrawal, R. B. Simulated binary crossover for continuous search space. Informe técnico, 1994. Arkin, R. C. Behavior-Based Robotics (Intelligent Robotics and Autonomous Agents). The MIT Press, 1998. ISBN 0262011654. Ashby, W. Design for a brain. Chapman and Hall, London, 1960. Barricelli, N. Esempi numerici di processi di evoluzione. Methodos, páginas 45–68, 1954. Barto, A. G., Bradtke, S. J. y Singh, S. P. Learning to act using real-time dynamic programming. Artificial Intelligence, vol. 72, páginas 81–138, 1995. Beer, R. D. y Gallagher, J. Evolving dynamical neural networks for adaptive behavior. Adaptive Behavior , vol. 1(1), páginas 91–122, 1992. Bonani, M., Raemy, X., Pugh, J., Mondana, F., Cianci, C., Klaptocz, A., Magnenat, S., Zufferey, J. C., Floreano, D. y Martinoli, A. The e-puck, a Robot Designed for Education in Engineering. Proceedings of the 9th Conference on Autnomous Robot Systems and Competitions, vol. 1, páginas 59–65, 2009. Booker, L. B., Goldberg, D. E. y Holland, J. H. Classifier systems and genetic algorithms. Artif. Intell., vol. 40(1-3), páginas 235–282, 1989. Bremermann, H. The Evolution of Intelligence: The Nervous System as a Model of Its Environment. University of Washington, Department of Mathematics, 1958. Brooks, R. Achieving artificial intelligence through building robots. Informe técnico, Cambridge, MA, USA, 1986a. Brooks, R. Planning is Just a Way of Avoiding Figuring Out What to Do Next. 1987. 105 106 Referencias Brooks, R. New approaches to robotics. Science, vol. 253, páginas 1227– 1232, 1991a. Brooks, R. A. A robust layered control system for a mobile robot. IEEE Journal of Robotics and Automation, vol. 2(10), 1986b. Brooks, R. A. Elephants don’t play chess. Robotics and Autonomous Systems, vol. 6, páginas 3–15, 1990. Brooks, R. A. Intelligence without representation. Artif. Intell., vol. 47(13), páginas 139–159, 1991b. Cliff, D., Harvey, I. y Husbands, P. Explorations in evolutionary robotics. Adaptive Behavior , vol. 2, páginas 73–110, 1993. Connell, J. H. SSS: a hybrid architecture applied to robot navigation. vol. 3, páginas 2719–2724. 1992. Derrac, J., García, S., Molina, D. y Herrera, F. A practical tutorial on the use of nonparametric statistical tests as a methodology for comparing evolutionary and swarm intelligence algorithms. Swarm and Evolutionary Computation, vol. 1(1), páginas 3–18, 2011. Dorigo, M. Optimization, Learning and Natural Algorithms. Tesis Doctoral, Politecnico di Milano, Italy, 1992. Fikes, R. y Nilsson, N. J. Strips: A new approach to the application of theorem proving to problem solving. En IJCAI (editado por D. C. Cooper), páginas 608–620. William Kaufmann, 1971. ISBN 0-934613-346. Floreano, D. y Mattiussi, C. Bio-Inspired Artificial Intelligence: Theories, Methods, and Technologies. The MIT Press, 2008. ISBN 0262062712, 9780262062718. Floreano, D. y Mondada, F. Evolution of homing navigation in a real mobile robot. IEEE Transactions on Systems, Man, and Cybernetics, Part B , vol. 26(3), páginas 396–407, 1996. Floreano, D. y Mondada, F. Evolutionary neurocontrollers for autonomous mobile robots. Neural Networks, vol. 11, páginas 1461–1478, 1998. Fogel, L. J., Owens, A. J. y Walsh, M. J. Artificial Intelligence through Simulated Evolution. John Wiley, 1966. Friedberg, R. M. A learning machine: Part I. IBM Journal of Research and Development, vol. 2(1), páginas 2–13, 1958. Referencias 107 Friedman, G. Selective Feedback Computers for Engineering Synthesis and Nervous System Analogy. University of California, Los Angeles– Engineering, 1956. Garro, B. A., Sossa, H. y Vazquez, R. A. Design of artificial neural networks using a modified particle swarm optimization algorithm. En Proceedings of the 2009 international joint conference on Neural Networks, IJCNN’09, páginas 2363–2370. IEEE Press, Piscataway, NJ, USA, 2009. ISBN 978-1-4244-3549-4. Garro, B. A., Sossa, H. y Vázquez, R. A. Design of artificial neural networks using differential evolution algorithm. En Proceedings of the 17th international conference on Neural information processing: models and applications - Volume Part II , ICONIP’10, páginas 201–208. SpringerVerlag, Berlin, Heidelberg, 2010. ISBN 3-642-17533-3, 978-3-642-17533-6. Goldberg, D. E. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley, New York, 1989. Gomi, T. y Griffith, A. Evolutionary robotics: An overview. páginas 40–49, 1996. Gruau, F. Cellular encoding of genetic neural networks. Technical report 92-21, Laboratoire de lÍnformatique du Parallilisme. Ecole Normale Supirieure de Lyon, France, 1992. Harvey, I. Artificial evolution and real robots. Artificial Life and Robotics, vol. 1, páginas 35–38, 1997. Harvey, I., Husbands, P. y Cliff, D. Issues in evolutionary robotics. En Proceedings of the Conference on Simulation of Adaptive Behavior (SAB). 1993. Holland, J. H. Adaptation in natural and artificial systems. MIT Press, Cambridge, MA, USA, 1992. ISBN 0-262-58111-6. Husbands, P., Harvey, I., Cliff, D. y Miller, G. The use of genetic algorithms for the development of sensorimotor control systems. 1994. Joshi, R. y Sanderson, A. C. Minimal representation multisensor fusion using differential evolution. IEEE Transactions on Systems, Man, and Cybernetics, Part A, vol. 29(1), páginas 63–76, 1999. Karaboga, D. An idea based on Honey Bee Swarm for Numerical Optimization. Informe Técnico TR06, Erciyes University, 2005. Kennedy, J. y Eberhart, R. C. Particle Swarm Optimization. En Proceedings of IEEE International Conference on Neural Networks, vol. 4, páginas 1942–1948. IEEE Computer Society, Washington, DC, USA, 1995. 108 Referencias Kodjabachian, J., arcady Meyer, J., Ecole, A. y France, N. S. Evolution and development of neural networks controlling locomotion, gradient-following, and obstacle-avoidance in artificial insects. 1997. Kodjabachian, J. y Meyer, J.-A. Evolution and development of control architectures in animats. Robotics and Autonomous Systems, vol. 16(2-4), páginas 161–182, 1995. Kohonen, T. Self-organized formation of topologically correct feature maps. Biological Cybernetics, vol. 43(1), páginas 59–69, 1982. ISSN 03401200. Kohonen, T. Self-organization and Associative Memory, vol. 8 de Springer Series in Information Sciences. Springer-Verlag, Berlin Heidelberg, 1984. Laue, T. y Röfer, T. A behavior architecture for autonomous mobile robots based on potential fields. En RobuCup (editado por D. Nardi, M. Riedmiller, C. Sammut y J. Santos-Victor), vol. 3276 de Lecture Notes in Computer Science, páginas 122–133. Springer, 2004. ISBN 3-540-250468. Lazarus, C. y Hu, H. Using genetic programming to evolve robot behaviours. En Proceedings of the 3 rd British Conference on Autonomous Mobile Robotics & Autonomous Systems. 2001. Lund, H. H., Hallam, J., Lee, W.-P., John, L. y po Lee, H. W. Evolving robot morphology. 1997. Maes, P. A bottom-up mechanism for behavior selection in an artificial creature. Proceedings of the first international conference on simulation of adaptive behavior on From animals to animats, páginas 238 – 246, 1991. Mahadevan, S. y Connell, J. Automatic programming of behavior-based robots using reinforcement learning. Artif. Intell., vol. 55(2-3), páginas 311–365, 1992. ISSN 0004-3702. Mataric, M. Behavior-based control: Main properties and implications. En In Proceedings, IEEE International Conference on Robotics and Automation, Workshop on Architectures for Intelligent Control Systems, páginas 46–54. 1992. Meyer, J.-A., Husbands, P. y Harvey, I. Evolutionary robotics: A survey of applications and problems. vol. 1468, páginas 1–21, 1998. Mezura-Montes, E., Miranda-Varela, M. E. y del Carmen GómezRamón, R. Differential evolution in constrained numerical optimization: An empirical study. Inf. Sci., vol. 180(22), páginas 4223–4262, 2010. Referencias 109 Minsky, M. The Emotion Machine: Commensense Thinking, Artificial Intelligence, and the Future of the Human Mind . Simon & Schuster, 2006. ISBN 9780743276634. Mondada, F. y Floreano, D. Evolution of neural control structures: some experiments on mobile robots. Robotics and Autonomous Systems, vol. 16(2-4), páginas 183–195, 1995. Montes-Gonzalez, F. y Aldana-Franco, F. The evolution of signal communication for the e-puck robot. En MICAI (1) (editado por I. Z. Batyrshin y G. Sidorov), vol. 7094 de Lecture Notes in Computer Science, páginas 466–477. Springer, 2011. ISBN 978-3-642-25323-2. Moreno, L., Garrido, S., Monar, F. M. y Muñoz, M. L. Differential evolution approach to the grid-based localization and mapping problem. En IROS , páginas 3479–3484. IEEE, 2007. Nelson, A. L., Grant, E., Galeotti, J. M. y Rhody, S. Maze exploration behaviors using an integrated evolutionary robotics environment. Robotics and Autonomous Systems, vol. 46(3), páginas 159–173, 2004. Nicolescu, M. N. y Mataric, M. J. A hierarchical architecture for behavior-based robots. En AAMAS , páginas 227–233. ACM, 2002. Nilsson, N. Principles of Artificial Intelligence. Symbolic Computation: Artificial Intelligence. Springer, 1982. ISBN 9783540113409. Nolfi, S. Evolving non-trivial behavior on autonomous robots: Adaptation is more powerful than decomposition and integration. En Evolutionary Robotics: From Intelligent Robots to Artificial Life (editado por T. Gomi). AAI Books, Ontario, Canada, 1997a. Nolfi, S. Evolving non-trivial behaviors on real robots: A garbage collecting robot. Robotics and Autonomous Systems, vol. 22(3-4), páginas 187–198, 1997b. Nolfi, S., Elman, J. L. y Parisi, D. Learning and evolution in neural networks. Informe Técnico 9019, Center for Research in Language, University of California, San Diego, 1990. Nolfi, S. y Floreano, D. Evolutionary Robotics: The Biology, Intelligence, and Technology of Self-Organizing Machines. Intelligent Robots and Autonomous Agents. MIT Press, 2000. ISBN 9780262140706. Nolfi, S., Floreano, D., Miglino, O. y Mondada, F. How to evolve autonomous robots: Different approaches in evolutionary robotics. En Proceedings of the 4th International Workshop on the Synthesis and Simulation of Living Systems Artif icialLif eIV , páginas 190–197. 1994. 110 Referencias Nolfi, S. y Mirolli, M. Evolution of Communication and Language in Embodied Agents. Springer, 2009. ISBN 9783642012495. Owen, J. Player-stage manual. http://www-users.cs.york.ac.uk/ jowen/player/playerstage-manual.html, 2011. Player-Stage. The player project. http://playerstage.sourceforge. net/index.php?src=index, 2011. Price, K., Storn, R. y Lampinen, J. Differential Evolution: A Practical Approach to Global Optimization. Natural Computing Series. Springer, 2005. ISBN 9783540209508. Price, K. V. New ideas in optimization. capítulo An introduction to differential evolution, páginas 79–108. McGraw-Hill Ltd., UK, Maidenhead, UK, England, 1999. ISBN 0-07-709506-5. Quinn, M., Smith, L., Mayley, G. y Husbands, P. Evolving team behaviour for real robots. En North Carolina State University, páginas 14–16. 2002. Rechenberg, I. Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution. Problemata, 15. FrommannHolzboog, 1973. ISBN 9783772803734. Reyes, J. S. y Duro, R. J. Evolving neural controllers for temporally dependent behaviors in autonomous robots. En IEA/AIE (Vol. 2) (editado por A. P. D. Pobil, J. Mira y M. Ali), vol. 1416 de Lecture Notes in Computer Science, páginas 319–328. Springer, 1998. ISBN 3-540-64574-8. Reyes, J. S. y Duro, R. J. Influence of noise on discrete time backpropagation trained networks. Neurocomputing, vol. 41(1-4), páginas 67–89, 2001. Reynolds, C. W. Evolution of corridor following behavior in a noisy world. En Simulation of Adaptive Behaviour (SAB-94). 1994. Rumelhart, D., Hintont, G. y Williams, R. Learning representations by back-propagating errors. Nature, vol. 323(6088), páginas 533–536, 1986. Russell, S. y Norvig, P. Artificial Intelligence: A Modern Approach. Prentice Hall Series in Artificial Intelligence. Prentice Hall, 2010. ISBN 9780136042594. Santos, J. y Duro, R. Evolución artificial y robótica autónoma. Ra-Ma, 2005. ISBN 9788478976317. Sharkey, N. E. The new wave in robot learning. Robotics and Autonomous Systems, vol. 22(3-4), páginas 179–185, 1997. Referencias 111 Slowik, A. y Bialko, M. Training of artificial neural networks using differential evolution algorithm. 2008. Storn, R. y Price, K. Differential evolution - a simple and efficient heuristic for global optimization over continuous spaces. J. of Global Optimization, vol. 11(4), páginas 341–359, 1997. ISSN 0925-5001. Vahdat, A. R., NourAshrafoddin, N. y Ghidary, S. S. Mobile robot global localization using differential evolution and particle swarm optimization. En IEEE Congress on Evolutionary Computation, páginas 1527– 1534. IEEE, 2007. Walter, W. The living brain. G. Duckworth, 1953. Wang, L., Tan, K. y Chew, C. Evolutionary Robotics: From Algorithms to Implementations. World Scientific Series in Robotics and Intelligent Systems. World Scientific Publishing, 2006. ISBN 9789812568700. Wiener, N. Cybernetics; or, Control and communication in the animal and the machine. Actualités scientifiques et industrielles. J. Wiley, 1948.