Skip to content

[Model] Strange fine tune condition

Summary

Using the brute force optimization (i.e. DISCRETE) there is some strange condition for which a worse solution might be accepted (see StepCircleOptimizerDiscrete line 71):

fineTuneCondition = (Math.abs(currentPotential - potential) <= 0.0001 && random.nextBoolean());

followed by

if (currentPotential < potential || fineTuneCondition) { potential = currentPotential; nextPos = currentPosition; }

which means that if there is a solution which is worse 0.0001 than the current solution there is a 50% chance that this solution will be used. By my opinion this seems to be a dirty fix for some issue in the past (the line is there since the initial commit).

The error appeared after using a random seed while setting the standard deviation to zero everywhere and using a fixed agent positions which should result in the same results for all simulations which was not the case.

I removed that line using a new branch (dev/removeFineTuneCondition) and I would merge this change into the master if everybody (@hm-kleinmei @hm-mgoedel @hm-lehmberg ) agrees.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information