Difference between revisions of "Bin Smoothing"

From Robowiki
Jump to navigation Jump to search
m (→‎Other Ways: added another)
m (cleanup)
Line 1: Line 1:
 
{{stub}}
 
{{stub}}
Bin Smoothing is the process of spreading or normalizing the values stored in a Bin for [[WaveSurfing]] or [[Segmentation]]. It's not needed for [[WaveSurfing]] or [[Segmentation]], but can, in theory, improve performance if done right.
+
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.
=How Bin Smoothing Works=
+
 
 +
== How Bin Smoothing works ==
 
Bin Smoothing 'flattens' small spikes within it's Bins.
 
Bin Smoothing 'flattens' small spikes within it's Bins.
=Bin Smoothing Formulas=
+
 
 +
== Bin Smoothing Formulas ==
 
If you have your own Bin Smoothing Formula, feel free to post it here.
 
If you have your own Bin Smoothing Formula, feel free to post it here.
==[[Pugilist]]==
+
 
 +
=== [[Pugilist]]'s ===
 
<pre>
 
<pre>
 
     double smoothedVisits(int index) {
 
     double smoothedVisits(int index) {
Line 17: Line 20:
 
     }
 
     }
 
</pre>
 
</pre>
==PPP==
+
 
 +
=== PPP ===
 
<pre>
 
<pre>
 
double smoothedVisits(int index) {
 
double smoothedVisits(int index) {
Line 31: Line 35:
 
}
 
}
 
</pre>
 
</pre>
==Other Ways==
+
=== Other ways ===
 
<pre>Math.pow(0.5, Math.abs(index - count))</pre>
 
<pre>Math.pow(0.5, Math.abs(index - count))</pre>
 
This does a 50% decrease.
 
This does a 50% decrease.
Line 38: Line 42:
 
This does a 90% decrease
 
This does a 90% decrease
  
<pre>1.0/(double)(1 + (index - count)*(index - count))
+
<pre>1.0/(double)(1 + (index - count)*(index - count))</pre>

Revision as of 04:46, 9 June 2009

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.

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))