Thursday, January 13, 2011

Darts


Over break I went out with a buddy of mine and played some darts. This got me to thinking, where exactly should someone aim in order to get the largest expected number of points?

Now, obviously when you are playing a game like Cricket, where you should aim is fairly obvious, you are trying to hit particular numbers on the board, but in the most popular darts game -501, for most of the game you are just trying to accumulate points. So, where should you shoot on the board to get the most points? Well, something that I didn't quite realize before I started this adventure is that while the double bullseye in the center is worth 50 points, the triple 20 is worth more: 60 points.

For the uninitiated, in games like 501 you score points based on where the dart falls. The center is the bullseye, where the inner most circle is worth 50 and the ring around it is worth 25, after that you score depending on which of the pie slice things you fall in, the points being the number on the slice. The little ring around the outside is worth double points, and the little ring at about half the board radius is worth triple points.

So perhaps the triple 20 is where you should be aiming all the time. But you'll notice that to the left and right of the 20 section are low numbers 1 and 5. So you might suspect that if you can't throw all that accurately, you'll be paying a price for shooting at the triple 20.

The Model

In order to answer a question like that, we need to develop a model for dart throwing. In this case, I thought it was safe to assume that dart throws are normally distributed about the place you aim, with some sigma determined by your skill level.

To the left is an example of what normally-distributed dart throws look like when the aim is at the center, and with a 1 inch standard deviation in the throws. The dashed line marks a one inch ring to give a sense of how scattered darts can be from 1 standard deviation.

Results

So, off I went, having drawn a dart board (to regulation) in Gimp, and coloring each section in gray scale according to its point values, I used python to perform all of the necessary computations (using primarily the ndimage package in scipy). The result can be seen below.


This image shows the optimal position on the board to aim for as a function of how good of a player you are. The rings denote the sigmas, and the dots the center point to aim for. The colorscale gives a quantitative measure of the sigma, in inches.

As you can see, the best players should (and do according to youtube) aim for the triple 20, since they are good enough to hit it most of the time, but once you're throw is at about a 1 inch sigma, you should be aiming for the triple 19 in the bottom left. As you can see on the numbered board at the top, the triple 19 is buffered on either side by the 3 and the 7, which are both 2 points above the 20 section's neighbors (1 and 5). So as you might expect if you have a reasonable chance of hitting the sections to either side, the triple 19 offers a higher expected score in the long run.

The other limit we can understand is the limit of really bad throws. If you have a nontrivial chance of missing the board altogether, then obviously you should just aim for the center of the board, in the hopes that you at least hit the thing.

But interestingly, in between the track that the optimal aiming point takes is a little interesting. It tends to the center (as we should expect), but it takes a curvy sort of root along the bottom left quadrant of the board. Neat.

Heat Maps

In order to get a little better of a feel for why the track takes the path it does, I decided to look at the heat maps for the expected score at every location on the board for a set of given sigmas. So, in the images below, the colors above the board indicate the relative score expected if you aimed at that point.

Above is for a quarter inch sigma throw [Click to zoom]. Notice that the triple 20 is the place to hit, as expected.

Above is a half inch sigma throw. The triple 20 is still in the lead, but not by a whole lot. You can really see how if your aim is as good as a half inch sigma, you can really still see the triple spots as true features.

Above is a 1 inch sigma throw. Now the lower left hand quadrant has taken over as the optimal place to throw. Notice that both the triple 16 and triple 19 make decent targets. The triple 14 also makes a showing, due probably to its large neighbors.

Above is a 1.5" sigma. The triple 20 is nearly gone as a place of interest on the board, since we are no longer good enough to really capitalize on it. The lower left hand portion of the board is the place to be. We've really sort of lost any distinct features of the triple spots, and now are just looking at quadrants of the board as a whole. Our aim seems to tend to center a bit, as we are now in a little danger of falling off the board.


At 2" sigma, we can really only hope to aim left-of-center.


At 2.5" sigma, we really just want to hit the board.

Lesson


