|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
||||
|
||||
|
Re: 2015 OPR After Week Three Events
Thank you for being patient. The World OPR now has the components published. The memory problem I had was due to the A(T) * A operation. With 40-60 teams, that is not a big deal. But when I calculate the World Component OPR, after 3 weeks, we have about 1800 teams. That is a 1800 X 1800 matrix and a total of over 6 billion multiplications and 6 billion additions.
I finally have to swap the rows and columns of the matrix to reduce the amount of memory paging in and out. It still took over 10 minutes on my i5 computer with 4 GB of memory. It is done. I am not looking forward to when there are 2900 teams after 6 weeks of competition. It will take over 40 minutes just to calculate that A(T) * A. I need a faster computer to do this! May be I will borrow our team's CAD workstation to run this. It has an i7 and tons of memory. |
|
#2
|
||||
|
||||
|
Re: 2015 OPR After Week Three Events
Ed, see the email I just sent you. You can generate the [N] matrix directly (with surrogates omitted) from the raw match results data, bypassing the [A']*[A] operation. [N] will still be symmetric positive definite if you do it right. Let me know if you need more info. FWIW: Tools like Octave support sparse matrices. Perhaps the most recent versions of VBA also do? Using sparse matrix technology, Octave takes only 16 milliseconds to compute [N]=[A']*[A], and another 16 milliseconds to compute [x]=[N]\[d], for 1812 teams and 7292 alliance scores (3646 matches). PS: This might be a quick fix: Does your version of VBA support integer multiplication of integer matrices? Both [A] and [N] are integer. Set the integer size to the native word size of your machine (probably 64-bit). PPS: I attached the [A] and [N] matrices if anyone is curious. Last edited by Ether : 17-03-2015 at 13:52. Reason: added integer PS |
|
#3
|
||||
|
||||
|
Re: 2015 OPR After Week Three Events
Quote:
|
|
#4
|
||||
|
||||
|
Re: 2015 OPR After Week Three Events
Are you an R power user?
Perhaps you could answer this question for me. Note: The question is specifically how to do the LAD computation using R. I have already successfully used AMPL & GAMS (MINOS, Gurobi, MOSEK, OOQP), Python (CVXOPT), and Octave (GLPK); I'd like to compare R's performance. |
|
#5
|
||||
|
||||
|
Re: 2015 OPR After Week Three Events
Quote:
|
|
#6
|
||||
|
||||
|
Re: 2015 OPR After Week Three Events
Quote:
That is why I did not suggest that he switch to Octave, which is free, and easy to use, and very fast (see my previous post). I made three suggestions: 1) Find out if VBA now supports sparse matrices. If so, that is arguably the best solution. 2) Make the A an N matrices integers and do integer matrix multiply (if VBA supports it) to create N=A'*A . If that works, it would be a fairly simple fix. 3) Generate the N matrix directly from the raw match results data, without incrementing the appropriate 4 matrix elements (2 for each alliance partner) for each surrogate team. This involves more coding, but it would avoid the A'*A computation that is presently taking so much time in the spreadsheet. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|