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

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
How Long To Wait For Children to...
« Reply #15 on: February 11, 2006, 11:48:47 AM »
Quote
There would be no need to investigate history since you could simply remember all of your species' history.

There is a pretty big flaw in this concept.
Babies would only be able to remember stuff that happened directly to their ancestors. For example I was born in England from English parents so I would know nothing about the American Civil war or the abolition of slavery or Samarais in Japan.

What you end up with is not the sum of all knowledge but a bunch of branches all leading in different directions and all remembering back to a common ancestor. An incredibly sucular society in which particular knowledge and skills are passed down certain bloodlines. Imagine if only one blood line knew the way to make a certain weapon and others conspired to wipe out that bloodline so that the weapon could not be made any more.
Lost technology.

Definitely the realm of Science Fiction.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
How Long To Wait For Children to...
« Reply #16 on: February 11, 2006, 01:54:38 PM »
Yeah, that's a good point. You'd probably end up with many feuding lineages, which are only allowed to have one heir so as not to split the line.
How about genetic memory with telepathy and a hive mind  :D

Imagine the DNA length though  :wacko: you'd need rather alot of base pairs

I once read a book with a similar idea. Rather than a genetic memory the aliens shared memories via special nodules that contained memories. The nodules could be removed and eaten by another one of the aliens to pass on memories.


Speaking of memory, is it possible, or even practical or advantageous, to create a bot with a memory?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #17 on: February 11, 2006, 03:05:24 PM »
I think it's possible, but exactly what would you remember?

You could remember what defenses and attacks the enemy's using, and adapt appropriately.  I believe that's what Excalibur or another one of Lights' bots does.

Beyond that, I'm not sure.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
How Long To Wait For Children to...
« Reply #18 on: February 12, 2006, 02:20:37 AM »
Sounds like the idea about communicating bots. It's simple enough for them to communicate easily some 27 "symbols" or a whopping 2187(2.4) just via in/out and memloc/memval.

Same question though, what should they talk about? :wacko:

Most of the bots we make have been mainly action/reaction based while trying to keep all defenses at a maximum level.

Perhaps with a memory a bot could direct defenses better. If it knows that it is likly to be attacked with a particular shot type, it could increase the amount of substance counter it has.
« Last Edit: February 12, 2006, 02:25:39 AM by Endy »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #19 on: February 12, 2006, 03:08:29 AM »
You could use memory to determine (not easily mind you) the conspec recognition system of your foe.

For instance, try mimicing memloc/memval pair.  If the other bot still attacks you, you know that's not working.  You could try using the Umbrella Draconis method, and modify the myeye variable.  If that doesn't work you could try mimicing the in/out method.

Once (if) you figure out the method, you can mercilessly exploit it, even pass it on to others.

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
How Long To Wait For Children to...
« Reply #20 on: April 18, 2006, 07:03:18 PM »
I just do not get it, first I tried to pass on a location did not work, then I tried to inc 971 in each generation
but it stay 1 regardless of generation, just how is this supposed to work?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #21 on: April 18, 2006, 07:13:30 PM »
Let me go hunting through the code to see what I can come up with.

Okay.

PY apparently decided to stash this neat little feature inside the function that handles tie forces (specifically making ties longer and shorter - tielen).

The function was overhauled as part of the physics in 2,4, and so the feature was inadvertantly lost.

It will need to be reimplemented in 2.4 (and please don't stick it in with TieHooke )
« Last Edit: April 18, 2006, 07:13:53 PM by Numsgil »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
How Long To Wait For Children to...
« Reply #22 on: April 19, 2006, 10:56:33 AM »
Quote
PY apparently decided to stash this neat little feature inside the function that handles tie forces (specifically making ties longer and shorter - tielen).
I did??  

Why would I do that I wonder?

Is it in the section of the routine where the birth ties are handled? let me go check a minute.

Yup. It's in "Linklen" in the physics module. Right in the section where birth ties have always been handled.

Here's the code (from 2.37.6) if anyone wants it.
Code: [Select]
            If Abs(rob(t).Ties(j).last) > 1 Then
              rob(t).Ties(j).last = rob(t).Ties(j).last - Sgn(rob(t).Ties(j).last)
              If rob(t).Ties(j).last > 47 And rob(t).Ties(j).last < 68 Then 'should copy the memory locations 971 to 990 from parent to child. One per cycle.
                If rob(t).mem(1038 - rob(t).Ties(j).last) = 0 And rob(rob(t).Ties(j).pnt).mem(1038 - rob(t).Ties(j).last) <> 0 Then
                  rob(t).mem(1038 - rob(t).Ties(j).last) = rob(rob(t).Ties(j).pnt).mem(1038 - rob(t).Ties(j).last)
                End If
              End If
            End If

Seems like about the only place in the code where it would work properly, especially since all the birth ties have always been handled in this routine. can't believe it took us all so long to figure out where it was located.  

Stifftie is in this routine too  
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
How Long To Wait For Children to...
« Reply #23 on: April 19, 2006, 02:05:30 PM »
2.42.3 will have this functionality added.  I need to ask couple of newbie questions to make sure what I do matches expected behaviour.

Q) How long should birth ties last by default?  The code in 2.4 says 100 cycles.  Is this right?  I thought I read on the wiki somewhere that birthties should last 20 cycles.

