Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Минусы: еще нет таких очень хороших языков, близких к естественному


public double fitness(Expression expression, Context context) {
double delt = 0;
for (int x = -10; x < 11; x += 0.5) {
// искомое значение производной
double target = (this.f(x + dx) - this.f(x)) / dx;
context.setVariable("x", x);
double evolved = expression.eval(context);
delt += this.sqr(target - evolved);
}
return delt;
}
// функция, чью производную мы ищем
private double f(double x) {
return x * x * x + 10 * x + Math.pow(3, x);
}
# allowed functions are: ADD SUB MUL DIV SQRT POW LN SIN COS
# set which functions to use:
ADD SUB MUL DIV SQRT POW COS
# looking for:
f(x) - ?
# define training set:
f(-5) = 0.958924275
f(-4.6) = 0.993691004
f(-4.2) = 0.871575772
f(-3.8) = 0.611857891
f(-3.4) = 0.255541102
f(-3) = -0.141120008
f(-2.6) = -0.515501372
f(-2.2) = -0.808496404
f(-1.8) = -0.973847631
f(-1.4) = -0.98544973
f(-1) = -0.841470985
f(-0.6) = -0.564642473
f(-0.2) = -0.198669331
f(0.2) = 0.198669331
f(0.6) = 0.564642473
f(1) = 0.841470985
f(1.4) = 0.98544973
f(1.8) = 0.973847631
f(2.2) = 0.808496404
f(2.6) = 0.515501372
f(3) = 0.141120008
f(3.4) = -0.255541102
f(3.8) = -0.611857891
f(4.2) = -0.871575772
f(4.6) = -0.993691004
threshold = 0.5
Start time is: Thu Dec 20 02:09:16 EET 2012
f(x) = 0.037473612748792906
1 13.1066035437915
2 13.1066035437915
f(x) = 0.03907633650413578
3 13.106596972914716
f(x) = ((x * (-0.0872113058946149)) + 0.014906325070420667)
4 12.655025376552377
f(x) = (0.13723422167838573 / x)
5 12.157457270158343
6 12.157457270158343
f(x) = (0.13723422167838573 / (x * 1.0913808377181144))
7 12.152326784266156
8 12.152326784266156
f(x) = (3.2071455614529727 / (x * 25.114850968636148))
9 12.152068404736541
f(x) = (3.595526544914747 / ((x * 25.77776235214153) * 1.0913808377181144))
10 12.152067661286328
f(x) = (0.7306468226024925 / (x + ((3.1952852003281116 / (x * 25.70161792899045)) * 2.623353842188707)))
11 9.952938064507393
f(x) = (0.7306468226024925 / (x + (((3.1952852003281116 / (14.680761568160436 * x)) * 1.39406585192928) * 1.075844125197815)))
12 9.952936408450574
13 9.952936408450574
14 9.952936408450574
f(x) = cos(((-7.899669176555985) / ((x + (-2.934551771761199)) + 1.2773079814532693)))
15 5.945158111235378
16 5.945158111235378
f(x) = cos(((-7.173167456475843) / (((x - 0.20866701892617723) + 0.20909776128069524) + (-1.6400760520463233))))
17 4.078430742322765
f(x) = cos(((-7.45261054740821) / (((x - 4.329856978342905) + 4.371028455719269) + (-1.6400760520463233))))
18 2.733571097513842
f(x) = cos((((x - 0.20866701892617723) + 0.20909776128069524) + (-1.5658757184422276)))
19 3.3949567063295085E-4
Best function is:
f(x) = cos((((x - 0.20866701892617723) + 0.20909776128069524) + (-1.5658757184422276)))
End time is: Thu Dec 20 02:09:25 EET 2012
Start time is: Thu Dec 20 02:11:58 EET 2012
f(x) = 0.030868250151864896
1 13.107986059245036
f(x) = 0.03767074767874057
2 13.106595808307668
f(x) = 0.038242426449158984
3 13.106584363757857
4 13.106584363757857
5 13.106584363757857
6 13.106584363757857
f(x) = (0.1637990150606723 / x)
7 12.230665733051994
f(x) = (0.13705836621394107 / x)
8 12.15725800536878
9 12.15725800536878
f(x) = ((0.1481202255848797 / x) * 0.8684798749213931)
10 12.152109398402798
11 12.152109398402798
f(x) = (0.12857591793327128 / x)
12 12.152103249788755
f(x) = ((0.020376091331116397 / x) * 6.271785421060187)
13 12.152067673004629
14 12.152067673004629
15 12.152067673004629
16 12.152067673004629
17 12.152067673004629
f(x) = ((0.46601388716913195 ^ x) * 0.02977298399532957)
18 11.469845817953859
f(x) = (((-0.38967085673639446) / ((4.404835173431312 ^ x) / ((-0.08138602455387023) / x))) * (-0.09385199865456717))
19 10.911993456710471
f(x) = (((-0.1439165901739734) / ((4.457965327030093 ^ x) / ((-0.23419484479312658) / x))) * (-0.09385199865456717))
20 10.844524333414348
21 10.844524333414348
f(x) = ((0.5666114085540572 / ((0.5348028282775066 ^ x) / (cos((-1.5394326500896378)) / x))) * ((x * (-4.3285907551309215)) - (-9.400020532885092)))
22 10.587827937080267
f(x) = ((0.1488277396985822 / ((-6.499878077275849) / ((1.667112028884965 ^ x) / ((-3.4574956828857646) / x)))) * ((x * (-4.742415091725814)) - (-17.426395027916122)))
23 9.845309875059357
24 9.845309875059357
25 9.845309875059357
f(x) = ((0.019835272236428114 / ((1.4762453312970956 ^ x) / ((x / x) * (x + 3.322468527485495)))) * ((x / x) * (x + (-1.0677662167272803))))
26 9.611591802099714
f(x) = (((-0.11842972705153176) / ((x * x) / ((3.1353175097938144 ^ x) / ((-12.711280290000289) / x)))) * ((x * (-3.747429583149386)) - (-13.682941331058357)))
27 9.441749174052777
f(x) = (((((-3.9985992143686104) / ((-11.860791526742453) / (x / (-12.255149129698886)))) * (-5.083919364763941)) / ((0.9374635931326201 ^ x) / (((x / (-4.24828079172007)) / x) * (x + (-3.7192102312585376))))) * ((x / x) * (x + 3.5489201296979966)))
28 3.2474458505656605
29 3.2474458505656605
f(x) = cos(((((0.7891062240951006 / (37.690057096649355 / x)) * (-3.9700337867889055)) / ((2.1459450244373666 ^ x) / ((x / x) * ((-31.82073084338193) + x)))) * ((x / x) * (x + 3.8341848367144498))))
30 2.751772332932753
31 2.751772332932753
32 2.751772332932753
f(x) = cos(((-1.104233492883234) * ((x / x) * (x + 4.176966445681568))))
33 0.9796598588054801
f(x) = cos((1.0878741299861896 * ((x / x) * (x + 4.407430173983707))))
34 0.6471346736176921
f(x) = cos(((-1.07016828426169) * ((x / x) * (x + 4.4401611735732125))))
35 0.39445546562024103
Best function is:
f(x) = cos(((-1.07016828426169) * ((x / x) * (x + 4.4401611735732125))))
End time is: Thu Dec 20 02:12:29 EET 2012
Start time is: Thu Dec 20 02:14:58 EET 2012
f(x) = (x * (-0.03497647400759352))
1 12.569697409104204
f(x) = (0.03206375777473447 - (x / 17.859742523423733))
2 12.45310280520347
f(x) = (0.03206375777473447 / (x / 3.983422951936845))
3 12.152068113028749
4 12.152068113028749
f(x) = (0.16410654890797227 - ((2.0299865145513394 ^ x) / 27.160308551872905))
5 11.458518951142699
6 11.458518951142699
f(x) = ((-0.08190782796508467) - ((x * 0.3250906200640813) * ((0.5612667000580951 ^ x) / 25.142726236353084)))
7 10.658531610257057
f(x) = ((-0.1820149022978066) - ((x * 0.09015777715283968) * ((0.4280416776009639 ^ x) / 21.065084851380853)))
8 10.516453362951314
f(x) = ((-0.01503108962299926) - ((x * (-24.265371409776968)) * (((0.7310665285787377 ^ x) ^ x) / 19.010083617783746)))
9 5.926306763301507
f(x) = (0.033809751868219884 - ((x * (-22.683745105291987)) * (((0.7310665285787377 ^ x) ^ x) / 17.834566430135432)))
10 5.855312350773518
f(x) = (0.033809751868219884 - ((x * (-22.683745105291987)) * (((0.7310665285787377 ^ x) ^ x) / 17.79616422156097)))
11 5.855294223104098
12 5.855294223104098
f(x) = (0.033809751868219884 - ((x * (-23.19192196847812)) * (((0.717967820948241 ^ x) ^ x) / 17.386188149870783)))
13 5.836810741669103
f(x) = (0.033809751868219884 - ((x * (-21.669518751123967)) * (((0.717967820948241 ^ x) ^ x) / 16.287254620910687)))
14 5.836761497328263
15 5.836761497328263
f(x) = (0.038546517497714206 - ((x * (-21.669518751123967)) * (((0.717967820948241 ^ x) ^ x) / 16.287254620910687)))
16 5.836229539440452
17 5.836229539440452
f(x) = (0.03843417466089871 - ((x * (-21.669518751123967)) * (((0.717967820948241 ^ x) ^ x) / 16.287254620910687)))
18 5.836229167974826
19 5.836229167974826
20 5.836229167974826
21 5.836229167974826
22 5.836229167974826
23 5.836229167974826
24 5.836229167974826
25 5.836229167974826
26 5.836229167974826
27 5.836229167974826
28 5.836229167974826
29 5.836229167974826
30 5.836229167974826
31 5.836229167974826
32 5.836229167974826
33 5.836229167974826
34 5.836229167974826
35 5.836229167974826
36 5.836229167974826
f(x) = (0.03843417466089871 - ((x * (-21.669518751123967)) * (((0.7175444245047398 ^ x) ^ x) / 16.26151878069896)))
37 5.836200483976189
38 5.836200483976189
39 5.836200483976189
f(x) = (0.03843417466089871 - ((x * (-21.669518751123967)) * (((0.7175444245047398 ^ x) ^ x) / 16.262705747349774)))
40 5.836200268757786
41 5.836200268757786
42 5.836200268757786
43 5.836200268757786
f(x) = (0.03843417466089871 - ((x * (-21.662524193965517)) * (((0.7175444245047398 ^ x) ^ x) / 16.262705747349774)))
44 5.83620024612793
45 5.83620024612793
46 5.83620024612793
47 5.83620024612793
f(x) = (0.03843417466089871 - ((x * (-21.667776661667226)) * (((0.7175444245047398 ^ x) ^ x) / 16.262705747349774)))
48 5.836200121399585
49 5.836200121399585
f(x) = (0.03843417466089871 - ((x * (-21.662524193965517)) * (((0.7175444245047398 ^ x) ^ x) / 16.26141837828798)))
50 5.8362001114409825
51 5.8362001114409825
52 5.8362001114409825
53 5.8362001114409825
54 5.8362001114409825
55 5.8362001114409825
56 5.8362001114409825
57 5.8362001114409825
58 5.8362001114409825
59 5.8362001114409825
f(x) = (0.03843417466089871 - ((x * (-24.624664221314188)) * (((0.7175444245047398 ^ x) ^ x) / 18.482635204699278)))
60 5.836200086756856
61 5.836200086756856
62 5.836200086756856
63 5.836200086756856
64 5.836200086756856
65 5.836200086756856
66 5.836200086756856
67 5.836200086756856
68 5.836200086756856
69 5.836200086756856
70 5.836200086756856
71 5.836200086756856
72 5.836200086756856
f(x) = (0.03843417466089871 - ((x * (-23.803425055908484)) * (((0.7175444245047398 ^ x) ^ x) / 17.866721331430185)))
73 5.836200071940088
74 5.836200071940088
75 5.836200071940088
76 5.836200071940088
77 5.836200071940088
f(x) = (((x * (-21.727813149886583)) * (((0.444473883735897 ^ x) ^ x) / 25.877440479220724)) - ((x * (-27.869805964415654)) * (((0.7175444245047398 ^ x) ^ x) / 16.054058406243342)))
78 5.753786607216474
f(x) = cos(((-1.5518824117603933) - ((x * (-22.779793630567173)) * ((0.9905590241810334 ^ x) / 22.778425607844536))))
79 0.06523396656992454
Best function is:
f(x) = cos(((-1.5518824117603933) - ((x * (-22.779793630567173)) * ((0.9905590241810334 ^ x) / 22.778425607844536))))
End time is: Thu Dec 20 02:17:52 EET 2012

