Posted by : Unknown Friday, July 26, 2013

Table of Contents



1.     Abstract-----------------------------------------------------------------2
2.     Introduction------------------------------------------------------------2
3.     How do Genetic Algorithms work?---------------------------------2
4.     Search Space-----------------------------------------------------------3
5.     Operators of GA-------------------------------------------------------4
6.     Parameters of GA-----------------------------------------------------5
7.     Data representation and Operation Semantics--------------------6
8.     Recommendations----------------------------------------------------8
9.     Applications-----------------------------------------------------------9
10.                        When to use Genetic Algorithms?--------------------------------10
11.                        When not to use Genetic Algorithms?---------------------------10
12.                        Conclusion-----------------------------------------------------------10
13.                        Bibliography---------------------------------------------------------11


Genetic Algorithms

Abstract:
            Genetic Algorithms are a part of evolutionary computing, which is a rapidly growing area of artificial intelligence. Genetic Algorithms are inspired by Darwin’s theory about evolution. The solution to a problem solved using genetic algorithms is evolved. Algorithm is started with a set of solutions (represented by chromosomes) called population. Solutions from one population are taken and used to form a new population. This is motivated by a hope, that the new population will be better than the old one. Solutions that are selected to form new solutions (offspring) are selected according to their fitness - the more suitable they are the more chances they have to reproduce.

Introduction:
            Genetic Algorithms (GAs) are optimization techniques based on the concepts of natural selection and genetics. In this approach the variables are represented as genes on a chromosome. GAs feature a group of candidate solutions (population) on the response surface. Through natural selection and the genetic operators – mutation and recombination, chromosomes with better fitness are found. Natural selection guarantees that chromosomes with the best fitness will propagate in future populations.
            Using the recombination operator, the GA combines genes from two parent chromosomes to form two new chromosomes (children) that have a high probability of having better fitness than their parents. Mutation allows new areas of the response surface to be explored. GAs offer a generational improvement in the fitness of the chromosomes and after many generations will create chromosomes containing the optimized variable settings.

How do Genetic Algorithms work?
  1. [Start] Generate random population of n chromosomes (suitable solutions for the problem)
  2. [Fitness] Evaluate the fitness f(x) of each chromosome x in the population
  3. [New population] Create a new population by repeating following steps until the new population is complete
    1. [Selection] Select two parent chromosomes from a population according to their fitness (the better fitness, the bigger chance to be selected)
    2. [Crossover] With a crossover probability cross over the parents to form a new offspring (children). If no crossover was performed, offspring is an exact copy of parents.
    3. [Mutation] With a mutation probability mutate new offspring at each locus (position in chromosome).
    4. [Accepting] Place new offspring in a new population
  4. [Replace] Use new generated population for a further run of algorithm
  5. [Test] If the end condition is satisfied, stop, and return the best solution in current population
  6. [Loop] Go to step 2

Search Space:
            If we are solving some problem, we are usually looking for a solution, which will be the best among others. The space of all feasible solutions ( it means objects among those the desired solution is) is called search space ( also state space). Each point in the search space represents one feasible solution. Each solution can be “marked” by its value or fitness for the problem. We are looking for our solution, which is one point (or more) among feasible solutions - that is one point in the search space.
            The looking for a solution is then equal to a looking for some extreme (minimum or maximum) in the search space. The search space can be whole known by the time of solving a problem, but usually we know only a few points from it and we are generating other points as the process of finding solution continues.
            The problem is that the search can be very complicated. One does not know where to look for the solution and where to start. There are many methods, how to find some suitable solution (ie. not necessarily the best solution) – one among them is Genetic Algorithms. The solution found by these methods is often considered as a good solution, because it is not often possible to prove what is the real optimum.
Operators of GA:
1.      Encoding of a chromosome: The chromosome should in some way contain information about solution, which it represents. The most used way of encoding is a binary string. The chromosome then could look like this:
Chromosome 1
1101100100110110
Chromosome 2
1101111000011110
Each chromosome has one binary string. Each bit in this string can represent some characteristic of the solution.
2.      Crossover: Crossover selects genes from parent chromosomes and creates a new offspring. The simplest way of how to do this is to choose randomly some crossover point and everything before this point is copied from the first parent and then everything after the crossover point is copied from the second parent.
      Crossover can then look like this ( | is the crossover point):
Chromosome 1
11011 | 00100110110
Chromosome 2
11011 | 11000011110
Offspring 1
11011 | 11000011110
Offspring 2
11011 | 00100110110
              There are other ways how to make crossover, for example we can choose more crossover points. Crossover can be rather complicated and very depends on encoding of the encoding of chromosome. Specific crossover made for a specific problem can improve performance of the genetic algorithm.
3.      Mutation:  After a crossover is performed, mutation takes place. This is to prevent grouping all solutions in population into a local optimum of the problem to be solved. Mutation changes randomly the new offspring. For binary encoding we can switch a few randomly chosen bits from 1 to 0 or from 0 to 1. Mutation can then be following:
Original offspring 1
1101111000011110
Original offspring 2
1101100100110110
Mutated offspring 1
1100111000011110
Mutated offspring 2
1101101100110110
The mutation depends on the encoding as well as the crossover. For example when we are encoding permutations, mutation could be exchanging two genes.

