Poll

DNA

It is imperitive
5 (11.6%)
Pretty important
7 (16.3%)
A nice addition
6 (14%)
Doesn't matter
4 (9.3%)
Not even a good idea
0 (0%)
Why would anyone want that?
0 (0%)
Other (please elaborate)
0 (0%)
Should be able to evolve into animals somehow, at a certain point.
14 (32.6%)
Should have restricted DNA.
2 (4.7%)
Other(s) (Please elaborate)
5 (11.6%)

Total Members Voted: 21

Author Topic: DB3 Questions  (Read 21266 times)

Offline Houshalter

  • Bot Destroyer
  • ***
  • Posts: 312
    • View Profile
DB3 Questions
« Reply #15 on: January 19, 2010, 05:06:33 PM »
So the bots have xp. That could be interesting.

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
DB3 Questions
« Reply #16 on: January 20, 2010, 02:59:25 AM »
Quote from: Numsgil
Yeah, something like that. You shoot a lot and you get better at shooting, etc.
Sounds very wrong. If you want your bot to learn, program a feedback loop.

Offline Houshalter

  • Bot Destroyer
  • ***
  • Posts: 312
    • View Profile
DB3 Questions
« Reply #17 on: January 20, 2010, 10:10:55 AM »
How does this work for veggies. Do they have to make clorophil (sorry I can't spell) and when they do they get better at it or is it the same as it is now. Sorry, I need to get around to reading all the old threads on db3.

Offline Panda

  • Global Moderator
  • Bot Destroyer
  • *****
  • Posts: 476
  • Computer Science Undergraduate (nerd)
    • View Profile
DB3 Questions
« Reply #18 on: January 20, 2010, 11:51:29 AM »
Is it going to be that chlorophyll makes the bot big or the larger surface area of the bot the better the bot works, I believe that the 2nd one is more true to life.

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
DB3 Questions
« Reply #19 on: January 20, 2010, 11:54:36 AM »
Quote from: ikke
Quote from: Numsgil
Yeah, something like that. You shoot a lot and you get better at shooting, etc.
Sounds very wrong. If you want your bot to learn, program a feedback loop.

I am entirely with ikke on this. At least provide an option to turn lamarckian selection off.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
DB3 Questions
« Reply #20 on: January 20, 2010, 12:50:59 PM »
I wouldn't call it XP.  It's more like a snapshot of what the bot's been doing the last several thousand cycles, that provides feedback when new muscle is created, or maybe modifies existing muscles (I'm not entirely sure yet).

If anyone can think of a better way to control specialization with DNA that's not entirely arbitrary I'm all ears

Understand, though, that bots would still control building muscles, etc. and the high level ratios involved.  The specialization of those muscles is what's handled automatically.

The problem is that specialization is something like a really unbalanced tree.  General muscles might make you a little bit better at everything.  Movement muscles might make you better at moving.  "up" muscles might make you better at moving forwards.

...

Veggies mostly build mass, so I imagine any "muscles" a veggie has would be to allow them to build more chlroplasts/chlorophyl at a higher efficiency.  Or maybe I treat chloroplasts like a muscle that can become more efficient, so each chloroplast provides more energy or something like that.
« Last Edit: January 20, 2010, 12:54:11 PM by Numsgil »

Offline Houshalter

  • Bot Destroyer
  • ***
  • Posts: 312
    • View Profile
DB3 Questions
« Reply #21 on: January 20, 2010, 04:58:28 PM »
Would you have to modify alga_minimalis to make chloraplast. Also I am in favor of a menu that would let you change the costs and benefits of different muscle types. As you said, specialization is like an unbalanced tree. If the default values make one stragtegy even slightly more benificial to the bots survival than another, diversity is thrown out the window. To force diversity and specialization on the bots the costs/benifits have to be perfectly balanced or at the very least you have to make it so an ecosystem can't survive without certain niches being filled.

I read up on Lamarckism. Its interesting. Even though it may not apply to real biology, darwinbots isn't exactly real biology. I don't think it should apply to musscles or specialization. Instead mabey make it optional for a bots genes to degrade more or dissapear entirely when it doesn't use them and attempt to modify the genes that are used alot and make them more complex. Multibots would count every gene in every bot in the multibot when they do this. Im not sure if it would work or how but its an idea.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
DB3 Questions
« Reply #22 on: January 20, 2010, 06:07:53 PM »
Quote
Would you have to modify alga_minimalis to make chloraplast.

Yes, but it'll have to be rewritten either way to use the new system.

