Method and apparatus for resource allocation when schedule changes are incorporated in real time
First Claim
1. A task-allocation apparatus comprising:
- input means for providing information relating to tasks to be allocated and resources available to perform the tasks during a given period;
off-line schedule generation means to allocate the resources to the tasks, thereby generating, for each resource, an initial complete schedule covering substantially all the then known tasks to be carried out during the period under consideration to instruct a user, storage means for storing the initial complete schedule, updating means for receiving, from the input means, updated information relating to the tasks and resources for said given period, the updated information being received by the input means during said given period from a source external to the apparatus, and on-line modifying means for modifying the initial complete schedule of at least a first a resource in response to such updated information to generate at least one modified complete schedule, wherein changes to the initial complete schedule may be made in response to such updated information in real time, independently of the schedule generation means; and
the initial complete schedule is generated by the off-line schedule generation means without reacting to any change in input information provided to the off-line schedule generation means, whereas the modified complete schedule generated by the on-line modifying means reacts to said updated information.
6 Assignments
0 Petitions
Accused Products
Abstract
A plurality of resources, typically service operatives, are allocated to a plurality of tasks by a method in which initial information relating to the tasks to be allocated and the resources available to perform the tasks is provided. An initial series of schedules is first generated allocating resources to the tasks, and then modifying the individual schedule of at least one resource in response to updated information. Changes to individual schedules may be made in response to such updated information independently of the schedule generation. The initial, series of schedules may be generated in a two-stage process in which a rule-based system allocates tasks selected as being difficult to allocate (e.g., because they are linked to other tasks). then a stochastic (non-systematic) search system compiles the rest of the schedule. Periodically, the stochastic system may be interrupted to allow a further rule-based system to analyze the schedules created thus far, and fix the best ones in the schedule, so that the stochastic system can then concentrate on improving the remaining schedules. In order to allow the system to handle rapid changes in the requirements for tasks and the resources, on a scale faster than the time required to generate the schedules, a schedule modification system is arranged to make changes in the short term in between schedule updates delivered by the schedule generation system.
-
Citations
107 Claims
-
1. A task-allocation apparatus comprising:
-
input means for providing information relating to tasks to be allocated and resources available to perform the tasks during a given period;
off-line schedule generation means to allocate the resources to the tasks, thereby generating, for each resource, an initial complete schedule covering substantially all the then known tasks to be carried out during the period under consideration to instruct a user, storage means for storing the initial complete schedule, updating means for receiving, from the input means, updated information relating to the tasks and resources for said given period, the updated information being received by the input means during said given period from a source external to the apparatus, and on-line modifying means for modifying the initial complete schedule of at least a first a resource in response to such updated information to generate at least one modified complete schedule, wherein changes to the initial complete schedule may be made in response to such updated information in real time, independently of the schedule generation means; and
the initial complete schedule is generated by the off-line schedule generation means without reacting to any change in input information provided to the off-line schedule generation means, whereas the modified complete schedule generated by the on-line modifying means reacts to said updated information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 96)
the schedule generation means is arranged to periodically generate an initial complete schedule according to data received by the input means, and the modifying means is arranged to make changes to the initial complete schedule in response to the receipt of data between such periodic generation of the initial complete schedule.
-
-
3. Apparatus as in claim 1, wherein the schedule generation means comprises:
-
a first, deterministic, stage;
means for selecting tasks which are to be scheduled by the first stage;
and a second, optimization, stage for scheduling the remaining tasks, wherein the second stage includes means to treat the tasks scheduled by the first stage as fixed.
-
-
4. Apparatus as in claim 3, wherein the means for selecting tasks for scheduling by the first stage is arranged to select groups of linked tasks involving more than one of the resources, or forming a sequence of tasks.
-
5. Apparatus as in claim 3 wherein the second stage operates according to a stochastic process.
-
6. Apparatus as in claim 5, wherein the stochastic process is a Simulated Annealing process.
-
7. Apparatus as in claim 3 wherein the schedule generation means comprises a third, post-optimization stage, comprising:
-
means for analyzing the schedules created by the second stage, means for identifying schedules requiring further optimization, and means for inputting such schedules into a further iteration of the second stage for further optimization, the further iteration of the second stage having means to treat the schedules not so identified as fixed.
-
-
8. Apparatus as in claim 1 wherein the schedule modifying means comprises:
-
a plurality of selection means, each for assessing in turn the plurality of tasks waiting to be performed to determine if a task of a given priority suitable for performance by the first resource is available, and allocating such a task to the first resource, the selection means being arranged to identify tasks of successively descending priority, such that tasks of high priority are allocated in preference to lower priority tasks in the initial optimized schedule for the first resource.
-
-
9. Apparatus as in claim 8, wherein at least one of the selection means comprises:
-
first assessment means for determining if the initial optimized schedule of the first resource includes a task of the given priority, and selecting said task if present, and second assessment means, operable if the initial optimized schedule of the first resource does not contain such a task, for determining if a task exists which has not been scheduled, and selecting said task if present.
-
-
96. An apparatus as in claim 1, wherein the initial complete schedule is generated with a comparatively more rigorous computer process than a computer process used to generate the modified complete schedule.
-
10. A task-allocation apparatus comprising:
-
input means for providing information relating to tasks to be allocated and resources available to perform the tasks;
off-line schedule generation means to allocate the resources to the tasks, thereby generating, for each resource, an initial schedule to instruct a user;
storage means for storing the initial schedules;
updating means for receiving, from the input means, updated information relating to the tasks and resources, the updated information being received by the input means from a source external to the apparatus during a period of time in which tasks allocated in the initial schedule are performed;
on-line modifying means for modifying the initial schedule of at least a first resource in response to such updated information to generate at least one modified schedule;
whereby changes to the initial schedules may be made in response to such updated information in real time, independently of the schedule generation means;
wherein the schedule modifying means comprises means to identify resources having characteristics related to those of the first resource, and arranged to modify the schedules of only those resources having such characteristics in response to the updated information; and
the initial schedule is generated by the off-line schedule generation means without reacting to any change in input information provided to the off-line schedule generation means, whereas the modified schedule generated by the on-line modifying means reacts to said updated information. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 97)
a first, deterministic, stage;
means for selecting tasks which are to be scheduled by the first stage;
and a second, optimization, stage for scheduling the remaining tasks;
wherein the second stage includes means to treat the tasks scheduled by the first stage as fixed.
-
-
29. Apparatus as in claim 28 wherein the means for selecting tasks for scheduling by the first stage is arranged to select groups of linked tasks involving more than one of the resources, or forming a sequence of tasks.
-
30. Apparatus as in claim 28 wherein the second stage operates according to a stochastic process.
-
31. Apparatus as in claim 30 wherein the stochastic process is a Simulated Annealing process.
-
32. Apparatus as in claim 28 wherein the schedule generation means comprises a third, post-optimization stage, comprising means for analyzing the schedules created by the second stage, means for identifying schedules requiring further optimization, and means for inputting such schedules into a further iteration of the second stage for further optimization, the further iteration of the second stage having means to treat the schedules not so identified as fixed.
-
33. Apparatus as in claim 10 wherein the schedule modifying means comprises a plurality of selection means, each for assessing in turn the plurality of tasks waiting to be performed to determine if a task of a given priority suitable for performance by the first resource is available, and allocating such a task to the first resource, the selection means being arranged to identify tasks of successively descending priority, such that tasks of high priority are allocated in preference to lower priority tasks in the initial optimized schedule for the first resource.
-
34. Apparatus as in claim 33 wherein at least one of the selection means comprises first assessment means for determining if the initial optimized schedule of the first resource includes a task of the given priority, and selecting said task if present, and second assessment means, operable if the initial optimized schedule of the first resource does not contain such a task, for determining if a task exists which has not been scheduled, and selecting said task if present.
-
35. Apparatus as in claim 10 further comprising means for adding, after generation of the initial optimized schedule, further tasks and/or resources to the plurality of tasks and/or resources to be scheduled.
-
97. An apparatus as in claim 10, wherein the initial schedule is generated with a comparatively more rigorous computer process than a computer process used to generate the modified schedule.
-
11. A task-allocation apparatus comprising:
-
input means for providing information relating to tasks to be allocated and resources available to perform the tasks during a given period;
off-line schedule generation means to allocate the resources to the tasks, thereby generating, for each resource, an initial complete schedule covering substantially all the then known tasks to be carried out during the period under consideration to instruct a user, storage means for storing the initial complete schedule, updating means for receiving, from the input means, updated information relating to the tasks and resources for said given period, the updated information being received by the input means during said given period from a source external to the apparatus, on-line modifying means for modifying the initial complete schedule of at least a first resource in response to such updated information to generate at least one modified complete schedule, whereby changes to the initial complete schedule may be made in response to such updated information in real time, independently of the schedule generation means;
means for adding in real time, after generation of the initial schedule and during said given period, further tasks and/or resources to the plurality of tasks and/or resources to be scheduled; and
wherein the initial complete schedule is generated by the off-line schedule generation means without reacting to any change in input information provided to the off-line schedule generation means, whereas the modified complete schedule generated by the on-line modifying means reacts to said updated information. - View Dependent Claims (66, 67, 68, 69, 70, 71, 72, 73, 74, 98)
the schedule generation means is arranged to periodically generate an initial complete schedule according to data received by the input means, and the modifying means is arranged to make changes to the initial complete schedule in response to the receipt of data between such periodic generation of the initial complete schedule.
-
-
67. Apparatus as in claim 11 wherein the schedule generation means comprises:
-
a first, deterministic, stage;
means for selecting tasks which are to be scheduled by the first stage;
and a second, optimization, stage for scheduling the remaining tasks, wherein the second stage includes means to treat the tasks scheduled by the first stage as fixed.
-
-
68. Apparatus as in claim 67 wherein the means for selecting tasks for scheduling by the first stage is arranged to select groups of linked tasks involving more than one of the resources, or forming a sequence of tasks.
-
69. Apparatus as in claim 67 wherein the second stage operates according to a stochastic process.
-
70. Apparatus as in claim 69 wherein the stochastic process is a Simulated Annealing process.
-
71. Apparatus as in claim 67 wherein the schedule generation means comprises a third, post-optimization stage, comprising:
-
means for analyzing the schedules created by the second stage, means for identifying schedules requiring further optimization, and means for inputting such schedules into a further iteration of the second stage for further optimization, the further iteration of the second stage having means to treat the schedules not so identified as fixed.
-
-
72. Apparatus as in claim 11 wherein the schedule modifying means comprises:
-
a plurality of selection means, each for assessing in turn the plurality of tasks waiting to be performed to determine if a task of a given priority suitable for performance by the first resource is available, and allocating such a task to the first resource, the selection means being arranged to identify tasks of successively descending priority, such that tasks of high priority are allocated in preference to lower priority tasks in the initial optimized schedule for the first resource.
-
-
73. Apparatus as in claim 72 wherein at least one of the selection means comprises:
-
first assessment means for determining if the initial optimized schedule of the first resource includes a task of the given priority, and selecting said task if present, and second assessment means, operable if the initial optimized schedule of the first resource does not contain such a task, for determining if a task exists which has not been schedule, and selecting said task if present.
-
-
74. Apparatus as in claim 11 wherein the schedule modifying means comprises means to identify resources having characteristics related to those of the first resource, and arranged to modify the schedules of only those resources having such characteristics in response to the updated information.
-
98. An apparatus as in claim 11, wherein the initial complete schedule is generated with a comparatively more rigorous computer process than a computer process used to generate the modified complete schedule.
-
12. A method of allocating a plurality of resources to a plurality of tasks, the method comprising the use of a computer to perform the following functions:
-
providing initial information relating to the tasks to be allocated and the resources available to perform the tasks during a given period, generating, off-line, for each resource an initial complete schedule to allocate the resources to the tasks covering substantially all the then known tasks to be carried out during the period under consideration to instruct a user, storing the initial complete schedule, providing updated information relating to the tasks and resources received by the computer during said given period from a source external to the computer, and modifying, on-line, the initial complete schedule of at least a first resource in response to such updated information to generate a modified complete schedule, whereby changes to individual schedules may be made in response to such updated information in real time and independently of the process of generating the initial complete schedule; and
the initial complete schedule is generated without reacting to any change in the initial information used to generate the initial complete schedule, whereas the modified complete schedule is generated by reacting to said updated information. - View Dependent Claims (13, 16, 17, 18, 19, 20, 21, 22, 23, 99)
a first deterministic stage for scheduling selected tasks, and a second optimization stage for scheduling the remaining tasks, wherein the second stage treats the tasks scheduled by the first stage as fixed.
-
-
18. Method as in claim 17 in which groups of linked tasks involving more than one of the resources, or forming a sequence of tasks are selected for scheduling by the first, deterministic, stage.
-
19. Method as in claim 17 wherein the second stage operates according to a stochastic process.
-
20. Method as in claim 19, wherein the stochastic process is a Simulated Annealing process.
-
21. Method as in claim 17 wherein the schedule generation function comprises a third, post-optimization stage, in which the schedules created by the second stage are analyzed to identify schedules requiring further optimization, and such schedules are input into a further iteration of the second stage for further optimization, the further iteration of the second stage treating as fixed the schedules not so identified.
-
22. Method as in claim 12 wherein the schedule modifying process comprises a plurality of selection steps, in each of which:
-
the plurality of tasks waiting to be performed is assessed to determine if a task of a given priority suitable for performance by the first resource is available, and such a task is allocated to the first resource if identified, the selection steps each being arranged to identify tasks of successively descending priority, such that a task of high priority is allocated in preference to one of lower priority, whether or not the high priority task is in the initial optimized schedule for the first resource.
-
-
23. Method as in claim 22, wherein at least one of the selection steps:
-
first determines whether the initial optimized schedule of the resource includes a task of the given priority, and selects said task if present or, if the initial optimized schedule of the resource does not contain such a task, determines if a task exists which has not been scheduled, and selects such a task if present.
-
-
99. The method as in claim 12 wherein the initial complete schedule is generated with a comparatively more rigorous computer process than a computer process used to generate the modified complete schedule.
-
14. A method of allocating a plurality of resources to a plurality of tasks, the method comprising the use of a computer to perform the following functions:
-
providing initial information relating to the tasks to be allocated and the resources available to perform the tasks during a given period;
generating, off-line, for each resource, an initial schedule to allocate the resources to the tasks to instruct a user;
storing the initial schedules;
providing updated information relating to the tasks and resources received by the computer during said given period from a source external to the computer;
modifying, on-line, the initial schedule of at least a first resource in response to such updated information to generate a modified schedule;
whereby changes to individual schedules may be made in response to such updated information in real time and independently of the process of generating the initial schedules;
wherein initial schedules are generated periodically, and the initial schedules so generated are modified in response to the receipt of data between such periodic generation of the initial schedules;
during the periodic generation of the initial schedules the modification process is suspended, the updated information being retained until the new initial schedules are generated, and then used to modify the initial schedules when their generation is complete; and
the initial schedule is generated without reacting to any change in the initial information used to generate the initial schedule, whereas the modified schedule is generated by reacting to said updated information. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 100)
-
-
15. A method of allocating a plurality of resources to a plurality of tasks, the method comprising the use of a computer to perform the following functions:
-
providing initial information relating to the tasks to be allocated and the resources available to perform the tasks during a given period;
generating, off-line, for each resource, an initial schedule to allocate the resources to the tasks to instruct a user;
storing the initial schedules;
providing updated information relating to the tasks and resources received by the computer during said given period from a source external to the computer;
modifying, on-line, the initial schedule of at least a first resource in response to such updated information to generate a modified schedule;
whereby changes to individual schedules may be made in response to such updated information in real time and independently of the process of generating the initial schedules;
wherein initial schedules are generated periodically, and the initial schedules so generated are modified in response to the receipt of data between such periodic generation of the initial schedules;
wherein during the generation of the initial schedules the modification process continues, the schedules so modified being input as modifications to the initial schedules when their generation is complete; and
the initial schedule is generated without reacting to any change in the initial information used to generate the initial schedule, whereas the modified schedule is generated by reacting to said updated information. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 101)
-
-
24. A method of allocating a plurality of resources to a plurality of tasks, the method comprising the use of a computer to perform the following functions:
-
providing initial information relating to the tasks to be allocated and the resources available to perform the tasks during a given period;
generating, off-line, for each resource, an initial schedule to allocate the resources to the tasks to instruct a user;
storing the initial schedules;
providing updated information relating to the tasks and resources received by the computer during said given period from a source external to the computer;
modifying, on-line, the initial schedule of at least a first resource in response to such updated information to generate a modified schedule;
whereby changes to individual schedules may be made in response to such updated information in real time and independently of the process of generating the initial schedules;
wherein the schedule modification function identifies resources having characteristics related to those of the first resource, and modifies the schedules of only those resources having such characteristics; and
the initial schedule is generated without reacting to any change in the initial information used to generate the initial schedule, whereas the modified schedule is generated by reacting to said updated information. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 102)
-
-
25. A method of allocating a plurality of resources to a plurality of tasks, the method comprising the use of a computer to perform the following functions:
-
providing initial information relating to the tasks to be allocated and the resources available to perform the tasks during a given period, generating, off-line, for each resource an initial complete schedule to allocate the resources to the tasks covering substantially all the then known tasks to be carried out during the period under consideration to instruct a user, storing the initial complete schedule, providing updated information relating to the tasks and resources received by the computer during said given period from a source external to the computer, modifying, on-line, the initial complete schedule of at least a first resource in response to such updated information to generate a modified complete schedule, whereby changes to individual schedules may be made in response to such updated information in real time and independently of the process of generating the initial complete schedule;
wherein further tasks may be added to the plurality of tasks to be performed after generation of the initial optimized schedule; and
the initial complete schedule is generated without reacting to any change in the initial information used to generate the initial schedule, whereas the modified complete schedule is generated by reacting to said updated information. - View Dependent Claims (75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 103)
a first deterministic stage for scheduling selected tasks, and a second optimization stage for scheduling the remaining tasks, wherein the second stage treats the tasks scheduled by the first stage as fixed.
-
-
80. Method as in claim 79 in which groups of linked tasks involving more than one of the resources, or forming a sequence of tasks are selected for scheduling by the first, deterministic, stage.
-
81. Method as in claim 79 wherein the second stage operates according to a stochastic process.
-
82. Method as in claim 81 wherein the stochastic process is a Simulated Annealing process.
-
83. Method as in claim 79 wherein the schedule generation function comprises a third, post-optimization stage, in which the schedules created by the second stage are analyzed to identify schedules requiring further optimization, and such schedules are input into a further iteration of the second stage for further optimization, the further iteration of the second stage treating as fixed the schedules not so identified.
-
84. Method as in claim 25 wherein the schedule modifying process comprises a plurality of selection steps, in each of which:
-
the plurality of tasks waiting to be performed is assessed to determine if a task of a given priority suitable for performance by the first resource is available, and such a task is allocated to the first resource if identified, the selection steps each being arranged to identify tasks of successively descending priority, such that a task of high priority is allocated in preference to one of lower priority, whether or not the high priority task is in the initial optimized schedule for the first resource.
-
-
85. Method as in claim 84 wherein at least one of the selection steps:
-
first determines whether the initial optimized schedule of the resource includes a task of the given priority, and selects said task if present or, if the initial optimized schedule of the resource does not contain such a task, determines if a task exists which has not been schedule, and selects such a task if present.
-
-
103. The method as in claim 25 wherein the initial complete schedule is generated with a comparatively more rigorous computer process than a computer process used to generate the modified complete schedule.
-
26. A computer apparatus for allocating a plurality of tasks to a plurality of resources during a given period, said computer apparatus comprising:
-
a central processing unit, a memory, an input device and an output device, said memory containing a program for controlling the computer and which is arranged to generate, off-line, and store an initial complete schedule covering substantially all the then known tasks to be carried out during the period under consideration to instruct a user, based on predicted availability of resources, task priorities, and suitability of tasks to resources, the initial complete schedule being generated without reacting to any change in input information used to generate the initial complete schedule and performing the following steps;
when a resource becomes available, assessing, on-line, the plurality of tasks waiting to be performed in real time, to determine if a high priority task suitable for performance by the resource is available, and, if so, allocating it to the resource;
if no such task is available for the resource to perform, assessing the next task on the resource'"'"'s initial complete schedule to determine if it can be performed, and allocating it to the resource if it can be performed;
if said next task is not available for the resource to perform, allocating to the resource a lower priority task from the plurality of tasks. - View Dependent Claims (104)
-
-
86. A method of using a computer system to assign resources to perform tasks, the method comprising:
-
receiving first data relating to tasks and resources to perform the tasks;
generating, off-line, a first schedule based on the first data, the first schedule initially assigning the resources to perform the tasks during a given time period;
outputting the first schedule to a user before said given time period begins;
receiving second data relating at least to a task from a source external to the computer system and after the first schedule has been generated;
generating, on-line, a second schedule based on at least the second data in real time, the second schedule assigning the resources to perform the tasks during the given time period in a manner at least partially different than the first schedule;
outputting the second schedule to the user after said given period has begun; and
wherein the first schedule is generated without reacting to any change to the first data, whereas the second schedule is generated by reacting to changes to the second data in real time. - View Dependent Claims (87, 88, 89, 90, 91, 105)
-
-
92. A method of using a computer system to instruct a user, the method comprising:
-
generating, off-line, a first schedule assigning a user to perform a plurality of tasks during a given period;
outputting the first schedule to instruct the user to perform the plurality of tasks;
receiving data in real time relating to another task, the another task not previously included in the plurality of tasks, from a source external to the computer system after the first schedule has been generated;
generating, on-line and in real time, a second schedule based on at least the data relating to the another task, the second schedule assigning the tasks to be performed by the user in a manner at least partially different than the first schedule;
outputting the second schedule to the user after said given period has begun; and
wherein the first schedule is generated without reacting to changes in data used to generate the first schedule whereas the second schedule is generated by reacting to changes in the data received in real time. - View Dependent Claims (93, 94, 106)
-
-
95. A method of using a computer system to assign resources to perform tasks, the method comprising:
-
receiving first data relating to tasks and resources to perform the tasks;
generating, off-line, a first schedule based on the first data, the first schedule initially assigning the resources to perform the tasks during a given time period;
outputting the first schedule to a user before said given time period has begun;
receiving second data relating at least to a task from a source external to the computer system and after said given time period has begun, the second data reflecting real time circumstances;
generating, on-line, a second schedule based on at least the second data in real time, the second schedule assigning the resources to perform the tasks represented by the first and second data during the given time period in a manner at least partially, different than the first schedule; and
outputting the second schedule to the user after said given period has begun; and
wherein the first schedule is generated without reacting to any change to the first data, whereas the second schedule is generated by reacting to changes to the second data in real time. - View Dependent Claims (107)
-
Specification