Professional Documents
Culture Documents
United States Patent (19) 11 Patent Number: 5,848,395: Edgar Et Al. (45) Date of Patent: Dec. 8, 1998
United States Patent (19) 11 Patent Number: 5,848,395: Edgar Et Al. (45) Date of Patent: Dec. 8, 1998
COMPUTER
APPOINTMENT
BOOKING
GANT SCHEDULER
MANAGER
INTERFACE APPONTMENT
SERVER
U.S. Patent Dec. 8, 1998 Sheet 1 of 3 5,848,395
COMPUTER
APPOINTMENT
BOOKING
GANTT SCHEDULER
MANAGER
INTERFACE APPONTMENT
SERVER
FIG.1 10
FIG. 2
U.S. Patent Dec. 8, 1998 Sheet 2 of 3 5,848,395
CALL
APPOINTMENT
BOOKING
SCHEDULER
FIG. 4
U.S. Patent Dec. 8, 1998 Sheet 3 of 3 5,848,395
CHANGE 51
SEOUENCE
EVALUATE 52
SEOUENCE
COMPARE COST
WITH CURRENT BEST
BETTER WORSE
DECIDE WHETHER 55
TO ACCEPT
ACCEPT REJECT
54 SAVE AS NEW NO CHANGE
CURRENT BEST
FIG. 5
5,848,395
1 2
APPOINTMENT BOOKING AND of the tables 10 contains a number of routes 31. Each route
SCHEDULING SYSTEM represents an itinerary for a particular operative on the day
in question, and has a number of jobs associated with it.
BACKGROUND TO THE INVENTION Each route comprises a Sequence of records, with each
record containing the following fields:
This invention relates to an appointment booking and Region: the identity of a region to be visited by the
Scheduling System. The invention is particularly, although operative.
not exclusively, concerned with a System for booking
appointments with Service engineers Visiting customer Sites Start Time: the time the operative is scheduled to start
within a defined geographic area. working in the region.
The object of the invention is to provide an improved End Time: the time the operative is scheduled to finish
appointment booking and Scheduling System. working in the region.
Time Used: the number of minutes scheduled to be spent
SUMMARY OF THE INVENTION on jobs already booked within the region.
According to the invention there is provided an appoint 15 Time Left: the number of minutes free, available for new
ment booking and Scheduling System comprising: jobs in the region.
(a) a table for storing a plurality of routes, each of which The sum of Time Used and Time Left will normally equal
Specifies a Sequence of regions to be visited by a the difference between Start Time and End Time.
particular operative, and jobs to be performed by the Appointment Server
operative in each of the regions, FIG. 4 shows the operation of the appointment server 12.
(Box 41) The appointment server uses the routes Stored in
(b) an appointment server for offering appointments at the database to offer a number of possible appointments to
Specified times, using the table to check for availability customers. Specifically, if a customer within a particular
of operatives in Specified regions at Specified times, and region requests an appointment, the appointment Server
for inserting new jobs in the routes to reflect booked Searches the routes to find one which Visits the region and
appointments, and 25 which contains Sufficient free time within that region.
(c) a Scheduler for periodically updating the routes in Appointments are offered within predetermined time slots,
accordance with predetermined Scheduling criteria, to e.g. two hour Slots. If the customer accepts the offered
generate a new set of routes. appointment, a new job is associated with the route and the
Time Used and Time Left fields are updated.
BRIEF DESCRIPTION OF THE DRAWINGS (Box 42) When an appointment is made, the appointment
Server checks whether a predetermined trigger number of
FIG. 1 is a block diagram of an appointment booking and appointments has been made Since the last time the Sched
Scheduling System in accordance with the invention. uler was run. If not, the appointment Server returns to Box
FIG. 2 is a Schematic representation of a geographic area 41 to await the next appointment.
within which appointments are to be booked. 35 (Box 43) When the trigger number of appointments has
FIG. 3 is a Schematic representation of a database holding been made, the appointment Server calls the Scheduler, and
a number of routes. immediately returns to Box 41 to await the next appoint
ment.
FIG. 4 is a flow chart showing the operation of an Appointment booking Scheduler
appointment Server. When the appointment booking Scheduler is called, it
FIG. 5 is a flow chart showing an optimisation proceSS 40
performs the following operations.
performed by the an appointment booking Scheduler. The scheduler first extracts the jobs to be scheduled.
DESCRIPTION OF AN EMBODIMENT OF THE
Appointment bookings and other taskS Such as pre-allocated
INVENTION
work and holiday activities are read in by the scheduler from
the database. This includes any unavailability periods that
One appointment booking and Scheduling System in 45 may have been input through the Gantt or database main
tenance ScreenS.
accordance with the invention will now be described by way
of example with reference to the accompanying drawings. The scheduler then takes the set of jobs to be scheduled,
The System to be described is intended to handle appoint and allocates jobs to resources for Specific times, accounting
ments for a number of operatives (e.g. Service engineers), for travel times, to create a number of Sequences of jobs. The
Visiting customer Sites within a defined geographic area. 50 Scheduler then attempts to optimise each Sequence, driven
Overview of the system by weightings on a variety of parameters. The optimisation
Referring to FIG. 1, the appointment booking and Sched process is described in detail below with reference to FIG.
5.
uling System comprises conventional computer hardware 10, The Scheduler then uses the optimised Sequences of jobs
having a processor, memory, display, input device, and disks 55 output from the optimisation process to create a new table 30
(not shown). The computer hardware stores a database 11, representing a new set of routes. First, it examines all the
and runs the following Software: an appointment Server 12, engineer shifts and Subtracts time for booked jobs, to deter
an appointment booking Scheduler 13, a reactive Scheduler mine the total amount of free time. This time is allocated to
14, a Gantt manager interface 15, and a watchdog 16. the routes in Such a way that each region receives the same
Referring to FIG. 2, the area in which appointments are to proportion of time. As a result, each route has a Sequence of
be booked is divided into a number of regions, designated A, 60 available time slots associated with it.
B, C . . . Each of these regions includes a number of The appointment booking Scheduler 13 uses a simulated
customer Sites, the location of each of which may, for annealing process to attempt to optimise the Scheduling of
example, be indicated by its postal code. jobs within each Sequence. This employs a simulated “tem
Referring to FIG. 3, the database 10 includes a number of perature' which is initially Set a high value, and gradually
tables 30, one for each day in a predetermined window in 65 reduced until it reaches a predetermined final value. At each
which appointments may be offered. For example, this value of the Simulated temperature, the process shown in
window may cover two weeks from the current date. Each FIG. 5 is performed a predetermined number of times N. The
5,848,395
3 4
value of N can be varied according to the degree of opti (a) a database for storing information relating to a plu
misation desired: a high value of N gives better optimisation, rality of appointments that have been booked, and for
but means that the Scheduler takes longer to run. Storing a plurality of routes, each of Said routes com
At each iteration of this process, the Scheduler Stores a prising information Specifying a Sequence of Said
“current best Sequence of jobs, along with a corresponding regions to be visited by a particular operative, the times
“current best” cost value for that sequence. Referring to FIG. the operative is Scheduled to enter and leave each of
5, each iteration of the process consists of the following Said Sequence of regions, and the amount of free time
StepS.
(Box 51) The Sequence of jobs is changed in Some random available for new appointments in each of Said
way, e.g. by changing the order of two adjacent jobs in the 1O
Sequence of regions,
Sequence. (b) an appointment server for offering appointments at
(Box 52) The changed sequence is then evaluated to Specified times, using Said routes Stored in the database
determine a cost function for the route. This cost function to check for availability of operatives in Specified
may include factorS Such as time taken to travel between regions at Specified times, and for inserting new
jobs, penalties for breaking an appointment, overtime work appointments in the database and updating Said routes
ing for operatives, and achieving a Suitable match between 15
the operatives skills and the difficulty of the jobs. to reflect Said new appointments, and
(Box 53) The evaluated cost is then compared with the (c) an appointment Scheduler for periodically accessing
Stored current best value. the database to obtain Said information relating to
(Box 54) If the evaluated cost is better (i.e. less) than the appointments that have been booked, using this infor
current best, the changed Sequence is Saved as the new mation to generate a new plurality of routes, optimizing
current best Sequence, and its cost is Saved as the new Said new plurality of routes in accordance with prede
current best cost.
(Box 55) If on the other hand the evaluated cost is greater termined criteria, and writing Said new plurality of
than or equal to the current best Value, the Scheduler makes routes into Said database to replace the existing plural
a random choice as to whether or not to accept this new 25 ity of routes Stored in Said database.
Sequence, with a probability determined by the current 2. Apparatus according to claim 1 further including means
Simulated temperature: the higher the Simulated for checking whether a predetermined trigger number of
temperature, the more likely the Scheduler is to accept the appointments has been made Since the last time Said appoint
new Sequence. If the Scheduler decides to accept the new ment Scheduler was run and for running Said appointment
Sequence, the changed Sequence is Saved as the new current Scheduler whenever Said predetermined trigger number of
best Sequence, and its cost is Saved as the new current best appointments has been made.
COSt. 3. A method of operating a computer apparatus to Sched
(Box 56) If on the other hand the new sequence is not ule a plurality of operatives traveling to Sites in a geographi
accepted, the existing current best is retained. cal area, Said geographical area being divided into a plurality
Reactive Scheduler of regions, each of which regions includes a plurality of Said
The reactive scheduler 14 is similar to the appointment 35 Sites, Said method comprising the Steps:
booking Scheduler, the main difference being that it is (a) Storing in a database information relating to a plurality
capable of optimising from the latest best position. The of appointments that have been booked, and a plurality
reactive Scheduler takes over from the appointment booking of routes, each of Said routes comprising information
Scheduler when a predetermined horizon is crossed (e.g. on Specifying a Sequence of Said regions to be visited by
the day that the appointments are due), and takes account of 40
a particular operative, the times the operative is Sched
last minute variations in resource availability and appoint uled to enter and leave each of Said Sequence of
ment cancellations, by rescheduling dynamically. regions, and the amount of free time available for new
Gantt manager appointments in each of Said Sequence of regions,
The Gantt manager interface 15 allows the current routes
to be viewed graphically in bar chart form, to provide an 45 (b) offering appointments at specified times, using said
overview of the operation of the schedulers. routes stored in the database to check for availability of
Watchdog operatives in Specified regions at Specified times,
The watchdog 16 continuously monitors the status of all (c) booking new appointments, inserting the new appoint
jobs and can initiate the appointment booking Scheduler ments in the database, and updating Said routes to
automatically if the number of appointments booked on a 50 reflect the new appointments, and
particular route exceeds a predetermined threshold level. (d) periodically accessing the database to obtain said
The watchdog also monitors the status of all jobs within information relating to appointments that have been
the reactive Scheduler horizon, and provides a warning of
jeopardy situations. booked, using this information to generate a new plu
Some possible modifications rality of routes, optimizing Said new plurality of routes
It will be appreciated that many modifications may be 55 in accordance with predetermined criteria, and writing
made to the System described above without departing from Said new plurality of routes into Said database to
the Scope of the present invention. For example, instead of replace the existing plurality of routes Stored in Said
using a separate appointment booking Scheduler and reactive database.
Scheduler, both functions may be performed by the same unit 4. A method according to claim 3 including the further
operating in different modes. 60 Step of checking whether a predetermined trigger number of
We claim: appointments has been made Since the last time Said appoint
1. A computerized appointment booking and Scheduling ment Scheduler was run, and running Said appointment
apparatus for Scheduling a plurality of operatives traveling Scheduler whenever Said predetermined trigger number of
to Sites in a geographical area, Said geographical area being appointments has been made.
divided into a plurality of regions, each of which regions
includes a plurality of Said Sites, Said apparatus comprising: k k k k k