ISCID Forums


Post New Topic  Post A Reply
my profile | search | faq | forum home
  next oldest topic   next newest topic
» ISCID Forums   » General   » Brainstorms   » MESA: Monotonic Evolutionary Simulation Algorithm

   
Author Topic: MESA: Monotonic Evolutionary Simulation Algorithm
William A. Dembski
Member
Member # 7

Icon 1 posted 31. March 2002 23:31      Profile for William A. Dembski   Email William A. Dembski   Send New Private Message       Edit/Delete Post 
[Note for Brainstorm Participants]

MESA is a work in progress. We will continue to add functionalities to the program. We solicit your feedback for strengthening the program as well as for interpreting its results. The Brainstorms discussion forum is the place for that feedback (minus troubleshooting issues which should be directed to micah.sparacio@iscid.org). Eventually, we may make MESA an open source code project.

MESA: Monotonic Evolutionary Simulation Algorithm

MESA models evolutionary searches that employ monotonic smooth fitness gradients. It presupposes a fitness landscape that converges gradually to a single optimum and asks how quickly evolution can locate the optimum when fitness is randomly perturbed and/or when variables are coupled. Its aim is to determine the degree to which fitness perturbation and variable coupling impede evolutionary searches.

To run this program you must have the Java Runtime Environment (JRE) installed on your machine.

For an overview of the program, click here.
For a quick guide to the program's functions, click here.
To download and run the program, click here.

JRE for Windows: http://java.sun.com/j2se/1.3/jre/download-windows.html
JRE for other systems: http://java.sun.com/getjava/others.html

Update 9/9/02
MESA Long Run

This program is functionally equivalent to the normal MESA program except that it automatically runs through 100 trials at each Coupling Degree and then increments the Coupling Degree by one. This automates the process of running long trials.

To download and run MESA Long Run, click here.

Copyright notice: ISCID retains copyright on the MESA program. MESA can not be redistributed or modified in any way without explicit permission from ISCID. Copyright 2002 by ISCID.

[ 09 September 2002, 07:10: Message edited by: Moderator ]

IP: Logged
Micah Sparacio
Member
Member # 6

Icon 3 posted 01. April 2002 15:21      Profile for Micah Sparacio   Email Micah Sparacio   Send New Private Message       Edit/Delete Post 
An observation:

There are lots of parameters to play around with in MESA. Surely there are many surprises to be discovered that outdue this bland observation. In any case, I thought I'd put it up to share with other MESA users. Given the default values, I ran 20 simulations: 10 with crossover on and 10 with crossover off. When crossover is on, the system gets to the target ~2.6 times faster (by generation).

Here are the numbers:

Crossover On:
Generations, Mutations, Crossovers
69, 647, 2037
70, 681, 2099
64, 659, 2009
62, 633, 1873
67, 672, 2052
63, 653, 1892
62, 657, 1881
96, 971, 2910
83, 856, 2489
49, 496, 1530

Average: 69, 693, 2077

Crossovers Off
Generations, Mutations, Crossovers
189, 1826, 0
183, 1769, 0
179, 1791, 0
170, 1729, 0
186, 1842, 0
166, 1646, 0
176, 1788, 0
181, 1768, 0
174, 1782, 0
177, 1770, 0

Average: 178, 1771, 0

[ 01 April 2002, 15:26: Message edited by: Micah Sparacio ]

IP: Logged
Micah Sparacio
Member
Member # 6

Icon 1 posted 03. April 2002 14:53      Profile for Micah Sparacio   Email Micah Sparacio   Send New Private Message       Edit/Delete Post 
I'd to like solicit the help of the Brainstorms community in running a MESA experiment:

Of course you will first have to download the program. Default parameters are set each time you open the program. We are going to leave all of these but two the same over the course of this experiment.

We are going to test the effect of "Coupling Degree" on the GA.

To begin, start by entering "5" in the first text box under "Coupling Degree" and "1" under "Total Couplings". Run the simulation by clicking on "Start"

Record the number of generations it took to get to the target, and whether crossover was on or not.

