jhpro.sregression

Package jhpro.sregression

Symbolic regression based on JGAP

See: Description

Package jhpro.sregression Description

Symbolic regression based on JGAP

Supported function

The program has support for the following functions from JGAP. The "main" type is double so all functions are not applicable there (e.g. IfElse etc). However, for the ADF functions (defined by setting adf_arity to > 0) many more functions is supported. Please note that some of these are (very) experimental and maybe don't even make sense in this context.
  • Multiply (double)
  • Multiply3 (double)
  • Add (double)
  • Add3 (double)
  • Add4 (double)
  • Divide (double)
  • Subtract (double)
  • Sine (double)
  • ArcSine (double)
  • Tangent (double)
  • ArcTangent (double)
  • Cosine (double)
  • ArcCosine (double)
  • Exp (double)
  • Log (double)
  • Abs (double)
  • Pow (double)
  • Round (double)
  • Ceil (double)
  • Floor (double)
  • Modulo (double), implements Java's % operator for double. See ModuloD for a variant
  • Max (double)
  • Min (double)
  • LesserThan (boolean)
  • GreaterThan (boolean)
  • If (boolean)
  • IfElse (boolean)
  • IfDyn (boolean)
  • Loop (boolean)
  • Equals (boolean)
  • ForXLoop (boolean)
  • ForLoop (boolean) (cf the double variant ForLoopD)
  • Increment (boolean)
  • Pop (boolean)
  • Push (boolean)
  • And (boolean), cf the double variant AndD
  • Or (boolean), cf the double variant OrD
  • Xor (boolean), cf the double variant XorD
  • Not (boolean), cf the double variant NotD
  • SubProgram (boolean)
  • Tupel (boolean)
Also, see my own defined functions defined in the Java files above.

Examples

Here are two small examples of the program, including the configuration file and a sample run.

Polynom
Here is a simple example of a configuration file. It happens to be the same problem as the JGAP example MathProblem, the polynom x^4 + x^3 + x^2 - x.
## Polynom x^4 + x^3 + x^2 - x# The JGAP example#presentation: P(4) x^4 + x^3 + x^2 - x (the JGAP example)num_input_variables: 1variable_names: x yfunctions: Add,Subtract,Multiply,Divide,Pow,Log,Sineterminal_range: -10 10max_init_depth: 4population_size: 1000max_crossover_depth: 8num_evolutions: 800max_nodes: 20stop_criteria_fitness: 0.1data-2.378099   26.5674954.153756   382.457432.6789956   75.234815.336802   986.337772.4132318   51.379707-1.7993588   9.6939333.9202332   307.87752.9227705   103.56364-0.1422224   0.1599824.9111285   719.395451.2542424   4.766681.5987749   11.5774564.7125554   615.356-1.1101999   2.493538-1.7379236   8.6318023.8303614   282.296975.158349   866.72223.6650343   239.429340.3196721   -0.17437163-2.3650131   26.014963
A simple run example:
It was 20 data rowsPresentation: P(4) x^4 + x^3 + x^2 - x (the JGAP example)output_variable: y (index: 1)input variable: xfunction1: &1 + &2function1: &1 - &2function1: &1 * &2function1: /function1: &1 ^ &2function1: log &1function1: sine &1function1: 1.0[19:52:57] INFO  GPGenotype - Creating initial population[19:52:57] INFO  GPGenotype - Mem free: 10.5 MB[19:52:57] INFO  GPPopulation - Prototype program set[19:52:57] INFO  GPGenotype - Mem free after creating population: 10.5 MBCreating initial populationMem free: 10.5 MBEvolving generation 1/800, memory free: 6.7 MB (time from start:  0,42s)Best solution fitness: 968.56Best solution: x ^ 4.0Correlation coefficient: 0.9999999999999939Fitness stopping criteria (0.1) reached with fitness 3.7509724195622374E-4 at generation 23All time best (from generation 23)Evolving generation 23/800, memory free: 10.4 MB (time from start:  3,20s)Best solution fitness: 3.7509724195622374E-4Best solution: (x * ((((x * x) + x) * x) + x)) - xDepth of chrom: 6Correlation coefficient: 0.9999999999999939Total time  3,20s

SCaVis 1.7 © jWork.org