Biologically Inspired Computation Series

 

This is a series of 4 simulators, all written in Cocoa, experimenting with topics such as artificial intelligence with neural networks, cellular automaton, and genetic algorithms.  The full source, along with project description and detailed implementation guidelines are included with each project.

 

Activation/Inhibition Cellular Automaton

This is a simulator written in Cocoa for running a series of experiments and creating Excel files with the results.  Activation/Inhibition CAs are similar to how a cell on a zebra determines if it should be white or black.  There is no overall governing authority, yet patterns arise naturally.  Intermediate example of using Cocoa classes such as open/save panels, notifications and the file manager.  Excellent for examining how to code complex mathematical formulas and summations in C code.

 

Hopfield Network

This is a simulator written in Cocoa to test the relationship between the number of stored patterns in a Hopfield Network and the accuracy with which they are remembered.  A very interesting exercise making use of NSOperation and NSOperationQueue for simple multithreading and general Cocoa design patterns such as using a delegate.

 

Back Propagation Neural Network

Another Cocoa simulator written to investigate the relationship between parameters for a network.  Given a set of data, can train the network to recognize that data.  Then from there, the network can ’solve’ a problem.  In this simulation, there are two mathematical equations that are solved with this network.  Illustrates custom views, multithreading, and more.

 

Genetic Algorithms

The last Cocoa simulator in the series, written to investigate the relationship between input parameters for a given population of organisms over several generations.  Parameters include the probability of mutation in the offspring’s chromosomes, number of chromosomes per individual, how much sharing of chromosomes occurs when two individuals mate, and creating your own fitness function to quantify the ‘best fit’ individual based upon the DNA.  Multithreading and general Cocoa design patterns.

 

Going Further

I find this general area of computer science very interesting and would love to spend time researching and learning more about neural networks and genetic algorithms.  If you have any suggestions or comments about the code or projects in general, I’d love to hear from you, so drop me an email.

Comments (0) Leave a Comment
  1. No comments yet.
Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">
Trackbacks are closed.