0% found this document useful (0 votes)
53 views

Topics 1 10

This document discusses a course on production scheduling. It provides an introduction and overview of the following key points: - Contact information for the instructor and information about prerequisites, assignments, and computing requirements. - An overview of what scheduling is about, including applied operations research, solution using computers, and application areas like manufacturing. - The scope of the course, including different levels of planning and scheduling and how these functions are now often integrated. - Common scheduling systems like ERP, MRP, and APS and an overview of the scheduling problem as an optimization problem with constraints. - The approach that will be taken, including problem formulation, modeling, solving with algorithms, and conclusions.

Uploaded by

avenasha
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views

Topics 1 10

This document discusses a course on production scheduling. It provides an introduction and overview of the following key points: - Contact information for the instructor and information about prerequisites, assignments, and computing requirements. - An overview of what scheduling is about, including applied operations research, solution using computers, and application areas like manufacturing. - The scope of the course, including different levels of planning and scheduling and how these functions are now often integrated. - Common scheduling systems like ERP, MRP, and APS and an overview of the scheduling problem as an optimization problem with constraints. - The approach that will be taken, including problem formulation, modeling, solving with algorithms, and conclusions.

Uploaded by

avenasha
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 134

IE 514 Production

Scheduling

Introduction

Spring 2002 IE 514 1


Contact Information

 Siggi Olafsson
 3018 Black Engineering
 294-8908
[email protected]
 http://www.public.iastate.edu/~olafsson
 OH: MW 10:30-12:00

Spring 2002 IE 514 2


Administration (Syllabus)

 Text
 Prerequisites
 Assignments
 Homework 35%
 Project 40%
 Final Exam 35%
 Computing

Spring 2002 IE 514 3


What is Scheduling About?

 Applied operations research


 Models
 Algorithms
 Solution using computers
 Implement algorithms
 Draw on common databases
 Integration with other systems

Spring 2002 IE 514 4


Application Areas

 Procurement and production

 Transportation and distribution

 Information processing and


communications

Spring 2002 IE 514 5


Manufacturing Scheduling

 Short product life-cycles


 Quick-response manufacturing
 Manufacture-to-order

 More complex operations must be


scheduled in shorter amount of time with
less room for errors!

Spring 2002 IE 514 6


Scope of Course

 Levels of planning and scheduling


 Long-range planning (several years),
 middle-range planning (1-2 years),
 short-range planning (few months),
 scheduling (few weeks), and
 reactive scheduling (now)
 These functions are now often integrated

Spring 2002 IE 514 7


Scheduling Systems

 Enterprise Resource Planning (ERP)


 Common for larger businesses
 Materials Requirement Planning (MRP)
 Very common for manufacturing companies
 Advanced Planning and Scheduling (APS)
 Most recent trend
 Considered “advanced feature” of ERP

Spring 2002 IE 514 8


Scheduling Problem

 Allocate scarce resources to tasks


 Combinatorial optimization problem

Maximize profit
Subject to constraints

 Mathematical techniques and heuristics


Spring 2002 IE 514 9
Our Approach

Scheduling Problem

Problem Formulation

Model

Solve with Computer Algorithms

Conclusions

Spring 2002 IE 514 10


Scheduling Models

 Project scheduling
 Job shop scheduling
 Flexible assembly systems

 Lot sizing and scheduling


 Interval scheduling, reservation, timetabling
 Workforce scheduling

Spring 2002 IE 514 11


General Solution
Techniques

 Mathematical programming
 Linear, non-linear, and integer programming
 Enumerative methods
 Branch-and-bound
 Beam search
 Local search
 Simulated annealing/genetic algorithms/tabu
search/neural networks.
Spring 2002 IE 514 12
Scheduling System Design
Order Shop floor
master file data collection

 Databases Database Management

 Schedule Automatic Schedule Generator

generation
Performance
Schedule Editor
Evaluation

 User interfaces Graphical Interface

User

Spring 2002 IE 514 13


LEKIN

 On disk with book


 Generic job shop scheduling system
 User friendly windows environment
 C++ object oriented design
 Can add own routines

Spring 2002 IE 514 14


Advanced Topics

 Uncertainty, robustness, and reactive


scheduling

 Multiple objectives

 Internet scheduling

Spring 2002 IE 514 15


Topic 1

Setting up the Scheduling


Problem

Spring 2002 IE 514 16


Modeling

 Three components to any model:


 Decision variables
 This is what we can change to affect the system,
