330 likes | 453 Views
A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines. Alexander C. Tubbs Alison L. Steppig Laura A. Hemker Southern Illinois University Edwardsville. Introduction.
E N D
A2L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines Alexander C. Tubbs Alison L. Steppig Laura A. Hemker Southern Illinois University Edwardsville
Introduction • The A2L heuristic algorithm provides an efficient solution for scheduling tasks on non-identical machines without preemption. Specifically, the objective of this algorithm’s performance measure is to minimize the average flow time of a given set of processing times. Shortest processing time (SPT) and a form of weighted SPT contribute to the optimal solution. The step-by-step procedure provides a straightforward method for application.
Overview • Step 1: List all the minimum processing times for each job j. For n jobs having a single SPT on a single machine, assign to the specified machine i. • Step 2: Create a Gantt chart with these assigned jobs. (If all jobs are assigned, continue to Step 12) • Step 3: List all machine-job, ij, combinations with their given processing times, Pj. • Step 4: Rank all the combinations by Pj in ascending order.
Overview, continued • Step 5: Create a system of rounds • Select the jobs that appear in the first occurrence of each machine, label as Round 1 • If not all Jobs appear, select the jobs that appear in the second occurrence of each machine and label as Round 2. • Continue with Rounds until all jobs appear. • Select a final round of jobs after all the jobs appear. • Step 6: List all possible combinations found in the rounds for the jobs that were not assigned in Step 1.
Overview, continued • Step 7: Identify the shortest processing time, Pj, for each unassigned job. • Step 8: Starting with the job having the largest SPT, evaluate the Fj of all possible combinations for that job. Assign job to the machine having the shortest Fj. If a tie occurs when evaluating Fj, do not assign job and continue with next largest SPT job as described in the next step. Update Gantt chart. • Step 9: Repeat Step 8, selecting the job having the next highest SPTvalue, and continue until all un-assigned jobs are evaluated.
Overview, continued • Step 10: Re-Evaluate those jobs that had a tie within Fj since new jobs have been assigned. Assign these jobs if ties are broken, for those jobs that ties did not break, create a multi-solution set. • Step 11: Create a complete Gantt chart containing all final selections in the order in which they were assigned. • Step 12: In the Gantt chart, if a machine is not in use, go back and list all Pj for each job on the open machine. On the Gantt chart, select those jobs running sequentially on a machine and note their Cj for that machine. If Pj < Cj, select the job that has the largest difference between the values and re-assign to the open machine.
Overview, continued • Step 13: Update complete Gantt chart. • Step 14: Arrange the machines in SPT order on the Gantt chart if multiple jobs are to run on the same machine. • Step 15: Calculate the average flow-time of the final Gantt chart.
Step 1: • List all the minimum processing times for each job j. For n jobs having a single SPT on a single machine, assign to the specified machine i.
Step 2: • Create a Gantt chart with these assigned jobs. Since all the jobs are assigned, skip to Step 12.
Step 12: • In the Gantt chart, if a machine is not in use, go back and list all Pj for each job on the open machine. On the Gantt chart, select those jobs running sequentially on a machine and note their Cj for that machine. If Pj < Cj, select the job that has the largest difference between the values and re-assign to the open machine.
Step 13: • Update complete Gantt chart.
Step 14: • Arrange the machines in SPT order on the Gantt chart if multiple jobs are to run on the same machine.
Step 15: • Calculate the average flow-time of the final Gantt chart.
Step 1: • List all the minimum processing times for each job j. For n jobs having a single SPT on a single machine, assign to the specified machine i.
Step 2: • Create a Gantt chart with these assigned jobs. (If all jobs are assigned, continue to Step 12)
Step 3: • List all machine-job, ij, combinations with their given processing times, pj.
Step 4: • Rank all the combinations by Pj in ascending order.
Step 5: • Create a system of rounds. • Select the jobs that appear in the first occurrence of each machine, label as Round 1 • If not all Jobs appear, select the jobs that appear in the second occurrence of each machine and label as Round 2. • Continue with Rounds until all jobs appear. • Select a final round of jobs after all the jobs appear.
Step 6: • List all possible combinations found in the rounds for the jobs that were not assigned in Step 1.
Step 7: • Identify the shortest processing time, Pj, for each unassigned job.
Step 8: • Starting with the job having the largest SPT, evaluate the Fj of all possible combinations for that job. Assign job to the machine having the shortest Fj. If a tie occurs when evaluating Fj, do not assign job and continue with next largest SPT job as described in the next step. Update Gantt chart.
Step 9: • Repeat Step 8, selecting the job having the next highest SPT value, and continue until all un-assigned jobs are evaluated.
Step 10: • Re-Evaluate those jobs that had a tie within Fj since new jobs have been assigned. Assign these jobs if ties are broken, for those jobs that ties did not break, create a multi-solution set.
Step 11: • Create a complete Gantt chart containing all final selections in the order in which they were assigned.
Step 12: • In the Gantt chart, if a machine is not in use, go back and list all Pj for each job on the open machine. In the Gantt chart, if a machine is not in use, go back and list all Pj for each job on the open machine. If Pj < Cj, select the job that has the largest difference between the values and re-assign to the open machine.
Step 13: • Update complete Gantt chart.
Step 14: • Arrange the machines in SPT order on the Gantt chart if multiple jobs are to run on the same machine.
Step 15: • Calculate the average flow-time of the final Gantt chart.
Conclusions • The A2L heuristic algorithm proved to be capable of minimizing average flow-time for every scheduling problem of non-identical machines without preemption that we applied it to. We believe that it could be efficiently applied to larger-scale problems if made into a computer program.
References • Pinedo, M. (1995). Scheduling: Theory, Algorithms, and Systems, Prentice-Hall, 0137067577, New Jersey • Baker, K. R. (1974). Introduction to Sequencing and Scheduling, John Wiley & Sons, 0471045551, New York • Randhawa, S. U. & Kuo, C. H. (1997). Evaluating Scheduling Heuristics for Non-Identical Parallel Processors. International Journal of Production Research, Vol. 35, No. 4, (April 1997), pp. 969 981, 0020-7543