I recently started work on a research project that has to do with evolving cellular automata rules (for a given task, follow the link if you're curious).
I am currently evaluating options for tools that could be used for the job, here's what I have so far:
- MASON + ECJ
- Swarm
- MATLAB
- MATHEMATICA
- Some ad-hoc Python CA implementation + Pyevolve
- from scratch, develop my own framework
Cosidering that:
- MASON/Swarm learning curves are not exactly steep
- I know close to nothing about MATLAB/MATHEMATICA
- I know very little Python
- I already developed my own home-grown GA framework in C# before
I am tempted to roll my own CA simulation from scratch and hook it up with my dodgy framework. I think it could take me a bit of time to crank smt out but I'd be able to better estimate the extent of work required, compared to learning some new language/platform.
The risk is (obviously) reinventing the wheel and running into issues/delays (I am mainly thinking performance optimization related stuff that could force me to spend a lot of time optimizing my ad-hoc code) that would make the DIY option worse than the rest, considering that some of those framework mentioned have been developed specifically for heavy computation etc.
This is a very important choice for this project (being that it is a 6 months project) so I'd like to hear people's opinions/experiences.
IMPORTANT NOTE: this is for a MSc final research project which is supposed to take me a total 6 months, so I do not have a lot of time to invest as I would have on a Phd effort.