def IO_update(ID, generation, pop, max_gens): # Print update to stdout: print "\rL: %f a: %f (%%%i done.)" \ % ( mtr.fitness(pop[0]), pop[0]['amplitude'], 100.0 * float(generation)/(max_gens-1)), sys.stdout.flush() # Log stuff to file with shelve d = shelve.open("dat/" + str(ID) + "/" + str(ID) + "." + str(generation) + ".pop" ) d['pop'] = pop d.close()
def IO_update(ID, generation, pop, max_gens): print "\rL:", mtr.fitness(pop[0]), "a:", pop[0]['amplitude'], print "%", 100.0 * float(generation)/(max_gens-1), print " First:", first, sys.stdout.flush() # Print stuff to stdout: # print ID # print "generation: ", generation # print " best:", mtr.fitness(pop[0]), "a:", pop[0]['amplitude'] # print " secn:", mtr.fitness(pop[1]), "a:", pop[1]['amplitude'] # print " wrst:", mtr.fitness(pop[-1]), "a:", pop[-1]['amplitude'] # Log stuff to file with shelve d = shelve.open("dat/" + str(ID) + "." + str(generation) + ".pop" ) d['pop'] = pop d.close()
def initialize_pop(): # Some initialization constants: lower_size = 2 upper_size = 50 num = 100 pop = [] for j in range(num): print "\rInitializing Population %", 100*float(j)/(num-1), sys.stdout.flush() org = { 'org': [[random()*2-1 for i in range(randint(lower_size, upper_size))], [0,0,0]], 'amplitude' : random() * 0.1 + 0.05 } org['fitness'] = mtr.fitness(org) pop.append(org) print " Done." return pop