Question: You are given a set S = { a 1 , a 2 , . . . , an } of tasks, where task ai

You are given a set S ={a1, a2,..., an} of tasks, where task ai requires pi units of processing time to complete, once it has started. You have one computer on which to run these tasks, and the computer can run only one task at a time. Let ci be the completion time of task ai , that is, the time at which task ai completes processing. Your goal is to minimize the average completion time, that is, to minimize (1/n) Pn i=1 ci . For example, suppose there are two tasks, a1 and a2, with p1=3 and p2=5, and consider the schedule in which a2 runs first, followed by a1. Then c2=5, c1=8, and the average completion time is (5+8)/2=6.5. If task a1 runs first, however, then c1=3, c2=8, and the average completion time is (3+8)/2=5.5 Give a greedy algorithm that schedules the tasks so as to minimize the average completion time. Each task must run non-preemptively, that is, once task ai starts, it must run continuously for pi units of time. Prove that your algorithm minimizes the average completion time. One of the two following problems can be solved using a greedy algorithm, the other cannot. Recall that greedy algorithms are faster than dynamic programming algorithms, so you should always try to solve with a greedy algorithm when possible.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!