This file is indexed.

/usr/share/doc/python-pyevolve-doc/examples/pyevolve_ex20_gp_dotwrite.py is in python-pyevolve-doc 0.6~rc1+svn398+dfsg-7.

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()