示例#1
0
def mutate(genome):
    atom_probability = ATOM_MUTATION_RATE / len(genome)
    op_probability = OP_MUTATION_RATE / len(genome)
    for i in range(len(genome)):
        if piclang.is_atom(genome[i]):
            if random.random() < atom_probability:
                genome[i] = mutate_atom(genome[i])
        else:
            if random.random() < op_probability:
                genome[i] = mutate_op(genome[i])
    return genome
示例#2
0
 def create(cls, genome, generation, parents, store=False):
     fun = piclang.stackparse(genome, normalize=True)
     if piclang.is_atom(fun):
         return None
     image = piclang.render(fun, points=8192)
     if not image:
         return None
     filename = files.blobstore.create(mime_type='image/png')
     with files.open(filename, 'a') as f:
         image.save(f, "PNG")
     files.finalize(filename)
     blob_key = files.blobstore.get_blob_key(filename)
     individual = cls(genome=genome,
                      generation=generation,
                      parents=parents,
                      image=blob_key)
     if store:
         individual.put()
     return individual
示例#3
0
 def create(cls, genome, generation, parents, store=False):
     fun = piclang.stackparse(genome, normalize=True)
     if piclang.is_atom(fun):
         return None
     image = piclang.render(fun, points=8192)
     if not image:
         return None
     filename = files.blobstore.create(mime_type='image/png')
     with files.open(filename, 'a') as f:
         image.save(f, "PNG")
     files.finalize(filename)
     blob_key = files.blobstore.get_blob_key(filename)
     individual = cls(
         genome=genome,
         generation=generation,
         parents=parents,
         image=blob_key
     )
     if store:
         individual.put()
     return individual