MADRID, 15 Jun. (EUROPA PRESS) -
Un grupo KDIS (Knowlege Discovery and Intelligent Systems) de la Universidad de Córdoba ha diseñado un algoritmo capaz de sugerir la solución más eficiente para resolver un 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", ha explicado José Raúl Romero, del Departamento de Informática y Análisis Numérico de la Universidad de Córdoba.
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, ha señalado el científico.
Así, la propuesta de este equipo, 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", ha subrayado Aurora Ramírez, otra de las autoras del trabajo.
Según han indicado los expertos, 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.
Para este algoritmo, primero de 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", ha destacado el investigador principal 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'.