![]() |
Re: Suggestion to improve the alliance choosing program
Quote:
Here's a graph:http://www.chiefdelphi.com/forums/at...6&d=1175831673 On the X axis is a team's seeding performance in 2005. Further left is better. On the Y axis is a team's seeding performance in 2006, lower is better. You'll see about the only thing you can predict is that teams who were top seeds in 2005 tended to not be dead last in 2006. Likewise, teams who did very poorly in 2006 tended to not win the following year (but some did). Past behavior predicting future behavior may work well in humans, but not so much in robotics teams. The teams that do well year after year are very special cases. Out of the 1500ish active teams in FIRST, people can probably only name 50ish 'power houses' who win year after year after year and never hiccup. On the main topic: Keep in mind that a team's next-year performance will probably be modified FAR more by who they communicate in the pits with, rather than who they play with on the field. If you play 8 games, you're only on the field for 16-20 minutes, but you're at the regional in the proximity of other robotics teams (whether in the hotel, pits, stands, or fields) for 72 hours. The 71 hours and 40 minutes that you're not on the field are where your entire team can learn from vets, not just on-field. |
Re: Suggestion to improve the alliance choosing program
There seems to be some confusion about what I actually mean when I say it would be better to have the rookie teams more evenly distributed on alliances.
What I am NOT saying is rookies are worse than experienced teams. What I AM saying is rookies are less experienced than experienced teams. Sometimes the student is better than the teacher, but that doesn't mean the student can't still learn from the teacher because experience does count for something. Having said that though, if the data provided is correct, there does seem to be a correlation between the number of rookie teams on an alliance and how the alliance performs, so if it's possible to reduce the "unfairness" to the non-rookie teams by even a little bit through distributing the rookie teams more evenly, why in the world would anyone not want to? Excepting, of course, the difficulty in writing the program that can do this and all the other functions too. A valid and reasonable argument against my suggestions, btw. If good programmers say it's too hard to factor rookies into the algorithm and still have it work as well as it does now, then it's too hard. |
Re: Suggestion to improve the alliance choosing program
Kimberly may have a point - they got a really unlucky schedule at GLR. In their first 4 matches, they were paired with another rookie. They were paired with a "powerhouse" veteran team just once, 469 - and in that match they came up against 494 and 67.
To contrast, I looked at Rush's schedule (lowest team number at GLR). They saw rookies on the field only twice - in the same match, one on each alliance. 33 played with a rookie once, never against one. 503, in the middle of the list of team numbers, played with and against rookies and very low-number veterans in many of their matches. 573 had a similar schedule. 2676, the highest team number at GLR, played with and against rookies in most of their schedule. I looked at the West Michgan schedule and saw a similar clustering of rookie teams, and again of low-number teams. We've seen that the "maximize time between matches" constraint often results in a team playing with another team in one match and against them the following. That's not unreasonable. Does the schedule algorithm shuffle the teams before slotting them into the schedule? Or does it start in numeric order? As we saw last year, strict team order doesn't equate to team strength. But did the schedule inadvertently create semi-tiers? |
Re: Suggestion to improve the alliance choosing program
Quote:
Wait 10 minutes, I'll re-jigger my OPR calculator to get an idea of the average team # that a team plays with. |
Re: Suggestion to improve the alliance choosing program
Quote:
The graph that you provide may very well prove that past preformance does predict future behavior. It appears the correlation coefficent would be around .2 or .3 and with a large sample size (around 1,000) I would not be surprised to see the correlation statistically significant. This means that the observed relationship is not due to random varation but because the two samples (results from 2005 and 2006) are in fact related. Although it is not a perfect correlation or relationship (nearly all relationships in life are not perfect) doesn't mean there is none. It may not be a very strong relationship, but it appears there is one. I cannot think of another relationship (team number, funding...) that is a better predictor than past preformance. To tie this back into the original topic, there is not perfect predictor for team preformance. Unless someone does a huge multiple regression study and finds a way to predict how teams are (I don't think there is one), the best way is to just randomly assign teams under the perameters (such as time inbetween matches) to ensure the most fair pairings. |
Re: Suggestion to improve the alliance choosing program
It does appear that lower-numbered teams had lower-numbered partners.
Using all the week 2-5 regional results, I found the average team number of each team's alliance partners. The results: Quote:
Here's the summing code. I grouped things by hundreds so patterns would show up and it'd be easier to implement. m is a match object, which includes the team numbers of the red and blue alliances. m.red and m.blue are 3-element integer arrays of the alliance. If I have a big glaring bug, please point it out. Code:
for(int x = 0;x < lstMatches.size();x++) |
Re: Suggestion to improve the alliance choosing program
Assuming those numbers Bongle provided are correct, that is a problem. I haven't completely gone through how the pairings are assigned, but it appears the team number (or the order of the teams) is a determining factor in the pairings (if not, we wouldn't have the relationship that Bongle provided). Would it be possible to randomly assign each team a number? Like say there are 50 teams at a regional, randomly assign each team a number from 1-50. Then, after the program assigns the pairings, replace the number (1-50) with the team number.
|
Re: Suggestion to improve the alliance choosing program
Using raw team numbers as integers does not create a fair test. Some regionals have very low team numbers, with only a few rookies (Detroit). Some have very high team numbers, mostly rookies (Hawaii, Minnesota, Oklahoma). The two can't be equated directly; they skew the distribution. You would have to figure out a way to assign an equivalent rank to each team number in each regional.
|
Re: Suggestion to improve the alliance choosing program
Quote:
I'm not sure, but I think your code includes the numbers of all three teams on each alliance. If you're calculating the average team number of only of the teams you're paired with, wouldn't you want to keep your own team number out of the average? If that's the case, it'll flatten out the "who you are paired with" average with respect to your own team number. It won't change your opponent's average team number, though. I could easily be reading the code wrong. I thought what was important was the average team number of who you were paired with, which should ideally be constant versus team number, not the whole alliance, which your own team number will influence. - Steve |
Re: Suggestion to improve the alliance choosing program
Quote:
Example: Let's say we have an alliance of 1114, 1503, and 1680. It would do: iTeamWithSum[11] += 1680 + 1503 // 1114 was paired with 1680 and 1503 iTeamWithSum[15] += 1114 + 1680 // 1503 was paired with 1114 and 1680 iTeamWithSum[16] += 1114 + 1503 // 1680 was paired with 1114 and 1503 average[11] = (1680 + 1503) / 2; // note that this isn't affect by 1114 being on the 1114/1503/1680 alliance So the actual team number that we're doing the indexing by is not included in the average, and thus shouldn't effect the final average (for that bucket). Good argument though, keep them coming. We don't want to make a fuss if my code is simply wrong. |
Re: Suggestion to improve the alliance choosing program
Quote:
|
Re: Suggestion to improve the alliance choosing program
Quote:
While I understand what you mean, especially in certain regions, I dont think this would work as well overall, based on what we have seen with past match algorithms based on number, and the level of many of the rookie teams these days. |
Re: Suggestion to improve the alliance choosing program
Quote:
Quote:
|
Re: Suggestion to improve the alliance choosing program
Quote:
|
Re: Suggestion to improve the alliance choosing program
Ok, I'll do another set of these once I have time. Here is my proposal:
On a per-regional basis: For each team, take the average team # of all their allied teams. Compare this with the average team # at the regional (minus themselves of course) to represent their expected average team # of their allied teams if they were paired randomly. Call the difference D, and say that D for a given team is given by D = f[t]. Sp if you had a regional with teams (1,2,3,4,5,6,7,8,9,10) and 1 was paired with 2 and 3 for a match and 4 and 5 for another, D = ((2+3+4+5+6+7+8+9+10)/9 - (2+3+4+5)/4). Hypotheses:If the scheduler is blind to team numbers, then f should not follow any pattern as t increases. If the scheduler is affected by team numbers and there is clustering, then f should follow some pattern as t goes from low team numbers to high team numbers. |
| All times are GMT -5. The time now is 09:15. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi