Real Week 2 update

Thanks for correcting me and you are welcome.

This proposition is inherently contradictory. You are asking for an “unbiased” volunteer to introduce bias into the schedule based on their perception of historical robot / team quality. No matter how you slice it, that is biasing the results even farther from random than what they are, and there isn’t even a chance of a volunteer doing this “fairly”.

Changing the algorithm to try and pair teams of different ages with each other was tried once, in 2007, with generally disastrous results. The match making generator is already far from random when you consider all of the constraints on it - adding more constraints to make schedules “fairer” all but requires loosening one of the other constraints. In 2007, this meant matches had a consistent mix of young teams, old teams, and middle aged teams… at the cost of having to play with and against the same robots over and over again. It was almost universally disliked.

My advice? Get over the fact that schedules won’t ever be “fair” however you see it, and work on becoming a team that isn’t dependent on a perfect schedule to play well into Saturday / Sunday afternoon.

I will agree 100% with the 2007 system of scheduling being a mess. It was my second year on the team and we ended up being ranked 2nd at UTC with a robot that never hung a tube once (maybe 2) and was complete garbage. We were lucky and got paired up with 25 twice and many other great teams to push up to being ranked 2nd.

I felt guilty ranking so high with such a poor performing robot. I refuse to even count it as our highest ranking ever at an event.

Congrats to 5137 playing so well during CVR! You were very steady throughout. Interesting how you and 5136 have developed into such strong teams in a short amount of time.

Thanks we loved it. We were rooting hard for 5136 too.

Been there done that already as I repeatedly said this did not affect us (but may affect others)… we held our own in CV and Ventura last year both days . I think that small changes could be made though to benefit all teams and saying that’s “just the way it is” is not really acceptable.

I foresee maybe about three glaring inconsistencies that may need to be adjusted per “powerhouse” event… an hour of work maybe just making sure it does not mess another team up. The system is decent I believe it can be improved. Just like missed defense crossings that also can improve. Pretty sad when Portcullis crossings are missed especially the way we did them :slight_smile:

I agree; I’ve posted about this earlier. A bit of history: we got the No 1 seed in Curie in 2013 in part because we had a very favorable schedule–play with powerhouses, never against them. In 2015, it was the opposite, but we scrambled through and made ourselves very attractive to 118. Our scheduling bonus was in the initial assignment to Newton when we had already played with 118 in Sac (and we knew 1671 extremely well.)

The solution is in fact quite easy. It’s a two-step scheduling algorithm that accounts for last season’s performance. I believe that all of the professional sports leagues already do this. First, you sort the teams in bins A, B & C based on a ranking criterion–probably a system akin to the district point system. (Rookies = 0). Each match is scheduled by drawing a team from each bin for each alliance as an added step. All of the other constraints then come into place.

The single biggest problem? FIRST has to explicitly acknowledge that teams are of differing competitive quality. The rationale for the ChampSplit seems to imply that they are unwilling to make this acknowledgement as somehow being demeaning. I believe that it is much more disheartening to face two WC teams in a qualifying round and know that there’s little that you can do to slow them down when they are paired because all of your alliancemates are young teams.

And I’ve been quite disappointed in the announcing prep done for FRC teams. Too often they bring in a “voice” who has little connection to FRC. At Sacramento, I plan to give the announcers much more prep (I’m on the RPC). They can spread out the kudos for teams like 254 over the whole competition so there’s not a huge buildup in a single match (but it’s also important to generate buzz by acknowledging team accomplishments–watch any elite sporting competition.) And it’s also very important to acknowledge what other newer or lower ranked teams have done. Even noting that 5137 had been fighting for No. 1 seed all competition should have been notes.

Again, congrats. Please come to Sac soon!

Thanks for the world class insights… SAC how much further is that? LOL, I literally almost fell asleep on the way home…had to pull over to take a 20 minute “not crash car” nap

As someone who was around the last time the match scheduling algorithm attempted to account for strength of schedule, NO. Just NO. 2007 was AWFUL. Yes, these caps are required.

The gripe is about favorable/unfavorable schedules. If you try to balance out the competitive levels of teams, you’re inherently creating favorable/unfavorable schedules. This is exactly what happened in 2007. Older teams had unfavorable schedules, and younger teams had favorable ones. By trying to solve the problem, you’re essentially enshrining the problem.

