In the June 2012 issue of MSDN Magazine, I describe what evolutionary optimization algorithms are and demonstrate how to code them using the C# programming language. An Evolutionary Optimization Algorithm (EOA) is really a particular kind of Genetic Algorithm (GA). Both are heuristics (set of guidelines) that are based on chromosomes, reproduction, and mutation, that can be used to create an algorithm that solves some numeric optimization problem in situations where classical techniques are not feasible. The difference between an EOA and a GA is somewhat arbitrary, but in general a GA models numeric values (the chromosomes) as bit arrays, and an EOA models numeric values as real numbers. Because of this, I prefer the term Real-Valued Genetic Algorithm to Evolutionary Optimization Algorithm. Somewhat unfortunately, the term evolutionary algorithm is also used to refer to any type of self-adapting algorithm that evolves in some way. Anyway, you can read my article here: http://msdn.microsoft.com/en-us/magazine/jj133825.aspx.