A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines
description
Transcript of A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines
![Page 1: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/1.jpg)
A2L Heuristic Algorithm for Scheduling Tasks on Non-Identical
Machines
Alexander C. Tubbs Alison L. Steppig Laura A. Hemker
Southern Illinois University Edwardsville
![Page 2: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/2.jpg)
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.
![Page 3: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/3.jpg)
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.
![Page 4: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/4.jpg)
Overview, continued
Step 5: Create a system of rounds 1. Select the jobs that appear in the first occurrence of each
machine, label as Round 12. If not all Jobs appear, select the jobs that appear in the
second occurrence of each machine and label as Round 2.
3. Continue with Rounds until all jobs appear.4. 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.
![Page 5: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/5.jpg)
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 SPT value, and continue until all un-assigned jobs are evaluated.
![Page 6: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/6.jpg)
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.
![Page 7: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/7.jpg)
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.
![Page 8: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/8.jpg)
Project Problem, 4 jobs & 5 machines
Job 1 Job 2 Job 3 Job 4
M 1 3 1 4 2
M 2 4 3 2 9
M 3 6 5 1 8
M 4 8 7 10 7
M 5 2 6 5 3
![Page 9: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/9.jpg)
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.
SPT Assign to
Job1 2 M5
Job2 1 M1
Job3 1 M3
Job4 2 M1
![Page 10: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/10.jpg)
Step 2:
Create a Gantt chart with these assigned jobs. Since all the jobs are assigned, skip to Step 12.
M5
J1, Pj=2
M4
M3
J3, Pj=1
M2
M1
J2, Pj=1 J4, Pj=2
![Page 11: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/11.jpg)
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.
J3 J2 J1 J4
M2 2 3 4 9
Pj Given Cj on Current
J4 9 > 3
J2 3 > 1
J2 J4 J1 J3
M4 7 7 8 10
Pj Given Cj on Current
J4 7 > 3
J2 7 > 1
![Page 12: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/12.jpg)
Step 13:
Update complete Gantt chart.
M5
J1
M4
M3
J3
M2
M1
J2 J4
![Page 13: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/13.jpg)
Step 14:
Arrange the machines in SPT order on the Gantt chart if multiple jobs are to run on the same machine.
M5
J1
M4
M3
J3
M2
M1
J2 J4
![Page 14: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/14.jpg)
Step 15:
Calculate the average flow-time of the final Gantt chart.
75.14
7
4
21)21(1
F
![Page 15: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/15.jpg)
8 jobs & 5 machines
Job 1 Job 2 Job 3 Job 4 Job 5 Job 6 Job 7 Job 8
M 1 2 2 6 1 1 3 3 10
M 2 5 9 9 8 10 3 7 3
M 3 5 9 4 10 9 10 1 5
M 4 7 5 9 2 6 8 7 8
M 5 6 1 4 4 6 4 7 7
![Page 16: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/16.jpg)
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.
SPT Assign to
Job1 2 M1
Job2 1 M5
Job4 1 M1
Job5 1 M1
Job7 1 M3
Job8 3 M2
![Page 17: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/17.jpg)
Step 2:
Create a Gantt chart with these assigned jobs. (If all jobs are assigned, continue to Step 12)
M5J2
M4
M3J7
M2J8
M1J1 J4 J5
![Page 18: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/18.jpg)
Step 3:
List all machine-job, ij, combinations with their given processing times, pj.
PjM1(J1) 2M1(J2) 2M1(J3) 6M1(J4) 1M1(J5) 1M1(J6) 3M1(J7) 3M1(J8) 10M2(J1) 5M2(J2) 9M2(J3) 9M2(J4) 8M2(J5) 10M2(J6) 3M2(J7) 7M2(J8) 3
M3(J1) 5M3(J2) 9M3(J3) 4M3(J4) 10M3(J5) 9M3(J6) 10M3(J7) 1M3(J8) 5M4(J1) 7M4(J2) 5M4(J3) 9M4(J4) 2M4(J5) 6M4(J6) 8M4(J7) 7M4(J8) 8
M5(J1) 6M5(J2) 1M5(J3) 4M5(J4) 4M5(J5) 6M5(J6) 4M5(J7) 7M5(J8) 7
![Page 19: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/19.jpg)
Step 4:
Rank all the combinations by Pj in ascending order. PjM1(J4) 1M1(J5) 1M3(J7) 1M5(J2) 1M1(J1) 2M1(J2) 2M4(J4) 2M1(J6) 3M1(J7) 3M2(J6) 3M2(J8) 3M3(J3) 4M5(J3) 4M5(J4) 4M5(J6) 4M2(J1) 5M3(J1) 5M3(J8) 5M4(J2) 5
M1(J3) 6M4(J5) 6M5(J1) 6M5(J5) 6M2(J7) 7M4(J1) 7M4(J7) 7M5(J7) 7M5(J8) 7M2(J4) 8M4(J6) 8M4(J8) 8M2(J2) 9M2(J3) 9M3(J2) 9M3(J5) 9M4(J3) 9M1(J8) 10M2(J5) 10M3(J4) 10M3(J6) 10
![Page 20: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/20.jpg)
Step 5:
Create a system of rounds.1. Select the jobs that appear in the first occurrence of each
machine, label as Round 1
2. If not all Jobs appear, select the jobs that appear in the second occurrence of each machine and label as Round 2.
3. Continue with Rounds until all jobs appear.
4. Select a final round of jobs after all the jobs appear.
![Page 21: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/21.jpg)
Step 5 continued:
Pj
M1(J4) 1
M1(J5) 1
M3(J7) 1
M5(J2) 1
M1(J1) 2M1(J2) 2M4(J4) 2M1(J6) 3M1(J7) 3M2(J6) 3M2(J8) 3M3(J3) 4M5(J3) 4M5(J4) 4M5(J6) 4M2(J1) 5M3(J1) 5M3(J8) 5M4(J2) 5
M1(J3) 6M4(J5) 6M5(J1) 6M5(J5) 6M2(J7) 7M4(J1) 7M4(J7) 7M5(J7) 7M5(J8) 7M2(J4) 8M4(J6) 8M4(J8) 8M2(J2) 9M2(J3) 9M3(J2) 9M3(J5) 9M4(J3) 9M1(J8) 10M2(J5) 10M3(J4) 10M3(J6) 10
Jobs Idenitified
R1: 4, 6, 7, 2
R2: 5, 8, 3
R3: 1
FINAL
![Page 22: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/22.jpg)
Step 6:
List all possible combinations found in the rounds for the jobs that were not assigned in Step 1.
Pj
M1(J4) 1
M1(J5) 1
M3(J7) 1
M5(J2) 1
M1(J1) 2
M1(J2) 2
M4(J4) 2
M2(J6) 3
M2(J8) 3
M3(J3) 4
M5(J3) 4
M5(J4) 4
M5(J6) 4
M2(J1) 5
M3(J1) 5
M3(J8) 5
M4(J2) 5
M4(J5) 6
M2(J7) 7
M4(J1) 7
Job1 Job2 Job3 Job4 Job5 Job6 Job7 Job8
ASSIGNED ASSIGNED M3(J3) ASSIGNED ASSIGNED M2(J6) ASSIGNED ASSIGNED
M5(J3) M5(J6)
![Page 23: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/23.jpg)
Step 7:
Identify the shortest processing time, Pj, for each unassigned job.
Job3 Pj Job6 Pj
M3(J3) 4 M2(J6) 3
M5(J3) 4 M5(J6) 4
![Page 24: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/24.jpg)
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.
Pj = 4
Tie: M3 and M5
M3:1 + 4 6
M5:1 + 4 6
![Page 25: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/25.jpg)
Step 9:
Repeat Step 8, selecting the job having the next highest SPT value, and continue until all un-assigned jobs are evaluated.
Pj = 3
M2:3 + 3 9
M5:1 + 4 6
Assign J6 on M5
M5 J2 J6
M4
M3 J7
M2 J8
M1 J1 J4 J5
![Page 26: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/26.jpg)
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.
M3:1 + 4 6
M5:1 + 4 + 4 15
Likewise, J3 will then be on M3
![Page 27: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/27.jpg)
Step 11:
Create a complete Gantt chart containing all final selections in the order in which they were assigned.
M5J2 J6
M4
M3J7 J3
M2J8
M1J1 J4 J5
![Page 28: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/28.jpg)
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.
Job 1 Job 2 Job 3 Job 4 Job 5 Job 6 Job 7 Job 8
M 4 7 5 9 2 6 8 7 8
Pj Given Cj on CurrentJ1 7 > 2J2 5 > 1J3 9 > 4J4 2 < 3J5 6 > 4J6 8 > 5J7 7 > 1
![Page 29: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/29.jpg)
Step 13:
Update complete Gantt chart.
M5J2 J6
M4J4
M3J7 J3
M2J8
M1J1 J5
![Page 30: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/30.jpg)
Step 14:
Arrange the machines in SPT order on the Gantt chart if multiple jobs are to run on the same machine.
M5J2 J6
M4J4
M3J7 J3
M2J8
M1J5 J1
![Page 31: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/31.jpg)
Step 15:
Calculate the average flow-time of the final Gantt chart.
F 625.28
21
8
)21(13)41(12)41(1
![Page 32: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/32.jpg)
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.
![Page 33: A 2 L Heuristic Algorithm for Scheduling Tasks on Non-Identical Machines](https://reader036.fdocuments.in/reader036/viewer/2022062314/56814605550346895db311ff/html5/thumbnails/33.jpg)
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). EvaluatingScheduling Heuristics for Non-Identical
Parallel Processors. International Journal of Production Research, Vol. 35, No. 4, (April 1997), pp. 969 981, 0020-7543