|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
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++)
{
Match m = lstMatches[x];
iTeamWithSum[m.blue[0] / 100] += m.blue[1] + m.blue[2];
iTeamWithSum[m.blue[1] / 100] += m.blue[0] + m.blue[2];
iTeamWithSum[m.blue[2] / 100] += m.blue[0] + m.blue[1];
iTeamWithCount[m.blue[0] / 100]+=2;
iTeamWithCount[m.blue[1] / 100]+=2;
iTeamWithCount[m.blue[2] / 100]+=2;
iTeamWithSum[m.red[0] / 100] += m.red[1] + m.red[2];
iTeamWithSum[m.red[1] / 100] += m.red[0] + m.red[2];
iTeamWithSum[m.red[2] / 100] += m.red[0] + m.red[1];
iTeamWithCount[m.red[0] / 100]+=2;
iTeamWithCount[m.red[1] / 100]+=2;
iTeamWithCount[m.red[2] / 100]+=2;
}
for(int x = 0;x < iTeamsMax;x++)
{
cout<<(x*100)<<"-numbered teams played with avg team nbrs of "<<iTeamWithSum[x] / iTeamWithCount[x]<<endl;
}
Last edited by Bongle : 30-03-2008 at 16:03. |
|
#2
|
||||
|
||||
|
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.
|
|
#3
|
|||||
|
|||||
|
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.
|
|
#4
|
|||
|
|||
|
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 |
|
#5
|
||||
|
||||
|
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. |
|
#6
|
|||
|
|||
|
Re: Suggestion to improve the alliance choosing program
Quote:
It might be best to do this on a regional-by-regional basis, and see what you get. For example, the average team number at OKC was 2077. Almost everyone had a high team number, and thus their partners also had high numbers. |
|
#7
|
|||
|
|||
|
Re: Suggestion to improve the alliance choosing program
Quote:
![]() |
|
#8
|
|||
|
|||
|
Re: Suggestion to improve the alliance choosing program
Quote:
The match scheduling has been pretty good this year. Sure, some teams will end up with somewhat easier schedules than others. That happens in every other sport too. |
|
#9
|
||||
|
||||
|
Re: Suggestion to improve the alliance choosing program
I know at the MN Regional this weekend at least half if not more were Rookies, Also alot of the rookie teams have a better robot and drivers then 5 year old teams, it all depends on the team not there experiance, this isn't true all the time but there were a good amount of good rookie teams at the MN Reg.
|
|
#10
|
|||
|
|||
|
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. |
|
#11
|
||||||
|
||||||
|
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. |
|
#12
|
|||||
|
|||||
|
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? |
|
#13
|
||||
|
||||
|
Re: Suggestion to improve the alliance choosing program
Hmmm... I've even seen griping from a low-numbered team (I think it was 48) mentioning that they were in the first match of a regional multiple times.
Wait 10 minutes, I'll re-jigger my OPR calculator to get an idea of the average team # that a team plays with. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| choosing the right driver | ilikecheese | General Forum | 6 | 20-02-2007 22:49 |
| Best Alliance in the Alliance Era of FIRST | Corey Balint | General Forum | 28 | 05-09-2006 20:14 |
| Let's improve the wikipedia page about FIRST | Bongle | General Forum | 12 | 03-05-2006 08:08 |
| Choosing an Encoder for the Drive-train | MikeDubreuil | Electrical | 11 | 21-10-2004 00:50 |
| FIRST Kickoff - Choosing the Correct Motor | archiver | 2001 | 2 | 23-06-2002 22:16 |