Monday, 15 de June de 2015

Un algoritmo basado en la Teoría de la Evolución para diseñar programas informáticos complejos



 

Un algoritmo inspirado en la Teoría de la Evolución ayuda a diseñar programas informáticos complejos
La UCO emplea la inteligencia artificial para ayudar a ingenieros de ‘software’ a diseñar aplicaciones como las que emplean grandes almacenes u hospitales
Espacios de trabajo con muchos empleados y recursos, como por ejemplo unos grandes almacenes o una fábrica, suelen emplear programas informáticos bastante complejos para sus gestiones de logística, distribución o venta, por ejemplo, con diferentes módulos y funcionalidades interconectados. Si surge un problema en algún punto de este sistema, generalmente se acude a ingenieros de Informática con mucha experiencia para solucionarlo o evitar que se expanda. El grupo de investigación KDIS (Knowlege Discovery and Intelligent Systems) de la Universidad de Córdoba ha propuesto una alternativa a la figura del preciado especialista: la inteligencia artificial. Han diseñado un algoritmo que es capaz de sugerir la solución más eficiente para resolver el problema informático. Es la primera vez que, para la resolver estas dificultades, se emplea un algoritmo evolutivo, llamado así porque su funcionamiento está basado en la Teoría de la Evolución.
Para afrontar el diseño de los denominados sistemas complejos de software y minimizar los errores que en estos puedan surgir, se requieren respuestas precisas y rápidas. Es fácil de imaginar la desesperación que podría cundir en unos grandes almacenes si hay un fallo desconocido en el sistema de venta o en un hospital si se bloquea la aplicación de citas. “Hoy en día, las grandes organizaciones que emplean este tipo de software complejo contrata a los mejores ingenieros de software para dar con la solución”, explica José Raúl Romero, del Departamento de Informática y Análisis Numérico de la Universidad de Córdoba e investigador del grupo KDIS. La alternativa a acudir a la experiencia del experto, “que por naturaleza es subjetivo y puede errar”, es explorar todas las opciones para dar con la solución idónea. Sin embargo, para realizar este tipo de análisis tan profundo se necesita tiempo, y, en muchas ocasiones, no se dispone de él. La propuesta de este equipo de científicos, el uso de inteligencia artificial, aporta un abanico de buenas soluciones de una manera más rápida, “lo que lo convierte en la alternativa más eficiente”, subraya Aurora Ramírez, estudiante de doctorado.
El algoritmo está inspirado en cómo la vida se abre camino en la naturaleza: la evolución biológica. Los algoritmos evolutivos generan soluciones al azar, como surgen las variaciones en las nuevas generaciones de individuos en organismos vivos y se produce la evolución de las especies. El algoritmo este proceso evolutivo. Primero, selecciona una serie de soluciones para el problema dado. Entre estas soluciones candidatas tiene lugar un proceso similar al de la reproducción en la vida, cruzando a los padres para que produzcan hijos con diferentes características de sus progenitores. También pueden mutar directamente las soluciones para potenciar las características deseadas. “Como en la naturaleza, sobreviven los más adaptables y mejores, por lo que podemos hallar el resultado buscado”, indica el investigador principal del grupo KDIS, Sebastián Ventura. 
Arquitectura del software
El uso de técnicas de búsqueda para la resolución de problemas es uno de los planteamientos de los sistemas inteligentes, y una de las líneas de investigación del equipo que dirige Ventura. Empleada ya con éxito en robótica o en videojuegos, “este tipo de tecnología ofrece una solución teórica para que luego el técnico ofrezca soluciones específicas”, indica el responsable del grupo de investigación. Actuando como apoyo, la inteligencia artificial puede ayudar especialmente a ingenieros noveles, a los que les falta experiencia. En todo caso, ahorra cálculos de variables en la búsqueda de soluciones a estos difíciles problemas.
En la búsqueda de un problema en software complejo, los ingenieros informáticos tienen que acudir a la raíz, que es la arquitectura software. La arquitectura software es la base sobre la que se asienta todo el sistema, sus módulos y sus funcionalidades. El algoritmo de inteligencia artificial busca el origen del problema en las diferentes partes de la aplicación y descubre esta arquitectura software.
Por este motivo, una parte del estudio se basó en un análisis de sensibilidad, esto es, la configuración más adecuada del algoritmo. Ajustado el mismo, los ingenieros trabajaron en mejorar el rendimiento del algoritmo sobre un software complejo real y lo compararon con la respuesta de expertos. El balance, el diseño del algoritmo y material adicional ha sido publicado en una web específica. El trabajo de investigación es recogido por la revista Information Sciences.
Aurora Ramírez, José Raúl Romero, Sebastián Ventura; ‘An approach for the evolutionary discovery of software architectures’; Information Sciences, volumen 305, 1 de junio de 2015, páginas 234–255.

