Thursday, October 29, 2009

The workings of Genetic Algorithms


An algorithm is as defined by Microsoft Encarta Dictionary, is "a logical sequence of steps for solving a problem, often written out as a flow chart, which can be translated into a computer program."

Since our first lecture on genetic algorithms I have been asking myself what exactly are genetic algorithms’, how they works and benefits do they have. The above is one of many definitions I have come across on the internet.

I also came across names that were very much involved in Genetic Algorithms. A man called John Holland is responsible for the invention of genetic algorithms. He had a two aims, one was to improve the understanding of natural adaptation process, and to design artificial systems having properties similar to natural systems. He began his work on genetic algorithms in the early 60s.

So what exactly is genetic algorithm? Genetic algorithms are programs that attempt to find optimal solutions to problems when it is possible to specify the criteria that can be used to evaluate the optimal solutions. They are a set of computational procedures that conceptually follow steps inspired by the biological processes of evolution.

Genetic algorithms are also known as evolutionary algorithms. They demonstrate self organisation and adaption in a similar way to the fittest biological organisms survive and reproduce. The method learns by producing offspring that are better and better, measured by a fitness to survive function. These types of algorithms have been used to solve problems such as bankruptcy prediction and web searching.


A genetic algorithm solves optimization problems by creating a population or group of possible solutions to the problem. The individuals in this population will carry chromosomes that are the values of variables of the problem.


Genetic Algorithms basically imitate evolution. Once a problem is identified, a Genetic Algorithm can be implemented. First, a fitness ranking is created, depending on certain attributes of the "candidates", or the animals that are evolving. Then, a random set of candidates, with various values for their attributes, is created, and called the first generation. Each generation, the Genetic Algorithm has a specific way of mating (combining attributes) and mutating (random changes to attributes), as well as killing off some of the candidates. After many generations, the "fittest" candidates, as well as the population as a whole, will approach a certain, most effective solution to the problem.


Reproduction, Crossover and mutating are genetic operators.


So now I know what genetic algorithms are and I am still asking myself questions. Who uses it and what is the main purpose of GA? It automates the invention process. It doesn’t take a genius to find some sort of solution to a problem; a powerful enough computer with a good genetic algorithm will be able to solve these problems.


Since Genetic Algorithms are basically a method to optimize something, it is also especially good at finding the most effective way to accomplish a very complex task, such as scheduling or factory organisation, which humans have trouble with as the factory or schedules grow. It finds solutions not based on intuition and logic, but uses the method of natural selection; it can create solutions that are unimaginable to the human mind.


Most importantly, Genetic Algorithms are one of many attempts to make computers more intelligent. As artificial intelligence comes closer and closer to human intelligence, we hope that humanity's understanding of its own mind and consciousness, as well as the source of our intelligence, will become deeper.


If I have not been able to give you a better understanding on such a complex topic there are many websites which I researched that may be able to throw more light on this topic.





1 comment:

  1. Hi!

    Very nice post this one!

    I would like to invite you to read my blog about evolutionary computation: Genetic Argonaut. It has some interesting links to diversified sources dealing with genetic algorithms and its siblings (evolution strategies, evolutionary programming, genetic programming and so on and on).

    Don't forget to take a look at the Genetic Argonaut Special Menu in which I suggest the post on the history of evolution strategies: Evolutionary Computation Classics - Volume I.

    Cheers!

    Marcelo

    ReplyDelete