General > Announcements

Version 2.42.6 Released

<< < (2/6) > >>

EricL:
I should probably explain the autocost multiplier adjustment algorithym.

All costs you specify get multiplied by the autocost multiplier as they are applied.  This multiplier is the number displayed in the tray as CostX.  It is also grpahed in the Auto Costs Stats graph.  All prior program versions can be thought of as always applying a multiplier of 1.  Similarly, if the 'Enable Dynamic Cost Adjustment' checkbox is unckecked, the multiplier is fixed at 1.

The multipler can change cycle to cycle.  If the total bot population (including vegs, corpses, walls - we may want to change this to only extant hetertrophs in subsequent releses) is within 10% of the target specified in a given cycle, no change is made.  The multiplier stays at whatever it was the last cycle.

If the bot population is above the target by more than 10 % then the multiplier is increased if
      1) The bot populatuion this cycle is greater than it was last cycle
 or  2) The bot population has remained the same for 10 cycles.

Note that if the population is falling, it is moving towards the target and thus in the direction we want.  So, even if it is above 10% of the target, the multiplier will not be further increased as long as the population continues to move towards the target at a reasonable pace.

The converse happens when the population is more than 10% below the target number.  Namely,

If the bot population is below the target by more than 10 % then the multiplier is decreased if
      1) The bot populatuion this cycle is less than it was last cycle
 or  2) The bot population has remained the same for 10 cycles.

The amount the multipler is adjusted is a function of two things:

      1) Tthe sensitivty slider.  The slider is a value from 1 to 1000.
      2) How far out of the target range the current population is.

Specifically, the multiplier is adjusted usign the following formula:

(0.0000001 * (Abs(AmountOff) - TenPercent) * sensitivity

Where

AmountOff = the difference between the current population and the target number
TenPercent is 10% of the target value.

An example is called for.  Lets say the target population is 1000.  Then the "target range" is 900 - 1100.   If the population is in this range, no changes will be made to the multipler.

Lets say the multipler is currenty at 0.5 and the sensitivity slider is in the middle at 500.  This means that all the costs are currently being multplied by 1/2.  Life is easier in the sim then it would be if you were not using Dynamic Cost Adjustment.

Now lets assume some new adaptation occurs and the population grows to 1200 in a single cycle (unrealistic, but lets go with it for the purposes of this example).

Then AmountOff = 1200 - 1000 = 200

The multiplier would be increased by 0.0000001 * (200 - 100) * 500 = 0.005 that cycle.  

The new mutplier would be 0.505, increasing costs slightly, providing pressure for the poipulation to come down over time.

The last thing that needs explaining is what happens to the multiplier if the populatiuon falls below the "No Costs" threshold.  If you have this checkbox enabled, adn the population falls below the indicated level, then the multipler gets set to 0 and it will stay at 0 until the bot population comes back up and rises above 10% over the target number at which point it will start increasing as above.  Ramping the costs up slowly like this allows for evo sims to apply costs slowly as populations build or let populations recover after a mass extinction.  Can you say "Adaptive Radiation?"

It is an interesting question as to whether the multiplier should be allowed to go negative.  Right now, it is prevented from doing so, but I'm open to input here.

PurpleYouko:
OK I give up. Where have you put the control that enables bouyancy in pond mode?  

My Alga Stratificus doesn't float up and down with day and night cycles any more.

PurpleYouko:
And corpses no longer shoot in random directions or sink to the bottom.  

EricL:

--- Quote from: PurpleYouko ---OK I give up. Where have you put the control that enables bouyancy in pond mode?  

My Alga Stratificus doesn't float up and down with day and night cycles any more.
--- End quote ---

I don't think 2.4X has ever had such a control.

PurpleYouko:
WHAAAA.....????  

How many more fundamental things were not ported over from 2.37?

I think you should go take a look at 2.37 and play with it for a while to see the things it has that apparently 2.4 doesn't.

The entire concept of pondmode is rather meaningless unless stuff can float in the water. I implemented it as a side-on view into a watery world like a pond or a fish tank. Many of my robots use the .setboy controls to use the *.depth to their advantage.

Alga Stratificus floats to the surface in the day time and sinks to a depth of about 4000 at night so that robot shoals have to adapt to this in order to feed efectively.

Corpses have a bouyancy value of -2000 so that they sink to the bottom of the pond and make a rich organic ooze layer in which other robots (particularly bottom dwelling veggies) can grow. That is the reason for the corpses to be able to select decay mode. The waste feeds the bottom veggies.

You are doing a great job with 2.4 but the number of things that have been lost in the transition from 2.37 just make me sad.  

And there is one more weird thing that I discovered in a sim with Alga Stratificus and Anon Terrifica. When Anon feeds (very small bot) it sucks energy from the veggie very slowly, giving the tie time to contract to what appears to be zero length. Anon ends up right inside the veggie almost every time.  

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version