Patent ID: 7246075

Claim:
An Apparatus for producing a schedule of a plurality of time dependent tasks comprising: means for receiving and storing a plurality of tasks to be scheduled; means for receiving and storing a maximum amount of time allowed to schedule the plurality of tasks: means for generating only a portion of a number of schedule permutations required to produce an optimal schedule of the plurality of tasks using an enumerative brute force method; means for estimating an amount of time required to generate the number of schedule permutations required to produce the optimal schedule from the amount of time used to generate the portion of the number of schedule permutations; means for determining whether the estimated amount of time is greater than the maximum amount of time allowed to generate the schedule; means for producing the optimal schedule using the enumerative brute force method if the estimated amount of time required is not greater than the maximum amount of time allowed to schedule the plurality of tasks; means for generating only a portion of a number of schedule permutations required to produce a schedule of tasks using a deterministic programming method if the optimal schedule is not get produced; means for estimating an amount of time required to generate the schedule of the plurality of tasks to be scheduled using the deterministic programming method based on the amount of time required to schedule the portion of the plurality of tasks using the deterministic programming method if the optimal schedule is not yet produced; means for estimating an amount of memory space required to schedule the plurality of tasks using the deterministic programming method based on the amount of memory space required to schedule the portion of the plurality of tasks using the deterministic programming method if the optimal schedule is not yet produced; means for determining whether the estimated amount of time required to generate the schedule is greater than the maximum amount of time allowed to schedule the plurality of tasks if the optimal schedule is not vet produced; means for determining whether the estimated amount of memory space required to generate the schedule is greater than a maximum amount of memory space if the optimal schedule is not vet produced; means for generating the schedule of the plurality of tasks to be scheduled using the deterministic programming module if the estimated amount of time required to generate the schedule is not greater than the maximum amount of time allowed to generate the schedule and the estimated amount of memory space is not greater than the maximum amount of memory space and the optimal schedule is not yet produced; and means for generating the schedule using a genetic method if the estimated amount of time required to generate the schedule is greater than the maximum amount of time allowed or the estimated amount of memory space is greater than the maximum amount of memory space and the optimal schedule is not yet produced.