And as a technical point, *only *the NFL accounts for previous seasons’ results in determining the schedule. And that’s a relatively minor factor (it influences only 2 games of the 16 on each team’s schedule). Conferences/divisions (which are geographically based) are the driving factor in the other 14 games of the NFL schedule, and the lone factor in the NBA, MLB, and NHL schedules.

NFL teams play each other once unless in divisions (or playoffs)

I do think there is a solution…

NO duplicates
Also too many pairings/facings of “known powerhouse teams” should be schedule avoided until eliminations

Powerhouses don’t really need that much help to rank high nor is it good for younger teams to face “near certain doom” twice in a competition hence my no duplicate suggestion

Powerhouse teams will not be left on the bench either they will nearly always be selected regardless. Most other teams not as much.

Correct. That doesn’t change my point. Only 2 of the 16 games on an NFL teams’ schedule are based on the previous seasons’ results. The other 14 games are based on which division a team plays in.

But two games are…perhaps similar to the few match-ups I see as inconsistent?

I wasn’t trying to use the NFL as a model to base our scheduling algorithm off of. I was simply pointing out that the assertion that “all of the professional sports leagues already do this” is factually incorrect. Three of the four major North American professional leagues do not factor in previous performance at all, and the only that does only has two games based off of it.

We could always follow the European soccer leagues’ example and relegate the bottom performers.

/s

Another important thing to mention here is that this year’s volunteer training very heavily emphasized only running the MatchMaker algorithm once and only once. And if you ran it a second time, you had to explain your reasoning on Skype. The reason for this policy is to avoid the exact kinds of bias we’re discussing - because randomness is the fairest decider of them all.

The programmer of the 2007 match algorithm believed the same thing. Whether or not it is correct doesn’t matter much to the results of implementing that belief: with fewer than about 60 teams at an event, the number of times a given team plays with or against a specific other team skyrockets. This is exactly what you’re trying to avoid, isn’t it?

Unless you have an extraordinarily large pool of teams to draw from, “all of the other constraints” conspire to cluster teams into essentially the same groupings over and over again. What problem were you trying to solve again?

I wonder which setting they are using?

Quality The algorithm allows the user to specify a desired quality. This simply determines the number of schedules that are generated and evaluated in the simulated annealing algorithm, as specified in the list below.

Fair: 100,000
Good: 750,000
Best: 5,000,000

If they are running only one perhaps they should choose “Best”

I’m reasonably certain they already run it on “best”, having played around with the standalone program and been an official scorekeeper in the past. “Best” mode takes several minutes to run, while “Fair” only takes a few seconds. The schedule generation step in FMS also takes several minutes.

First I disagree with the assertion that randomness is the fairest decider, especially when we never get to a full probability distribution which would allow schedules to balance out over a one or even several regionals. Second, these algorithms are in fact not completely random. They have inherent patterns that are difficult to erase.

I believe it would be simple add the bin constraint–I doubt that it would have to be run more than once. The only added step which is quite easy is to assign the teams to the separate bins.

As for leaving scheduling to the judgement calls of the officials, I think that’s fraught with danger. For example, how should we have treated 5136 at CVR? They had made it to Einstein in 2014 yet they are only a 3rd year team. I think a transparent algorithm solves the problem the best.

No, we’re not trying to avoid playing with the same teams repeatedly. We’re trying to avoid matches in which one alliance is over strong vs the other simply due to the nature of the composition. We should not have been paired with 254 or 1671 AT ALL at CVR, yet we played with both of them. Excluding such pairings is more imperative than playing with as many teams as possible.

Another option to use a sliding scale of point ratings for each team, and ensure that each alliance has a total that exceeds a minimum value. That would allow for more flexibility in alliance composition. Again an imperative to ensure that every alliance has a minimum level of competence. The flip side of having overly strong alliances is less important if each alliance surpasses a minimum.

I’m interested in what the problem was with the 2007 schedule? What criteria were they using?

BTW, I think it’s interesting to see that it’s only the NFL that uses strength of schedule. The other leagues have so many games (80+) that each team is able to play each other multiple times. (But I will note that the NBA changed its playoff qualification instead as a means of correcting a regional misbalance in schedule strength.) The NFL season is more akin to FRC with relatively few matches compared to the number of competitors.