Regatta Timetabling

Race Slots

Automated race scheduling and checking is based around race slots that describe the available times within the day where races may be scheduled. These slots describe the available race times and also any gaps within the day either between divisions or where breaks are required. For successful scheduling there must be enough race slots to house all of the races in the appropriate divisions.

The Races -> Race Slots displays the status of slot availability/assignments and allows the slots to be adjusted to make them appropriate for a specific competition. The page is split into 3 sections.

Slot Availability Status

This shows:

  • Draw Races - the number of races within the drawn events. This is the number of slots required to be able to timetable the whole competition.

  • Race Slots - the number of slots provided by the defined races slots (in a lower section of the screen). This is the number of available slots for allocation of races. The number of available slots may be greater than the number required by the draw and this may give the scheduler some leaway to find a suitable timetable allocation.

  • Races Allocated according to time constraints - the number of races that can be allocated to race slots given the time constraints provided. In particular division start and end times may preclude some use of slots.

The remainder of this section gives a number of notes describing whether the slots are sufficient to fit all of the required races and where not sufficient it reports the issues involved.

Note that the analysis provided on this screen does not guarantee that a workable timetable can be produced to satisfy all the scheduling constraints. It just states whether there are enough slots to contain all the races.

Divisions

This section lists the divisions for the competition with any specified start and end times. It shows how many of the slots within the division would be used when scheduling.

When in edit mode the division start and end times can be manually set or adjusted. Once adjusted the slot availability status will be recalculated to reflect the new values.

Race Slots

This sections lists race slot groups along with allocation to divisions within that group.

  • Each slot group has a start and end time (inclusive). Within that the slots are described as being a specific number within a time period. This allows races to be scheduled at irregular intervals to achieve a specific goal. A typical irregular interval may be 2 races per 5 minutes and this would place slots at T+0, T+2, T+5, T+7, T+10 minutes within the slot time range.

  • Exclusion slot groups can be provided that ensure that no slots are available between the start and end time (inclusive). These can be used to create lunch/tea breaks, breaks for other river traffic or similar things.

  • The section also shows how many of the slots would theoretically be allocated and to which divisions that allocation would be.

When in edit mode the start time, end time and races per period values can be adjusted manually. When this is done the slot availability statistics are automaticaly updated.

Auto Setup

An initial setup can be performed using the Auto Setup button (when in edit mode).

  • First Race Time is the desired time of the first race of the day.

  • Races per Gap sets the desired number of race slots per time period. This pattern will be repeated throughout the day.

  • Division Gap any desired time gap between divisions. This may be set to zero to ensure that divisions follow on without a break in racing.

  • Division Gap Rounding by default the division gap may mean that the next division starts at any time. However it may be prefered that things start at a neat interval. For instance a rounding of 10 means that the next division would start at the next minute value that is wholly divisible by 10. 30 would mean the division starts at the top or bottom of an hour.

  • Exclude add excludes to the race slots. This allows lunch/tea breaks or similar to be taken into account.

Once the Setup Race Slots button is pressed any existing slot setup is overridden by a setup that satisfies the requested parameters. The new setup shows the time of the last race using the desired parameters. Repeat the auto setup operation to tweak settings as required. Alternatively manually edit values.

Add/Remove Slots

Additional slots can be added using the Add Slot Group button and providing the start, end, and slots per gap values.

Time periods can be excluded using the Add exclusion button with appropriate start and end times.

Use the dustbin icon against a slot entry in the Race Slots listing to remove a specific slot group.

Planner/Timetabling Settings

Planner and timetable checking settings are adjusted on the Races -> Planner Settings screen.

Race Separation

The timetable planner and checker uses two parameters for the separation between rounds of an event and races where crew/boat doubling is an issue.

  • Minimum Separation is the desired minimum separation between any two races of interest. Anything below this limit is reported by the checker.

  • Ideal Separation is the ideal separation between any two races of interest. Where possible races will be spaced near this amount but this is subject to being able to meet the constraints for other races in the whole competition.

The separations can be set for a number of scenarios:

  • Round Separation specifies the desired times between races in the same event. It is possible to override the desired and ideal times for individual round levels. For instance it may be necessary to use shorter gaps between the semi-final and final.

  • Crew Doubling Separation specifies the desired times between races for crews who are doubling up with crews in other events.

  • Boat Doubling Separation specifies the desired times between races for crews who are boat (and cox) sharing with crews in other events.

The planner tries to space rounds within an event close to the ideal separation. This creates a consistent racing environment where crews have similar time between rounds without any long gaps.

In constrast crew/boat doubling operates slightly differently when close doubling it concerned the planner tries to get at least the ideal doubling but actual spacing above the ideal does not affect the auto planner decisions. In general a larger time between doubled races is good for the overall workability of a timetable.

Division and Event Constraints

