Author Topic: why do some bots become stationary RESOLVED 2.43.1M  (Read 7398 times)

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« on: August 02, 2008, 12:54:07 AM »
Despite having zero friction and having 0.2 gravity, I notce bots becoming immobile. They're moving around, then suddenly they stop and stay fixed in place.
 
They're not doing anything to remain immobile, so gravity should be making them at least fall. But they are expending no energy and remaining fixed in place. What could be causing this?
« Last Edit: August 11, 2008, 12:37:47 PM by EricL »

Offline Shasta

  • Administrator
  • Bot Destroyer
  • *****
  • Posts: 231
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #1 on: August 02, 2008, 03:05:29 AM »
What is probably happening in your sim is that waste is building up in your bots causing 'alzheimers' to store a random number in .fixpos.

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #2 on: August 02, 2008, 03:21:01 AM »
How can I manage or disable this effect in physics/settings? I assumed those settings were "off" since I started with no settings file.

These bots are the product of zerobots. If they can select for fixing themselves against the force of gravity without spending any movement energy, magically, then I can see why they would have selected for that in their previous environment. Right now they need to be falling if they're not moving.

 
I'll play around with waste settings while I wait for a reply.

EDIT I jacked waste threshold to 20000 and BAM, bots started doing things.
 
Any advice as to how best to eliminate this problem in the future? What's the maximum value for waste threshold? I tried 32000 and it crashed. Feature request: waste on/off toggle.

EDIT 2 This doesn't work on all the bots in the stable. Some of them just stop and remain fixed, and it happens a lot sooner than waste as I understand it could be responsible. Could these zerobot-spawn have a .fixpos in their genome somewhere?

If a bot can thwart the sim physics and evade morphological costs just by enacting some command in its DNA, that's a major flaw. A bot should not be able to defy gravity without expending energy, and I should not have to penalize other aspects of its dna that don't expend the same amount of energy. I think I understand the idea behind "alzheimers", but it shouldn't defy the laws of physics. If a bot is not doing anything to prevent itself from falling, and the "immobile" flag is unchecked, then it should fall.
 
Moreover, when a bot hits one of the frozen bots, even if it's a much larger bot, it's like hitting a brick wall. How can anything the bot is doing prevent it from being banged around like the sim physics dictate?

« Last Edit: August 02, 2008, 03:45:22 AM by Nitus »

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #3 on: August 02, 2008, 04:52:02 AM »
Here's a sim that illustrates my problem.

imble.sim - http://www.megaupload.com/?d=0BS5ZIA5

There's gravity and relatively high morphological costs. All bots except for feeder start at zero cycles [I waited for the feeders to get full before populating the other bots]
 
The red bots are the ones that exhibit this fixing behavior. Good old 2.8.2f. If you load this sim over and over again, you'll notice that the time it takes for each 2.8.2f to fix itself is more or less random - sometimes they fly around for a long time, sometimes they stop right away. But sooner or later they fix themselves.
 
The yellow bot is a single mobite - a veggie that's supposed to encourage the zerobots to chase it.
 
The three green bots are feeders. They're fixed in place and spew energy shots, and in theory they encourage bots to exploit them wherever you place them. In this sim they're just there, but if I put them near the top of the "tank" [with gravity] a bot would have to be going up to explot them [and so on].
 
The teal bots are fresh zerobots, their zero genome is quite a lot larger than the genome that 2.8.2f evolved from. They're in there to add some spice if you want to run this sim for a few days.
 

Offline Shasta

  • Administrator
  • Bot Destroyer
  • *****
  • Posts: 231
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #4 on: August 02, 2008, 06:19:03 AM »
Looking through that sim, the bots are all storing 10 in fixpos (remember fixpos == 216th memory location). I did a quick scan of the dna and didn't see where the store was taking place. Evolved dna is next to impossible to figure out without spending a large amount of time.

I can also confirm an overflow in the waste threshold setting, along with a formating bug in the save robot dna function (places cond on the gene start line). I'll post those two in the bug report forum.


Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #5 on: August 02, 2008, 02:08:40 PM »
Fixpos was originally thought of as being stuck in place, like with roots or suction cups in an aquarium.  I can see where wanting the ability to disable it might be important for physics sims, but there isn't a way at present.  It's also extremely odd that 32000 in waste threshold would break the program...  Eric's on hiatus and probably won't be back in to Darwinbots code for at least a month or two, so let me move this topic to Bugs and Fixes so it isn't misplaced...

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #6 on: August 02, 2008, 07:51:39 PM »
Is there any way to fix this problem temporarily, perhaps with a dna cost that won't unfairly penalize the kind of evolution I want to see in the sim?
 
There's no pressure for these bots to ditch the .fixpos command if they can simply wait around without burning energy. In their previous environment, feeder bots were placed at regular inervals, which might had led directly to the inclusion of this gene. Now that they have it, they're stagnating.
 
