"New" 2nd Week Scheduling Algorithm

As a spin off from this thread I started this thread to specifically discuss the “new” 2nd week scheduling algorithm. The other thread was getting too long and was more of a discussion of the 1st week algorithm.

Last night I made a spreadsheet to analyze the Bayou match schedule (see attached). There were 37 teams. All the “veteran” teams (7+ year old) are color coded blue (12 teams). All the “mid year” teams (2-4 year old teams) are color coded green (12 teams). All the “rookie” (1st year) teams are red (13 teams). The lookup tab has team #, location, year started, team age (1st, 2nd, 3rd, etc. year), and an order # by team number (1-37). The schedule tab is the actual match pairings we played in New Orleans ordered from low team number on the left to highest team number on the right for both the red and blue alliances. The other tabs replace the team # with the year the team was started, team age, or order. As you can see there is nothing random about the pairings at all except whether an alliance was red or blue. It is clear that FIRST divided the teams into 3 sub-groups and intentionally partnered a veteran, a mid-year, and a rookie team for every alliance and then only randomly selected whether they were red or blue. This is not at all what I call random. FIRST has effectively segregated the teams into groups based entirely on team number/age. The only reason to do this is that FIRST is now implying that there is some advantage or disadvantage to being in one group or another. FIRST is without doubt introducing a bias for or against one group or another.

Depending on whether you are a pessimist or an optimist you can look at it in one of two ways:

  1. A veteran team always HAS to play with a rookie team.

  2. A rookie team always GETS to play with a veteran team.

But either way, at no time does the algorithm allow two veteran teams on the same alliance during qualification rounds. This effectively stacks the deck in favor of the rookies and against the veterans.

My warning to all teams heading into the upcoming regionals: We all pay the same money to play in the same regionals and deserve the same opportunity to play with the same teams. FIRST is not giving you what you paid for.

Bayou Schedule.zip (18.4 KB)

Bayou Schedule.zip (18.4 KB)

Hasn’t this been beat to death yet? OK, so low numbered teams don’t get to play with each other in qualifying. So what?

Like almost everyone, I agreed that the “perpetual opponent” algorithm was flawed. But as long as you get a variety of opponents so you can show your stuff, the new “random” algorithm seems fair enough to me.

In St. Louis, 148 got one of the worst draws I can imagine: every other match had them against either 217 or 45. And how did they respond? Undefeated #1 seed. (Well, except for one surrogate match.)

And although 45 seeded near the bottom, they showed the scouts clear and convincing evidence of their capabilities, and were picked 2nd in the draft – their alliance captain was rewarded for that pick with a regional win.

You are correct, the teams are put into pools A/B/C based on team number - and team number only.

At least in your regional, all the C list were rookies. Look at the GLR pools if you want to see the perverse conditions this creates. There were only 2 rookie teams, and 1114 was put in the C pool because 1114 was 2/3 the way down the list. This meant the two rookies could never be allied with 1114, but might have been opponents (it happened they weren’t). 70 was a A, while 494 was a B, and indeed they were allies once and opponents once.

Given that pool setup, the assignment of “one from A, one from B, one from C” was randomized more than in the 1st week assignments. 1188 played with 3 teams twice, and played against 2 teams twice. There were no other duplicates. I understand other teams had more duplicates, but no one had a perpetual partner or opponent. In smaller regionals, to keep match timing somewhat separated, the duplicates are higher.

My gut feeling when I was told about this was to like this idea. My feelings have not changed. I like the idea of veterans having to work with rookies. It gives the rookies a chance to learn how the veterans do things. It also prevents an alliance of three veterans going up against an alliance of three rookies.

To say that FIRST isn’t giving you what you paid for is not correct. Yes, we all pay the same money to play in the same regionals, but this just means the veterans have to face off and then play with each other during the elimination matches.

I’m not out to win a competition, nor am I out to play with only the veteran teams. Instead, I’m out to try and show the students what is possible. And, sometimes, the best lessons are learned from the things that are viewed as disappointments and failures.


Aren’t statistical distributions fun? However the algorithm is written, someone won’t be happy, and scouting is still very important.

My thoughts about the alliance picking algorithm… IT"S NEVER GOING TO BE PERFECT! There simply aren’t enough matches in a regional for one team to play every team they want. A basically what people are saying are they don’t want to play with rookie teams and only want to play with veteran teams. Well not everyone is going to get what they want. Is it fair? No. But it’s a randomizer for a reason. I think one reason it is a randomizer is so there isn’t an obvious bias. Of course your going to get the near geniuses that will find some bias in there but why anazlyze the randomizer software. FIRST worked on fixing it from week 1. They did, what more do you want?

