For quite some time I have been thinking about the types of software development projects to students. There can be a dearth or abundance of ideas depending on the state of mind. A good practice could be to document the ideas as they arrive in the mind. This post is being written in that spirit.
It is quite easy to find free and open source software for evolutionary computation these days. Some of the remarkable software also have their own graphical user interface as well. ECJ instantly comes to the mind. ECJ is evolutionary computing software that is written in Java. It has many evolutionary and bio-inspired algorithms implemented in it. Along with genetic algorithms, genetic programming and such algorithms, it also has an implementation of particle swarm optimization in it. This is quite remarkable. The ECJ framework is amenable for execution over a network for parallel processing. It also has a nice graphical user interface (GUI) with which the user can control and run simulations. The GUI also provides charting and plotting capabilities.
The challenge is to write an interface for it in Matlab that actually makes all the major functions available to the practitioner in Matlab. This means all the major functions that are well known about any evolutionary algorithm. These could be crossover, mutation, evaluation and so on. The implementation should be such that the user could easily use those scripts to create new algorithms and run them.
Another extremely important requirement is to develop a GUI for ECJ in Matlab. If you have ever used Matlab, you might be aware that Java code can be written and executed in Matlab through the regular m-files of Matlab. Initially the GUI should be as good as the GUI of the actual implementation.
So get the code of ECJ from the link given above and start working. You might have to install ECJ on your local machine first to see how it works. This should not be a big deal. Get the code and install it. You can also find the ECJ manual from the website. You may also want to read this interesting guide about invoking java code in Matlab.
If you found an error, highlight it and press Shift + Enter or click here to inform us.