Quote:
Originally Posted by plnyyanks
FMS uses the same scheduling algorithm this year it has in the past: MatchMaker. The output of the algorithm shows the number of unique partners and "opponents" (which doesn't matter this year), and the scorekeeper makes sure they're all the same. This is harder to ensure at small events, especially when the algorithm also prioritizes a gap between teams' consecutive matches. It's typically common for a few different schedules be generated until the output is even, again especially with smaller events. Or, a schedule could be selected to try and have the teams who haven't passed inspection play their first match as late as possible, to make sure they can pass. So there are a lot of variables that go into generating a schedule, and sometimes these anomalies sneak through while selecting for other things.
While FIRST probably could have had IdleLoop update MatchMaker for this year and treat "opposing" robots the same as different matches, it probably wasn't worth the time/money/testing and they instead went with what was already known to work pretty well. Go figure.
|
The cost function used by MatchMaker already prioritizes maximizing the number of partners over maximizing the number of opponents.
In my experience in the District model it's not a good idea to run MatchMaker several times since you're introducing more bias by manually selecting for specific features.
Quote:
Originally Posted by Ether
Makes me wonder: Has anyone out there tried writing a better scheduling app? Were you successful?
|
Matchmaker does a very good job for typical regional sized events, where the set of reasonable solutions is fairly large, but it does not perform as well as smaller District sized events. I've played around with several other scheduling algorithms with some success for Districts where having a fixed number of qualification rounds makes it possible to pre-calculate much of the schedule.