So, now I know, personally, I really just ought to aim just left of center.

16 comments:

  1. Nice post - your sigma-map is already hanging besides the dart board in our lab ;)

    ReplyDelete
  2. Pretty cool analysis. It comes close to matching my real-life strategy. When I feel "on" I aim at the triple 20. If I'm not doing well on that, I move to the triple 19. And if I'm throwing absolutely terrible, I aim at the border between triple 14 and triple 11.

    One thing this doesn't take into account is that your spray area often isn't a circle. Since different things determine your vertical error (release timing, power of throw) and horizontal error (angle of arm), often you'll have an elliptical distribution. Often my vertical error is greater than my horizontal one, which is why aiming at the 14/11 triple can be a good strategy (I think?).

    Also, your error distribution can also be a function of where you aim. A short guy on my team is much better throwing at the triple 19 than the triple 20. But that's just down to knowing yourself and your strengths - it'd be pretty complicated to add that variable into the model.

    Anyway, cool stuff.

    ReplyDelete
  3. Make the optimal position map with a few more colored circles, make a high-res version, print it on some glossy posters, and throw those up on the Virtuosi Store!

    ReplyDelete
  4. ...and I thought a Gaussian blur was just an image smoothing technique!

    ReplyDelete
  5. If you had done this two years ago, you could've gotten a JRSS A article out of it!

    See http://www-stat.stanford.edu/~ryantibs/darts/.

    ReplyDelete
  6. Wow.. What an excellent post this is. Totally enjoyed reading it.

    ReplyDelete
  7. Could you potentially post this code to github or something? I'm trying to learn numpy/scipy and this could be cool to look at.

    Regardless cool post.

    ReplyDelete
  8. Hey Anonymous,

    super sloppy code I used is uploaded here. Don't mind the sloppy.

    ReplyDelete
  9. Badass. Science and programming prevails! Now to test with varying levels of BAC... ;)

    ReplyDelete
  10. So to calculate my personal optimal aiming point, I need to throw a lot of darts aiming at the same point, record all the hit locations, and from that I should be able to figure out my sigma. How do you start from an aiming coordinate and a set of hit coordinates, and work backwards to a sigma value?

    ReplyDelete
  11. This is an excellent post, and it really does a good job of explaining a counterintuitive concept about 501. However, there is one thing to consider here that is not mentioned, and worth exploring: the double and triple rings of numbers like 14 and 13 -- that is those numbers on the left and right sides of the board -- are easier to hit than, say, those of the 20s or 19s, which are at the top and bottom. This is because the nature of the throw is a vertical action (no one throws side arm). The more vertical parts of the ring are significantly easier to hit than the more horizontal parts. This can be observed in any dart league, where players must "double in" to begin the game. In doubling in, if a player is playing it safe, he shoots for the left side or the right side, not the top or bottom (even though 20 and 19 have the highest numerical value). So in considering the ratios on the map, I would try to account for that aspect of the percentages. Because a sigma around the triple 14 or triple 13 has a greater likelihood of being hit when aimed at, it should have a greater value on the map.

    ReplyDelete
  12. mhprater

    Several people have mentioned that they believe that human throws are not adequately modeled with Gaussian distributions on the board. I'm starting to believe them. Me and my buddies are thinking about digging a little deeper, taking data and seeing if we could come up with a more accurate model of throws for a follow up. If we carry through it'll show up on this blog, so stay tuned.

    ReplyDelete
  13. Fit your data to an elliptical Gaussian distribution. I suspect it will be inclined a bit from the vertical, which gives you the opportunity to analyze the difference in strategy between right and left handed throwers.

    ReplyDelete
  14. Have you considered the effects of ethanol concentration in the thrower? From personal experience I've found them to be non-trivial.

    ReplyDelete
  15. If you want your ex-girlfriend or ex-boyfriend to come crawling back to you on their knees (even if they're dating somebody else now) you must watch this video
    right away...

    (VIDEO) Have your ex CRAWLING back to you...?

    ReplyDelete