Development Cycles
  Home arrow Development Cycles arrow Genetic Algorithm Techniques
Dev Articles Forums 
ADO.NET  
Apache  
ASP  
ASP.NET  
C#  
C++  
ColdFusion  
COM/COM+  
Delphi-Kylix  
Design Usability  
Development Cycles  
DHTML  
Embedded Tools  
Flash  
Graphic Design  
HTML  
IIS  
Interviews  
Java  
JavaScript  
MySQL  
Oracle  
Photoshop  
PHP  
Reviews  
Ruby-on-Rails  
SQL  
SQL Server  
Style Sheets  
VB.Net  
Visual Basic  
Web Authoring  
Web Services  
Web Standards  
XML  
Mobile Linux 
App Generation ROI 
IBM® developerWorks 
Sun Developer Network 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
DEVELOPMENT CYCLES

Genetic Algorithm Techniques
By: Barzan "Tony" Antal
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 5 stars5 stars5 stars5 stars5 stars / 4
    2008-10-07

    Table of Contents:
  • Genetic Algorithm Techniques
  • The Theory
  • The Theory, Continued
  • Concluding Thoughts

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    Genetic Algorithm Techniques


    (Page 1 of 4 )

    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.

    In this article series we have already covered some of the most remarkable design patterns in the world of algorithms: backtracking, divide-and-conquer, greedy, dynamic programming, and branch-and-bound. By now you should know the differences and have a clear overview of each technique along with their benefits and drawbacks.

    As I already mentioned, genetic algorithms are usually pretty fast. Programming a genetic algorithm is routine most of the time; thus, implementing requires very little time, so it's cheap. Yet these tiny little algorithms always find the global optimum. However, the most important drawback of genetic algorithms (GA) is that mathematically there is no validity proof of the solution whatsoever. It doesn't always converge.

    By definition, a genetic algorithm is a searching technique because it does nothing but search for the exact or appropriate (as specified within the implementation) solution from lots of possibilities. Therefore, such algorithms are used frequently in search problems and optimizations. They are part of the global search heuristic branch of mathematics.

    Before we move on to presenting the basic theory of GAs we need to understand the name. Genetic algorithms are a sub-class of evolutionary algorithms because they use the exact same strategies derived from evolutionary biology. Now what exactly is evolutionary biology? That science discusses species, descents of species, and the like.

    How can an algorithm design use evolutionary techniques? It's simple. Genetic algorithms rely on specific functions that are practically based on inheritance, mutation, selection, and crossover (which is genetic recombination). Genetic algorithms work with individuals from a population (chromosomes). The entire algorithm works a la evolution where the "most fit" species in the end will be the local optima or global optimum.

    By now I am sure that you can imagine genetic algorithms already. That means we are ready to move on and present the main part of a genetic algorithm. Later on, we will also present a few examples to give you an overview of the entire technique, presenting the problem accompanied by the solution. Ultimately, coding GAs isn't hard; it's pretty much routine. You just need to grasp its concepts.

    More Development Cycles Articles
    More By Barzan "Tony" Antal


     

    DEVELOPMENT CYCLES ARTICLES

    - Branch and Bound Algorithm Technique
    - Dynamic Programming Algorithm Technique
    - Genetic Algorithm Techniques
    - Greedy Strategy as an Algorithm Technique
    - Divide and Conquer Algorithm Technique
    - The Backtracking Algorithm Technique
    - More Pattern Matching Algorithms: B-M
    - Pattern Matching Algorithms Demystified: KMP
    - Coding Standards
    - A Peek into the Future: Transactional Memory
    - Learning About the Graph Construct using Gam...
    - Learning About the Graph Construct using Gam...
    - Learning About the Graph Construct using Gam...
    - How to Strike a Match
    - Entity Relationship Modeling






    © 2003-2008 by Developer Shed. All rights reserved. DS Cluster 2 hosted by Hostway
    Stay green...Green IT