that is, the variables we can decide upon
 Objective function
 E.g, cost to be minimized, quality measure to be
maximized
 Constraints
 Which values the decision variables can be set to

Spring 2002 IE 514 17


Decision “Variables”

 Three basic types of solutions:


 A sequence: a permutation of the jobs
 A schedule: allocation of the jobs in a more
complicated setting of the environment
 A scheduling policy: determines the next
job given the current state of the system

Spring 2002 IE 514 18


Model Characteristics

 Multiple factors:
 Number of machine and resources,
 configuration and layout,
 level of automation, etc.
 Our terminology:
Resource = machine (m)
Entity requiring the resource = job (n)

Spring 2002 IE 514 19


Notation

 Static data:
 Processing time (pij)
 Release date (rj)
 Due date (dj)
 Weight (wj)
 Dynamic data:
 Completion time (Cij)

Spring 2002 IE 514 20


Machine Configuration

 Standard machine configurations:


 Single machine models
 Parallel machine models
 Flow shop models
 Job shop models

 Real world always more complicated.

Spring 2002 IE 514 21


Constraints

 Precedence constraints
 Routing constraints
 Material-handling constraints
 Storage/waiting constraints
 Machine eligibility
 Tooling/resource constraints
 Personnel scheduling constraints
Spring 2002 IE 514 22
Other Characteristics

 Sequence dependent setup


 Preemptions
 preemptive resume
 preemptive repeat
 Make-to-stock versus make-to-order

Spring 2002 IE 514 23


Objectives and
Performance Measures

 Throughput (TP) and makespan (Cmax)


 Due date related objectives
 Work-in-process (WIP), lead time
(response time), finished inventory
 Others

Spring 2002 IE 514 24


Throughput and Makespan

 Throughput
 Defined by bottleneck machines
 Makespan
Cmax  max C1 , C2 ,..., Cn 
Ci  max Ci1 , Ci 2 ,..., Cim  , i  1,..., n
 Minimizing makespan tends to maximize
throughput and balance load

Spring 2002 IE 514 25


Due Date Related
Objectives

 Lateness L j  C j  d j
 Minimize maximum lateness (Lmax)

 Tardiness T j  maxC j  d j ,0


 Minimize the weighted tardiness
n

w T
j 1
j j

Spring 2002 IE 514 26


Due Date Penalties
Lateness Tardiness

Lj Tj

Cj Cj
dj dj

Late or Not In practice

Uj
1
Cj Cj
dj dj

Spring 2002 IE 514 27


WIP and Lead Time
 Work-in-Process (WIP) inventory cost
 Minimizing WIP also minimizes average
lead time (throughput time)
 Minimizing lead time tends to minimize
the average number of jobs in system
 Equivalently, we can minimize sum of the
completion times:
n n

Cj
i 1
 w jC j
j 1
Spring 2002 IE 514 28
Other Costs

 Setup cost

 Personnel cost

 Robustness

 Finished goods inventory cost

Spring 2002 IE 514 29


Topic 2

Solving Scheduling
Problems

Spring 2002 IE 514 30


Classic Scheduling Theory

 Look at a specific machine environment


with a specific objective
 Analyze to prove an optimal policy or to
show that no simple optimal policy exists

 Thousands of problems have been studied


in detail with mathematical proofs!

Spring 2002 IE 514 31


Example: single machine

 Lets say we have


 Single machine (1), where
 the total weighted completion time should be
minimized (wjCj)
 We denote this problem as

1 ||  w j C j

Spring 2002 IE 514 32


Optimal Solution

 Theorem: Weighted Shortest Processing


time first - called the WSPT rule - is
optimal for 1 ||  w j C j

 Note: The SPT rule starts with the job that has
the shortest processing time, moves on the job
with the second shortest processing time, etc.

Spring 2002 IE 514 33


Proof (by contradiction)
 Suppose it is not true and schedule S is optimal
 Then there are two adjacent jobs, say job j
followed by job k such that
wj wk

p j pk
 Do a pairwise interchange to get schedule S ’

j k
t t  p j  pk

k j
t t  p j  pk
Spring 2002 IE 514 34
Proof (continued)
The weighted completion time of the two jobs under S is
(t  p j ) w j  (t  p j  pk ) wk
The weighted completion time of the two jobs under S ‘ is
(t  pk ) wk  (t  p j  pk ) w j
Now:

