hmep-0.1.1: TODO
1. Provide a Storable instance for AI.MEP.Types.Gene
and make the Chromosome a Data.Vector.Storable.
2. Improve code generation:
Perform subexpression elimination,
e.g. x0 / x0 should be reduced to 1
1 + 1 should become 2, etc.
And possibly, support unary operators:
Interpreted expression
v1 = x0 / x0
v3 = s x0 v1
v6 = v3 / v1
v14 = s x0 v6
v15 = v14 * v6
result = v1 - v15
should eventually become
v1 = sin x0
v2 = v1 * v1
result = 1 - v2
3. Improve the demo: provide a CLI interface to work
with external data
4. Performance tuning and benchmarking using Criterion package.
Hint: use of matrices featuring O(1) memory access
instead of lists of vectors ([Chromosome a], [Phenotype a]),
might improve the speed of such operators as binaryTournament.
5. Implement subpopulations that eventually exchange individuals