Evolutionary Optimization using C#


I wrote an article titled “Evolutionary Optimization using C#” in the February 2014 issue of Visual Studio Magazine. See http://visualstudiomagazine.com/articles/2014/02/01/evolutionary-optimization-using-c.aspx. Evolutionary optimization (EO) is a numerical optimization technique, that is, a way to find approximate solutions to problems (typically minimizing some sort of error) in situations where traditional techniques based on Calculus aren’t feasible.


Evolutionary optimization is actually a form of genetic algorithm (GA) optimization. GA implementations model the behavior of chromosomes where each virtual software chromosome represents a possible solution to the optimization problem. Chromosome-solutions are combined with each other to produce new child chromosome-solutions that hopefully inherent good characteristics and give better solutions. Really, the only difference between genetic algorithms and evolutionary optimization algorithms is that in GAs, chromosome-solutions are encoded using some form of bit representation, but in EOs, chromosome-solutions are encoded using real (numbers with decimal points) values.

The point of the article is that EO algorithms can be used to train neural networks where the optimization problem is to minimize the error between computed outputs and actual outputs for a set of training data. EO algorithms are not used to train neural networks as often as back-propagation (by far the most common approach) or particle swarm optimization (PSO).

This entry was posted in Machine Learning. Bookmark the permalink.