(t  p j ) w j  (t  p j  pk ) wk  (t  p j ) w j  p j wk  (t  pk ) wk
 (t  p j ) w j  pk w j  (t  pk ) wk
 (t  pk ) wk  (t  pk  p j ) w j
Contradicting that S is optimal.

Spring 2002 IE 514 35


Complexity Theory

 Classic scheduling theory draws heavily on


complexity theory
 The complexity of an algorithm is its
running time in terms of the input
parameters (e.g., number of jobs and
number of machines)
 Big-Oh notation, e.g., O(n2m)

Spring 2002 IE 514 36


Polynomial versus NP-Hard
Time
2
n
O(2 ) O(n )
O(n)

O(log n)

Problem size (n)


Spring 2002 IE 514 37
Scheduling in Practice

 Practical scheduling problems cannot be


solved this easily!
 Need:
 Heuristic algorithms
 Knowledge-based systems
 Integration with other enterprise functions
 However, classic scheduling results are
useful as a building block
Spring 2002 IE 514 38
General Purpose
Scheduling Procedures

 Some scheduling problems are easy


 Simple priority rules
 Complexity: polynomial time
 However, most scheduling problems are
hard
 Complexity: NP-hard, strongly NP-hard
 Finding an optimal solution is infeasible in
practice  heuristic methods
Spring 2002 IE 514 39
Types of Heuristics

 Simple Dispatching Rules


 Composite Dispatching Rules Construction
Methods
 Branch and Bound
 Beam Search
 Simulated Annealing
Improvement
 Tabu Search Methods
 Genetic Algorithms
Spring 2002 IE 514 40
Topic 3

Dispatching Rules

Spring 2002 IE 514 41


Dispatching Rules

 Prioritize all waiting jobs


 job attributes
 machine attributes
 current time
 Whenever a machine becomes free: select
the job with the highest priority
 Static or dynamic

Spring 2002 IE 514 42


Release/Due Date Related

 Earliest release date first (ERD) rule


 variance in throughput times
 Earliest due date first (EDD) rule
 maximum lateness
 Minimum slack first (MS) rule Current
Time

max d j  p j  t ,0
 maximum lateness
Processing
Time
Deadline
Spring 2002 IE 514 43
Processing Time Related

 Longest Processing Time first (LPT) rule


 balance load on parallel machines
 makespan
 Shortest Processing Time first (SPT) rule
 sum of completion times
 WIP
 Weighted Shortest Processing Time first
(WSPT) rule
Spring 2002 IE 514 44
Processing Time Related

 Critical Path (CP) rule


 precedence constraints
 makespan
 Largest Number of Successors (LNS) rule
 precedence constraints
 makespan

Spring 2002 IE 514 45


Other Dispatching Rules
 Service in Random Order (SIRO) rule
 Shortest Setup Time first (SST) rule
 makespan and throughput
 Least Flexible Job first (LFJ) rule
 makespan and throughput
 Shortest Queue at the Next Operation
(SQNO) rule
 machine idleness

Spring 2002 IE 514 46


Discussion

 Very simple to implement


 Optimal for special cases
 Only focus on one objective
 Limited use in practice
 Combine several dispatching rules
Composite Dispatching Rules

Spring 2002 IE 514 47


Example

Single Machine with


Weighted Total Tardiness

Spring 2002 IE 514 48


Setup

 Problem: 1 ||  w jT j
 No efficient algorithm (NP-Hard)
 Branch and bound can only solve very
small problems (<30 jobs)

 Are there any special cases we can solve?

Spring 2002 IE 514 49


Case 1: Tight Deadlines

 Assume dj=0
 Then T j  max0, C j  d j 
 max0, C j   C j
w T  w C
j j j j

 We know that WSPT is optimal for this


problem!
Spring 2002 IE 514 50
Conclusion

 The WSPT is optimal in the extreme case


and should be a good heuristic whenever
due dates are tight

 Now lets look at the opposite

Spring 2002 IE 514 51


Case 2: “Easy” Deadlines

 Theorem: If the deadlines are sufficiently


spread out then the MS rule

jselect  arg maxd j  p j  t ,0


is optimal (proof a bit harder)
 Conclusion: The MS rule should be a good
heuristic whenever deadlines are widely
spread out
Spring 2002 IE 514 52
Composite Rule

 Two good heuristics


 Weighted Shorted Processing Time (WSPT )
 optimal with due dates zero
 Minimum Slack (MS)
 Optimal when due dates are “spread out”
 Any real problem is somewhere in between
 Combine the characteristics of these rules
