ioe/mfg 543

21
1 IOE/MFG 543 IOE/MFG 543 Chapter 3: Single machine Chapter 3: Single machine models models (Sections 3.3-3.5) (Sections 3.3-3.5)

Upload: jerry

Post on 09-Jan-2016

65 views

Category:

Documents


3 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: IOE/MFG 543

11

IOE/MFG 543IOE/MFG 543

Chapter 3: Single machine Chapter 3: Single machine modelsmodels

(Sections 3.3-3.5)(Sections 3.3-3.5)

Page 2: IOE/MFG 543

22

Section 3.3: Section 3.3: Number of tardy jobs Number of tardy jobs 1||1|| UUjj Number of tardy jobsNumber of tardy jobs

– Often used as a benchmark for Often used as a benchmark for managers (or % of on-time jobs)managers (or % of on-time jobs)

– Some jobs may have to wait Some jobs may have to wait really longreally long

Page 3: IOE/MFG 543

33

Characterization of an Characterization of an optimal schedule for optimal schedule for 1||1|| UUjj Split jobs into two setsSplit jobs into two sets

J=Jobs that are completed on timeJ=Jobs that are completed on timeJJdd=Jobs that are tardy=Jobs that are tardy

The jobs in J are scheduled The jobs in J are scheduled according to an EDD ruleaccording to an EDD rule

The order in which the jobs in JThe order in which the jobs in Jdd are completed is immaterial are completed is immaterial (since they are already tardy)(since they are already tardy)

Page 4: IOE/MFG 543

44

Algorithm 3.3.1 for Algorithm 3.3.1 for 1||1|| UUjj

1.1. Set Set J=J=, , JJdd==, , JJc c ={1,…,n} (set of jobs not yet ={1,…,n} (set of jobs not yet

considered for considered for scheduling)scheduling)

2.2. Determine job j* in JDetermine job j* in Jcc which has the EDD, which has the EDD, i.e, i.e, ddj*j*=min{d=min{djj : j : jJJcc} } Add j* to JAdd j* to JDelete j* from JDelete j* from Jcc

Go to 3Go to 3

Page 5: IOE/MFG 543

55

Algorithm 3.3.1 for Algorithm 3.3.1 for 1||1|| U Uj j

(2)(2)

3.3. If due date of job j*If due date of job j* is met, i.e., if is met, i.e., if jjJ J ppj j ≤ d≤ dj*j*

go to 4,go to 4,otherwise otherwise

let k* be the job in J which has the let k* be the job in J which has the longest longest processing time, i.e., pprocessing time, i.e., pk*k*=max=maxjjJ J

{p{pjj} } Delete k* from JDelete k* from JAdd k* to JAdd k* to Jdd

4.4. If JIf Jcc== STOP STOPotherwise go to 2.otherwise go to 2.

Page 6: IOE/MFG 543

66

Algorithm 3.3.1 for Algorithm 3.3.1 for 1||1|| U Uj j

(3)(3) Computational complexity Computational complexity

O(nlog(n))O(nlog(n))– If it is implemented efficiently!If it is implemented efficiently!

Theorem 3.3.2Theorem 3.3.2– Algorithm 3.3.1 yields an optimal Algorithm 3.3.1 yields an optimal

schedule for schedule for 1||1|| U Ujj

– Proof: By inductionProof: By induction

Page 7: IOE/MFG 543

77

Example 3.3.3Example 3.3.3

Use Algorithm 3.3.1 to determine Use Algorithm 3.3.1 to determine the schedule that minimizes the schedule that minimizes U Ujj

– How many jobs are tardy?How many jobs are tardy?

job jjob j 11 22 33 44 55

ppjj 77 88 44 66 66

ddjj 99 1717 1818 1919 2121

Page 8: IOE/MFG 543

88

Total weighted number Total weighted number of tardy jobs of tardy jobs 1||1|| w wjjUUjj

NP-hardNP-hard– No polynomial time algorithm existsNo polynomial time algorithm exists

If all jobs have the same due datesIf all jobs have the same due dates– i.e., d=di.e., d=djj for all jobs for all jobs– Knapsack problem=> pseudopolynomialKnapsack problem=> pseudopolynomial

Why not use WSPT?Why not use WSPT?– Example 3.3.4Example 3.3.4

