/* From bacon-logtalk: https://github.com/lindseyspratt/bacon-logtalk/blob/master/src/test_data_set.lgt """ Following is idealized data for the law of uniform acceleration by Galileo Galilei. (D/T^2 = k). From page 83. test_data_set(uniform_acceleration, 0.001, 0.001, 0.01, [[0.1, 0.098], [0.2,0.392], [0.3,0.882], [0.4,1.568], [0.5,2.45], [0.6,3.528]], [t,d]). """ * With approx=0.01 Results from different runs Generation 98: [program = 0.4 * (X * (0.7 * X) / 0.1 * (0.7 / 0.2)),res = 9.799999999999997,count = 1] -> 9.8 X^2 Generation 229: [program = X / (0.1 / X) - 2 * X * X * 0.1,res = 9.800000000000001,count = 1] Generation 866: [program = (0.8 + pow2(3)) * X * X,res = 9.800000000000001,count = 1] [program = X * ((0.8 + pow2(3)) * X),res = 9.800000000000001,count = 1] Generation 607 [program = (pow2(3) + 0.8) * pow2(X),res = 9.800000000000001,count = 1] * With pow2, MaxSize=15,approx=0.1, num_gens=30 [program = X / (0.1 / X),res = 10.0,count = 84] [program = X / 0.1 * X,res = 10.0,count = 58] [program = X * (X / 0.1),res = 10.0,count = 57] [program = pow2(X) * (1 / 0.1),res = 10.0,count = 19] [program = pow2(3) * (X * X) + X * X,res = 10.0,count = 12] [program = X / (0.1 * 1.0) * X,res = 10.0,count = 4] [program = pow2(X) / 0.1,res = 10.0,count = 3] [program = pow2(3) * (X * X) + pow2(X),res = 10.0,count = 3] [program = X / 1.0 / (0.1 / X),res = 10.0,count = 1] [program = 0.7 / pow2(0.6 / X) / 0.2,res = 9.722222222222221,count = 1] [program = pow2(3) * (X * X) / 0.9,res = 10.0,count = 1] [program = pow2(X + X) / 0.4,res = 10.0,count = 1] [program = pow2(X) / (X + 0.1 - X),res = 9.999999999999991,count = 1] resultMap = [10.0 = 11,9.999999999999991 = 1,9.722222222222221 = 1] Cf http://hakank.org/jgap/galilei_acceleration.conf */ data(acceleration,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Data = [ [[0.1],0.098], [[0.2],0.392], [[0.3],0.882], [[0.4],1.568], [[0.5],2.45], [[0.6],3.528] ], % Ops = [+,*,-,/], Ops = [+,*,-,/,pow2], % Ops = [+,*,-,/,**], % Constants = 1..10, Constants = [I / 10 : I in 1..10] ++ 1..3, Vars = ['X'], Unknown = [1.0], MaxSize = 15, Params = new_map([approx=0.01, num_gens=30, mutate_rate=0.05,crossover_rate=0.94, debug=false]).