View Single Post
  #80   Spotlight this post!  
Unread 10-03-2009, 23:24
Manoel's Avatar
Manoel Manoel is offline
Registered User
FRC #0383 (Brazilian Machine)
Team Role: Mentor
 
Join Date: Jun 2001
Rookie Year: 2000
Location: Porto Alegre, RS, Brazil
Posts: 608
Manoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond reputeManoel has a reputation beyond repute
Send a message via ICQ to Manoel Send a message via MSN to Manoel
Re: Easy to use Offensive Power Rankings (OPR) program for mid-regional scouting

Quote:
Originally Posted by Bongle View Post
I just had an idea, which might resolve to CCWM/PMR, but I don't think it will.

It ends up with a 2N x 2N matrix (for a regional with N teams)

sum[team's scores] = weighted sum of OPRs of alliance members minus weighted sum of DPRs of opponents.

At first I thought that it would be unsolvable (each equation has 6 unknowns, and you'd end up with 2N unknowns and only N equations), until today I had the fairly-obvious brainwave that each match would give you two equations (one OPRred - DPRblue = scorered for red, one OPRblue - DPRred = scoreblue for blue). This approach seems like it would be more predictive of robot performance than simply doing OPR and DPR separately*. I'm going to try to implement it tonight, but if someone wants to try it themselves and report back, that'd be great.

*The problem with the current approach to OPR and DPR, especially in a game like lunacy, is that they assume that a alliance's score comes ENTIRELY from its teams' offensive powers, or ENTIRELY from its opponent's lack of mobility. This proposed new equation seems like it would balance the two, and hopefully give more accurate results.
I gave it a shot. I'm not sure I implemented it correctly, but matrix A (Ax = b) always comes up with a large conditioning number - nearly singular, which means that small changes in b, or the matches results, would result in huge shifts in OPR/DPR for teams.

Anyway, here are my results for the NY Regional:

OPR:
Code:
            1         1155       32.277
            2          694       31.639
            3           56       29.308
            4          395       24.951
            5         3059       23.105
            6         2344       22.331
            7         1600       22.075
            8          743       21.927
            9         2753       21.897
           10         1257       18.944
           11         1302       16.873
           12         2554       16.547
           13          335       13.228
           14          237       11.405
           15         1796       10.521
           16         1660       10.011
           17         1156       9.9718
           18         3004        9.263
           19         1881       9.2177
           20         2681       8.3132
           21         1862       7.8608
           22         2265        6.898
           23          375       6.6255
           24          270       6.5267
           25         1807       6.2078
           26         1230        5.148
           27         1396       4.5395
           28          527       2.2106
           29          371       1.8905
           30          555       1.7473
           31           41      0.72257
           32          354       0.4532
           33          271     -0.89414
           34         2601      -1.8199
           35          421       -2.437
           36          369      -2.7544
           37         2933      -4.2083
           38         1340      -4.8236
           39         1880      -5.2459
           40          358      -5.4201
           41          263      -6.2038
           42         1563       -6.389
           43         2285      -7.0976
           44         3111      -8.2768
           45         2577      -8.5896
           46          806      -10.413
           47          333      -10.934
           48         3053      -11.506
           49          640      -11.515
           50         1520       -12.58
           51          759      -12.655
           52         2895      -13.538
           53         1237      -13.924
           54         1989      -14.043
           55         2070      -14.541
           56         3017      -14.922
           57         2573       -15.48
           58         1698      -16.094
           59         2205      -16.962
           60         2579      -17.403
           61         1635      -17.776
           62         1211      -18.224
           63          380      -19.378
           64          329      -20.404
           65         3112      -22.538
           66          334      -32.883
DPR:
(and note that now this is how many points on average your presence on an alliance takes points away from the opponent - a negative number indicates you're likely to increase your opponent's score)

Code:
            1         1862       19.379
            2          640        12.14
            3         1155       10.869
            4         1257       8.4759
            5         1396       8.1218
            6         1807       4.3868
            7           56       1.2983
            8         1600      0.60363
            9         2070      0.29453
           10          395     -0.96611
           11         2601       -1.051
           12         1237      -1.2811
           13          270      -1.4666
           14          371      -1.8914
           15         1520      -1.9435
           16         3059      -4.2095
           17         1156      -4.3151
           18         1302      -4.5479
           19         2265      -5.5535
           20         2554      -6.1296
           21          358      -7.8337
           22          380       -9.532
           23         3004      -9.8214
           24          237       -10.27
           25         2344      -10.662
           26          329      -13.279
           27         2753      -13.602
           28         1340      -14.952
           29         2933      -15.027
           30         1230      -15.604
           31         1880      -15.936
           32         3017      -16.672
           33          333      -17.101
           34          527      -17.291
           35         2681      -17.463
           36         1660      -17.746
           37         1989       -18.37
           38          421      -20.028
           39          335      -20.761
           40         1796      -21.286
           41         1881      -21.618
           42          743      -21.675
           43          806      -22.481
           44         2577      -23.904
           45          759      -25.582
           46          271      -25.939
           47         3111      -26.223
           48         1211        -26.5
           49          694       -26.53
           50          369      -26.648
           51          263      -26.796
           52         2895      -27.583
           53         3053      -28.046
           54          354      -28.105
           55           41      -29.584
           56         1563      -30.406
           57         3112      -31.288
           58         2573      -32.228
           59         1698       -32.62
           60          375       -32.85
           61          334      -33.248
           62         1635      -33.382
           63         2205      -33.423
           64          555      -36.653
           65         2579      -37.541
           66         2285      -45.508
+/-:
(just occurred me to calculate that, haven't given it much thought but I don't think it indicates anything)

Code:
            1          694       58.169
            2          743       43.602
            3          375       39.475
            4         2285       38.411
            5          555       38.401
            6         2753       35.499
            7          335       33.989
            8         2344       32.993
            9         1796       31.807
           10         1881       30.836
           11           41       30.307
           12          354       28.558
           13           56       28.009
           14         1660       27.757
           15         3059       27.315
           16          395       25.917
           17         2681       25.776
           18          271       25.045
           19         1563       24.017
           20          369       23.894
           21         2554       22.677
           22          237       21.675
           23         1600       21.471
           24         1302       21.421
           25         1155       21.408
           26         1230       20.752
           27          263       20.592
           28         2579       20.139
           29          527       19.501
           30         3004       19.084
           31         3111       17.946
           32          421       17.591
           33         2573       16.748
           34         3053        16.54
           35         1698       16.526
           36         2205        16.46
           37         1635       15.606
           38         2577       15.314
           39         1156       14.287
           40         2895       14.045
           41          759       12.927
           42         2265       12.451
           43          806       12.069
           44         2933       10.819
           45         1880        10.69
           46         1257       10.468
           47         1340       10.128
           48         3112       8.7504
           49         1211       8.2755
           50          270       7.9933
           51          333       6.1671
           52         1989       4.3263
           53          371       3.7819
           54          358       2.4136
           55         1807        1.821
           56         3017       1.7499
           57          334      0.36525
           58         2601     -0.76893
           59         1396      -3.5823
           60          329      -7.1252
           61          380       -9.846
           62         1520      -10.636
           63         1862      -11.518
           64         1237      -12.643
           65         2070      -14.836
           66          640      -23.656
I don't have prediction software implemented yet, so I can't give any estimates, so... Any ideas? Considering the matrix is ill-conditioned, I'm not sure those numbers can be trusted. It could be that my MATLAB implementation is wrong, so here's the code if anyone wants to check it out.
Attached Files
File Type: zip OPR_bongle.zip (2.7 KB, 57 views)
__________________
Manoel Flores da Cunha
Mentor
Brazilian Machine
Team # 383
Reply With Quote