Author Topic: Introductions  (Read 5354 times)

Offline kenstauffer

  • Bot Neophyte
  • *
  • Posts: 12
    • View Profile
Introductions
« on: May 18, 2006, 02:35:39 AM »
Hi My name is Ken. I am new to this forum, and Darwinbots. But I am not new to Alife sims.

I think that Darwinbots is filling a very important niche in the ALIFE community. A lot of the other packages are (1) Not being maintained anymore. (2) Lack a good genetic programming model (3) Are too complicated to get involved with.  When I think of ALife sims, Darwinbots is exactly the kind of thing that pops into my head. So please let me congratulate all of you on making this software available. Good job guys!

I rolled my own simple alife simulator, let me take this chance to plug it, if anybody is interested evolve 4.0.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Introductions
« Reply #1 on: May 18, 2006, 03:30:44 AM »
From all of us thanks  

Nice looking alife project, refreshing to see another simulator handling dna like DB.

Some of the features in yours like loop and broadcast sound interesting. We've been thinking about adding loops for awhile but been held up by questions about what should be done for bots that form infinite loops. How does your program handle these, are they a probelm? Does broadcast work well for co-ordinating whole organism/multi-bot actions? That's been one of DB's problem areas for just about forever; it'd be nice to be able to have them work properly.

You might want to see about setting up some sort of forum for your alife simulator. Having the forum seems like it's been a large part of DB's success.

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Introductions
« Reply #2 on: May 18, 2006, 10:48:37 AM »
Welcome to the forum, Kenstauffer. I agree with what you're saying about Darwinbots. I don't think there is much else of interest out there. There are a few things that can be interesting for awhile but I never get tired of DB, and it's a program under development. I think you got a nice program there too. I just think the bots feeding is a little weird though. Hehe. They behave like little lawnmovers that just consumes everything in their path, more than what there bodies should be able to handle. Also it whould be nice if one could run the program a little slower, like setting a frame rate or something. It's a little hard to see what is going on at the screen.  Still a neat program though.  
The internet is corrupt and controlled by criminally minded people.

Offline kenstauffer

  • Bot Neophyte
  • *
  • Posts: 12
    • View Profile
Introductions
« Reply #3 on: May 18, 2006, 11:05:07 AM »
Quote from: Endy
Does broadcast work well for co-ordinating whole organism/multi-bot actions? That's been one of DB's problem areas for just about forever; it'd be nice to be able to have them work properly.

Nothing has evolved to use this feature. And I haven't written any serious creatures yet, which is probably a mistake, as this would reveal if all these instructions (like BROADCAST) are actually useful.

Quote from: Endy
Some of the features in yours like loop and broadcast sound interesting. We've been thinking about adding loops for awhile but been held up by questions about what should be done for bots that form infinite loops.

Every successful creature in Evolve [you]is already an infinite loop[/you] because once its code terminates it is considered "dead". So even the  starting organism has a giant loop around it. The reason this is okay is each creature is simulated for 1 step (where 1 step equals 1 instruction). My undertanding is darwinbots treats 1 step as 1 evaluation of it entire genome (or is it 1 step equals 1 "cond start ... stop" block?). This difference probably accounts for the difficulty/ease in supporting loops. 'Evolve' doesn't care what a creature does with its 1 instruction during its time-slice. It won't adversly affect the rest of the sim.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Introductions
« Reply #4 on: May 18, 2006, 01:04:59 PM »
To my knowledge Darwinbots seems to be the only simulation that erxecutes an entire genome every cycle.  It has numerous benefits I think, one of which is simulationg the parallel nature of actual DNA.  As far as I can tell, the only drawback is infinite loops.

Good to see another person

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Introductions
« Reply #5 on: May 19, 2006, 04:41:29 PM »
Hmm I think the weakness of your prog is that the organisms are limited to eating,moving,growing and sporing
as only active actions that way: finding food and enemy , moving to food or away from enemy and eating food and enemy as well as reproducing on ocassion are the only challenges the organisms have to face, and these can be solved pretty forwarded.
Well I could also rant about some weaknesses in Darwinbots like that shell and slime lack the ability to fullfill more than their predefined uses, but all in all Darwinbots has many interesting facettes
(when my Dna would work like I want it to, it would be even more fun XD,yeah yeah I know I complain to much  )

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Introductions
« Reply #6 on: May 19, 2006, 05:15:00 PM »
Quote
Nothing has evolved to use this feature. And I haven't written any serious creatures yet, which is probably a mistake, as this would reveal if all these instructions (like BROADCAST) are actually useful.

I'd imagine it'd be useful. Lord knows how easy it'd make for our multibots to co-ordinate their actions. Which creature actually has the overall say in what is broadcasted? If each had a say you'd have to somehow lump all the stored values together.

