Author Topic: How Long To Wait For Children to...  (Read 13714 times)

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
How Long To Wait For Children to...
« on: March 07, 2005, 09:04:56 PM »
How do I make a parent bot pass on its memory locations to its children?
I heard I have to wait n cycles? How long do you have to wait for children to get the parent's memory locations? n = ?

Do I have to add some special code so those memory locations will be copied?

Also, I heard that there is a certain range of memory that does not get copied, what's that range?

 :sleep: Bau  :sleep:  :help:
« Last Edit: March 07, 2005, 10:16:39 PM by Numsgil »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #1 on: March 07, 2005, 10:16:25 PM »
Memory locations 971 through 990 are copied.

This was added in 2.32.  Here's the readme entry:

5  Racial memory. During the birthing cycle, baby robots copy certain information from the memory of the parent. The copied locations are 971 through 990 and one location is copied each cycle after the 20th cycle of the birth tie. Robots who cut their gestation periods short will miss out on the valuable opportunity to pass on vital information to their offspring.

Someday I'll get to removing or shortening this 20 cycle wait period.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
How Long To Wait For Children to...
« Reply #2 on: March 08, 2005, 01:24:15 AM »
That'll be nice, considering that it can cause share feeding parents to kill their own children whenever birth-tie seperation doesn't occur correctly.

Endy B)

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
How Long To Wait For Children to...
« Reply #3 on: March 08, 2005, 02:33:27 PM »
Thx Num

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
How Long To Wait For Children to...
« Reply #4 on: February 09, 2006, 09:49:59 AM »
I read this on the WIKI, what about it? Is this 2.4 only or 2.37 also?

A catch to using racial memory is that the memloc needs to be empty prior to the information being coppied. 971 would need to be 0 for the parent to transfer it's value.
Link to WIKI article on racial memory

Thx in advance :)

Henk

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
How Long To Wait For Children to...
« Reply #5 on: February 09, 2006, 10:12:04 AM »
Hmm

Interesting.

That doesn't really make sense. If memlocs 971 through 990 are zero in the parent then no data will be transferred since there is nothing there to transfer.
Therefore it is a prerequisite that the parent needs something there to make use of the feature.

In the baby, the values in those memlocs will always be zero at birth so unless the DNA specifially puts something there at a very young age (probably overwriting any transferred data) there is no reason why we would even need to consider the catch

There is nothing that I am aware of in the code that prevents writing to a non-zero memory location. More likely, the values that are copied could be overwritten by careless DNA programming.

What you would need to do is to prevent baby from writing to those memory locations until he is at least age 21 and also check for zero values present before writing information. It should all work just fine then.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #6 on: February 09, 2006, 11:43:48 AM »
I noticed that the other day too, and I'm not sure what it means.

Stranger still, I went to see who added that line, and I think it was me (IP address, no s/n).

I have no idea personally.  Someone should find that bit of code and figure out what the heck me/whoever was talking about.

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
How Long To Wait For Children to...
« Reply #7 on: February 09, 2006, 01:58:26 PM »
« Last Edit: February 09, 2006, 01:59:05 PM by Griz »
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #8 on: February 09, 2006, 04:53:24 PM »
ah, then Endy must know what he meant :P

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
How Long To Wait For Children to...
« Reply #9 on: February 09, 2006, 05:00:36 PM »
Yeah that was me. Found it out working with various epigenetic bots. The main problem is that the earlier epigen systems I was using would always activate at age zero. Before the parent could transfer it's values...

Now I use .delgene inc to delete the first gene after the first bots have stored their initial epigen values. To reset for the children in case the parent dies prior to transfer, I'll use something like *.robage 40 > to prevent any accidental overwrites. I think I've got an epigen bot somewhere in the bestiary :)
« Last Edit: February 09, 2006, 05:02:27 PM by Endy »

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
How Long To Wait For Children to...
« Reply #10 on: February 10, 2006, 11:32:26 AM »
Here's your epigen bot Endy:
A Family 2

Maybe you could use racial memory for doing interesting things with antbots

Or you could use it to allow a bot to see how many cycles have passed since the start of the sim:

Sounds like there's some interesting things that you can do with this.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
How Long To Wait For Children to...
« Reply #11 on: February 10, 2006, 04:48:09 PM »
There he is :D

