210 likes | 726 Views
IOE/MFG 543. Chapter 3: Single machine models (Sections 3.3-3.5). Section 3.3: Number of tardy jobs 1|| S U j. Number of tardy jobs Often used as a benchmark for managers (or % of on-time jobs) Some jobs may have to wait really long.
E N D
IOE/MFG 543 Chapter 3: Single machine models (Sections 3.3-3.5)
Section 3.3: Number of tardy jobs 1||S Uj • Number of tardy jobs • Often used as a benchmark for managers (or % of on-time jobs) • Some jobs may have to wait really long
Characterization of an optimal schedule for 1||S Uj • Split jobs into two sets J=Jobs that are completed on time Jd=Jobs that are tardy • The jobs in J are scheduled according to an EDD rule • The order in which the jobs in Jd are completed is immaterial (since they are already tardy)
Algorithm 3.3.1 for 1||S Uj • Set J=, Jd=, Jc ={1,…,n} (set of jobs not yet considered for scheduling) • Determine job j* in Jc which has the EDD, i.e, dj*=min{dj : jJc} Add j* to J Delete j* from Jc Go to 3
Algorithm 3.3.1 for 1||S Uj (2) • If due date of job j* is met, i.e., if SjJ pj ≤ dj* go to 4, otherwise let k* be the job in J which has the longest processing time, i.e., pk*=maxjJ {pj} Delete k* from J Add k* to Jd • If Jc= STOP otherwise go to 2.
Algorithm 3.3.1 for 1||S Uj (3) • Computational complexity O(nlog(n)) • If it is implemented efficiently! • Theorem 3.3.2 • Algorithm 3.3.1 yields an optimal schedule for 1||S Uj • Proof: By induction
Example 3.3.3 • Use Algorithm 3.3.1 to determine the schedule that minimizes S Uj • How many jobs are tardy?
Total weighted number of tardy jobs 1||S wjUj • NP-hard • No polynomial time algorithm exists • If all jobs have the same due dates • i.e., d=dj for all jobs • Knapsack problem=> pseudopolynomial • Why not use WSPT? • Example 3.3.4 • What happens when WSPT is used? • What about 2-3-1?
Section 3.4: The total tardiness 1||S Tj • A more practical performance measure than the number of tardy jobs • May schedule the tardy jobs to minimize total tardiness • The problem is NP-hard in the ordinary sense • A pseudopolynomial dynamic programming algorithm exists
Dynamic programming • See Appendix B • Dynamic programming is an efficient sequential method for total enumeration • For 1||S Tj we can use Lemmas 3.4.1. and 3.4.3. to eliminate a number of schedules from consideration
Lemma 3.4.1. • If pj≤pk and dj≤dk,then there exists an optimal sequence in which job j is scheduled before job k • Proof: The result is fairly obvious, so we omit the proof (Good exercise!) • Consequences: • We can eliminate from consideration all sequences that do not satisfy this condition
Lemma 3.4.2. • For some job k let C'k be the latest completion time of job in any optimal sequence S' • Consider two sets of due dates: d1, …, dn and d1, …,dk-1,max(dk,C'k), dk+1, dn • S' is optimal for the first set and S'' is optimal for the second set • Lemma: Any sequence that is optimal for the second set of due dates is optimal for the first set as well • Proof: Skip
Enumerate the jobs by increasing due dates • Assume d1≤d2≤…≤dn • Let job k be such that pk=max(p1,…,pn) • Lemma 3.4.1=> there is an optimal sequence such that jobs 1,…,k-1 are scheduled before job k • The n-k jobs k+1,…,n are scheduled either before or after job k
Lemma 3.4.3 • There exists an integer d, 0≤d≤n-k, such that there is an optimal sequence S in which job k is preceded by all jobs j with j≤k+d and followed by all jobs j with j>k+d • Effectively reduces the number of schedules to be considered • Proof: Skip
Consequences of Lemma 3.4.3. • There is an optimal sequence that processes the jobs in this order: • jobs 1,2,…,k-1,k+1,…,k+d in some order • job k • jobs k+d+1, k+d+2, …, k+n in some order • How do we determine this sequence? • Algorithm 3.4.4.
Notation for Algorithm 3.4.4. • Ck(d)=Sj≤k+dpj is the completion time of job k • J(j,l,k) is the set of jobs in {j,j+1,…,l} that have a processing time less than or equal to job k and excludes job k itself • V(J(j,l,k),t) is the total tardiness of the jobs in J(j,l,k) under an optimal sequence assuming that this set starts processing at time t • k' is the job in J(j,l,k) with the largest processing time, i.e., pk'=max{pj : j J(j,l,k)}
Algorithm 3.4.4. for 1||S Tj • Initial conditions V(Ø,t)=0 V({j},t)=max(0,t+pj-dj) • Recursive relation V(J(j,l,k),t)=mind{V(J(j,k'+d,k'),t) +max(0,Ck'(d)-dk')+V(J(k'+d+1,l,k'),Ck'(d))} • Optimal value function: V({1,…,n},0)
The complexity of Algorithm 3.4.4. • At most n3 subsets J(j,l,k) • At most Spj time points • =>at most n3Spj recursive equations • Each equation requires at most O(n) operations • Overall complexity is O(n4Spj) => pseudopolynomial
Example 3.4.5. • Given the following data, use Algorithm 3.4.4. to solve the problem 1||S Tj
Section 3.5.The total tardiness 1||S wjTj • Thm. 3.5.2: The problem 1||S wjTj is strongly NP-hard • 3 partition reduces to 1||S wjTj • A dominance result exists. Lemma 3.5.1: • If there are two jobs j and k with dj≤dk , pj≤pk and wj≥wk then there is an optimal sequence in which job j appears before job k. • Branch and bound for 1||S wjTj • Branch: Start by scheduling the last jobs • Bound: Solve a transportation problem