Real Week 2 update

There is no “perhaps” here. The algorithm does not factor in team numbers or team history. Rather than pontificate here, consider talking with an FTA or reading up on the matchmaking algorithm to understand how it works.

http://www.idleloop.com/matchmaker/

Thanks for the link! I like having more info.

“it’s desirable to minimize duplicates so that teams see as many different teams as possible. It’s especially desirable for a given team not to have the same team as a partner more than once, nor as an opponent more than once.”

I think they could have split 1678’s second match against us to another match just sayin’. Its not really ideal for any team to face consensus #1 twice in qualifications or 20% of their matches.

I’m sure the algorithm tries to be unbiased however as we know it can be imperfect (as the above link states) a human FTA should look for duplicates and adjust as necessary. Just flip teams above or below any “peculiarity” a one game switch in the schedule is doable.

I am not pontificating (you chose to read a post in my week 2 update thread), just pointing out the realities of a single regional’s scheduling that happened to have 4 World Champions everyone in FRC knows.

Also I disagree with this statement “This is not only a scheduling algorithm issue, but a simple matter of not knowing in advance which teams will turn out to be more effective than others.”

I believe “Class” has a lot to do with year to year success in a 20 year organization of 4000 or so teams… just like in horse racing. So to say that 254 or 1678 or 973 or 1323 are all the sudden not going to be good is a false statement. they will likely be very good because of their programs and their history. They would not accept anything less. Same here we are not going to fall off the face of FRC either every year we will iterate better. You can assume certain things from how teams have done in the past. Just look at their year over year results its all there.

I think to really do scheduling “correctly” some unbiased FTA needs to “adjust” when the computer prints out what it thinks is optimal based on some algorithm. The FTA knows or should know the perennial teams and could easily see the duplicates or inordinate amount of powerhouse pairings with a single highlighter . They could adjust anytime up to when its posted. It can be done and I think it improves the game play as well if instituted correctly.

The main problem is… teams only get maybe 20 matches in two regionals so scheduling draw is huge just like “missed RP’s” as a high order ranking metric.

I’m not afraid to point things out to improve the game hopefully for every team. FRC is great yet can still improve and tweak. Its good to be questioned and not accept always the status quo. I may just have a fresh view on an older institution. Things can always improve.

This is not why we are not in St Louis. All I’m sayin’ it could be done better…and perhaps it makes a smidgen of difference if they actually tweak the way schedules are made. Might take a half hour or less at each regional to flip a few teams a few spots with the analytic help.


Attached is the way I do schedules lets pretend its a different season and in this scenario 3495 is a super powerhouse and consensus #1 or won 4 WC divisions and its our second match with them on our side. Great for us but seemingly “unfair” for having #1 twice on our side (or against us)

I mark partners in green and opponents in red for my scouts. Whites we do not play.

So if an FTA wanted to by switching 5137 for 2135 a one game switch a second powerhouse pairing match is avoided then all they have to do is make sure the other 5 teams did not play that team on same side or not. There are plenty of white spaces to switch teams around IF the goal is to be more random and possibly more fair to all teams.

If that does not work then there are two other “blue” teams that could make the switch.

We could have probably used the extra game in between as well there…in that scenario.

Just like with instant replay, changes can be made that are fairly simple and don’t open a can of worms… what might actually happen is all the sudden more teams get super good alliance partners and avoid facing powerhouses too much until eliminations. Schedules are always pretty late anyhow.

I think a human eye on it could easily sort out inconsistencies, much easier than trying to program some algorithm…its not rocket science. Let the algorithm do the sort… then highlight several inconsistencies and move things around slightly.





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.