ABSTRACT
Traditional genetic programming uses tree-like data structure to represent a program. It should be converted into a Lisp code, or needs a custom-made virtual machine or interpreter to execute the program generated. Recently, there is a study on genetic programming directly using Java bytecode, a practical intermediate language. It evolves a series of commands that manipulate stack and registers in the virtual machine and represents them with a simple list data structure instead of tree. Evolving the intermediate language is promising because 1) it is easy to combine an existing program with an automatically generated program, 2) there are several available development tools and environments for the language including virtual machine, decompiler, optimizer and so on, and 3) incorporating the list data structure into the evolutionary algorithm is simple and straightforward. In this research, we propose to evolve bytecode of Python programming language by stack-based genetic programming. Python is a flexible and popular programming language powered by plenty of research tools. For the evolution, we developed representation and genetic operations for the Python language. We report that the proposed method produced successful Python codes for two regression problems.
- Nordin, P., 2004. A compiling genetic programming system that directly manipulates the machine code, Advances in Genetic Programming, MIT Press.Google Scholar
- Harvey, B., Foster, J. A. and Frincke, D., 1998. Towards byte code genetic programming, Late Breaking Papers of Genetic Programming, 1998.Google Scholar
- Orlov, M. and Sipper, M. Flight of the FINCH through the Java wilderness, IEEE Transactions on Evolutionary Computation, 15, 2, (April. 2011), 166--182. Google ScholarDigital Library
- http://pypy.org/Google Scholar
- http://pypi.python.org/pypi/byteplay/0.2Google Scholar
Recommendations
Expressive genetic programming: tutorial: 2012 genetic and evolutionary computation conference (GECCO-2012)
GECCO '12: Proceedings of the 14th annual conference companion on Genetic and evolutionary computationThe language in which evolving programs are expressed can have significant impacts on the problem-solving capabilities of a genetic programming system. These impacts stem both from the absolute computational power of the languages that are used, as ...
Programming with Python
Python is a powerful, easy-to-use programming language based on other traditional languages. In this article, the author discusses why his company, NovaSys Health, chose Python as its primary programming language. The author notes that Python is ...
Comments