Start time is: Thu Dec 20 03:06:30 EET 2012
f(x) = (0.18206317394353455 / x)
1 12.3306847201965
2 12.3306847201965
f(x) = (0.13096000716683331 / x)
3 12.152669766801575
4 12.152669766801575
f(x) = (0.12762196997306274 / x)
5 12.152069805558092
6 12.152069805558092
7 12.152069805558092
f(x) = (0.3346849273504282 / ((((-22.4152051827909) * x) + 40.960688022849595) / x))
8 12.148014860354863
f(x) = ((-0.03796031129649258) / (cos(x) / ((-2.9198621819690938) / x)))
9 11.638011754782829
10 11.638011754782829
f(x) = ((-20.631874183396533) / (((-9.207249236246206) / x) - (x * 27.91345503131871)))
11 9.952693006480558
12 9.952693006480558
13 9.952693006480558
f(x) = ((-11.825393899136301) / ((27.294600788294975 / ((0.5155794242305176 / x) - (x * 17.31342263836807))) - (x * 20.565965766798282)))
14 9.888627753702877
f(x) = ((-15.532470172735072) / ((25.778228513107628 / ((0.18734779505625987 / x) - (x * 6.391452889555231))) - (x * 21.629379422632773)))
15 9.792881118418999
f(x) = ((-11.825393899136301) / ((41.90109261338367 / ((0.46759657320866577 / x) - (x * 15.120516570080058))) - (x * 17.102239047167586)))
16 9.791571430938934
f(x) = ((-22.66355680142012) / ((15.948637956747325 / (((-2.6050273232187884) / x) - (x * (-0.2602149380973864)))) - (17.992754706738232 / x)))
17 0.3622781954825648
Best function is:
f(x) = ((-22.66355680142012) / ((15.948637956747325 / (((-2.6050273232187884) / x) - (x * (-0.2602149380973864)))) - (17.992754706738232 / x)))
End time is: Thu Dec 20 03:06:40 EET 2012
# allowed functions are: ADD SUB MUL DIV SQRT POW LN SIN COS
# set which functions to use:
ADD SUB MUL DIV SQRT POW
# looking for:
f(x) - ?
# define training set:
f(-5) = 0.958924275
f(-4.6) = 0.993691004
f(-4.2) = 0.871575772
f(-3.8) = 0.611857891
f(-3.4) = 0.255541102
f(-3) = -0.141120008
f(-2.6) = -0.515501372
f(-2.2) = -0.808496404
f(-1.8) = -0.973847631
f(-1.4) = -0.98544973
f(-1) = -0.841470985
f(-0.6) = -0.564642473
f(-0.2) = -0.198669331
f(0) = 0
f(0.2) = 0.198669331
f(0.6) = 0.564642473
f(1) = 0.841470985
f(1.4) = 0.98544973
f(1.8) = 0.973847631
f(2.2) = 0.808496404
f(2.6) = 0.515501372
f(3) = 0.141120008
f(3.4) = -0.255541102
f(3.8) = -0.611857891
f(4.2) = -0.871575772
f(4.6) = -0.993691004
threshold = 0.5

