Finite Capacity Schedules (FCS) is an activity for determining the best sequence of tasks on a set of resources. The result is an assignment of limited resources to tasks to generate a schedule for a set of jobs or activities to meet some specified objective, such as meeting milestones or maximizing throughput.
FCS applications include factory scheduling (discrete part, process flow, and batch operations), energy scheduling, servicing of complex equipment, scheduling of unique resources, military logistics, etc.
The results of a scheduling activity are often displayed in the form of either a resource centric or job centric Gantt chart. A resource Gantt shows task as bars along a timeline for each critical resource in the model, where each bar denotes a job that is processed on that resource. A job Gantt shows task as bars along a timeline for each job in the model, where each bar denotes a resource that is used for performing a task on that job. FIG. 1 is an example of a schedule displayed in a resource Gantt chart form. Each color (or shaded contrast) bar denotes a specific job or activity, and each bar shows the spacing of tasks related to that job/activity over time for each of the resources. For example, Job1 can be depicted in red (not shown), and is processed first on the Drill, then on the Weld, and then on the Paint. The resources might be machines in a factory, procedure rooms in a hospital, workers performing assembly, etc. FIG. 2 is an example of a schedule displayed in a job Gantt chart form. Each color bar (or shaded contrast) denotes a specific resource that is used over time for each of the jobs. Here the resources are assigned a color (or different shade); e.g. the Drill can be green (not shown) and the Weld can be blue (not shown or a different shade than the Drill). The job Gantt chart also shows the job completion time and due date for each job in the form of a target symbol. The dashed line indicates either a positive slack (can be green—not shown) (such as for Job-1, Job-2, Job-3, and Job-4) or negative slack (can be red—not shown) (such as for Job-5) in terms of the completion date relative to due date. Jobs with a positive slack are scheduled on time, and those with a negative slack are late.
There are several methods used for assigning tasks to the resources. One method is to formulate the assignment of tasks as an optimization problem, and then use optimization heuristics to find a good (but not necessarily optimal) solution to the problem. Another method is to construct the schedule by applying heuristics (e.g. least remaining slack time) for directly constructing a sequence of tasks across each of the resources. An improved version of this method is to use a model of the facility, and construct the sequence of tasks by simulating the movement of jobs through the system, employing decision rules (e.g. the resource that can complete this task the fastest) within the model to make resource assignments.
All of these methods assume constant times for the tasks. In reality these times are often highly variable, and this variability will degrade the actual schedule. In addition there may be unplanned events (e.g. breakdowns, material shortages, power outages, etc.) that may also disrupt the schedule. Hence the projected task and job end times associated with the deterministic schedule that is generated are typically optimistic and the actual job completion times are typically end up being worse than indicated by the deterministic schedule. It is often difficult for the planner to assess how much the real schedule will differ from the planned schedule.
Since in typical applications a FCS degrades over time as task times vary and unplanned events occur, the normal practice is to regenerate a new (worse) schedule once unplanned events occur—or actual activity times differ significantly from their planned times. It's common that a job that is planned to be on time eventually ends up being late as a result. Existing FCS tools provide no basic for assessing the risk associated with a schedule in terms of the likelihood that specific tasks/jobs will be on time or that certain milestones or business objectives will be met.
Simulation has been used in the past as a basis for generating a FCS. However in the past the model used for generating the schedule has been a deterministic model.