def set_bees(self, nu1, nu2, crossover, mutation): for i in range(0, self.bee_count): self.bee_net.append( (neural_gen.neural(nu1[0], nu1[1], nu1[2], nu1[3]), neural_gen.neural(nu2[0], nu2[1], nu2[2], nu2[3])) ) self.bee.append( (random.uniform(0, self.width), random.uniform(0, self.height), random.uniform(0, self.depth), 0) ) self.bee_old.append( (random.uniform(0, self.width), random.uniform(0, self.height), random.uniform(0, self.depth), 0) ) self.bee_net[i][0].init() self.bee_net[i][1].init() self.w_num1 = self.bee_net[0][0].get_num_weights() self.w_num2 = self.bee_net[0][1].get_num_weights() self.pop = ga.population(self.bee_count, self.w_num1 + self.w_num2, crossover, mutation) self.chro = self.pop.genarate() for i in range(0, self.bee_count): l = self.split_list(self.chro[i]) for j in range(0, 2): self.bee_net[i][j].put_weights(l[j])
def __init__(self, master=None): tk.Frame.__init__(self, master) self.grid() self.run = [False, False, False, False, False, False, False, False, False, False] self.l_sys = list() for i in range(0, 10): self.l_sys.append(None) self.pause = False self.file = '' self.mutex = Lock() self.p = ga.population(10, 90, 30) self.fit = list() for i in range(0, 10): self.fit.append(0.0) self.axiom = 'X' self.angle = 0.0 self.ang = 25.0 self.lst_symbols = [ ('F', 'F'), ('[', 'P'), (']', 'O'), ('+', 'L'), ('-', 'R') ] self.rl = list() self.rl.append(('F', 'FF')) self.rl.append(('', '')) self.gen_count = 0 self.iter = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] self.x = 300 self.y = 500 self.length = 5 self.rules = self.p.genarate() self.createWidgets()
bee_net[i][0].init() bee_net[i][1].init() for i in range(0, flower_count): x = random.randrange(50, sizeX-50) while x > hive[0] - 60 and x < hive[0] + 60: x = random.randrange(50, 550) y = random.randrange(50, 550) while y > hive[1] - 60 and y < hive[1] + 60: y = random.randrange(50, sizeY-50) flower.append((x, y, 0)) w_num1 = bee_net[0][0].get_num_weights() w_num2 = bee_net[0][1].get_num_weights() pop = ga.population(20, w_num1 + w_num2, 90, 2) chro = pop.genarate() def distence(b): min_d = float(sys.maxint) min_i = 0 for i in range(0, flower_count): d = float((bee[b][0] - flower[i][0])) ** 2.0 d = d + float((bee[b][1] - flower[i][1])) ** 2.0 if d < min_d: min_d = d min_i = i return flower[min_i]
def array2image(a, im_g): mask = 0b00000000000000000000000011111111 pix = im_g.load() for y in range(0, h): for x in range(0, w): g = (a[y * w + x] & mask) for i in range(0, k): for j in range(0, k): pix[x * k + i, y * k + j] = g, g, g if __name__ == '__main__': pop = ga.population(psize, gnum, 100, 2) chro = pop.genarate() im_g = Image.new("RGB", (w * k, h * k)) im_o = Image.open("test.png").resize((100, 100)) root = Tk() root.title("image_generati0n") cnv = Canvas(root, width=width, height=height, background="black") cnv.grid(row=0, column=0) o_pix = im_o.load() array2image(chro[0], im_g) fit = list()