Next, run the simulation with the same settings, except this time "Turn On Crossover". Record the same information.

Continue this process while incrementing the "Coupling Degree" by one on each set of simulations. Go as high as you would like (once you are in the the high teens for coupling degree you may want to run simulations overnight or when you have other things to do between runs). When you are done, report your findings back here.

Here are some preliminary numbers that I got on an initial run through. Note that on duplicate runs there is a wide variance, and that your numbers will probably be very different than mine. Thanks for any time you put into this. I really don't know what to expect from the results...right now I'm just data mining.

Degree, Generations, Crossover On or Off

5,602,off
5,68,on

6,330,off
6,98,on

7,1048,off
7,1099,on

8,7064,off
8,2211,on

9,9280,off
9,1422,on

10,10044,off
10,3363,on

11,8975,off
11,12645,on

12,24425,off
12,10932,on

13,26240,off
13,12213,on

14,51128,off
14,27654,on

[ 03 April 2002, 14:59: Message edited by: Micah Sparacio ]

IP: Logged
Donald A. McLaughlin
Member
Member # 57

Icon 9 posted 04. April 2002 00:50      Profile for Donald A. McLaughlin   Email Donald A. McLaughlin   Send New Private Message       Edit/Delete Post 
A couple of suggestions for the MESA program.

1. Add a reset button so that all values can be reset to defaults if we want to start over.
2. It would be helpful to have some way to take each result and have it recorded in either some pre-determined format or flipped into an Excel spread sheet or something.
3. A pull down help menu with terms and definitions.

Thanks
Donald M

IP: Logged
RalphW
Member
Member # 116

Icon 1 posted 05. April 2002 23:30      Profile for RalphW   Email RalphW   Send New Private Message       Edit/Delete Post 
Another suggestion - support the creation of an input file that contains the specifications for multiple runs (including the names of the files in which the output should be saved). This would allow the job to run unattended for days at a time performing multiple simulations. The option to stop a batch run and then restart it where you left off would also facilitate doing large scale simulation runs.
IP: Logged
Micah Sparacio
Member
Member # 6

Icon 1 posted 08. April 2002 12:34      Profile for Micah Sparacio   Email Micah Sparacio   Send New Private Message       Edit/Delete Post 
An explanation of coupling in MESA

The intuition behind coupling in the MESA program is that by requiring certain bits to mutate in tandem before conferring a fitness advantage, we may be able to simulate the need for coordinated mutations in biology.

"Coupling Degree" in the MESA program simply indicates the number of bits in a bit string that must mutate together to confer an advantage. "Total Couplings" indicates the number of groups there are. So if you were to choose a coupling degree of 30, and 1 total coupling, there would be 30 bits at the beginning of each bit string in the population that would be grouped together. These bits would all need to mutate to the target value together in order to confer an advantage.

One obvious way to make use of this system, is to map it onto words or letters. We can assume that each letter is 8 bits as is in the standard ASCII representation.

