Match Scheduler Criteria

I’m curious on people’s perspectives on the most important criteria for the scheduling algorithm. So I set up a list of scheduling criteria along with my rough ordering of importance and would be interested in other people doing the same. Obviously event size factors into these, but just think generally for the events you go to, what do you most desire in a schedule, and what is less important. Here is a list of factors that could be weighed by the current scheduler (I’m ignoring things like team strength balancing or radical structural overhauls right now).

A. Avoiding consecutive team plays with a 0 match gap
B. Avoiding consecutive team plays with a 1 match gap
C. Avoiding consecutive team plays with a 2 match gap
D. Avoiding consecutive team plays with a 3 match gap
E. Avoiding consecutive team plays with a 4 match gap
F. Restricting surrogate usage to less than 6 team-matches (this is what the current algorithm does)
G. Restricting surrogate usage to less than 12 team-matches
H. Restricting surrogate usage to less than 18 team-matches
I. Surrogates are restricted to the third match only (this is what the current algorithm does)
J. Surrogates are restricted to the third through fifth matches only
K. Surrogates are restricted to the second through sixth matches only
L. All opponents are seen either X or X+1 times throughout the competition (0/1 for large comps and fewer matches, 1/2 for small comps and more matches)
M. All opponents are seen either X, X+1, or X+2 times throughout competition
N. All opponents are seen X through X+3 times throughout the competition
O. All opponents are seen X through X+4 times throughout the competition
P. All partners are seen either X or X+1 times throughout the competition (0/1 for large comps and fewer matches, 1/2 for small comps and more matches)
Q. All partners are seen either X, X+1, or X+2 times throughout competition
R. All partners are seen X through X+3 times throughout the competition
S. All partners are seen X through X+4 times throughout the competition
T. The difference in number of occurrences of another team being an opponent vs being a partner will be 0 or 1 (so twice as an opponent and once as a partner would be acceptable with a difference of 1, but thrice as an opponent and never as a partner would not be acceptable with a difference of 3)
U. The difference in number of occurrences of another team being an opponent vs being a partner will be 0-2
V. The difference in number of occurrences of another team being an opponent vs being a partner will be 0-3
W. The difference in number of occurrences of another team being an opponent vs being a partner will be 0-4
X. At any point during the competition, all teams will have played X or X+1 matches (this is what the current system has with strict round uniformity, although surrogates quasi mess it up).
Y. At any point during the competition, all teams will have played X, X+1, or X+2 matches
Z. At any point during the competition, all teams will have played X through X+3 matches
AA. All teams have a red/blue color difference of X or X+1 (So all teams have an equivalent number of red/blue matches or just one additional red/blue match)
AB. All teams have a red/blue color difference of X through X+3
AC. All teams have a red/blue color difference of X through X+5
AD. All teams have a red/blue color difference of X through X+7
AE. All teams have a red/blue color difference of X through X+9
AF. All teams play in all numbered alliance stations X or X+1 times (or mirrored stations for games like 2017)
AG. All teams play in all numbered alliance stations X, X+1, or X+2 times
AH. All teams play in all numbered alliance stations X through X+3 times
AI. All teams play in all numbered alliance stations X through X+4 times
AJ. All teams play in all numbered alliance stations X through X+5 times

Wow, that’s more than I had thought there would be, whoops :man_shrugging:. Let me know if I missed any criteria. Here are my rough thoughts followed by a tier list:
My general thoughts are that I place relatively little weight in red/blue balance and station assignment. I think generally partner/opponent difference is more important than unique partners, which in turn is more important than unique opponents. I really wouldn’t mind a few more surrogates or spots we can use surrogates if it improves other aspects of the schedule (one idea I’ve had would be to randomly assign the surrogate matches after quals for the teams that have an extra match, but that’s probably too crazy lol).
A
W, Z
B, V, S, Y
C, U, R, O
AE, D, T, Q, N, X, K
AD, AJ, P, M, H
AI, J, E, L
AC, AH, G
AG, F
AF, AB, I
AA

