← Back to Patent Explorer
US5890134A Expired / Lapsed US ⏱️ 0.0 years remaining

Scheduling optimizer

Assignee: McDonnell Douglas Corp
•
Filing: 1996-02-16
•
Granted: 1999-03-30
•
Expires: 2016-02-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A schedule optimizing algorithm improves scheduling quality, reducing a schedules cycle time and requiring only marginal increase in computer execution time. Lower quality computerized scheduling programs are substantially improved through the additional steps of sequential left time shifting and right time shifting of respective chronologically sorted completion time and starting time task listings.

Inventors

  • 👤 Barry Ross Fox

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 21:16
CPC Classifications
G; G06; G06Q; G06Q10/00; G06Q10/06; G06Q10/063; G06Q10/0631; G06Q10/06312; G06Q10/06313; G06Q10/06314

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 510 words
A computer assisted method of optimizing a preliminary schedule for performing a plurality of scheduled tasks that collectively complete a project, said preliminary schedule specifying no less than a start time, a completion time, identification, and resource requirements for each of the plurality of tasks in which any constraints associated with each resource are respected and the plurality of tasks complies with constraints on the order of performance of any one task relative to other tasks defined in the schedule, which includes the step of: (a) inspecting completion times for said plurality of scheduled tasks in said preliminary schedule and determining latest completion time of any of said scheduled tasks; (b) defining a completion time boundary, said boundary comprising a time equal to or later than said latest completion time; (c) inspecting said start times for each of said plurality of scheduled tasks in said preliminary schedule and determining the earliest time of any of said plurality of scheduled tasks; (d) defining a commencement time boundary, said boundary comprising a time at least equal to and no later than an earliest commencement time; (e) sorting said plurality of scheduled tasks in said preliminary schedule into chronological order by completion times to derive a temporary chronological listing comprising the completion times for each task; (f) following said sorting and commencing with one of said tasks in said temporary chronological listing having said latest completion time and continuing with the remaining ones of said tasks in reverse chronological order by completion time (f1) rescheduling each task in said temporary chronological listing to a new completion time that is as close to said completion time boundary as is permissible without violation of any constraint associated with such task and, based on the duration of respective tasks, to a new start time, said rescheduling being without violation of any constraint associated with such task, whereby each task is assigned a new completion and start time to create a first revised temporary listing of tasks arranged in the order found in said derived temporary listing; and, (g) sorting said plurality of tasks in said first revised temporary listing into chronological order by commencement times to derive a second temporary chronological listing comprising the start times for each task; (h) commencing with one of said tasks in said second temporary chronological listing having the earliest start time and continuing with the remaining ones of said tasks in ascending chronological order by start time, (h1) rescheduling each task in said second temporary chronological listing to a new start time that is as close to said commencement time boundary as is permissible without violation of any constraint associated with such task and, based on the duration of said respective tasks to a new completion time, said rescheduling being without violation of any constraint associated with such task, whereby each task is again assigned a new start time and completion time to create a third listing of tasks arranged in the same order found in said second temporary chronological listing, said third listing of tasks comprising an optimized schedule.
Claim 2
Dependent Claim 510 words
A computer assisted method of optimizing a preliminary schedule for performing a plurality of scheduled tasks that collectively complete a project, said preliminary schedule specifying no less than a start time, a completion time, identification, and resource requirements for each of the plurality of tasks in which any constraints associated with each resource are respected and the plurality of tasks complies with constraints on the order of performance of any one task relative to other tasks defined in the schedule, which includes the step of: (a) inspecting completion times for said plurality of scheduled tasks in said preliminary schedule and determining latest completion time of any of said scheduled tasks; (b) defining a completion time boundary, said boundary comprising a time equal to or later than said latest completion time; (c) inspecting said start times for each of said plurality of scheduled tasks in said preliminary schedule and determining the earliest time of any of said plurality of scheduled tasks; (d) defining a commencement time boundary, said boundary comprising a time at least equal to and no later than an earliest commencement time; (e) sorting said plurality of scheduled tasks in said preliminary schedule into chronological order by completion times to derive a temporary chronological listing comprising the completion times for each task; (f) following said sorting and commencing with one of said tasks in said temporary chronological listing having said latest completion time and continuing with the remaining ones of said tasks in reverse chronological order by completion time (f1) rescheduling each task in said temporary chronological listing to a new completion time that is as close to said completion time boundary as is permissible without violation of any constraint associated with such task and, based on the duration of respective tasks, to a new start time, said rescheduling being without violation of any constraint associated with such task, whereby each task is assigned a new completion and start time to create a first revised temporary listing of tasks arranged in the order found in said derived temporary listing; and, (g) sorting said plurality of tasks in said first revised temporary listing into chronological order by commencement times to derive a second temporary chronological listing comprising the start times for each task; (h) commencing with one of said tasks in said second temporary chronological listing having the earliest start time and continuing with the remaining ones of said tasks in ascending chronological order by start time, (h1) rescheduling each task in said second temporary chronological listing to a new start time that is as close to said commencement time boundary as is permissible without violation of any constraint associated with such task and, based on the duration of said respective tasks to a new completion time, said rescheduling being without violation of any constraint associated with such task, whereby each task is again assigned a new start time and completion time to create a third listing of tasks arranged in the same order found in said second temporary chronological listing, said third listing of tasks comprising an optimized schedule.
Claim 3
Dependent Claim 45 words
The method as defined in claim 1, wherein the step (f1) of rescheduling includes the step of: (f1)(a)unscheduling all tasks in said temporary chronological listing by removing the associated start and completion times thereof prior to assigning a completion time for any of said tasks.
Claim 4
Dependent Claim 117 words
The method as defined in claim 1, wherein the step (f1) of rescheduling includes the steps of: (f1) (a) removing the associated start time of the task having the latest completion time; (f1) (b) rescheduling said respective tasks to a new completion time that is as close in time period to said completion time boundary as is permissible without violating any constraint associated with said tasks; and, (f1) (c) based on the respective duration of said respective tasks, assigning a new start time for said respective tasks without violating any constraint associated with said tasks; and (f1) (d) repeating steps (f1) (a) through (f1) (c) in reverse chronological order by completion time for each of said tasks.
Claim 5
Dependent Claim 136 words
The method of claim 1, further including the computer assisted method of generating said schedule for optimizing which comprises the steps of: (1) listing no less than the identification of and the duration time anticipated for completion of each of said plurality of tasks necessary to complete said project and, with respect to each of said tasks, any constraints associated therewith, including, for each respective task, the identification of any other task that requires completion prior to commencement of the respective task and any resources required by said respective task; and (2) formulating a preliminary schedule for performance of said plurality of tasks, in which each of said tasks is completed without violation of a respective associated constraint, said preliminary schedule, including, for each of said tasks, at least a start time and a completion time.
Claim 6
Dependent Claim 35 words
The method as defined in claim 1, further comprising the steps of accepting the optimized schedule derived from steps (a) through (h) and repeating thereon steps (a) through (h) to derive a further optimized schedule.
Claim 7
Independent Claim 21 words
The method as defined in claims 1, 2, 3, 4 or 5, further comprising the step of displaying said optimized schedule.
Claim 8
Dependent Claim 36 words
A programming element for an electronic digital computer comprising a programming medium and program data means resident on said medium for actuating a computer to execute a method as set forth in claims 1 or 4.
Claim 9
Dependent Claim 647 words
A computer assisted method of generating a schedule for performing a plurality of scheduled tasks that collectively complete a project, said method being carried out with the aid of a programmed computer, said method comprising the steps of: (1) listing no less than the identification of and the duration time anticipated for completion of each of a plurality of tasks necessary to complete said project and, with respect to each of said tasks, any constraints associated therewith, including, for each respective task, the identification of any other task that requires completion prior to commencement of the respective task and any resources required by said respective task; and (2) formulating a preliminary schedule for performance of said plurality of tasks, in which each of said tasks is completed without violation of a respective associated constraint, said preliminary schedule, including, for each of said tasks, at least a start time and a completion time; (a) inspecting each of said completion times for said plurality of scheduled tasks in said preliminary schedule and determining the latest completion time of any of said tasks scheduled therein; (b) defining a completion time boundary, said boundary comprising a time equal to or later than said latest completion time; (c) inspecting each of said start times for each of said plurality of scheduled tasks in said preliminary schedule and determining the earliest start time of any of said plurality of scheduled tasks therein; (d) defining a commencement time boundary having an earliest commencement time, said boundary comprising a time at least equal to and no later than said earliest commencement time; (e) sorting said plurality of scheduled tasks in said preliminary schedule into chronological order of the respective completion times of each of said tasks to derive a temporary listing of completion times for each task in descending chronological order, wherein the first task initially scheduled for completion in said plurality of scheduled tasks appears first in said listing and the last task initially scheduled for completion in said plurality of scheduled tasks appears last in said listing; (f) commencing with said last task in said temporary listing and continuing through said temporary listing in reverse chronological order of completion times, (f)(1) unscheduling the respective preliminarily scheduled tasks by removing the associated start and completion times; and (f)(2) rescheduling the respective tasks to a new completion time that is as close in time period to said completion time boundary as is permissible without violating any constraint associated with said tasks; and, (f)(3) based on the respective duration of said respective tasks, assigning a new start time for said respective tasks, to define a second temporary listing in which said tasks are ordered in the same order as in said first named temporary listing; (g) sorting said plurality of tasks in said second temporary listing into chronological order of the respective start times of each of said tasks to derive a further temporary listing of start times for each task in descending chronological order of start times, wherein the first task initially scheduled for commencement in said plurality of tasks in said second temporary listing appears first in said further temporary listing and the last task initially scheduled for commencement in said plurality of tasks in a right shift task temporary listing appears last in said further temporary listing; (h) commencing with the first task in said further temporary listing and continuing through said further temporary listing in chronological order of commencement times, (h1) unscheduling the respective scheduled task and, (h2) rescheduling the respective tasks to a new commencement time that is as close in time to a left boundary as is permissible without violating any constraint associated with such respective task; and (h3) based on the respective duration of said respective task, assigning a new completion time for said respective tasks, to define an optimized schedule of tasks for completion of a given task.
Claim 10
Dependent Claim 647 words
A computer assisted method of generating a schedule for performing a plurality of scheduled tasks that collectively complete a project, said method being carried out with the aid of a programmed computer, said method comprising the steps of: (1) listing no less than the identification of and the duration time anticipated for completion of each of a plurality of tasks necessary to complete said project and, with respect to each of said tasks, any constraints associated therewith, including, for each respective task, the identification of any other task that requires completion prior to commencement of the respective task and any resources required by said respective task; and (2) formulating a preliminary schedule for performance of said plurality of tasks, in which each of said tasks is completed without violation of a respective associated constraint, said preliminary schedule, including, for each of said tasks, at least a start time and a completion time; (a) inspecting each of said completion times for said plurality of scheduled tasks in said preliminary schedule and determining the latest completion time of any of said tasks scheduled therein; (b) defining a completion time boundary, said boundary comprising a time equal to or later than said latest completion time; (c) inspecting each of said start times for each of said plurality of scheduled tasks in said preliminary schedule and determining the earliest start time of any of said plurality of scheduled tasks therein; (d) defining a commencement time boundary having an earliest commencement time, said boundary comprising a time at least equal to and no later than said earliest commencement time; (e) sorting said plurality of scheduled tasks in said preliminary schedule into chronological order of the respective completion times of each of said tasks to derive a temporary listing of completion times for each task in descending chronological order, wherein the first task initially scheduled for completion in said plurality of scheduled tasks appears first in said listing and the last task initially scheduled for completion in said plurality of scheduled tasks appears last in said listing; (f) commencing with said last task in said temporary listing and continuing through said temporary listing in reverse chronological order of completion times, (f)(1) unscheduling the respective preliminarily scheduled tasks by removing the associated start and completion times; and (f)(2) rescheduling the respective tasks to a new completion time that is as close in time period to said completion time boundary as is permissible without violating any constraint associated with said tasks; and, (f)(3) based on the respective duration of said respective tasks, assigning a new start time for said respective tasks, to define a second temporary listing in which said tasks are ordered in the same order as in said first named temporary listing; (g) sorting said plurality of tasks in said second temporary listing into chronological order of the respective start times of each of said tasks to derive a further temporary listing of start times for each task in descending chronological order of start times, wherein the first task initially scheduled for commencement in said plurality of tasks in said second temporary listing appears first in said further temporary listing and the last task initially scheduled for commencement in said plurality of tasks in a right shift task temporary listing appears last in said further temporary listing; (h) commencing with the first task in said further temporary listing and continuing through said further temporary listing in chronological order of commencement times, (h1) unscheduling the respective scheduled task and, (h2) rescheduling the respective tasks to a new commencement time that is as close in time to a left boundary as is permissible without violating any constraint associated with such respective task; and (h3) based on the respective duration of said respective task, assigning a new completion time for said respective tasks, to define an optimized schedule of tasks for completion of a given task.
Claim 11
Dependent Claim 16 words
The method as defined in claim 8, further comprising the step of displaying said optimized schedule.
Claim 12
Dependent Claim 34 words
A programming element for an electronic digital computer comprising a programming medium and program data means resident on said medium for actuating a computer to execute a method as set forth in claim 8.
Claim 13
Dependent Claim 582 words
A computer assisted method of generating a schedule for performing a plurality of scheduled tasks that collectively complete a project, said method being carried out with the aid of a programmed computer, said method comprising the steps of: (1) listing no less than the identification of and the duration time anticipated for completion of each of a plurality of tasks necessary to complete said project and, with respect to each of said tasks, any constraints associated therewith, including, for each respective task, the identification of any other task that requires completion prior to commencement of the respective task and any resources required by said respective task; and (2) formulating a preliminary schedule for performance of said plurality of tasks, in which each of said tasks is completed without violation of a respective associated constraint, said preliminary schedule, including, for each of said tasks, at least a start time and a completion time; (a) inspecting said completion times for said plurality of scheduled tasks in said preliminary schedule and determining the latest completion time of any of said scheduled tasks; (b) defining a completion time boundary, said boundary comprising a time equal to or later than said latest completion time; (c) inspecting said start times for each of said plurality of scheduled tasks in said preliminary schedule and determining the earliest time of any of said plurality of scheduled tasks; (d) defining a commencement time boundary, said boundary comprising a time at least equal to and no later than said earliest commencement time; (e) sorting said plurality of scheduled tasks in said preliminary schedule into chronological order by completion times to derive a first temporary chronological listing comprising the completion times for each task; (f) following said sorting and commencing with one of said tasks in said temporary chronological listing having said latest completion time and continuing with the remaining ones of said tasks in reverse chronological order by completion time (f1) rescheduling each task in said temporary chronological listing to a new completion time that is as close to said completion boundary time as is permissible without violation of any constraint associated with such task and, based on the duration of said respective tasks, to a new start time, said rescheduling being without violation of any constraint associated with said tasks, whereby each task is assigned a new completion and start time to create a first revised temporary listing of tasks arranged in the order found in said first derived temporary listing; and, (g) sorting said plurality of tasks in said first revised temporary listing into chronological order by commencement times to derive a second temporary chronological listing comprising the start times for each task; (h) commencing with one of said tasks in said second temporary chronological listing having the earliest start time and continuing with the remaining ones of said tasks in ascending chronological order by start time, (h1) rescheduling each task in said second temporary chronological listing to a new start time that is as close to said commencement boundary time as is permissible without violation of any constraint associated with said tasks and, based on the duration of said respective tasks, to a new completion time, said rescheduling being without violation of any constraint associated with said tasks, whereby each task is again assigned a new start time and completion time to create a third listing of tasks arranged in the same order found in said second temporary chronological listing, said third listing of tasks comprising an optimized schedule.
Claim 14
Dependent Claim 582 words
A computer assisted method of generating a schedule for performing a plurality of scheduled tasks that collectively complete a project, said method being carried out with the aid of a programmed computer, said method comprising the steps of: (1) listing no less than the identification of and the duration time anticipated for completion of each of a plurality of tasks necessary to complete said project and, with respect to each of said tasks, any constraints associated therewith, including, for each respective task, the identification of any other task that requires completion prior to commencement of the respective task and any resources required by said respective task; and (2) formulating a preliminary schedule for performance of said plurality of tasks, in which each of said tasks is completed without violation of a respective associated constraint, said preliminary schedule, including, for each of said tasks, at least a start time and a completion time; (a) inspecting said completion times for said plurality of scheduled tasks in said preliminary schedule and determining the latest completion time of any of said scheduled tasks; (b) defining a completion time boundary, said boundary comprising a time equal to or later than said latest completion time; (c) inspecting said start times for each of said plurality of scheduled tasks in said preliminary schedule and determining the earliest time of any of said plurality of scheduled tasks; (d) defining a commencement time boundary, said boundary comprising a time at least equal to and no later than said earliest commencement time; (e) sorting said plurality of scheduled tasks in said preliminary schedule into chronological order by completion times to derive a first temporary chronological listing comprising the completion times for each task; (f) following said sorting and commencing with one of said tasks in said temporary chronological listing having said latest completion time and continuing with the remaining ones of said tasks in reverse chronological order by completion time (f1) rescheduling each task in said temporary chronological listing to a new completion time that is as close to said completion boundary time as is permissible without violation of any constraint associated with such task and, based on the duration of said respective tasks, to a new start time, said rescheduling being without violation of any constraint associated with said tasks, whereby each task is assigned a new completion and start time to create a first revised temporary listing of tasks arranged in the order found in said first derived temporary listing; and, (g) sorting said plurality of tasks in said first revised temporary listing into chronological order by commencement times to derive a second temporary chronological listing comprising the start times for each task; (h) commencing with one of said tasks in said second temporary chronological listing having the earliest start time and continuing with the remaining ones of said tasks in ascending chronological order by start time, (h1) rescheduling each task in said second temporary chronological listing to a new start time that is as close to said commencement boundary time as is permissible without violation of any constraint associated with said tasks and, based on the duration of said respective tasks, to a new completion time, said rescheduling being without violation of any constraint associated with said tasks, whereby each task is again assigned a new start time and completion time to create a third listing of tasks arranged in the same order found in said second temporary chronological listing, said third listing of tasks comprising an optimized schedule.
Claim 15
Dependent Claim 314 words
A computer assisted method of optimizing a preliminary schedule for performing a plurality of scheduled tasks that collectively complete a project, said preliminary schedule specifying a start time and a completion time that define a respective duration, said preliminary schedule respecting any constraints associated with each task including constraints on the order of performance of any one task relative to other tasks, the method including the steps of: defining a completion time boundary no earlier than the latest completion time of any of said scheduled tasks; defining a commencement time boundary no earlier than the earliest start time of any of said plurality of scheduled tasks; rescheduling each task such that the completion time for each task is rescheduled to a first new completion time that is as close to said completion time boundary as is permissible without violation of any constraint associated with such task, wherein said rescheduling step further alters the start time for each task based on the duration of each respective task to define a first new start time such that each task is assigned a first new completion time and a first new start time as a result of said rescheduling step to thereby create a revised temporary listing of tasks; further rescheduling each task such that the first new start time for each task is rescheduled to a second new start time that is as close to said commencement time boundary as is permissible without violation of any constraint associated with such task, wherein said rescheduling step further alters the first new completion time for each task based on the duration of each respective task to define a second new completion time such that each task is assigned a second new completion time and a second new start time as a result of said further rescheduling step to thereby create a listing of tasks comprising an optimized schedule.
Claim 16
Dependent Claim 314 words
A computer assisted method of optimizing a preliminary schedule for performing a plurality of scheduled tasks that collectively complete a project, said preliminary schedule specifying a start time and a completion time that define a respective duration, said preliminary schedule respecting any constraints associated with each task including constraints on the order of performance of any one task relative to other tasks, the method including the steps of: defining a completion time boundary no earlier than the latest completion time of any of said scheduled tasks; defining a commencement time boundary no earlier than the earliest start time of any of said plurality of scheduled tasks; rescheduling each task such that the completion time for each task is rescheduled to a first new completion time that is as close to said completion time boundary as is permissible without violation of any constraint associated with such task, wherein said rescheduling step further alters the start time for each task based on the duration of each respective task to define a first new start time such that each task is assigned a first new completion time and a first new start time as a result of said rescheduling step to thereby create a revised temporary listing of tasks; further rescheduling each task such that the first new start time for each task is rescheduled to a second new start time that is as close to said commencement time boundary as is permissible without violation of any constraint associated with such task, wherein said rescheduling step further alters the first new completion time for each task based on the duration of each respective task to define a second new completion time such that each task is assigned a second new completion time and a second new start time as a result of said further rescheduling step to thereby create a listing of tasks comprising an optimized schedule.
Claim 17
Dependent Claim 40 words
The method as defined in claim 12 further comprising the step of unscheduling all tasks in said preliminary schedule by removing the associated start time and completion time for each task prior to the initial step of rescheduling each task.
Claim 18
Dependent Claim 93 words
The method as defined in claim 13, wherein said initial step of rescheduling each task includes the steps of: removing the associated start time of each task; rescheduling the completion time for each tasks to a first new completion time that is as close in time period to said completion time boundary as is permissible without violating any constraint associated with said tasks; and rescheduling the start time associated with each task based on the duration of each task to a first new start time without violating any constraint associated with said task.

References Cited (Backward Citations)

US4896269A Cited
US4888962A Cited
US5093794A Cited
US5099431A Cited
US5233533A Cited
US5241465A Cited
US5406476A Cited
US5319781A Cited
US5402350A Cited
US5442730A Cited
US5408663A Cited
US5655118A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-03-29 2002-09-28 2003-03-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-03-29 2006-09-28 2007-03-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-03-29 2010-09-28 2011-03-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag