/usr/share/doc/python-pyevolve-doc/examples/pyevolve_ex20_gp_dotwrite.py is in python-pyevolve-doc 0.6~rc1+svn398+dfsg-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | from pyevolve import *
import math
rmse_accum = Util.ErrorAccumulator()
def gp_add(a, b): return a+b
def gp_sub(a, b): return a-b
def gp_mul(a, b): return a*b
def gp_sqrt(a): return math.sqrt(abs(a))
def eval_func(chromosome):
global rmse_accum
rmse_accum.reset()
code_comp = chromosome.getCompiledCode()
for a in xrange(0, 5):
for b in xrange(0, 5):
evaluated = eval(code_comp)
target = math.sqrt((a*a)+(b*b))
rmse_accum += (target, evaluated)
return rmse_accum.getRMSE()
def step_callback(engine):
if engine.getCurrentGeneration() == 0:
GTree.GTreeGP.writePopulationDotRaw(engine, "pop.dot", 0, 40)
return False
def main_run():
genome = GTree.GTreeGP()
genome.setParams(max_depth=6, method="ramped")
genome.evaluator += eval_func
genome.mutator.set(Mutators.GTreeGPMutatorSubtree)
ga = GSimpleGA.GSimpleGA(genome, seed=666)
ga.stepCallback.set(step_callback)
ga.setParams(gp_terminals = ['a', 'b'],
gp_function_prefix = "gp")
ga.setMinimax(Consts.minimaxType["minimize"])
ga.setGenerations(2)
ga.setCrossoverRate(1.0)
ga.setMutationRate(0.08)
ga.setPopulationSize(100)
ga.setMultiProcessing(False)
ga(freq_stats=5)
#GTree.GTreeGP.writePopulationDotRaw(ga, "pop.dot", 0, 14)
best = ga.bestIndividual()
if __name__ == "__main__":
main_run()
|