Each division and event can have earliest and latest time constraints specified. The division times will likely have been populated during the race slot setup. Event time constraints are less widely used because they make the scheduler's job harder but are sometimes useful to help guide the scheduler. The earliest and latest time constraints apply to all races within the specified division or event.

it is also possible to set the race time as being Fixed. This instructs the auto scheduler to not change the times of the races in a particular event or division. This can be useful if some particular events have been manually timetabled or where part of the draw is acceptable but where another part is still being worked upon.

Fixed Time Races

In addition to fixing the times for whole events or divisions it is also possible to fix the time of individual races via the Timetable Screen. Typical use cases include: setting finals for specific times when sponsors or local dignatories are attending the competition; ensuring that the first round for a crew with a particularly long journey is later in the day; and it may also be used to guide the first and last rounds for a competition but then let the scheduler plan intermediate rounds based on the constraints of other events/races.

Timetable Screen

The Races -> Draw Timing screen provides the core access to timetable races.

Screen Layout

The displays the racing schedule in a grid layout with each square representing a time within the racing day. Each hour throughout the day is presented as a vertical column with the minute within the hour being a row.

The race slots that were setup in Race Slots are shown as green squares on the grid. When races are placed on those squares they show as yellow whereas when not placed or are placed outside of a race slot they show as amber.

Below the timetable grid is a list of unassigned races that have no time assigned to them.

Below that is a copy of the Planning Configuration screen that contains all the constraints that are set for the auto-planner and timetable checker.

Automatic Scheduling

The easiest way to timetable the competition is to use the Auto Plan feature. This applies the planning constraints to all of the races and attempts to find an optimal assignment of races to slots.

When the Auto Plan button is pressed a two minute period begins where the scheduler operates. After this period completes the best solution found is applied.

Auto planning can be run repeatedly with adjusted planning constraints to help find an acceptable timetable. However it may be that some manual adjustments are necessary to produce a minimally acceptable solution for very problematic races.

Manual Adjustments

Manual adjustments can be made to the timetable by drag and drop of individual races around the schedule grid. Indeed the timetable can be fully scheduled manually if required.

  • drag and drop race - use drag and drop to move a race around the timetable or to move them to/from the unasigned races list below the main timetable grid.

    The two tone green colours with time label on the grid are the race slots that have been setup previously. When a race is placed there the race itself will appear with a yellow background. If the race is placed elsewhere on the grid (the two-tone blue cells) then it will appear as amber because it is not on a planned race slot.

    When moved a race will temporarily turn red whilst the change is being saved in the database. If the red colour persists for a few seconds this suggests a problem with saving and it is recommended to reload the page before attempting further changes.

  • fix race time - right click on a race to reveal a context sensitive menu this will give you an option to toggle the Time Fixed flag for the race. If the flag is set then the auto planner will not move the race. However manual moves of the race are still possible.

Note that at present the planner grid gives no feedback as to the constraints in individual races. These should be inspected using the reports below.

For those who prefer a text based interface to timetable adjustment the Races -> Edit Draw screen allows individual race times to be altered.

As ever be aware that once the draw has been published changes to race times and the draw should be considered carefully. The system does track changes such that any retiming operations are listed at both the originally planned time and at the newly scheduled time.

Checking Timetable Constraints

A timetable needs to be workable. In some situations it is just not possible to cover all situations and in those the Organising Committee needs to be aware of any possible pinch points where extra care and attention may be required on race day.

First step is to check the Races -> Planning Status report. This gives a report of any races that do not satisfy the planning constraints. Examine each entry here and where necessary take corrective action.

Corrective action may take a number of forms:

  • adjust planning constraints and re-run auto-plan - this is typical in the early stages of producing a timetable. Some simple changes to the overall settings or those for individual divisions/events will often achieve the desired result.

  • accept a small number of minor breaches of minimum time constraints - if a small number of races are separated by a few minutes under the minimum separation constraints this might be workable. On race day the Umpires and Race Control team may need to be briefed to be aware of any delays in these races to avoid knock on effects.

  • manually timetable problematic races - sometimes a manual touch is required. For instance if some unavoidable doubling means that there is a possibility of crew members being in the finals of two events then the Organising Committee could take a risk and schedule the finals much closer together than would normally be allowed. This would give then give the scheduler a little less work to do and may allow an otherwise workable solution to be found.

  • eliminate problematic doubling/crews from the competition - sometimes it is just not possible for all entries to be accommodated. If there is no workable solution then one or more of the problematic entries would need to be removed from the draw.

Planning Status

The Races -> Planning Status screen lists any problematic constraints along with their severity and a note explaining what the issue is.