What happensWhat happenswhen WSPT is used?when WSPT is used?

What about 2-3-1?What about 2-3-1?

job jjob j 11 22 33

ppjj 1111 99 9090

wwjj 1212 99 8989

ddjj 100100 100100 100100

Page 9: IOE/MFG 543

99

Section 3.4: Section 3.4: The total tardiness The total tardiness 1||1|| T Tjj

A more practical performance A more practical performance measure than the number of tardy measure than the number of tardy jobsjobs– May schedule the tardy jobs to May schedule the tardy jobs to

minimize total tardinessminimize total tardiness The problem is NP-hard in the The problem is NP-hard in the

ordinary senseordinary sense– A pseudopolynomial dynamic A pseudopolynomial dynamic

programming algorithm existsprogramming algorithm exists

Page 10: IOE/MFG 543

1010

Dynamic programmingDynamic programming

See Appendix BSee Appendix B Dynamic programming is an Dynamic programming is an

efficient sequential method for efficient sequential method for total enumerationtotal enumeration

For For 1||1|| T Tj j we can use Lemmas we can use Lemmas

3.4.1. and 3.4.3. to eliminate a 3.4.1. and 3.4.3. to eliminate a number of schedules from number of schedules from considerationconsideration

Page 11: IOE/MFG 543

1111

Lemma 3.4.1.Lemma 3.4.1.

If pIf pjj≤p≤pkk and and ddjj≤d≤dkk,, then there exists an then there exists an optimal sequence in which job j is optimal sequence in which job j is scheduled before job kscheduled before job k

Proof: The result is fairly obvious, so Proof: The result is fairly obvious, so we omit the proof (Good exercise!)we omit the proof (Good exercise!)

Consequences: Consequences: – We can eliminate from consideration all We can eliminate from consideration all

sequences that do not satisfy this sequences that do not satisfy this conditioncondition

Page 12: IOE/MFG 543

1212

Lemma 3.4.2.Lemma 3.4.2.

For some job k let CFor some job k let C''kk be the latest be the latest completion time of job in any optimal completion time of job in any optimal sequence sequence SS''

Consider two sets of due dates: dConsider two sets of due dates: d11, …, , …, ddnn and d and d11, …,d, …,dk-1k-1,max(d,max(dkk,,CC''kk),), d dk+1k+1,, d dnn– SS' is optimal for the first set and S'' is ' is optimal for the first set and S'' is

optimal for the second setoptimal for the second set Lemma: Any sequence that is optimal Lemma: Any sequence that is optimal

for the second set of due dates is for the second set of due dates is optimal for the first set as welloptimal for the first set as well– Proof: Proof: Skip

Page 13: IOE/MFG 543

1313

Enumerate the jobs by Enumerate the jobs by increasing due datesincreasing due dates Assume dAssume d11≤d≤d22≤…≤d≤…≤dnn

Let job k be such that pLet job k be such that pkk=max(p=max(p11,,…,p…,pnn))– Lemma 3.4.1=> there is an optimal Lemma 3.4.1=> there is an optimal

sequence such that jobs 1,…,k-1 are sequence such that jobs 1,…,k-1 are scheduled before job kscheduled before job k

– The n-k jobs k+1,…,n are scheduled The n-k jobs k+1,…,n are scheduled either before or after job keither before or after job k

Page 14: IOE/MFG 543

1414

Lemma 3.4.3Lemma 3.4.3

There exists an integer There exists an integer , 0, 0≤≤≤n-k, ≤n-k, such that there is an optimal such that there is an optimal sequence S in which job k is sequence S in which job k is preceded by all jobs j with jpreceded by all jobs j with j≤k+≤k+ and followed by all jobs j with and followed by all jobs j with j>k+j>k+– Effectively reduces the number of Effectively reduces the number of

schedules to be consideredschedules to be considered– Proof: Proof: Skip

Page 15: IOE/MFG 543

1515

Consequences of Consequences of Lemma 3.4.3.Lemma 3.4.3. There is an optimal sequence that There is an optimal sequence that

processes the jobs in this order:processes the jobs in this order:1.1. jobs 1,2,…,k-1,k+1,…,k+jobs 1,2,…,k-1,k+1,…,k+ in some order in some order

2.2. job kjob k