Q) When should locations 971 to 990 should be copied from parent to child?  Over the first 20 cycles of the child's life?  Over some other 20 cycle period?  All at once?    The code above seems to indicate that this should occur over the period when the child is between age 33 and 52 cycles.

Nevermind.  I just read the rest of the thread.
« Last Edit: April 19, 2006, 02:18:45 PM by EricL »
Many beers....

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
How Long To Wait For Children to...
« Reply #24 on: April 19, 2006, 02:22:43 PM »
Quote from: EricL
2.42.3 will have this functionality added.  I need to ask couple of newbie questions to make sure what I do matches expected behaviour.

Q) How long should birth ties last by default?  The code in 2.4 says 100 cycles.  Is this right?  I thought I read on the wiki somewhere that birthties should last 20 cycles.

Q) When should locations 971 to 990 should be copied from parent to child?  Over the first 20 cycles of the child's life?  Over some other 20 cycle period?  All at once?    The code above seems to indicate that this should occur over the period when the child is between age 33 and 52 cycles.

The ties(j).last value starts out at 100 and is reduced by one point per cycle until it reaches zero.

That part of the program is intrinsic to birth ties and has always been in Darwinbots in exactly the same form. Birth ties last 100 cycles, then disappear. Normal ties harden after 20 cycles.

The memory transfer in the code I gave above, starts with ties(j).last at a value  of 68. (Can't think why I used that value   ) and continues till it is 40. This represents 32 and 52 cycles after birth respectively.

I see no reson that this couldn't be made to work at cycles 1 till 20. Just substitute  99 and 79 as the "last" values.
Even better, allow this 20 cycle window to be user definable, starting at cycle 1 (last=99)  to cycle 80 (last =19)
« Last Edit: April 19, 2006, 02:23:38 PM by PurpleYouko »
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 #25 on: April 19, 2006, 02:29:36 PM »
I also vote in favor of memory being copied during cycles 1 through 20 instead of after.

In fact, I see no reason why in later versions (C++) we couldn't expand this to be a memory location each cycle.  Say 901 through 1000.  You'd have to move some sysvars around but that's not a huge deal at all.
« Last Edit: April 19, 2006, 02:31:51 PM by Numsgil »

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
How Long To Wait For Children to...
« Reply #26 on: April 19, 2006, 02:34:21 PM »
I have no problem figuring out what code does or making it do what I want it to do.  What I have problems with is figuring out what others actually want it to do.

So, should it be cycles 1-20 in the offsprings life or should I emulate 2.36.7 and make it cycles 33 through 52?  Or perhaps make it happen instantly as Nums seems to suggest earlier in this thread.  Any of these is trivial to implement.  Just tell me which people prefer.

I think it is inadvisable to make it user configurable.  People seem to have problems enough with user definable settings complaining for example, about how waste causes them problems in 2.4X where simply setting the waste threshold to 32000 would disable the feature.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #27 on: April 19, 2006, 02:36:22 PM »
I think cycles 1-20 is best, otherwise no one's ever going to use it (liek before).

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
How Long To Wait For Children to...
« Reply #28 on: April 19, 2006, 02:58:34 PM »
Then that is how I will do it though I'm sure someone someday will complain that their 2.3X genetic memory bot doesn't work quite as they expect in 2.4x...
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How Long To Wait For Children to...
« Reply #29 on: April 19, 2006, 03:36:23 PM »
I don't think you have to worry too much about that since Endy is about the only person who tried using it successfully.