pic: Sum of team numbers versus match number in Curie


We noticed this soon after seeing the schedule of matches. I doubt that it was intentional, but the pairings were certainly not random.

Joe Ross identified the problem, and found that the easiest solution would be to randomize the order of the team list before inserting it into the match scheduling algorithm.

The algorithm is not intended to be random, as has been mentioned many times before a random schedule would be very very bad.You may play 2 or more matches in a row then not play for a few hours.

The team number issue with this year’s algorithm has already been discussed here:

yeah, but that doesnt adress the problem. What happens is that you are essentially paired with the same group of teams. if the data isnt randomized before the algorithm is run, then something like this chart would happen. you would still notice a pattern in the sequence if it were randomized before sorting.

I dont think there is any viable algorithm to fairly balance all the teams with adequate spacing… there are just too many constraints

This is unacceptable. I remember 2 years ago in portland when everyone of our matches was against the same team and we weren’t the only one. How can the matches be fair if they aren’t randomized. I know there is the problem with time in-between matches but why not have someone do it by hand. Pick someone outside of FIRST who doesn’t know the difference between 1114 and 1115 or 271 and 217. Or even 2469 and 190 for that matter. Give them a set of desired criteria and ask them to pair 6 Robots together and then randomly assign those 6 to red or blue.

But I guess well just have to live with things the way they are. because they haven’t addressed this for years.

Any algorithm that guarantees that teams are a certain number of matches apart will show such a grouping. The groupings will decrease and become less noticeable as the minimum match spacing becomes smaller.

The algorithm currently in use tries to optimize the number of different teams you play with and against with a specified minimum match spacing. Randomizing the teams before putting them into the algorithm would still cause the “pool” effect, but the teams you are pooled with would not be determined by number. If the teams you play with and against are different (algorithm) with no attention payed to team number (randomize before algorithm) there isn’t a whole lot left to complain about.

I hope it happens next year. Point well made.

I noticed right away that ~90% of our matches were with and against teams on the same row as us in the pits. The other 10% were with / against teams on the adjacent row. 0% were with teams on the first row. Since the pits are arranged by team number, it is obvious that team number plays a huge part in the alliance picking algorithm.

We came across the same thing. Our team played only 8 different teams with a team number below 1000. And 6 of the 8 were in our first 2 matches.

There are many things frustrating about this. One that people may not think of is this: rookie or 1-2 year-old teams had minimal chance to play with the veteran teams. Part of the championships is playing with and against the best. If I were on a rookie team, I would relish the chance of playing in a match against teams who have been around for many many years. Sadly, this year’s algorithm did not allow for much of this.

Case in point: in each of the TechnoKats’ (team 45) matches, there was not a team number above 1000. This is not right.

Andy B.

IIRC, in one of the Technocat’s alliances, there wasn’t a team number over 67. :slight_smile:

You can have a random schedule without having a randomly timed schedule. The team numbers need to be randomized, not the schedule.

Just by looking down the lists of teams in the match schedule, you could see this pattern. 95% of teams in a block of say 5 matches were under team number 1000, and then 95% were over 1000 in the next 5 matches, and so on.

There were many matches where you (if your team number was 300 or less) were the youngest team on the alliance. I know on Archimedes specifically, Team 228 was the highest number in one match. Their team is ten years old this year! It was like a flashback to an old school match from New England circa: 1999 all over again! lol

Andy Baker just said it best I think. The rookies really never got to play with the older teams (and potentially learn from them), and the older teams really never got to play with the younger ones (and potentially help them in their FIRST career on the field by showing them the ropes).

That kinda saddens me. Helping the program grow isn’t just getting new teams every year, it’s also about equally pairing them up with some older teams so they can be trained/molded/advised by older teams on the field and learn what FIRST is exactly all about in that way.

The teams in our matches at the CT Regional and on Archimedes were also skewed. At 1124, we were nearly always the lowest team number on the field. We mostly played with rookie and sophomore teams. We had really low qualifying points, because we were generally playing with/against teams who were inexperienced and could not put up a high score.