Parameters of GA:
There are two basic parameters of GA - crossover probability and mutation probability. Population size is also another parameter.
1.      Crossover probability: says how often will be crossover performed. If there is no crossover, offspring is exact copy of parents. If there is a crossover, offspring is made from parts of parents' chromosome. If crossover probability is 100%, then all offspring is made by crossover. If it is 0%, whole new generation is made from exact copies of chromosomes from old population. Crossover is made in hope that new chromosomes will have good parts of old chromosomes and maybe the new chromosomes will be better. However it is good to leave some part of population survive to next generation.
2.      Mutation probability:  says how often parts of chromosome will be mutated. If there is no mutation, offspring is taken after crossover (or copy) without any change. If mutation is performed, part of chromosome is changed. If mutation probability is 100%, whole chromosome is changed, if it is 0%, nothing is changed.
Mutation is made to prevent falling GA into local extreme, but it should not occur very often, because then GA will in fact change to random search.

3.     Population size: says how many chromosomes are in population (in one generation). If there are too few chromosomes, GA has a few possibilities to perform crossover and only a small part of search space is explored. On the other hand, if there are too many chromosomes, GA slows down.

Data Representation and Operation Semantics
Selection: chromosomes are selected from the population to be parents to crossover. The problem is how to select these chromosomes. According to Darwin's evolution theory the best ones should survive and create new offspring. There are many methods how to select the best chromosomes, for example roulette wheel selection, Boltzman selection, tournament selection, rank selection, steady state selection etc.
Encoding:
1.      Binary Encoding: In binary encoding every chromosome is a string of bits, 0 or 1.
Chromosome A
101100101100101011100101
Chromosome B
111111100000110000011111
Example of chromosomes with binary encoding
Binary encoding gives many possible chromosomes even with a small number of alleles. On the other hand, this encoding is often not natural for many problems and sometimes corrections must be made after crossover and/or mutation.

2.      Permutation Encoding: In permutation encoding, every chromosome is a string of numbers, which represents number in a sequence.
Chromosome A
1  5  3  2  6  4  7  9  8
Chromosome B
8  5  6  7  2  3  1  4  9
Example of chromosomes with permutation encoding
Permutation encoding is only useful for ordering problems.

3.      Value Encoding: In value encoding, every chromosome is a string of some values. Values can be anything connected to problem, form numbers, real numbers or chars to some complicated objects.
Chromosome A
1.2324  5.3243  0.4556  2.3293  2.4545
Chromosome B
ABDJEIFJDHDIERJFDLDFLFEGT
Chromosome C
(back), (back), (right), (forward), (left)
Example of chromosomes with value encoding
Value encoding is very good for some special problems. On the other hand, for this encoding it is often necessary to develop some new crossover and mutation specific for the problem.

4.      Tree Encoding: In tree encoding every chromosome is a tree of some objects, such as functions or commands in programming language.

Chromosome A
Chromosome B
( +  x  ( /  5  y ) )
( do_until  step  wall )
Example of chromosomes with tree encoding
Tree encoding is good for evolving programs. Programming language LISP is often used to this, because programs in it are represented in this form and can be easily parsed as a tree, so the crossover and mutation can be done relatively easily.
Crossover and Mutation: Crossover and mutation are two basic operators of GA. Performance of GA very much depends on them. Type and implementation of operators depends on encoding and also on a problem.
Recommendations
  • Crossover rate
    Crossover rate generally should be high, about 80%-95%.
  • Mutation rate
    On the other side, mutation rate should be very low. Best rates reported are about 0.5%-1%.
  • Population size
    Good population size is about 20-30, however sometimes sizes 50-100 are reported as best. Best population size depends on encoding, on size of encoded string.
  • Selection
    Basic roulette wheel selection can be used, but sometimes, rank selection can be better. There is also some more sophisticated method, which changes parameters of selection during run of GA.
  • Encoding
    Encoding depends on the problem and also on the size of instance of the problem.
  • Crossover and mutation type
    Operators depend on encoding and on the problem.
Applications of GA
Genetic algorithms have been used for difficult problems (such as NP-hard problems), for machine learning and also for evolving simple programs.
Advantage of GAs is in their parallelism. GA is traveling in a search space with more individuals so they are less likely to get stuck in a local extreme like some other methods.
Disadvantage of GAs is in their computational time. They can be slower than some other methods. But with today’s computers it is not so big problem.
Some Applications:
  • Nonlinear dynamical systems - predicting, data analysis
  • Designing neural networks, both architecture and weights
  • Robot trajectory
  • Evolving LISP programs (genetic programming)
  • Strategy planning
  • Finding shape of protein molecules
  • TSP and sequence scheduling
  • Functions for creating images
When to use Genetic Algorithms?
  1. When not much is known about the response surface
  2. GAs do not optimize directly on the variables but on their representations
  3. GAs are an optimal choice in situations where the variables being optimized are very different from each other (i.e. a mixture of integers, binary values, and floating points numbers)
When not to use Genetic Algorithms?
  1. Applications which require that the exact global optimum be found may be a challenge for a GA. GAs are best at reaching the global optimum region but sometimes have trouble reaching the exact optimum location.
  2. One of the most commonly cited difficulties with GAs is that compared to hill-climbing techniques they generally require more response (fitness) function evaluations.
Conclusion:
          Genetic Algorithms are more than just another optimization method. GAs may be used to study how evolution occurs and also in understanding other esoteric concepts. A genetic algorithm once written may be reused for another situation just by changing the fitness function according to the new requirements.

Bibliography:
1.      Introduction to genetic algorithms with Java applets -- http://cs.felk.cvut.cz/~xobitko/ga/
2.      Practical Guide to Genetic Algorithms – http://chemdiv-www.nrl.navy.mil/6110/sensors/chemometrics/practga.html


















            

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Blog Archive

- Copyright © Seminar Sparkz Inc -- Powered by Semianr Sparkz Inc - Designed by Shaik Chand -