Stupid Match Algorithm Tricks, 2018

We were at a 61-team Miami Valley event.

We faced 302 3 times and were with them in a 4th. We played 10 total matches, one a surrogate.

SURELY with so many teams there, a better distribution of match partners and opponents could have been generated.

At least from my perspective, I had felt such out of whack match schedules had been put to bed for a few years, before resurrecting themselves from the grave for Week 1 2018, apparently.

Now that’s just dirty.

Reminds me of the 2007 Algorithm of Death.

Paul and John came to see me right after I had generated the match list, very displeased that their teams were playing 5 out of 9 qual matches against each other. I had no idea why the FMS kept coming up with schedules like that. (We reran several times, thinking it must be an error.)

Then we got HQ on Skype, and were told that was the way it was supposed to be. Our RD (who was also a FIRST BoD member at the time) nearly blew a gasket. Ah, the joys of Week 1. I think HQ got it fixed by the next week, but my memory may be failing me on that after so many years.



Played Week 5 With 1251 Three Time And Against Once

(For real though, the algorithm has not changed for this year and takes several minutes for the scorekeeper computer to process out which of the bajillion random schedules creates the best-fitting one for their algorithm. Sometimes, a bum draw is a bum draw.)

Similar issues showed up at a GSD this weekend - 35 team district event.

238 & 5687 had to face each other three times and were the top two seeds. Smaller event, but seemed really odd. Usually we don’t see more than two.

No, I would quallify it as verrrry ugggglllyyyyy.

To the best of my knowledge, it last changed beginning of the 2017 season as listed for FRC, but upon checking the page of the author, there was a subsequent revision in July to allow up to 200 teams to fit on a single input list. [0]

Maybe this has something to do with it?

[0] -

In 2017, at the Hartford District event, 3623 played against 999 twice through a bumper color change, and then with each other, in a minimal turnaround, all in a row. At a 42 Team event.

At Central New York 2018, 340 played against 2016 in three separate matches. It was a small regional (35 teams), but there are some teams we didn’t play against at all. Not sure I’ve ever played against a team 3 times in one regional.

Couldn’t several balanced schedules be produced ahead of time with amounts of teams from 1 to n, so you are left with n indexes that you can then assign team numbers to? There’s still the randomness of which schedule you choose and which team gets assigned to which index. As far as I know, this is how CheesyArena does it.

A note from the white paper of the match scheduler:

For each team, we count the number of times that team (in a non-surrogate match) sees each other team as a partner, as an opponent, or in either role.

So maybe some of these duplicates involved surrogate matches?

Now THIS is something I’ve called for. Volunteers do not need to see team numbers while the schedule is being generated. Use index numbers and then randomly assign team numbers to the optimal schedule only AFTER it is locked in.

Showing the team numbers during scheduling opens the door for abuse should a volunteer or volunteers responsible for schedule generation wish to manipulate the system in favor of (or against) certain teams.

Indiana State in 2016 we went against 1024 four times and was with them once.

Sent from my Moto Z (2) using Tapatalk

At the Georgian college event, out of the 8 matches on Saturday, 4039 was in 5 matches with 3543. Four of those matches were back to back to back.

Many of the posters in this thread are talking about small events (29 teams at Georgian College, 35 at CNY/GSD, 42 at Hatford, etc). This is to be expected at small events. First off, you play more matches at these small events (typically 12), which means more opportunity to play with the same teams. Next, smaller events start hitting areas of concern with regards toround uniformity and match separation. Because there’s fewer teams in attendance, each “round” is shorter. Because each round is shorter, it becomes harder to fully spread out team interactions (pairing uniformity) without hitting concerns regarding match separation.

Seeing this type of schedule at a larger event, such as the 61 teams at Miami Valley, is much more concerning. It shouldn’t be happening at an event with 10 matches per round.

Psssh, only 5 of 9? That’s nothing. Look at 116’s schedule for VCU that year, and then search for team 122. You can also find an interesting trend regarding the middle numbered teams in each match (our opponents in match X became our partners in match X+1).

AFAIK, HQ was unaware of the scheduling changes that year. It was the algorithm vendor who decided it. Maybe HQ was informed in time to pass along the info to events, but they weren’t the ones who made the decision.

THIS. What a concept, removing the possibility of human error or manipulation. Almost sounds like it could be done by a robot.

This is the most ridiculous thing I think I have ever seen in FRC.

Actually, when John and Paul came to complain, the schedule had them playing each other in EVERY qualifying match. The one we played (after several retrys at the algorithm) got that down to 5 times.

That matches my understanding. The contractor was the one handling Skype inquiries from our event. When our RD contacted higher-ups about this, the story she got matched your understanding above.

I know I’ve posted this on CD at least once before, but I highly encourage anyone who’s interested go read the whitepaper on how the matches are generated.

Yup. cheesy-arena/schedules at main · Team254/cheesy-arena · GitHub

Edit: Files are X_Y.csv, where X is the number of teams and Y is the number of matches per team.