into one composite dispatching rule
Spring 2002 IE 514 53
Apparent Tardiness Cost
(ATC) Dispatching Rule
 New ranking index
wj  maxd j  p j  t ,0 
I j (t )  exp  
pj  K  p (t ) 
Scaling constant

 When machine becomes free:


 Compute index for all remaining jobs
 Select job with highest value
Spring 2002 IE 514 54
Special Cases (Check)
 If K is very large:
 ATC reduces to WSPT

 If K is very small and no overdue jobs:


 ATC reduces to MS

 If K is very small and overdue jobs:


 ATC reduces to WSPT applied to overdue jobs

Spring 2002 IE 514 55


Choosing K

 Value of K determined empirically


 Related to the due date tightness factor
d
  1
Cmax
and the due date range factor
d max  d min
R
Cmax

Spring 2002 IE 514 56


Choosing K

 Usually 1.5  K  4.5


 Rules of thumb:
 Fix K=2 for single machine or flow shop.
 Fix K=3 for dynamic job shops.
 Adjusted to reduce weighted tardiness cost
in extremely slack or congested job shops
 Statistical analysis/empirical experience

Spring 2002 IE 514 57


Topic 4

Branch-and-Bound
& Beam Search

Spring 2002 IE 514 58


Branch and Bound

 Enumerative method
 Guarantees finding the best schedule
 Basic idea:
 Look at a set of schedules
 Develop a bound on the performance
 Discard (fathom) if bound worse than best
schedule found before

Spring 2002 IE 514 59


Example

Single Machine with


Maximum Lateness
Objective

Spring 2002 IE 514 60


Classic Results

 The EDD rule is optimal for 1 || Lmax


 If jobs have different release dates, which
we denote
1 | rj | Lmax

then the problem is NP-Hard


 What makes it so much more difficult?

Spring 2002 IE 514 61


1 | rj | Lmax
J
obs 1 2 3
p 4 2 5
EDD
j

r
j 0 3 5
d
j 8 1
4 1
0

1 2 3
0 5 10 15

r1 r2 r3 d1 d3 d2

Lmax  max L1 , L2 , L3   max C1  d1 , C2  d 2 , C3  d 3  Can we


 max 4  8,10  14,15  10  max  4,4,5  5 improve?
Spring 2002 IE 514 62
Delay Schedule
Add a delay

1 3 2
0 5 10 15

r1 r2 r3 d1 d3 d2

Lmax  max L1 , L2 , L3   max C1  d1 , C2  d 2 , C3  d 3 


 max 4  8,16  14,10  10  max  4,2,0  3

What makes this problem hard is that


the optimal schedule is not necessarily
a non-delay schedule

Spring 2002 IE 514 63


Final Classic Result

 The preemptive EDD rule is optimal for


the preemptive (prmp) version of the
problem
1 | rj , prmp | Lmax

 Note that in the previous example, the preemptive EDD


rule gives us the optimal schedule

Spring 2002 IE 514 64


Branch and Bound
 The problem

1 | rj | Lmax

cannot be solved using a simple dispatching rule


so we will try to solve it using branch and bound
 To develop a branch and bound procedure:
 Determine how to branch
 Determine how to bound

Spring 2002 IE 514 65


Data

J
obs 1 2 3 4

p
j 4 2 6 5

r
j 0 1 3 5

dj 8 1
2 1
1 1
0

Spring 2002 IE 514 66


Branching

(•,•,•,•)

(1,•,•,•) (2,•,•,•) (3,•,•,•) (4,•,•,•)

Spring 2002 IE 514 67


Branching
(•,•,•,•)

(1,•,•,•) (2,•,•,•) (3,•,•,•) (4,•,•,•)

Discard immediately because


r3  3
r4  5
Spring 2002 IE 514 68
Branching
(•,•,•,•)

(1,•,•,•) (2,•,•,•) (3,•,•,•) (4,•,•,•)

Need to develop lower bounds on


these nodes and do further branching.

Spring 2002 IE 514 69


Bounding (in general)
 Typical way to develop bounds is to relax the original
problem to an easily solvable problem
 Three cases:
 If there is no solution to the relaxed problem there is no
solution to the original problem
 If the optimal solution to the relaxed problem is feasible for
the original problem then it is also optimal for the original
problem
 If the optimal solution to the relaxed problem is not feasible
for the original problem it provides a bound on its
performance

Spring 2002 IE 514 70


Relaxing the Problem
 The problem
