# Example: find a target function f(x) = x^2 + 10*x using input data
from com.lagodiuk.gp.symbolic import *
from com.lagodiuk.gp.symbolic.interpreter import *
# build x and y data
x=[0,1,2,3,4,5,6]
y=[0,11,24,39,56,75,96]
data=[]
for i in range( len(x) ):
data.append(Target().when("x", x[i]).targetIs(y[i]))
# build fitness function
fitness=TabulatedFunctionFitness(data)
engine =SymbolicRegressionEngine(fitness,["x"],[Functions.ADD, Functions.SUB, Functions.MUL, Functions.VARIABLE, Functions.CONSTANT])
engine.evolve(200)
# get answer
bestSyntaxTree = engine.getBestSyntaxTree()
currFitValue = engine.fitness(bestSyntaxTree)
print "Iterations=",engine.getIteration()
print "Fit value=",currFitValue
print "Function=",bestSyntaxTree.print()
Ads help maintain this website.