Quote
Also I am in favor of a menu that would let you change the costs and benefits of different muscle types. As you said, specialization is like an unbalanced tree. If the default values make one stragtegy even slightly more benificial to the bots survival than another, diversity is thrown out the window. To force diversity and specialization on the bots the costs/benifits have to be perfectly balanced or at the very least you have to make it so an ecosystem can't survive without certain niches being filled.

There'll be a "maximum" which represents 100% energy efficiency that I'll use as a cap, so things can't get too crazy.  Within that 0-100% range I can probably give global multipliers for each level of the tree.

Quote
I read up on Lamarckism. Its interesting. Even though it may not apply to real biology, darwinbots isn't exactly real biology. I don't think it should apply to musscles or specialization. Instead mabey make it optional for a bots genes to degrade more or dissapear entirely when it doesn't use them and attempt to modify the genes that are used alot and make them more complex. Multibots would count every gene in every bot in the multibot when they do this. Im not sure if it would work or how but its an idea.

Lamarckian evolution/soft inheritance works on phenotypes, not genotypes.  Meaning it only makes sense for traits and not on a genetic level.  I just don't see a clean way of doing specialization in DNA.  All the schemes I can think of involve having dozens to hundreds of essentially sliders that bots would have to tweak, with arbitrary reasons (cost, efficiency, etc.) why bots shouldn't change them too fast.  With a hybrid hard/soft inheritance like I'm proposing we allow genetics to handle behavior (the "brain") and the system to handle capability (the "body").  Considering how much of the bot's body is already automagically handled (reproduction is handled very automagically, for instance), it seems a good fit.  Bots still decide on how much muscle/fat, etc. to produce.  The system just handles how that is distributed on a finer level.

If we really want to have a strictly genetic component to body management I might play around with a baser level genetic code to handle the body.  It probably wouldn't work like current DNA.  Maybe more like the genetic code in DarwinPond where it's just an array of sliders that get tweaked over time with mutations.  I just don't see a clean way of having all those slider values exposed on the DNA level, especially since you don't want bots changing specialization in the middle of a fight, and you don't want body management to be so hard that bots can kill themselves off just by tweaking values too aggressively.
« Last Edit: January 20, 2010, 06:12:01 PM by Numsgil »

Offline Houshalter

  • Bot Destroyer
  • ***
  • Posts: 312
    • View Profile
DB3 Questions
« Reply #23 on: January 20, 2010, 06:28:37 PM »
Well girraffes stretch their necks and so over time they grow longer necks and their children are born with longer necks to. If and when having a longer neck no longer becomes nessacary then why keep it if it just takes alot of energy and resources to grow in the first place? obviously this is not how girraffes or any other animal evolved to be what it is but it would be a quick and easy adaption as opposed to thousands and millions of years of evolution and hundereds of thousands of generations. You could make this apply to darwinbots by increasing deletion mutations or copy error mutations for genes that aren't used in a bots life time. Genes that are used alot would have a chance of being copied then being modified. A single gene that cooridinates movement, for example, could become two independent genes which coordinate movements in different directions (left, right, backwards, forwards, etc.) This line of thought seems to become real complicated real quick but I think a fully Lamarckian alife sim could be doable. I would love to see the results of soft inheratence vs. our standard random mutation and natural selection evolutions.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
DB3 Questions
« Reply #24 on: January 20, 2010, 06:41:12 PM »
Quote from: Houshalter
Well girraffes stretch their necks and so over time they grow longer necks and their children are born with longer necks to. If and when having a longer neck no longer becomes nessacary then why keep it if it just takes alot of energy and resources to grow in the first place? obviously this is not how girraffes or any other animal evolved to be what it is but it would be a quick and easy adaption as opposed to thousands and millions of years of evolution and hundereds of thousands of generations. You could make this apply to darwinbots by increasing deletion mutations or copy error mutations for genes that aren't used in a bots life time. Genes that are used alot would have a chance of being copied then being modified. A single gene that cooridinates movement, for example, could become two independent genes which coordinate movements in different directions (left, right, backwards, forwards, etc.) This line of thought seems to become real complicated real quick but I think a fully Lamarckian alife sim could be doable. I would love to see the results of soft inheratence vs. our standard random mutation and natural selection evolutions.

Mostly the problem is that, in real life and in Darwinbots, defining what a "gene" is is rather complicated.  Segments of DNA spatially isolated from each other might work together to form what might be called a "gene".  I guess you could keep a tally of how often a given bp is executed, and mutate unused ones.  Though that won't catch all junk DNA.

Offline Houshalter

  • Bot Destroyer
  • ***
  • Posts: 312
    • View Profile
DB3 Questions
« Reply #25 on: January 20, 2010, 07:37:47 PM »
The definiton of gene could be flexible. In darwinbots, even with boolean logic in the body segment of a gene, you can still identify when a statement has no use because its followed by another statment without a "and" or "or" bp. You can then find series of bps wich connect to each other, depend on each other, or read/write to the same memory locations. For starters mutate any genes which write to the same memory locations on the same cycle. You can have the bot assign resources to each gene, for example how much energy it can use per cycle or what memory locations it can write to and if another gene tries to write to that same location is it overriden. You can judge the genes usefulness by checking to see if it is interacting with other genes in useful ways, like if it shoots - 1 shoots and the shots return nrg, then reward the gene, else, punish it for lossing nrg shooting the shots. Good genes could be modified by adding a new condition or a new action, waiting to see if it has an effect than proceeding to modify it again by deleting the series of bp it put in or not. The controls for all of this wouldn't be arbitrary but would be decided by the bot itself and through natural selection or its own system of soft inheritance and it could optimize them. Sorry if i sound like im rambling.

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
DB3 Questions
« Reply #26 on: January 21, 2010, 11:27:51 AM »
If this training-based physical definition system is implemented, trying to design a bot that has a specific set of physical features would require a lot of strange behavioral contortions.

Perhaps we can borrow from life here and let DNA define physical characteristics in broad strokes, but severely limit the changes a bot can undergo while alive.

People are preprogrammed to grow to about a certain size, have a prescribed number of arms and legs, have hair in predetermined places. Using extreme effort, we can shrink or grow in size (to an extent), and train or atrophy our muscles, but these are programmed physical reactions rather than a global rule of life.
« Last Edit: January 21, 2010, 11:40:06 AM by abyaly »
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
DB3 Questions
« Reply #27 on: January 21, 2010, 12:58:17 PM »
Think of it like this:

Given the behavior of a bot's germline over the last, say, 100K cycles, there is an optimal muscle distribution which would have minimized the energy cost of those actions.  That's true regardless of how we approach specialization.  Assuming that future behavior is going to be similar to past behavior, we can use that past behavior to predict future behavior.  And from that, a muscle distribution which should minimize costs in the future.

We can cheaply keep track of past behavior, weighted more heavily for more recent behavior, by using a exponential moving average.  Even if specialization is controlled in the DNA I think we'd still want to keep a record of how a bot has spent energy in the past so that a bot's DNA can at least make informed decisions.  And again, assuming that past behavior will be an indicator of future behavior, that moving average represents the idealized muscle distribution.  Which means bots which deviate from that are less fit almost by definition, so it's not necessarily an interesting problem to solve.

That said, to play devil's advocate, there are some problems:

1.  This does not work well for somatic cells.  Eg: organs in a specialized multibot.  A multibot might easily want specialized shooting cells, for instance.
2.  This does not work well for something like a caterpillar/moth lifecycle, since there are very different metabolic needs for a moth compared to a caterpillar.

For both cases, I think what we need is something like a "muscle profile" that can be saved/loaded/modified.  But I don't want to have magic ID numbers that bots have to use to load up the correct profile.  And I also don't want to have dozens of sliders that bots have to tweak or, worse, remember dozens of configurations of the dozens of sliders.
« Last Edit: January 21, 2010, 12:59:43 PM by Numsgil »

Offline Panda

  • Global Moderator
  • Bot Destroyer
  • *****
  • Posts: 476
  • Computer Science Undergraduate (nerd)
    • View Profile
DB3 Questions
« Reply #28 on: January 21, 2010, 01:42:26 PM »
Quote from: Numsgil
Veggies mostly build mass, so I imagine any "muscles" a veggie has would be to allow them to build more chlroplasts/chlorophyl at a higher efficiency.  Or maybe I treat chloroplasts like a muscle that can become more efficient, so each chloroplast provides more energy or something like that.

What I meant was the ammount of energy a veggie gets depends on the amount of chloroplasts and surface area or circumfrance.
« Last Edit: January 21, 2010, 01:43:00 PM by Panda »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
DB3 Questions
« Reply #29 on: January 21, 2010, 01:48:07 PM »
Quote from: Panda
Quote from: Numsgil
Veggies mostly build mass, so I imagine any "muscles" a veggie has would be to allow them to build more chlroplasts/chlorophyl at a higher efficiency.  Or maybe I treat chloroplasts like a muscle that can become more efficient, so each chloroplast provides more energy or something like that.

What I meant was the ammount of energy a veggie gets depends on the amount of chloroplasts and surface area or circumfrance.

Dependent on the amount of chloroplasts, but chloroplasts have a large volume so bots with lots of chloroplasts will be larger as well.