IOE/MFG 543

18
1 IOE/MFG 543 IOE/MFG 543 Chapter 3: Single machine Chapter 3: Single machine models models (Sections 3.1 and 3.2) (Sections 3.1 and 3.2)

description

IOE/MFG 543. Chapter 3: Single machine models (Sections 3.1 and 3.2). Sec. 3.1: The total weighted completion time 1|| S w j C j. Criteria for scheduling Shorter jobs processed first => more jobs finish early The higher the weight the earlier a job should finish - PowerPoint PPT Presentation

Transcript of IOE/MFG 543

Page 1: IOE/MFG 543

11

IOE/MFG 543IOE/MFG 543

Chapter 3: Single machine Chapter 3: Single machine modelsmodels

(Sections 3.1 and 3.2)(Sections 3.1 and 3.2)

Page 2: IOE/MFG 543

22

Sec. 3.1: The total Sec. 3.1: The total weighted completion weighted completion time time 1||1|| w wjjCCjj Criteria for schedulingCriteria for scheduling

– Shorter jobs processed first => more jobs Shorter jobs processed first => more jobs finish earlyfinish early

– The higher the weight the earlier a job The higher the weight the earlier a job should finishshould finish

Weighted shortest processing time Weighted shortest processing time first rule (WSPT)first rule (WSPT)– order the jobs in decreasing order of order the jobs in decreasing order of wwj j /p/pjj

Theorem 3.1.1Theorem 3.1.1– The WSPT is optimal for The WSPT is optimal for 1||1|| w wjjCCjj

Page 3: IOE/MFG 543

33

Precedence Precedence constraintsconstraints Chains 1Chains 12 2 ... ... kk -factor (largest ratio of weight -factor (largest ratio of weight

and processing times)and processing times)

l

j j

l

j j

kll

j j

l

j j

p

w

p

wk

1

1

1*

1

*

