Download presentation
Presentation is loading. Please wait.
Published byJudith Dalton Modified over 9 years ago
1
Operational Research & ManagementOperations Scheduling Project Scheduling 1.Project Planning (revisited) 2.Resource Constrained Project Scheduling 3.Parallel Machine Scheduling
2
Operational Research & ManagementOperations Scheduling Topic 1 Project Planning (revisited)
3
Operational Research & ManagementOperations Scheduling 3 node: fase in project (end of 1 or more tasks) every task := arc (dummies for precedence) Project Planning: Jobs on Arcs A B D C H J G F E dummy j precduration p j A:-3 B:-2 C:A4 D:A, B3 E:A2 F:E5 G:E6 H:C, F2 J:D, G4 Finish:A to J
4
Operational Research & ManagementOperations Scheduling 4 Critical Path Method (CPM) ES 1 = 0 ES j = max i { p i + ES i | i P(j)} 1 2 3 4 6 5 7 A 3 B 2 C 4 H 2 J 4 G 6 F 5 E 2 dummy D 3 0 3 3 10 5 11 15 11 13 5 3 0 8 j prec A:- B:- C:A D:A, B E:A F:E G:E H:C, F J:D, G LF n = ES n LF i = min j { LF j - p j | j S i }
5
Operational Research & ManagementOperations Scheduling 5 Alternative Network: Jobs on Nodes A 3 B 2 C 4 E 2F 5 J 4D 3 H 2 G 6 A 3 B 2 C 4 E 2F 5 J 4D 3 H 2 G 6 3 3 3 5 5? 11 0 0 = max{0+2,0+3} j =n+1j = 0 150 Advantages - no dummy-jobs needed to enforce precedence - length of node may represent duration or arc-length j prec A:- B:- C:A D:A, B E:A F:E G:E H:C, F J:D, G
6
Operational Research & ManagementOperations Scheduling 6 Jobs on a time axis A 3 B 2 C 4 E 2 F 5 J 4 D 3 H 2 G 6 0351115 tt jobs j prec A:- B:- C:A D:A, B E:A F:E G:E H:C, F J:D, G
7
Operational Research & ManagementOperations Scheduling 7 Project Planning with crashing Heuristic 0 15 6 8 n+1 Graph of all Critical Path(s) cut set minimal cut set 4 6 4 5 6
8
Operational Research & ManagementOperations Scheduling Topic 2 Resource Constrained Project Scheduling Problem (RCPSP)
9
Operational Research & ManagementOperations Scheduling 9 Project Planning as Scheduling Activities within project are jobs Criterium: makespan onder volgorde- (en resource-restricties?) P | prec (, r jk, R k ) | C max CPM-solution assumes: always enough resources RCSP notation/assumptions: Job j uses r j k units of resource k, during p j periods Renewable resources: At any time one has R k of resource k available Determine all finish times F j (=genoeg om hele schedule weer te geven)
10
Operational Research & ManagementOperations Scheduling 10 With resource requirements r j on jobs j 9A3 8B2 7C4 3E2 2F5 3J4 7D3 8H2 3G6 0351115 tt j prec A:- B:- C:A D:A, B E:A F:E G:E H:C, F J:D, G r j j p j Example: job A requires 9 workers for 3 days, etc. With R=16 workers available Is C max =15 days still possible?
11
Operational Research & ManagementOperations Scheduling 11 With resource requirements r j on jobs j 9A3 3E2 2F5 3J4 7D3 8H2 3G6 0351115 tt j P(j) A:{ } B:{ } C:{A} D:{A, B} E:{A} F:{E} G:{E} H:{C, F} J:{D, G} 8B2 7C4 r j j p j Feasible, even with 12 workers
12
Operational Research & ManagementOperations Scheduling 12 CPM on (resource-relaxed) RSCP Generates “earliest” start- ES j and “latest” LF j finish times The CPM-time is lower bound on RSCP-time: LF n+1 C max Critical path jobs must start at ES j to accomplish C max = LF n+1 Other jobs have “slack” – Their start time is NOT fixed by CPM – Shift non-critical j in [ES j, LF j ] smoothing the use of resources: after resource loading, balancing resource requirements – If capacity R k is still exceeded, then lengthen makespan (let F j exceed LF j for some j ). Later, we discuss heuristic methods for RCPSP
13
Operational Research & ManagementOperations Scheduling 13 Resource loading and leveling B 7 A 10 D 13 19 C C D E F E D loading: jobs start at ES j leveling: shift jobs in time
14
Operational Research & ManagementOperations Scheduling 14 Conceptual Model Notation – Decision variable: F j (finish time) for j J – P(j) = set of predecessors of job j – A(t) set of active jobs j in period t Model Min F n+1 s.t.F h F j - p j j J, h P(j) F j 0 j J j A(t) r jk R k resources k, t A(t) = { j | F j – p j < t F j } t
15
Operational Research & ManagementOperations Scheduling 15 To achieve an ILP formulation: How can we linearize A(t)={ j | j active at t } and F j ? Change to discrete time-horizon [0,H], periods t = 1,2,..H For j J: F j {1, …, H} ( Choosing H large enough) Use extra binary variables – X jt = 1 if task j ends in period t; – A jt = 1 if task j is active in period t; Making an ILP Model for RCPSP E.g. F j = 4 en p j = 2 X j4 = 1 A j3 = 1 A j4 = 1 4 3 210
16
Operational Research & ManagementOperations Scheduling 16 Resulting ILP model for RCPSP Min s.t. (1) j J, h P(j) Precedence restrictions (2) j J (3) j J Determine one last period (4) j J, t = 1, …, H Determining active periods of tasks (5) t = 1, …, H, k K Consumption of scarce resources
17
Operational Research & ManagementOperations Scheduling 17 Remarks Aiding variables F j en A jt can be eliminated: see book Exact ILP methods useful only for benchmarking other methods on small problem sizes RCPSP is generalization of job shop problem
18
Operational Research & ManagementOperations Scheduling 18 Heuristic methods for RCPSP Two Schedule Generation Schemes can construct a schedule – Serial Method (task oriëntated): fixes in each of n iterations one task at earliest feasible starting time – Parallel Method (time oriëntated): at next finish time of active task start one or more tasks Example 0000 2A34B23C1 3D44E22F4 0000 0/133/155/16 4/120/106/16 r j j p j 0000 2A34B23C1 3D44E22F4 0000 0/133/155/16 4/120/106/16 ES j / LS j 8/16
19
Operational Research & ManagementOperations Scheduling 19 Parallel SGS (informal) At most n stages Each stage g <= n represents: 1. Schedule time t g (=next finish time of scheduled job) 2. A partial schedule, consisting of four disjoint sets of jobs: – Completed, scheduled jobs at time t g – Active jobs: scheduled jobs, not yet completed at time t g – Decidable jobs: unscheduled, schedulable jobs (that can be chosen to start at time t n ) – remaining set: unscheduled jobs that cannot start at time t n
20
Operational Research & ManagementOperations Scheduling 20 Parallel SGS (on example) t g finishedR(t g )schedulable D g j select R(t g ) F j 0 4{A, D}3D4 14 (3D) {}- (* not A,E ; both require > 1 *) 4 3D4{2A3, 4E2}4E2 06 (4E) 64E4{2A3, 2F4}2A3 29 (2A) {F}2F4 010 (2F) 92A2{ }( {B})- (* 2 short for B *) 102F4{B}4B2 012 (4B) 124B4{C}3C1 113
21
Operational Research & ManagementOperations Scheduling 21 Parallel SGS (formal) Notation (sets in bold) – C g = activities: scheduled and finished; C 0 = {0}; – A g = activities: scheduled and still active; A 0 = {}; – D g = activities: schedulable according to prec.- AND cap. restrictions – R k (t) = remaining capacity of resource k at time t R k (0) = R k Algorithm While some jobs C g A g do (* i.e., unscheduled jobs *) – g = g+1; – t g = min j A(g) {F j }, j g =arg (* next finish time active task *) – Update C g, A g, R k (t g ), D g (* for j g scheduled and finished *) – While D g do (* also R k (t g ) sufficient *) Take j D g, set F j = t g + p j en update A g, R k (t g ), D g
22
Operational Research & ManagementOperations Scheduling 22 Serial SGS (informal) Each stage selects a job n stages set of jobs already selected and planned: scheduled jobs (S ) decision set (D ): jobs with all predecessors in S remaining set of jobs: these will first enter D and then S Procedure 1. Start with scheduled set S=empty; j=0 2. Add j to S; Update schedulable set D ( := {j | P(j) S} ); 3. Select job j from decision set D (with highest priority), and (using {t/R(t) : finish times t } ) set j’s start/finish time as early as possible; 4. If |S|<n then go to step 2 (otherwise be happy with an 'active schedule')
23
Operational Research & ManagementOperations Scheduling 23 Serial SGS (on example) step { t / R(t) | t in F g }D g r j j p j S j F j updates t / R(t) 0. {0/4} {A, D}3 D 4 04R(0)=1, R(4)=4 (e.g. as priority rule: D has lower slack 8=10-(0+2)) 1. {0/1,4/4} {A, E}4 E 2 4 6R(4)=2, R(6)=4 (idem, E has lower slack) 2. {0/1,4/2,6/4}{A, F}2 A 3 69R(6)=2, R(9)=4 (idem) 4. {0/1,4/2,6/2,9/4} {B, F}4 F 2 610R(6)=0, R(9)=2, R(10)=4 (idem) 5. {0/1,4/2,6/0,9/2,10/4} {B}4 B 2 1012R(10)=0, R(12)=4 6. {.. 10/0, 12/4} {C}3 C 1 1213R(12)=1 S j =min {t F g | t ES j and k, t’ [t, t+p j ) F g : R k (t’) r j }
24
Operational Research & ManagementOperations Scheduling 24 Serial SGS (formal) Notations (sets in bold) – S g = activities already scheduled (in steps <=g-1)S 0 = { 0 (dummy)}; – D g = activities (precedence-)schedulable (i.e, predecessors in S g ) – F g = { finishtimes of jobs j S g } F 0 = {0}; F 0 = 0; – R k (t) = remaining capacity of resource k at time t Repeat n times (i.e., “for g := 0 to n do”) – Determine : F g, R k (t) voor t F g (*InitiallyF 0 = {0}, R k (0)=full resource k *) – Determine D g and take j D g (* D g set of decidable jobs *) // schedule job j : – Determine ES j = max { F h | h P(j) } (* respecting precedence *) – Determine F j = p j + min { t [ES j, LS j ] F g | R k (t) is feasible for j } – Update R k (t)
25
Operational Research & ManagementOperations Scheduling 25 Comments on Serial SGS Constructs a feasible schedule When resources are ample: schedule is optimal Leads to schedule in class of ‘active schedules’, – I.e., no operation can be earlier without others finishing later – Class of ‘active schedules’ contains an optimal schedule One can specify selection in “Take j in D g ” by giving: – priority rule(s) – an a priori list // and this explais the name ‘list scheduling’
26
Operational Research & ManagementOperations Scheduling 26 Comments on Parallel Method Algorithm (informal) 1.Start with finish time of active job 0 (scheduled with finish time 0) 2.In step g: t g = earliest time (that unscheduled jobs may start.) and D g = collection of jobs that may start at time t g Normally, when D g empty: t g = first finish time of active job j 3.Select the job from D with the highest priority, let it start at time t g 4. If jobs are still unscheduled then goto step 2 else stop
27
Operational Research & ManagementOperations Scheduling 27 Comments on Parallel SGS If ample resources then schedule is optimal Schedule will be a non-delay schedule: – Exercise: why is that so? – Class of ‘Non-Delay schedules’ contains not always an optimal schedule For serial en parallel: – Single pass: 1 SGS combined with one Priority Rule – Multi pass 1 SGS with all PR’s Forward-backward scheduling Sampling method: “random”, “biased” or “regret based biased” Metaheuristics
28
Operational Research & ManagementOperations Scheduling Topic 3 Parallel Machine Scheduling Problems
29
Operational Research & ManagementOperations Scheduling 29 Parallel Machine Models Lets say we have – Multiple machines (m), where – the makespan should be minimized (C max ) We denote this problem as Problem already NP-hard for m = 2 (partitioning problem) LPT-rule good heuristic
30
Operational Research & ManagementOperations Scheduling 30 Worst case behaviour LPT Maximal deviation from optimal value Example: four parallel machines, nine jobs C max (opt)=12but C max (LPT)=15
31
Operational Research & ManagementOperations Scheduling 31 More makespan problems easy NP-hard easy Least Flexible Job first is optimal if M j is nested
32
Operational Research & ManagementOperations Scheduling 32 Allowing preemptions Lets say we have – Multiple machines (m) – preemption is allowed at any point in time – and makespan is to be minimized (C max ) We denote this problem as LP model gives C max but not a schedule – only total time spent on machine
33
Operational Research & ManagementOperations Scheduling 33 Heuristic solution Longest Remaining Processing Time First (LRPT-rule) – Academic solution – Not practical LRPT-rule optimal for in discrete time Example: two parallel machines, three jobs with p = (8, 7, 6)
34
Operational Research & ManagementOperations Scheduling 34 One final model Lets say we have – Multiple machines (m), where – the total completion time should be minimized ( C j ) We denote this problem as SPT-rule gives optimal schedule For the weighted case: WSPT does not give optimal schedule
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.