does bin smoothing make guns better or worse

Jump to navigation Jump to search
Revision as of 25 November 2013 at 21:07.
The highlighted comment was created in this revision.

does bin smoothing make guns better or worse

Edited by author.
Last edit: 13:25, 21 November 2013

can someone tell me if bin smoothing makes guns radar movement better or worse

    Tmservo (talk)05:52, 21 November 2013

    It doesn't do much for guns, but it helps a lot for wave surfing.

      Skilgannon (talk)07:17, 21 November 2013
       

      In movement, Bin Smoothing helps bots dodge bullets with a margin of safety.

      In radar, why would you use bins?

      In guns, Bin Smoothing helps spot crowds in melee/team if combined with swarm targeting. In 1v1 I don't see any use.

        MN (talk)01:52, 23 November 2013

        see even the pros learn when they post about stuff

          Tmservo (talk)04:18, 23 November 2013
           

          @MN and Skilgannon: While those things are true, I think those descriptions miss the underlying point of why bin smoothing is helpful. In both targeting and dodging, what one is trying to do is to estimate the PDF (probability density function) curve of the opponent's movement/targeting. Whenever one is estimating a PDF curve (not just in Robocode) from a finite number of observations, and the system has some inherent noise or unpredictability, it will give a more accurate estimation of the true PDF curve if one applies the correct amount of smoothing. Now, how much is the "correct amount" is a complicated question that depends on how much noise/uncertainty your measurements have, how much noise/uncertainty the process being measured has, and how many measurements you have (reminds me of Kalman filters, similar principals come into play). In Robocode most people just pick a certain amount of bin smoothing that seems to work for them, but I feel it is worth pointing out that this is just one application of PDF curve estimation, and that there are methods of estimating the correct amount of smoothing which to my knowledge have not yet been applied to Robocode. (I'd guess you two already are well aware of this, but I just feel like rambling)

            Rednaxela (talk)20:52, 23 November 2013

            Instead of applying methods of estimating the correct amounts of bin smoothing, people tend to switch to kernel density and tune the kernel function. There was a lot of discussion about the best kernel function and the best function width. The optimal changes for each opponent and some kind of averaging is needed, which is usually estimated through genetic tuning.

            In guns, smoothing usually has no effect because you don't need to estimate the PDF, you only need to find the peak. But when you superpose many PDFs together (swarm targeting), things change.

              MN (talk)01:51, 25 November 2013

              Estimating the PDF can still a useful component of finding the peak when not superimposing things, particular when the density of observations is sufficiently low. The main reasons you don't see much effect in targeting is that the usual bin sizes inherently act similar to a certain amount of smoothing anyway, and for targeting you have a larger number of observations than movement which reduces the amount of smoothing that makes sense as well. Consider what happens when your bins are significantly smaller than what is typical without any additional smoothing. (A targeting system that accounts for botwidth also reduces the amount of smoothing that makes sense, but that's a bit of a different matter)

                Rednaxela (talk)14:41, 25 November 2013

                For me two things make smoothing more useful in movement than in targeting:

                1. Movement needs to estimate probability at arbitrary points, instead of a single peak, so the location the probability is required at isn't related to where data is available.
                2. Movement has much less data than targeting, so smoothing is needed to fill in gaps in knowledge.

                Theoretically smoothing might help in targeting, but all my testing has shown that a simple square kernel works just as well or better, while running many times faster.

                I've also considered something like Kalman filters, but they are Unimodal which doesn't work for targeting or movement at all. Perhaps particle filters, although the histogram filters we have right now in VCS also work pretty well.

                  Skilgannon (talk)22:07, 25 November 2013