Author Topic: .sexrepro  (Read 9474 times)

Offline AZPaul

  • Bot Builder
  • **
  • Posts: 76
    • View Profile
.sexrepro
« on: March 21, 2005, 03:23:13 PM »
Howdy there.

Some suggestions for .sexrepro

1.  Should be .eye5 function only.  

     When the DNA activates .sexrepro the bot in the .eye5 field should be the one used for the gene mix.  If .eye5=0 then nothing should happen. This would be a big bad bug on the bot maker's part but you will need to guard against a programming crash should (when) this happen(s).

      Maybe a condition (would need to be documented well) is that .sexrepro will only work if the .eye5 value is >= 80 (or 40 or 95 or whatever) forcing the bot maker to make the bot cozy up to its intended mate.  This then gives the intended mate some opportunity (maybe) to "refuse" mating (run away) depending upon DNA determined sexual selection criteria. Yah, I know, the intended victim ... er, mate may not even see her coming after him. That would be a bot maker concern not a programming concern.


2.  Species selection.

     Except for autotroph/non-autotroph taboos, all partner selection should be left to the bot maker manipulating DNA to achieve .eye5 approachs.  This will allow mating simulations between sub-species (and I suppose between disparate species if that's what the bot maker wants.  Come to think of it maybe some wierd bot maker wants to do an A/Non-A mating.)

     I use .ou1/.out2 and a free mem cell as the "species ID." A condition of mate selection (for my bots, may be different for other bot makers) is that one of the three match my own ID.  This will allow simulating geographic separation of groups from the same species coming together as sub-species cousins after x generations. Programming code should not interfere with this selection in any way.

     This also allows my use of sexual selection criteria (free mem cells values) to simulate longer/shorter tails, brighter/duller colors, bigger/smaller boobs, or whatever, within the conditionals part of the .sexrepro gene.  

     Again, all species selection should be DNA driven without programming restriction.

3.  Male/Female designation.

     Leave these up to the bot maker as well. Again, I use a free memory cell as a sex indicator and populate that indicator when Junior/Junioress is hatched.  This acts as a switch to turn on/off different genes. Even though designated males have the .sexrepro gene only females can activate it.  Even though the female has the "velocity penalty for tail length" gene, only in the male will it be active.

4.  Gene Mixing

     Strictly under program control. We now have the two parents (genomes). All genes in the newly created genome are randomly selected from the parents (with attendant mutations as determined by the mutations sections of the program.)

     Designate parents as 1 and 2.
     For gene #1 generate n = random 1 or 2.
     Take gene #1 from parent(n).
     Apply mutation rates from parent(n)
     Place in new genome.

     Repeat for all genes. If (as may occur) some parent has an extra gene the random 1 or 2 will determine if the extra gene (mutated) is added to the new genome or not.

5.  Energy transfer to new born.

     Keep the "energy %" variable as part of the .sexrepro operation under DNA control. This energy % applies only to the bot activating the .sexrepro command. It should not apply to the selected .eye5 mate.

6.  Reduce #cycles of the birth tie.

7.  Keep newborn babies from exploding.  This would be a good one to fix regardless of all the above.

Appreciate y'alls time and effort.

-P
« Last Edit: March 21, 2005, 03:31:30 PM by AZPaul »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
.sexrepro
« Reply #1 on: March 21, 2005, 03:44:01 PM »
Quote
When the DNA activates .sexrepro the bot in the .eye5 field should be the one used for the gene mix. If .eye5=0 then nothing should happen. This would be a big bad bug on the bot maker's part but you will need to guard against a programming crash should (when) this happen(s).

I dont see mutch difference between the way it works now ,and the eye5 idea.

Az , please explain why you think this will be more usefull....

Az the main point of .sexrepro working on close range is thats the only way it is fear to the robots who don't want  there genomes stolen.

Ok , lets give a real life example: A snake sees a humen walking along across the street, That does not mean that the snake now has the power to become a SnakeMan :boing: , right?

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
.sexrepro
« Reply #2 on: March 21, 2005, 04:08:19 PM »
comments on your comments.

1) Big problem with this. If the eye5 value is greater than about 50 there isn't enough physical room to reproduce at all so nothing happens. You have to be facing open space in order to make a baby.

2) I think speciation should be possible. It should be a prerequisite that the DNA of the two bots share at least some similarity before sexrepro is possible. A rat can't mate with a camel.
I haven't given enough thought to this issue to come up with any suggestions on exactly how this can be done so here is an idea off the top of my head.
One possibility is that the DNA of the two is compared and a compatibility percentage obtained. Something like the standard deviation based on the average of the number of referenced sysvars and their value and maybe some other factors. A number from 0 to 100% will be returned.
Using a slider to adjust for compatability thresholds you can set about any compatability you like. Anything from almost exact match of the DNA to an advanced fighter bot mating with a veggie.

3) Completely agree. Make your sexes any way you like within your robot's DNA.

4) Gene mixing is done pretty much this way now only genes that go past the end of one parent's genome are all added (I think). I like your way better.

5) Energy transfer to young works this way now. No plans to change it.

6) Birth tie cycles can easily be cut short from the DNA. I figured out how to do it for Hunter 2.13 a long time back. Have a look at this thread for the way to do it.

7) Newborns typically only explode when their DNA is messed up. It tends to happen when you have a missing "cond", "start" or "stop" in the genome. Pretty much every case of exploding babies that I have ever seen has turned out to be due to some typo in the genome.

 :D  PY  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
.sexrepro
« Reply #3 on: March 21, 2005, 05:03:49 PM »
Just copy-paste from some web-site:

The discovery of CONJUGATION, the ability of bacterial cells to transfer DNA between cells that are in physical contact, as a form of DNA exchange between bacteria in the 1950s stunned scientists and lay people alike. Its obvious anthropomorphic similarly to mammalian gene exchange amused some and shocked others. Since its discovery, conjugational exchange of DNA has been shown to be more common and promiscuous than first thought possible. Initially, conjugation was thought to occur only between the SAME or CLOSELY RELATED SPECIES, but data has accumulated which shows that conjugation between bacteria crosses prokaryotic species lines and even occurs between bacteria and some eukaryotic cells. How pervasive this latter situation is remains to be determined.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
.sexrepro
« Reply #4 on: March 21, 2005, 05:12:25 PM »
Well that's all just fine and dandy and all that but what are your views on the subject of DarwinBots speciation.

I don't really run evo sims so I couldn't really give a crap which way we go. I just figured it might be nice for speciation to be able to occur.

 :laugh:  PY  :laugh:
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
.sexrepro
« Reply #5 on: March 21, 2005, 05:58:59 PM »
Currently, there is almost no way for speciation to occur in DBs.  The whole population is mixed.  But for the future it is a good idea to have % difference in number of commands to determine the sex - although not very realistic, it would be a huge help.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
.sexrepro
« Reply #6 on: March 21, 2005, 07:33:01 PM »
I still dont like the idea of: A robot has to "see" its mate using somthing like eye5 to reproduce sexualy. Here is an example:

Special Agent Ana has to do a HALO jump from an airoplane; she is abserving the enemy soldiers below. She sees a fine looking Soldier and says "HA! NOW I Do .sexrepro on that guy". Even before she jumpes out of the airoplane she has a Baby from the soldier on the ground. Does not make sense at all.

*****
I dont really care if sexrepro is used with different species, I think its up to the robot to deside. So the %difference should be a command of some sort, ex:

'this is a repro gene only to closely simuler robots.
cond
%difference
20
<
start
50
.sexrepro
store
stop
« Last Edit: March 21, 2005, 07:36:20 PM by Botsareus »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
.sexrepro
« Reply #7 on: March 21, 2005, 09:02:43 PM »
Bots, it is a funny example, but the way system works now, it is even funnier:  You can be absolutely alone, in the middle of Sonora desert.  You decide to have a baby and "there you go" - it comes right out.  Who's the father?  Some guy named Paul, who happened to be the closest person to you.  Never mind that he is 100 miles away in Tuscon  B)
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
.sexrepro
« Reply #8 on: March 22, 2005, 08:57:53 AM »
I would prefer some kind of physical contact to make sexrepro work. You need contact to exchange genes.

What springs to mind for me is ties. A tie is the perfect method to exchange body fluids, DNA or whatever.

How about sexrepro only working when you are physically tied to another robot. You can always delete the tie later.

And the business of the bot choosing a partner? As I said before, a rat can't choose to mate with a camel (or even a mouse come to that). They just aren't compatible. Speciation needs to be possible and the only way I can see to do it is to set compatibility from within the program, not the DNA. On sliders controllable by the user but definitely not in the DNA

 :D  PY  :D
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
.sexrepro
« Reply #9 on: March 22, 2005, 10:43:45 AM »
Quote
Bots, it is a funny example, but the way system works now, it is even funnier:  You can be absolutely alone, in the middle of Sonora desert.  You decide to have a baby and "there you go" - it comes right out.  Who's the father?  Some guy named Paul, who happened to be the closest person to you.  Never mind that he is 100 miles away in Tuscon  B)
That's how I was born.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
.sexrepro
« Reply #10 on: March 22, 2005, 10:47:36 AM »
I was thinking one of two things will happen with sexrepro after I get chromosomes going:

1.  The father shoots the mother with a 'sperm shot', which is simply a piece of its DNA that can be accepted or rejected by the mother.  (say, by having 1 .receptive store, or something like that)  That solves alot of problems.

2.  A form of conjugation.  We make it so that two cells can combine, sharing DNA and resources.  Really the opposite of .repro.  This means that two haploid individuals (possible under the chromosome system) can fuse to form a diploid one, which is very close to real life IMO.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
.sexrepro
« Reply #11 on: March 22, 2005, 02:14:41 PM »
PY Quote:
Quote
On sliders controllable by the user

Ok thats fine... make sure the sliders go all the way from 0% to 100% ...  :D

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
.sexrepro
« Reply #12 on: March 22, 2005, 02:19:36 PM »
Quote
One possibility is that the DNA of the two is compared and a compatibility percentage obtained. Something like the standard deviation based on the average of the number of referenced sysvars and their value and maybe some other factors. A number from 0 to 100% will be returned.

Raed the post dude!

 :rolleyes:  PY  :rolleyes:
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
.sexrepro
« Reply #13 on: March 22, 2005, 02:20:00 PM »
Here is the simple solution: The distance between the robots before .sexrepro is possible is No greater then the average diameter of the robots. After that it checks witch robot is closest- the way it works now.

Num, Your ideas are nice and all; but we are simpley discussing .sexrepro here , not some new form of alien species fusion.
(I was thinking start a new thread for that, just my opinion)
« Last Edit: March 22, 2005, 02:21:17 PM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
.sexrepro
« Reply #14 on: March 22, 2005, 02:22:21 PM »
Ok ill Read the whole post , sry....
« Last Edit: March 22, 2005, 02:23:27 PM by Botsareus »