Automated finite capacity scheduler
First Claim
1. A computer implemented method of scheduling orders for multiple different products or services, the method comprising:
- creating a list of activities required to accomplish the orders;
modifying selected activities into sets of smaller activities; and
scheduling the activities and smaller activities based on discrete and continuous constraints, wherein the continuous constraints are related to other variables by linear mathematical relationships, and wherein separate engines process the discrete and continuous constraints and propagate additional constraints to each other to produce a schedule for the activities.
1 Assignment
0 Petitions
Accused Products
Abstract
A scheduler for a finite capacity process provides a schedule based on an integrated assessment of both discrete and continuous constraints. Given a list of products to be provided, the scheduler generates a set of activities required to produce the products and identifies resources required and the discrete and continuous constraints related to such resources. Activities are resized, and timelines are established for the activities as a function of deadlines for the product delivery for which the activities are related. Resource balancing heuristics are used to redistribute resource utilization to prevent bottlenecks. Data structures are used to keep track of constraints. Both discrete and continuous constraints are defined. Separate solver engines for the discrete and continuous constraint problems modify the constraints. The data structures are used to share and propagate constraints between the two engines. Infeasibilities of meeting product delivery times are detected during the scheduling and backtracking and rescheduling of resources based on under and over utilization and availability of equivalent resources is performed.
-
Citations
20 Claims
-
1. A computer implemented method of scheduling orders for multiple different products or services, the method comprising:
-
creating a list of activities required to accomplish the orders; modifying selected activities into sets of smaller activities; and scheduling the activities and smaller activities based on discrete and continuous constraints, wherein the continuous constraints are related to other variables by linear mathematical relationships, and wherein separate engines process the discrete and continuous constraints and propagate additional constraints to each other to produce a schedule for the activities. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer implemented method of scheduling tasks comprising:
-
creating a list of activities required to accomplish the tasks; modifying selected activities into sets of smaller activities; scheduling the activities and smaller activities based on discrete and continuous constraints; identifying infeasibilities during the scheduling of activities; identifying a culprit activity when an infeasibility is identified; and chronological backtracking to the culprit activity which resulted in an infeasibility.
-
-
13. A computer implemented method of scheduling activities comprising:
-
defining discrete and continuous constraints related to the activities; representing selected scheduling decisions as discrete and continuous constraints; and scheduling activities in accordance with integrated implications of the discrete and continuous constraints, wherein separate engines process the discrete and continuous constraints and propagate additional constraints to each other to produce a schedule for the activities. - View Dependent Claims (14, 15, 16)
-
-
17. A computer implemented method of scheduling activities comprising:
-
defining discrete and continuous constraints related to the activities; representing selected scheduling decisions as discrete and continuous constraints; scheduling activities in accordance with integrated implications of the discrete and continuous constraints; scheduling activities in accordance with previous scheduling decision constraints; identifying infeasibilities during the scheduling of activities; scheduling activities in accordance with identified infeasibilities; identifying a culprit activity which resulted in an infeasibility; and chronological backtracking to the culprit and rescheduling the culprit activity.
-
-
18. A machine readable medium having computer executable instructions stored thereon for causing a computer to perform a method of scheduling tasks comprising:
-
creating a list of activities required to accomplish the tasks; modifying selected activities into sets of smaller activities; and scheduling the activities and smaller activities based on discrete and continuous constraints, wherein the continuous constraints are related to other variables by linear mathematical relationships, and wherein separate engines process the discrete and continuous constraints and propagate additional constraints to each other to produce a schedule for the activities.
-
-
19. A machine readable medium having computer executable instructions stored thereon for causing a computer to perform a method of scheduling activities comprising:
-
defining discrete and continuous constraints related to the activities, wherein the continuous constraints are related to other variables by linear mathematical relationships; representing selected scheduling decisions as discrete and continuous constraints; and scheduling activities in accordance with an integrated implications of the discrete and continuous constraints, and wherein separate engines process the discrete and continuous constraints and propagate additional constraints to each other to produce a schedule for the activities.
-
-
20. A memory for access by an application program for scheduling tasks being executed on a computing system comprising:
-
a continuous constraint solver engine; a discrete constraint solver engine; and means for integrating the engines to schedule activities to accomplish the tasks taking into account both continuous constraints and discrete constraints, wherein the continuous constraints are related to other variables by linear mathematical relationships, and wherein separate engines process the discrete and continuous constraints and propagate additional constraints to each other to produce a schedule for the activities.
-
Specification