Patent US7516455B2 successfully refreshed from Google Patents.
US7516455B2
Expired / Lapsed
US
⏱️ 0.0 years remaining
Probabilistic scheduling
Assignee: Microsoft Technology Licensing LLC
•
Filing: 2003-09-05
•
Granted: 2009-04-07
•
Expires: 2023-09-05
Abstract
Abstract A method includes generating a cost associated with each of a plurality of tasks to be scheduled, and scheduling the minimum cost task if the minimum cost task successfully executes. Generating may include determining a pair-wise probability representing a probability that two tasks in the plurality of tasks conflict with each other. A system includes a cost generator generating costs associated with a plurality of tasks, the costs based on probabilities that each of the tasks influence the other tasks, and a scheduling engine operable to schedule the task with the least cost.
Inventors
- 👤 Caroline Elizabeth Matheson
- 👤 Marc Shapiro
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-25 09:25
CPC Classifications
G; G06; G06Q; G06Q10/00; G06Q10/06
Claims Analysis
Total Claims: 33
Claim 1
Independent Claim
177 words
A computer-implemented method comprising: receiving a plurality of task containers, each said task container representing a task to be scheduled at a computer, where each said task container includes a grouping of a plurality of resources containers, wherein each said resource container includes resource information that specifies one or more resources required for the represented task and selection criteria to select from the one or more resources, and wherein each said task container further includes an interface function that, when called, determines a pair-wise probability that the task represented by another task container will influence the task represented by the called task container based on a current schedule state of scheduled tasks, selection criteria specified in resource containers of the another task container, and selection criteria specified in resource containers of the called task container; generating a total cost for each task based on pair-wise costs for each task calculated from determined pair-wise probabilities that the task will influence each other task in the plurality of task containers; and scheduling the task with the least total cost.
Claim 2
Dependent Claim
177 words
A computer-implemented method comprising: receiving a plurality of task containers, each said task container representing a task to be scheduled at a computer, where each said task container includes a grouping of a plurality of resources containers, wherein each said resource container includes resource information that specifies one or more resources required for the represented task and selection criteria to select from the one or more resources, and wherein each said task container further includes an interface function that, when called, determines a pair-wise probability that the task represented by another task container will influence the task represented by the called task container based on a current schedule state of scheduled tasks, selection criteria specified in resource containers of the another task container, and selection criteria specified in resource containers of the called task container; generating a total cost for each task based on pair-wise costs for each task calculated from determined pair-wise probabilities that the task will influence each other task in the plurality of task containers; and scheduling the task with the least total cost.
Claim 3
Dependent Claim
79 words
A method as recited in claim 1 wherein the each selection criteria specifies a relationship selected from a group consisting of: an “AND” relationship indicating that all of a plurality of the resources are required to complete the represented task; an “XOR” relationship indicating that only one of the one or more resources is required to complete the represented task; and an “OR” relationship indicating that one or more of the resources are required to complete the represented task.
Claim 4
Dependent Claim
36 words
A method as recited in claim 1 further comprising: receiving a timeslot definition associated with each of the plurality of tasks or resources, the timeslot definition defining a required timeslot for the associated task or resource.
Claim 5
Dependent Claim
24 words
A method as recited in claim 3 wherein the timeslot definition comprises an early start indicator, a late finish indicator, and a duration indicator.
Claim 6
Dependent Claim
33 words
A method as recited in claim 1 further comprising: receiving a constraint describing a time constraint between two tasks in the plurality of tasks; and scheduling the two tasks based on the constraint.
Claim 7
Dependent Claim
77 words
A method as recited in claim 1 further comprising: determining the pair-wise probability for a pair of tasks that a first task in the pair of tasks influences a second task in the pair of tasks based on the resource information; and adjusting the pair-wise cost of the pair of tasks based on a function of the pair-wise probability that the first task in the pair of tasks influences the second task in the pair of tasks.
Claim 8
Dependent Claim
75 words
A method as recited in claim 1 further comprising: determining the pair-wise probability for a pair of tasks that a first task in the pair of tasks supports a second task in the pair of tasks based on the resource information; and if the first task supports the second task, reducing the pair-wise cost of the pair of tasks based on a function of the pair-wise probability that the first task supports the second task.
Claim 9
Dependent Claim
78 words
A method as recited in claim 1 further comprising: determining the pair-wise probability for a pair of tasks that a first task in the pair of tasks competes with a second task in the pair of tasks based on the resource information; and if the first task competes with the second task, increasing the pair-wise cost of the pair of tasks based on a function of the pair-wise probability that the first task competes with the second task.
Claim 10
Dependent Claim
48 words
A method as recited in claim 1 wherein the generating comprises: selecting a first task from among the plurality of tasks; querying the task container of the first task for the pair-wise probabilities; and summing the pair-wise probabilities to form the total cost associated with the first task.
Claim 11
Dependent Claim
22 words
A method as recited in claim 1 wherein the resource information comprises preference information describing preferences of the one or more resources.
Claim 12
Dependent Claim
17 words
A method as recited in claim 1 wherein the generating comprises applying preference values to the tasks.
Claim 13
Dependent Claim
21 words
A method as recited in claim 1 wherein the generating comprises tabulating the pair-wise cost associated with each pair of tasks.
Claim 14
Dependent Claim
70 words
A method as recited in claim 1 further comprising: removing the scheduled task from a main task log; adjusting pair-wise probabilities associated with resources remaining in the main task log based on the scheduled task; and re-generating the total cost for each task based on pair-wise costs for each task calculated from adjusted pair-wise probabilities that the task will influence each other task in the plurality of tasks task containers.
Claim 15
Dependent Claim
154 words
A computer-readable storage medium storing processor-executable instructions for performing a method comprising: receiving a plurality of first resource identifiers identifying first resources associated with a first candidate task and selection criteria defining how the first resources are to be selected from the plurality of first resources; receiving a second resource identifier identifying a second resource associated with a second candidate task; receiving a current schedule state of scheduled tasks and scheduled resources; querying a task container that includes an interface function that, when called, determines a pair-wise probability that the first candidate task will influence the second candidate task based on the current schedule state of scheduled tasks, the first resources, the second resource, and the selection criteria; calculating a pair-wise cost of scheduling the first candidate task based on the determined pair-wise probability; and scheduling one or more of the first candidate task and the second candidate task based on the pair-wise cost.
Claim 16
Dependent Claim
154 words
A computer-readable storage medium storing processor-executable instructions for performing a method comprising: receiving a plurality of first resource identifiers identifying first resources associated with a first candidate task and selection criteria defining how the first resources are to be selected from the plurality of first resources; receiving a second resource identifier identifying a second resource associated with a second candidate task; receiving a current schedule state of scheduled tasks and scheduled resources; querying a task container that includes an interface function that, when called, determines a pair-wise probability that the first candidate task will influence the second candidate task based on the current schedule state of scheduled tasks, the first resources, the second resource, and the selection criteria; calculating a pair-wise cost of scheduling the first candidate task based on the determined pair-wise probability; and scheduling one or more of the first candidate task and the second candidate task based on the pair-wise cost.
Claim 17
Dependent Claim
36 words
A computer-readable storage medium as recited in claim 14 wherein the scheduling comprises: identifying one or more of the first resources that are not the same as the second resource and that satisfy the selection criteria.
Claim 18
Dependent Claim
59 words
A computer-readable storage medium as recited in claim 14 further comprising: determining whether the first candidate task and the second candidate task are viable based on the current schedule state; and eliminating one or more of the first or second candidate task from consideration if the one or more of the first or second candidate task is not viable.
Claim 19
Independent Claim
174 words
A system for scheduling a plurality of tasks, the system comprising: a processor; a task log including a plurality of task objects, each said task object representing a task to be scheduled, each said task object having resource objects, each said resource object representing a resource that is selectable for the associated task according to resource selection logic, and wherein each said task object further includes an interface function that, when called, determines a pair-wise probability that another task represented by another task object will influence the task represented by said called task object, said determination based on a current schedule state of scheduled tasks, resource selection logic associated with said another task object, and resource selection logic associated with said called task object; a cost generator operable to generate a total cost for each of the tasks based on pair-wise costs for each task calculated from determined pair-wise probabilities that each said task will influence each other said task; and a scheduling engine operable to schedule the task with the least total cost.
Claim 20
Independent Claim
174 words
A system for scheduling a plurality of tasks, the system comprising: a processor; a task log including a plurality of task objects, each said task object representing a task to be scheduled, each said task object having resource objects, each said resource object representing a resource that is selectable for the associated task according to resource selection logic, and wherein each said task object further includes an interface function that, when called, determines a pair-wise probability that another task represented by another task object will influence the task represented by said called task object, said determination based on a current schedule state of scheduled tasks, resource selection logic associated with said another task object, and resource selection logic associated with said called task object; a cost generator operable to generate a total cost for each of the tasks based on pair-wise costs for each task calculated from determined pair-wise probabilities that each said task will influence each other said task; and a scheduling engine operable to schedule the task with the least total cost.
Claim 21
Dependent Claim
64 words
A system as recited in claim 17 wherein the resource selection logic is selected from a group consisting of: an “AND” function indicating that all of the plurality of resources are required; an “XOR” function indicating that one and only one of the plurality of resources is required; and an “OR” function indicating that at least one of the plurality of resources is required.
Claim 22
Dependent Claim
25 words
A system as recited in claim 17 wherein the cost generator is further operable to calculate the pair-wise costs associated with each of the tasks.
Claim 23
Dependent Claim
25 words
A system as recited in claim 17 wherein the cost generator is further operable to tabulate the pair-wise costs associated with each of the tasks.
Claim 24
Dependent Claim
27 words
A system as recited in claim 17 wherein the task object further comprises time constraint information indicating at least one time constraint between two of the tasks.
Claim 25
Dependent Claim
24 words
A system as recited in claim 17 wherein the task log further comprises a hierarchical arrangement of the task objects and the resource objects.
Claim 26
Dependent Claim
27 words
A system as recited in claim 17 wherein each task object is operable to return a pair-wise probability that the task object competes with another task object.
Claim 27
Dependent Claim
200 words
A computer implemented method comprising: determining pair-wise probabilities for a plurality of tasks to be scheduled at a computer that each task in a plurality of tasks will influence each other task in the plurality of tasks; calculating pair-wise costs associated with the plurality of tasks from determined pair-wise probabilities for the plurality of tasks; generating a total cost associated with each of a the plurality of tasks to be scheduled based on the pair-wise costs for each task, wherein each task requires one or more resources, and wherein at least one of the tasks requires a plurality of resources, and wherein generating the total cost of the at least one task is based on pair-wise costs for the at least one task calculated from determined pair-wise probabilities that other tasks require one or more of the plurality of resources required by the at least one task; executing a minimum total cost task including allocating resources to the minimum total cost task; scheduling the minimum total cost task if the minimum total cost task successfully executes; and reversing side-effects from the executing including deallocating resources from the minimum total cost task if the minimum total cost task fails to execute.
Claim 28
Dependent Claim
200 words
A computer implemented method comprising: determining pair-wise probabilities for a plurality of tasks to be scheduled at a computer that each task in a plurality of tasks will influence each other task in the plurality of tasks; calculating pair-wise costs associated with the plurality of tasks from determined pair-wise probabilities for the plurality of tasks; generating a total cost associated with each of a the plurality of tasks to be scheduled based on the pair-wise costs for each task, wherein each task requires one or more resources, and wherein at least one of the tasks requires a plurality of resources, and wherein generating the total cost of the at least one task is based on pair-wise costs for the at least one task calculated from determined pair-wise probabilities that other tasks require one or more of the plurality of resources required by the at least one task; executing a minimum total cost task including allocating resources to the minimum total cost task; scheduling the minimum total cost task if the minimum total cost task successfully executes; and reversing side-effects from the executing including deallocating resources from the minimum total cost task if the minimum total cost task fails to execute.
Claim 29
Dependent Claim
35 words
A method as recited in claim 24 further comprising determining a pair-wise probability representing a probability that a first task in the plurality of tasks conflicts with a second task in the plurality of tasks.
Claim 30
Dependent Claim
22 words
A method as recited in claim 25 further comprising adjusting the pair-wise probability in response to scheduling the minimum total cost task.
Claim 31
Dependent Claim
23 words
A method as recited in claim 24 further comprising determining the total costs based upon preference weights assigned to the plurality of tasks.
Claim 32
Dependent Claim
19 words
A method as recited in claim 24 further comprising determining viability of each task in the plurality of tasks.
Claim 33
Dependent Claim
29 words
A method as recited in claim 24 , wherein reversing side-effects comprises deallocating any resources allocated during the executing and de-scheduling any tasks that were scheduled during the executing.
References Cited (Backward Citations)
US5963911A
Cited
EP0704796A2
Cited
US5671361A
Cited
US6578005B1
Cited
US6263359B1
Cited
US6430591B1
Cited
US6314555B1
Cited
US7010536B1
Cited
WO2001084301A2
Cited
US20030037181A1
Cited
US6604160B1
Cited
US7165256B2
Cited
US7203942B2
Cited
US7093250B1
Cited
US6973359B2
Cited
US7171667B2
Cited
US20070094665A1
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2012-04-06 | 2012-10-06 | 2013-04-07 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2016-04-06 | 2016-10-06 | 2017-04-07 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2020-04-06 | 2020-10-06 | 2021-04-07 | $7700.00 | Window Closed / Lapsed |