Go to Post Define "surgery". I think we have enough close calls with "surgery" as it is. Thank god for disable dongles. - geeknerd99 [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 09-03-2015, 19:32
jlmcmchl jlmcmchl is offline
FF - The Breakfast Company
AKA: Jordan McMichael
FRC #0027 (Team RUSH 27)
Team Role: Alumni
 
Join Date: Feb 2012
Rookie Year: 2011
Location: Clarkston,MI
Posts: 327
jlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud of
OPR Breakdown Calculator




As per this post, I've created an app that calculates total and component OPRs for each team at an event. It requires an internet connection to get the data, but it will save the data as a CSV file for easy importing into Excel or a similar program, Tableau included.

Requirements:
Python 2.7, a Free and Open Source programming language.

On installation, make sure the Tk libraries are installed, which are required for the interface.

If there are any errors encountered, message me with the error log and how it occured on CD, and I will make sure it's fixed.

DOWNLOAD:
Git Repository Link
Direct Download Link

Future plans:
  • Caching/Locally storing event data
  • Minimization of bandwidth usage
  • Event Listing Refreshment
  • Abstraction to handle addition years' data
Reply With Quote
  #2   Spotlight this post!  
Unread 09-03-2015, 19:45
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,071
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: OPR Breakdown Calculator

Quote:
Originally Posted by jlmcmchl View Post
I've created an app that calculates total and component OPRs for each team at an event.
How are you handling surrogates and DQ ?


Reply With Quote
  #3   Spotlight this post!  
Unread 09-03-2015, 20:17
jlmcmchl jlmcmchl is offline
FF - The Breakfast Company
AKA: Jordan McMichael
FRC #0027 (Team RUSH 27)
Team Role: Alumni
 
Join Date: Feb 2012
Rookie Year: 2011
Location: Clarkston,MI
Posts: 327
jlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud ofjlmcmchl has much to be proud of
Re: OPR Breakdown Calculator

Quote:
Originally Posted by Ether View Post
How are you handling surrogates and DQ ?


At the moment, I'm treating them as if they were not. Which means, that the component OPRs are non-representative of their representative values under the total OPR. However, I propose a solution:

Total OPR should be calculated via the match results, without modification, with Cholesky Decomposition.

The component OPRs, however, do not take surrogate/dqs into account. I propose that, for matches with surrogate/dq'd teams, those teams are not credited for that match: for their row in matrix A, none of the columns are incremented. However, for the non-surrogate/dq teams, the columns representing their alliance partners are incremented. So, matrix A will be asymmetric, which would require a different way to solve the system.

At the moment I'm occupied and cannot test this, but when I do I'll edit this post with my results.
__________________


Field reset: Kettering Kickoff ('13, '14), Kettering ('14, '15), Bedford ('14), Woodhaven ('16), Carver ('16), Einstein! ('16)
Referee: Bedford ('15), MARC ('15, '16), Kettering Kickoff ('15, '16), Kettering District (#1&2: '16), Troy ('16)
Reply With Quote
  #4   Spotlight this post!  
Unread 09-03-2015, 20:29
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,071
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: OPR Breakdown Calculator


There's a discussion going on over here as well:

http://www.chiefdelphi.com/forums/sh...73#post1455773


Reply With Quote
  #5   Spotlight this post!  
Unread 09-03-2015, 22:07
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,071
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: OPR Breakdown Calculator

Quote:
Originally Posted by jlmcmchl View Post
Total OPR should be calculated via the match results, without modification, with Cholesky Decomposition.
The only problem I see with that is DQs. If a team is DQ'd and doesn't play, does it make sense to include the 2-team alliance's score in the DQ'd team's OPR?

Quote:
The component OPRs, however, do not take surrogate/dqs into account. I propose that, for matches with surrogate/dq'd teams, those teams are not credited for that match: for their row in matrix A, none of the columns are incremented. However, for the non-surrogate/dq teams, the columns representing their alliance partners are incremented. So, matrix A will be asymmetric, which would require a different way to solve the system.
Doing what you suggested above does not cause the matrix for the normal equations to be asymmetric. It will still be square, symmetric, positive definite. It doesn't require a different way to solve the system.

I use the following nomenclature to avoid confusion: [A] is the alliances design matrix. It is a binary matrix (each element either 1 or 0). Its dimensions are 2MxT, where M is the number of matches (therefore 2M is the number of alliances) and T is the number of teams.

[b] is the column vector of alliance scores. Its dimensions are 2Mx1. Its elements come directly from the alliance scores in the MatchResults table.

[A][x]≈[b] is an overdetermined system of equations: there is no exact solution for [x].

To find the least squares solution for [A][x]≈[b] you can form and solve the normal equations.

Set [N]=[A']*[A] and [d]=[A']*[b]

Then [N][x]=[d] are the normal equations.

[N] will be square, symmetric, positive definite.

[N][x]=[d] has an exact solution, and that solution is the least-squares solution to [A][x]≈[b].

I took the MatchResults data from the ININD event, formed the design matrix [A], manually removed Red Team1 (5010) from the first match, used that modified [A] to compute N=[A']*[A], and tested [N] for symmetry. It was symmetric. I successfully used [N][x]=[d] to compute [x].

So bottom line, mathematically what you proposed creates no problem for the linear algebra.


[EDIT] BTW, nice work on that Python script. It worked for me straight out of the box :-)




Last edited by Ether : 10-03-2015 at 00:09.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 01:41.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi