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 Newbie

Pages: [1]
1
Newbie / Memory shots
« on: March 12, 2006, 02:01:02 PM »
Newbie quesiton.  If I shoot a value into a memory location of another bot  e.g.

.myeye .shoot store
*.myeye .shootval store

how long does this last?  One cycle?  More?  The tutiorial is unclear on this.

If my bot references the value of that memory location the following cycle, will he get the new value or the 'real' value?

Thanks.

2
Off Topic / Web Hosting tmie again
« on: March 10, 2006, 02:51:37 PM »
I'm happy to kick in some $ whatever is decided.

-E

3
Suggestions / Compartmentalization of the Bots
« on: March 10, 2006, 02:44:31 PM »
It seems to me that the topic here may really about how we (can I say 'we' as a newbie?) go about architecting for complex 'multi-cellular' organisms which exhibit specialized regions I.e. skin cells, poision generating cells, cells dedicated to getting rid of waste, cells dedicated to motivation, etc.

As a newbie, the current state of DB seems to me to be in tranisition.  On the one hand, bots can be thought of cells, that is, as the atomic unit of DNA execution, the unit of specialization.  As I understand it, things like ties are the beginings of multi-bot, multi-cell organisims I.e. the beginnings of mechnanisms for different cells/bots to communicate, specialize and cooperate and evenutally act collectivly as a single entity.

On the other hand, bots are currently complete organisms in themselves in that a single bot can perform a whole slew of different things from movement to vision to eating to posion, etc.  Namely, it is not only possible but difficult to prevent all genes in the DNA of a bot being active all the time.

If we want to enable phenotype complexity where a skin can be penetrated, where venom producing cells have to be kept isolated from other cells, where eating the wrong parts of a organism could posion you unless you have evolved the right posion neutralizing cells, where some cells specialize in vision and others in locomotion, we need to decide what a cell is, I.e. what the unit of specialization is and what an organism is.

Personally (and this is admittedly a newbie view point) I think I would like to see the current notion of bot become the cell and thus would prefer to see investment in additional bot to bot communication and connection mechanisms over adding additional internal complexity to single bots I.e. within the single unit of DNA execution.  I would suggest keeping bots amorphous entities with no internal structure and instead create organizational and physical structure and complexity at the bot-bot level.

I imagine organism embryogenesis where organisms grow, adding new cells/bots to themselves with mechanisms to control specialization, activating or surpressing certain genes for example when a cell/bot is created.  The engine could encourage this by simulating real-world physics such as making it more costly for a cell to do multiple things, say to both generate posion and have eyes.

Its a long term goal but over time I think a muture organism consists of hundreds or more connected, communicating cells, created through embryogenesis (I think I am using that term correctly) each sharing the same DNA, each with their own parallel thread of execution that gets executed for each cycle in parallel, yet each executing only the genes within the genome that have been activated for them, each doing a specialized job which adds up to complex organism level behanvior.

Thus, I would suggest creating organism complexity at the connected multi-bot/multi-cell level is preferred to adding internal compartimental complexity to individual bots.

-E

4
Off Topic / Other artificial life games
« on: March 10, 2006, 12:20:42 PM »
Yea, Terrarium provides an environment for people to incorporate mutation into their organisms - to pass to descendents mutated vaules that can be used to create *behavioural* diversity in descendents - and then allow for compition for limited resoruces between organisms with these different behaviours to select for the most fit, but what's in the genome, the mutation of the genome and the wiring of the genome to the behaviours must be completely written by the organism author.  Terrarium provides no built in evolutionary mechanims other than the environment itself and organims basics such as a notion of species and the ability for parents to pass on data to their offspring.  What is in that data and how it is used is completely organism specific.  In effect, the concept of inheritable genes, mutation of those genes and the effect of those genes on behaviour must be wired in by the author.

Most people who write a Terrarium creature never mutate it.  They just code for the behaviour they want.   Each organimsm generation is generally identical to the last for most creatures.  Again, it's not really ALife focused but rather focused on learning C#.  You can use use it for ALife experiments - I have - and the guy who wrote most of the code (MitchW at Microsoft) has a soft spot for ALife, but its not really the focus.

One of my biggest complaints about Terrarium from an ALife perspective is that many of the fundemental organism traits are immutable compile time constants that cannot be changed from within the creature code.  Attributes such as eyesight radius, energy, size, eating speed, attack points and defense points are compile time only (authors allocate 100 points between these attributes and once they do so, there is no way to change them in the code).  This limits what is within evolution's ability to effect I.e. once a big carnivore that moves slow and can't see well, always a big carnivore that moves slow and can't see well...

One thing I like about Terrarium is the peer-peer environment.  It's easy to see how many other user machines are conencted to the same Terrarium server, how many total organims there are in the distributed environment, of which species, which creatures are doing the best from a population and number of generations perspectives and so on.  Microsoft used to run contests and give away Xboxes for acheiving certain population numbers.  It's also great fun to watch as new creatues get teleported into your Terrarium, which can often act as a local ecosystem.  A cool thing I've seen when there are sophisticated organims that cooperate with others of the same species (to gang up on preditors for example) is that different Terrarium clients connected to the same server can become local ecosystems (because the teleporter is hidden, it is quite difficult for organimsms to migrate to other terrariums in mass, thus they are often outnumbered when enterring a new Terrarium - the local residents can gang up on what might otherwise be a more successful organism, allowing weaker (but still pretty smart) species to preserve their turf) with different species mixes and different dominant species in each.  You can actually watch your organims cooperate to defend their home against randomly teleported intruders...  

