You need to distinguish between microevolution, which is variation among existing genetic data, and macroevolution, which is creation of new genetic data. So-called beneficial mutations always inolve a -loss- of genetic data and are not beneficial in a global sense, just for certain specific conditions. Case in point: Sickle-cell anemia and malaria.

It will probably be most realistic to start with several types of animal, each able to vary a small amount each generation according to size, speed, (and as a result, food intake), ferocity, gestation period, color, etc. within certain maximum limits. Then once this core is worked out, along with the interactions between the various types, you can add mutations that help or hinder according to certain conditions. If, for instance, your animals were susceptible to malaria, those with sickle-cell anemia (even though it weakens the animal overall) would tend to live longer and would eventually become most of the population. Remove the malaria factor (perhaps the frogs reproduce and kill the mosquitos?) and sickle-cell anemia will quickly die out. Or if birds tend to eat white moths and not black, black moths will quickly take over (incidently, the whole pepper moths thing was a hoax - the moths pictured in those photos were planted on the trees).

Basically, you need to reduce your animals to a list of certain characteristics and corresponding limits. Then define each mutation in terms of these characteristics. A missing leg would cut down on speed and body mass; that missing speed might make the difference between being caught by a faster animal and getting away, or the missing mass might mean the difference between starvation and survival for the animal that eats it.

Check out Spore, the Maxis computer game:
http://www.spore.com

This is going to be a very pretty version of what you're trying to do.


In reply to Re: Using Perl to simulate evolution. by TedPride
in thread Using Perl to simulate evolution. by Mychael

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.