Bin Smoothing
Revision as of 14:16, 10 June 2009 by Nat (talk | contribs) (→Bots Using Bin Smoothing: add some bots)
This article is a stub. You can help RoboWiki by expanding it. |
Bin Smoothing is the process of spreading or normalizing the values stored in a Bin for Wave Surfing or Segmentation. It's not needed for Wave Surfing or Segmentation, but can, in theory, improve performance if done right.
Contents
How Bin Smoothing works
Bin Smoothing 'flattens' small spikes within it's Bins.
Bin Smoothing Formulas
If you have your own Bin Smoothing Formula, feel free to post it here.
Pugilist's
double smoothedVisits(int index) { double smoothed = 0; int i = 0; do { smoothed += (double)visits[i] / Math.sqrt((double)(Math.abs(index - i) + 1.0)); i++; } while (i < Pugilist.FACTORS); return smoothed / Math.pow(distanceToTarget() / bulletVelocity, 1.3); }
PPP
double smoothedVisits(int index) { double smoothed = 0; if (index > 0) { smoothed += visits[index - 1] / 2; } if (index < FACTORS - 1) { smoothed += visits[index + 1] / 2; } smoothed += visits[index]; return smoothed; }
Other ways
Math.pow(0.5, Math.abs(index - count))
This does a 50% decrease.
Math.pow(0.1, Math.abs(index - count))
This does a 90% decrease
1.0/(double)(1 + (index - count)*(index - count))
Bots that use this technique
- DrussGT
- Dookious
- Phoenix
- BasicSurfer
- (all VCS wave surfers)