So, if we wanted to reproduce Dawkins' ME THINKS example, we could do so in a variety of ways.
(NOTE: this representation will not be completely analagous to Dawkins' example because Dawkins does not allow for subsequent mutation on "selected" letters)

First, we could select by individual character. There are 29 total characters in the following phrase:

ME THINKS IT IS LIKE A WEASEL

To simulate the selection of individual characters, we need a bit string consisting of 232 bits (29 * 8 = 232). We then simply indicate on the MESA program that we want a "coupling degree" of 8 bits and a "total couplings" of 29. My intuition is that the program will converge on the target in a relatively short period of time.

We could also simulate this program by selecting for words rather than letters. Let's take the Dawkins example again:

In order to select by words we need to calculate the total number of bits per word:

ME: 16 bits
THINKS: 48 bits
IT: 16 bits
IS: 16 bits
LIKE: 32 bits
A: 8 bits
WEASEL: 48 bits
SPACES: 8 bits each

Once again our string length will be 232. We then need three 16 bits couplings (Couple Degree: 16, Total Couplings 3), seven 8 bit couplings, two 48 bit couplings, and one 32 bit coupling.

Coupling Degree, Total Couplings
16,3
8,7
48,2
32,1

IP: Logged
Micah Sparacio
Member
Member # 6

Icon 1 posted 10. April 2002 19:00      Profile for Micah Sparacio   Email Micah Sparacio   Send New Private Message       Edit/Delete Post 
The following note from a friend was sent my way regarding the reason that crossover has had an influence on the generation times it takes to get to the target:

"I think the reason the crossover speeds things up in your coupled simulation, is as follows. I noted that very quickly all the "uncoupled" bits go to zero and stay there. For the remaining coupled bits, you have, in fitness terms, a completely flat plateau, with only a single point that is advantageous. Hence with just mutation, you are effectively performing a blind search. The mutation rate is about 1 bit per genome, so if you have 10 coupled bits in a 100 bit string, only 1 in 10 mutations are going to make a difference (or 10 individuals on average in a population of 100). The expected time for the blind search to succeed should scale exponentially with the number of coupled bits. However there will be a large variance. If you introduce crossover, as your crossover operator operates on many segments in the string (e.g. 60% of the bits are crossover points), this of course means that every individual will change in the coupled area at each generation, and hence the "blind search" for the string of zeros will be much quicker."

IP: Logged
Micah Sparacio
Member
Member # 6

Icon 1 posted 15. April 2002 09:43      Profile for Micah Sparacio   Email Micah Sparacio   Send New Private Message       Edit/Delete Post 
MESA and Stasis

When MESA randomly generates an initial population there is, for the large part, a heterogeneous group of organisms. This diversity in the population raises the probability that a solution to the target will be discovered quickly, even if there are coupled bits. However, due to selection, the population becomes largely homogeneous in short order, with diversity normally ranging over only a small number of bits. This new homogeneous state of the population makes it far less conducive to finding the target, and thus a long period of stasis normally (though certainly not always) sets in.

[ 15 April 2002, 12:47: Message edited by: Micah Sparacio ]

IP: Logged
Daniel R. Kuebler
Member
Member # 222

Icon 1 posted 16. April 2002 14:52      Profile for Daniel R. Kuebler   Email Daniel R. Kuebler   Send New Private Message       Edit/Delete Post 
Although this is a bit outside my field, I have enjoyed playing around with the MESA algorithm. I have noticed that when the elitism is on and the uniform fitness perturbation is set to 0, that the algorithm stalls in its search to find a simple 10 bit coupling. It appears that once a string has the 90 uncoupled bits go to zero, it quickly spreads throughout the population because it is ensured to make it to the next generation without mutation when elitism is on. (This does not happen when elitism is off.) The algorithm seems to stall at this point with most or all of the strings being identical. I'm not sure what elitism is attempting to model as regardless of the fitness of a biological organism, it is never exempted from the possibility of mutation. It seems that this function, which in some cases may speed the algorithm up because it ensures the perservation of the best organisms, is not really relevant to the biology.
Another comment is that by randomly perturbing the fitness of a string, one has the mechanism by which a portion of a population may be able to traverse valleys in a fitness landscape.

Intuitively random perturbation makes sense as an excellent genome can be squashed by a chance meeting with a train at a railway crossing.) In MESA, the population is evolving toward all zeros (zero peak) and there is more or less a smooth fitness gradient leading up to the zero peak. Suppose however that there was also a ones peak such that a string with all ones would have the same fitness value as a string with all zeros. If this were the case, a valley would exist between the two peaks, the zero peak and the ones peak. If a population was halfway up the zero peak it would have to have a decrease in fitness to move toward the ones peak. This wouldn't happen without random perturbations to the fitness function. However, if 15-20% of the fitness of a string was due to random perterbations (this is probably not too far fetched from biological reality), it would be possible to move some strings across that valley to the base of the ones peak. Such an algorithm would allow for a portion of a population to traverse valleys in a fitness landscape. This random fitness perturbation is much closer to what happens in reality and has some interesting possibilities.

