Newsgroups: comp.ai.genetic
Path: cantaloupe.srv.cs.cmu.edu!europa.chnt.gtegsc.com!gatech!news.mathworks.com!zombie.ncsc.mil!news.duke.edu!godot.cc.duq.edu!newsfeed.pitt.edu!dbisna.com!psinntp!psinntp!psinntp!psinntp!news.rlcn.rl.af.mil!fester.se.rl.af.mil!user
From: marcoj@ai.rl.af.mil (James D. Marco)
Subject: Re: culling 'fitness function' use
Message-ID: <marcoj-2606950913280001@fester.se.rl.af.mil>
Sender: news@news.rlcn.rl.af.mil
Nntp-Posting-Host: fester.se.rl.af.mil
Organization: Rome Laboratory USAF
References: <803850951snz@isd.rrassoc.co.uk>
Date: Mon, 26 Jun 1995 14:13:28 GMT
Lines: 70

In article <803850951snz@isd.rrassoc.co.uk>, dlw@isd.rrassoc.co.uk wrote:

>      I've got a fitness function that takes about 1/2 hour to run (it uses
>      a SLOW simulator). Hence, it will take 10 hours to evaluate a even 
>      a small population of 20 individuals (solutions).  It will take a
>      week for the GA to do even a small number of iterations ( aprox. 16 ). 
>      It will take months to proces a larger population (approx. 40 
>      individuals) with more iterations (100+);
> 
>      How can I REDUCE the use of the fitness function to speed up the GA?
> 
> Two obvious solutions come to mind ....
> ..Any ideas?
Andy,
I dont believe you can reduce the use of the fitness function.  Clearly,
each gene needs to be evaluated in its environment and, eventually, these
results are used to compare each gene for reproductive selection.


____________________________________________________________
> ... Use a crude but fast version of the fitness function to get close 
to the solution.
____________________________________________________________
 In essence, you propose to weaken the selection process.  This will
certainly speed the search, but you will then need to re-run the optimized
genes against the original fitness function.  Since the genetic diversity
has been reduced,  it may take longer (totaling the time for both runs!)
to achieve a viable convergence within your overall problem space.

Example:-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
A problem space (2Dmaze - north, south, east, west) contains a solution
:neeeesw 
   If I preselect an individuals genes optimized strictly for moving
north (from the starting point, correctly optimized), then the only
mechanism for producing the east, south and west components of the
solution is mutation.  Crossing-over, reordering, culling fail since the
genes are all the same! Once the genes are sufficiently
mutated(randomized) to contain other movement components, then other
genetic methods(culling, crossing over, reordering, etc.) begin to operate
towards a convergence. 
   Clearly, the maze will probably take longer to solve, than if I had
chosen a randomized gene pool showing a normal distribution, thereby,
allowing ALL elements of convergence to operate on each generation. Let me
point out convergence reduces randomness and mutation increases
randomness.  
(Various forms of selection and gene optimization attempt to converge the
gene pool on the correct solution.  Mutation reintroduces randomness to
hedge against local optimization and the over specialized dead end. 
In a partially optimized gene pool, a fairly high mutation rate is
desirable, since, we cannot be sure we are not stuck in some local
optimization and need the diversity to search other paths. As the fitness
of the gene increases, the genes converge on a solution, and mutation may
destroy the fitness of genes, preventing or slowing the approach to the
goal. - Two genetic forces at opposition. - )
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=:-=)-=-=-=
________________________________________________________
>     2.  Not actually reduce the use of the fitness 
>         function but use more than one fitness function in parallel.
________________________________________________________
Parallelism is always a good solution, but does not reduce complexity or
CPU time, just user time.

                                     marcoj@ai.rl.af.mil     
Disclaimer: All viewpoints are mine and mine alone
      (and taken alone, likely to be wrong!)
                                        /////////#.        ~
                                       ( <Q>  <Q> )      ~
                                      ()     |    ()    / 
                                       (   ~~_~~  )    /  
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=ooOO-=-=-=-=-=-=-=-=OOoo=-
