League Planner Software - How are the indoor league fixtures
produced?
Bespoke software is used by LIBC to produce the league
fixtures:-
This article gives a simple outline of the procedures it
uses with the hope that this will help members understand
why and how fixture allocations happen!!
ROUND ROBIN TEMPLATE
The program has a database of optimised round robin tables
for 4 to 18 teams with from 1 to 9 rinks, e.g.:-
- - 6 teams and 3 rinks
-
SETUP
Before the fixture allocations can begin, setting up data is
entered, these include "exceptions" and "league
requirements".
"exceptions" are events that take up time and rinks which
will then not be available for league fixtures, e.g.:-
- Club finals.
- Super8Series.
- Club friendlies.
- Inter-club events (Trudy Bates, Egham etc.).
- PBA competitions.
"League requirements" data is input for each league in
the season:-
- League title.
- Start and end dates.
- The days, times and rinks that the league can use on a
weekly basis.
- The days, times and rinks that the league can use if not
all games will fit into the preferred day/time/rinks above
(termed "overspill slots").
- Any holiday time when a league cannot play (Christmas?).
- Divisions within the league :-
- Division title.
- How many teams.
- How many times teams are to play each other.
- Team requests, such as:-
- Avoid playing on certain days.
- Avoid playing when another team in another league is also
due to play that day.
RINK MATRIX
The program stores a rink matrix that is very similar in
concept to the fixtures display in the club handbook,
something like:
for the complete season. Firstly, the "exceptions" are plotted into
this matrix, then:-
LEAGUE PLANS
Each League is then calculated individually in an order
chosen by the user (the order the leagues are calculated in
can be important if they share any time/rink slots with
other leagues).
RUN 1 - The program goes through the appropriate round robin
template a game at a time checking against the time/rink
slots that have been allocated within the setup. If a
fixture requirement does not clash with an exception or a
team request, and if neither team has already played that
week, then it is allocated, otherwise the next time/rink
slot is checked, and so on until that game is allocated. And
then to the next round robin template game and the next
time/rink slot and so on until the end of the season is
reached.
RUN 2 - With a simple league, such as some of the Summer
season leagues, that is all that is required. The allocation
for that league will be complete and in a perfect
condition!! However, in a busy Winter season league such as
the Morning league many (up to 250) games will not have been
allocated in the first attempt so the program goes through
from the beginning again to try and place these left over
games in any so far unallocated time/rink slots.
RUN 3, ETC - Even after that, some games may not have
found allowable space. Time for plan B for the remaining unallocated
games and the remaining unallocated time/rink slots.!! Team
requests are now ignored, and the user selects how the rules
may be slackened for the next
attempt:-
This process is continued until all games have been
allocated, then the fixtures are tested:-
- TEST 1 - each team plays no more than once per round.
- TEST 2 - each team plays no more than once per day.
- TEST 3 - each team plays each other team as per league
setting.
- TEST 4 - games do not clash with exceptions.
- TEST 5 - games start after or equal to start date and
before or equal to end date.
- TEST 6 - no rink is in use more than once per time slot.
This process is repeated until all leagues have been
calculated and tested.
SEASON PLAN
The league plans are then combined into a season plan. 3
stages of optimisation are then carried out, each with the aim of
equalising, as well as possible, the quantity of games a team
plays on each rink. This is done by going through each
day/time/rink slot and if a team or teams have a bias, swap
over rinks within the same day/time slot. Testing has shown that there is little benefit going through a season more than 3 times, hence the 3 stages of optimisation.
The user can then manually move games and modify the plan.
The season plan is then tested:-
- TEST 1 - each team plays no more than once per day.
- CHECK 2 - the user can examine a display of teams that
play more than once per week.
- CHECK 3 - the user can examine a display of the qty times
each team plays on rink/ in time slot.
- TEST 4 - how many times each team plays each other team -
ensuring plays every team.
- CHECK 5 - the user can examine a display of whether or not
teams play according to team requests.
- TEST 6 - team IDs unique and sequential.
The user can again move games and modify the plan, if
required, and so on, until happy or insane.
OUTPUT
The Season Plan, Daily Fixture Booking Sheets (for the bar)
and the Captains Sheets are then produced. The Season Plan
feeds directly into the web site indoor league fixtures (see tutorial
League Planning - Update Web
).
THE END.
|