Work in Progress

Building

First, build Psh by typing:

make

Next, run Psh on a sample problem:

java PshGP problems/regression1.pushgp

Editing .pushgp Config Files

PshGP runs are setup using configuration files which have the extension .pushgp. These files contain a list of parameters in the form of

name = value

population-size
execution-limit
tournament-size
mutation-percent
crossover-percent
max-generations
max-random-code-size
fair-mutation-range

Test Cases

Problem Classes

Each PshGP run uses a problem class which determines how fitness values are computed. The choice of problem class determines how test case data is interpreted, and which stacks are used for test case input and output.

  • FloatSymbolicRegression: maps input floating point values to an output floating point value. Error value is computed as the difference between the desired output value and the top value on the float stack.

    Writing Custom Problem Classes

    PshGP includes a number of standard problem classes, but to preform runs for custom data, you can implement your own custom problem class.

    In PshGP, as in much of the genetic programming world, the term fitness actually refers to error values such that lower values are considered more fit and such that 0.0 represents a perfect solution with no error. The

    EvaluateTestCase
    should therefore compute the error associate with a given individual.

    API Reference

    PushGP API documentation is available here.