1 | rj , prmp | Lmax
is a relaxation to the problem 1 | r j | Lmax

 Not allowing preemption is a constraint in the


original problem but not the relaxed problem
 We know how to solve the relaxed problem
(preemptive EDD rule)

Spring 2002 IE 514 71


Bounding

 Preemptive EDD rule optimal for the


preemptive version of the problem
 Thus, solution obtained is a lower bound
on the maximum delay
 If preemptive EDD results in a non-
preemptive schedule all nodes with higher
lower bounds can be discarded.

Spring 2002 IE 514 72


Lower Bounds

 Start with (1,•,•,•):


r4  5
 Job with EDD is Job 4 but
 Second earliest due date is for Job 3

Job 1
Lmax  5
Job 2
Job 3
Job 4

0 10 20

Spring 2002 IE 514 73


Branching
(•,•,•,•)
Lmax  5

(1,•,•,•) (2,•,•,•) (3,•,•,•) (4,•,•,•)

(1,2,•,•) (1,3,•,•) Lmax  7

Lmax  6
(1,3,4,2) Lmax  5

Spring 2002 IE 514 74


Beam Search
 Branch and Bound:
 Considers every node
 Guarantees optimum
 Usually too slow
 Beam search
 Considers only most promising nodes
 (beam width)
 Does not guarantee convergence
 Much faster

Spring 2002 IE 514 75


Single Machine Example
(Total Weighted Tardiness)

J
obs 1 2 3 4

pj 1
0 1
0 1
3 4

dj 4 2 1 1
2

w
j 1
4 1
2 1 1
2

Spring 2002 IE 514 76


Branching
(Beam width = 2)
(•,•,•,•)

(1,•,•,•) (2,•,•,•) (3,•,•,•) (4,•,•,•)

ATC Rule

(1,4,2,3) (2,4,1,3) (3,4,1,2) (4,1,2,3)

408 436 814 440

Spring 2002 IE 514 77


Beam Search
(•,•,•,•)

(1,•,•,•) (2,•,•,•) (3,•,•,•) (4,•,•,•)

(1,2,•,•) (1,3,•,•) (1,4,•,•) (2,1,•,•) (2,3,•,•) (2,4,•,•)

(1,4,2,3) (1,4,3,2) (2,4,1,3) (2,4,3,1)

Spring 2002 IE 514 78


Discussion

 Implementation tradeoff:
 Careful evaluation of nodes (accuracy)
 Crude evaluation of nodes (speed)
 Two-stage procedure
 Filtering
 crude evaluation
 filter width > beam width
 Careful evaluation of remaining nodes

Spring 2002 IE 514 79


Topic 5

Random Search

Spring 2002 IE 514 80


Construction versus
Improvement Heuristics

 Construction Heuristics
 Start without a schedule
 Add one job at a time
 Dispatching rules and beam search
 Improvement Heuristics
 Start with a schedule
 Try to find a better ‘similar’ schedule
 Can be combined
Spring 2002 IE 514 81
Local Search

0. Start with a schedule s0 and set k = 0.


1. Select a candidate schedule
s  N  sk 
from the neighborhood of sk
2. If acceptance criterion is met, let
sk 1  s.
Otherwise let sk 1  sk .
3. Let k = k+1 and go back to Step 1.
Spring 2002 IE 514 82
Defining a Local Search
Procedure

 Determine how to represent a schedule.


 Define a neighborhood structure.
 Determine a candidate selection procedure.
 Determine an acceptance/rejection
criterion.

Spring 2002 IE 514 83


Neighborhood Structure

 Single machine
 A pairwise interchange of adjacent jobs
(n-1 jobs in a neighborhood)
 Inserting an arbitrary job in an arbitrary
position
(  n(n-1) jobs in a neighborhood)
 Allow more than one interchange

Spring 2002 IE 514 84


Neighborhood Structure

 Job shops with makespan objective


 Neighborhood based on critical paths
 Set of operations start at t=0 and end at t=Cmax

Machine 1

Machine 2

Machine 3

Machine 4

Spring 2002 IE 514 85


Neighborhood Structure

 The critical path(s) define the


neighborhood
 Interchange jobs on a critical path
 Too few better schedules in the
neighborhood
 Too simple to be useful

Spring 2002 IE 514 86


One-Step Look-Back
Interchange
Jobs on critical path
Machine h

Machine i

Interchange jobs
Machine h on critical path

Machine i

One-step look-back
Machine h interchange

Machine i

