![]() |
Match Scheduling Algorithm Competition
At the TopCoder open the "marathon match" problem is scheduling for FIRST events. Contestants have to come up with a computer program to generate schedules for FIRST events. They are scored on a number of things like the amount of time between matches for each team, number of times the same teams play, etc. FIRST is sponsoring the problem so they will probably use the winning algorithm at future events. You can view the problem statement here (needs an account) http://community.topcoder.com/longco...21964&rd=14632
For those who don't know TopCoder is a programming contest. The TopCoder Open is their yearly championship which is in Florida this year. In the marathon match format the contestants get 12 hours to come up with the best solution to a problem given. They have about 3 hours left in the contest now. |
Re: Match Scheduling Algorithm Competition
I wonder why FIRST didn't publicize this?
|
Re: Match Scheduling Algorithm Competition
Quote:
The challenge has seven quality metrics they're trying to minimize (with each metric carrying its own definable weight): -Difference in average team age on each alliance between the two alliances -Difference in average rank of a team (defined from 1 to 10 in the challenge, where 1 is rookie and 10 is reigning champion) between the two alliances -Unique partners -Unique opponents -Time between matches (more is better) -Assignment to red or blue -Position in player station If FIRST took the current match assignment criteria (as defined in The Tournament--PDF link) and put the age and (reasonably-calculated) rank criteria in beneath the unique opponent/partner criteria, then it could reduce the number of "oh-crap-we-play-against-Beatty-AND-Simbots-this-match?!" rounds--at that point, the algorithm is likely to switch one of them to your alliance (especially at Championship, where they'd have the benefit of regular-season data). TLDR: This could evolve into a good thing or a bad thing, depending on what weight you put on the factors. |
Re: Match Scheduling Algorithm Competition
FIRST has no valid way of ranking teams, and thus the only fair way to do selections is randomly. Factoring age or some arbitrary rank will never be fair.
Quote:
|
Re: Match Scheduling Algorithm Competition
Quote:
Yeah. Age has very little to do with anything around here--I'm somewhat scared of what Dr. Joe is starting up in Boston...or any team 1114 mentors. The rank part, OTOH, I can live with, if it's done right. If you're careful about the implementation, and use the available data about record/seeding/result, then I think it could work very well. If you're arbitrary about it, like the Algorithm of Doom was with age, it'll go down as a lousy idea. |
Re: Match Scheduling Algorithm Competition
Quote:
EDIT: Looks like Eric was thinking along the same lines as me. |
Re: Match Scheduling Algorithm Competition
Quote:
However, one could certainly compute rank for within the season, especially at the Region Championship and Championship levels where everyone has played this game before. Edit: Dave got in between my reading and my posting. I'm not advocating for those two to be anywhere before line D in this year's criteria (read: just ahead of equal red/blue assignments), if anywhere. I'd definitely want to see some sample outputs before I put my blessing on any such method. |
Re: Match Scheduling Algorithm Competition
Quote:
|
Re: Match Scheduling Algorithm Competition
Quote:
I dug into match scheduling some, with various modifications to the approaches for efficiency. It's not easy to get it perfect, but it IS easy to get it started and is a great way to teach object-oriented programming to students who already have the basics of programming under their belt. Really they should have 2 competitions: 1 that creates the algorithm, and 1 that creates an intuitive User-Interface for it. Both are equally difficult, IMO, and the latter would teach very fundamental concepts of software product design. |
Re: Match Scheduling Algorithm Competition
I am vehemently opposed to the idea of factoring either team age OR rank into FIRST match schedules - AT ALL.
|
Re: Match Scheduling Algorithm Competition
Quote:
I'd prefer to not see Three Rookie Teams playing on the same alliance at the same time. |
Re: Match Scheduling Algorithm Competition
Quote:
This perception is similar to the perception of coin-flipping: often times, after a streak of 'heads' one incorrectly often perceives the chances of getting 'tails' to be higher -- when in reality nothing about the probability has changed. I don't have the article that I read on probability psychology bookmarked, but I'll look for it later if I remember to. |
Re: Match Scheduling Algorithm Competition
Quote:
|
Re: Match Scheduling Algorithm Competition
Quote:
|
Re: Match Scheduling Algorithm Competition
Like Jesse, I too have written a scheduling program. I took the brute force & heuristics approach. It wasn't too hard even for someone like me who does software work mostly as a hobby. Mine was for 2-team matches because I was focused on FVC (FTC/VRC) at the time.
Truth in advertising - The heuristics still need to be tweaked to avoid getting "trapped" by early arbitrary choices that force a bad choice later; but the overall results are pretty good. A couple of points to make: 1) I have written this before, but it bears repeating; there is no such thing as a scheduling algorithm that is simply "fair". Algorithms are only fair in some "sense(s)". In conversations like this thread, if you don't pair the word "fair" with a description of the sense(s) in which you are using it, the conversation falls apart. When the word is used you have to clarify whether you mean fair in the sense of putting all teams at each of the red and blue alliance station positions evenly, or do you mean fair in the sense of ignoring the expected skill level of their allies, or do you mean fair in the sense of attempting to give each alliance a similar expectation of winning each match, or... In this and many other contexts, I recommend banishing the word "fair" from your vocabulary if it isn't paired up with more information. 2) I remain surprised that the scheduling algorithms at STEM robotics tournaments aren't drawn from open source descriptions and code. The scheduling problem isn't that hard. Tournament organizers (either at a worldwide HQ level or at local levels) should choose the heuristics they want to employ, proudly announce them, pluck a tried-and-true implementation off the shelf, and then get on with the rest of the season. In the scenario I outlined above, folks (participants) could certainly suggest different heuristic choices (and certainly would), but once the choices are made, there shouldn't be any mystery about them or about how they are implemented. Blake |
| All times are GMT -5. The time now is 11:38. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi