Unleashing Robot Intercourse

This topic is all about robot sex / mating / intercourse.  This is a serious topic, not a joke.  Organisms simply evolve a great deal faster when 2 parents can both provide input into the offspring (sexual) rather than from a single parent (asexual).  I have written simulators of these processes (virtual petry dishes), and the differences are stark.  The 2 parent model is infinitely better at evolution.  Why shouldn't robots evolve in this way too?

How could 2 robots mate?  How could they exchange DNA?  What would result?  

The rest of this is just one man's opinion on how this could be done.  I am sure there are lots of other ways.  My hope is to inspire others to share their thoughts, ideas and discuss.

For starters, the software of the robot needs to be written according to a few standards.

1.  Every Software Agent (think of it as a Gene or a Behavior) needs to conform to a common interface.  Every Agent needs a unique name or ID, set of pre-conditions, a version number, a sophistication index, and a reliability index to quantify how often the module fails.    Example:  A facial recognition agent has a pre-condition of having a camera.  The version number and other indexes would be used to compare two similar modules to see which one is better.  

2.  Every Agent needs to store any variable (Settings) that drives its behavior in the robot's permanent memory (think DNA).

3.  When two robots copulate, they share all their software agents and settings.  One of the agents (a sex agent) takes the lead, evaluating all the corresponding agents from each parent, pre-conditions, etc. and picks a winner for each unique agent name.

4.  Then, the settings are each evaluated in turn.  Each setting could have some metadata like DataType, IsMutationAllowed, IsAveragingAllowed, Min, Max, Mean, etc.   A value of each setting would then be determined for the child.  Mutations could happen, or averaging between parents, etc.  The child would likely be similar to its parents, but different.

5.  If the maker of the robot had added new sensors to the robot, the maker would need to introduce new software agents into the DNA of the bot.

6.  A bot should probably keep a few versions around of each agent so that if a new Agent crashes a lot ( decreasing its reliability index) , the robot could automatically fall back to one of its parents.  Many mutated combinations would not work out very well, but the software could maintain its reliability stats and also find suitable replacements (on the internet) for the offending Agent or settings...a kind of Gene therapy, sperm donation, whatever you want to call it.

7.  Robots need not produce new physical children...they could simply "practice a lot" just like adults do, except that they would self evolve in the process.  This could happen via wifi or internet.   The robots could be continually having sex and improving without our knowledge.   New software agents introduced on the internet would rapidly spread and get tested through robot experiences.

8.  Robots could end up carrying along a lot of genetic material (agents, settings) that might not be applicable to the bot.  I think this is ok and desirable, as it could ppup as interesting behavior later in life, in the bot, or an offspring.  Our own DNA has a lot of stuff that we think is unused.  I suppose modules that haven't been used in some time frame could be purged.

9.  Software over-complexity (one of the biggest problems we face) can be reduced.  Developers could concentrate on writing individual agents instead of entire systems.  They would introduce these agents into the internet (sperm bank), and the ecosystem would test the module and it would be accepted and spread, rejected, or find useful niches.    This could be an entirely new and dominant software paradigm for bots and maybe software in general one day...if deep learning doesn't take over.

10.  For this software design to work, Agents need to be written to only communicate with a Context (their DNA and runtime state), and NOT with each other.   Agents cannot be directly dependent on each other or call functions from each other.  They can however be dependent on the existence of variables in the Context (their DNA and runtime state)  Effectively, Agents interact with the context, not each other.  This means the order of execution is important if one agent needs data produced by another.  This constraint is necessary so that reproduction can swap out any agent without directly breaking other agents.

I could say a lot more, but I think you get the idea.   I wrote some prototypes of this process, but it's been over 15 yrs now.  Perhaps better ideas have evolved since I last worked on this pet idea.  I think it is more relevant now than ever.  

Thoughts anyone?

 

Interesting and Strange

I can not help myself from thinking about the movie robots when they have a baby. If you have never seen the movie it is a good watch. Here is that scene. https://www.youtube.com/watch?v=FpCAkxy6K-E

Robot Reproduction

Quick opinion only:

Rather than reproduction, it might be likelier that robots will be able to “evolve”. Should a robot have learned things which makes it distinct from other models, the owner may choose / want / need to pass along that information to a replacement model, so the ability to transfer “memory” will be important. Physical hardware will always break down, so although you can use parts from several older robots to create a “new” one, it’s unlikely that two mechanical robots can spare enough hardware to create an “offspring” and continue to function. Your focus does seem to be largely software related, which is likely where a form of “natural evolution” where certain new information learned can be automatically shared between all models of a series, or a central which then provides that information only when another robot might benefit from it or request it.

Given the tendency to move to the “cloud” it might end up bing a central A.I. which determines what information is shared, kept, discarded (through lack of use). Havign a lot of information stored only on a particular robot does not have too many advantages over a central system (backups, redundancies etc.).If biological elements are introduced into robotics, then the game changes.

One thing you raise was changes being introduced “… without us knowing about it” which not many people these days would readily accept. It’s hard to find many humans which would give their approval to allowing robots to evolve on their own.

Aside your topic made me immediately think of: https://www.youtube.com/watch?v=AjI2J2SQ528

Interesting idea. What you

Interesting idea.  

What you have suggested would allow for the best robot evolution.  We could then put the robot into a simulator and then assess its efficacy for certain use cases which would allow the robot “parents” to pick the best for their progeny.  The ultimate in Darwinian parenting.

 

 

re: nhBill

Great to hear from you.  Yep.  I’d agree, for every actual offspring, there would probably be millions of combinations tested in simulator prior to birth.  These will truly be test tube designer babies.

Once “born” – manufactured and activated…the bots would continue evolving themselves and testing combinations in simulators (in their mind) …deciding on which improvements to adopt by some internal consensus algorithm.

I see no other way, the bots will simply have too many moving parts to be comprehensible by any person.  The bots must adapt to their own use cases / environment or they will be useless junk.  People should be able to come up with the consensus algorithm for deciding on how improvements are chosen…this would be the place to incorporate something akin to Asimov’s Laws or some such set of laws.

On the subject of approval by people that was brought up in another post, I doubt people will have or should have the choice.  In my opinion, people will not be qualified to make decisions to say what is best for robots…these will be very complex choices happening almost continuously over time…much like our immune systems are constantly making choices.

re: CBen on Repro

Thanks for the link and the thoughts.  I have always liked Bjork, never heard that one or seen the video.  Unlike nature, I guess FF repro could work with bots.

Yep, I was focused on software…maybe bots produce other bots as a cottage industry and use recycled parts where possible…designed their offspring for particular purposes.

I addressed the approval issue in a response to nhBill.  To be useful, I believe people and robots will both decide that it is in both their interests for the bots to continuously self improve / evolve, and that people would just muck this up.  Therefore, I think we will eventually be out of the loop on that.  I think that’s ok as long as we as people agree upon the consensus algorithm (the algo that makes decisions about which improvements get selected) and the basic criteria that are used.  This algo should perhaps be written at a high enough level to be immutable, possible putting some morality like Asimov in there too.  If this algo ran on a blockchain, it could be crypto-verified before any improvement was allowed out of simulator and into a real bot.

The immutability of this core algo might prevent the bots from destroying us.  Might.  Odds are, we will find another way to destroy ourselves first…ok, so I am a cynic.

I also think the bots will decide at some point (learning from biology perhaps or just logic) that diversity is also in their own interest, thus giving them a broader range of experience, usefulness, and paths for evolution.  For this reason, I think the bots will want to try a great many variations…makes me think of Automata.  Lets hope it doesn’t happen quite so fast.