Start time is: Mon Dec 24 21:20:27 EET 2012
f(x) = ((x * 3.1630717262131376) / (-55.751683077133))
1 12.470828286593806
2 12.470828286593806
f(x) = ((x * 3.1630717262131376) / (-55.76553839255925))
3 12.47082827728798
4 12.47082827728798
f(x) = ((x * 0.9949679900764461) / (-17.541037248840254))
5 12.470828274502146
6 12.470828274502146
f(x) = ((x * ((x / 0.24485475450143368) / (9.854722419372969 / (0.1785463411440209 + x)))) / (-51.49422863193457))
7 9.308217623905621
f(x) = ((x * ((x / 0.40104184749153204) / (6.4182649499699105 / (0.052399290993697 + x)))) / (-47.34388178550898))
8 9.302841405933153
9 9.302841405933153
f(x) = ((x * ((x / 0.24485475450143368) / (9.854722419372969 / (0.05192548614521364 + x)))) / (-50.350061089343605))
10 9.302817992891397
f(x) = ((x * ((x / 0.24485475450143368) / (9.854722419372969 / (0.07142331100659893 + x)))) / (-50.350061089343605))
11 9.302771398232064
12 9.302771398232064
13 9.302771398232064
f(x) = ((x * ((x / 2.0533282898391576) / (1.8715544471864307 / (0.07135632922700297 + x)))) / (-31.597742741151393))
14 9.302769883027961
15 9.302769883027961
16 9.302769883027961
17 9.302769883027961
18 9.302769883027961
19 9.302769883027961
20 9.302769883027961
21 9.302769883027961
22 9.302769883027961
23 9.302769883027961
f(x) = ((x * ((x / 2.0533282898391576) / (1.8715544471864307 / (0.06551706960346748 + x)))) / (-31.604995146547317))
24 9.30276797484784
25 9.30276797484784
26 9.30276797484784
27 9.30276797484784
28 9.30276797484784
29 9.30276797484784
f(x) = ((x * (((x / 8.857722754797118) / (2.6551707309632526 / (x + 35.42462283671099))) / (5.464423135144728 / ((-0.39500736529583036) + x)))) / (-32.659737034898576))
30 9.302210185277525
f(x) = ((x * ((6.680648069500437 / (2.6551707309632526 / (x + 3.6592487400627496))) / (2.6443709583155646 / ((-3.5578768847585587) + x)))) / (-30.830217950916406))
31 3.4255888723788033
32 3.4255888723788033
33 3.4255888723788033
34 3.4255888723788033
35 3.4255888723788033
36 3.4255888723788033
37 3.4255888723788033
f(x) = ((((-3.4499225016535195) + x) * (x / (1.2515222248502815 / (3.7938656508895163 + x)))) / (-25.109433521560973))
38 3.405619015538551
f(x) = ((x * (((-3.482346082966841) + x) / (1.1253837525672576 / (3.714227703825927 + x)))) / (-28.336457289208397))
39 3.377886419645044
f(x) = ((x * ((3.735514032671002 + x) / (1.520701195188931 / ((-3.5390881257410745) + x)))) / (-20.512481273437082))
40 3.3675017425027374
41 3.3675017425027374
f(x) = ((x * (((-3.5325640324244243) + x) / (1.1178824947277812 / (3.7667842805750538 + x)))) / (-27.918607440362756))
42 3.366320705519485
43 3.366320705519485
f(x) = ((x * ((21.57790360307947 + x) / ((15.591683015361514 / ((-3.5424250936223514) + x)) / (3.6225272226680865 + x)))) / (-41.57688526816358))
44 3.1012409075624583
45 3.1012409075624583
f(x) = ((x * ((3.572817532610448 + x) / ((22.584809854422687 / (18.974396425768152 + x)) / ((-3.5747295662481573) + x)))) / (-25.32540014476279))
46 3.0771318820680706
47 3.0771318820680706
48 3.0771318820680706
49 3.0771318820680706
50 3.0771318820680706
51 3.0771318820680706
f(x) = ((x * ((3.572817532610448 + x) / ((24.667037538178697 / (x + 18.170833314646938)) / ((-3.6144452483304836) + x)))) / (-21.871869029168302))
52 3.0584324507379494
53 3.0584324507379494
54 3.0584324507379494
55 3.0584324507379494
56 3.0584324507379494
57 3.0584324507379494
58 3.0584324507379494
59 3.0584324507379494
60 3.0584324507379494
61 3.0584324507379494
62 3.0584324507379494
63 3.0584324507379494
64 3.0584324507379494
65 3.0584324507379494
66 3.0584324507379494
67 3.0584324507379494
68 3.0584324507379494
69 3.0584324507379494
70 3.0584324507379494
71 3.0584324507379494
f(x) = ((x * (((-11.347781713226535) + (x * x)) / ((26.70985281041323 / (5.9405385441572705 + x)) / ((-6.365654381745506) + x)))) / 22.788185829488683)
72 0.7608948240547206
73 0.7608948240547206
74 0.7608948240547206
75 0.7608948240547206
76 0.7608948240547206
f(x) = ((x * (((-11.008088011418987) + (x * x)) / ((25.422465316844516 / (x + 5.833553150936389)) / ((-5.788920923994368) + x)))) / 19.641063491031723)
77 0.5114211104584352
78 0.5114211104584352
79 0.5114211104584352
80 0.5114211104584352
81 0.5114211104584352
82 0.5114211104584352
83 0.5114211104584352
84 0.5114211104584352
85 0.5114211104584352
f(x) = ((x * (((-28.637448958589324) + (x * x)) / ((21.239955408627964 / (x + (-3.2072451559334034))) / (3.3336507016309875 + x)))) / 16.2284520613964)
86 0.2643748704212682
Best function is:
f(x) = ((x * (((-28.637448958589324) + (x * x)) / ((21.239955408627964 / (x + (-3.2072451559334034))) / (3.3336507016309875 + x)))) / 16.2284520613964)
End time is: Mon Dec 24 21:22:13 EET 2012
# allowed functions are: ADD SUB MUL DIV SQRT POW LN SIN COS
# set which functions to use:
ADD MUL SUB POW DIV
# looking for:
f(x) - ?
# define training set:
f(-100) = -1700000
f(-90) = -1296000
f(-80) = -960000
f(-70) = -686000
f(-60) = -468000
f(-50) = -300000
f(-40) = -176000