I have had fun passing on genes that can impact behavoir within the constraints of the system e.g. when do I run from carnivores - at what distance, when they have what energy level, what about when I see more ethan one, etc.   You can successfully use mutation and selection to add flexability to an explicitly written organism, changing some behaviours as new organisms are authored and introduced for example, but only a limited distance in the organism space from the base phenotype.  It's great fun for coders to compete and has a nice UI and distributed architecture, but its not as flexable or as ALife focused as DB when it comes to evolving.

-E

5
Off Topic / Other artificial life games
« on: March 09, 2006, 06:45:13 PM »
I will be happy to do so once I am up to speed on DB.  As this is day 2 for me, I still don't know what I don't know and don't want to spew until I perhaps have some sort of clue what I'm talking about.  But I will certainly write something up within a few weeks.

-E

6
Off Topic / Other artificial life games
« on: March 09, 2006, 02:56:16 PM »
Microsoft's .NET Terrarium could be considerred an ALife game/program.  It was supposed to be a tool to help people learn C# and .NET Programming and showcase the ability to safly run sandboxed code written by others.  It allows people to build their own organisms and have them compete in a peer-peer environment with a rendeveuz server.  Mutation, selection, etc. is not part of the game, but inheritence, compitition for limited resources, and other key things are.  Lots of organism builders created their own evolutioary mechanisms but mostly it was about how smart a creature your could write.

Here is Microsoft's Terrarium Home Page

Unfortunatly, Microsoft has moved on to a new .NET sample app environment and abandonded Terrarium (without ever releasing the source, dammit) but there are still a few enthusists out there such as this guy:  Private Terrarium Server

DB architects, it is worth taking a look at Terrarium's object model.  They did a good job on some things such as species identification, handling death and reproduction and in particular, the peer-peer environment and 'teleporter' based exchange of organisms between user machines.

7
Newbie / Delurk
« on: March 09, 2006, 02:18:25 PM »
Yup, I hear ya.  Eventually, I'd love to see both atomic instruction level and module 'area' level mutation encoded inside the genome but I fully understand how the latter is more involved.  Perhaps it may fall out of future work on sexual reporduction as that may necessitate a stronger notion of module or gene cluster for the purposes of meaningfull recombination.

Give me a week or two.  I'll re-read Lynn Caporale's 'Darwin in the Genome', take a look at the C++ code, then offer up a concrete proposal and perhaps some code.

-E

8
Newbie / How did you find DarwinBots?
« on: March 09, 2006, 02:08:18 AM »
I actually tried to shoe horn some ALife stuff into Microsoft's .NET Terrarium, but they stopped supportting it and never released the source code, so I went looking for other ALife programs.  Found Tierra, then Avida, even played with Tom Ray's new 3D sim stuff that looks a lot like Karl Sim's work from when he was at Connection Machines.  Finially found DB off Google.

9
Newbie / Delurk
« on: March 09, 2006, 01:44:54 AM »
Thanks, saw the forum.  I'll cut and paste.

On a completely different topic, is there an ETA for allowing the encoding of the mutation rate to be part of the genome and for allowing selection to operate independently on the mutation rate for different parts of the genome?  Excuse the verbosity so that I may be as clear as possible.  If memory serves, in biological DNA, there are different ways to code for the sme amino acid I.e. different 3 letter sequence encodings can code for the same amino acid, ultimatly producing the same phenotype - they have no impact on expression or behaviour - yet the different encodings have different probabilites (by orders of magnitude) of introducing errors during copying.  Such a mechansim allows for selection to operate on the diversity of encodings I.e. on the mutation rates of different parts of the genome such that where it is favorable for organims to have hot spots of mutation in their genome (such as the chemical make up of the posion secreted by cone snails, which can vary from one generation to the next) evolution has selected for those sections of the genome being encoded in ways where the mutation rate is higher.  Where stasis is favorable, those portions of the genome are selected to be encoded for a lower probability of copy-induced mutation.

From what I've read, the realization of the role this mechanism plays in "self selection" of mutation rates is relatively recent, yet I think it is critical for providing a means for adaptations to occur more quickly when needed and stability to persist where stability is needed.  That is, that the mutation rate can itself be operated upon by selection and that different parts of the genome at different granulatiries can have their own independent mutation rates that get selected for independently is IMHO a not well known yet very important mechanim.  I'd love to see it in DB.

I've seen a few posts related to this idea in my cursory browsing, but can't find them at the moment.  One can imagine a mechanim where say, each sysvar had multiple underlying numbers which mapped to the same program behaviour.  Different numbers wouldn't impact the bot behaviour, but would impact the probability of a mutation at the location in the genome.  A similar mechanim could operate at the gene level, impacting the probability of gene copying, deletion, etc. This would be in addition to the "external" cosmic ray mutations currently in the system.  If done right, I think this would allow bots to converge on their own favorable mutation rates for different parts of their genome.

Eric

10
Newbie / Delurk
« on: March 09, 2006, 12:06:41 AM »
Hey there.

Okay, first things first.  DB rocks!  I have wanted to do something similar for years since I saw Karl Sim's Connections Machines demos in the 90s!  I've played with Avida and Tierra and even written a few thousands lines of mutation and selection code for Microsoft's .NET Terrarium, but those are either too acedemically focused or not focused on ALife.  I must say that DB is smack on what I've been looking for.  Well done guys.

Okay, second, is there a active Internet FTP bot location for sharing bots?  I have 2.37.6 up and running and would like to just watch different bots from different authors while I learn the language but neither the FTP site in the code nor the IP address in the Internet forum seems to be live.

Again, well done.  I look forward to authoring my own bots and playing around with 2.4.  Yes, at some point I can help with the code too.

Regards,

Eric

Pages: [1]