In the 8 years I’ve mentored, the match scheduling algorithm has never been nice to us. We consistently play against the highest ranked teams multiple times each event and almost never with those teams.
But Today it sank to a new low at the Lakeview, MI Quals by scheduling us against Strykeforce 3 times and against the Ravens 2 times.
Please tell me we’re not the only ones to suffer its wrath.
But it’s just an algorithm doing what it was made to do. It has no way to take relative strength of teams into account. And believe me you should be glad it does not attempt to.
There was a misguided attempt to do that many years ago, and it did much more harm than good.
I feel like this algorithm must have been optimized for a much larger number of teams. MI quals are seeing only 30ish teams compete instead of the normal 40 teams. That smaller number leads to this huge non-optimization for probably a couple teams per event.
I’m curious about the past efforts to take relative strength into play. Anyone care to share what was attempted?
I’m new to FRC (3rd year mentor) but match scheduling not taking into account strength seems unfortunate. There is large spread in robot’s competitive strength resulting in qualification matches that don’t have competitive balance and don’t provide much additional information on the true relative strength of teams (at least when measured in terms of RP or win/loss).
In general, for a given number of teams per event, there should be one optimal schedule, i.e. team 1 plays with team 15 and team 18 and against, 22, 30, 12, match 1 and so forth.
Then the randomness/fairness comes in assigning which team is team 1, 2 3…etc.
Schedules shouldn’t be generated. Just teams assign to a certain slot.
I feel your pain. I overheard someone talk about the “Alliance Fairies” and I thought it was apt. Mischievous, devious, and out for its own amusement… the Match Scheduler is truly fae.
NEVER, EVER use team number as an estimation of team strength, and place one long veteran, one mid veteran, and one new veteran/rookie per alliance. Particularly when 2056 is a rookie and at 1114’s events, when they’re in different groupings.
No, I don’t speak from 2007’s experience…
There’ve been some theoreticals lately, basing on ELO or OPR or something similar, but the implementation hasn’t been suggested yet…
In 2007 schedules were set based on team age as mentioned. As an example, my previous team that year (360) played against team 272 in all 8 of their qualification matches. This ignores that age is also a poor analog for strength.
Not implemented to my knowledge, but because there’s so much turnover on teams from year to year (between mentors and students leaving) that using past results isn’t necessarily a good measure of strength either. Sure some teams are good each year, but if a team is traditionally “bad” and then has a great year their schedule will be unbalanced against their opponents than others. And vice-versa if a “good” team has a bad year.
How would the strength be quantified? Would previous years results be taken into account? What happens when a team makes significant changes between events?
I don’t disagree with your points but I don’t see any way to implement a solution that wouldn’t potentially make it more unfair.
Any considering of past years performance in scheduling for that current year is, in my mind, a nonstarter. It sets up teams who may be having an off year to get extra screwed by their schedule, and teams that are out performing their usual scores to get an unfair edge. This doesn’t even touch on how one would even fairly implement something like this.
I suspect I am the last person you want to hear from right now, hopefully you don’t hold it against us, we’re just playing with the cards we were dealt. The match maker optimizes for different alliance partners over different opponents. That can be seen here:
I feel the pain from previous events/teams, easy for me to say, but a call of “unfair” due to proportionality bias feels a bit cynical. I am not saying it’s malice, but I doubt this thread would exist if 2767 wasn’t the unfortunate one from the team list to draw 3 matches against you in the scheduler. There is undoubtedly luck in the schedule, next to no one will argue the opposite.
One of the best ways I’ve seen it done is Caleb Sykes Elo paper. Paper: FRC Elo 2002-Present
The issue with it is that older teams would have a really difficult time changing their elo, making it more unfair. Things can be done to counteract this, by adding a certain year limit on how far the elo calculates. Maybe by weighting elo by years, making it less impactful the older the data is. Although, I doubt it would be implemented any time soon.
Match schedule has a interesting effect on the one day events. With teams only playing 9 quals it can put teams in much higher or lower positions then they would be at a full length event.
Aren’t you glad we didn’t show up with a jump climb?
Back on topic, you are right that I probably would be focusing on other stuff if we had gone up against the same rookie team 3 times today. But ultimately, I would still say the scheduler is broken.
Incidentally, we played against Tractor Technicians 2 times and NextGen Hydra 2 times as well. Both of whom chased across the field and around the hub multiple times. I think I would rather play against Strykeforce a couple more times than have to play against their D again.
The bottom line is that In terms of team diversity of our schedule, it was abysmal.