There is a way to make a timer(though Nums new sysvar is much easier I imagine). You inc one of the epigen values whenever it is not zero, when it reaches some number you set it to one again.

I think you could theorectically make a complete mini clock using these although I've never actually tried :lol:

Still haven't figured out some of the tricks to using it myself. It works well enough to find the most useful values for just about any settings, allowing bots to randomize some of their values and allowing natural selection to sort out the fittest. What I'd like to figure out is how to make a bot more like the real thing, able to go from one genotype to multiple phenotypes and back to one genotype again.

I'm thinking there's also some sort of time rule on wether to use dna or epigenics; dna seems better for long term stability while epigenics allows short term flexability.

I think the ant's in/out usage already counts as a form of epigenics. The only real definition is the ability to pass on learned information from parent to child.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #12 on: February 10, 2006, 05:56:57 PM »
Makes you wonder how much of real organisms' characteristics, especially higher animals, are epigenetic in nature.

If you isolate some human babies in a room with each other, with no outside intervention (though you somehow give them food and water, etc.) will they develop language on their own?

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
How Long To Wait For Children to...
« Reply #13 on: February 10, 2006, 06:20:20 PM »
Nums:
Hmm, science fiction seems to love the concept of a genetic memory - a child would have all the memories of all that came before it. Neat idea. You wouldn't need to learn the basics of anything - you would posess all the knowlage of your entire species, no need for school. You would be partially immortal (arguably better than immortality because you don't get aged immortals clogging up the planet) since all your memories would live on in your children. There would be no need to investigate history since you could simply remember all of your species' history.

Endy:
DNA and epigenetics, hmm. How about having a bot with a long and redundant genetic code that 'switches on' and 'switches off' genes randomly and 'trades' genes. Similar to what bacteria do in real life with plasmids. I made a virus to 'spread genes' but it ended up rather sticky  :wacko: :

Code: [Select]
cond
start
*.genes rnd .mkvirus store
150 .vshoot store
stop

I was trying to artificially accelerate evolution but I just ended up with evil super-plants  :evil:  :evil:  :evil:

How about trading genes using viruses, with 'install code' in each gene that:
1) Prevents non-conspecs from actvating the gene
2) Deletes the gene that it's supposed to replace (each gene has a corresponding  memloc telling the other genes where it is using *.thisgene)

Horisontal gene transfer would prevent muller's ratchet and help evolution along

Just an idea  :D

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
How Long To Wait For Children to...
« Reply #14 on: February 10, 2006, 10:53:21 PM »
Yeah, I've had my own super evil plants :evil:  Nasty things, wiped out my whole population.  :lol:  Before the extinction though the bots did start showing signs of horizontal gene transfer :)  I was able to watch multiple bots from divergent lines become canni's(a "better" form) simultaneously. I also saw signs of selfish gene transfer going on, forever reproducing bots spreading their "defect" to others.

Quote
1) Prevents non-conspecs from actvating the gene

Now this is a great idea. It would take a little bit of work but maybe adding:
Code: [Select]
*971 .out1 store
and
A B *.out1 sgn mult store
would do the trick. Using epigenics to set out1, ought to keep the veggies from using the genes for a long while at least.

Quote
2) Deletes the gene that it's supposed to replace (each gene has a corresponding memloc telling the other genes where it is using *.thisgene)

Tricky to manage unfortunatly. It's next to impossible to tell which gene is which from inside the dna. Could just delgene a random gene whenever genelen is greater than initial. That would maintain the size, just not sure what other effects it would have...

Quote
Makes you wonder how much of real organisms' characteristics, especially higher animals, are epigenetic in nature.

If you isolate some human babies in a room with each other, with no outside intervention (though you somehow give them food and water, etc.) will they develop language on their own?

I think they would develop the basics. Fortunatly the knowledge can be learned, so if it's been learned once it's possible to learn anew.

I think as mamals in general we use epigenetics to add like another layer of coding above the dna. The dna serves as a sort of template and the epigenetics as a sort of super template.

I think memory has to be impermanent, its more designed to cope with a rapidly changing world than to keep track of past events. I think memory basically takes experiences and compresses them into a simpler form. We can easily transmit these nuggets to others but not the entire memory. As individuals and a species we keep the most important recent information, but the older/less useful info is lost.