Advanced science.  Applied technology.


Genetic Programming Environment for FIFTH (GPE5™)

GPE5 Home  |  GPE5 Services  |  GPE5 Download  |  GPE5 Publications

What Is Genetic Programming?

Creating computer systems that can solve problems without being told precisely how to solve them has been a goal since the early days of modern computing. In many ways, genetic programming (GP) is the research area that most closely approaches this goal. GP is a machine learning technique that searches a program space instead of a data space, which means a computer writes its own software to solve a problem.

There are many introductory texts on GP. One excellent free resource is A Field Guide To Genetic Programming, which is available as a free download.

What Makes GPE5 Different?

Introduced in 2007 by Southwest Research Institute (SwRI), the Genetic Programming Environment for FIFTH (GPE5) incorporates several important features that set it apart from other GP systems. GPE5 programs are evolved using a stack-based language (FIFTH) whose syntax and interpreter is similar to FORTH. The single parameter stack for FIFTH holds containers that support multiple data types with intrinsic handling of vectors and matrices. Other stack-based GP languages use separate stacks for each data type with no provision for manipulating a vector as an object.

FIFTH is expressive and easily extensible. In addition to the typical math and logic functions, the operators include high-level vector transforms (e.g., windowing and Fourier transform) as well as vector reductions (e.g., mean, standard deviation, and variance). GPE5 includes a FIFTH interpreter, allowing generated programs to be embedded directly into applications.

A second distinguishing feature is that GPE5 uses a linear program representation instead of a tree, and it performs all evolutionary manipulations using stack, branch, and flow-control tracing to ensure both syntactic and operational correctness. While there have been other published efforts using stack tracing, GPE5 is the first publicly available code set to do so.  These features enable GPE5 to solve classes of problems in areas such as digital signal processing that were previously intractable to GP techniques.

What Types of Problems Can GPE5 Solve?

Symbolic Regression

Also known as data modeling or curve fitting, GP excels at discovering nonlinear parametric formulas to fit large data sets.


GP has been successfully used on large data sets to automatically discover classification rules.

Vector-Based Data Analysis

GPE5 is particularly well suited to problems where the data are best represented as a vector, including time series measurements, digitized signals, etc.

Want to try GPE5? The source code and documentation for GPE5 are available for download.