Spring 2002 IE 514 87


Neighborhood Search

 Find a candidate schedule from the


neighborhood:
 Random
 Appear most promising
(most improvement in objective)

Spring 2002 IE 514 88


Acceptance/Rejection

 Major difference between most methods


 Always accept a better schedule?
 Sometimes accept an inferior schedule?
 Two popular methods:
 Simulated annealing
 Tabu search
 Same except the acceptance criterion!

Spring 2002 IE 514 89


Topic 6

Simulated Annealing

Spring 2002 IE 514 90


Simulated Annealing (SA)

 Notation
 S0 is the best schedule found so far
 Sk is the current schedule
 G(Sk) it the performance of a schedule
 Note that
Aspiration Criterion
G(Sk )  G (S0 )

Spring 2002 IE 514 91


Acceptance Criterion

 Let Sc be the candidate schedule


 If G(Sc) < G(Sk) accept Sc and let
S k 1  S c
 If G(Sc)  G(Sk) move to Sc with
probability
Always  0 G ( S k ) G ( S c )
k
P ( S k 1 , S c )  e

Temperature > 0
Spring 2002 IE 514 92
Cooling Schedule

 The temperature should satisfy


1   2   3  ...  0
 Normally we let
k  0
but we sometimes stop when some
predetermined final temperature is reached
 If temperature is decreased slowly
convergence is guaranteed

Spring 2002 IE 514 93


SA Algorithm
Step 1:
Set k = 1 and select the initial temperature 1.
Select an initial schedule S1 and set S0 = S1.
Step 2:
Select a candidate schedule Sc from N(Sk).
If G(S0) < G(Sc) < G(Sk), set Sk+1 = Sc and go to Step 3.
If G(Sc) < G(S0), set S0 = Sk+1 = Sc and go to Step 3.
If G(Sc) < G(S0), generate Uk Uniform(0,1);
If Uk  P(Sk, Sc), set Sk+1 = Sc; otherwise set Sk+1 = Sk; go to Step 3.
Step 3:
Select k+1  k.
Let k=k+1. If k=N STOP; otherwise go to Step 2.

Spring 2002 IE 514 94


Discussion

 SA has been applied successfully to many


industry problems
 Allows us to escape local optima
 Performance depends on
 Construction of neighborhood
 Cooling schedule

Spring 2002 IE 514 95


Topic 7

Tabu Search

Spring 2002 IE 514 96


Tabu Search

 Similar to SA but uses a deterministic


acceptance/rejection criterion
 Maintain a tabu list of schedule changes
 A move made entered at top of tabu list
 Fixed length (5-9)
 Neighbors restricted to schedules not
requiring a tabu move

Spring 2002 IE 514 97


Tabu List

 Rational
 Avoid returning to a local optimum
 Disadvantage
 A tabu move could lead to a better schedule
 Length of list
 Too short  cycling (“stuck”)
 Too long  search too constrained

Spring 2002 IE 514 98


Tabu Search Algorithm
Step 1:
Set k = 1. Select an initial schedule S1 and set S0 = S1.
Step 2:
Select a candidate schedule Sc from N(Sk).
If Sk  Sc on tabu list set Sk+1 = Sk and go to Step 3.
Enter Sc  Sk on tabu list.
Push all the other entries down (and delete the last one).
If G(Sc) < G(S0), set S0 = Sc.
Go to Step 3.
Step 3:
Select k+1  k.
Let k=k+1. If k=N STOP; otherwise go to Step 2.

Spring 2002 IE 514 99


Single Machine Total
Weighted Tardiness Example

J
obs 1 2 3 4

pj 1
0 1
0 1
3 4

dj 4 2 1 1
2

w
j 1
4 1
2 1 1
2

Spring 2002 IE 514 100


Initialization

 Tabu list empty L={}


 Initial schedule S1 = (2,1,4,3)
20 - 4 = 16

10 - 2 = 8
Deadlines
37 - 1 = 36
24 - 12 = 12

0 10 20 30 40

w T j j  14 16  12  8  1 36  12 12  500


Spring 2002 IE 514 101
Neighborhood

 Define the neighborhood as all schedules


obtain by adjacent pairwise interchanges
 The neighbors of S1 = (2,1,4,3) are
(1,2,4,3)
Select the best
(2,4,1,3) non-tabu schedule

(2,1,3,4)
 Objective values are: 480, 436, 652

Spring 2002 IE 514 102


