1
Suggestions / Population Control and Energy Management Aren't Intuitive
« on: February 23, 2014, 07:22:31 PM »
Edit: I think I make a better argument in my most recent post.
Original post:
I feel that the current (2.46.02) method of energy management and population control is inadequate and counter-intuitive. In the past, when repopulating and veggies were the same, the system was simple. Now, with chloroplasts, it is not as simple.
With chloroplasts, there is no set definition of a "veggy." Bots with many chloroplasts are more veggy-like, while bots with few veggies are pretty much carnivores. So, menu options like "40 NRG veggy per cycle" does make any intuitive sense. Given the variability of light level and chloroplast count, chances are that not a single robot received exactly 40 NRG in that particular cycle. Also, settings like "maximum number average veggies" don't make sense, as they now involve the number of chloroplasts in the sim.
There are a few functions for population control and energy management:
Let's focus on the first function. It is important to limit the flow of energy into the sim. I think that focusing on the total number of chloroplasts is not necessarily (as of right now) the best way to do it. The efficiency of chloroplasts depends on how they are distributed (many chloroplasts in one bot, vs few chloroplasts in many bots).
Here are actual measurements, taken at a size 3 sim set to "40 NRG veggy per cycle." Here, "avg chlr" is equal to the total number of chloroplasts divided by 16000, since that is what is used to determine the repopulation limits and is what is displayed at the bottom of the screen. I calculated the total nrg per cycle, to give a good idea of how much energy is entering the sim, as well as the nrg per avg chlr per cycle, to balance for the fact that more chloroplasts generate more energy.
So, I guess my point here is that these settings don't do a good job of describing their effects. The setting of "40 NRG veggy per cycle" does not describe these end results.
First of all, this setting should be renamed to include chloroplasts in its name, because it does not involve the number of veggies. Rather, it involves the number of chloroplasts. It functions as a multiplier on the feeding formula.
If a bot has a high number of chloroplasts, each bot can receive up to 5x as much nrg per cycle as compared to the setting. If there are many bots, with the same total number of chloroplasts, then there is a very high efficiency, and the nrg per avg chloroplast is much higher than the setting. You can see this above.
One thing to point out is that this change in efficiency (as the chloroplasts per bot decreases) is actually pretty major. Let's say that you start with 1 bot with 32000 chloroplasts. Then it slowly divides into 1000 bots with 32 chloroplasts. Now, even though the chloroplast count remains constant, the rate of nrg creation has quadrupled. There are 1000x more bots to share that energy, so each individual bot gains energy very slowly, but there are also 1000x more bots with the ability reproduce. This all cancels out in the end, so you actually end up with a rate of reproduction which increases over time. On this basis, I don't think that the current system does a good job of accomplishing task #2, which is to limit population.
The main problem is that these settings (max number of veggies and NRG per veggy) do not do a good job of telling me how much energy is entering the sim.
Most of this can be alleviated by renaming the settings to something meaningful, like changing "veggy" to "chloroplasts." This will fix some confusion.
Some of this, I don't really know how we might fix it.
One possibility is changing the chloroplast formula by dividing all feeding rates by the magic number 3.54. This way, when you enter 40 NRG per veggy per cycle into the text box, then the feeding rates are actually multiplied by 11.3 rather than 40. That way, when a veggy has 16000 chloroplasts (1 "avg" chloroplast) and 32000 light, then it will actually receive 40 energy per cycle.
A second possibility is the creation of two maximums. There could be the maximum number of chloroplasts (like currently), as well as the maximum number of repopulating robots.
A third possibility it that we can change the way that we turn the sun off once energy levels are too high. Rather than toggling the sun completely, we can just lower the feeding rates once nrg is above a certain level. Completely turning off the sun destroys any advantage to having chloroplasts, but lowering the feeding rates accomplishes the same goals without destroying those advantages.
A fourth possibility is to change the chloroplast formula by dividing all feeding rates by the magic number 26.27. This way, the "NRG per veggy" setting, multiplied by the "max avg. veggies" setting, gives the actual maximum feeding rate for the entire sim. So, if I have 40 NRG per veggie and 1 max veggy, then there will be an absolute maximum of 40 nrg per cycle (this implies 1 chlr per veggy, as that is the most efficient).
These are just ideas I am throwing around, but the main goal is to make energy management and population control more intuitive and meaningful.
Original post:
I feel that the current (2.46.02) method of energy management and population control is inadequate and counter-intuitive. In the past, when repopulating and veggies were the same, the system was simple. Now, with chloroplasts, it is not as simple.
With chloroplasts, there is no set definition of a "veggy." Bots with many chloroplasts are more veggy-like, while bots with few veggies are pretty much carnivores. So, menu options like "40 NRG veggy per cycle" does make any intuitive sense. Given the variability of light level and chloroplast count, chances are that not a single robot received exactly 40 NRG in that particular cycle. Also, settings like "maximum number average veggies" don't make sense, as they now involve the number of chloroplasts in the sim.
There are a few functions for population control and energy management:
- Limiting the flow of nrg into the simulation. This, in turn, helps to create a competitive environment.
- Simply limiting the total number of robots, which directly improves simulation speed.
Let's focus on the first function. It is important to limit the flow of energy into the sim. I think that focusing on the total number of chloroplasts is not necessarily (as of right now) the best way to do it. The efficiency of chloroplasts depends on how they are distributed (many chloroplasts in one bot, vs few chloroplasts in many bots).
Here are actual measurements, taken at a size 3 sim set to "40 NRG veggy per cycle." Here, "avg chlr" is equal to the total number of chloroplasts divided by 16000, since that is what is used to determine the repopulation limits and is what is displayed at the bottom of the screen. I calculated the total nrg per cycle, to give a good idea of how much energy is entering the sim, as well as the nrg per avg chlr per cycle, to balance for the fact that more chloroplasts generate more energy.
- 325 bots, 1 chloroplast each, light level 30837: Total of 20 nrg per cycle. About 985 nrg per avg chlr per cycle.
- 1 bot, 325 chloroplasts, light level 31996: Total of 7 nrg per cycle. About 345 nrg per avg chlr per cycle.
- 32 bots, 1000 chloroplasts each, light level 31820: Total of 512 (but sometimes 544) nrg per cycle. About 256 (sometimes 272) nrg per avg chlr per cycle.
- 1000 bots, 32 chloroplasts each, light level 28422: Total of 1000 nrg per cycle. About 500 nrg per avg chlr per cycle.
- 1 bot, 32000 chloroplasts, light level 31996: Total of 224 nrg per cycle. About 112 nrg per avg chlr per cycle.
- 30 bots, 32000 chloroplasts each, light level 31798: Total of 6660 nrg per cycle. About 111 per avg chlr per cycle.
So, I guess my point here is that these settings don't do a good job of describing their effects. The setting of "40 NRG veggy per cycle" does not describe these end results.
First of all, this setting should be renamed to include chloroplasts in its name, because it does not involve the number of veggies. Rather, it involves the number of chloroplasts. It functions as a multiplier on the feeding formula.
If a bot has a high number of chloroplasts, each bot can receive up to 5x as much nrg per cycle as compared to the setting. If there are many bots, with the same total number of chloroplasts, then there is a very high efficiency, and the nrg per avg chloroplast is much higher than the setting. You can see this above.
One thing to point out is that this change in efficiency (as the chloroplasts per bot decreases) is actually pretty major. Let's say that you start with 1 bot with 32000 chloroplasts. Then it slowly divides into 1000 bots with 32 chloroplasts. Now, even though the chloroplast count remains constant, the rate of nrg creation has quadrupled. There are 1000x more bots to share that energy, so each individual bot gains energy very slowly, but there are also 1000x more bots with the ability reproduce. This all cancels out in the end, so you actually end up with a rate of reproduction which increases over time. On this basis, I don't think that the current system does a good job of accomplishing task #2, which is to limit population.
The main problem is that these settings (max number of veggies and NRG per veggy) do not do a good job of telling me how much energy is entering the sim.
Most of this can be alleviated by renaming the settings to something meaningful, like changing "veggy" to "chloroplasts." This will fix some confusion.
Some of this, I don't really know how we might fix it.
One possibility is changing the chloroplast formula by dividing all feeding rates by the magic number 3.54. This way, when you enter 40 NRG per veggy per cycle into the text box, then the feeding rates are actually multiplied by 11.3 rather than 40. That way, when a veggy has 16000 chloroplasts (1 "avg" chloroplast) and 32000 light, then it will actually receive 40 energy per cycle.
A second possibility is the creation of two maximums. There could be the maximum number of chloroplasts (like currently), as well as the maximum number of repopulating robots.
A third possibility it that we can change the way that we turn the sun off once energy levels are too high. Rather than toggling the sun completely, we can just lower the feeding rates once nrg is above a certain level. Completely turning off the sun destroys any advantage to having chloroplasts, but lowering the feeding rates accomplishes the same goals without destroying those advantages.
A fourth possibility is to change the chloroplast formula by dividing all feeding rates by the magic number 26.27. This way, the "NRG per veggy" setting, multiplied by the "max avg. veggies" setting, gives the actual maximum feeding rate for the entire sim. So, if I have 40 NRG per veggie and 1 max veggy, then there will be an absolute maximum of 40 nrg per cycle (this implies 1 chlr per veggy, as that is the most efficient).
These are just ideas I am throwing around, but the main goal is to make energy management and population control more intuitive and meaningful.