swarm-modeling
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Need to talk with somebody who has dug through Breeder library and/o


From: Rick Riolo
Subject: Re: Need to talk with somebody who has dug through Breeder library and/or GW library
Date: Wed, 29 Mar 2000 17:06:12 -0500 (EST)

I've not looked at Breeder for a couple of years, so I can't
comment on your questions about its details.
I don't know anything about GW.

Another GA package is part of the Classifier System package
we wrote here a few years ago, at
   http://www.pscs.umich.edu/Software/CFS-S.html
but alas it is hopelessly out of date (eg probably a
*pre* 1.0 swarm version).  Still, the GA package was
completely separate from the classifier system, and its
design may give you ideas about how we thought a
general purpose set of GA objects should be written.

Regarding representations in GAs:

One traditional approach is to do as you noted,
i.e., encode the real values down into some number
of bits that capture the precision you think you need.
(There are GAs that have evolvable precision, as well.)
Of course you are still left with choices about
what encoding to use, which can be quite important.
See a book like Melanie Mitchell's or Goldberg's Intro to GA's
for some discussion of the issues.  

One quick example:
Suppose you are optimizing some f(x), and assume one
dimension for simplicity, and its roughly tent shaped,
with the peak just to the right of overall domain of x:
         
         - 1/2 
 f(x      |    
   |      /\
   |     /  \
   |    /    \
   |   /      \
   |  /        \
   |_/__________\
         |
         x
If you do a simple encoding such that the lowest x is 00000...
and the highest is 1111...., note that if you have climbed up
the hill to just below 1/2, at 011111....,
if you want to get to the next highest place on that hill
its encoded value is 10000....  !!
That is, in real these points are, say, 0.49 and 0.51, but
in this binary encoding they are completely different,
making it pretty hard for mutation or crossover to get
from 0.49 to 0.51!   But there are other encodings,
eg the Grey (Gray?) scale encodings, which don't have that problem.

In short, its as much "art" or "craft" as science
in chosing a representation for a GA application, though there are some
heuristics to as least make one's guesses "educated",
and lots of debate and research in the recent and current literature.

Another approach is to leave the reals as reals,
and then invent the appropriate "mutation" and "crossover"
operators.   For example, mutation could be
"add normal distributed noise with mean 0, variance v".
Crossover in this context is usually done by
crossing over *between* the reals which are the different
elements in a vector being optimized, say.
This is the approach common in Evolutionary Strategies
and (without the crossover) Evolutionary Programming,
but it is also common in some systems that still call
themselves GA's.  

- r

Rick Riolo                           address@hidden
Center for Study of Complex Systems (CSCS)
4477 Randall Lab                
University of Michigan         Ann Arbor MI 48109-1120
Phone: 734 763 3323                  Fax: 734 763 9267
http://www.pscs.umich.edu/PEOPLE/rlr-home.html

On Wed, 29 Mar 2000, Paul Johnson wrote:

> Date: Wed, 29 Mar 2000 10:55:36 -0600
> From: Paul Johnson <address@hidden>
> Reply-To: address@hidden
> To: Swarm-Modelling <address@hidden>
> Subject: Need to talk with somebody who has dug through Breeder library
    and/or GW  library
> 
> I have a few questions about using genetic algorithms in Swarm
> programs.  I've been in a quandry for a long time about how to make
> smarter agents, and I'm looking at using some combination of GAs and/or
> NNs to get the job done.   
> 
> What I don't understand very well in C is bit shifting and things like
> that. I thought I could avoid it by using one of these libraries.  But
> when I look at the Breeder library, and the example application IPD, I
> can't understand how the Breeder library helps the IPD application, and
> I don't see why all the bit shifting is done in the IPD code itself.
> 
> Do you know what I mean?
> 
> I suppose you have a right to answer that I should not be messing with
> these things if I can't even understand that for myself.  But try to
> give me a break...
> 
> Here is the other question about GAs.  I understand well how this works
> if the agent attributes are all 0 and 1.  What do you do if an agent's
> attribute is from a continuum, such as [0,1] or the like.  Are you just
> supposed to "discretize" by breaking it up into little segments and
> treat that attribute as if it were 000100000 or 0000010000 or some such
> string?
> 
> 
> If you have a sample program (other than IPD, that is) using Breeder,
> I'd appreciate a chance to see it. I would guarantee your
> confidentiality.  
> 
> I could be persuaded to work with GW instead, if somebody outlined the
> reasons why I would prefer it to Breeder.  
> 
> -- 
> Paul E. Johnson                       email: address@hidden
> Dept. of Political Science            http://lark.cc.ukans.edu/~pauljohn
> University of Kansas                  Office: (785) 864-9086
> Lawrence, Kansas 66045                FAX: (785) 864-5700
> 
> 
>                   ==================================
>    Swarm-Modelling is for discussion of Simulation and Modelling techniques
>    esp. using Swarm.  For list administration needs (esp. [un]subscribing),
>    please send a message to <address@hidden> with "help" in the
>    body of the message.
>                   ==================================
> 



                  ==================================
   Swarm-Modelling is for discussion of Simulation and Modelling techniques
   esp. using Swarm.  For list administration needs (esp. [un]subscribing),
   please send a message to <address@hidden> with "help" in the
   body of the message.
                  ==================================


reply via email to

[Prev in Thread] Current Thread [Next in Thread]