|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
An improvement to OPR
Just a thought I had recently while working on some interesting linear algebra problems. Given that OPR is generated is generated by This
(thanks to Ether for this) All of the operations performed to compute OPR are completely functional for complex numbers, so there appears to me to be no reason why OPR could not be solved for complex numbers where the real part of the element in the matrix is the teleoperated score and the imaginary part of the complex number being autonomous score. This should yield an OPR matrix containing complex entries, which theoretically should have a least squares average for both teleop and auton. |
|
#2
|
||||
|
||||
|
Re: An improvement to OPR
What advantage does this have over simply calculating independently with just auto scores, and then just teleop scores, and then just climb scores? I've actually seen people do that.
And the results are fun sometimes because you get teams where their climb OPR is like -2. |
|
#3
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
Quote:
P = (A^-1) * S where P is the OPR, A is the binary matrix denoting teams in each alliance and S is the alliance scores, then Frenchie461 is essentially advocating Pt + Pa*i = (A^-1) * (St + Sa*i) and since matrix multiplication is distributive Pt + Pa*i = (A^-1) * St + ((A^-1) * Sa)*i So you'll end up with the same result as calculating each OPR component independently. You'll get least-squares best fit for each component (as you would otherwise), but there won't be any additional interaction gained between them. This makes sense, because the least-squares fitting part of the operation happens when taking the inverse of A, and isn't affected by the value of S (whether real or complex) that it is post-multiplied by. Performance-wise, I would guess they would take about the same amount of time, assuming you're not re-calculating the value of A^-1 when doing the calculations independently. note: the inverse operation written ^-1 above becomes the generalized inverse for non-square cases of A |
|
#4
|
|||
|
|||
|
Re: An improvement to OPR
I'm not sure how this is an improvement; your code might be more concise but only if you're working with a computational package like MATLAB.
|
|
#5
|
||||
|
||||
|
Re: An improvement to OPR
It's only an improvement so far as it's more data than most teams usually compute, and it should be computationally faster than a pair of OPR calculations. Hypothetically, let's say that OPR is a O(N^3) operation, with this method it's N^3 to find auton and teleop rather than 2(N^3).
|
|
#6
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
In the formula for OPR, namely [A][OPR]~[SCORE], [OPR] and [SCORE] need not be vectors - they can be matrices. So instead of [OPR] being a Nx1 column vector, it can be an Nx2 matrix... and [SCORE] can be a (2M)x2 matrix. The first column of [OPR] and [SCORE] can then be for TeleOp, and the second column for Autonomous. This can be extended to any desired number of columns. For example use 4 columns for TeleOp, Autonomous, Climb, and Foul points. Adding extra columns to [OPR] and [SCORE] increases the computation time only minimally, since the lion's share of the computation is spent factoring [A]T[A]. Last edited by Ether : 10-05-2013 at 10:13. |
|
#7
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
)Other than that, it's a cool idea and would be a fun way to team the concept to new students around that level. In terms of data though, I don't know that it brings something new. It'd actually complicate my work to do it that way, because the matrix case Ether describes allows the simultaneous calculation of endgame OPR by the same method (i.e. it's not limited to 2, and we're looking for at least 3 basically ever year). |
|
#8
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
http://www.chiefdelphi.com/forums/sh...t=twitter+data It has everything you need. Last edited by AGPapa : 10-05-2013 at 11:32. Reason: spelling |
|
#9
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
http://www.chiefdelphi.com/forums/sh...53&postcount=1 As with any analysis using Twitter data, caveat utilitor. |
|
#10
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
Quote:
[/and now back to your regularly scheduled thread] |
|
#11
|
||||
|
||||
|
Re: An improvement to OPR
Note that the OPR parameters are like any other statistical measure and have standard errors associated with those parameters. I haven't seen the SEs posted with the OPR parameters, but I can tell you that the SEs are likely to be VERY large for so few observations--only 8 per team at the Champs, at most 12 in any of the regionals. The OPRs are useful indicators, and probably can be used in a pinch if you lack other data, but they are highly unreliable for live scouting. I wouldn't bother calculating them on the fly at a competition. (The CCWM and DPRs appear to be even less reliable).
Our team had an OPR of 43 on Curie, yet our own scouting data showed we were scoring over 62 per match--quite a discrepancy. 4814 showed a CCWM ranked only 33rd yet went undefeated, and our defensive scouting data confirmed that they had substantial value added. |
|
#12
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
Also, DPR may be less reliable than OPR, but I've been told too many times that it's totally meaningless. It isn't. It just doesn't mean what people think that it means. It's purely how many points your opponent scores. So last year, when we were a robot that scored just enough points at championship to make it so that we were better off playing offense than defense our DPR was awful, while this year our DPR was great because opposing alliances were forced to defend us, and therefore have one less robot scoring. |
|
#13
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
Quote:
|
|
#14
|
||||
|
||||
|
Re: An improvement to OPR
Quote:
|
|
#15
|
|||
|
|||
|
Re: An improvement to OPR
Yes.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|