|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
OPR calculation
Is there a tool/spreadsheet on CD that helps compute OPR based on match results? I'd like to do so for the MN FTC Qualifying regionals. I believe I saw a white paper on the topic before, but I'm having trouble finding it now -- I tried searching.
The difference for FTC is that qualifying matches are 2v2. Thanks. |
|
#2
|
||||
|
||||
|
Re: OPR calculation
Quote:
|
|
#3
|
|||
|
|||
|
Re: OPR calculation
Quote:
I'd like to explain the math to the kids (at a high level at least) which I think I can do from what I recall reading about it months ago. (Assume each team always contributes same points toward each match total, then come up with these per team values that best approximate actual match scores.) Then I'd like to calculate it using an 'easy to use' tool. I don't think the kids could start from the underlying math explanation and do it themselves, and they don't really have the time to invest in that excercise (though I may be surprised about that) I have 73 teams, up to 32 matches at each of 5 tournaments-- so ~160 matches of data total. |
|
#4
|
||||
|
||||
|
Re: OPR calculation
Quote:
Attached is a simple-to-use tool which accepts data in the following format: RED1 RED2 RED3 BLUE1 BLUE2 BLUE3 RED_SCORE BLUE_SCORE ... and calculates all sorts of stats, including OPR, and outputs the results to a CSV file which can be opened directly in Excel. Tell me what format your data is in and maybe I can make a few simple changes so it can process the whole batch for you. |
|
#5
|
|||
|
|||
|
Re: OPR calculation
Quote:
http://www.hightechkids.org/sites/de...%20Results.pdf There are four other similar pages for the other tournaments. I did enter one tournament into Excel with columns: Tourney#, Match #, Color, Score, Team# (total of four rows per match) This format can be easily adjusted, of course. I also just realized I can copy/paste into a text file and get this: Q-1 117-161 B 7972 8034 7661 2887 Q-2 11-82 B 6707 7000 4140 8005 That's: Q-Match# RedScore-BlueScore WinningColor(R/B) Red1 Red2 Blue1 Blue2 It gets a little messed up at page breaks in the PDF but that's trivial to fix. Last edited by jvriezen : 27-01-2014 at 19:28. |
|
#6
|
||||
|
||||
|
Re: OPR calculation
Quote:
It's a 32-bit Windows console app written in Delphi. [EDIT] added README.TXT Last edited by Ether : 12-01-2017 at 08:44. Reason: added attachment |
|
#7
|
|||
|
|||
|
Re: OPR calculation
I have a spreadsheet with the OPRs from the 7 FTC qualifiers in MN that I would be willing to send you. It calculates OPRs slightly different - it uses a set a successive approximations, estimates the error, corrects, and tries again. When I have checked it against the published numbers it seems to come up with the same answers. I found it easier to explain to middle school students than matrix mathematics.
One major issue I have seen so far in this years FTC game is a few penalties can really play havoc on the OPRs across the tournament. For example: on the Saturday of the Burnsville tournament, 9078/9414 got an additional 190 penalty points in a match. That penalty alone moves their OPRs from the mid 20s to the mid 60s. Team 8034 had matches with both of those robots later in the day, so that penalty lowers 8034 OPR from 31 to 12 - even though they were not involved in the original match. The Sunday in Columbia Heights has a similar situation with 11270/5330 getting a 150 point boost in a match. |
|
#8
|
||||
|
||||
|
Re: OPR calculation
Quote:
How do you compute the successive approximations? How do you compute the successive corrections? Please explain it to me the same way you explain it to your middle school students. I won't be offended. Quote:
*Perhaps Gauss-Seidel? Is that easier for middle school students to understand? Last edited by Ether : 12-01-2017 at 10:56. |
|
#9
|
|||
|
|||
|
Re: OPR calculation
It uses this algorithm:
1. for each robot -> (sum of scores) / matches / (robots per match) --> uses this as initial OPR 2. Estimates the score for each match using OPR 3. Calculates error using (real score) - (estimated score) 4. Calculates a new OPR using (OPR) + [(sum of error)/(robots per match)/(# of matches per robot)] 5. Then keep looping back to 2 until I got sick of copying columns (roughly 50 times). It seems to pass all the sniff tests - the average OPR converges to average score/2, the average adjust goes to zero, the average error goes to zero, and it seems to match OPR examples I could find online. Last edited by Whatever : 12-01-2017 at 11:50. Reason: clarification |
|
#10
|
||||
|
||||
|
Re: OPR calculation
Quote:
So I don't see how it could converge to OPR (the de facto definition of OPR on CD is a least-squares solution to the overdetermined system). |
|
#11
|
||||
|
||||
|
Re: OPR calculation
Quote:
|
|
#12
|
||||
|
||||
|
Re: OPR calculation
Quote:
But taking his post at face value, this is how I interpreted what he wrote (my comments in [red]): Quote:
If the above is the correct interpretation of what Whatever meant, it's completely different form wgardner's post you linked. |
|
#13
|
||||
|
||||
|
Re: OPR calculation
OPR math:
OPR explained using St Joe event data as example: http://www.chiefdelphi.com/forums/sh...0&postcount=11 "formula" for OPR: http://www.chiefdelphi.com/forums/sh...0&postcount=36 Ed Law's OPR paper http://www.chiefdelphi.com/media/papers/2174 Jay Lundy's OPR & DPR http://www.chiefdelphi.com/forums/sh...&postcount=160 ... I'm sure there are others |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|