Second Iteration

 Let S0 =S2 = (2,4,1,3). G(S0)=436.


 Let L = {(1,4)}
 New neighborhood

Sequence (4,2,1,3) (2,1,4,3) (2,4,3,1)

wT j 460 500 608

Spring 2002 IE 514 103


Third Iteration
 Let S3 = (4,2,1,3), S0 = (2,4,1,3).
 Let L = {(2,4),(1,4)}
 New neighborhood
Sequence (2,4,1,3) (4,1,2,3) (4,2,3,1)

wT j 436 440 632

Tabu!
Spring 2002 IE 514 104
Fourth Iteration
 Let S4 = (4,1,2,3), S0 = (2,4,1,3).
 Let L = {(1,2),(2,4)}
 New neighborhood
Sequence (1,4,2,3) (4,2,1,3) (4,1,3,2)

wT j 402 460 586

Spring 2002 IE 514 105


Fifth Iteration
 Let S5 = (1,4,2,3), S0 = (1,4,2,3).
 Let L = {(1,4),(1,2)}
 This turns out to be the optimal schedule
 Tabu search still continues
 Notes:
 Optimal schedule only found via tabu list
 We never know if we have found the optimum!

Spring 2002 IE 514 106


Topic 8

Genetic Algorithm

Spring 2002 IE 514 107


Genetic Algorithms

 Schedules are individuals that form


populations
 Each individual has associated fitness
 Fit individuals reproduce and have
children in the next generation
 Very fit individuals survive into the next
generation
 Some individuals mutate
Spring 2002 IE 514 108
Total Weighted Tardiness
Single Machine Example

Initial population
 First Generation selected randomly

Individual (2,1,3,4) (3,4,1,2) (4,1,3,2)


(sequence)
Fitness
 wT 
 j j
652 814 586

Spring 2002 IE 514 109


Mutation Operator
Fittest
Individual

Individual (2,1,3,4) (3,4,1,2) (4,1,3,2)

Fitness 652 814 586

Reproduction
via mutation

(4,3,1,2)

Spring 2002 IE 514 110


Cross-Over Operator
Fittest
Individuals

Individual (2,1,3,4) (4,3,1,2) (4,1,3,2)

Fitness 652 758 586

(4,1,3,2) (2,1,3,2)
Reproduction Infeasible!
via cross-over
(2,1,3,4) (4,1,3,4)

Spring 2002 IE 514 111


Representing Schedules

 When using GA we often represent


individuals using binary strings

(0 1 1 0 1 0 1 0 1 0 1 0 0 )
(1 0 0 1 1 0 1 0 1 0 1 1 1 )

(0 1 1 0 1 0 1 0 1 0 1 1 1 )

Spring 2002 IE 514 112


Discussion

 Genetic algorithms have been used very


successfully
 Advantages:
 Very generic
 Easily programmed
 Disadvantages:
 A method that exploits special structure is
usually faster (if it exists)

Spring 2002 IE 514 113


Topic 9

Nested Partitions Method

Spring 2002 IE 514 114


The Nested Partitions Method
(Shameless self-promotion!)

 Partitioning of all schedules


 Similar to branch-and-bound & beam search
 Random sampling & local search used to
find which node is most promising
 Similar to beam search
 Retains only one node (beam width = 1)
 Allows for possible backtracking

Spring 2002 IE 514 115


Single Machine Total
Weighted Tardiness Example

J
obs 1 2 3 4

pj 1
0 1
0 1
3 4

dj 4 2 1 1
2

w
j 1
4 1
2 1 1
2

Spring 2002 IE 514 116


First Iteration
(•,•,•,•) Most promising region

(1,•,•,•) (2,•,•,•) (3,•,•,•) (4,•,•,•)

Random Samples (uniform sampling, ATC rule, genetic algorithm)

(1,4,2,3) 402
Promising Index
(1,2,4,3) 480 I(1,•,•,•) = 402
(1,4,3,2) 554

Spring 2002 IE 514 117


Notation

 We let
(k) be the most promising region in the k-th iteration
j(k) be the subregions, j=1,2,…,M
M+1(k) be the surrounding region
 denote all possible regions (fixed set)
0 all regions that contain a single schedule
I() be the promising index of 

Spring 2002 IE 514 118


Second Iteration
Most promising region (2) s(2))
(•,•,•,•)

4(2)
(1,•,•,•) {(2,•,•,•),(3,•,•,•), (4,•,•,•)}

1(2) 2(2) Random Samples