You don’t need to make a full list if you don’t want to, a short general summary is fine. More interested in discussion than exact lists, but I thought it would be good to enumerate as many criteria as possible for discussion.

6 Likes

It would be interesting to set up a poll to give each criterion a weight (say 1-10) and see how the consensus looks for each criterion. It’s also a lot easier to look at if the weight is right next to the text instead of having a table of letters at the bottom and then having to scroll back to look what each one is. I can set up the poll if you’d like.

I think we’ve seen in the past that the importance of this is highly dependent on the game and the sight lines on the field :slight_smile:

One thing to consider when discussing this is the potential for smaller events in 2021. FUN reported that there’s a consideration for 18-team events. From past off-season experience, I can tell you an 18 team event runs vastly different from 30 or 60 team events, from the team perspective. The fast turn around (back-to-back matches are unavoidable!) makes changing from one alliance to the other difficult for teams without the ability to do a fast bumper change. I would argue that there are considerations for the scheduling algorithm that may be higher priority for smaller events than they are for larger events.

2 Likes

Yeah, I tried to make a poll and there were too many criteria on my attempt, but I’m probably overthinking it, and don’t really need 5 criteria for each “category”, if you want to make a poll be my guest

That’s a big list. The possibility of smaller events and the complications that @Jon_Stratis mentioned are something I didn’t think of immediately. But based on the size of current events we have my criteria is pretty simple. I don’t care about alliance station or color. Varying opponents and alliances is nice. But my top criteria is time between matches.

Here’s the poll: https://forms.gle/PGg6LjPuh6oaxgKv7

Results are here: Match Scheduler Criteria (Responses) - Google Sheets

It is long, but it’s just a bunch of pick-a-number questions so it shouldn’t take more than a minute or two to fill out.

2 Likes

Oh, this is a fun topic! Just to make this even more complicated, I’m not sure if an “importance ordering” of a big list like that is really the right description of things. In fact, while the current algorithm is presented in the manual (section 11.6.2 in 2020) as a ranked list of priorities, really it’s that some constraints are required (like no back-to-back matches assuming a big enough event to support it), some are desired and what the iteration is attempting to optimize for (like minimal number of repeated partners/opponents), and some constraints are just some-effort-made-after-algorithm-is-done (like balancing color and player station). It may make sense to describe desires in that sort of way, and maybe instead of saying “Avoiding consecutive team plays with a 3 match gap” one might say something like “Each team will have at most one turnaround with a 2 match gap, and at most 30% of their turnarounds will have a 3 match gap”. There’s really a lot of ways of putting requirements like this together, is all I’m saying.

And the requirements and desires may be quite different at a 30-team district event than at a 70-team championship division, though I’m not sure where one draws the line. (Though my understanding is that even currently MatchMaker (at least as configured by FIRST) uses a different minimum match separation based on the number of teams.) And it gets even more complicated at small offseasons (it’s really interesting seeing a schedule of a 12-team event) or those hypothetical small real competitions just mentioned that we might see.

I don’t know if it’s more or less crazy than your idea, but I think it could be reasonable to just not have surrogates and just deal with not every team having the same number of matches. If you just use average ranking score as has been done in recent years, and half the teams have a denominator of 8 and half have a denominator of 9 since that’s just how many matches fit in the time available, I’m not sure it’s really any weirder than the idea of surrogates in the first place. Or, you know, just require the number of rounds to be a multiple of 6 as districts usually do. :slight_smile:

Well, if you care about time between matches the most, would you be okay (at, say, a 36-team event) if you just played with the same other 5 teams every 6 matches? That would maximize time between matches for everyone, after all. It can really hard to define just where the line is between “nice” and “required”.

1 Like

I know and I agree. And at various points in our history, the answer would be “yes, we would absolutely play with the same 5 teams every 6 matches” because most of those matches we would still be struggling to make it to the field. For me, the priority would be time between matches, and the second tier priority would be playing with different teammates/against different opponents. I’m not sure I could say where that line is drawn though. I don’t know how many repeats is too many.