This pattern had a great effect on seeding for eliminations, too, at least in the Galileo division. Several of the top teams with lower team numbers had some pretty brutal matches where they beat up on each other, leading many of them to be outside the top 8, even though they were top hurdlers. At the same time, there were several teams in the higher number ranges that made it into the top 8, possibly because of an easier match schedule. I don’t begrudge any of those teams - they all performed well with the match schedules they were given. I do think it would have been better, however, if we had gotten a slightly more equitable distribution of teams in each match.

Randomizing the list before running the algorithm would strike me as a fair way to do it. I don’t care as much if I end up in a “pool” of teams - it’s the only way to assure good match spacing - so long as the teams in that group are randomly assigned, and not dictated by team number.

294 had a brutal match schedule this year. first match against 118, then 67, then 33, then 100. I get a bit hazy after that. We were only ever paired with a high caliber team(16) once. We also only played one match against a team with a number higher than 1000.

We were in Newton , (Team 47) and we also never played with or against any team higher than 1000.

All our matches involved teams like 233, 175, 39, 111 and
in 5 of the 7 we played against a team, then with them in the next match.

On a brighter note - the points piled up like crazy, and we ended up with the 2nd highest RS in Newton (over 70) - we seeded 43 of 85 with a 3-4 (W-L) record.

We had a minimum of an hour between matches - that usually grew as the matches fell behind schedule.

I guess with 85 teams, I have difficulty understanding why the chosen algorithem they chose was used. Was it to somehow level the playing field and force higher #'s up to the top seeding positions?


Well gee, since my fellow Delphi brethren on 45 and 47 have chimed in, let me pile on…

48 also played the majority of our matches on Galileo against teams numbered less than 1000, but we did manage to see a few +1000 teams. Of course, one of those teams above 1000 just happened to be 1717, a divisional finalist. They just happened to be paired with the ThunderChickens in that match - event champion. Fun times on D, tell ya what.

Partner Teams:

8, 40, 70, 84, 168, 121, 180, 226, 291, 425, 509, 812, 1540, 2599

Opposing Teams:

8, 25, 65, 84, 88, 115, 121, 134, 176, 195, 217, 343, 364, 384, 469, 494, 509, 1138, 1366, 1717, 2564

It would have been great if the talent were evenly balanced between partners and opponents, but that wasn’t to be. By far, our opponent strength far exceeded the cumulative partner strength. It’s fun checking out the match list on Thursday and having everyone simultaneously roll their eyes - here let me simulate this --> :rolleyes::rolleyes::rolleyes:

We were also queued up in the 2nd match of the day both Friday and Saturday - while we broke the string of being queued in the first dang match at 3 supposedly independent regionals with 3 supposedly independent match lists, this was still an inconvenience - more eyes were rolled --> :rolleyes:

Yet despite the 2-5 record (the OPR predictions suggested 3 wins), we still had a good time. But yeah, please fix the algorithm for the offseason events. Especially IRI. Pleeeeeeeeeeeze.

I guess with 85 teams, I have difficulty understanding why the chosen algorithem they chose was used. Was it to somehow level the playing field and force higher #'s up to the top seeding positions?


Interesting thought…

I was told that the field control system did not allow all the options to be passed to the MatchMaker software. The choices it did allow were decent for regionals, but not for 85 teams.

Unfortunately, this was discovered too late in the process to fix for this year, but should be easy to fix for next year.

I really dont understand what’s so hard to fix these kinds of problems. It was brought up last year, they fix one part, but not the rest.
With so many smart math people in the FIRST community, you would think these kinds of things could be avoided.
When people discuss a schedule being random, we dont have to get technical about it and everyone knows what we mean.
Excuses that because we want all the matches as equally timed apart is not good enough to have the scheduling the way it did and to have to wait year after year for slow gradual improvements.
I can honestly say this with conviction because it happened with some regionals and it didnt with others.
With only 7 matches to play after spending $$$$$ to get there, its in the best interest of everyone to maximize the opportunities for everyone to play with/against everyone as equally as possible while meeting other parameters.

The Hawaii regional match pairings alone is proof that this can be done for ALL regionals and championships.

:smiley: :smiley: :smiley: :smiley: