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])
Beispiel #2
0
    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()
Beispiel #3
0
    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]
Beispiel #4
0
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()