-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTodo
86 lines (60 loc) · 3.28 KB
/
Todo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
- Make README in rst or markdown or similar
- Use compile if the evolved function will be used multiple times
- Let fitness return tuples to allow e.g. parsimony preassure
- Enable line breaks in the rules when parsing, i.e. avoid everything on one line
- Print stats to file
- Add a cmdline parameter and code to set the save-directory (and make
it automatically if necessary)
- Look at Rangoli: what are the rules? Can we learn from them?
http://en.wikipedia.org/wiki/Rangoli
- In L-systems, the main command which changes state without drawing
is rotate (aka +/-). The key thing about this is, you can have lots
of rotate commands either together, or spread out through the
program. Rotation "wraps around", so if you have "too many" +
commands, you just end up back at the start. This is a crucial
property because it is in the nature of L-systems to sometimes give
too many of a particular command. Our colour scheme (now) does the
same: it's circular, going from colour1 -> colour2 -> black ->
colour1 in 100 steps. The scheme for changing the line-width should
do the same. Or maybe there should be just a few possible
line-widths.
- Add Jennifer's PonyGE code as a branch.
- Add James' fixed-steps bricks code as a branch.
- July 19 (Erik): add a "spawn" command which can be part of an
L-system. When executed, it presumably pushes onto the stack, and
starts a new L-system which inherits some similarities from the
existing one. Maybe it uses a smaller line-step, to keep the
children L-systems smaller? Maybe not.
- July 19 (James): "random canvas". Idea is to evolve a picture as a
population rather than a single individual. We remove the grid and
allow individuals to have arbitrary xy origins. User can select and
kill an individual. A new individual can be added by crossover from
selected individuals.
- Use a parser/generator library, maybe
http://www.acooke.org/lepl/features.html, to experiment with
reverse-mapping from user edits and grammar induction.
- Contact the company who made the Irish EU presidency logos and see
if they'd be interested in some kind of endorsement or field-test:
http://www.irishtimes.com/newspaper/breaking/2011/1130/breaking53.html.
The company was http://www.reddog.ie/
- Keep generating individuals until a picture is actually drawn, ie
invalid and null pictures should be replaced.
- For the symbolic regression and boolean problems, use Numpy.
- Try using a quotient operator
http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Ni_2012_ieeeTEC.html
- Use logging and pdb and pylint for nicer
code. http://www.reddit.com/tb/rwj1a
- Extended BNF (Erik)
- Force Fields (Jonathan)
- 3D (Eoin)
- Generalise the GUI so that it can be used for any type of
interactive EC -- maybe a pure web-GUI in JS/HTML5/WebGL? (James)
- Murphy Cup and enter GECCO art competition
- A button/shortcut for saving desktop backgrounds and screensavers
- Web interface
- Dave suggests: a library of shapes etc that could be used to inject
specific structures. Given an existing structure, the user decides
that a specific new shape is needed, so goes to the inject menu to
select from some predefined shapes.
- Miguel suggests the mutation rate should be inversely proportional
to the effective genome length (it is currently just per-codon).