def mutate(old, abouts, pop=[], better= lambda x,y,z: cdom(x,y,z),
fiddles= None, # e.g. de. maxWalkSat
fiddle = any1thing, # e.g. around1 or any1thing
after = wrap, # e.g. wrap or cap
retries= THE.retries):
assert retries > 0, 'too hard to satisfy model'
new = abouts.copyDecs(old)
if fiddle:
for col in abouts._decs:
if r() < THE.cf:
new[col.pos] = fiddle(old[col.pos], col) # eg around1, any1thing
if fiddles:
new = fiddles(old,new,abouts,pop, better) # eg deFiddles maxWalkSatFiddles
if after: # e.g. wrap cap
for col in abouts._decs:
new[col.pos] = after(new[col.pos], col)
return new if abouts.ok(new) else mutate(old, abouts, pop,better,
fiddles,fiddle, after,
retries=retries-1)
### Tables #####################################################################
评论列表
文章目录