Hmm, maybe if I jack up aging costs - I don't want to penalize a class of dna command that might include useful adaptions.
 
It's too bad that Eric is on siesta, because the ability of a bot to circumvent physics based on a dna command is a serious flaw. I should replicate the initial conditions with fresh zerobots and see if they're likely to do it again - if moving around doesn't do anything for them but expend energy, I can see that they might well develop the same strategy.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #7 on: August 02, 2008, 08:57:53 PM »
You can have your feeder vegs fire info shots as well that set .fixpos to 0.  Or even use venom to keep them unfixed for enough cycles to fall some more.
« Last Edit: August 02, 2008, 08:58:30 PM by Numsgil »

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #8 on: August 03, 2008, 03:35:34 AM »
Quote
You can have your feeder vegs fire info shots as well that set .fixpos to 0.

Yeah, I'll try that. If the environment is as unfavorable to that strategy as I can make it, and with aging costs set higher, the bots will hopefully discard it. A tender veggie that went around resetting .fixpos might keep them from exploiting stationary feeder veggies with .fixpos and find a different strategy.
 
Their original toroidal environment, where they free-fell past the feeder veggies, was supposed to favor bots that did things to stay closer to the feeder veggies. It didn't occur to me that a bot could use .fixpos to avoid moving out of feeder range. Some of the others were using ties to latch on to the feeders, and that led to them building clumps of tied-together bots near the feeders, and I don't think they're as quick to fix themselves as 2-8-2f, but they do it to an extent. A veggie that goes around setting .fixpos to zero might be just enough to bump the sim in the right direction.
« Last Edit: August 03, 2008, 04:10:40 AM by Nitus »

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #9 on: August 06, 2008, 01:18:31 PM »
I've been wondering too why the bots stay fixed all the time. In my sim I have the Friction settings set to the following: Z axis gravity=1, Static Coefficient=0.1 and  Kinetic Coefficient=0.05. I have no idea how these work or if they are working at all. I haven't managed to find information about it, other than they would have a gravity pull to the background. With these settings set to very low level and brownian motion set to 10 I would expect bots to float around a little, but all my bots are fixed. The only ones I've seen move on occasion are the tiny ones. Maybe Eric can take a look at the Friction settings some time, to see if it's working as it should. :-)
The internet is corrupt and controlled by criminally minded people.

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #10 on: August 07, 2008, 06:21:34 PM »
Quote from: Testlund
I've been wondering too why the bots stay fixed all the time. In my sim I have the Friction settings set to the following: Z axis gravity=1, Static Coefficient=0.1 and  Kinetic Coefficient=0.05. I have no idea how these work or if they are working at all. I haven't managed to find information about it, other than they would have a gravity pull to the background. With these settings set to very low level and brownian motion set to 10 I would expect bots to float around a little, but all my bots are fixed. The only ones I've seen move on occasion are the tiny ones. Maybe Eric can take a look at the Friction settings some time, to see if it's working as it should. :-)

Those settings work, but a bot can simply anchor itself irrespective of physics settings. You could have friction set to zero and gravity maxed out, and bots will still anchor themselves. A massive, full-sized bot could slam at max speed into a pixel-sized anchored bot and stop short, as if it was hitting a brick wall.
 
I'm not sure what the reasoning is behind momentumless anchoring, but it defies all logic and breaks the evolution part of darwinbots. I find it breaks my zerobot sims over and over and over again - bots that anchor themselves with .fixpos don't spend much energy. There's no way to penalize this without penalizing all kinds of dna commands, something that you don't want to do in a zerobot sim.
 
In my view a bot should have to spend some kind of energy - not dna costs - in order to defy gravity and/or momentum. Mind you, DB is a work in progress, and free to boot, so I probably shouldn't complain. Hopefully in the future someone adds a toggle to turn that off. Integrating it with the physics model would be better [if real organisms could anchor themselves in space like that, irrespective of any force acting on them, we'd be living in a very different universe] but I could imagine that would take more coding effort.
 
Whatever they do, I hope they do it eventually - bots that are hand-coded at least a little might not find it advantageous compared to moving and hunting, but my zerobots hit on it every time. It's an interesting - if unrealistic - feature for a user-made bot to apply, but it breaks evolution.
« Last Edit: August 07, 2008, 06:22:22 PM by Nitus »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #11 on: August 07, 2008, 07:22:39 PM »
Quote from: Testlund
I've been wondering too why the bots stay fixed all the time. In my sim I have the Friction settings set to the following: Z axis gravity=1, Static Coefficient=0.1 and  Kinetic Coefficient=0.05. I have no idea how these work or if they are working at all. I haven't managed to find information about it, other than they would have a gravity pull to the background. With these settings set to very low level and brownian motion set to 10 I would expect bots to float around a little, but all my bots are fixed. The only ones I've seen move on occasion are the tiny ones. Maybe Eric can take a look at the Friction settings some time, to see if it's working as it should. :-)

