|
Re: The FIRST Alliance - A whole new way to play
OPR and DPR are calculated as described below. This is the same way that they are calculated for OPRNet and all other opr programs.
Take all teams at an event, count this set as T.
Create a matrix which is TxT, so you end up with a column and row for every team. We will refer to this as M and will describe how many times a team plays another.
So if T was (1,5,9) the M would be
1 5 9
1 - - -
5 - - -
9 - - -
Also, make a matrix that is 1xT and this will be O and will contain sum of all points a team scored
and thirdly, made a matrix 1xT which will be called D, and will contain sum of all points scored against a team
Now, for every match at an event follow the next few steps of logic
1) Increment M[A,B], if A!=B, increment M[B,A]
2) do 1 with A = red 1, B = red 1
3) do 1 with A = red 1, B = red 2
4) do 1 with A = red 1, B = red 3
5) do 1 with A = red 2, B = red 2
6) do 1 with A = red 2, B = red 3
7) do 1 with A = red 3, B = red 3
8) 2-7 with blue instead of red
9) for all red teams, O[red 1-3] += red_score
10) for all red teams, D[red 1-3] += blue_score
11) for all blue teams, O[blue 1-3] += blue_score
12) for all blue teams, D[blue 1-3] += red_score
then take inv(M) * O, and you get OPR's
and take inv(M) * D, and you get DPR's
this write-up may be a bit flawed, but thats the general flow of how OPR's and DPR's are calculated.
Also, right now we do have OPR's and DPR's per-team per-event, but as of now, we don't really have a clean place to put those details. So the power-rankings page is just the highest average OPR/DPR.
__________________
|