As of [email protected], optimise-services-and-exceptions.js implements a very rudimental optimisation strategy:
- it calculates all service dates (both "regular" &
exception_type=1-based) of a service, and then
- checks if there are more "regular" than exception-based dates (in this case, it sets the respective daw of the week (DoW) flag to
1), or vice versa.
There is a lot of potential in changing the time span (start_date/end_date) of the service, so that the number of exceptions necessary to express it is minimised. To do this, we must consider the distribution of the service's dates, so that rare outliers – e.g. Christmas with a service that only runs during summer & on Christmas – are expressed as exceptions, whereas the majority of the dates is express using DoW flags.