An approach to the creation of intelligent systems is considered, which combines the ideas of Glushkov’s algebra of algorithms with the well-known neuroevolutionary algorithms of computational intelligence, which can be used to automate the design and synthesis of programs. The method of neuroevolution of augmenting topologies is intended to reduce the dimensionality of the space for searching for neural network parameters in the form of gradual development of its structure in the process of evolution. A software toolkit has been developed to support the approach, which is based on the construction of high-level specifications of algorithms represented in systems of algorithmic algebras, and generation of corresponding programs based on implementation templates in a target programming language. Parameterized algorithms called hyperschemes are used to solve a certain class of problems. Setting specific values of parameters and subsequent interpretation of hyperschemes allows obtaining algorithms adapted to specific application conditions. The developed program design and synthesis toolkit provides step-by-step development of programs, starting from a high-level algebraic-algorithmic specification. At the output of the toolkit, a program is automatically generated in one of the target programming languages (С, С++, Java, Python), that also include a subject-oriented language for designing neural networks. The mentioned language includes operators and conditions for working with populations, configurations, genomes, and fitness function. The work of the toolkit is illustrated by the example of designing a parameterized evaluation algorithm for a binary multiplexer and generation of a program for the single-pole balancing problem
Read full abstract