Learning programs in different paradigms using Genetic Programming
Genetic Programming (GP) is a method of automatically inducing programs by representing them as parse trees. In theory, programs in any computer languages can be translated to parse trees. Hence, GP should be able to handle them as well. In practice, the syntax of Lisp is so simple and uniform that the translation process can be achieved easily, programs evolved by GP are usually expressed in Lisp. This paper presents a flexible framework that programs in various programming languages can be acquired. This framework is based on a formalism of logic grammars. To implement the framework, a system called LOGENPRO (The LOgic grammar based GENetic PROgramming system) has been developed. An experiment that employs LOGENPRO to induce a S-expression for calculating dot product has been performed. This experiment illustrates that LOGENPRO, when used with knowledge of data types, accelerates the learning of programs. Other experiments have been done to illustrate the ability of LOGENPRO in inducing programs in difference programming languages including Prolog and C. These experiments prove that LOGENPRO is very flexible.
Unable to display preview. Download preview PDF.
- DeJong, K. A., Spears, W. M. and Gordon, D. F. (1993). Using Genetic Algorithms for Concept Learning, Machine Learning, 13, 161–188.Google Scholar
- Goldberg, D. E. (1989) Genetic Algorithms in Search, Optimization, and Machine Learning. MA: Addison-Wesley.Google Scholar
- Janikow, C. Z. (1993). A Knowledge-Intensive Genetic Algorithm for Supervised Learning, Machine Learning, 13, 189–228.Google Scholar
- Koza, J. R. (1992). Genetic Programming: on the Programming of Computers by Means of Natural Selection. MA: MIT Press.Google Scholar
- Koza, J. R. (1994). Genetic Programming II: Automatic Discovery of Reusable Programs. Cambridge, MA: MIT Press.Google Scholar
- Montana, D. J. (1993). Strongly Typed Genetic Programming. Bolt, Beranek, and Newman Technical Report no. 7866.Google Scholar
- Pazzani, M. and Kibler, D. (1992). The Utility of Knowledge in Inductive learning. Machine Learning, 9, pp. 57–94.Google Scholar
- Pereira, F. C. N. and Warren, D. H. D. (1980). Definite Clause Grammars for Language Analysis — A Survey of the Formalism and a Comparison with Augmented Transition Networks. Artificial Intelligence; 13, pp. 231–278.Google Scholar
- Quinlan, J. R. (1990). Learning logical definitions from relations. Machine Learning, 5, 239–266.Google Scholar