Scheduling
Setting up your Division's Schedule
The final part of creating a division consists of creating its schedule. You are not required to create a schedule right away and some league operators prefer to wait until later to create their schedule.
Constraints
Creating schedules for leagues is a notoriously difficult problem especially when you have to do it by hand. We have included a schedule generator in LMS to help a bit with this problem.
First, we should set some expectations. Scheduling is hard--even for computers. A bit of a tangent here but it is a type of computer problem that has no known solution (or at least a solution that can find an answer in our lifetimes). As such, we need to be realistic in what we can achieve with such a generator.
Some schedules are really easy to generate. An example is a division that has one team playing out of each location. Another is a purely in-house league that has enough tables available. LMS will always generate optimal schedules for these kinds of divisions.
Let's explain what we mean by optimal. Whenver we evaluate how "good" a schedule is, we need some way of measuring it. We do that by looking at what makes a schedule "good". Here are the criteria we use:
- A schedule should never have "overbooked" tables. We consider such a schedule to be terrible as it has too many teams trying to play on the same table(s).
- A schedule should not have a team playing away from their home location more than one week in a row.
- A schedule should have teams play the same number of home and away nights. For example, if Team A has played 5 home games and 4 away games, then every other team should also play 5 home and 4 away games.
- A schedule should have each team play in each location as least once.
- A schedule should have a match scheduled in each location every week.
Armed with these criteria, we can compare one schedule to another and see which is better.
No Play Dates
Often divisions will have weeks that they want to omit from the schedule. This often due to holidays or the like. Prior to generating a schedule, you can add "No Play Event(s)" to the schedule. These mark particular dates as "No Play" dates and the scheduler will schedule around them. Click on No Play Event to add one to the schedule.
Schedule Generation
You generate a schedule by clicking Generate Schedule. A box appears containing the scheduling options.
You must specify the beginning date for your division. This should be the first night of actual play. Next, you specify either the number of round-robins or the number of weeks to play.
- Number of round robins - In a round-robin, each team plays each opponent exactly once. Using this option, you control how many round-robins are scheduled.
- Number of weeks - Specifies how many weeks long the schedule will be. This setting is often used when there is a certain number of weeks that must be scheduled but you aren't able to use round-robin setting. For example, a division containing 12 teams would need 11 weeks for one round-robin and 22 weeks for two round-robins. If a schedule of 15 weeks was desired, you would enter 15 for this setting. The schedule will then generate two round-robins and chop off the weeks at the end to get a schedule of 15 weeks. These schedules are never optimal meaning that at least one of the five criteria listed above will never be able to be met.
Click the Generate button to generate the schedule.
Schedule Statistics
As mentioned earlier, some schedules are really easy to generate. Other schedules are really, really hard. As an example, for a division containing 12 teams playing out of 5 locations, there are over 150 million possible schedules. Some of them do not make sense and are obviously bad. The job of the schedule builder to is search through the set of possibilities and find the best one it can and show you the statistics for it. The statistics show you how the schedule fares against the five critieria.
The top section of shows the overall statistics:
- Error level - You want this number to be small. A zero indicates a perfectly optimal schedule. Generally, when comparing two schedules, the one with the lower error level is a "better" schedule than the higher one as it scores better against the criteria.
- Number of weeks - The number of weeks in the schedule.
- Has critical violations - This is very important. It indicates whether the schedule contains criteria violations that are really bad. An example is a schedule that contains overbooked tables. Sometimes, the only schedule the builder could find is one that has such violations. It doesn't mean that a better schedule does not exist, just that it wasn't able to find one in the time it was given.
The lower section shows the team-oriented statistics. For each team how see their name, the number of home games they play, the number of away games they play, the maximum number of away games they have in a row and how many times they play each of the other teams.
Choosing a Schedule
The Schedule Statistics view provides a lot of information about a schedule. It also provides a set of tools that make it easy to try and find a better one. The schedule builder is not able to look at every possible schedule as it would take an extremely long time. Instead, it looks at a portion of possible schedules and shows you the best one it can find. It's a little bit more complicated than that but it's pretty close. The buttons at the bottom of the box let you "set aside" a schedule, generate a new one, and ultimately to choose one.
First, generate a schedule. Note it's error level. If it's zero, KEEP THAT ONE as you've found an optimal schedule that cannot be bested (click the Use This Schedule button to keep it). If it is not zero, note the Error Level. Then, click the Set Aside button. This will set aside the schedule and it will remember it so you can go back to it later if you don't find one that is better. Next, click the Try Again button. This will generate a new schedule and show the statistics. If it is better, you can set that one aside and continuing retrying. If you ever want to go back to the one you set aside, click the Use Set Aside button to retrieve it.
Importing/Exporting Schedules
There are occasions where the scheduler won't do what you want it to do and you want to generate the schedule yourself. The Import Schedule and Export Schedule buttons are used in this case to allow you to create or tweak a schedule in Excel or Google Sheets.
Exporting
Clicking the Export Schedule button will generate an Excel spreadsheet containing the schedule's details. There are two sheets in the file:
Schedule - This sheet contains the actual matches for the schedule (e.g. Team A plays at Team B).
Teams - This sheet contains the list of team names along with their "team number". These team numbers are referenced on the Schedule sheet when assigning teams to matches. It is important that the team names are spelled exactly the same as they are in LMS in order for importing to succeed.
Importing
When you have constructed a schedule by modifying the spreadsheet, you can import it back into LMS. Click the Import Schedule button, select your Excel spreadsheet, and LMS will create the matches in your division's schedule.