Documentation of the prototype version of GENETICA’s programming environment
Introduction
GENETICA is a problem solving computer language integrated in a programming environment that includes a compiler, an evolutionary computational system and a user interface. The problem statement is represented as a GENETICA program while the solution process is realized within the evolutionary computational system. Problem solving is based on the evolution of data generated at runtime while the solution is represented as a data structure. GENETICA can cope with confirmation problems, i.e. problems of which the solution is evaluated in a boolean manner, optimization problems i.e. problems of which the solution is evaluated in a quantitative manner, and problems combining both confirmation and optimization goals.
GENETICA includes the partial recursive functions, the logical operations, the basic arithmetic operations and the quantifiers. GENETICA’s atomic terms are integers, reals and symbols represented as strings. Non atomic terms are lists—simple or nested—of atomic terms. Lists can be both constructed and processed in GENETICA by LISP-like formulae. GENETICA’s formulae can be also treated as terms, which makes possible high order modes of expression.
Given a GENETICA program, the computational system performs successive executions of the program, where each execution results to a different data generation scenario. Differences between data generation scenarios are caused by the non deterministic elementary decisions occurring during the program execution. These decisions depend on genes both created and structured by the computational system at run-time. Specific gene structures constitute genotypes, referred to as “genetic lists” (GLs), each one deterministically defining a data generation scenario. The successive program executions performed by the computational system result to a population of GLs. The computational system evaluates the performance of each data generation scenario in either confirming a specific formula or optimizing the value of a specific function within the program. The evaluation provides a fitness value for the GL of the data generation scenario. The computational system evolves the population by performing genetic operations on high fitness GLs, estimating the fitness of the GLs resulting from the genetic operations, and substituting low fitness GLs in the population. The best fitness GL of the population, after the evolution procedure, defines the data generation scenario that results to the solution. The latter is a data structure constructed by a specific formula within the program.
Download the file GENETICA_Documentation.PDF which includes a full documentation of the prototype version of GENETICA’s programming environment