In this project I implemented two cellular automata implementations.
- Game of Life
- Wolfram Cellular Automata
Both were developed using common interfaces keeping their interoperability in mind. GameOfLife and WolframCA are the classes where these CA rules have been implemented.
Then using Genetic Algorithm I tried to evolve the GA with a predefined target. The predefined target is a CA state after running the CA for a specific number of states.
Two fitness functions are used while running the GA, MAE and structural similarity.
The GA is implemented using hierarchical classes. The base class is GA. Then both GAGol and GAWolfram contains the specific GA implementations.
Each of these GA classes are used to run their own set of experiments. The Jupyter notebooks associated with game of life and Wolfram cellular automata are in their respective hyperlinked directories.
Two nice animations of evolving game of life and wolfram ca can be found in their hyperlinked locations. They are produce using these notebooks corresponding to game of life and wolfram ca.
The results of all the experiments are exported to this data directory.