A Performance Comparison of Tree-Based Genetic Programming versus Stack-Based Genetic Programming versus Stack-Based Genetic Programming Using the Java Virtual Machine

Stack-based genetic programming uses variable length, linear programs executing on a virtual stack machine. This concept was proposed and evaluated by Timothy Perkis. The Java programming language uses a stack-based virtual machine to perform operations. This paper examined the possibility of perfor...

Full description

Bibliographic Details
Main Author: Steinhoff, Robert J.
Published: NSUWorks 2000
Subjects:
Online Access:http://nsuworks.nova.edu/gscis_etd/859
Description
Summary:Stack-based genetic programming uses variable length, linear programs executing on a virtual stack machine. This concept was proposed and evaluated by Timothy Perkis. The Java programming language uses a stack-based virtual machine to perform operations. This paper examined the possibility of performing stack-based genetic programming directly using the stack on the Java virtual machine. The problems of combining stack based genetic programming with the Java virtual machine stack were explored. Excessive runtime delay on bytecode verification of the chromosome carrying classes undergoing fitness evaluation was identified. Another problem is that the Java virtual machine stack must be tightly controlled and cannot have illegal operands. Direct comparison of stack-based genetic programming on the Java virtual machine to common tree-based genetic programming was not performed due to discovered flaws in the architecture. A practical model to implement stack-based genetic programming on the Java virtual machine using a class bytecode assembler was proposed. This model combines the GPsys genetic programming system with the JAS bytecode assembler resulting in an architecture called GPsys-JAS. A further recommendation to compare stack-based genetic programming on the Java virtual machine against stack-based genetic programming using the Java Stack class was suggested.