The A/B/C pools were also created in week 1. 116 faced our “A” opponent (122) every match. In addition, our “B” opponent became our “B” ally in our next match every single time. That may have resulted from VCU having 66 teams (and therefor divisible by 6), which also resulted in 116 playing exactly every 11th match (1, 12, 23, 34, 45, 56, 67, 78).
Even with the “pools” being controversial, the greatest extent of the problem has been fixed, and as it has already been shown, some people support the formation of pools. Perhaps an ideal would be a “weighted schedule”, where the pools are not 100%, but teams are more likely to be playing with teams of different ages (although not guaranteed to be every single match). Or maybe having just 2 “pools”, and each alliance having a member from each then one completely random team.

My problem is not the three groups they put us in. It is the fact that we had the same team on our alliance the last several matches and they had terminal problem that they and a lot of the other teams could not help them fix in time. So we went 3 vs 2. Just change the partners up for the different matches. This also helped teams that were with a great bot 5 or 6 matches. If you looked at the bots and the rankings you could see this!!! Not what we paid for as so many have said before!!!

Exactly what did you pay for? I keep hearing “not what we payed for,” but what exactly is it that you didn’t get that you payed for. You got a kit, you got a regional that there is no way you can admit wasn’t fun, and you got an experience you’ll remember forever. Seriously what more could you ask. If you think you got ripped off because you didnt get chosen for an alliance for the finals, i’m sorry to say and I don’t mean to sound rude but a huge portion of that has absolutely nothing to do with your record! Good record or bad record it all comes down to how you perfrom as a robot.

I will first of all agree with the rest of your post, in which you point out that excellent teams can still make it to the top of the qualifying rounds, and that it is possible for a low-seeded team to be picked by a top eight-seeded team. I don’t think anyone is arguing that, but I feel obliged to address the question above.

The “so what” is that by introducing team number as a factor in scheduling matches FIRST is intentionally attempting to bias the outcome of the qualifying matches and introducing a factor into the final seeding that is in no way related to how well a team works or how well designed their robot is. Perhaps this would be acceptable if it were stated in advance in the tournament rules that “your team number will be a factor in determining your opponents and alliance partners”, or if a win-loss record of qualifying matches was not kept. (Maybe we should just vote for the top eight teams?)

By reducing the randomness of the qualifying match draws, FIRST is not only ending up with a qualification process that less adequately represents the relative abilities of the teams in the overall standings, but also allows teams to question whether they are getting a “fair chance” to win matches.

To those who say that a biased match-scheduling system “doesn’t matter”, then if it doesn’t matter why not just get rid of it and go back to random draws?

The fact is… it does matter, and it hasn’t been “beat to death”, because the biased scheduling system is not dead yet.


P.S. Although I argue this point strenuously, I’m not quite prepared to start marching to New Hampshire with an “Against Team-Number Oppression” banner or suggesting that FIRST isn’t making an honest effort to do a good job… this is one of life’s smaller annoyances, after all, but when a team does well… or poorly… in qualifying matches, those results should not be prejudiced by what date they first registered.

Not dead yet?

just in relitive terms, the amount of matches has decreased significantly in the past four years.

look at florida fro example

Year one 104 Matches
Year two 86 Matches
Year three 77 Matches
This year 68 Matches

Thank god super-regionals are starting to pop up, like GTR adn UCF next year. this way, there are more matches, and i doubt UCF will fill up to 80 teams, because GTR only had 71 out of 80 lasy tear.

With two fields, you can divide the teams in half, so it would end up being like 35 teams per field.

but the only drawback is the 12 alliances instead of 16. Were using human nature here, we’re using something that will NEVER BE PERFECT

Maybe this is the best reason to make sure the rookies are trained and ready for competition. That is the responsibility of the veterans.

My gripe with the first week schedule was not playing with rookies. Rather it was playing the same teams 5 times over. We were all rookies once. Some of us still are…

WC :cool:

“Year 1” also was a 2v2 game, and would require more matches for each team to participate in the same amount. Matches haven’t gone down per team in my experience.
2004- 7 (VCU), 7 (Chesapeake)
2005- 8 (Chesapeake) 7 (Championship)
2006- 9 (VCU, 1 as “surrogate”), 10 (Peachtree-smaller regional)
2007- 8 (VCU)

So what? Going by team number alone is a lousy way to go about it–the software is making assumptions about their on-field performance that are often erroneous. Consider a qualification match at UCF (Q2, for the record): 61/665/1557 vs. 69/744/1592. On paper, that seems like a pretty balanced match–until you actually consider the robots in question.
Billfred’s Pseudo-scientific analysis of the contenders of Q2
[spoiler]61 and 1557 both finished the event as boxes on wheels (1557 was the whole time; 61 had significant arm problems–like the arm popping off–nearly every match until they took it off), while 69 and 1592 were both pretty good arms with ramps. I don’t remember enough of 665 or 744 on the field to make a good call about them, but I know that 665’s arm ended up out of commission by Saturday morning because of a burned-out motor.[/spoiler]
No good scout would pick an alliance partner for eliminations just because they have a low number, yet the current match pairing algorithm is doing just that. For my money, I’d rather have a mostly-random match pairing algorithm (with the obligatory concessions for some space between rounds) than one that tries to meddle with things. If I wind up with 71, 45, and 111 against my team and two flowerpots, so be it–at least I can write that off to bad luck and have a good laugh about that over dinner.