Start time is: Thu Dec 20 05:42:45 EET 2012
f(x) = (86.57304694845936 * x)
1 6.222169286489249E12
f(x) = (144.6778659232081 * x)
2 6.16902774680368E12
f(x) = (134.17750912815694 * (92.71961934899491 * x))
3 5.590600898187449E11
4 5.590600898187449E11
5 5.590600898187449E11
6 5.590600898187449E11
7 5.590600898187449E11
f(x) = (49.69169866316818 * (x * (x * (-3.1677184236399905))))
8 5.0055596992864105E10
9 5.0055596992864105E10
f(x) = (56.48068300981558 * (((-20.863130437536775) + (x - (-43.12637699374933))) * (x * (-3.7782588026154613))))
10 3.9592261954013157E9
f(x) = (58.19939949943191 * (((-21.597963943138016) + (x - (-45.62170226606368))) * (x * (-3.7782588026154613))))
11 3.545551263086143E9
f(x) = (58.02466439209779 * (((-18.96126891390064) + (x - (-42.781599415004585))) * (x * (-3.7782588026154613))))
12 3.540920767846881E9
f(x) = ((58.10020017491848 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 5.536053451302263)
13 3.540491873012355E9
f(x) = ((58.10020017491848 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 24.298797251839378)
14 3.5400393139433427E9
f(x) = ((58.10020017491848 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 44.48189628414795)
15 3.539557998112941E9
f(x) = ((58.10331852588319 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 70.99484460029008)
16 3.5389568059665136E9
17 3.5389568059665136E9
f(x) = ((58.10020017491848 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 88.53692878105136)
18 3.5385272071778183E9
f(x) = ((58.10020017491848 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 96.92101137795909)
19 3.5383341156489058E9
f(x) = ((58.10020017491848 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 105.50430898480867)
20 3.538137455505746E9
f(x) = ((58.10020017491848 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 125.68872314958799)
21 3.537679055698119E9
f(x) = ((58.10020017491848 * (((-22.278842813066657) + (x - (-46.17416306325414))) * (x * (-3.7782588026154613)))) - 138.7479712122984)
22 3.5373855115252895E9
23 3.5373855115252895E9
24 3.5373855115252895E9
f(x) = (((-37.26846869977584) * ((x + (x - (-47.687763156745156))) * (x * 2.9419052064299054))) - 176.3754379310957)
25 3.536888676374473E9
f(x) = (((x - (-42.26809684868709)) * (((-22.699862676766646) + (x - (-54.323525268738656))) * (x * 1.2876877679231686))) - ((x * (-13.189341913068064)) * (x * (-9.07445805933937))))
26 3.723766513965906E8
f(x) = ((x * (((-20.77021403281741) + (x - (-56.18018484917877))) * (x * 1.0283534934943348))) - ((x * (-11.462695291605907)) * (x * (-9.07445805933937))))
27 4.193009086099604E7
f(x) = ((x * (((-14.927298962277831) + (x - (-50.217089356831124))) * (x * 0.9988515080579701))) - ((x * (-11.316119006918044)) * (x * (-9.307946228589318))))
28 165047.1068965982
f(x) = ((x * (((-19.126382675050188) + (x - (-50.87926661591404))) * (x * 0.9988515080579701))) - ((x * (-8.677352568505196)) * (x * (-11.734135145640401))))
29 70990.23190410846
f(x) = ((x * (((-16.077554143794146) + (x - (-51.46683847282147))) * (x / 0.9988515080579701))) - ((x * (-11.316119006918044)) * (x * (-9.307946228589318))))
30 66206.62977395783
31 66206.62977395783
32 66206.62977395783
f(x) = ((x * (x * (x + 4.4098695807404145))) - ((x * (-8.78805432781831)) * (x * (-8.466132722703005))))
33 20600.857640909722
f(x) = ((x * (((-16.028672342886313) + (x - (-52.26304159953027))) * x)) - ((x * (-11.740960627643991)) * (x * (-9.048031523291307))))
34 806.193032661867
35 806.193032661867
36 806.193032661867
37 806.193032661867
38 806.193032661867
39 806.193032661867
f(x) = ((x * (((-16.028672342886313) + (x - (-52.26296484877049))) * x)) - ((x * (-11.740960627643991)) * (x * (-9.048031523291307))))
40 738.4432450889834
41 738.4432450889834
f(x) = ((x * (((-16.00645087483127) + x) * x)) - ((x * (-8.100439392530896)) * (x * (-6.665549678910843))))
42 27.826212573181493
f(x) = ((x * (((-13.242522576569776) + (x - (-49.47522269762757))) * x)) - ((x * (-11.740960627643991)) * (x * (-9.048031523291307))))
43 3.528531101472191
Best function is:
f(x) = ((x * (((-13.242522576569776) + (x - (-49.47522269762757))) * x)) - ((x * (-11.740960627643991)) * (x * (-9.048031523291307))))
End time is: Thu Dec 20 05:43:02 EET 2012
— всякую формулу можно переписать в эквивалентном символьном представлении: например, добавить и тут же вычесть некое выражение, а потом скобки переставить. Это наверняка заспамливает пространство случайного поиска, нет? Иными словами, у меня есть сильное подозрение, что генетическое программирование себя хуже ведет в применении к символьным математическим выражениям, чем к иным областям, где «классы эквивалентности» (как угодно определенные) меньше. Вы с этим как-то явно боретесь?
# allowed functions are: ADD SUB MUL DIV SQRT POW LN SIN COS
# set which functions to use:
ADD MUL SUB DIV POW SQRT
# looking for:
f(x) - ?
# define training set:
f(-1) = -2
f(-0.9) = -2.222222222
f(-0.8) = -2.5
f(-0.7) = -2.857142857
f(-0.6) = -3.333333333
f(-0.5) = -4
f(-0.4) = -5
f(-0.3) = -6.666666667
f(-0.2) = -10
f(-0.1) = -20
f(0.1) = 20
f(0.2) = 10
f(0.3) = 6.666666667
f(0.4) = 5
f(0.5) = 4
f(0.6) = 3.333333333
f(0.7) = 2.857142857
f(0.8) = 2.5
f(0.9) = 2.222222222
f(1) = 2
threshold = 5
Start time is: Fri Dec 21 16:30:21 EET 2012
f(x) = (x + x)
1 1110.6141849372693
f(x) = (x * 5.227087163426092)
2 1032.0300015165594
f(x) = (x * 5.188903230694518)
3 1032.0222453656522
f(x) = ((x + x) * 2.599190101196649)
4 1032.0220755614089
5 1032.0220755614089
f(x) = (((x + x) * (-0.12522500922214785)) * (-20.749626688467036))
6 1032.022006105762
7 1032.022006105762
f(x) = (x * 5.19507279952461)
8 1032.0219777015882
f(x) = (x * sqrt(abs(((-33.321388309286405) / x))))
9 873.1171859876806
f(x) = (((-40.187091057457245) / x) * (-0.04967024882881388))
10 0.004707596212974934
Best function is:
f(x) = (((-40.187091057457245) / x) * (-0.04967024882881388))
End time is: Fri Dec 21 16:30:25 EET 2012
map(sin, list(1, 10))

for(int i = 1; i < 11; i++) {
arr[i] = sin(i);
}
return arr;

const int x=rand();
const int y=rand();
for(i=x;i<y;i++)
{
random code
}
push(list,value1);
...
push(list,value2);
...
foreach(list) // or while(val=pop(list))
{
do something
}
Символьная регрессия