Programación genética lineal aplicada a la síntesis automática de programas para sistemas basados en microcontrolador

Descripción del Articulo

En la presente tesis se investiga la generación automática de programas de sistemas basados en microcontrolador empleando una metodología poco explorada como es la programación inductiva en la cual el punto de partida para la síntesis de un programa es una tabla de ejemplos de entrada-salida. La met...

Descripción completa

Detalles Bibliográficos
Autor: Ferrel Serruto, Wildor
Formato: tesis doctoral
Fecha de Publicación:2021
Institución:Universidad Nacional de San Agustín
Repositorio:UNSA-Institucional
Lenguaje:español
OAI Identifier:oai:repositorio.unsa.edu.pe:20.500.12773/12775
Enlace del recurso:http://hdl.handle.net/20.500.12773/12775
Nivel de acceso:acceso abierto
Materia:Síntesis de programas
Programación genética lineal
Generación automática de código
Optimización multi-objetivo
Coevolución cooperativa
Sistema basado en microcontrolador
https://purl.org/pe-repo/ocde/ford#1.02.01
Descripción
Sumario:En la presente tesis se investiga la generación automática de programas de sistemas basados en microcontrolador empleando una metodología poco explorada como es la programación inductiva en la cual el punto de partida para la síntesis de un programa es una tabla de ejemplos de entrada-salida. La metodología propuesta se fundamenta en la aplicación de algoritmos de programación genética lineal. Un sistema basado en microcontrolador, dependiendo de su aplicación, incluye además del microcontrolador otros dispositivos periféricos como pulsadores, teclado matricial, display de indicadores de siete segmentos, pantalla LCD de texto, sensores, actuadores, etc. Estos dispositivos se conectan al microcontrolador a través de las líneas de entrada/salida y cada dispositivo tiene una forma particular de interacción y en algunos casos un protocolo complejo de comunicación con el microcontrolador. Se propone la aplicación de la programación genética lineal en la generación automática de rutinas de gestión de los dispositivos periféricos y de rutinas frecuentes, en la programación de microcontroladores, como rutinas de conversión de código o rutinas de implementación de máquinas de estados. La metodología propuesta se describe principalmente aplicada a la arquitectura 8051, pero se puede aplicar a otras arquitecturas, como se muestra en un ejemplo final ilustrativo, en el cual se generan automáticamente rutinas para la tarjeta Arduino Mega de arquitectura AVR. Para resolver el problema complejo de síntesis de los programas se han aplicado dos estrategias. En primer lugar, según el programa a sintetizar, en la evaluación de la aptiiii tud de un programa genético, se ha asignado una función, a maximizarse, a cada bit de resultado binario o al diagrama de tiempo de cada pin de un puerto del microcontrolador donde está conectado el dispositivo periférico, lo que ha permitido realizar una optimización multi-objetivo. En segundo lugar, se ha dividido un programa en lenguaje máquina en segmentos que evolucionan paralelamente colaborando entre sí, lo que significó la aplicación de un algoritmo de coevolución cooperativa. La metodología propuesta, en base a estas estrategias, ha permitido generar automáticamente programas, en algunos casos, con un tamaño de código más pequeño o un tiempo de ejecución más corto que los programas escritos por un programador humano.
Nota importante:
La información contenida en este registro es de entera responsabilidad de la institución que gestiona el repositorio institucional donde esta contenido este documento o set de datos. El CONCYTEC no se hace responsable por los contenidos (publicaciones y/o datos) accesibles a través del Repositorio Nacional Digital de Ciencia, Tecnología e Innovación de Acceso Abierto (ALICIA).