1 max),...,2,1(

Page 4: IOE/MFG 543

44

Algorithm 3.1.4 for Algorithm 3.1.4 for chainschains

1.1. Whenever a machine is freed, Whenever a machine is freed, schedule among the remaining schedule among the remaining chains the one with the highest chains the one with the highest ––factorfactor

2.2. Process this chain without Process this chain without interruption up to and including the interruption up to and including the job job l*l* that determines the that determines the –factor–factor

Do example on slide 7Do example on slide 7

Page 5: IOE/MFG 543

55

11|| || ΣΣwwjj((1-e1-e-rC-rCjj))

Weighted discounted shortest Weighted discounted shortest processing time first rule (WDSPT)processing time first rule (WDSPT)– Order jobs in non-increasing order ofOrder jobs in non-increasing order of

wwjjee-rp-rpjj

11-e-e-rp-rpjj

– Gives the optimal schedule (Thm. 3.1.6)Gives the optimal schedule (Thm. 3.1.6) Algorithms for chains also existAlgorithms for chains also exist

Page 6: IOE/MFG 543

66

Summary of other Summary of other completion time completion time modelsmodels

1 | prec | wjCj with arbitrary precedence relation

strongly NP-hard

1 | rj, prmp | wjCj NP-hard

1 | rj, prmp | Cj SRPT ruleSRPT rule

1 | rj | Cj NP-hard

Page 7: IOE/MFG 543

77

Example 3.1.5Example 3.1.5

There are 2 chainsThere are 2 chains

112 2 334 and 54 and 56677 The weights and processing times areThe weights and processing times are

Determine the schedule that minimizes Determine the schedule that minimizes the total weighted completion timethe total weighted completion time

job jjob j 11 22 33 44 55 66 77

wwjj 66 1818 1212 88 88 1717 1818

ppjj 33 66 66 55 44 88 1010

Page 8: IOE/MFG 543

88

Section 3.2Section 3.2The maximum latenessThe maximum lateness Due date relatedDue date related The problem The problem 1 || 1 || LLmaxmax is easy is easy

– For a single machine problem with For a single machine problem with regular objective functions regular objective functions CCmaxmax==ppjj

– LLmaxmax==maxmaxii{1,…,{1,…,nn} } LLi i ((LLi i =C=Cii-d-dii))

– Select jobs in increasing order of Select jobs in increasing order of their due dates => earliest due date their due dates => earliest due date first rule (EDD)first rule (EDD)

Page 9: IOE/MFG 543

99

Backward algorithm forBackward algorithm for1|1|precprec||hhmaxmax

hhmaxmax=max(=max(hh11((CC11),…,),…,hhnn((CCnn))))– The functions The functions hhii are nondecreasing are nondecreasing

JJ is the set of jobs already scheduledis the set of jobs already scheduled– Jobs in Jobs in JJ are processed in the interval are processed in the interval

JJcc is the set of jobs still to be is the set of jobs still to be scheduledscheduled

JJ'' is the set of jobs that can be is the set of jobs that can be scheduled (scheduled (schedulableschedulable jobs) jobs)

[[CCmaxmax--ppjj, , CCmaxmax

]] jjJJ

Page 10: IOE/MFG 543

1010

Algorithm 3.2.1 for 1|Algorithm 3.2.1 for 1|precprec||hhmaxmax

1.1. Set Set JJ==, , JJcc={1,…,={1,…,nn} } and let and let JJ'' be all jobs be all jobs that have no successorsthat have no successors

2.2. Determine Determine

Add Add j*j* to to JJDelete Delete j*j* from from JJcc

Modify Modify JJ'' to represent the new set of to represent the new set of schedulable jobs (have no successors)schedulable jobs (have no successors)

3.3. If If JJcc= = STOP, otherwise go to 2 STOP, otherwise go to 2

cJk

kjJj

phj'

minarg*

Page 11: IOE/MFG 543

1111

Example 3.2.3Example 3.2.3

Use Algorithm 3.2.1 to determine Use Algorithm 3.2.1 to determine the schedule that minimizes the schedule that minimizes hhmaxmax and compute the optimal valueand compute the optimal value

job jjob j 11 22 33

ppjj 22 33 55

hhj j ((CCjj)) 1+ 1+ CC11 1.2 1.2 CC22 1010

Page 12: IOE/MFG 543

1212

Theorem 3.2.2.Theorem 3.2.2.

Algorithm 3.2.1. yields an optimal Algorithm 3.2.1. yields an optimal schedule for schedule for 1 | prec | h1 | prec | hmaxmax

Proof:Proof:

Page 13: IOE/MFG 543

1313

Release datesRelease dates 1 | 1 | rrj j | | LLmaxmax

Significantly harder than Significantly harder than 1 | 1 | precprec | | LLmaxmax

It may be optimal to keep the It may be optimal to keep the machine idle to wait for the release machine idle to wait for the release of a new job (not a nondelay of a new job (not a nondelay schedule)schedule)

Theorem 3.2.4.Theorem 3.2.4.– The problem The problem 1 | 1 | rrj j | | LLmaxmax is strongly NP-hard is strongly NP-hard– Reduces from 3-Reduces from 3-PARTITIONPARTITION

Page 14: IOE/MFG 543

1414

Branch and boundBranch and bound

A method of effective enumerationA method of effective enumeration– Generate a node treeGenerate a node tree

Compute the objective of a feasible Compute the objective of a feasible schedule (feasible node)schedule (feasible node)

Compute lower bounds for a class of Compute lower bounds for a class of schedules (node)schedules (node)

The node can be eliminated if the The node can be eliminated if the lower bound is higher than the cost of lower bound is higher than the cost of a schedule obtained earliera schedule obtained earlier

Page 15: IOE/MFG 543

1515

Branch and bound forBranch and bound for 1 | 1 | rrj j | | LLmaxmax

BranchingBranching– Level Level 00: single node and no jobs : single node and no jobs

have been scheduledhave been scheduled– Level Level 11: : nn nodes such that job nodes such that job jj is is

scheduled first at node scheduled first at node jj– Level Level kk: jobs in the first : jobs in the first kk positions positions

have been specifiedhave been specified

Page 16: IOE/MFG 543

1616

Branch and bound forBranch and bound for 1 | 1 | rrj j | | LLmax max (2)(2) BranchingBranching

– At a node let At a node let JJ be the set of jobs that be the set of jobs that have not been scheduledhave not been scheduled

– Also let t be the time when a job can Also let t be the time when a job can start processing at the nodestart processing at the node

– Only create a node for job Only create a node for job jj at the at the node ifnode if

rrjj<min<minllJJ(max((max(tt,,rrll)+)+ppll))

Page 17: IOE/MFG 543

1717

Branch and bound forBranch and bound for 1 | 1 | rrj j | | LLmax max (3)(3) BoundingBounding

– At each node compute the optimal At each node compute the optimal value using value using 1 | 1 | rrj j , prmp, prmp | | LLmax max for the for the remaining jobsremaining jobs

– Preemptive EDD rule is optimal for Preemptive EDD rule is optimal for 1 | 1 | rrj j , prmp, prmp | | LLmaxmax

– If the preemptive solution gives a If the preemptive solution gives a non-preemptive schedule then it is non-preemptive schedule then it is feasiblefeasible

Page 18: IOE/MFG 543

1818

Example 3.2.5Example 3.2.5

Use branch and bound to Use branch and bound to determine the schedule for determine the schedule for 1 | 1 | rrj j | |

LLmax max and compute the optimal and compute the optimal value forvalue forjob jjob j 11 22 33 44

ppjj 44 22 66 55

rrjj 00 11 33 55

ddjj 88 1212 1111 1010