3(2)
(1,2,•,•) (1,3,•,•) (1,4,•,•) (4,2,1,3) 460
(2,4,1,3) 436
(4,1,3,2) 586
Best Promising Index
I(4(2)) = 436

Spring 2002 IE 514 119


Third Iteration
(•,•,•,•)

s(3)) 3(3)

(1,•,•,•) {(1,2,•,•), (1,4,•,•),(2,•,•,•),(3,•,•,•), (4,•,•,•)}

Random Samples
(3)
(1,3,•,•) (4,2,3,1) 632
(2,4,1,3) 436
1(3) 2(3) (1,4,2,3) 402
(1,3,2,4) (1,3,4,2) I(3(3)) = 402

Best Promising Index


Spring 2002 IE 514 120
Fourth Iteration
s(4))
(•,•,•,•)

(4) 4(4)
(1,•,•,•) {(2,•,•,•),(3,•,•,•), (4,•,•,•)}

1(4) 2(4)
3(4)
(1,2,•,•) (1,3,•,•) (1,4,•,•)

Backtracking!

Spring 2002 IE 514 121


Finding the Optimal Schedule

 The sequence
 (k ) 
k 1
is a Markov chain
 Eventually the singleton region opt
containing the best schedule is visited
 Absorbing state (never leave opt)
 Finite state space
 visited after finitely many iterations.
Spring 2002 IE 514 122
Discussion
 Finds best schedule in finite iterations
 Only branch-and-bound can also guarantee
 If we can calculate/estimate/guarantee the
probability of moving in right direction:
 Expected number of iterations
 Probability of having found optimal schedule
 Stopping rules that guarantee performance
(unique)
 Works best if incorporates dispatching rules
and local search (genetic algorithms, etc)

Spring 2002 IE 514 123


Topic 10

Mathematical Programming

Spring 2002 IE 514 124


Review of Mathematical
Programming

 Many scheduling problems can be


formulated as mathematical programs:
 Linear Programming (IE 534)
 Nonlinear Programming (IE 631)
 Integer Programming (IE 632)
 See Appendix A in book.

Spring 2002 IE 514 125


Linear Programs

Minimize c1 x1  c2 x2  ...  cn xn
subject to

a11 x1  a12 x2  ...  a1n xn  b1


a21 x1  a22 x2  ...  a2 n xn  b1

am1 x1  am 2 x2  ...  amn xn  b1
xj  0 for j  1,..., n
Spring 2002 IE 514 126
Solving LPs

 LPs can be solved efficiently


 Simplex method (1950s)
 Interior point methods (1970s)
 Polynomial time
 Has been used in practice to solve huge
problems
 IE 534

Spring 2002 IE 514 127


Nonlinear Programs

Minimize
f ( x1 , x2 ,..., xn )
subject to
g1 ( x1, x2 ,..., xn )  0
g 2 ( x1, x2 ,..., xn )  0

g m ( x1, x2 ,..., xn )  0
Spring 2002 IE 514 128
Solving Nonlinear
Programs

 Optimality conditions
 Karush-Kuhn-Tucker
 Convex objective, convex constraints
 Solution methods
 Gradient methods (steepest descent,
Newton’s method)
 Penalty and barrier function methods
 Lagrangian relaxation

Spring 2002 IE 514 129


Integer Programming

 LP where all variables must be integer


 Mixed-integer programming (MIP)
 Much more difficult than LP
 Most useful for scheduling

Spring 2002 IE 514 130


Example: Single Machine

 One machine and n jobs


 Minimize
 w jC j
n
j 1

 Define the decision variables

1 if job j starts at time t


x jt  
0 otherwise.

Spring 2002 IE 514 131


IP Formulation
n C max 1
Minimize
  w (t  p ) x
j 1 t 0
j j jt

subject to C max 1

x t 0
jt  1 j
n t 1

 x js
j 1 s  max{t  p j , 0}
 1 t

x jt   0,1 j , t

Spring 2002 IE 514 132


Solving IPs

 Solution Methods
 Cutting plane methods
 Linear programming relaxation
 Additional constraints to ensure integers
 Branch-and-bound methods
 Branch on the decision variables
 Linear programming relaxation provides bounds
 Generally difficult

Spring 2002 IE 514 133


Disjunctive Programming

 Conjuctive
 All constraints must be satisfied
 Disjunctive
 At least one of the constraints must be
satisfied
 Zero-one integer programs
 Use for job-shop scheduling

Spring 2002 IE 514 134

You might also like