3.3. jobs k+jobs k++1, k++1, k++2, …, k+n in some +2, …, k+n in some orderorder

How do we determine this How do we determine this sequence?sequence?

– Algorithm 3.4.4.Algorithm 3.4.4.

Page 16: IOE/MFG 543

1616

Notation for Algorithm Notation for Algorithm 3.4.4.3.4.4. CCkk(()=)=jj≤k+≤k+ppjj is the completion time of job k is the completion time of job k J(j,l,k) is the set of jobs in {j,j+1,…,l} that J(j,l,k) is the set of jobs in {j,j+1,…,l} that

have a processing time less than or equal have a processing time less than or equal to job k and to job k and excludesexcludes job k itself job k itself

V(J(j,l,k),t) is the total tardiness of the jobs V(J(j,l,k),t) is the total tardiness of the jobs in J(j,l,k) under an optimal sequence in J(j,l,k) under an optimal sequence assuming that this set starts processing at assuming that this set starts processing at time ttime t

kk' is the job in J(j,l,k) with the largest ' is the job in J(j,l,k) with the largest processing time, i.e., pprocessing time, i.e., pkk''=max{p=max{pjj : j : j J(j,l,k)}J(j,l,k)}

Page 17: IOE/MFG 543

1717

Algorithm 3.4.4. for Algorithm 3.4.4. for 1||1|| TTjj

Initial conditionsInitial conditionsV(Ø,t)=0V(Ø,t)=0

V({j},t)=max(0,t+pV({j},t)=max(0,t+pjj-d-djj))

Recursive relationRecursive relationV(J(j,l,k),t)=minV(J(j,l,k),t)=min{V(J(j,k{V(J(j,k'+'+,k,k''),t)),t)+max(0,C+max(0,Ckk''(()-d)-dk'k')+)+V(J(kV(J(k'+'++1+1,l,k,l,k''),),Ck'())})}

Optimal value function:Optimal value function:V({1,…,n},0)V({1,…,n},0)

Page 18: IOE/MFG 543

1818

The complexity of The complexity of Algorithm 3.4.4.Algorithm 3.4.4. At most nAt most n33 subsets J(j,l,k) subsets J(j,l,k) At most At most ppjj time points time points =>at most n=>at most n33ppjj recursive recursive

equationsequations Each equation requires at most O(n) Each equation requires at most O(n)

operationsoperations Overall complexity is O(nOverall complexity is O(n44ppjj))=> pseudopolynomial=> pseudopolynomial

Page 19: IOE/MFG 543

1919

Example 3.4.5.Example 3.4.5.

Given the following data, use Given the following data, use Algorithm 3.4.4. to solve the Algorithm 3.4.4. to solve the problem problem 1||1|| T Tjj

job jjob j 11 22 33 44 55

ppjj 121121 7979 147147 8383 130130

ddjj 260260 266266 266266 336336 337337

Page 20: IOE/MFG 543

2020

Section 3.5.Section 3.5. The total tardiness The total tardiness 1||1|| wwjjTTjj Thm. 3.5.2: The problem Thm. 3.5.2: The problem 1||1|| w wjjTTjj is is

strongly NP-hardstrongly NP-hard– 3 partition reduces to 3 partition reduces to 1||1|| w wjjTTjj

A dominance result exists. Lemma 3.5.1: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 Branch and bound for 1||1|| w wjjTTjj – Branch: Start by scheduling the last jobsBranch: Start by scheduling the last jobs– Bound: Solve a Bound: Solve a transportation problem problem

Page 21: IOE/MFG 543

2121

Summary of Chapter 3:Summary of Chapter 3:Single machine modelsSingle machine models

1||1|| w wjjCCjjWSPT rule, works for chains WSPT rule, works for chains tootoo

1||1||wwjj((1-e1-e--

rCrCjj))

WDSPT rule, works for chains WDSPT rule, works for chains tootoo

1||L1||LmaxmaxEDD ruleEDD rule

1|prec| h1|prec| hmaxmaxAlgorithm 3.2.1.Algorithm 3.2.1.

1|r1|rjj|L|LmaxmaxBranch and boundBranch and bound

1||1|| U UjjAlgorithm 3.3.1.Algorithm 3.3.1.

1||1|| T TjjDynamic programming Alg. Dynamic programming Alg. 3.4.4.3.4.4.