Shoot, I was hoping someone had figured out the loop problem. Oh well maybe someday.

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Introductions
« Reply #7 on: May 19, 2006, 05:27:17 PM »
Give commands that could cause a loop a number of times called counter and deactivate them when this number becomes to large?

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Introductions
« Reply #8 on: May 20, 2006, 12:19:49 AM »
Hi kenstauffer.  Welcome aboard.  Great to see another ALifer.

Quote from: Numsgil
As far as I can tell, the only drawback is infinite loops.
Yea.  We don't time slice, we restrict the DNA language so that the expression of infinite loops within a given cycle is impossible.  Moving to a time-sliced architecture would essentially be a complete re-write.  Even supportting in-cycle looping with some system-enforced maximum iteration counter would be a ton of work as it violates the notion of simultaneous state inherent in the current design.  DNA looping constructs where one interaation is executed each cycle....  well, you can do that today, but its work.   We could certainly add primities to make that easier without too much effort, but looping within a cycle... I don't see that being supported anytime soon.
« Last Edit: May 20, 2006, 12:24:00 AM by EricL »
Many beers....

Offline kenstauffer

  • Bot Neophyte
  • *
  • Posts: 12
    • View Profile
Introductions
« Reply #9 on: May 20, 2006, 11:28:53 AM »
Several of ideas concerning codules made sense. Limiting codules from being called a 2nd time or just limit
call stack depth, etc...

I don't know how real life handles "loops" but it seems to definately have "reuse". I'm sure the DNA that builds my left arm is the same DNA that builds my right.  Codules (with the aformentioned limitations) should give darwinbot genomes that capability. It looks like darwinbot genomes are intended to be more a kind of functional programming rather than procedural. By this I mean, darwinbot geneomes are to be evaluated and all the results blended into a new set of behaviors for the creature. Functional languages don't normally have "loops". Prolog  and lisp for example. But they actually do looping all the time, but they use recursion as their method. It lets them claim to be functional, but still perform iterative calculations.

Looking at darwinbots I don't see where loops would be needed. The main thing it could benefit from is "reuse", which codules seems to offer. The macro idea might make sense for programmers, but then evolution could not be able to operate on the commonality.

I want to pass on my thanks to Sprotiel, he identified a huge bug in my simulator.

I would like to ask a questions:

1. How do you know if a creature is your "family" (a related offspring)? And is this related at all to racial memory?

2. How do you draw those unique figures on each bot? Is this a checksum of the genome? And how does this figure change over evolution?


Ive read a lot of these forums and the wiki, but I apologize if this has been covered elsewhere.
« Last Edit: May 20, 2006, 11:29:49 AM by kenstauffer »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Introductions
« Reply #10 on: May 20, 2006, 12:54:37 PM »
Recognizing your same species is called "conspec recognition", and the main one used is:
 
 *.refeye *.myeye =
 
 Which compares the number of .eye in the genome.  What's nice about it is that this is easily fooled, allowing for somewhat "chameleon" bots.
 
 There are also a hanful of other methods
 
 The "skin" (the various lines and things inside a bot) are strictly decorative and tell you what species a bot is descended from.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Introductions
« Reply #11 on: May 20, 2006, 02:14:13 PM »
Quote
1. How do you know if a creature is your "family" (a related offspring)? And is this related at all to racial memory?

Hi Ken and welcome to DarwinBots.

Racial memory is a hughly underutilized feature that I added quite a while back.
I figured that maybe if a certain portion of the parent's memory was copied to the offspring, it might be useful in some way to transfer usable information.
All it does is to copy a small block of memory at a rate of one memory location per game cycle and it only works as long as the birth tie remains intact.
The trouble is that pretty much all bots gain a significant advantage by severing the tie early so that they can fend for themselves. This means that in the vast majority of robots, racial memory never happens. It could be used in hive or ant bots perhaps.

The answer to your question is, It could be, but pretty much never is used for conspec recognition.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Introductions
« Reply #12 on: June 04, 2006, 03:18:30 AM »
It's possible to use it but it's really tricky. Mainly I used it to hide a recognition value for use in recognizing cheaters.

I made a species that would poison(erase) the id number stored in .out1; of any bot attempting to feed from them.

Basically this gave the bots a means to identify cannibots that mutated to eat their own family members.

To ensure the bots didn't figure out to simply continually re-store the number, I used epigenetics to ensure the number had to be passed down by family. Making it almost impossible for the bots to figure out the number before being recognized and eaten by the rest of the group.

Code: [Select]
' Gene 1
cond
start
134 971 store
' value stored into epigenetic loc then gene is deleted
.delgene inc
stop

cond
*.robage 0 =
start
*971 .out1 store
stop

Anyways they manage to survive okay, but the use of epigenetics can result in "accidental" attacks as the numbers take some time to show up in the child. Eventually they musceled up and went cannibot, but it took an amazingly long amount of time.