Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - EricL

Pages: 1 ... 3 4 [5] 6 7 ... 151
61
Bugs and fixes / 2.44 Released
« on: September 20, 2008, 08:02:41 PM »
This topic is just a place for me to keep track of the changes I make from one version to another, in this case from 2.43.1M to version 2.44. It is not the complete list of stuff in the next drop (yet) just the stuff I have completed to date. I will edit this post as I complete changes and start a new topic for each new release.

If there is a link to an interim release attached to this topic, it is a stable buddy drop which you are encouraged to try. Such 'between release' exes will have letters following the release version e.g. 2.43a.

If you have feature requests or bug reports for this version, please report those as separate topics in the Bug Reports forum and be sure to include the specifc version, a complete description of the behaviour and how it differs from what you expect and if possible, an attached sim file.

1) Lots of bug fixes.
2) New automated species forking capabilities.  Uses genetic distance and generational distance (see below).  When automatic species forking is used, species are forked once the maximum genetic distance and maximum generational distance for the species exceeds the values set in this dialog.  Note that setting values below 100 for either of these can result in species proliferation.   Note also that a species must have at least 10 members to be forked.  A future version will allow this value to be human modified.
3) New Genetic Distance (Maximum) graph replaces Subspecies Distance graph.  This graph displays the maximum genetic distance within each species.  The genetic distance is the number of mutations separating two extant bots.  If two extant bots A and B are of the same species, ignoring the case of sim startup, they share a most recent, common, perhaps long dead ancestor bot C.  The genetic distance between bots A and B is the sum of the number of mutations that have occurred between bots C and A and the number of mutations that have occurred between bots C and B.   The maximum genetic distance for a species is the number of mutations separating the two most distantly related bots (as measured by number of mutations) in the species.
4) New Generational Distance graph.  This graph is similar to genetic distance except that it measures generational distance.   Generational distance is the number of generations separating two extant bots.  If two extant bots A and B are of the same species, ignoring the case of sim startup, they share a most recent, common, perhaps long dead ancestor bot C.  The generational distance between bots A and B is the sum of the number of generations that have occurred between bots C and A and the number of generations that have occurred between bots C and B.   The maximum generational distance for a species is the number of generations separating the two most distantly related bots (as measured by number of generations) in the species.

2.43.1m Download

5) Lots of bug fixes related to speciation.
6) Speciation criteria now include minimum species population.
7) Species can now be renamed via the Species tab on the options dialog.


2.44 Download

62
Bug reports / IM Forces DBII to crash RESOLVED 2.43.1M
« on: September 20, 2008, 07:43:00 PM »
Versions prior to 2.43.1m had a bug where the Internet Populations dialog would cause the sim to crash if the number of internet species exceeded a certain number (66 I think).  This had not manifested itself until recently when I started testing the new species forking code in 2.43.1m in internet mode which created a ton of species which in turn caused other sims running in IM to crash.  2.43.1M fixes this.  It's out now.  Have fun!

63
Simulation Emporium / Ways to increase natural selection?
« on: September 15, 2008, 12:23:56 PM »
Quote from: Shasta
Thats really cool. I can see that being really handy in evo sims. But, is 30 mutations enough? When I ran a zerobot sim there were thousands of mutations before anything reproduced, that graph might get pretty cluttered.
In 2.43.1m, species can be forked either manually or automatically.  There's a new dialog where you set options for what attributes should be used to declare new species.  It contains a "fork now" button for one time forking as well as an option for automatic forking where the code will automatically fork species, checking every 100 cycles if the criteria for forking have been met.

In either case, the decision to fork species can be made based upon the maximum genetic distance within species, the maximum generational distance within species or both.  Maximum genetic distance as I'm using it is a bit of a misnomer in that is not an exact computed genetic distance.  I am not examining extant genomes and computing genetic distance.   Rather, I'm using ancestor lists and thus the maximum genetic distance is really the number of mutations that separate the genomes of the two most distantly related (based on genetics) individuals in the species.  Generational distance is the number of generations separating the two most distantly related individuals (based on ancestral relationship).  

