Contents

1 Operations Research and Linear Programming Models
1.1 The linear programming model
1.2 Formulating models
1.3 Linearising non-linear features
1.4 Linear programming in software
1.5 Practice Problems
2 The Geometry of Linear Programming
2.1 Convex sets and polyhedra
2.2 Basic feasible solutions
2.3 The graphical method
2.4 Geometry in software
2.5 Practice Problems
3 The Simplex Method
3.1 Reduced costs and the optimality test
3.2 The tableau
3.3 Starting the method: artificial variables
3.4 Degeneracy, cycling and Bland’s rule
3.5 How fast is the simplex method?
3.6 The simplex method in software
3.7 Practice Problems
4 The Revised Simplex Method and Bounded Variables
4.1 The revised simplex method
4.2 Bounded variables
4.3 Numerical practice
4.4 Revised methods in software
4.5 Practice Problems
5 Duality
5.1 The dual problem
5.2 Weak and strong duality
5.3 Complementary slackness
5.4 Farkas’ lemma
5.5 The dual simplex method
5.6 Duality in software
5.7 Practice Problems
6 Sensitivity Analysis and Parametric Programming
6.1 Changes in the right-hand side
6.2 Changes in the objective
6.3 New variables and new constraints
6.4 Parametric programming
6.5 Sensitivity in software
6.6 Practice Problems
7 Transportation and Assignment Problems
7.1 The transportation problem
7.2 Finding a first solution
7.3 The MODI method
7.4 Total unimodularity
7.5 The assignment problem
7.6 Transportation and assignment in software
7.7 Practice Problems
8 Network Flows and Project Scheduling
8.1 Networks and minimum-cost flows
8.2 Shortest paths
8.3 Maximum flows and minimum cuts
8.4 Project scheduling: CPM
8.5 Uncertain durations: PERT
8.6 Networks in software
8.7 Practice Problems
9 Integer Programming
9.1 Modelling with integer variables
9.2 The LP relaxation
9.3 Branch and bound
9.4 Cutting planes
9.5 Goal programming
9.6 Integer programming in software
9.7 Practice Problems
10 Non-linear Programming
10.1 Convexity
10.2 The Karush–Kuhn–Tucker conditions
10.3 Quadratic programming and portfolios
10.4 Algorithms
10.5 Non-linear programming in software
10.6 Practice Problems
11 Dynamic Programming and Sequencing
11.1 The principle of optimality
11.2 The knapsack problem
11.3 Allocating a resource
11.4 Sequencing jobs
11.5 Dynamic programming in software
11.6 Practice Problems
12 Decision Theory and Games
12.1 Decisions under uncertainty
12.2 Decisions under risk
12.3 Two-person zero-sum games
12.4 Decisions and games in software
12.5 Practice Problems
13 Inventory Models
13.1 The economic order quantity
13.2 Variations
13.3 Random demand: the newsvendor problem
13.4 Safety stock and \((s, S)\) policies
13.5 Inventory in software
13.6 Practice Problems
14 Queueing Theory
14.1 Notation and Little’s law
14.2 Birth–death queues
14.3 General service times
14.4 Designing a service system
14.5 Queues in software
14.6 Practice Problems
15 Markov Chains, Decision Processes and Replacement
15.1 Markov chains
15.2 Absorbing chains
15.3 Replacement of deteriorating equipment
15.4 Markov decision processes
15.5 Markov models in software
15.6 Practice Problems
16 Simulation and Review
16.1 The Monte Carlo method
16.2 Random numbers and random variates
16.3 Discrete-event simulation
16.4 Variance reduction
16.5 Simulation in software
16.6 Review of the course
16.7 Practice Problems
References