The following are examples of issues that may be reported:

  • Not scheduled - a race has not been allocated a race time and hence is not scheduled to take place on competition day.

  • Race close to next round - the time gap between the current race and a next round race is too small based on comparison with the minimum race separation specified in Planning Configuration. This is likely to lead to an unworkable timetable although if the gap is only a few minutes below the minimum it may be workable with care.

  • Race close to previous round - the time gap between the current race and a directly previous round race is too small based on comparison with the minimum race separation specified in Planning Configuration. This is a mirror image of the Race close to next round issue and is listed to make clear that care must be taken with both earlier and later rounds.

  • Shared Slot - the current race shares a race time with another race in the timetable. Whilst this does not mean a timetable is unworkable it likely means that an error has been made.

    One situation where races may share a race time is for omnium events where omnium tasks may be taking place whilst other races take place on the main race course. This warning may safely be ignored in these circumstances.

  • Earliest Slot - the current race takes place before the earliest race time slot permitted for the corresponding division or event. In this case the race should be moved to later in the day.

  • Latest Slot - the current race takes place after the latest race time slot permitted for the corresponding division or event. In this case the race should be moved to earlier in the day.

  • Crew Doubling - the current race takes place too close to a race for another crew that crew members (excluding cox) are doubled into. Only the nearest doubled race before and the nearest race after will be reported. Consult the doubling report for more details of the times of races involved.

  • Boat Doubling - the current race takes place too close to a race for another crew that cox or boat (if notfied via BROE) are doubled into. Only the nearest doubled race before and the nearest race after will be reported. Consult the doubling report for more details of the times of races involved.

  • Same Round - if the meeting settings have Race Scheduling Strategy set to Group Siblings then any instances where races in the same round of an event are not in consecutive race slots will be reported.

  • Invalid Slot - if a race time is not set to one of the valid race time slots then it will be reported here. This may be necessary in the latter stages of scheduling where particularly problematic races need to be slotted in or where a race need to be retimed and the draw has already been finalised/published.

    If the race is intended to be put at the time slot an extra race slot can be added covering just the invalid race time and that will make the error go away.

  • Slot Unused - if no race is assigned to a particular race time slot. This is not an error if an excess of time slots have been provided, for example to allow retiming of a limited number of races, but it may be sensible to check that the grouping of unused slots does not leave a particularly quiet period in the timetable.

Doubling/Close Round Separation Analysis

To diagnose doubling or rounds too close together timetabling issues use one of the doubling reports. These reports can be done on a full meeting; division; club or event basis via the Races -> Information screen.

  • The All Doubling reports list each crew in the appropriate competition, division, event or club and show the rounds that crew is involved along with any crews it is doubled with. Any races that violate the minimum separation parameters will be highlighed in bold.

  • In constrast the Close Doubling reports only list crews that violate the minimum separation parameters but otherwise the reports display identical information.

Planner Values Histogram

The Races -> Information -> Scheduling -> Values Histogram screen provides a pictorial representation of the overall gaps between rounds and crew/boat doubling. This is helpful to get an overall view of how workable the timetable is in practice.

Each histogram groups races into time ranges based on the time in minutes that is being reported by the histogram. Two histograms are provided for each based on the constraints that are being summarised.

Histograms are provided for the following constraints:

  • Before Previous - the gap to the previous round in an event. The expectation is that most races will be gathered around the ideal round separatio time. Hopefully very few races will be at the minimum separation time because this starts to put pressure on the viability of the timetable. Separations greater than the ideal are less problematic as they signal longer waits between rounds for crews.

    The Nearest histogram reports on only the nearest previous round to a particular race whereas the All histogram reports on the gaps to all races leading to that race.

  • After Next - the gap to the next round in an event. This is analogous to the Before Previous histograms but reports the gap to the next round from a particular race. The histograms do differ slightly due to the asymmetric nature of the number of lines leading into and out of races when viewed in a spider diagram.

  • Crew doubling - the gap to the nearest crew doubled race before and after a specific race. In general a workable timetable will have a greater distribution to longer time periods at/above the ideal rather than near to the minimum specified separation.

  • Boat (and cox) doubling - the gap to the nearest boat doubled race before and after a specific race. In general a workable timetable will have a greater distribution to longer time periods at/above the ideal rather than near to the minimum specified separation.

Planner Scores - the gory details

The auto planner operates by trying to find a best fit solution to the timetable planning problem. Technically each constraint (round spacing, doubling spacing and similar) is assigned a hard and a soft score.

Hard scores are those where the timetable is definitely unworkable. For example a round that is timetabled after the next found would be assigned a non-zero hard score.

Soft scores represent constraints that are not definitely unworkable. Higher scores are less workable/optimal solutions and scores approaching zero are approaching the optimal solution.

Individual constraint scores are combined to generate an overall hard & soft score for the timetable. The planner works to elimate and hard scores and to minimise the overall soft score.

The interested user can examine the Races -> Information -> Scheduling -> Score Histogram and Races -> Information -> Scheduling -> Planner Scores reports. These are intended for deep guru and technical debug purposes and are not described further here.