Many-objective cooperative co-evolutionary linear genetic programming applied to the automatic microcontroller program generation

Research output: Contribution to journalArticlepeer-review

1 Scopus citations

Abstract

In this article, a methodology for the generation of programs in assembly language for microcontroller-based systems is proposed, applying a many-objective cooperative co-evolutionary linear genetic programming based on the decomposition of a program into segments, which evolve simultaneously, collaborating with each other in the process. The starting point for the program generation is a table of input/output examples. Two methods of fitness evaluation are also proposed. When the objective is to find a binary combination, the authors propose fitness evaluation with an exhaustive search for the output of each bit of the binary combination in the genetic program. On the other hand, when the objective is to generate specific variations of the logical values in the pins of the microcontroller's port, the authors propose calculating the fitness, comparing the timing diagrams generated by the genetic program with the desired timing diagrams. The methodology was tested in the generation of drivers for the 4x4 matrix keyboard and character LCD module devices. The experimental results demonstrate that for certain tasks, the use of the proposed method allows for the generation of programs capable of competing with programs written by human programmers.

Original languageEnglish
Pages (from-to)21-31
Number of pages11
JournalInternational Journal of Advanced Computer Science and Applications
Volume10
Issue number1
DOIs
StatePublished - 2019

Bibliographical note

Publisher Copyright:
© 2018 The Science and Information (SAI) Organization Limited.

Keywords

  • Cooperative coevolution
  • Linear genetic programming
  • Many-objective optimization
  • Microcontroller-based systems
  • Program synthesis

Fingerprint

Dive into the research topics of 'Many-objective cooperative co-evolutionary linear genetic programming applied to the automatic microcontroller program generation'. Together they form a unique fingerprint.

Cite this