IP: Logged
Micah Sparacio
Member
Member # 6

Icon 1 posted 18. April 2002 17:35      Profile for Micah Sparacio   Email Micah Sparacio   Send New Private Message       Edit/Delete Post 
DrawMesa

I've been playing around with the MESA system and have developed a little application that some of you might enjoy trying out. You get to draw a target picture and an initial starting picture and watch the GA converge from the initial picture to the target image. There are still a few little bugs, and I hope to add more functionality, but I am going on vacation for a bit and thought I'd let anyone who is interested play around with it in the mean time.

Just as a note, the initial load time after hitting start takes several seconds. Also, the convergence is not super fast.

[I've made an important update to the program 6:24pm Eastern US time on April 18]
Download DrawMesa.

[ 18 April 2002, 18:32: Message edited by: Micah Sparacio ]

IP: Logged
Donald A. McLaughlin
Member
Member # 57

Icon 1 posted 26. April 2002 12:46      Profile for Donald A. McLaughlin   Email Donald A. McLaughlin   Send New Private Message       Edit/Delete Post 
How is the Mesa Draw program different from or similar to Dawkin's little draw program discussed in The Blind Watchmaker? Is there a way to experiment with one vs the other to obtain any meaningful results? After all, Dawkins went to great lengths to explain how his program demonstrated that natural selection alone could produce all sorts of novel life forms. It might worth trying to run some sort of comparative study and see what develops and what the results might mean.

Donald M

IP: Logged
Micah Sparacio
Member
Member # 6

Icon 1 posted 09. September 2002 07:17      Profile for Micah Sparacio   Email Micah Sparacio   Send New Private Message       Edit/Delete Post 
MESA Long Run

This program is functionally equivalent to the normal MESA program except that it automatically runs through 100 trials at each Coupling Degree and then increments the Coupling Degree by one. This automates the process of running long trials.

I recommend starting off with a "coupling degree" of 2 and "total couplings" of 1. You can do whatever you'd like with the rest of the settings (including leaving them alone). In order to save the data and stop the run, you will need to press the "Stop" button.

Once you've pressed "Stop" a file called "mesadata" will be saved on your machine in the same directory as the MesaLongRun.jar file. This will contain important information regarding your experiment and I'd love for you to send it to me @ micah.sparacio@iscid.org

To download and run MESA Long Run, click here.

IP: Logged
Scott
Member
Member # 1222

Icon 1 posted 14. August 2004 03:07      Profile for Scott   Email Scott   Send New Private Message       Edit/Delete Post 
There is an incorrect url on the MESA - About web page located at:

http://www.iscid.org/mesa/about.php

The incorrect url is the link to the MESA Summary:

http://www.iscid.org/mesa/mesa_summary.php

The correct url is:

http://www.iscid.org/mesa/mesa-summary.php

As a Java programmer, I would be happy to contribute to this project if it is still active.

IP: Logged
Micah Sparacio
Member
Member # 6

Icon 1 posted 14. August 2004 09:15      Profile for Micah Sparacio   Email Micah Sparacio   Send New Private Message       Edit/Delete Post 
Scott,
The project has been on hiatus, but I'd be happy to talk to you about how we might get it going again and what direction we might take it.

Send me an email:
micah.sparacio[a-.-t]iscid.org

Best to you,
Micah

IP: Logged


All times are East Coast  
Post New Topic  Post A Reply Close Topic    Move Topic    Delete Topic    Top Topic next oldest topic   next newest topic
 - Printer-friendly view of this topic
Hop To:

Contact Us | ISCID

All content © ISCID and content contributor 2001-2003

The ISCID Forums are aimed at generating insight into the nature of complex systems (e.g. biological complexity, organizational complexity, etc.) and the ontological status of purpose, especially from the vantage point of various information- and design-theoretic models.

Indexed by UBB Spider Hack  |  Powered by Infopop Corporation UBB.classicTM 6.3.1.1

PCID | Encyclopedia | Brainstorms | The Archive | News | Essay Contests | Chat Events | Membership