Consider two extant bots of the same species, A and B.   Since they are of the same species, they have a most recent common ancestor.  Lets call that bot C.  Let's say bot C is 20 generations back for bot A and 25 generations back for bot B (the generation time on B's side of the family has been shorter for whatever reason).   45 generations separate bots A and B.  That is the generational distance.    The genetic distance (as I'm using the term) is the sum of the mutations that have occurred along both lines of descent, from C down to A and from C down to B.

A new species can be said to have come into existence when a single species splits into two or more separate and independent lines of descent.   Drift and/or selection works to separate the genomes on the lines of descent over time.  If they don't die off, at some point they can be said to have forked and to have become separate species.  The new dialog allows the human to specify when a new species should be declared for the purposes of separate tracking via the population and other graphs based on generational distance and/or genetic distance.  

New graphs for maximum genetic distance and maximum generational distance in 2.43.1m allow you to watch this happen for all species and tune your speciation settings accordingly.   With either graph, a species value that greatly exceeds those of the others is a clear indication that speciation has occurred within that species I.e. that multiple independent lines of descent exist within the species.  In future versions, I may provide the option to detect this and fork species automatically based on these relative measures rather than specific human-specified trigger values.  e.g. fork a species once it's maximum genetic distance reaches 10X the average for all other species.

The weather is still really nice here in Seattle, so my DB coding time has been limited, but it looks to turn crappy later this week at which point my time working on DB should increase.  Hopefully should be able to release this relatively soon.

64
Simulation Emporium / Ways to increase natural selection?
« on: September 13, 2008, 01:06:16 PM »
FYI, here's a screen shot showing co-existence of multiple species over time.  Granted, the duration shown is only 10k cycles, but you can see the relative populations of most species remain fairly stable.  Near the end, on species (Seasnake 1 4759)  can be seen making significant gains at the expense of the others.   Note that the coordinated up and down fluctuation is due to auto-costs.

New species were created via the new auto-forking capability when the genetic distance between individuals exceeded 30 mutations.

65
Simulation Emporium / Ways to increase natural selection?
« on: September 11, 2008, 03:38:18 PM »
FYI, I managed to get a couple of hours to rub together today and I implemented auto-species forking based on genetic distance for 2.43.1M.   I also implemented a Max Genetic Distance graph which shows you the maximum genetic distance between individuals in a species.

66
Simulation Emporium / Ways to increase natural selection?
« on: September 11, 2008, 01:37:53 PM »
Quote from: ikke
Issue is that every strain competes for the same niche. If there are different niches (food availability, rules) different strains evolve in the different niches without being able to outcompete each other. You may even see strains being able to cling onto life on the border caught between lad and water. ruling neither, but surviving in both
Exactly.  When I say our sims are too small, too simple, etc. I mean that we don't have a rich enough environment to support lots of niches to facilitate this multi-specialist co-existence in proximity.  Adding additional environmental complexity to facilitate diversity of niches is one of the main thrusts I want to work on over the next year...

67
Simulation Emporium / Ways to increase natural selection?
« on: September 11, 2008, 10:59:34 AM »
One thing you can do is create geographic isolation - pockets where diversity can evolve with minimal (but some) migration between them.  Do this by running larger fields, making your sim non-toroidal, using multiple teleporter-connected sims and/or or using shapes to create barriers to founders.   This lets species come into contact gradually and might perhaps allow them, once evolved, to evolve a means for long term co-existence instead of having every individual mixed in with every other.  Maybe.  A so-called weaker species might still defend a niche effectively against a "stronger" species, particularly if it has the strength of numbers on it's home turf.

68
Simulation Emporium / Ways to increase natural selection?
« on: September 10, 2008, 04:02:24 PM »
Quote from: Gantolandon
Sounds good. It's just hard to do this, when the population begin to die out too fast. I tried divine interventions, but there were not much I could do.
Attempting to create a stable, mature, multi-species evo-sim using hand-coded bots as a starting point is the very definition of intelligent design and creationism.  It should not be surprising that it doesn't work.  Complex eco-systems are the end result of long long long periods of evolution and co-evolution.  It extremely difficult if not impossible to create something sophisticated and balanced like this out of thin air using authored organisms.  

Evolving a balanced evo-sim takes lots of time.  If you start with anything other than zero-bots, then the sim has to get simpler before it can get more complex.  What I mean by that is that all that useless, hand-authored logic (useless in the eyes of selection) has to be evolved away before selection can really begin to evolve real complexity and diversity of species.


69
Simulation Emporium / Ways to increase natural selection?
« on: September 09, 2008, 06:32:00 PM »
Welcome Ganto...

I tend to be a broken record on this subject, but part of the problem is our notion of "species".  Hand-authored bots of the same "species" only respect one another (presenting the illusion of a species) because they are coded to do so, but in reality, they are not a species in the sense that we use that term for sexually reproducing organisms, even on the first cycle when they all have the same exact genome.    Recognition of likeness for the purposes of reproduction is meaningless in asexually reproducing populations.   There is no gene flow between them except for direct line of descent.  It's little wonder that hand-coded bots in an evo sim go cannibalistic in short order.  Selection favors this since it conveys such a huge advantage to the first bot to violate the fragile and artificial (from selections point of view) conspec code.  

In evo sims, after a while, what appears to be a single species is in fact several (or better yet, hundreds) as the hand-coded conspec code breaks down and new systems evolve.  In an asexually reproducing population, the whole notion of species is suspect and may not even be relevant.  Sure, it helps to be able to recognize your offspring and not eat them, but families do not tend to group or otherwise remain in proximity and there are much easier ways for selection to avoid eating your young than conspec code.   One common way is simply not to eat (or not to be very effective at eating) heterotrophs at all.   There is no need for conspec recognition at all in a population of asexually reproducing herbivores.  All that is necessary is autotroph recognition and even then, it need not be explicit.  It could be as simple as just being a really really bad feeder when it comes to feeding upon others of similar genomes.  You may try to shoot or tie feed off your offspring or parents, but because you are so ineffective at it (they have slime or shell or similar) at least when you try it against others of similar genomes, the only things you end up really feeding off of are dumb plants.

Our genomes are too simplistic, our sims too small, our environments too simple.  There is little need for coordination between individuals and thus little reason for a bot to recognize others it might be related to as long as there is some mechanism at work, no matter how crude (like being a bad feeder) that serves to favor others of similar genomes.  

So, in most evo sims, I suspect there is more diversity then one might expect.  I have seen larger sims maintain independent families or "lines of descent" (a better term IMHO than "species" in asexually reproducing populations) for 100's of thousands of cycles.

You might try forking the species (use the Make New Species option) occasionally starting with the "Best Bot" and see how long the different families co-exist.  Family lines will eventually die out at some point as they get competed, even if families do not directly prey on one another, but you might find this takes much longer than you think.  These different families, while they co-exist, can be thought of as different species if you like since there is no gene flow between lines of descent (absent viruses).  

FYI, I will likely automate species forking in a coming version.

70
DNA - General / A condition in one gene is having effect on another?
« on: September 08, 2008, 12:09:27 PM »
Quote from: Peter
Some way all multibots just tend to be very breakable becouse of version changes.
I would be interested in understanding what specifically broke.  It is my goal to minimize or eliminate unintentional version-to-version compatibility differences.

71
DNA - General / A condition in one gene is having effect on another?
« on: September 07, 2008, 03:19:55 PM »
By removing that line, you are changing the value of *.myeye from 1 to 0.  As Endy said, since *.refeye is not updated on the first cycle of life, it will always be 0 when *.robage is 0.  Thus, removing that line in the first gene has a direct impact on whether gene 4 fires or not and thus on whether the bot creates a tie to replace the birth tie or not and thus on whether the bot becomes a multibot or not.

72
DNA - General / A condition in one gene is having effect on another?
« on: September 07, 2008, 01:07:34 PM »
// is not really supposed to be used as a comment indicator.  As it is, it only works on whole comment lines, not inline.   That it works at all is an unintended side effect of another feature I.e. saving hashes into saved bot files.    

The code ignores lines that begin with /? (where ? is any character except #) but it does not ignore them if they are inline.  Look at the DNA of one of your bots in the properties dialog and you will see the code attempting to parse the comment.  

The only official comment delimiter is '.


73
Suggestions / Let DB stay inside the toolbar.
« on: August 26, 2008, 11:01:56 AM »
Ah, okay.  I'll dig into it.

74
Suggestions / Suggesting a cost for .fixpos
« on: August 26, 2008, 11:00:55 AM »
 

mmmmmm.  coffee....

75
Suggestions / Let DB stay inside the toolbar.
« on: August 25, 2008, 05:45:06 PM »
Does it happen with other programs or just DB?

DB isn't making this happen.  There is no code in the program to handle mouse over events on minimized windows.  I suspect you have Clicklock enabled.   Look at your mouse settings in the Control Panel...

Pages: 1 ... 3 4 [5] 6 7 ... 151