I think what he’s hitting at is not that each team is getting fewer matches than before (although this is the case in some situations), but that each regional is having notably fewer matches than in the past. Sure, 2004 was 2v2, and therefore required significantly more matches to grant teams as much time on the field. But just like 2004, the rounds are only 2 minutes and 15 seconds long. If Florida was able to manage 104 matches of that length in 2004, why are they doing only 65% as many rounds this year? Surely setting up two additional robots per match dosen’t make a match cycle take 50% longer.

Since our team’s rookie year in 2004 we have seen a significant decline in the number of matches we play per regional. I don’t have any hard numbers for each event, but our rookie year we got between 10 and 12 matches at both the Pacific NW Regional and the Sacremento Regional. This year, despite being 3v3 now over the 2v2 the first year, we only got 8 matches - largely due to the regionals growing. Portland has gone from roughly 36 teams in 2004 to 54 teams this year.

  • Jeff

How is it lousy? Doesn’t that judgement depend on what criteria you choose to emphasize in assigning qualification match partners and opponents? Why should the criteria for making qualifying matches be anything at all like those used by scouts to select elimination partners? What goal of FIRST would be served by that?

IMO the object of qualifying matches is to expose every team’s strengths and weaknesses so that scouts get the clearest possible picture of the pool of talent from which elimination partners can be drafted. (Clearly this object was poorly served by the “pertpetual opponent” algorithm because that scheme failed to put teams on the field with the largest number of different alliance partners and against the largest number of different opponents.) Given that during 1-1/2 days of qualifying it is not possible to ally every robot with every other robot, nor oppose every robot with every other robot, would any good end be served by making qualifying alliances of low numbered teams?

Students of statistics will appreciate that “randomness” in assigning qualifying match alliance partners and opponents is not a realistic goal. There is simply not enough time available. The best we can do is agree on a set of realistic criteria for qualifying match assignments and devise an algorithm that comes as close as possible to satisfying those criteria. Tom Saxton has taken a crack at this; I think his effort is worth detailed study by FIRST engineering staff and such study may move this discussion in the right direction.

When more then a few teams show up in the top 8 who can not score points I think something is wrong. I think the new matching algorithm makes the top 8 too much about luck rather than skill.

I think after qualification matches, the best teams should have more or less the best records. I think it will be discouraging when teams have excellent machines that don’t make the top 8, or get picked by a rookie that can’t score who was paired with the same dominating veteran the whole competition.

Good design, build, strategy, and gameplay are not being adaquately rewarded.

The reason your team is getting matches is what you said, more teams. With more teams it is inevitable that you will have fewer matches. Every regional has given teams a minimum of 8 matches, and several have given more. If you try and cram more matches in, you give each team less time to make repairs between matches, less time for pre-match strategy, etc. There is no need to play more matches than you can comfortably fit into a schedule. Of all the competitions I listed with 116 earlier, 5 of the 7 had 56-66 teams (the VCUs and Chesapeakes), and each played 7 or 8 matches (9 for 2006 VCU because we played as a “surrogate”). I think that’s a decent amount considering the number of teams participating.

I don’t care what teams we get paired with, what number they are, what color their eyes are. I want, as accurately as the tournament’s dynamics allow, seeding matches to represent the actual abilities of the teams who play them.

An example.

Looking through many regional standings and videos, and our own second week experience, I have seen far to many box bots in the top eight than either the game’s dynamics or historical precedent allow for. There are always robots who get carried into the top eight, but they used to be relatively sparse. Teams might see one or two teams float up throughout a couple regionals.

This year is not the same. I have not analyzed the algorithm extensively, I have not interpreted the match results to find out why a disproportionate amount of non-scoring robots are making it into the top eight. I do however feel that there is a problem that needs to be fixed- and I do not necessarily fix the blame on the new algorithm. There is an issue that is allowing teams who are not leading their alliances to seed extremely high with regularity, and I’m not at all sure why. But regardless of why it’s happening, in my opinion, many people of all team numbers are getting the short end of the stick.

Teams that are not especially skilled in game play or strategy, and their alliances as explained in my linked post, are at a direct disadvantage going into finals, and it’s not beneficial to anyone caught up in it. Teams aren’t losing because of bad planning, design, or strategy, but because of good luck. The situation just doesn’t seem to sit well in my mind, but it doesn’t seem impossible to remedy either.