Z axis gravity and friction will make your bots stay put.  Y axis gravity will make them fall to the bottom of the screen.  I admit it's not very clear.  Just think of your screen as the first quadrant of the cartesian grid (or wait... where is 0,0 exactly?  maybe it's the 4 quadrant).

Quote from: Nitus
I'm not sure what the reasoning is behind momentumless anchoring, but it defies all logic and breaks the evolution part of darwinbots. I find it breaks my zerobot sims over and over and over again - bots that anchor themselves with .fixpos don't spend much energy. There's no way to penalize this without penalizing all kinds of dna commands, something that you don't want to do in a zerobot sim.

Fixpos is very ancient.  Other parts of the program have evolved and become more complex, but fixpos has not.  It made sense in the extremely abstract early versions of Darwinbots, way back before I joined.  But once the physics system started to make sense and behave realistically, fixpos sort of becase a throwback.  I always emant to go back in and have the bots spend energy to strengthen their grip, so when another bot slams into them their grip weakens and they have to repair it.  Never happened, though.  Other things were more pressing.
 
Quote
In my view a bot should have to spend some kind of energy - not dna costs - in order to defy gravity and/or momentum. Mind you, DB is a work in progress, and free to boot, so I probably shouldn't complain. Hopefully in the future someone adds a toggle to turn that off. Integrating it with the physics model would be better [if real organisms could anchor themselves in space like that, irrespective of any force acting on them, we'd be living in a very different universe] but I could imagine that would take more coding effort.

Think of something like a barnacle.  You can pry them off of something, but it takes a lot of effort.  The barnacle isn't expending energy constantly to maintain that grip.  That's where fixpos came from.  The idea that you're looking at an aquarium from the side, and some bots can learn to grip on to the "glass" surface of your monitor.

Offline Nitus

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #12 on: August 08, 2008, 02:05:49 AM »
Quote
is very ancient.  Other parts of the program have evolved and become more complex, but fixpos has not.  It made sense in the extremely abstract early versions of Darwinbots, way back before I joined.  But once the physics system started to make sense and behave realistically, fixpos sort of becase a throwback.  I always emant to go back in and have the bots spend energy to strengthen their grip, so when another bot slams into them their grip weakens and they have to repair it.  Never happened, though.  Other things were more pressing.

I guess I can see how something like that could have stayed on the backburner - I have to admit that I'm impressed with how much work has been done over the last few years.
 
Quote
Think of something like a barnacle.  You can pry them off of something, but it takes a lot of effort.  The barnacle isn't expending energy constantly to maintain that grip.  That's where fixpos came from.  The idea that you're looking at an aquarium from the side, and some bots can learn to grip on to the "glass" surface of your monitor.

If a pixel-sized barnacle of minimum size and energy clamps onto the "wall" and a max sized barnacle at high speed comes sliding down the "wall" and slams into it, it gets unclamped unless it has one hella clamp.  To stay fixed against the tides and currents a barnacle spends energy afixing itself.
 
I've noticed "body" becoming more and more implemented in recent years - a barnacle spends body points at least, anchoring itself.

I realize that the game is a work in progress, and I don't know what direction is already planned, if any, but a really simple fix would be a ".fixpos cost" under dna costs in the costs menu. That would work until whatever plan comes down the pipeline, and probably wouldn't be too hard.

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #13 on: August 11, 2008, 06:02:12 AM »
Quote from: Numsgil
Z axis gravity and friction will make your bots stay put.

But with such a low setting of the slider and brownian motion at 10 I don't think they should get glued to the background, unless it's done by fixpos. Hard to know which is which here though. I decided to have z gravity on to see if it would stop the eternal spinning of some bots, like they were in space, not in my petri dish.  

Maybe it's too much of a conflict for the program both have a force to push them around (brownian motion) and  a force to hold them to the background (Z gravity). Hmm... What if I turn off the Z gravity and keep the coefficients?  

Otherwise I'm not opposed to .fixpos. I know how hard it is to scrape off some alga from the glass pane in an aquarium, but maybe it should be a slight cost for the bots to do that. Maybe sacrificing a part of their body, with a timer that cause it to wear off after a set amount of cycles.  
The internet is corrupt and controlled by criminally minded people.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
why do some bots become stationary RESOLVED 2.43.1M
« Reply #14 on: August 11, 2008, 12:35:20 PM »
The waste threshold overflow bug is fixed for the next drop.

I would be happy to add a fixpos per cycle cost or otherwise modify the behaviour of .fixpos, but that is a DCR (Design Change Request) not a bug.  If there is not one already, posting a topic specifying the requested change in the Suggestions forum would allow me to track it and not forget about it.  Thanks.
Many beers....