/* Regression problem: X^4 + X^3 + X^2 + X Note that ** might blow up in the run: [program = (1 + X) * (X ** 3 + X),res = 4.0,count = 1] Without **: [program = (3 / (2 - X) + X) * (X / ((4 - X * X) / 3)),res = 4.0,count = 1] [program = (X + 1) * ((X * X + 1) * X),res = 4.0,count = 1] [program = (1 + X * X) * ((X + 1) * X),res = 4.0,count = 1] Using pow2/1, etc is safer than ** [program = (X + pow3(X)) * (pow3(1) + X),res = 4.0,count = 1] [program = (1 + X) * (X + pow3(X)),res = 4.0,count = 1] pow_mod/3 and pow_mod2/2 does not work on floats. Cf regression_koza2.conf */ data(regression_koza,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Data = [ [[-1.0], 0.0], [[-0.9],-0.1629], [[-0.8],-0.2624], [[-0.7],-0.3129], [[-0.6],-0.3264], [[-0.5],-0.3125], [[-0.4],-0.2784], [[-0.3],-0.2289], [[-0.2],-0.1664], [[-0.1],-0.0909], [[ 0.0], 0.0], [[ 0.1],0.1111], [[ 0.2],0.2496], [[ 0.3],0.4251], [[ 0.4],0.6496], [[ 0.5],0.9375], [[ 0.6],1.3056], [[ 0.7],1.7731], [[ 0.8],2.3616], [[ 0.9],3.0951], [[ 1.0],4.0000] ], Vars = ['X'], Unknown = [1.0], % Ops = [+,-,*,/,**], % might blow up in some runs % Ops = [+,-,*,/], Ops = [+,-,*,/,pow2,pow3,pow4,pow5], % This is safer than ** Constants = 1..4, MaxSize = 15, Params = new_map([approx=0.01]).