Los investigadores José Raúl Romero (izquierda), Aurora Ramírez y Sebastián Ventura, en la sala de trabajo del grupo KDIS, de la Universidad de Córdoba.

 

Espacios de trabajo con muchos empleados y recursos, como por ejemplo unos grandes almacenes o una fábrica, suelen emplear programas informáticos bastante complejos para sus gestiones de logística, distribución o venta, por ejemplo, con diferentes módulos y funcionalidades interconectados. Si surge un problema en algún punto de este sistema, generalmente se acude a ingenieros de Informática con mucha experiencia para solucionarlo o evitar que se expanda. El grupo de investigación KDIS (Knowlege Discovery and Intelligent Systems) de la Universidad de Córdoba ha propuesto una alternativa a la figura del preciado especialista: la inteligencia artificial. Han diseñado un algoritmo que es capaz de sugerir la solución más eficiente para resolver el problema informático. Es la primera vez que, para la resolver estas dificultades, se emplea un algoritmo evolutivo, llamado así porque su funcionamiento está basado en la Teoría de la Evolución.

 

Para afrontar el diseño de los denominados sistemas complejos de software y minimizar los errores que en estos puedan surgir, se requieren respuestas precisas y rápidas. Es fácil de imaginar la desesperación que podría cundir en unos grandes almacenes si hay un fallo desconocido en el sistema de venta o en un hospital si se bloquea la aplicación de citas. “Hoy en día, las grandes organizaciones que emplean este tipo de software complejo contrata a los mejores ingenieros de software para dar con la solución”, explica José Raúl Romero, del Departamento de Informática y Análisis Numérico de la Universidad de Córdoba e investigador del grupo KDIS. La alternativa a acudir a la experiencia del experto, “que por naturaleza es subjetivo y puede errar”, es explorar todas las opciones para dar con la solución idónea. Sin embargo, para realizar este tipo de análisis tan profundo se necesita tiempo, y, en muchas ocasiones, no se dispone de él. La propuesta de este equipo de científicos, el uso de inteligencia artificial, aporta un abanico de buenas soluciones de una manera más rápida, “lo que lo convierte en la alternativa más eficiente”, subraya Aurora Ramírez, estudiante de doctorado.

 

El algoritmo está inspirado en cómo la vida se abre camino en la naturaleza: la evolución biológica. Los algoritmos evolutivos generan soluciones al azar, como surgen las variaciones en las nuevas generaciones de individuos en organismos vivos y se produce la evolución de las especies. El algoritmo este proceso evolutivo. Primero, selecciona una serie de soluciones para el problema dado. Entre estas soluciones candidatas tiene lugar un proceso similar al de la reproducción en la vida, cruzando a los padres para que produzcan hijos con diferentes características de sus progenitores. También pueden mutar directamente las soluciones para potenciar las características deseadas. “Como en la naturaleza, sobreviven los más adaptables y mejores, por lo que podemos hallar el resultado buscado”, indica el investigador principal del grupo KDIS, Sebastián Ventura. 

 

Arquitectura software
El uso de técnicas de búsqueda para la resolución de problemas es uno de los planteamientos de los sistemas inteligentes, y una de las líneas de investigación del equipo que dirige Ventura. Empleada ya con éxito en robótica o en videojuegos, “este tipo de tecnología ofrece una solución teórica para que luego el técnico ofrezca soluciones específicas”, indica el responsable del grupo de investigación. Actuando como apoyo, la inteligencia artificial puede ayudar especialmente a ingenieros noveles, a los que les falta experiencia. En todo caso, ahorra cálculos de variables en la búsqueda de soluciones a estos difíciles problemas.

 

En la búsqueda de un problema en software complejo, los ingenieros informáticos tienen que acudir a la raíz, que es la arquitectura software. La arquitectura software es la base sobre la que se asienta todo el sistema, sus módulos y sus funcionalidades. El algoritmo de inteligencia artificial busca el origen del problema en las diferentes partes de la aplicación y descubre esta arquitectura software.

 

Por este motivo, una parte del estudio se basó en un análisis de sensibilidad, esto es, la configuración más adecuada del algoritmo. Ajustado el mismo, los ingenieros trabajaron en mejorar el rendimiento del algoritmo sobre un software complejo real y lo compararon con la respuesta de expertos. El balance, el diseño del algoritmo y material adicional ha sido publicado en una web específica. El trabajo de investigación es recogido por la revista Information Sciences.

Aurora Ramírez, José Raúl Romero, Sebastián Ventura; ‘An approach for the evolutionary discovery of software architectures’; Information Sciences, volumen 305, 1 de junio de 2015, páginas 234–255.

Publicado el 15 de June de 2015 a las 11:04 en

Últimas Noticias

Destacadas

Agenda y Convocatorias

Noviembre de 2024
D L M X J V S
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Blogosfera de Ciencia