This site presents a research project concerning a general problem solving method based on the principles of Artificial Intelligence and Evolutionary Computation. Within this project, a prototype version of a computer language named GENETICA (which stands for “Genetic Evolution of Novel Entities Through the Interpretation of Composite Abstractions”) has been developed. GENETICA’s programming environment includes a computational system that evolves data abstractions viewed as genotypes of data generation scenarios occurring during different executions of a GENETICA program. Data structures resulting from these scenarios both solve the problem and represent the solution.

Relative fields of research, offering the origins of the ideas concerning the evolutionary method presented here, are the fields of genetic algorithms (GAs) and genetic programming (GP). In GAs the objects to be evolved are represented as binary strings, while in GP they are represented as computer programs. Although various representations of the objects to be evolved have been developed in both fields (particularly in GP where the effects of the syntactic properties of the evolving programs have been investigated), a unified effective representation of the problem to be solved is still required. Besides, the numerical nature of the fitness function, i.e. the function that evaluates the evolving objects, makes difficult for methods in both fields to cope with confirmation problems, namely problems of which the solution is evaluated in a boolean manner. Unified effective problem representations, including confirmation problems, have been based on formal logic and investigated within the field of Artificial Intelligence.

Within the approach presented here, a problem is represented as a GENETICA program where evolving data generation scenarios are viewed as efforts of either confirming formulae or optimizing functions defined in the program. This approach to evolutionary problem solving has the following benefits:

·         The problem formulation is fully supported by the expressive power of formal logic. As a consequence formally expressed knowledge, concerning either the logical context or the problem solving method, can be incorporated in the problem formulation, making the solution procedure particularly effective.

·         Formally expressed confirmation goals can be freely included in the problem formulation. The problem solving method can cope with general confirmation problems and problems combining both confirmation and optimization goals, besides the strictly optimization problems which constitute the typical domain of application of evolutionary computation.

·         A computer language having an evolutionary computational system incorporated in its  programming environment constitutes a very flexible tool for evolutionary computation: domain specific applications can be easily developed, since the domain context can be defined in the language in terms of formal logic while the problem solving engine is provided by the evolutionary computational system.

This site includes material documenting that:

·         Domain specific languages, inheriting GENETICA’s properties, can be developed in GENETICA

·         The latter languages may include GP ones if computer programs in the GP language are considered as data structures in GENETICA

·         Real scale GENETICA applications could effectively run in low-cost computers


A full presentation of the GENETICA approach to problem solving is included in the article "GENETICA: A Computer Language That Supports General Formal Expression With Evolving Data Structures", published in IEEE Transactions on Evolutionary Computation volume 7, issue 5, October 2003, pp.456-481.