Posts tagged with “genetic programming”

Overhead run #1

run length:21
012345678910111213141516171819
avg0.13202310.13210560.14047360.13925690.1437630.15051850.15502730.15820350.15826860.15943360.1748240.19810150.18125470.18265510.19213080.20931670.21108390.21980890.19083510.2198777
max0.37585550.33449690.33492360.33683450.3164830.31835540.3149510.32411090.30053030.35697240.36063690.34416720.34026580.36688360.45493260.57286720.51493490.45049550.38249250.4372288
Population Size
100
Run Length
20
Do Training
False
Do Hybrid Training
True
Do Competitive Run
False
Inputs
hasTarget,targetLeft,targetRight,targetNorth,targetSouth,dirToTarget,distToTarget,grounded,wall,ladder,sensor0,sensor1,sensor2
Outputs
left,right,up,down,run,jump,sensordir0,sensordir1,sensordir2
Hidden Layers
8 12 12 8
Back Propogation
True
Learning rate
0.5
Momentum
0.1
Growth rate
0.5

combine 1&2 (another)

run length:18
012345678910111213141516
avg0.046179480.055051140.057261590.11134380.36669770.66336660.90150560.95562291.0769611.0430331.1341550.83810421.142270.91605030.72957931.1060271.074763
max0.36390810.44029130.60784241.0974671.1718661.1725331.1320851.066311.1584161.1667491.1623521.1552281.1749371.1469381.1496021.165071.174278
Population Size
100
Run Length
30
Do Training
False
Do Hybrid Training
True
Do Competitive Run
False
Inputs
hasTarget,targetLeft,targetRight,dirToTarget,distToTarget,grounded,wall,ladder,sensor0,sensor1,sensor2
Outputs
left,right,up,down,run,jump,sensordir0,sensordir1,sensordir2
Hidden Layers
8 12 12 8
Back Propogation
True

several runs w/one target to the right

run length:16
01234567891011121314
avg0.023740350.022947190.024840450.027167880.03681750.076822240.16133370.24915820.32311040.33676880.24911510.28302670.38352270.38903420.3153373
max0.067697240.039253420.044986020.12634960.4042370.3743890.35557730.31379610.37356670.35483430.36517610.30218480.40516380.40516380.4040922
Population Size:100
Run Length:30
Do Training:False
Do Hybrid Training:True
Do Competitive Run:False
Inputs:hasTarget,targetLeft,targetRight,dirToTarget,distToTarget,grounded,wall,ladder,sensor0,sensor1,sensor2
Outputs:left,right,up,down,run,jump,sensordir0,sensordir1,sensordir2
Hidden Layers:8 12 12 8 
Back Propogation:True
run length:9
01234567
avg0.030601370.029954930.040247280.05757450.095490890.15289040.23825980.3359577
max0.32106930.09311760.34051520.39873120.31567440.35779930.40414740.4036549

Population Size:100
Run Length:30
Do Training:False
Do Hybrid Training:True
Do Competitive Run:False
Inputs:hasTarget,targetLeft,targetRight,dirToTarget,distToTarget,grounded,wall,ladder,sensor0,sensor1,sensor2
Outputs:left,right,up,down,run,jump,sensordir0,sensordir1,sensordir2
Hidden Layers:8 12 12 8 
Back Propogation:True
run length:13
01234567891011
avg0.030172940.039395330.07137590.11559570.16438360.16525810.1753730.18232410.20878380.26993070.26073250.2376547
max0.24596230.25104350.33833530.38782510.40206720.31078250.36920910.32404980.39789290.39962280.38204940.3360826

Population Size:100
Run Length:30
Do Training:False
Do Hybrid Training:True
Do Competitive Run:False
Inputs:hasTarget,targetLeft,targetRight,dirToTarget,distToTarget,grounded,wall,ladder,sensor0,sensor1,sensor2
Outputs:left,right,up,down,run,jump,sensordir0,sensordir1,sensordir2
Hidden Layers:8 12 12 8 
Back Propogation:True
run length:17
0123456789101112131415
avg0.028908390.051553750.13598760.14489090.17365770.20036680.22627910.20800240.24380670.21974630.34052910.30466820.23683580.23792230.31823420.3583929
max0.37947180.34134240.35956810.3387110.22745840.23682330.38412630.23682330.28037760.25002440.38589060.35020610.27157270.27352270.36423750.3841804

Population Size:100
Run Length:30
Do Training:False
Do Hybrid Training:True
Do Competitive Run:False
Inputs:hasTarget,targetLeft,targetRight,dirToTarget,distToTarget,grounded,wall,ladder,sensor0,sensor1,sensor2
Outputs:left,right,up,down,run,jump,sensordir0,sensordir1,sensordir2
Hidden Layers:8 12 12 8 
Back Propogation:True

ruby GP

I recently started reading A Field Guide to Genetic Programming ... Barely in to it at all yet, but I've decided to rewrite the sample code (TinyGP) in Ruby. Because I like Ruby better than Java.

It's very short. And the (very rough) ruby implementation w/o much anything special done to it is quite a bit shorter – down from 12KB to 8, and I really didn't take anything out. That's just the extra cruft that Java requires. For all I know the ruby implementation is orders of magnitude slower, though, I don't know. Hell, I've barely tested it so I don't even know it works.

The code's @ github.