As a continuation to our algorithm design patterns multi-part article series, right now you are reading the Genetic Algorithm techniques segment. Genetic algorithms are important because they are used for global optimizations. In a nutshell, they pick the best solution from lots of possibilities. They are fast, requiring very few system resources, and their implementations are also quick.
Genetic algorithms are used for some of the most remarkable problems such as the knapsack problem and the traveling salesman problem. However, as I already mentioned, the results generated by genetic algorithms on these problems cannot be mathematically proven to be the best. However, the solutions achieved in these cases often are indeed the best because with other proven algorithms the results are the same. Thus, there is no mistake.
Genetic algorithms are a big sub-class of evolutionary programming and basically they are the basis of such programming. In real life, from time to time, you may face situations where the best solution must be found as quickly as possible. Perhaps you have fewer system resources and need a fast run-time and cheap implementation. You would be looking for something you can use in a short time frame due to its highly efficient execution. At these times, using a genetic algorithm is the obvious answer.
We can conclude, however, that GAs don't guarantee success at all. A stochastic system like this may be far from representing a solution to a problem. On the other hand, the program may converge, and thus halt the execution, earlier than expected. GAs are most often used in automation fields (robots) and scheduling.
Moreover, if this brief article has sparked an interest in genetic algorithms, evolutionary programming, and other items of that nature for you, there are many books on the subject. Should you want to delve deeply into this, then by all means you need to check out this book; the link leads to Thomas Weise's 692 pages long PDF e-book. The book's entire title is: Global Optimization Algorithms - Theory and Application. It could be considered a bible on the subject.
Furthermore, I'd like to invite you to join our experienced community of technology professionals in all areas of IT&C starting from software and hardware up to consumer electronics at Dev Hardware Forums. As well, be sure to check out the community of our sister site at Dev Shed Forums. We are friendly and we'll do our best to help you.
DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.