def threader(self, thread_number):
     while True:
         thread_info = self.q1.get()
         gt.mutate(thread_info[0], thread_info[1], thread_info[2])
         # fout = open(self.file_name + ".out", 'a')
         # fout.write(self.file_name + "_" + str(thread_info[1])
         # + " complete\n")
         # fout.close()
         self.q1.task_done()
	def evolve(self):
		new_generation = np.empty(self.n, dtype=object)
		for i in range(self.n): #this completely replaces each generation. ???
			a = self.choose()
			b = self.choose()
			child = gt.cross(a.parameters, b.parameters, .7)
			new_generation[i] = Individual(gt.mutate(child, self.mutation_rate, self.zmin, self.zmax))
			new_generation[i]
		self.individuals = new_generation
		self.generation += 1