TinyGP Scientific Libraries App

TinyGP

by Essex

A Tiny Genetic Programming Implementation
Helps with: Scientific Libraries
Similar to: Bullet App ALPS project App Newton Dynamics App GNU Scientific Library App More...
Source Type: Open
License Types:
Supported OS:
Languages: Java

What is it all about?

TinyGP is a highly optimised GP system that was originally developed by Riccardo Poli to meet the specifications set out in the TinyGP competition of the Genetic and Evolutionary Computation Conference (GECCO) 2004. We include it as a working example of a real GP system, to show that GP software tools are not necessarily big, complex and difficult to understand. The system can be used as is or can be modified or extended for a user's specific applications.

Key Features

•The terminal set includes a user-definable number of floating point variables (named X1 to XN). •The function set includes multiplication, protected division, subtraction and addition. •The fitness cases are read from a file (the format is given below). •The system is steady state. A "generation" is considered concluded when POPSIZE (see below) crossover/mutation events have been performed. •Selection is performed using tournament selection. •Negative tournaments are used for the selection of the individuals to be replaced at each steady-state-GP iteration. •Subtree crossover is used. The selection of crossover points is uniform, so every node is chosen equally likely. •Point mutation is used. That is, points (nodes) in the tree are randomly chosen. If a point is a terminal, then it is replaced by another randomly chosen terminal. If it is a function, then it is replaced by another randomly chosen function with the same number of inputs. •The following parameters are implemented as static class variables: ◦The maximum length any GP program can take: MAX_LEN. ◦The size of the population: POPSIZE. ◦The maximum depth initial programs can have: DEPTH. Note 0 represents the depth of programs containing just one terminal. ◦The maximum number of generations allowed for a run: GENERATIONS. ◦The probability of creating new individuals via crossover: CROSSOVER_PROB. The mutation probability is 1-CROSSOVER_PROB. ◦The mutation probability (per node) when point mutation is cho- sen as the variation operator: PMUT_PER_NODE. ◦The tournament size: TSIZE. •The parameters and the random seed are printed when each run starts. •The fitness function is minus the sum of the absolute differences between the actual program output and the desired output for each fitess case. TinyGP maximises it. •The grow initialisation method is used to create the initial population. •At each generation the following statistics are calculated and printed: ◦The generation number. ◦The average fitness of the individuals in the population. ◦The fitness of the best individual in the population. ◦The average size of the programs in the current generation. ◦The best individual in the population. •The random number generator can be seeded via the command line. If this command line parameter is absent, the system uses the current time to seed the random number generator. •The name of the file containing the fitness cases can be passed to the system via the command line.


Pricing

Yearly
Monthly
Lifetime
Free
Freemium
Trial With Card
Trial No Card
By Quote

Description

free - see site

Alternatives

View More Alternatives

View Less Alternatives

Top DiscoverSDK Experts

User photo
20
Jacques GOUIMENOU
I am currently Datascientist. Type of business or sector is: industries, health sector, finance, etc
Multimedia | Computer Vision and 25 more
View Profile
User photo
20
ahmedxp kh
Ahmedxp PC ENG
Multimedia | Hardware and RT and 123 more
View Profile
User photo
20
Redentor Del Rosario
Cyber Security
Multimedia | Hardware and RT and 122 more
View Profile
User photo
20
Esma Rucolli
Engineering.....my dream 💖
Hardware and RT | General Libraries and 87 more
View Profile
Show All

Interested in becoming a DiscoverSDK Expert? Learn more

X

Compare Products

Select up to three two products to compare by clicking on the compare icon () of each product.

{{compareToolModel.Error}}

Now comparing:

{{product.ProductName | createSubstring:25}} X
Compare Now