Skip to content

Commit 1366d15

Browse files
Added more files from before
1 parent 383f7f5 commit 1366d15

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+17909
-0
lines changed

ga-image-generation/GA_image_gen.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from pyevolve import G1DList
2+
from pyevolve import GSimpleGA
3+
from pyevolve import Consts
4+
from pyevolve import Selectors
5+
from pyevolve import Initializators
6+
from pyevolve import Mutators
7+
from pyevolve import Crossovers
8+
9+
from PIL import Image
10+
11+
image = Image.open("lena64.bmp")
12+
image_pixels = []
13+
for i in range(image.size[0]):
14+
for j in range(image.size[1]):
15+
image_pixels.append(image.getpixel((i,j)))
16+
17+
n = 0
18+
o = 0
19+
def callback(ga_engine):
20+
global n
21+
global o
22+
if o % 10 == 0:
23+
generation = ga_engine.getCurrentGeneration()
24+
current_best = ga_engine.bestIndividual()
25+
im = Image.new(image.mode, image.size)
26+
i = 0
27+
j = 0
28+
for pixel in current_best:
29+
im.putpixel((i, j), pixel)
30+
j += 1
31+
if j == image.size[1]:
32+
i += 1
33+
j = 0
34+
im.save("./images/image%d.bmp" % n)
35+
n += 1
36+
o += 1
37+
return False
38+
39+
def fitness(genome):
40+
return sum(abs(a-b) for a, b in zip(genome, image_pixels))
41+
42+
def main():
43+
genome = G1DList.G1DList(len(image_pixels))
44+
genome.setParams(rangemin=min(image_pixels),
45+
rangemax=max(image_pixels),
46+
bestrawscore=0.00)
47+
48+
genome.initializator.set(Initializators.G1DListInitializatorInteger)
49+
genome.mutator.set(Mutators.G1DListMutatorIntegerRange)
50+
genome.evaluator.set(fitness)
51+
52+
ga = GSimpleGA.GSimpleGA(genome)
53+
ga.stepCallback.set(callback)
54+
ga.setMinimax(Consts.minimaxType["minimize"])
55+
ga.terminationCriteria.set(GSimpleGA.RawScoreCriteria)
56+
ga.selector.set(Selectors.GRankSelector)
57+
ga.setPopulationSize(20)
58+
ga.setMutationRate(0.005)
59+
ga.setCrossoverRate(.75)
60+
ga.setGenerations(5000)
61+
ga.evolve(freq_stats=100)
62+
63+
if __name__ == "__main__":
64+
main()

ga-image-generation/bwkey.bmp

1.3 KB
Binary file not shown.

ga-image-generation/cube.bmp

65.1 KB
Binary file not shown.

ga-image-generation/lena.bmp

257 KB
Binary file not shown.

ga-image-generation/lena128.bmp

17.1 KB
Binary file not shown.

ga-image-generation/lena64.bmp

5.05 KB
Binary file not shown.

ga-image-generation/p64.bmp

5.05 KB
Binary file not shown.

ga-image-generation/text.bmp

1.55 KB
Binary file not shown.

ga-sensor-node-optimization/README

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
The code in this directory (and all subdirectories) models the algorithm
2+
described in the paper (ga-paper.pdf) that resides in this directory.

0 commit comments

Comments
 (0)