Uploaded by K.enidvalle

operation-research-aplications-and-algorithms

advertisement
Operations
Research
A P P L I C AT I O N S
AN D ALGOR ITH MS
D U X B U R Y T I T L E S O F R E L AT E D I N T E R E S T
Albright, Winston & Zappe, Data Analysis and Decision Making
Albright, VBA for Modelers: Developing Decision Support Systems with Microsoft Excel
Berger & Maurer, Experimental Design
Berk & Carey, Data Analysis with Microsoft Excel
Clemen & Reilly, Making Hard Decisions with DecisionTools
Devore, Probability & Statistics for Engineering and the Sciences
Fourer, Gay & Kernighan, AMPL: A Modeling Language for Mathematical Programming
Hayter, Probability and Statistics for Engineers and Scientists
Hoerl & Snee, Statistical Thinking: Improving Business Performance
Kao, Introduction to Stochastic Processes
Kenett & Zacks, Modern Industrial Statistics: Design of Quality and Reliability
Kirkwood, Strategic Decision Making: Multiobjective Decision Analysis with Spreadsheets
Lapin & Whisler, Quantitative Decision Making with Spreadsheet Applications
Lattin, Carroll & Green, Analyzing Multivariate Data
Lawson & Erjavec, Engineering and Industrial Statistics
Middleton, Data Analysis Using Microsoft Excel
Minh, Applied Probability Models
Neuwirth & Arganbright, Mathematical Modeling with Microsoft Excel
Ramsey, The Elements of Statistics with Applications to Economics
SAS Institute Inc., JMP-IN: Statistical Discovery Software
Savage, Decision Making with Insight
Schrage, Optimization Modeling Using LINDO
Seila, Ceric & Tadikamalla, Applied Simulation Modeling
Shapiro, Modeling the Supply Chain
Tan, Finite Mathematics for the Managerial, Life, and Social Sciences
Taylor, Excel Essentials: Using Microsoft Excel for Data Analysis and Decision Making
Vardeman & Jobe, Basic Engineering Data Collection and Analysis
Vining, Statistical Methods for Engineers
Waner & Costenoble, Finite Mathematics
Winston, Introduction to Probability Models
Winston, Simulation Modeling Using @Risk
Winston & Albright, Practical Management Science
Winston & Venkataramanan, Introduction to Mathematical Programming
To order copies contact your local bookstore or call 1-800-354-9706.
For more information go to: www.duxbury.com
Operations
Research
A P P L I C AT I O N S
AN D ALGOR ITH MS
FOURTH EDITION
Wayne L. Winston
INDIANA UNIVERSITY
WITH CASES BY
Jeffrey B. Goldberg
UNIVERSITY OF ARIZONA
Australia
Spain
■
■
Canada
■
Mexico
United Kingdom
■
■
Singapore
United States
Publisher: Curt Hinrichs
Production Service: Hoyt Publishing Services
Assistant Editor: Ann Day
Text Designer: Kaelin Chappell
Editorial Assistant: Katherine Brayton
Copy Editors: David Hoyt and Erica Lee
Technology Project Manager: Burke Taft
Illustrator: Electronic Illustrators Group
Marketing Manager: Joseph Rogove
Cover Designer: Lisa Langhoff
Marketing Assistant: Jessica Perry
Cover Image: Getty Images, photographer Nick Koudis
Advertising Project Manager: Tami Strang
Cover Printer: Transcontinental Printing, Louiseville
Print/Media Buyer: Jessica Reed
Compositor: ATLIS Graphics
Permissions Editor: Bob Kauser
Printer: Transcontinental Printing, Louiseville
Production Project Manager: Hal Humphrey
COPYRIGHT © 2004 Brooks/Cole, a division of Thomson
Learning, Inc. Thomson LearningTM is a trademark used herein
under license.
ALL RIGHTS RESERVED. No part of this work covered by the
copyright hereon may be reproduced or used in any form or by
any means—graphic, electronic, or mechanical, including but not
limited to photocopying, recording, taping, Web distribution, information networks, or information storage and retrieval systems—without the written permission of the publisher.
Printed in Canada
1 2 3 4 5 6 7
07 06 05 04 03
For more information about our products, contact us at:
Thomson Learning Academic Resource Center
1-800-423-0563
For permission to use material from this text, contact us by:
Phone: 1-800-730-2214 Fax: 1-800-730-2215
Web: http://www.thomsonrights.com
Library of Congress Control Number 2003105883
Student Edition with InfoTrac College Edition:
ISBN 0-534-38058-1
Student Edition without InfoTrac College Edition:
ISBN 0-534-42358-2
International Student Edition:
ISBN 0-534-52020-0
Brooks/Cole—Thomson Learning
10 Davis Drive
Belmont, CA 94002
USA
Asia
Thomson Learning
5 Shenton Way #01-01
UIC Building
Singapore 068808
Australia/New Zealand
Thomson Learning
102 Dodds Street
Southbank, Victoria 3006
Australia
Canada
Nelson
1120 Birchmount Road
Toronto, Ontario M1K 5G4
Canada
Europe/Middle East/Africa
Thomson Learning
High Holborn House
50/51 Bedford Row
London WC1R 4LR
United Kingdom
Latin America
Thomson Learning
Seneca, 53
Colonia Polanco
11560 Mexico D.F.
Mexico
Spain/Portugal
Paraninfo
Calle Magallanes, 25
28015 Madrid
Spain
Brief Contents
1 An Introduction to Model Building 1
2 Basic Linear Algebra 11
3 Introduction to Linear Programming 49
4 The Simplex Algorithm and Goal Programming 127
5 Sensitivity Analysis: An Applied Approach 227
6 Sensitivity Analysis and Duality 262
7 Transportation, Assignment, and Transshipment Problems 360
8 Network Models 413
9 Integer Programming 475
10 Advanced Topics in Linear Programming 562
11 Nonlinear Programming 610
12 Review of Calculus and Probability 707
13 Decision Making under Uncertainty 737
14 Game Theory 803
15 Deterministic EOQ Inventory Models 846
16 Probabilistic Inventory Models 880
17 Markov Chains 923
18 Deterministic Dynamic Programming 961
19 Probabilistic Dynamic Programming 1016
20 Queuing Theory 1051
21 Simulation 1145
22 Simulation with Process Model 1191
23 Spreadsheet Simulation with the Excel Add-in @Risk 1212
24 Forecasting Models 1275
v
Contents
Preface xii
About the Author xvi
1
Special Cases 63
A Diet Problem 68
3.5 A Work-Scheduling Problem 72
3.6 A Capital Budgeting Problem 76
3.7 Short-Term Financial Planning 82
3.8 Blending Problems 85
3.9 Production Process Models 95
3.10 Using Linear Programming to Solve
Multiperiod Decision Problems: An
Inventory Model 100
3.1l Multiperiod Financial Models 105
3.12 Multiperiod Work Scheduling 109
3.3
3.4
An Introduction to
Model-Building 1
1.1
1.2
1.3
1.4
1.5
An Introduction to Modeling 1
The Seven-Step Model-Building
Process 5
CITGO Petroleum 6
San Francisco Police Department
Scheduling 7
GE Capital 9
4
2
Basic Linear Algebra 11
2.1
2.2
2.3
2.4
2.5
2.6
3
Introduction to Linear Programming 49
3.1
3.2
vi
Matrices and Vectors 11
Matrices and Systems of Linear
Equations 20
The Gauss-Jordan Method for Solving
Systems of Linear Equations 22
Linear Independence and Linear
Dependence 32
The Inverse of a Matrix 36
Determinants 42
What Is a Linear Programming
Problem? 49
The Graphical Solution of Two-Variable
Linear Programming Problems 56
The Simplex Algorithm and Goal
Programming 127
How to Convert an LP to Standard
Form 127
4.2 Preview of the Simplex Algorithm 130
4.3 Direction of Unboundedness 134
4.4 Why Does an LP Have an
Optimal bfs? 136
4.5 The Simplex Algorithm 140
4.6 Using the Simplex Algorithm to Solve
Minimization Problems 149
4.7 Alternative Optimal Solutions 152
4.8 Unbounded LPs 154
4.9 The LINDO Computer Package 158
4.10 Matrix Generators, LINGO, and Scaling
of LPs 163
4.11 Degeneracy and the Convergence of the
Simplex Algorithm 168
4.12 The Big M Method 172
4.1
4.13 The Two-Phase Simplex Method 178
Unrestricted-in-Sign Variables 184
4.15 Karmarkar's Method for Solving LPs 190
4.16 Multiattribute Decision Making in the
Absence of Uncertainty: Goal
Programming 191
4.l7 Using the Excel Solver to Solve LPs 202
4.14
7
Transportation, Assignment, and
Transshipment Problems 360
7.1
7.2
7.3
7.4
5
Sensitivity Analysis:
An Applied Approach 227
5.1
5.2
5.3
5.4
A Graphical Introduction to Sensitivity
Analysis 227
The Computer and Sensitivity
Analysis 232
Managerial Use of Shadow Prices 246
What Happens to the Optimal z-Value
If the Current Basis Is No Longer
Optimal? 248
7.5
7.6
8
Network Models 413
8.1
8.2
8.3
8.4
8.5
6
Sensitivity Analysis and Duality 262
A Graphical Introduction to Sensitivity
Analysis 262
6.2 Some Important Formulas 267
6.3 Sensitivity Analysis 275
6.4 Sensitivity Analysis When More Than
One Parameter Is Changed: The 100%
Rule 289
6.5 Finding the Dual of an LP 295
6.6 Economic Interpretation of the Dual
Problem 302
6.7 The Dual Theorem and Its
Consequences 304
6.8 Shadow Prices 313
6.9 Duality and Sensitivity Analysis 323
6.10 Complementary Slackness 325
6.11 The Dual Simplex Method 329
6.12 Data Envelopment Analysis 335
8.6
8.7
6.1
9
Formulating Transportation Problems 360
Finding Basic Feasible Solutions for
Transportation Problems 373
The Transportation Simplex Method 382
Sensitivity Analysis for Transportation
Problems 390
Assignment Problems 393
Transshipment Problems 400
Basic Definitions 413
Shortest-Path Problems 414
Maximum-Flow Problems 419
CPM and PERT 431
Minimum-Cost Network Flow
Problems 450
Minimum Spanning Tree Problems 456
The Network Simplex Method 459
Integer Programming 475
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
Introduction to Integer Programming 475
Formulating Integer Programming
Problems 477
The Branch-and-Bound Method for
Solving Pure Integer Programming
Problems 5l2
The Branch-and-Bound Method for
Solving Mixed Integer Programming
Problems 523
Solving Knapsack Problems by the
Branch-and-Bound Method 524
Solving Combinatorial Optimization
Problems by the Branch-and-Bound
Method 527
Implicit Enumeration 540
The Cutting Plane Algorithm 545
Contents
vii
10
Advanced Topics in Linear
Programming 562
13
Decision Making
under Uncertainty 737
10.1 The Revised Simplex Algorithm 562
13.1 Decision Criteria 737
10.2 The Product Form of the Inverse 567
13.2 Utility Theory 741
10.3 Using Column Generation to Solve
13.3 Flaws in Expected Maximization
Large-Scale LPs 570
10.4 The Dantzig-Wolfe Decomposition
Algorithm 576
10.5 The Simplex Method for Upper-Bounded
Variables 593
10.6 Karmarkar's Method for Solving LPs 597
13.4
13.5
13.6
13.7
11
Nonlinear Programming 610
11.1 Review of Differential Calculus 610
14
11.2 Introductory Concepts 616
Game Theory 803
14.1
11.3 Convex and Concave Functions 630
14.2
11.4 Solving NLPs with One Variable 637
11.5 Golden Section Search 649
11.6 Unconstrained Maximization and
11.7
11.8
11.9
11.10
11.11
11.12
11.13
14.3
Minimization with Several Variables 655
The Method of Steepest Ascent 660
Lagrange Multipliers 663
The Kuhn–Tucker Conditions 670
Quadratic Programming 680
Separable Programming 688
The Method of Feasible Directions 693
Pareto Optimality and Tradeoff
Curves 695
14.4
14.5
14.6
14.7
15
12
Review of Calculus
and Probability 707
12.1 Review of Integral Calculus 707
15.1 Introduction to Basic
15.2
15.3
12.4 Bayes’ Rule 713
12.5 Random Variables, Mean, Variance,
and Covariance 715
12.6 The Normal Distribution 722
12.7 z-Transforms 730
viii
Contents
Two-Person Zero-Sum and Constant-Sum
Games: Saddle Points 803
Two-Person Zero-Sum Games:
Randomized Strategies, Domination, and
Graphical Solution 807
Linear Programming and Zero-Sum
Games 816
Two-Person Nonconstant-Sum
Games 827
Introduction to n-Person Game
Theory 832
The Core of an n-Person Game 834
The Shapley Value 837
Deterministic EOQ
Inventory Models 846
12.2 Differentiation of Integrals 710
12.3 Basic Rules of Probability 710
of Utility: Prospect Theory and
Framing Effects 755
Decision Trees 758
Bayes’ Rule and Decision Trees 767
Decision Making with
Multiple Objectives 773
The Analytic Hierarchy Process 785
15.4
15.5
Inventory Models 846
The Basic Economic Order
Quantity Model 848
Computing the Optimal Order
Quantity When Quantity
Discounts Are Allowed 859
The Continuous Rate EOQ Model 865
The EOQ Model with Back
Orders Allowed 868
16
15.6 When to Use EOQ Models 872
18.6 Formulating Dynamic
15.7 Multiple-Product EOQ Models 873
Programming Recursions 989
18.7 The Wagner–Whitin Algorithm
and the Silver–Meal Heuristic 1001
18.8 Using Excel to Solve Dynamic
Programming Problems 1006
Probabilistic Inventory Models 880
16.1 Single-Period Decision Models 880
16.2 The Concept of Marginal Analysis 880
16.3 The News Vendor Problem:
16.4
16.5
16.6
16.7
16.8
16.9
16.10
Discrete Demand 881
The News Vendor Problem:
Continuous Demand 886
Other One-Period Models 888
The EOQ with Uncertain Demand:
The (r, q) and (s, S) Models 890
The EOQ with Uncertain Demand:
The Service Level Approach to
Determining Safety Stock Level 898
(R, S) Periodic Review Policy 907
The ABC Inventory
Classification System 911
Exchange Curves 913
19
19.1 When Current Stage Costs Are
19.2
19.3
19.4
19.5
20
17
Markov Chains 923
17.1
17.2
17.3
17.4
17.5
17.6
17.7
What Is a Stochastic Process? 923
What Is a Markov Chain? 924
n-Step Transition Probabilities 928
Classification of States
in a Markov Chain 931
Steady-State Probabilities and Mean
First Passage Times 934
Absorbing Chains 942
Work-Force Planning Models 950
Probabilistic Dynamic
Programming 1016
Queuing Theory 1051
20.1 Some Queuing Terminology 1051
20.2 Modeling Arrival and Service
20.3
20.4
20.5
20.6
20.7
20.8
20.9
18
Deterministic Dynamic
Programming 961
18.1 Two Puzzles 961
18.2 A Network Problem 962
18.3 An Inventory Problem 969
18.4 Resource-Allocation Problems 974
Uncertain, but the Next Period’s
State Is Certain 1016
A Probabilistic Inventory Model 1019
How to Maximize the Probability of a
Favorable Event Occurring 1023
Further Examples of Probabilistic
Dynamic Programming Formulations 1029
Markov Decision Processes 1036
20.10
20.11
20.12
20.13
Processes 1053
Birth–Death Processes 1053
The M/M/1/GD/∞/∞ Queuing System
and the Queuing Formula L W 1072
The M/M/1/GD/c/∞ Queuing System 1083
The M/M/s/GD/∞/∞ Queuing
System 1087
The M/G/∞/GD/∞/∞ and
GI/G/∞/GD/∞/∞ Models 1095
The M/G/1/GD/∞/∞ Queuing System 1097
Finite Source Models: The Machine
Repair Model 1099
Exponential Queues in Series and
Open Queuing Networks 1104
The M/G/s/GD/s/∞ System (Blocked
Customers Cleared) 1112
How to Tell Whether Interarrival Times
and Service Times Are Exponential 1115
Closed Queuing Networks 1119
18.5 Equipment-Replacement Problems 985
Contents
ix
20.14 An Approximation for the G/G/m
23.5 The RISKGENERAL Function 1244
Queuing System 1124
20.15 Priority Queuing Models 1126
20.16 Transient Behavior of
Queuing Systems 1131
23.6 The RISKCUMULATIVE
23.7
23.8
23.9
21
Simulation 1145
23.10
21.1 Basic Terminology 1145
21.2 An Example of a Discrete-Event
21.3
21.4
21.5
21.6
21.7
21.8
21.9
Simulation 1146
Random Numbers and Monte Carlo
Simulation 1153
An Example of Monte Carlo
Simulation 1158
Simulations with Continuous
Random Variables 1162
An Example of a Stochastic
Simulation 1173
Statistical Analysis in Simulations 1180
Simulation Languages 1183
The Simulation Process 1184
23.11
23.12
23.13
24
Forecasting Models 1275
24.1 Moving-Average Forecast Methods 1275
24.2 Simple Exponential Smoothing 1281
24.3 Holt’s Method: Exponential Smoothing
24.4
24.5
22
Simulation with Process Model 1191
22.1 Simulating an M/M/1 Queuing
Random Variable 1248
The RISKTRIGEN Random Variable 1249
Creating a Distribution Based
on a Point Forecast 1250
Forecasting the Income of a
Major Corporation 1252
Using Data to Obtain Inputs for New
Product Simulations 1256
Simulation and Bidding 1267
Playing Craps with @Risk 1269
Simulating the NBA Finals 1271
24.6
24.7
24.8
with Trend 1283
Winter’s Method: Exponential Smoothing
with Seasonality 1286
Ad Hoc Forecasting 1292
Simple Linear Regression 1302
Fitting Nonlinear Relationships 1312
Multiple Regression 1317
System 1191
22.2 Simulating an M/M/2 System 1195
22.3 Simulating a Series System 1199
Appendix 1:
@Risk Crib Sheet 1336
Appendix 2:
Cases 1350
22.4 Simulating Open Queuing Networks 1203
22.5 Simulating Erlang Service Times 1207
22.6 What Else Can Process Model Do? 1210
Case 1
23
Simulation with the Excel
Add-in @Risk 1212
Case 2
23.1 Introduction to @Risk:
Case 4
The News Vendor Problem 1212
23.2 Modeling Cash Flows from
a New Product 1222
23.3 Product Scheduling Models 1232
23.4 Reliability and Warranty Modeling 1238
x
Contents
Case 3
Case 5
Case 6
Help, I’m Not Getting Any
Younger 1351
Solar Energy for Your Home 1351
Golf-Sport: Managing Operations 1352
Vision Corporation: Production Planning
and Shipping 1355
Material Handling in a General
Mail-Handling Facility 1356
Selecting Corporate Training
Programs 1359
Best Chip: Expansion Strategy 1362
Case 8 Emergency Vehicle Location in
Springfield 1364
Case 9
System Design: Project Management 1365
Case 10 Modular Design for the Help-You
Company 1366
Case 11 Brite Power: Capacity Expansion 1368
Case 7
Appendix 3:
Answers to Selected
Problems 1370
Index 1402
Contents
xi
Preface
In recent years, operations research software has become widely available. Its use is illustrated throughout
this book. Like most tools, however, it is of little value
unless the user understands its application and purpose. Users must ensure that the mathematical input
accurately reflects the real-life problems to be solved
and that the numerical results are correctly applied to
solve them. With this in mind, this book emphasizes
model formulation and model building as well as the
interpretation of software output.
Intended Audience and Prerequisites
This book is intended as an advanced beginning or intermediate text in operations research or management
science. The following groups can benefit from using it.
■
■
■
■
Undergraduate majors in information systems or
decision sciences in business, operations research,
management science, industrial engineering, mathematics, or agricultural/resource economics.
MBA students or masters students in public administration enrolled in an applications-oriented operations research or management science course.
Graduate students who need an overview of the
major topics in operations research and management science.
Practitioners who need a comprehensive reference.
For courses specializing in deterministic models or in
probabilistic models of operations research, or for
those wishing to cover state-of-the-art methods of operations research (OR), the publisher offers split volumes of this text that feature additional coverage.
Introduction to Mathematical Programming (Operations Research: Volume One—ISBN 0-534-35964-7)
includes Chapters 1 through 10, 11, and 14 of
Operations Research, along with three unique chapters
covering recent developments in mathematical programming. Unique topics include heuristic methods,
xii
artificial intelligence, genetic algorithms, simulated
annealing, Tabu search, and neural networks.
Introduction to Probability Models (Operations
Research: Volume Two—ISBN 0-534-40572-X) includes OR Chapters 12, 13, and 15 through 24, plus
three additional chapters on financial engineering topics. Topics include option pricing, real options, the
scenario approach to portfolio optimization, stochastic calculus, and stochastic control.
Operations Research is designed for students who
have had some calculus, matrix algebra, and an introductory statistics course. A formal course in probability theory is not required. Chapter 2 provides a review
of matrix algebra, and Chapter 12 reviews the probability and calculus required for the rest of the book.
Features
The following features help to make this text readerfriendly.
■
The book is completely self-contained, with all the
necessary mathematical background reviewed in
Chapters 2 and 12. Each chapter is designed to be
modular, so the book can be tailored to the needs of
a course. Additionally, each section of the book is
written to be as self-contained as possible; instructors can be extremely flexible in designing a
course. The Instructor’s Notes identify which portions of the book must be covered as prerequisites
to each section.
■
To provide immediate feedback to students, problems
are placed at the end of sections, and most chapters
conclude with review problems. There are approximately 1,500 problems, grouped by level of difficulty:
Group A for practice of basic techniques, Group B for
underlying concepts, and Group C for mastering the
theory independently.
The book avoids excessive theoretical exercises in
favor of applied word problems. Many problems
■
■
■
■
■
are based on published applications. The exposition
takes great pain, by means of several examples in
each chapter, to guide the student step by step
through even the most complex topics.
To help students review for exams, most chapters
have a summary of concepts and formulas.
Answers to selected problems appear in an appendix. A Student Solutions Manual is available, providing worked-out solutions to selected problems.
The Student Solutions Manual may be purchased
separately or packaged with the text at a nominal
additional price.
Instructors who adopt this text in their courses may
receive the Instructor’s Suite CD-ROM. This CD
contains complete solutions to every problem in the
text, PowerPoint slides, and Instructor’s Notes.
The book is accompanied by a CD containing special versions of LINDO, LINGO, Premium Solver,
Process Model, and @Risk.
The text contains instruction for using the software
contained on the CD. All of the files needed for
examples and exercises are also included on the CD.
Coverage and Organization
The linear programming section of the book is completely self-contained; all necessary mathematical
background is given in Chapter 2. Students who are
familiar with matrix multiplication should have no
problems with Chapters 2–11. Portions of the remaining chapters require rudimentary knowledge of calculus and probability equivalent to that obtained from a
one-semester calculus course and a one-semester statistics course. All topics in calculus and probability
used in Chapters 13–24 are reviewed in Chapter 12.
Since not all students need a full-blown theoretical
treatment of sensitivity analysis, there are two chapters on the topic. Chapter 5 is an applied approach to
sensitivity analysis, emphasizing the interpretation of
computer output. Chapter 6 contains a full discussion
of sensitivity analysis, duality, and the dual simplex
method. The instructor should cover Chapter 5 or
Chapter 6, but not both. Classes emphasizing model
building and model formulation skills should cover
Chapter 5. Those paying close attention to the algorithms of mathematical programming (particularly
classes in which students will go on to further study
in operations research) should study Chapter 6. If
Chapter 5 rather than Chapter 6 is covered, then Chapter 2 may be omitted.
Changes to the Fourth Edition
The fourth edition of Operations Research contains
many substantial changes. Most significant is the inclusion of Process Model (Chapter 22) to perform
queuing simulations and @Risk (Chapter 23) to perform spreadsheet-based simulations. Other major
changes include the following.
■
■
■
■
■
■
■
■
■
■
■
■
■
■
■
Over 200 new problems have been added.
Microsoft Excel is featured. All Lotus spreadsheets
appearing in the previous edition have been converted to Excel.
There is more discussion of optimization with
spreadsheets. The method of solving optimization
problems with spreadsheets has been changed from
What’s Best to the Excel Solver.
Discussion of important Excel functions such as
MMULT, OFFSET, MINVERSE, and NPV has
been added.
Chapter 4 includes more extensive instruction in
the use of LINDO and LINGO.
Chapter 4 includes more discussion of the geometry of LPs.
Chapter 11 contains new applications of nonlinear
programming to pricing problems.
Eleven new cases involving mathematical programming are included. Professor Jeff Goldberg of
the University of Arizona wrote the cases.
Chapter 12 contains a discussion of Excel’s normal
distribution functions and z-transforms.
Chapter 13 covers the applications of prospect theory and framing effects in decision making.
Chapter 15 discusses power-of-two inventory policies and multiple-product EOQ models.
Chapter 20 now covers computing Poisson and
exponential probabilities with Excel, Buzen’s
method for closed queuing networks, approximations for G/G/s queuing systems, the use of data
tables in queuing optimization, and computing
transient probabilities for queuing systems.
Chapter 22 shows how to use the powerful, userfriendly simulation package Process Model to simulate queuing systems.
Chapter 23 deals with the Excel add-in @Risk, for
Monte Carlo simulation. Application areas include
capital budgeting, project management, and reliability.
In Chapter 24, Excel data tables and the OFFSET
Preface
xiii
function are used to optimize the number of periods in a moving-average forecast.
Use of the Computer
In deference to the virtually universal usage of Excel,
this software is featured throughout the book when
appropriate. When Excel’s native capabilities are limited, the text discusses add-in software that builds on
the capabilities of Excel, or uses stand-alone software.
The CD accompanying the book contains several
valuable software packages.
■
■
■
■
LINDO and LINGO. These easy-to-use linear and
nonlinear programming software packages are provided by Lindo Systems, Inc.
Premium Solver for Education. Generously provided by Frontline Systems (the developers of
Microsoft Excel’s Solver), Premium Solver provides evolutionary solving techniques utilized in
nonlinear optimization problems.
@Risk. A professional Monte Carlo simulation
add-in for Excel by Palisade Corporation.
Process Model. This discrete-event simulation
software is easy to learn and use. It is illustrated in
Chapter 22. Process Model is provided by Process
Model Inc.
Software illustrations, with all the necessary stepby-step instructions, appear at the ends of sections, to
provide maximum flexibility to instructors who wish
to employ different software packages in their courses.
Acknowledgments
Many people have played significant roles in the
development of the fourth edition. My views on teaching operations research were greatly influenced by the
many excellent teachers I have had, including Gordon
Bradley, Eric Denardo, George Fishman, Gordon
Kaufman, Richard Larson, John Little, Robert Mifflin,
Martin Shubik, Matthew Sobel, Arthur Veinott, Jr.,
Harvey Wagner, and Ward Whitt. In particular, I
would like to acknowledge Professor Wagner’s Principles of Operations Research, which taught me more
about operations research than any other single book.
I am grateful to the following:
■
Linus Schrage, Mark Wiley, and Kevin Cunningham of LINDO Systems, for their help in including
LINDO and LINGO.
xiv
Preface
■
■
■
Dan Fylstra and Edwin Straver of Frontline Systems, for allowing me to include the Premium
Solver.
Sam McLafferty of Palisade, for allowing me to
include @Risk.
Matthew Jorgensen at Process Model Inc., for
allowing me to include Process Model.
Thanks go to all the people at Duxbury Press who
worked on the book, especially our editor, Curt
Hinrichs, for his unflagging editoral support.
I greatly appreciate the editing and production skills of
David Hoyt, and the fine typesetting of ATLIS Graphics.
Thanks to the 146 survey respondents who provided valuable feedback on the book and the course
and its emerging needs. They include Nikolaos
Adamou, University of Athens & Sage Graduate
School; Jeffrey Adler, Rensselaer Polytechnic Institute; Victor K. Akatsa, Chicago State University;
Steven Andelin, Kutztown University of Pennsylvania; Badiollah R. Asrabadi, Nicholls State University;
Rhonda Aull-Hyde, University of Delaware; Jonathan
Bard, Mechanical Engineering; John Barnes, Virginia
Commonwealth University; Harold P. Benson, University of Florida; Elinor Berger, Columbus College;
Richard H. Bernhard, North Carolina State University; R. L. Bulfin, Auburn University; Laura Burke,
Lehigh University; Jonathan Caulkins, Carnegie Mellon University; Beth Chance, University of the Pacific; Alan Chesen, Wright State University; Young
Chun, Louisiana State University; Chia-Shin Chung,
Cleveland State University; Ken Currie, Tennessee
Technological University; Ani Dasgupta, Pennsylvania State University; Nirmil Devi, Embry-Riddle
Aeronautical University; James Falk, George Washington University; Kambiz Farahmand, Texas A & M
University–Kingsville; Yahya Fathi, North Carolina
State University; Steve Fisk, Bowdoin College;
William P. Fox, United States Military Academy;
Michael C. Fu, University of Maryland; Saul I. Gass,
University of Maryland; Ronald Gathro, Western New
England College; Perakis Georgia, Massachusetts Institute of Technology; Alan Goldberg, California State
University–Hayward; Jerold Griggs, University of
South Carolina; David Grimmett, Austin Peay State
University; Melike Baykal Gursoy, Rutgers University; Jorge Haddock, Rensselaer Polytechnic Institute;
Jane Hagstrom, University of Illinois; Carl Harris,
George Mason University; Miriam Heller, University
of Houston; Sundresh S. Heragu, Rensselaer Polytechnic Insitute; Rebecca E. Hill, Rochester Institute
of Technology; David Holdsworth, Alaska Pacific University; Elained Hubbard, Kennesaw State College;
Robert Hull, Western Illinois University; Jeffrey Jarrett, University of Rhode Island; David Kaufman,
University of Massachusetts; Davook Khalili, San
Jose University; Morton Klein, Columbia University;
S. Kumar, Rochester Institute of Technology; David
Larsen, University of New Orleans; Mark Lawley,
University of Alabama; Kenneth D. Lawrence, New
Jersey Institute of Technology; Andreas Lazari, Valdosta State University; Jon Lee, University of Kentucky; Luanne Lohr, University of Georgia; Joseph
Malkovitch, York College; Masud Mansuri, California
State University–Fresno; Steven C. McKelvey, Saint
Olaf College; Ojjat Mehri, Youngstown State University; Robert Mifflin, Washington State University;
Katya Mints, Columbia University; Rafael Moras, St.
Mary’s University; James G. Morris, University of
Wisconsin, Madison; Frederic Murphy, Temple University; David Olson, Texas A & M University; Mufit
Ozden, Miami University; R. Gary Parker, Georgia
Institute of Technology; Barry Pasternack, California
State University, Fullerton; Walter M. Patterson, Lander University; James E Pratt, Cornell University;
B. Madhu Rao, Bowling Green State University; T. E. S.
Raghavan, University of Illinois–Chicago; Gary
Reeves, University of South Carolina; Gaspard Rizzuto, University of Southwestern; David Ronen, University of Missouri–St. Louis; Paul Savory, University
of Nebraska, Lincoln; Jon Schlosser, New Mexico
Highlands University; Delray Schultz, Millersville
University; Richard Serfozo, Georgia Technological
Institute; Morteza Shafi-Mousavi, Indiana University–South Bend; Dooyoung Shin, Mankato State University; Ronald L. Shubert, Elizabethtown College;
Joel Sobel, University of California, San Diego; Manbir S. Sodhi, University of Rhode Island; Ariela Sofer,
George Mason University; Toni M. Somers, Wayne
State University; Robert Stark, University of
Delaware; Joseph A. Svestka, Cleveland State University; Alexander Sze, Concordia College; Roman
Sznajder, University of Maryland–Baltimore County;
Bijan Vasigh, Embry-Riddle Aeronautical University;
John H. Vande Vate, Georgia Technological University; Richard G. Vinson, University of South Alabama;
Jin Wang, Valdodsta State University; Zhongxian
Wang, Montclair State University; Robert C. Williams,
Alfred University; Arthur Neal Willoughby, Morgan
State; Shmuel Yahalom, SUNY–Maritime College;
James Yates, University of Central Oklahoma; Bill Yurcik, University of Pittsburgh.
Thanks also go to reviewers of the previous editions:
Esther Arkin, Sant Arora, Harold Benson, Warren J.
Boe, Bruce Bowerman, James W. Chrissis, Jerald
Dauer, S. Selcuk Erenguc, Yahya Fathi, Robert Freund,
Irwin Greenberg, Rebecca E. Hill, John Hooker, Sidney Lawrence, Patrick Lee, Edward Minieka, James
G. Morris, Joel A. Nachlas, David L. Olson, Sudhakar
Pandit, David W. Pentico, Bruce Pollack-Johnson,
Michael Richey, Gary D. Scudder, Lawrence Seiford,
Michael Sinchcomb, and Paul Stiebitz.
I retain responsibility for all errors and would love
to hear from users of the book. I can be reached at
Indiana University
Department of Operations and Decision Technology
Kelley School of Business
Room 570
Bloomington, IN 47405
Wayne Winston (Winston@indiana.edu)
Preface
xv
About the Author
Wayne Winston
Wayne L. Winston is Professor of Operations and Decision Technologies in the Kelley
School of Business at Indiana University, where he has taught since 1975. Wayne received
his B.S. degree in mathematics from MIT and his Ph.D. degree in operations research from
Yale. He has written the successful textbooks Operations Research: Applications and
Algorithms; Introduction to Mathematical Programming; Simulation Modeling with
@Risk; Practical Management Science; and Financial Models Using Simulation and Optimization. Wayne has published over 20 articles in leading journals and has won many
teaching awards, including the school-wide MBA award four times. His current interest is
in showing how spreadsheet models can be used to solve business problems in all disciplines, particularly in finance and marketing.
Wayne enjoys swimming and basketball, and his passion for trivia won him an appearance several years ago on the television game show Jeopardy, where he won two games. He
is married to the lovely and talented Vivian. They have two children, Gregory and Jennifer.
xvi
1
An Introduction to Model Building
1.1
An Introduction to Modeling
Operations research (often referred to as management science) is simply a scientific
approach to decision making that seeks to best design and operate a system, usually under conditions requiring the allocation of scarce resources.
By a system, we mean an organization of interdependent components that work together
to accomplish the goal of the system. For example, Ford Motor Company is a system whose
goal consists of maximizing the profit that can be earned by producing quality vehicles.
The term operations research was coined during World War II when British military
leaders asked scientists and engineers to analyze several military problems such as the deployment of radar and the management of convoy, bombing, antisubmarine, and mining
operations.
The scientific approach to decision making usually involves the use of one or more
mathematical models. A mathematical model is a mathematical representation of an actual situation that may be used to make better decisions or simply to understand the actual situation better. The following example should clarify many of the key terms used to
describe mathematical models.
EXAMPLE
1
Maximizing Wozac Yield
Eli Daisy produces Wozac in huge batches by heating a chemical mixture in a pressurized container. Each time a batch is processed, a different amount of Wozac is produced.
The amount produced is the process yield (measured in pounds). Daisy is interested in
understanding the factors that influence the yield of the Wozac production process. Describe a model-building process for this situation.
Solution
Daisy is first interested in determining the factors that influence the yield of the process.
This would be referred to as a descriptive model, because it describes the behavior of the
actual yield as a function of various factors. Daisy might determine (using regression
methods discussed in Chapter 24) that the following factors influence yield:
■
■
■
■
container volume in liters (V)
container pressure in milliliters (P)
container temperature in degrees Celsius (T)
chemical composition of the processed mixture
If we let A, B, and C be percentage of mixture made up of chemicals A, B, and C, then
Daisy might find, for example, that
(1) yield 300 .8V .01P .06T .001T*P .01T2 .001P2
11.7A 9.4B 16.4C 19A*B 11.4A*C 9.6B*C
To determine this relationship, the yield of the process would have to be measured for
many different combinations of the previously listed factors. Knowledge of this equation
would enable Daisy to describe the yield of the production process once volume, pressure, temperature, and chemical composition were known.
Prescriptive or Optimization Models
Most of the models discussed in this book will be prescriptive or optimization models.
A prescriptive model “prescribes” behavior for an organization that will enable it to best
meet its goal(s). The components of a prescriptive model include
■
■
■
objective function(s)
decision variables
constraints
In short, an optimization model seeks to find values of the decision variables that optimize (maximize or minimize) an objective function among the set of all values for the
decision variables that satisfy the given constraints.
The Objective Function
Naturally, Daisy would like to maximize the yield of the process. In most models, there
will be a function we wish to maximize or minimize. This function is called the model’s
objective function. Of course, to maximize the process yield we need to find the values
of V, P, T, A, B, and C that make (1) as large as possible.
In many situations, an organization may have more than one objective. For example, in
assigning students to the two high schools in Bloomington, Indiana, the Monroe County
School Board stated that the assignment of students involved the following objectives:
■
■
■
Equalize the number of students at the two high schools.
Minimize the average distance students travel to school.
Have a diverse student body at both high schools.
Multiple objective decision-making problems are discussed in Sections 4.14 and 11.13.
The Decision Variables
The variables whose values are under our control and influence the performance of the
system are called decision variables. In our example, V, P, T, A, B, and C are decision
variables. Most of this book will be devoted to a discussion of how to determine the value
of decision variables that maximize (sometimes minimize) an objective function.
Constraints
In most situations, only certain values of decision variables are possible. For example, certain volume, pressure, and temperature combinations might be unsafe. Also, A B, and C
must be nonnegative numbers that add to 1. Restrictions on the values of decision variables are called constraints. Suppose the following:
2
CHAPTER
1 An Introduction to Model Building
■
■
■
■
■
Volume must be between 1 and 5 liters.
Pressure must be between 200 and 400 milliliters.
Temperature must be between 100 and 200 degrees Celsius.
Mixture must be made up entirely of A, B, and C.
For the drug to properly perform, only half the mixture at most can be product A.
These constraints can be expressed mathematically by the following constraints:
V5
V1
P 400
P 200
T 200
T 100
A0
B0
ABC1
A5
The Complete Optimization Model
After letting z represent the value of the objective function, our entire optimization model
may be written as follows:
Maximize z 300 .8V .01P .06T .001T*P .01T2 .001P2
11.7A 9.4B 16.4C 19A*B 11.4A*C 9.6B*C
Subject to (s.t.)
V5
V1
P 400
P 200
T 200
T 100
A0
B0
C0
ABC1
A5
Any specification of the decision variables that satisfies all of the model’s constraints is
said to be in the feasible region. For example, V 2, P 300, T 150, A .4, B .3, and C .1 is in the feasible region. An optimal solution to an optimization model is
any point in the feasible region that optimizes (in this case, maximizes) the objective function. Using the LINGO package that comes with this book, it can be determined that the
optimal solution to this model is V 5, P 200, T 100, A .294, B 0, C .706,
and z 183.38. Thus, a maximum yield of 183.38 pounds can be obtained with a 5-liter
1 . 1 An Introduction to Modeling
3
container, pressure of 200 milliliters, temperature of 100 degrees Celsius, and 29% A and
71% C. This means no other feasible combination of decision variables can obtain a yield
exceeding 183.38 pounds.
Static and Dynamic Models
A static model is one in which the decision variables do not involve sequences of decisions over multiple periods. A dynamic model is a model in which the decision variables
do involve sequences of decisions over multiple periods. Basically, in a static model we
solve a “one-shot” problem whose solutions prescribe optimal values of decision variables
at all points in time. Example 1 is an example of a static model; the optimal solution will
tell Daisy how to maximize yield at all points in time.
For an example of a dynamic model, consider a company (call it Sailco) that must determine how to minimize the cost of meeting (on time) the demand for sailboats during
the next year. Clearly Sailco’s must determine how many sailboats it will produce during
each of the next four quarters. Sailco’s decisions involve decisions made over multiple periods, hence a model of Sailco’s problem (see Section 3.10) would be a dynamic model.
Linear and Nonlinear Models
Suppose that whenever decision variables appear in the objective function and in the constraints of an optimization model, the decision variables are always multiplied by constants
and added together. Such a model is a linear model. If an optimization model is not linear, then it is a nonlinear model. In the constraints of Example 1, the decision variables
are always multiplied by constants and added together. Thus, Example 1’s constraints pass
the test for a linear model. However, in the objective function for Example 1, the terms
.001T*P, .01T2, 19A*B, 11.4A*C, and 9.6B*C make the model nonlinear. In general,
nonlinear models are much harder to solve than linear models. We will discuss linear
models in Chapters 2 through 10. Nonlinear models will be discussed in Chapter 11.
Integer and Noninteger Models
If one or more decision variables must be integer, then we say that an optimization model
is an integer model. If all the decision variables are free to assume fractional values, then
the optimization model is a noninteger model. Clearly, volume, temperature, pressure,
and percentage composition of our inputs may all assume fractional values. Thus, Example 1 is a noninteger model. If the decision variables in a model represent the number of
workers starting work during each shift at a fast-food restaurant, then clearly we have an
integer model. Integer models are much harder to solve than nonlinear models. They will
be discussed in detail in Chapter 9.
Deterministic and Stochastic Models
Suppose that for any value of the decision variables, the value of the objective function
and whether or not the constraints are satisfied is known with certainty. We then have a
deterministic model. If this is not the case, then we have a stochastic model. All models in the first 12 chapters will be deterministic models. Stochastic models are covered in
Chapters 13, 16, 17, and 19–24.
4
CHAPTER
1 An Introduction to Model Building
If we view Example 1 as a deterministic model, then we are making the (unrealistic)
assumption that for given values of V, P, T, A, B, and C, the process yield will always be
the same. This is highly unlikely. We can view (1) as a representation of the average yield
of the process for given values of the decision variables. Then our objective is to find values of the decision variables that maximize the average yield of the process.
We can often gain useful insights into optimal decisions by using a deterministic model
in a situation where a stochastic model is more appropriate. Consider Sailco’s problem of
minimizing the cost of meeting the demand (on time) for sailboats. The uncertainty about
future demand for sailboats implies that for a given production schedule, we do not know
whether demand is met on time. This leads us to believe that a stochastic model is needed
to model Sailco’s situation. We will see in Section 3.10, however, that we can develop a
deterministic model for this situation that yields good decisions for Sailco.
1.2
The Seven-Step Model-Building Process
When operations research is used to solve an organization’s problem, the following sevenstep model-building procedure should be followed:
The operations researcher first defines the organization’s
problem. Defining the problem includes specifying the organization’s objectives and the
parts of the organization that must be studied before the problem can be solved. In Example 1, the problem was to determine how to maximize the yield from a batch of Wozac.
Step 1: Formulate the Problem
Next, the operations researcher collects data to estimate the
value of parameters that affect the organization’s problem. These estimates are used to develop (in step 3) and evaluate (in step 4) a mathematical model of the organization’s problem. For example, in Example 1, data would be collected in an attempt to determine how
the values of T, P, V, A, B, and C influence process yield.
Step 2: Observe the System
Step 3: Formulate a Mathematical Model of the Problem In this step, the operations researcher develops a mathematical model of the problem. In this book, we will describe
many mathematical techniques that can be used to model systems. For Example 1, our
optimization model would be the result of step 3.
Step 4: Verify the Model and Use the Model for Prediction The operations researcher now
tries to determine if the mathematical model developed in step 3 is an accurate representation of reality. For example, to validate our model, we might check and see if (1) accurately represents yield for values of the decision variables that were not used to estimate
(1). Even if a model is valid for the current situation, we must be aware of blindly applying it. For example, if the government placed new restrictions on Wozac, then we might
have to add new constraints to our model, and the yield of the process [and Equation (1)]
might change.
Step 5: Select a Suitable Alternative Given a model and a set of alternatives, the operations
researcher now chooses the alternative that best meets the organization’s objectives.
(There may be more than one!) For instance, our model enabled us to determine that yield
was maximized with V 5, P 200, T 100, A .294, B 0, C .706, and z 183.38.
In this step, the
operations researcher presents the model and recommendation from step 5 to the decisionmaking individual or group. In some situations, one might present several alternatives and
let the organization choose the one that best meets its needs. After presenting the results
Step 6: Present the Results and Conclusion of the Study to the Organization
1 . 2 The Seven-Step Model-Building Process
5
of the operations research study, the analyst may find that the organization does not approve of the recommendation. This may result from incorrect definition of the organization’s problems or from failure to involve the decision maker from the start of the project.
In this case, the operations researcher should return to step 1, 2, or 3.
Step 7: Implement and Evaluate Recommendations If the organization has accepted the
study, then the analyst aids in implementing the recommendations. The system must be
constantly monitored (and updated dynamically as the environment changes) to ensure
that the recommendations enable the organization to meet its objectives.
In what follows, we discuss three successful management science applications. We will
give a detailed (but nonquantitative) description of each application. We will tie our discussion of each application to the seven-step model-building process described in Section 1.2.
1.3
CITGO Petroleum
Klingman et al. (1987) applied a variety of management-science techniques to CITGO Petroleum. Their work saved the company an estimated $70 million per year. CITGO is an
oil-refining and -marketing company that was purchased by Southland Corporation (the
owners of the 7-Eleven stores). We will focus on two aspects of the CITGO team’s work:
1
a mathematical model to optimize operation of CITGO’s refineries, and
a mathematical model—supply distribution marketing (SDM) system—that was used
to develop an 11-week supply, distribution, and marketing plan for the entire business.
2
Optimizing Refinery Operations
Step 1
Klingman et al. wanted to minimize the cost of operating CITGO’s refineries.
Step 2 The Lake Charles, Louisiana, refinery was closely observed in an attempt to estimate key relationships such as:
How the cost of producing each of CITGO’s products (motor fuel, no. 2 fuel oil, turbine fuel, naptha, and several blended motor fuels) depends on the inputs used to produce
each product.
1
The amount of energy needed to produce each product. This required the installation
of a new metering system.
2
The yield associated with each input–output combination. For example, if 1 gallon of
crude oil would yield .52 gallons of motor fuel, then the yield would equal 52%.
3
To reduce maintenance costs, data were collected on parts inventories and equipment
breakdowns. Obtaining accurate data required the installation of a new database-management
system and integrated maintenance-information system. A process control system was also
installed to accurately monitor the inputs and resources used to manufacture each product.
4
Step 3 Using linear programming (LP), a model was developed to optimize refinery operations. The model determines the cost-minimizing method for mixing or blending together inputs to produce desired outputs. The model contains constraints that ensure that
inputs are blended so that each output is of the desired quality. Blending constraints are
discussed in Section 3.8. The model ensures that plant capacities are not exceeded and al-
6
CHAPTER
1 An Introduction to Model Building
lows for the fact that each refinery may carry an inventory of each end product. Sections
3.10 and 4.12 discuss inventory constraints.
Step 4 To validate the model, inputs and outputs from the Lake Charles refinery were
collected for one month. Given the actual inputs used at the refinery during that month,
the actual outputs were compared to those predicted by the model. After extensive
changes, the model’s predicted outputs were close to the actual outputs.
Step 5 Running the LP yielded a daily strategy for running the refinery. For instance, the
model might, say, produce 400,000 gallons of turbine fuel using 300,000 gallons of crude
1 and 200,000 gallons of crude 2.
Steps 6 and 7 Once the database and process control were in place, the model was used
to guide day-to-day refinery operations. CITGO estimated that the overall benefits of the
refinery system exceeded $50 million annually.
The Supply Distribution Marketing (SDM) System
CITGO wanted a mathematical model that could be used to make supply, distribution, and marketing decisions such as:
Step 1
1
Where should crude oil be purchased?
2
Where should products be sold?
3
What price should be charged for products?
4
How much of each product should be held in inventory?
The goal, of course, was to maximize the profitability associated with these decisions.
Step 2 A database that kept track of sales, inventory, trades, and exchanges of all refined
products was installed. Also, regression analysis (see Chapter 24) was used to develop
forecasts for wholesale prices and wholesale demand for each CITGO product.
Steps 3 and 5 A minimum-cost network flow model (MCNFM) (see Section 7.4) is used
to determine an 11-week supply, marketing, and distribution strategy. The model makes
all decisions mentioned in step 1. A typical model run that involved 3,000 equations and
15,000 decision variables required only 30 seconds on an IBM 4381.
The forecasting modules are continuously evaluated to ensure that they continue
to give accurate forecasts.
Step 4
Implementing the SDM required several organizational changes. A new
vice-president was appointed to coordinate the operation of the SDM and LP refinery
model. The product supply and product scheduling departments were combined to improve communication and information flow.
Steps 6 and 7
1.4
San Francisco Police Department Scheduling
Taylor and Huxley (1989) developed a police patrol scheduling system (PPSS). All San
Francisco (SF) police precincts use PPSS to schedule their officers. It is estimated that
PPSS saves the SF police more than $5 million annually. Other cities such as Virginia
1 . 4 San Francisco Police Department Scheduling
7
Beach, Virginia, and Richmond, California, have also adopted PPSS. Following our sevenstep model-building procedure, here is a description of PPSS.
The SFPD wanted a method to schedule patrol officers in each precinct that
would quickly produce (in less than one hour) a schedule and graphically display it. The
program should first determine the personnel requirements for each hour of the week. For
example, 38 officers might be needed between 1 A.M. and 2 A.M. Sunday but only 14 officers might be needed from 4 A.M. to 5 A.M. Sunday. Officers should then be scheduled
to minimize the sum over each hour of the week of the shortages and surpluses relative
to the needed number of officers. For example, if 20 officers were assigned to the midnight to 8 A.M. Sunday shift, we would have a shortage of 38 20 18 officers from 1
to 2 A.M. and a surplus of 20 14 6 officers from 4 to 5 A.M. A secondary criterion
was to minimize the maximum shortage because a shortage of 10 officers during a single hour is far more serious than a shortage of one officer during 10 different hours. The
SFPD also wanted a scheduling system that precinct captains could easily fine-tune to
produce the optimal schedule.
Step 1
The SFPD had a sophisticated computer-aided dispatch (CAD) system to keep
track of all calls for police help, police travel time, police response time, and so on. SFPD
had a standard percentage of time that administrators felt each officer should be busy. Using CAD, it is easy to determine the number of workers needed each hour. Suppose, for
example, an officer should be busy 80% of the time and CAD indicates that 30.4 hours
of work come in from 4 to 5 A.M. Sunday. Then we need 38 officers from 4 to 5 A.M. on
Sunday [.8*(38) 30.4 hours].
Step 2
Step 3 An LP model was formulated (see Section 3.5 for a discussion of scheduling
models). As discussed in step 1, the primary objective was to minimize the sum of hourly
shortages and surpluses. At first, schedulers assumed that officers worked five consecutive days for eight hours a day (this was the policy prior to PPSS) and that there were
three shift starting times (say, 6 A.M., 2 P.M., and 10 A.M.). The constraints in the PPSS
model reflected the limited number of officers available and the relationship of the number of officers working each hour to the shortages and surpluses for that hour. Then PPSS
would produce a schedule that would tell the precinct captain how many officers should
start work at each possible shift time. For example, PPSS might say that 20 officers should
start work at 6 A.M. Monday (working 6 A.M.–2 P.M. Monday–Friday) and 30 officers
should start work at 2 P.M. Saturday (working 2 P.M.–10 P.M. Saturday–Wednesday). The
fact that the number of officers assigned to a start time must be an integer made it far
more difficult to find an optimal schedule. (Problems in which decision variables must be
integers are discussed in Chapter 9.)
Before implementing PPSS, the SFPD tested the PPSS schedules against manually created schedules. PPSS produced an approximately 50% reduction in both surpluses
and shortages. This convinced the department to implement PPSS.
Step 4
Given the starting times for shifts and the type of work schedule [four consecutive days for 10 hours per day (the 4/10 schedule) or five consecutive days for eight hours
per day (the 5/8 schedule)], PPSS can produce a schedule that minimizes the sum of shortages and surpluses. More important, PPSS can be used to experiment with shift times and
work rules. Using PPSS, it was found that if only three shift times are allowed, then a 5/8
schedule was superior to a 4/10 schedule. If, however, five shift times were allowed, then
a 4/10 schedule was found to be superior. This finding was of critical importance because
police officers had wanted to switch to a 4/10 schedule for years. The city had resisted
4/10 schedules because they appeared to reduce productivity. PPSS showed that 4/10
schedules need not reduce productivity. After the introduction of PPSS, the SFPD went
Step 5
8
CHAPTER
1 An Introduction to Model Building
to 4/10 schedules and improved productivity! PPSS also enables the department to experiment with a mix of one-officer and two-officer patrol cars.
It is estimated that PPSS created an extra 170,000 productive hours per
year, thereby saving the city of San Francisco $5.2 million per year. Ninety-six percent of
all workers preferred PPSS generated schedules to manually generated schedules. PPSS
enabled SFPD to make strategic changes (such as adopting the 4/10 schedule), which
made officers happier and increased productivity. Response times to calls improved by
20% after PPSS was adopted.
Steps 6 and 7
A major reason for the success of PPSS was that the system allowed precinct captains
to fine-tune the computer-generated schedule and obtain a new schedule in less than one
minute. For example, precinct captains could easily add or delete officers and add or
delete shifts and quickly see how these changes modified the master schedule.
1.5
GE Capital
GE Capital provides credit card service to 50 million accounts. The average total outstanding balance exceeds $12 billion. GE Capital, led by Makuch et al. (1989), developed
the PAYMENT system to reduce delinquent accounts and the cost of collecting from
delinquent accounts.
Step 1 At any one time, GE Capital has more than $1 billion in delinquent accounts.
The company spends $100 million per year processing these accounts. Each day, workers
contact more than 200,000 delinquent credit card holders with letters, messages, or live
calls. The company’s goal was to reduce delinquent accounts and the cost of processing
them. To do this, GE Capital needed to come up with a method of assigning scarce labor
resources to delinquent accounts. For example, PAYMENT determines which delinquent
accounts receive live phone calls and which delinquent accounts receive no contact.
The key to modeling delinquent accounts is the concept of a delinquency movement matrix (DMM). The DMM determines how the probability of the payment on a
delinquent account during the current month depends on the following factors: size of unpaid balance (either $300 or $300), action taken (no action, live phone call, taped
message, letters), and a performance score (high, medium, or low). The higher the performance score associated with a delinquent account, the more likely the account is to be
collected. Table 1 lists the probabilities for a $250 account that is two months delinquent,
has a high performance score, and is contacted with a phone message.
Step 2
TA B L E
1
Sample Entries in DMM
Event
Account completely paid
One month is paid
Nothing is paid
Probability
.30
.40
.30
Because GE Capital has millions of delinquent accounts, there is ample data to accurately estimate the DMM. For example, suppose there were 10,000 two-month delinquent
accounts with balances under $300 that have a high performance score and are contacted
with phone messages. If 3,000 of those accounts were completely paid off during the current month, then we would estimate the probability of an account being completely paid
off during the current month as 3,000/10,000 .30.
1 . 5 GE Capital
9
Step 3 GE Capital developed a linear optimization model. The objective function for the
PAYMENT model was to maximize the expected delinquent accounts collected during the
next six months. The decision variables represented the fraction of each type of delinquent
account (accounts are classified by payment balance, performance score, and months
delinquent) that experienced each type of contact (no action, live phone call, taped message, or letter). The constraints in the PAYMENT model ensure that available resources
are not overused. Constraints also relate the number of each type of delinquent account
present in, say, January to the number of delinquent accounts of each type present during
the next month (February). This dynamic aspect of the PAYMENT model is crucial to its
success. Without this aspect, the model would simply “skim” the accounts that are easiest to collect each month. This would result in few collections during later months.
Step 4 PAYMENT was piloted on a $62 million portfolio for a single department store.
GE Capital managers came up with their own strategies for allocating resources (collectively called CHAMPION). The store’s delinquent accounts were randomly assigned to
the CHAMPION and PAYMENT strategies. PAYMENT used more live phone calls and
more “no action” than the CHAMPION strategies. PAYMENT also collected $180,000
per month more than any of the CHAMPION strategies, a 5% to 7% improvement. Note
that using more of the no-action strategy certainly leads to a long-run increase in customer goodwill!
As described in step 3, for each type of account, PAYMENT tells the credit managers the fraction that should receive each type of contact. For example, for three-month
delinquent accounts with a small ($300) unpaid balance and high performance score,
PAYMENT might prescribe 30% no action, 20% letters, 30% phone messages, and 20%
live phone calls.
Step 5
PAYMENT was next applied to the 18 million accounts of the $4.6 billion
Montgomery-Ward department store portfolio. Comparing the collection results to the
same time period a year earlier, it was found that PAYMENT increased collections by $1.6
million per month (more than $19 million per year). This is actually a conservative estimate of the benefit obtained from PAYMENT, because PAYMENT was first applied to
the Montgomery-Ward portfolio during the depths of a recession—and a recession makes
it much more difficult to collect delinquent accounts.
Steps 6 and 7
Overall, GE Capital estimates that PAYMENT increased collections by $37 million per
year and used fewer resources than previous strategies.
REFERENCES
Klingman, D., N. Phillips, D. Steiger, and W. Young, “The
Successful Deployment of Management Science
Throughout Citgo Corporation,” Interfaces 17 (1987,
no. 1):4–25.
Makuch, W., J. Dodge, J. Ecker, D. Granfors, and G. Hahn,
“Managing Consumer Credit Delinquency in the US
10
CHAPTER
1 An Introduction to Model Building
Economy: A Multi-Billion Dollar Management Science
Application,” Interfaces 22 (1992, no. 1):90–109.
Taylor, P., and S. Huxley, “A Break from Tradition for the
San Francisco Police: Patrol Officer Scheduling Using
an Optimization-Based Decision Support Tool,” Interfaces 19 (1989, no. 1):4–24.
2
Basic Linear Algebra
In this chapter, we study the topics in linear algebra that will be needed in the rest of the book.
We begin by discussing the building blocks of linear algebra: matrices and vectors. Then we
use our knowledge of matrices and vectors to develop a systematic procedure (the Gauss–
Jordan method) for solving linear equations, which we then use to invert matrices. We close
the chapter with an introduction to determinants.
The material covered in this chapter will be used in our study of linear and nonlinear
programming.
2.1
Matrices and Vectors
Matrices
DEFINITION ■
A matrix is any rectangular array of numbers.
■
For example,
3 4,
1
2
4
1
2
5
2,
3
,
6
1
[2
1]
are all matrices.
If a matrix A has m rows and n columns, we call A an m n matrix. We refer to
m n as the order of the matrix. A typical m n matrix A may be written as
a11
a21
A am1
DEFINITION ■
a1n
a2n
a
mn
a12
a22
am2
The number in the ith row and jth column of A is called the ijth element of A
and is written aij. ■
For example, if
1
A 4
7
then a11 1, a23 6, and a31 7.
2
5
8
3
6
9
Sometimes we will use the notation A [aij] to indicate that A is the matrix whose
ijth element is aij.
DEFINITION ■
Two matrices A [aij] and B [bij] are equal if and only if A and B are of the
same order and for all i and j, aij bij. ■
For example, if
A
3 4
1
2
B
and
w z
x y
then A B if and only if x 1, y 2, w 3, and z 4.
Vectors
Any matrix with only one column (that is, any m 1 matrix) may be thought of as a column
vector. The number of rows in a column vector is the dimension of the column vector. Thus,
2
1
may be thought of as a 2 1 matrix or a two-dimensional column vector. Rm will denote
the set of all m-dimensional column vectors.
In analogous fashion, we can think of any vector with only one row (a 1 n matrix as
a row vector. The dimension of a row vector is the number of columns in the vector. Thus,
[9 2 3] may be viewed as a 1 3 matrix or a three-dimensional row vector. In this book,
vectors appear in boldface type: for instance, vector v. An m-dimensional vector (either row
or column) in which all elements equal zero is called a zero vector (written 0). Thus,
[0
0]
and
0
0
are two-dimensional zero vectors.
Any m-dimensional vector corresponds to a directed line segment in the m-dimensional
plane. For example, in the two-dimensional plane, the vector
u
2
1
corresponds to the line segment joining the point
0
0
to the point
2
1
The directed line segments corresponding to
u
are drawn in Figure 1.
12
CHAPTER
2 Basic Linear Algebra
2,
1
v
3,
1
w
1
2
x2
u=
1
2
v=
1
–3
w=
–1
–2
3
2
(1, 2)
u
1
–2
–1
1
w
x1
2
–1
v
(–1, –2)
FIGURE
–2
1
Vectors Are Directed
Line Segments
–3
(1, –3)
The Scalar Product of Two Vectors
An important result of multiplying two vectors is the scalar product. To define the scalar product of two vectors, suppose we have a row vector u = [u1 u2 un] and a column vector
v1
v2
v vn
of the same dimension. The scalar product of u and v (written u v) is the number
u1v1 u2v2 unvn.
For the scalar product of two vectors to be defined, the first vector must be a row vector and the second vector must be a column vector. For example, if
u [1
2
3]
and
2
v 1
2
then u v 1(2) 2(1) 3(2) 10. By these rules for computing a scalar product, if
u
2
1
and
v [2
3]
then u v is not defined. Also, if
u [1
2
3]
and
v
4
3
then u v is not defined because the vectors are of two different dimensions.
Note that two vectors are perpendicular if and only if their scalar product equals 0.
Thus, the vectors [1 1] and [1 1] are perpendicular.
We note that u v u v cos u, where u is the length of the vector u and u is the
angle between the vectors u and v.
2 . 1 Matrices and Vectors
13
Matrix Operations
We now describe the arithmetic operations on matrices that are used later in this book.
The Scalar Multiple of a Matrix
Given any matrix A and any number c (a number is sometimes referred to as a scalar),
the matrix cA is obtained from the matrix A by multiplying each element of A by c. For
example,
A
if
1 0,
1
2
then
3A 3 0
3
6
For c 1, scalar multiplication of the matrix A is sometimes written as A.
Addition of Two Matrices
Let A [aij] and B [bij] be two matrices with the same order (say, m n). Then the
matrix C A B is defined to be the m n matrix whose ijth element is aij bij. Thus,
to obtain the sum of two matrices A and B, we add the corresponding elements of A and
B. For example, if
A
0
1
2
1
3
1
B
and
1 2 3
2
1 1
then
AB
11
0 2
22 33
0
1 1 1 1
2
0
0
0
.
0
This rule for matrix addition may be used to add vectors of the same dimension. For example, if u [1 2] and v [2 1], then u v [1 2 2 1] [3 3]. Vectors
may be added geometrically by the parallelogram law (see Figure 2).
We can use scalar multiplication and the addition of matrices to define the concept
of a line segment. A glance at Figure 1 should convince you that any point u in the
m-dimensional plane corresponds to the m-dimensional vector u formed by joining the
origin to the point u. For any two points u and v in the m-dimensional plane, the line
segment joining u and v (called the line segment uv) is the set of all points in the
m-dimensional plane that correspond to the vectors cu (1 c)v, where 0 c 1
(Figure 3). For example, if u (1, 2) and v (2, 1), then the line segment uv consists
x2
v=
u=
u+v =
2 1
1 2
3 3
3
(3, 3)
2
(1, 2)
u+v
u
1
(2, 1)
v
(0, 0)
FIGURE
2
1
Addition of Vectors
14
CHAPTER
2 Basic Linear Algebra
2
3
x1
x2
u c = 1
2
1
2
c =
c = 0
v
1
FIGURE
3
Line Segment Joining
u (1, 2) and
v (2, 1)
1
x1
2
of the points corresponding to the vectors c[1 2] (1 c)[2 1] [2 c 1 c],
where 0 c 1. For c 0 and c 1, we obtain the endpoints of the line segment uv;
for c 12, we obtain the midpoint (0.5u 0.5v) of the line segment uv.
Using the parallelogram law, the line segment uv may also be viewed as the points corresponding to the vectors u c(v u), where 0 c 1 (Figure 4). Observe that for
c 0, we obtain the vector u (corresponding to point u), and for c 1, we obtain the
vector v (corresponding to point v).
The Transpose of a Matrix
Given any m n matrix
a11
a21
A am1
a12
a22
am2
a1n
a2n
amn
the transpose of A (written AT) is the n m matrix
a11
a12
T
A a1n
a21
a22
a2n
am1
am2
a
mn
x2
u c = 0
c =
u
1
2
c = 1
v
v
x1
–u
FIGURE
v – u
4
Representation of Line
Segment uv
2 . 1 Matrices and Vectors
15
Thus, AT is obtained from A by letting row 1 of A be column 1 of AT, letting row 2 of A
be column 2 of AT, and so on. For example,
1
A
4
if
2
5
3
,
6
Observe that (AT)T A. Let B [1
BT 2
1
1
A 2
3
T
then
4
5
6
2]; then
and
(BT)T [1
2] B
As indicated by these two examples, for any matrix A, (AT)T A.
Matrix Multiplication
Given two matrices A and B, the matrix product of A and B (written AB) is defined if and
only if
Number of columns in A number of rows in B
(1)
For the moment, assume that for some positive integer r, A has r columns and B has r
rows. Then for some m and n, A is an m r matrix and B is an r n matrix.
DEFINITION ■
The matrix product C AB of A and B is the m n matrix C whose ijth
element is determined as follows:
ijth element of C scalar product of row i of A column j of B ■
(2)
If Equation (1) is satisfied, then each row of A and each column of B will have the
same number of elements. Also, if (1) is satisfied, then the scalar product in Equation (2)
will be defined. The product matrix C AB will have the same number of rows as A and
the same number of columns as B.
EXAMPLE
1
Matrix Multiplication
Compute C AB for
1
A
2
Solution
2
3
and
1
B 2
1
1
3
2
Because A is a 2 3 matrix and B is a 3 2 matrix, AB is defined, and C will be a
2 2 matrix. From Equation (2),
CHAPTER
1
1
2] 2 1(1) 1(2) 2(1) 5
1
c12 [1
1
1
2] 3 1(1) 1(3) 2(2) 8
2
c21 [2
1
1
3] 2 2(1) 1(2) 3(1) 7
1
c11 [1
16
1
1
2 Basic Linear Algebra
1
c22 [2 1 3] 3 2(1) 1(3) 3(2) 11
2
5
8
C AB 7 11
EXAMPLE
2
Column Vector Times Row Vector
Find AB for
A
Solution
4
3
B [1
and
2]
Because A has one column and B has one row, C AB will exist. From Equation (2), we
know that C is a 2 2 matrix with
c11 3(1) 3
c12 3(2) 6
c21 4(1) 4
c22 4(2) 8
Thus,
C
EXAMPLE
3
4 8
3
6
Row Vector Times Column Vector
Compute D BA for the A and B of Example 2.
Solution
In this case, D will be a 1 1 matrix (or a scalar). From Equation (2),
d11 [1
4 1(3) 2(4) 11
2]
3
Thus, D [11]. In this example, matrix multiplication is equivalent to scalar multiplication of a row and column vector.
Recall that if you multiply two real numbers a and b, then ab ba. This is called the
commutative property of multiplication. Examples 2 and 3 show that for matrix multiplication, it may be that AB BA. Matrix multiplication is not necessarily commutative. (In
some cases, however, AB BA will hold.)
EXAMPLE
4
Undefined Matrix Product
Show that AB is undefined if
1
A
3
Solution
2
4
and
1
B 0
1
1
1
2
This follows because A has two columns and B has three rows. Thus, Equation (1) is not
satisfied.
2 . 1 Matrices and Vectors
17
TA B L E
1
Gallons of Crude Oil Required to Produce 1 Gallon
of Gasoline
Crude
Oil
1
2
Premium
Unleaded
Regular
Unleaded
Regular
Leaded
3
4
1
4
2
3
1
3
1
4
3
4
Many computations that commonly occur in operations research (and other branches
of mathematics) can be concisely expressed by using matrix multiplication.To illustrate
this, suppose an oil company manufactures three types of gasoline: premium unleaded,
regular unleaded, and regular leaded. These gasolines are produced by mixing two types
of crude oil: crude oil 1 and crude oil 2. The number of gallons of crude oil required to
manufacture 1 gallon of gasoline is given in Table 1.
From this information, we can find the amount of each type of crude oil needed to
manufacture a given amount of gasoline. For example, if the company wants to produce
10 gallons of premium unleaded, 6 gallons of regular unleaded, and 5 gallons of regular
leaded, then the company’s crude oil requirements would be
Crude 1 required (34) (10) (23) (6) (14) 5 12.75 gallons
Crude 2 required (14) (10) (13) (6) (34) 5 8.25 gallons
More generally, we define
pU gallons of premium unleaded produced
rU gallons of regular unleaded produced
rL gallons of regular leaded produced
c1 gallons of crude 1 required
c2 gallons of crude 2 required
Then the relationship between these variables may be expressed by
c1 (34) pU (23) rU (14) rL
c2 (14) pU (13) rU (34) rL
Using matrix multiplication, these relationships may be expressed by
c1
c2
3
4
1
4
2
3
1
3
1
4
3
4
pU
rU
rL
Properties of Matrix Multiplication
To close this section, we discuss some important properties of matrix multiplication. In
what follows, we assume that all matrix products are defined.
1
Row i of AB (row i of A)B. To illustrate this property, let
1
A
2
1
1
2
3
and
Then row 2 of the 2 2 matrix AB is equal to
18
CHAPTER
2 Basic Linear Algebra
1
B 2
1
1
3
2
[2
1
3] 2
1
1
1
3 [7
2
11]
This answer agrees with Example 1.
2 Column j of AB A(column j of B). Thus, for A and B as given, the first column
of AB is
1
1 1 2
5
2 2 1 3
7
1
Properties 1 and 2 are helpful when you need to compute only part of the matrix AB.
3
Matrix multiplication is associative. That is, A(BC) (AB)C. To illustrate, let
A [1
B
2],
4 5,
2
3
C
1
2
Then AB [10 13] and (AB)C 10(2) 13(1) [33].
On the other hand,
13
7
BC so A(BC) 1(7) 2(13) [33]. In this case, A(BC) (AB)C does hold.
Matrix multiplication is distributive. That is, A(B C) AB AC and (B C)D BD CD.
4
Matrix Multiplication with Excel
Using the Excel MMULT function, it is easy to multiply matrices. To illustrate, let’s use
Excel to find the matrix product AB that we found in Example 1 (see Figure 5 and file
Mmult.xls). We proceed as follows:
Mmult.xls
Step 1
Enter A and B in D2:F3 and D5:E7, respectively.
Step 2
Select the range (D9:E10) in which the product AB will be computed.
Step 3
In the upper left-hand corner (D9) of the selected range, type the formula
MMULT(D2:F3,D5:E7)
Then hit Control Shift Enter (not just Enter), and the desired matrix product will be
computed. Note that MMULT is an array function and not an ordinary spreadsheet function. This explains why we must preselect the range for AB and use Control Shift Enter.
FIGURE
5
A
B
1 MatrixMultiplication
2
3
4
5
6
7
8
9
10
11
C
A
B
C
D
E
F
1
2
1
1
1
2
1
1
3
2
5
7
8
11
2
3
2 . 1 Matrices and Vectors
19
PROBLEMS
Group A
Group B
1
1 For A 4
7
a A
d AT
g BA
2
5
8
3
6
and
9
b 3A
e BT
1
2
B 0 1 , find:
1
2
c A 2B
f AB
2 Only three brands of beer (beer 1, beer 2, and beer 3)
are available for sale in Metropolis. From time to time,
people try one or another of these brands. Suppose that at
the beginning of each month, people change the beer they
are drinking according to the following rules:
30% of the people who prefer beer 1 switch to beer 2.
20% of the people who prefer beer 1 switch to beer 3.
30% of the people who prefer beer 2 switch to beer 3.
30% of the people who prefer beer 3 switch to beer 2.
10% of the people who prefer beer 3 switch to beer 1.
For i 1, 2, 3, let xi be the number who prefer beer i at
the beginning of this month and yi be the number who prefer beer i at the beginning of next month. Use matrix multiplication to relate the following:
3
Prove that matrix multiplication is associative.
4
Show that for any two matrices A and B, (AB)T BT AT.
5
An n n matrix A is symmetric if A AT.
a Show that for any n n matrix, AAT is a symmetric matrix.
b Show that for any n n matrix A, (A AT) is a
symmetric matrix.
6 Suppose that A and B are both n n matrices. Show
that computing the matrix product AB requires n3
multiplications and n3 n2 additions.
7 The trace of a matrix is the sum of its diagonal
elements.
a For any two matrices A and B, show that trace
(A B) trace A trace B.
b For any two matrices A and B for which the products
AB and BA are defined, show that trace AB trace BA.
y1
y2
y3
2.2
x1
x2
x3
Matrices and Systems of Linear Equations
Consider a system of linear equations given by
a11x1 a12x2 a1nxn b1
a21x1 a22x2 a2nxn b2
am1x1 am2x2 amnxn bm
(3)
In Equation (3), x1, x2, . . . , xn are referred to as variables, or unknowns, and the aij’s
and bi’s are constants. A set of equations such as (3) is called a linear system of m equations in n variables.
DEFINITION ■
A solution to a linear system of m equations in n unknowns is a set of values for
the unknowns that satisfies each of the system’s m equations. ■
To understand linear programming, we need to know a great deal about the properties
of solutions to linear equation systems. With this in mind, we will devote much effort to
studying such systems.
We denote a possible solution to Equation (3) by an n-dimensional column vector x,
in which the ith element of x is the value of xi. The following example illustrates the concept of a solution to a linear system.
20
CHAPTER
2 Basic Linear Algebra
EXAMPLE
5
Solution to Linear System
Show that
x
2
1
is a solution to the linear system
x1 2x2 5
2x1 x2 0
(4)
and that
x
1
x
2
3
is not a solution to linear system (4).
Solution
To show that
1
is a solution to Equation (4), we substitute x1 1 and x2 2 in both equations and check
that they are satisfied: 1 2(2) 5 and 2(1) 2 0.
The vector
x
1
3
is not a solution to (4), because x1 3 and x2 1 fail to satisfy 2x1 x2 0.
Using matrices can greatly simplify the statement and solution of a system of linear
equations. To show how matrices can be used to compactly represent Equation (3), let
a12
a11
a21
A am1
a22
am2
a1n
a2n
,
amn
x1
x2
x ,
xn
b1
b2
b bm
Then (3) may be written as
Ax b
(5)
Observe that both sides of Equation (5) will be m 1 matrices (or m 1 column vectors). For the matrix Ax to equal the matrix b (or for the vector Ax to equal the vector b),
their corresponding elements must be equal. The first element of Ax is the scalar product
of row 1 of A with x. This may be written as
x1
[a11
a12
x2
a1n] a11x1 a12x2 a1nxn
xn
This must equal the first element of b (which is b1). Thus, (5) implies that a11x1 a12x2 a1nxn b1. This is the first equation of (3). Similarly, (5) implies that the scalar
2 . 2 Matrices and Systems of Linear Equations
21
product of row i of A with x must equal bi, and this is just the ith equation of (3). Our discussion shows that (3) and (5) are two different ways of writing the same linear system. We
call (5) the matrix representation of (3). For example, the matrix representation of (4) is
2
x 0
1
x1
2
1
5
2
Sometimes we abbreviate (5) by writing
Ab
(6)
If A is an m n matrix, it is assumed that the variables in (6) are x1, x2, . . . , xn. Then
(6) is still another representation of (3). For instance, the matrix
1
0
1
2
1
1
3
2
1
2
3
1
represents the system of equations
x1 2x2 3x3 2
x2 2x3 3
x1 x2 x3 1
PROBLEM
Group A
1 Use matrices to represent the following system of
equations in two different ways:
2.3
x1 x2 4
2x1 x2 6
x1 3x2 8
The Gauss–Jordan Method for Solving Systems of Linear Equations
We develop in this section an efficient method (the Gauss–Jordan method) for solving a
system of linear equations. Using the Gauss–Jordan method, we show that any system of
linear equations must satisfy one of the following three cases:
Case 1
The system has no solution.
Case 2
The system has a unique solution.
Case 3
The system has an infinite number of solutions.
The Gauss–Jordan method is also important because many of the manipulations used in
this method are used when solving linear programming problems by the simplex algorithm (see Chapter 4).
Elementary Row Operations
Before studying the Gauss–Jordan method, we need to define the concept of an elementary row operation (ERO). An ERO transforms a given matrix A into a new matrix A
via one of the following operations.
22
CHAPTER
2 Basic Linear Algebra
Type 1 ERO
A is obtained by multiplying any row of A by a nonzero scalar. For example, if
1
A 1
0
2
3
1
3
5
2
4
6
3
then a Type 1 ERO that multiplies row 2 of A by 3 would yield
1
A 3
0
2
9
1
3
15
2
4
18
3
Type 2 ERO
Begin by multiplying any row of A (say, row i) by a nonzero scalar c. For some j i, let
row j of A c(row i of A) row j of A, and let the other rows of A be the same as the
rows of A.
For example, we might multiply row 2 of A by 4 and replace row 3 of A by 4(row 2
of A) row 3 of A. Then row 3 of A becomes
4 [1
3
5
6] [0
1
2
3] [4
13
22
27]
and
1
A 1
4
2
3
13
3
5
22
4
6
27
Type 3 ERO
Interchange any two rows of A. For instance, if we interchange rows 1 and 3 of A, we
obtain
0
A 1
1
1
3
2
2
5
3
3
6
4
Type 1 and Type 2 EROs formalize the operations used to solve a linear equation system. To solve the system of equations
x1 x2 2
2x1 4x2 7
(7)
we might proceed as follows. First replace the second equation in (7) by 2(first equation in (7)) second equation in (7). This yields the following linear system:
x1 x2 2
2x2 3
(7.1)
Then multiply the second equation in (7.1) by 12, yielding the system
x1 x2 2
x2 32
(7.2)
Finally, replace the first equation in (7.2) by 1[second equation in (7.2)] first equation in (7.2). This yields the system
2 . 3 The Gauss–Jordan Method for Solving Systems of Linear Equations
23
1
2
x2 32
x1 12 and
x1
(7.3)
System (7.3) has the unique solution
x2 32. The systems (7), (7.1), (7.2),
and (7.3) are equivalent in that they have the same set of solutions. This means that x1 1
3
and x2 is also the unique solution to the original system, (7).
2
2
If we view (7) in the augmented matrix form (Ab), we see that the steps used to solve
(7) may be seen as Type 1 and Type 2 EROs applied to Ab. Begin with the augmented
matrix version of (7):
2
1
1
4
7
2
(7 )
Now perform a Type 2 ERO by replacing row 2 of (7 ) by 2(row 1 of (7 )) row 2 of
(7 ). The result is
0 2 3
1 1
2
(7.1 )
which corresponds to (7.1). Next, we multiply row 2 of (7.1 ) by
sulting in
1
2
(a Type 1 ERO), re-
1
0
1
1
2
(7.2 )
3
2
which corresponds to (7.2). Finally, perform a Type 2 ERO by replacing row 1 of (7.2 )
by 1(row 2 of (7.2 )) row 1 of (7.2 ). The result is
1
0
0
1
1
2
3
2
(7.3 )
which corresponds to (7.3). Translating (7.3 ) back into a linear system, we obtain the system x1 12 and x2 32, which is identical to (7.3).
Finding a Solution by the Gauss–Jordan Method
The discussion in the previous section indicates that if the matrix A b is obtained from
Ab via an ERO, the systems Ax b and A x b are equivalent. Thus, any sequence of
EROs performed on the augmented matrix Ab corresponding to the system Ax b will
yield an equivalent linear system.
The Gauss–Jordan method solves a linear equation system by utilizing EROs in a systematic fashion. We illustrate the method by finding the solution to the following linear system:
2x1 2x2 2x3 9
2x1 2x2 2x3 6
x1 2x2 2x3 5
(8)
The augmented matrix representation is
2
Ab 2
1
2
1
1
1
2
2
9
6
5
(8 )
Suppose that by performing a sequence of EROs on (8 ) we could transform (8 ) into
24
CHAPTER
2 Basic Linear Algebra
1
0
0
0
1
0
0
0
1
1
2
3
(9 )
We note that the result obtained by performing an ERO on a system of equations can
also be obtained by multiplying both sides of the matrix representation of the system of
equations by a particular matrix. This explains why EROs do not change the set of solutions to a system of equations.
Matrix (9 ) corresponds to the following linear system:
x1
x2
1
2
x3 3
(9)
System (9) has the unique solution x1 1, x2 2, x3 3. Because (9 ) was obtained
from (8 ) by a sequence of EROs, we know that (8) and (9) are equivalent linear systems.
Thus, x1 1, x2 2, x3 3 must also be the unique solution to (8). We now show how
we can use EROs to transform a relatively complicated system such as (8) into a relatively
simple system like (9). This is the essence of the Gauss–Jordan method.
We begin by using EROs to transform the first column of (8 ) into
1
0
0
Then we use EROs to transform the second column of the resulting matrix into
0
1
0
Finally, we use EROs to transform the third column of the resulting matrix into
0
0
1
As a final result, we will have obtained (9 ). We now use the Gauss–Jordan method to
solve (8). We begin by using a Type 1 ERO to change the element of (8 ) in the first row
and first column into a 1. Then we add multiples of row 1 to row 2 and then to row 3
(these are Type 2 EROs). The purpose of these Type 2 EROs is to put zeros in the rest of
the first column. The following sequence of EROs will accomplish these goals.
Step 1
Multiply row 1 of (8 ) by 12. This Type 1 ERO yields
1
A1b1 2
1
1 12
1 2
1 2
9
2
6
5
Replace row 2 of A1b1 by 2(row 1 of A1b1) row 2 of A1b1. The result of
this Type 2 ERO is
Step 2
1
A2b2 0
1
1 12
3 1
1 2
9
2
3
5
2 . 3 The Gauss–Jordan Method for Solving Systems of Linear Equations
25
Replace row 3 of A2b2 by 1(row 1 of A2b2 row 3 of A2b2. The result of this
Type 2 ERO is
9
1
1 12
2
A3b3 0 3 1 3
Step 3
0
2
3
2
1
2
The first column of (8 ) has now been transformed into
1
0
0
By our procedure, we have made sure that the variable x1 occurs in only a single equation
and in that equation has a coefficient of 1. We now transform the second column of A3b3 into
0
1
0
We begin by using a Type 1 ERO to create a 1 in row 2 and column 2 of A3b3. Then we
use the resulting row 2 to perform the Type 2 EROs that are needed to put zeros in the
rest of column 2. Steps 4–6 accomplish these goals.
Step 4
Multiply row 2 of A3b3 by 13.The result of this Type 1 ERO is
1
A4b4 0
0
1
1
2
1 13
3
2
2
9
2
1
1
2
Replace row 1 of A4b4 by 1(row 2 of A4b4) row 1 of A4b4. The result of
this Type 2 ERO is
Step 5
1
A5b5 0
0
0
1
2
5
6
13
3
2
7
2
1
1
2
Step 6 Replace row 3 of A5b5 by 2(row 2 of A5b5) row 3 of A5b5. The result of this
Type 2 ERO is
5
7
1 0
6
2
A6b6 0 1 13 1
5
5
0 0
6
2
Column 2 has now been transformed into
0
1
0
Observe that our transformation of column 2 did not change column 1.
To complete the Gauss–Jordan procedure, we must transform the third column of
A6b6 into
0
0
1
26
CHAPTER
2 Basic Linear Algebra
We first use a Type 1 ERO to create a 1 in the third row and third column of A6b6. Then
we use Type 2 EROs to put zeros in the rest of column 3. Steps 7–9 accomplish these
goals.
Step 7
Multiply row 3 of A6b6 by 65. The result of this Type 1 ERO is
1
A7b7 0
0
0
1
0
5
6
13
7
2
1
3
3
Replace row 1 of A7b7 by 56(row 3 of A7b7) row 1 of A7b7. The result of
this Type 2 ERO is
Step 8
1
A8b8 0
0
0
1
0
0
13
1
1
1
3
Replace row 2 of A8b8 by 13(row 3 of A8b8) row 2 of A8b8. The result of this
Type 2 ERO is
Step 9
1
A9b9 0
0
0
1
0
0
0
1
1
2
3
A9b9 represents the system of equations
x1x2x3 1
x1x2x3 2
x1x2x3 3
(9)
Thus, (9) has the unique solution x1 1, x2 2, x3 3. Because (9) was obtained from
(8) via EROs, the unique solution to (8) must also be x1 1, x2 2, x3 3.
The reader might be wondering why we defined Type 3 EROs (interchanging of rows).
To see why a Type 3 ERO might be useful, suppose you want to solve
2x2 x3 6
x1 x2 x3 2
2x1 x2 x3 4
(10)
To solve (10) by the Gauss–Jordan method, first form the augmented matrix
0
Ab 1
2
2
1
1
1
1
1
6
2
4
The 0 in row 1 and column 1 means that a Type 1 ERO cannot be used to create a 1 in row
1 and column 1. If, however, we interchange rows 1 and 2 (a Type 3 ERO), we obtain
1
0
2
1
2
1
1
1
1
2
6
4
(10 )
Now we may proceed as usual with the Gauss–Jordan method.
2 . 3 The Gauss–Jordan Method for Solving Systems of Linear Equations
27
Special Cases: No Solution
or an Infinite Number of Solutions
Some linear systems have no solution, and some have an infinite number of solutions. The
following two examples illustrate how the Gauss–Jordan method can be used to recognize
these cases.
EXAMPLE
6
Linear System with No Solution
Find all solutions to the following linear system:
x1 2x2 3
2x1 4x2 4
Solution
(11)
We apply the Gauss–Jordan method to the matrix
Ab 2 4 4
1
2
3
We begin by replacing row 2 of Ab by 2(row 1 of Ab) row 2 of Ab. The result of
this Type 2 ERO is
1 2
3
(12)
0 0 2
We would now like to transform the second column of (12) into
1
0
but this is not possible. System (12) is equivalent to the following system of equations:
x1 2x2 3
0x1 0x2 2
(12 )
Whatever values we give to x1 and x2, the second equation in (12 ) can never be satisfied.
Thus, (12 ) has no solution. Because (12 ) was obtained from (11) by use of EROs, (11)
also has no solution.
Example 6 illustrates the following idea: If you apply the Gauss–Jordan method to a linear system and obtain a row of the form [0 0 0c] (c 0), then the original linear system has no solution.
EXAMPLE
7
Linear System with Infinite Number of Solutions
Apply the Gauss–Jordan method to the following linear system:
1
x1 x2
x2 x3 3
x1 2x2 x3 4
Solution
The augmented matrix form of (13) is
1
Ab 0
1
28
CHAPTER
2 Basic Linear Algebra
1
1
2
0
1
1
1
3
4
(13)
We begin by replacing row 3 (because the row 2, column 1 value is already 0) of Ab by
1(row 1 of Ab) row 3 of Ab. The result of this Type 2 ERO is
1
A1b1 0
0
1
1
1
0
1
1
1
3
3
(14)
Next we replace row 1 of A1b1 by 1(row 2 of A1b1) row 1 of A1b1. The result of
this Type 2 ERO is
1
A2b2 0
0
0
1
1
1
1
1
2
3
3
Now we replace row 3 of A2b2 by 1(row 2 of A2b2) row 3 of A2b2. The result of
this Type 2 ERO is
1
A3b3 0
0
0
1
0
1
1
0
2
3
0
We would now like to transform the third column of A3b3 into
0
0
1
but this is not possible. The linear system corresponding to A3b3 is
0x1 0x2 0x3 2
0x1 0x2 0x3 3
0x1 0x2 0x3 0
(14.1)
(14.2)
(14.3)
Suppose we assign an arbitrary value k to x3. Then (14.1) will be satisfied if x1 k 2,
or x1 k 2. Similarly, (14.2) will be satisfied if x2 k 3, or x2 3 k. Of course,
(14.3) will be satisfied for any values of x1, x2, and x3. Thus, for any number k, x1 k 2,
x2 3 k, x3 k is a solution to (14). Thus, (14) has an infinite number of solutions (one
for each number k). Because (14) was obtained from (13) via EROs, (13) also has an infinite
number of solutions. A more formal characterization of linear systems that have an infinite
number of solutions will be given after the following summary of the Gauss–Jordan method.
Summary of the Gauss–Jordan Method
Step 1
To solve Ax b, write down the augmented matrix Ab.
At any stage, define a current row, current column, and current entry (the entry
in the current row and column). Begin with row 1 as the current row, column 1 as the current column, and a11 as the current entry. (a) If a11 (the current entry) is nonzero, then
use EROs to transform column 1 (the current column) to
Step 2
1
0
0
2 . 3 The Gauss–Jordan Method for Solving Systems of Linear Equations
29
Then obtain the new current row, column, and entry by moving down one row and one
column to the right, and go to step 3. (b) If a11 (the current entry) equals 0, then do a
Type 3 ERO involving the current row and any row that contains a nonzero number in the
current column. Use EROs to transform column 1 to
1
0
0
Then obtain the new current row, column, and entry by moving down one row and one
column to the right. Go to step 3. (c) If there are no nonzero numbers in the first column,
then obtain a new current column and entry by moving one column to the right. Then go
to step 3.
(a) If the new current entry is nonzero, then use EROs to transform it to 1 and
the rest of the current column’s entries to 0. When finished, obtain the new current row,
column, and entry. If this is impossible, then stop. Otherwise, repeat step 3. (b) If the
current entry is 0, then do a Type 3 ERO with the current row and any row that contains a nonzero number in the current column. Then use EROs to transform that current entry to 1 and the rest of the current column’s entries to 0. When finished, obtain
the new current row, column, and entry. If this is impossible, then stop. Otherwise, repeat step 3. (c) If the current column has no nonzero numbers below the current row,
then obtain the new current column and entry, and repeat step 3. If it is impossible, then
stop.
This procedure may require “passing over” one or more columns without transforming them (see Problem 8).
Step 3
Write down the system of equations A x b that corresponds to the matrix A b
obtained when step 3 is completed. Then A x b will have the same set of solutions as
Ax b.
Step 4
Basic Variables and Solutions to Linear Equation Systems
To describe the set of solutions to A x b (and Ax b), we need to define the concepts
of basic and nonbasic variables.
DEFINITION ■
After the Gauss–Jordan method has been applied to any linear system, a variable
that appears with a coefficient of 1 in a single equation and a coefficient of 0 in
all other equations is called a basic variable (BV). ■
Any variable that is not a basic variable is called a nonbasic variable (NBV).
■
Let BV be the set of basic variables for A x b and NBV be the set of nonbasic variables for A x b . The character of the solutions to A x b depends on which of the
following cases occurs.
Case 1 A x b has at least one row of form [0 0 0c] (c
0). Then
Ax b has no solution (recall Example 6). As an example of Case 1, suppose that
when the Gauss–Jordan method is applied to the system Ax b, the following matrix
is obtained:
30
CHAPTER
2 Basic Linear Algebra
1
0
A b 0
0
0
0
1
0
0
0
0
0
1
0
0
1
2
3
0
0
1
1
1
0
2
In this case, A x b (and Ax b) has no solution.
Suppose that Case 1 does not apply and NBV, the set of nonbasic variables, is
empty. Then A x b (and Ax b) will have a unique solution. To illustrate this, we recall that in solving
2x1 2x2 x3 9
2x1 x2 2x3 6
2x1 x2 2x3 5
Case 2
the Gauss–Jordan method yielded
1
A b 0
0
0
1
0
0
0
1
1
2
3
In this case, BV {x1, x2, x3} and NBV is empty. Then the unique solution to A x b
(and Ax b) is x1 1, x2 2, x3 3.
Suppose that Case 1 does not apply and NBV is nonempty. Then A x b (and
Ax b) will have an infinite number of solutions. To obtain these, first assign each nonbasic variable an arbitrary value. Then solve for the value of each basic variable in terms
of the nonbasic variables. For example, suppose
Case 3
1
0
A b 0
0
0
1
0
0
0
0
1
0
1
2
0
0
1
0
1
0
3
2
1
0
(15)
Because Case 1 does not apply, and BV {x1, x2, x3} and NBV {x4, x5}, we have an
example of Case 3: A x b (and Ax b) will have an infinite number of solutions. To
see what these solutions look like, write down A x b :
0x1
0x1
0x1
0x1
0x2
0x2
0x2
0x2
0x3
0x3
0x3
0x3
0x4
2x4
0x4
0x4
0x5
0x5
0x5
0x5
3
2
1
0
(15.1)
(15.2)
(15.3)
(15.4)
Now assign the nonbasic variables (x4 and x5) arbitrary values c and k, with x4 c and
x5 k. From (15.1), we find that x1 3 c k. From (15.2), we find that x2 2
2c. From (15.3), we find that x3 1 k. Because (15.4) holds for all values of the
variables, x1 3 c k, x2 2 2c, x3 1 k, x4 c, and x5 k will, for any
values of c and k, be a solution to A x b (and Ax b).
Our discussion of the Gauss–Jordan method is summarized in Figure 6. We have devoted so much time to the Gauss–Jordan method because, in our study of linear programming, examples of Case 3 (linear systems with an infinite number of solutions) will
occur repeatedly. Because the end result of the Gauss–Jordan method must always be one
of Cases 1–3, we have shown that any linear system will have no solution, a unique solution, or an infinite number of solutions.
2 . 3 The Gauss–Jordan Method for Solving Systems of Linear Equations
31
Does A b have a row [0 0 · · · 0 c] (c ≠ 0)?
NO
YES
Find BV
and NBV
Ax = b has
no solution
Is NBV
empty?
FIGURE
6
Description of
Gauss–Jordan Method
for Solving Linear
Equations
YES
NO
Ax = b has a
unique solution
Ax = b has an
infinite number
of solutions
PROBLEMS
Group A
Use the Gauss–Jordan method to determine whether each of
the following linear systems has no solution, a unique solution, or an infinite number of solutions. Indicate the solutions (if any exist).
1 x1 x2 x3 x4 3
1 x1 x2 x3 x4 4
1 x1 2x2 x3 x4 8
3
x1 x2 1
2 2x1 x2 3
2 3x1 2x2 4
Group B
9 Suppose that a linear system Ax b has more variables
than equations. Show that Ax b cannot have a unique
solution.
4 2x1 x2 x3 x4 6
2
x1 x2 x3 x4 4
2.4
7 x1 x2 2x3 2
2 x1 x2 2x3 3
2 x1 x2 x3 3
8 x1 x2 x3 x4 1
2 x1 x2 2x3 x4 2
2 x1 x2 2x3 x4 3
2 x1 x2 x3 4
2 x1 2x2 x3 6
x4 5 x1x2 x2 2 x2x2x 2 2x4 2 x2x 2x3 0.5x4 x2
2x3 x4 6 x1 2x2 2x3 4
2 x1 2x2 x3 4
2 xx1 2x2 x3 0
5
5
1
3
Linear Independence and Linear Dependence†
In this section, we discuss the concepts of a linearly independent set of vectors, a linearly dependent set of vectors, and the rank of a matrix. These concepts will be useful
in our study of matrix inverses.
Before defining a linearly independent set of vectors, we need to define a linear combination of a set of vectors. Let V {v1, v2, . . . , vk} be a set of row vectors all of
which have the same dimension.
†
This section covers topics that may be omitted with no loss of continuity.
32
CHAPTER
2 Basic Linear Algebra
DEFINITION ■
A linear combination of the vectors in V is any vector of the form c1v1 c2v2
ckvk, where c1, c2, . . . , ck are arbitrary scalars. ■
For example, if V {[1
2], [2
1]}, then
2v1 v2 2([1 2]) [2 1] [0
v1 3v2 [1 2] 3([2 1]) [7
0v1 3v2 [0 0] 3([2 1]) [6
3]
5]
3]
are linear combinations of vectors in V. The foregoing definition may also be applied to
a set of column vectors.
Suppose we are given a set V {v1, v2, . . . , vk} of m-dimensional row vectors. Let
0 [0 0 0] be the m-dimensional 0 vector. To determine whether V is a linearly
independent set of vectors, we try to find a linear combination of the vectors in V that
adds up to 0. Clearly, 0v1 0v2 0vk is a linear combination of vectors in V that
adds up to 0. We call the linear combination of vectors in V for which c1 c2 ck 0 the trivial linear combination of vectors in V. We may now define linearly independent and linearly dependent sets of vectors.
DEFINITION ■
A set V of m-dimensional vectors is linearly independent if the only linear
combination of vectors in V that equals 0 is the trivial linear combination. ■
A set V of m-dimensional vectors is linearly dependent if there is a nontrivial
linear combination of the vectors in V that adds up to 0. ■
The following examples should clarify these definitions.
EXAMPLE
8
0 Vector Makes Set LD
Show that any set of vectors containing the 0 vector is a linearly dependent set.
Solution
EXAMPLE
9
To illustrate, we show that if V {[0 0], [1 0], [0 1]}, then V is linearly dependent,
because if, say, c1 0, then c1([0 0]) 0([1 0]) 0([0 1]) [0 0]. Thus, there
is a nontrivial linear combination of vectors in V that adds up to 0.
LI Set of Vectors
Show that the set of vectors V {[1 0], [0 1]} is a linearly independent set of vectors.
Solution
EXAMPLE
10
We try to find a nontrivial linear combination of the vectors in V that yields 0. This requires that we find scalars c1 and c2 (at least one of which is nonzero) satisfying
c1([1 0]) c2([0 1]) [0 0]. Thus, c1 and c2 must satisfy [c1 c2] [0 0]. This
implies c1 c2 0. The only linear combination of vectors in V that yields 0 is the trivial
linear combination. Therefore, V is a linearly independent set of vectors.
LD Set of Vectors
Show that V {[1
Solution
2], [2
4]} is a linearly dependent set of vectors.
Because 2([1 2]) 1([2 4]) [0 0], there is a nontrivial linear combination with
c1 2 and c2 1 that yields 0. Thus, V is a linearly dependent set of vectors.
Intuitively, what does it mean for a set of vectors to be linearly dependent? To understand
the concept of linear dependence, observe that a set of vectors V is linearly dependent (as
2 . 4 Linear Independence and Linear Dependence
33
x2
x2
v1 = 1 1 = AB
v2 = 2 2 = AC
v2 = 1 1
v1 = 1 0
3
3
C
2
1
FIGURE
(a) Two Linearly
Dependent Vectors
(b) Two Linearly
Independent Vectors
A
1
B
v2
v2
v1
7
2
1
2
3
x1
v1
a
1
2
3
x1
b
long as 0 is not in V ) if and only if some vector in V can be written as a nontrivial linear
combination of other vectors in V (see Problem 9 at the end of this section). For instance, in
Example 10, [2 4] 2([1 2]). Thus, if a set of vectors V is linearly dependent, the vectors in V are, in some way, not all “different” vectors. By “different” we mean that the direction specified by any vector in V cannot be expressed by adding together multiples of other
vectors in V. For example, in two dimensions it can be shown that two vectors are linearly
dependent if and only if they lie on the same line (see Figure 7).
The Rank of a Matrix
The Gauss–Jordan method can be used to determine whether a set of vectors is linearly
independent or linearly dependent. Before describing how this is done, we define the concept of the rank of a matrix.
Let A be any m n matrix, and denote the rows of A by r1, r2, . . . , rm. Also define
R {r1, r2, . . . , rm}.
DEFINITION ■
The rank of A is the number of vectors in the largest linearly independent subset of R. ■
The following three examples illustrate the concept of rank.
EXAMPLE
11
Matrix with 0 Rank
Show that rank A 0 for the following matrix:
A
Solution
EXAMPLE
12
0 0
0
0
For the set of vectors R {[0 0], [0, 0]}, it is impossible to choose a subset of R that
is linearly independent (recall Example 8).
Matrix with Rank of 1
Show that rank A 1 for the following matrix:
A
34
CHAPTER
2 Basic Linear Algebra
2 2
1
1
Solution
EXAMPLE
13
Here R {[1 1], [2 2]}. The set {[1 1]} is a linearly independent subset of R, so rank
A must be at least 1. If we try to find two linearly independent vectors in R, we fail because
2([1 1]) [2 2] [0 0]. This means that rank A cannot be 2. Thus, rank A must equal 1.
Matrix with Rank of 2
Show that rank A 2 for the following matrix:
A
Solution
0 1
1
0
Here R {[1 0], [0 1]}. From Example 9, we know that R is a linearly independent
set of vectors. Thus, rank A 2.
To find the rank of a given matrix A, simply apply the Gauss–Jordan method to the
matrix A. Let the final result be the matrix A
. It can be shown that performing a sequence
of EROs on a matrix does not change the rank of the matrix. This implies that rank A rank A
. It is also apparent that the rank of A
will be the number of nonzero rows in A
.
Combining these facts, we find that rank A rank A
number of nonzero rows in A
.
EXAMPLE
14
Using Gauss–Jordan Method to Find Rank of Matrix
Find
1
rank A 0
0
Solution
0
2
2
0
1
3
The Gauss–Jordan method yields the following sequence of matrices:
1
A 0
0
0
2
2
0
1
1 → 0
3
0
0 0
1
1
1 2 → 0
2 3
0
0 0
1
1
1 2 → 0
0 2
0
0 0
1
1
1 2 → 0
0 1
0
0
1
0
0
0
1
A
Thus, rank A rank A
3.
How to Tell Whether a Set of Vectors Is Linearly Independent
We now describe a method for determining whether a set of vectors V {v1, v2, . . . , vm}
is linearly independent.
Form the matrix A whose ith row is vi. A will have m rows. If rank A m, then V is
a linearly independent set of vectors, whereas if rank A m, then V is a linearly dependent set of vectors.
EXAMPLE
15
A Linearly Dependent Set of Vectors
Determine whether V {[1
of vectors.
0
0], [0
1
0], [1
1
0]} is a linearly independent set
2 . 4 Linear Independence and Linear Dependence
35
Solution
The Gauss–Jordan method yields the following sequence of matrices:
1
A 0
0
0
1
1
0
1
0 → 0
0
0
0
1
1
0
1
0 → 0
0
0
0
1
0
0
0 A
0
Thus, rank A rank A
2 3. This shows that V is a linearly dependent set of vectors. In
fact, the EROs used to transform A to A can be used to show that [1 1 0] [1 0 0] [0 1 0]. This equation also shows that V is a linearly dependent set of vectors.
PROBLEMS
Group A
Group B
Determine if each of the following sets of vectors is linearly
independent or linearly dependent.
7 Show that the linear system Ax b has a solution if and
only if b can be written as a linear combination of the
columns of A.
1
V {[1
0
1], [1
2
1], [2
2
2]}
2
V {[2
1
0], [1
2
0], [3
3
1]}
3
V {[2
1], [1
2]}
4
V {[2
0], [3
0]}
5
V
6
V
8 Suppose there is a collection of three or more twodimensional vectors. Provide an argument showing that the
collection must be linearly dependent.
9 Show that a set of vectors V (not containing the 0 vector)
is linearly dependent if and only if there exists some vector
in V that can be written as a nontrivial linear combination
of other vectors in V.
1 4 5
2 , 5 , 7
3 6 9
1 0 1
0 , 2 , 0
0 1 1
2.5
The Inverse of a Matrix
To solve a single linear equation such as 4x 3, we simply multiply both sides of the
equation by the multiplicative inverse of 4, which is 41, or 14. This yields 41(4x) (41)3, or x 34. (Of course, this method fails to work for the equation 0x 3, because
zero has no multiplicative inverse.) In this section, we develop a generalization of this
technique that can be used to solve “square” (number of equations number of unknowns) linear systems. We begin with some preliminary definitions.
DEFINITION ■
A square matrix is any matrix that has an equal number of rows and columns.
The diagonal elements of a square matrix are those elements aij such that i j.
■
■
A square matrix for which all diagonal elements are equal to 1 and all nondiagonal
elements are equal to 0 is called an identity matrix. ■
The m m identity matrix will be written as Im. Thus,
1
I2 0
36
CHAPTER
2 Basic Linear Algebra
0
,
1
1
I3 0
0
0
1
0
0
0,
1
If the multiplications Im A and AIm are defined, it is easy to show that Im A AIm A.
Thus, just as the number 1 serves as the unit element for multiplication of real numbers,
Im serves as the unit element for multiplication of matrices.
Recall that 14 is the multiplicative inverse of 4. This is because 4(14) (14)4 1. This
motivates the following definition of the inverse of a matrix.
DEFINITION ■
For a given m m matrix A, the m m matrix B is the inverse of A if
BA AB Im
(16)
(It can be shown that if BA Im or AB Im, then the other quantity will also equal
Im.) ■
Some square matrices do not have inverses. If there does exist an m m matrix B that
satisfies Equation (16), then we write B A1. For example, if
A
2
3
1
1
2
1
0
1
0
the reader can verify that
0
1
0
1
1
2 5
1
1
0
1
0
1
1
7 0
2
0
0
1
0
1
2
7
3
2 1
0
1
0
1
1
2 0
1
0
2
3
1
0
1
0
0
0
1
and
1
5
1
0
1
0
0
0
1
Thus,
1
A
1
5
1
0
1
0
1
7
2
To see why we are interested in the concept of a matrix inverse, suppose we want to
solve a linear system Ax b that has m equations and m unknowns. Suppose that A1
exists. Multiplying both sides of Ax b by A1, we see that any solution of Ax b must
also satisfy A1(Ax) A1b. Using the associative law and the definition of a matrix inverse, we obtain
or
or
(A1A)x A1b
Imx A1b
Imx A1b
This shows that knowing A1 enables us to find the unique solution to a square linear system. This is the analog of solving 4x 3 by multiplying both sides of the equation by 41.
The Gauss–Jordan method may be used to find A1 (or to show that A1 does not exist). To illustrate how we can use the Gauss–Jordan method to invert a matrix, suppose
we want to find A1 for
A
1 3
2
5
2 . 5 The Inverse of a Matrix
37
This requires that we find a matrix
c d A
a
b
1
that satisfies
1 3c d 0 1
2
5 a
b
1
0
(17)
From Equation (17), we obtain the following pair of simultaneous equations that must
be satisfied by a, b, c, and d:
1 3c 0; 1 3d 1
2
5 a
1
2
5 b
0
Thus, to find
c
a
(the first column of A1), we can apply the Gauss–Jordan method to the augmented matrix
1 3 0
2
5
1
Once EROs have transformed
1 3
2
5
to I2,
0
1
will have been transformed into the first column of A1. To determine
d
b
(the second column of A1), we apply EROs to the augmented matrix
1 3 1
2
5
0
When
1 3
2
5
has been transformed into I2,
1
0
will have been transformed into the second column of A1. Thus, to find each column of
A1, we must perform a sequence of EROs that transform
1 3
2
38
CHAPTER
2 Basic Linear Algebra
5
into I2. This suggests that we can find A1 by applying EROs to the 2 4 matrix
AI2 1
2
0 1
5
3
1
0
When
1 3
2
5
has been transformed to I2,
0
1
will have been transformed into the first column of A1, and
1
0
will have been transformed into the second column of A1. Thus, as A is transformed into
I2, I2 is transformed into A1. The computations to determine A1 follow.
Step 1
Multiply row 1 of AI2 by 12. This yields
A I 2
Step 2
3 0 1
0
1
0
5
2
1
2
1
2
12
0
1
Multiply row 2 of A I 2 by 2. This yields
A I2 Step 4
1
2
Replace row 2 of A I2 by 1(row 1 of A I2) row 2 of A I2. This yields
A I 2 Step 3
5
2
1
1
5
2
1
0
1
1 2
1
2
0
Replace row 1 of A I 2 by 52(row 2 of A I 2 ) row 1 of A I 2 . This yields
0 1 1
1
0
3
5
2
Because A has been transformed into I2, I2 will have been transformed into A1. Hence,
A1 1
3
5
2
The reader should verify that AA1 A1 A I2.
A Matrix May Not Have an Inverse
Some matrices do not have inverses. To illustrate, let
A
2 4
1
2
g h
(18)
2 . 5 The Inverse of a Matrix
39
and
A1 e
f
To find A1 we must solve the following pair of simultaneous equations:
2 4g 0
1 2 f
0
2 4h 1
1
2 e
1
(18.1)
(18.2)
When we try to solve (18.1) by the Gauss–Jordan method, we find that
2 4 0
1
2
1
is transformed into
0 0 2
1
2
1
This indicates that (18.1) has no solution, and A1 cannot exist.
Observe that (18.1) fails to have a solution, because the Gauss–Jordan method transforms A into a matrix with a row of zeros on the bottom. This can only happen if rank
A 2. If m m matrix A has rank A m, then A1 will not exist.
The Gauss–Jordan Method for Inverting an m m Matrix A
Step 1
Write down the m 2m matrix AIm.
Step 1 Use EROs to transform AIm into ImB. This will be possible only if rank A m.
In this case, B A1. If rank A m, then A has no inverse.
Using Matrix Inverses to Solve Linear Systems
As previously stated, matrix inverses can be used to solve a linear system Ax b in which
the number of variables and equations are equal. Simply multiply both sides of Ax b
by A1 to obtain the solution x A1b. For example, to solve
2x1 5x2 7
x1 3x2 4
(19)
write the matrix representation of (19):
1 3x 4
2
5 x1
7
2
Let
A
1 3
2
5
We found in the previous illustration that
A1 40
CHAPTER
2 Basic Linear Algebra
1
3
5
2
(20)
A
FIGURE
8
B
Inverting
a
Matrix
1
2
3
4
5
6
7
8
9
C
D
E
F
A
A
-1
G
H
2
3
-1
0
1
0
-1
2
1
1
-5
1
0
1
0
1
-7
2
Multiplying both sides of (20) by A1, we obtain
1
3
5 2
2 1
5 x1
3
3 x2
1
5 7
2 4
x 1
x1
1
2
Thus, x1 1, x2 1 is the unique solution to system (19).
Inverting Matrices with Excel
The Excel MINVERSE command makes it easy to invert a matrix. See Figure 8 and
file Minverse.xls. Suppose we want to invert the matrix
Minverse.xls
2
A 3
1
0
1
0
1
2
1
Simply enter the matrix in E3:G5 and select the range (we chose E7:G9) where you want A1
to be computed. In the upper left-hand corner of the range E7:G9 (cell E7), we enter the formula
MINVERSE(E3:G5)
and select Control Shift Enter. This enters an array function that computes A1 in the
range E7:G9. You cannot edit part of an array function, so if you want to delete A1, you
must delete the entire range where A1 is present.
PROBLEMS
Group A
Find A1 (if it exists) for the following matrices:
1
1
2
3
5
2
1 0 1
1 1 1
4
2 1 2
5 Use the answer to Problem 1
linear system:
x1 3x2 2x1 5x2 3
1
4
3
1
1
2
to
4
7
0
1
1
1
2
1
2 1
2 0
4 1
solve the following
6 Use the answer to Problem 2 to solve the following
linear system:
x1 x 2x3 4
4x1 x2 2x3 0
3x1 x2 x3 2
Group B
7 Show that a square matrix has an inverse if and only if
its rows form a linearly independent set of vectors.
8
Consider a square matrix B whose inverse is given by B1.
a In terms of B1, what is the inverse of the matrix
100B?
2 . 5 The Inverse of a Matrix
41
10 Suppose A has an inverse. Show that (AT)1 (A1)T.
(Hint: Use the fact that AA1 I, and take the transpose of
both sides.)
b Let B be the matrix obtained from B by doubling
every entry in row 1 of B. Explain how we could obtain
the inverse of B from B1.
c Let B be the matrix obtained from B by doubling
every entry in column 1 of B. Explain how we could obtain the inverse of B from B1.
11 A square matrix A is orthogonal if AAT I. What
properties must be possessed by the columns of an
orthogonal matrix?
9 Suppose that A and B both have inverses. Find the inverse
of the matrix AB.
2.6
Determinants
Associated with any square matrix A is a number called the determinant of A (often abbreviated as det A or A). Knowing how to compute the determinant of a square matrix
will be useful in our study of nonlinear programming.
For a 1 1 matrix A [a11],
det A a11
(21)
For a 2 2 matrix
A
a
a11
21
a12
a22
(22)
det A a11a22 a21a12
For example,
det
3 5 2(5) 3(4) 2
2
4
Before we learn how to compute det A for larger square matrices, we need to define the
concept of the minor of a matrix.
DEFINITION ■
If A is an m m matrix, then for any values of i and j, the ijth minor of A
(written Aij) is the (m 1) (m 1) submatrix of A obtained by deleting row i
and column j of A. ■
For example,
if
1
A 4
7
2
5
8
3
6,
9
then
A12 7 9
4
6
and
A32 4 6
1
3
Let A be any m m matrix. We may write A as
a11
a21
A am1
a12
a22
am2
a1n
a2n
a
mn
To compute det A, pick any value of i (i 1, 2, . . . , m) and compute det A:
det A (1)i1ai1(det Ai1) (1)i2ai2(det Ai2) (1)imaim(det Aim) (23)
42
CHAPTER
2 Basic Linear Algebra
Formula (23) is called the expansion of det A by the cofactors of row i. The virtue of (23) is
that it reduces the computation of det A for an m m matrix to computations involving only
(m 1) (m 1) matrices. Apply (23) until det A can be expressed in terms of 2 2
matrices. Then use Equation (22) to find the determinants of the relevant 2 2 matrices.
To illustrate the use of (23), we find det A for
1
A 4
7
2
5
8
3
6
9
We expand det A by using row 1 cofactors. Notice that a11 1, a12 2, and a13 3.
Also
A11 8 9
5
6
so by (22), det A11 5(9) 8(6) 3;
A12 7 9
4
6
so by (22), det A12 4(9) 7(6) 6; and
A13 7 8
4
5
so by (22), det A13 4(8) 7(5) 3. Then by (23),
det A (1)11a11(det A11) (1)12a12(det A12) (1)13a13(det A13)
(1)(1)(3) (1)(2)(6) (1)(3)(3) 3 12 9 0
The interested reader may verify that expansion of det A by either row 2 or row 3 cofactors also yields det A 0.
We close our discussion of determinants by noting that they can be used to invert
square matrices and to solve linear equation systems. Because we already have learned to
use the Gauss–Jordan method to invert matrices and to solve linear equation systems, we
will not discuss these uses of determinants.
PROBLEMS
Group A
Group B
1 2 3
1 Verify that det 4 5 6 0 by using expansions by
7 8 9
row 2 and row 3 cofactors.
1 0 0 0
0 2 0 0
2 Find det
0 0 3 0
0 0 0 5
4
a Show that for any 1 1 and 3 3 matrix, det A det A.
b Show that for any 2 2 and 4 4 matrix, det A det A.
c Generalize the results of parts (a) and (b).
3 A matrix is said to be upper triangular if for i j, aij 0. Show that the determinant of any upper triangular 3 3
matrix is equal to the product of the matrix’s diagonal
elements. (This result is true for any upper triangular matrix.)
2 . 6 Determinants
43
SUMMARY
Matrices
A matrix is any rectangular array of numbers. For the matrix A, we let aij represent the
element of A in row i and column j.
A matrix with only one row or one column may be thought of as a vector. Vectors appear in boldface type (v). Given a row vector u [u1 u2 un] and a column
v1
v2
v vn
of the same dimension, the scalar product of u and v (written u v) is the number
u1v1 u2v2 unvn.
Given two matrices A and B, the matrix product of A and B (written AB) is defined
if and only if the number of columns in A the number of rows in B. Suppose this is the
case and A has m rows and B has n columns. Then the matrix product C AB of A and
B is the m n matrix C whose ijth element is determined as follows: The ijth element of
C the scalar product of row i of A with column j of B.
Matrices and Linear Equations
The linear equation system
a11x1 a12x2 a1nxn b1
a21x1 a22x2 a2nxn b2
am1x1 am2x2 amnxn bm
may be written as Ax b or Ab, where
a11
a21
A am1
a12
a22
am2
a1n
a2n
,
a
mn
x1
x2
x ,
xn
b1
b2
b bm
The Gauss–Jordan Method
Using elementary row operations (EROs), we may solve any linear equation system.
From a matrix A, an ERO yields a new matrix A via one of three procedures.
Type 1 ERO
Obtain A by multiplying any row of A by a nonzero scalar.
Type 2 ERO
Multiply any row of A (say, row i) by a nonzero scalar c. For some j
i, let row j of
A c(row i of A) row j of A, and let the other rows of A be the same as the rows of A.
44
CHAPTER
2 Basic Linear Algebra
Type 3 ERO
Interchange any two rows of A.
The Gauss–Jordan method uses EROs to solve linear equation systems, as shown in the
following steps.
Step 1
To solve Ax b, write down the augmented matrix Ab.
Step 2 Begin with row 1 as the current row, column 1 as the current column, and a11 as
the current entry. (a) If a11 (the current entry) is nonzero, then use EROs to transform
column 1 (the current column) to
1
0
0
Then obtain the new current row, column, and entry by moving down one row and one
column to the right, and go to step 3. (b) If a11 (the current entry) equals 0, then do a
Type 3 ERO switch with any row with a nonzero value in the same column. Use EROs
to transform column 1 to
1
0
0
and proceed to step 3 after moving into a new current row, column, and entry. (c) If there
are no nonzero numbers in the first column, then proceed to a new current column and
entry. Then go to step 3.
(a) If the current entry is nonzero, use EROs to transform it to 1 and the rest of
the current column’s entries to 0. Obtain the new current row, column, and entry. If this
is impossible, then stop. Otherwise, repeat step 3. (b) If the current entry is 0, then do a
Type 3 ERO switch with any row with a nonzero value in the same column. Transform
the column using EROs and move to the next current entry. If this is impossible, then stop.
Otherwise, repeat step 3. (c) If the current column has no nonzero numbers below the current row, then obtain the new current column and entry, and repeat step 3. If it is impossible, then stop.
This procedure may require “passing over” one or more columns without transforming them.
Step 3
Write down the system of equations A x b that corresponds to the matrix A b
obtained when step 3 is completed. Then A x b will have the same set of solutions as
Ax b.
Step 4
To describe the set of solutions to A x b (and Ax b), we define the concepts of
basic and nonbasic variables. After the Gauss–Jordan method has been applied to any linear system, a variable that appears with a coefficient of 1 in a single equation and a coefficient of 0 in all other equations is called a basic variable. Any variable that is not a
basic variable is called a nonbasic variable.
2 . 5 Summary
45
Let BV be the set of basic variables for A x b and NBV be the set of nonbasic variables for A x b .
Case 1 A x b contains at least one row of the form [0
case, Ax b has no solution.
0
0c](c
0). In this
Case 2 If Case 1 does not apply and NBV, the set of nonbasic variables, is empty, then
Ax b will have a unique solution.
Case 3 If Case 1 does not hold and NBV is nonempty, then Ax b will have an infinite number of solutions.
Linear Independence, Linear Dependence,
and the Rank of a Matrix
A set V of m-dimensional vectors is linearly independent if the only linear combination
of vectors in V that equals 0 is the trivial linear combination. A set V of m-dimensional
vectors is linearly dependent if there is a nontrivial linear combination of the vectors in
V that adds to 0.
Let A be any m n matrix, and denote the rows of A by r1, r2, . . . , rm. Also define
R {r1, r2, . . . , rm}. The rank of A is the number of vectors in the largest linearly independent subset of R. To find the rank of a given matrix A, apply the Gauss–Jordan
method to the matrix A. Let the final result be the matrix A
. Then rank A rank A
number of nonzero rows in A
.
To determine if a set of vectors V {v1, v2, . . . , vm} is linearly dependent, form the
matrix A whose ith row is vi. A will have m rows. If rank A m, then V is a linearly independent set of vectors; if rank A m, then V is a linearly dependent set of vectors.
Inverse of a Matrix
For a given square (m m) matrix A, if AB BA Im, then B is the inverse of A (written B A1). The Gauss–Jordan method for inverting an m m matrix A to get A1 is
as follows:
Step 1
Write down the m 2m matrix AIm.
Step 2 Use EROs to transform AIm into ImB. This will only be possible if rank A m.
In this case, B A1. If rank A m, then A has no inverse.
Determinants
Associated with any square (m m) matrix A is a number called the determinant of A
(written det A or A). For a 1 1 matrix, det A a11. For a 2 2 matrix, det A a11a22 a21a12. For a general m m matrix, we can find det A by repeated application
of the following formula (valid for i 1, 2, . . . , m):
det A (1)i1ai1(det Ai1) (1)i2ai2(det Ai2) (1)imaim(det Aim)
Here Aij is the ijth minor of A, which is the (m 1) (m 1) matrix obtained from A
after deleting the ith row and jth column of A.
46
CHAPTER
2 Basic Linear Algebra
REVIEW PROBLEMS
Group A
1
2
Find all solutions to the following linear system:
x1 x2 x3 2
x1 2x2 x3 3
x1 2x2 x3 5
Find the inverse of the matrix
0
2
3
.
1
3 Each year, 20% of all untenured State University faculty
become tenured, 5% quit, and 75% remain untenured. Each
year, 90% of all tenured S.U. faculty remain tenured and
10% quit. Let Ut be the number of untenured S.U. faculty
at the beginning of year t, and Tt the tenured number.
U
Use matrix multiplication to relate the vector t1 to
Tt1
U
the vector t .
Tt
4 Use the Gauss–Jordan method to determine all solutions
to the following linear system:
2x1 3x2 3
x1 x2 1
x1 2x2 2
5
Find the inverse of the matrix
01 23.
7 Use the Gauss–Jordan method to find all solutions to the
following linear system:
2x1 x2 3
3x1 x2 4
x1 x2 0
8
Find the inverse of the matrix
2
3
3
.
5
9 Let Ct number of children in Indiana at the beginning
of year t, and At number of adults in Indiana at the
beginning of year t. During any given year, 5% of all children
TA B L E
2
Course
Student
1
2
10 Use the Gauss–Jordan method to find all solutions to
the following linear equation system:
x1 x2 x3 4
x1 x2 x3 2
x1 x2 x3 5
11
Use the Gauss–Jordan method to find the inverse of the
1 0 2
matrix 0 1 0 .
0 1 1
12 During any given year, 10% of all rural residents move
to the city, and 20% of all city residents move to a rural area
(all other people stay put!). Let Rt be the number of rural
residents at the beginning of year t, and Ct be the number
of city residents at the beginning of year t. Use matrix
Rt1
R
multiplication to relate the vector
to the vector t .
Ct1
Ct
13 Determine whether the set V {[1 2
[2 0 0]} is a linearly independent set of vectors.
6 The grades of two students during their last semester at
S.U. are shown in Table 2.
Courses 1 and 2 are four-credit courses, and courses 3
and 4 are three-credit courses. Let GPAi be the semester
grade point average for student i. Use matrix multiplication
GPA1
to express the vector
in terms of the information
GPA2
given in the problem.
become adults, and 1% of all children die. Also, during any
given year, 3% of all adults die. Use matrix multiplication
Ct1
C
in terms of t .
to express the vector
At1
At
1
2
3
4
3.6
2.7
3.8
3.1
2.6
2.9
3.4
3.6
1],
14 Determine whether the set V {[1 0 0], [0 1 0],
[1 1 0]} is a linearly independent set of vectors.
a 0 0 0
0 b 0 0
.
15 Let A 0 0 c 0
0 0 0 d
a For what values of a, b, c, and d will A1 exist?
b If A1 exists, then find it.
16 Show that the following linear system has an infinite
number of solutions:
1 1 0 0 x1
2
0 0 1 1 x2
3
1 0 1 0 x3
4
0 1 0 1 x4
1
17 Before paying employee bonuses and state and federal
taxes, a company earns profits of $60,000. The company
pays employees a bonus equal to 5% of after-tax profits.
State tax is 5% of profits (after bonuses are paid). Finally,
federal tax is 40% of profits (after bonuses and state tax are
paid). Determine a linear equation system to find the
amounts paid in bonuses, state tax, and federal tax.
2 4 6
Find the determinant of the matrix A 1 0 0 .
0 0 1
19 Show that any 2 2 matrix A that does not have an
inverse will have det A 0.
18
2 . 5 Review Problems
47
Group B
20
21
Let A be an m m matrix.
a Show that if rank A m, then Ax 0 has a unique
solution. What is the unique solution?
b Show that if rank A
m, then Ax 0 has an infinite number of solutions.
Consider the following linear system:
[x1 x2 xn] [x1 x2 xn]P
where
p11 p12 p1n
p21 p22 p2n
P pn1 pn2 pnn
If the sum of each row of the P matrix equals 1, then use
Problem 20 to show that this linear system has an infinite
number of solutions.
22† The national economy of Seriland manufactures three
products: steel, cars, and machines. (1) To produce $1 of
steel requires 30¢ of steel, 15¢ of cars, and 40¢ of machines.
(2) To produce $1 of cars requires 45¢ of steel, 20¢ of cars,
and 10¢ of machines. (3) To produce $1 of machines requires
40¢ of steel, 10¢ of cars, and 45¢ of machines. During the
coming year, Seriland wants to consume ds dollars of steel,
dc dollars of cars, and dm dollars of machinery.
For the coming year, let
s dollar value of steel produced
c dollar value of cars produced
m dollar value of machines produced
Define A to be the 3 3 matrix whose ijth element is the
dollar value of product i required to produce $1 of product
j (steel product 1, cars product 2, machinery product 3).
a Determine A.
b Show that
s
ds
s
c A c dc
(24)
m
m
dm
(Hint: Observe that the value of next year’s steel production
(next year’s consumer steel demand) (steel needed to
make next year’s steel) (steel needed to make next year’s
cars) (steel needed to make next year’s machines). This
should give you the general idea.)
c Show that Equation (24) may be rewritten as
ds
s
(I A) c dc
m
dm
d Given values for ds, dc, and dm, describe how you
can use (I A)1 to determine if Seriland can meet
next year’s consumer demand.
e Suppose next year’s demand for steel increases by
$1. This will increase the value of the steel, cars, and
machines that must be produced next year. In terms of
(I A)1, determine the change in next year’s production requirements.
REFERENCES
The following references contain more advanced discussions of linear algebra. To understand the theory of linear and nonlinear programming, master at least one of
these books:
Dantzig, G. Linear Programming and Extensions. Princeton, N.J.: Princeton University Press, 1963.
Hadley, G. Linear Algebra. Reading, Mass.: AddisonWesley, 1961.
†
Based on Leontief (1966). See references at end of chapter.
48
CHAPTER
2 Basic Linear Algebra
Strang, G. Linear Algebra and Its Applications, 3d ed. Orlando, Fla.: Academic Press, 1988.
Leontief, W. Input–Output Economics. New York: Oxford
University Press, 1966.
Teichroew, D. An Introduction to Management Science: Deterministic Models. New York: Wiley, 1964. A more extensive discussion of linear algebra than this chapter
gives (at a comparable level of difficulty).
3
Introduction to Linear Programming
Linear programming (LP) is a tool for solving optimization problems. In 1947, George Dantzig developed an efficient method, the simplex algorithm, for solving linear programming problems (also
called LP). Since the development of the simplex algorithm, LP has been used to solve optimization problems in industries as diverse as banking, education, forestry, petroleum, and trucking. In
a survey of Fortune 500 firms, 85% of the respondents said they had used linear programming.
As a measure of the importance of linear programming in operations research, approximately 70%
of this book will be devoted to linear programming and related optimization techniques.
In Section 3.1, we begin our study of linear programming by describing the general characteristics shared by all linear programming problems. In Sections 3.2 and 3.3, we learn how
to solve graphically those linear programming problems that involve only two variables. Solving these simple LPs will give us useful insights for solving more complex LPs. The remainder
of the chapter explains how to formulate linear programming models of real-life situations.
3.1
What Is a Linear Programming Problem?
In this section, we introduce linear programming and define important terms that are used
to describe linear programming problems.
EXAMPLE
1
Giapetto’s Woodcarving
Giapetto’s Woodcarving, Inc., manufactures two types of wooden toys: soldiers and trains.
A soldier sells for $27 and uses $10 worth of raw materials. Each soldier that is manufactured increases Giapetto’s variable labor and overhead costs by $14. A train sells for
$21 and uses $9 worth of raw materials. Each train built increases Giapetto’s variable labor and overhead costs by $10. The manufacture of wooden soldiers and trains requires
two types of skilled labor: carpentry and finishing. A soldier requires 2 hours of finishing
labor and 1 hour of carpentry labor. A train requires 1 hour of finishing and 1 hour of carpentry labor. Each week, Giapetto can obtain all the needed raw material but only 100 finishing hours and 80 carpentry hours. Demand for trains is unlimited, but at most 40 soldiers are bought each week. Giapetto wants to maximize weekly profit (revenues costs).
Formulate a mathematical model of Giapetto’s situation that can be used to maximize Giapetto’s weekly profit.
Solution
In developing the Giapetto model, we explore characteristics shared by all linear programming problems.
We begin by defining the relevant decision variables. In any linear
programming model, the decision variables should completely describe the decisions to
be made (in this case, by Giapetto). Clearly, Giapetto must decide how many soldiers and
trains should be manufactured each week. With this in mind, we define
Decision Variables
x1 number of soldiers produced each week
x2 number of trains produced each week
In any linear programming problem, the decision maker wants to maximize (usually revenue or profit) or minimize (usually costs) some function of the decision variables. The function to be maximized or minimized is called the objective function. For the Giapetto problem, we note that fixed costs (such as rent and insurance) do
not depend on the values of x1 and x2. Thus, Giapetto can concentrate on maximizing
(weekly revenues) (raw material purchase costs) (other variable costs).
Giapetto’s weekly revenues and costs can be expressed in terms of the decision variables x1 and x2. It would be foolish for Giapetto to manufacture more soldiers than can
be sold, so we assume that all toys produced will be sold. Then
Objective Function
Weekly revenues weekly revenues from soldiers
weekly revenues from trains
trains
week dollars sold iers
dollars
soldier
week
train
27x1 21x2
Also,
Weekly raw material costs 10x1 9x2
Other weekly variable costs 14x1 10x2
Then Giapetto wants to maximize
(27x1 21x2) (10x1 9x2) (14x1 10x2) 3x1 2x2
Another way to see that Giapetto wants to maximize 3x1 2x2 is to note that
Weekly revenues weekly contribution to profit from soldiers
weekly nonfixed costs weekly contribution to profit from trains
sold iers
week contribution to profit trains
week
contribution to profit
Also,
Contribution to profit
27 10 14 3
Contribution to profit
21 9 10 2
Then, as before, we obtain
Weekly revenues weekly nonfixed costs 3x1 2x2
Thus, Giapetto’s objective is to choose x1 and x2 to maximize 3x1 2x2. We use the variable z to denote the objective function value of any LP. Giapetto’s objective function is
Maximize z 3x1 2x2
(1)
(In the future, we will abbreviate “maximize” by max and “minimize” by min.) The coefficient of a variable in the objective function is called the objective function coefficient
of the variable. For example, the objective function coefficient for x1 is 3, and the objective function coefficient for x2 is 2. In this example (and in many other problems), the ob-
50
CHAPTER
3 Introduction to Linear Programming
jective function coefficient for each variable is simply the contribution of the variable to
the company’s profit.
As x1 and x2 increase, Giapetto’s objective function grows larger. This means
that if Giapetto were free to choose any values for x1 and x2, the company could make an
arbitrarily large profit by choosing x1 and x2 to be very large. Unfortunately, the values of
x1 and x2 are limited by the following three restrictions (often called constraints):
Constraints
Constraint 1
Each week, no more than 100 hours of finishing time may be used.
Constraint 2
Each week, no more than 80 hours of carpentry time may be used.
Constraint 3
Because of limited demand, at most 40 soldiers should be produced each
week.
The amount of raw material available is assumed to be unlimited, so no restrictions have
been placed on this.
The next step in formulating a mathematical model of the Giapetto problem is to express Constraints 1–3 in terms of the decision variables x1 and x2. To express Constraint
1 in terms of x1 and x2, note that
finishing hrs. soldier s made
Total finishing hrs.
soldier
week
finishing hrs. trains made
train
week
2(x1) 1(x2) 2x1 x2
Now Constraint 1 may be expressed by
2x1 x2 100
(2)
Note that the units of each term in (2) are finishing hours per week. For a constraint to
be reasonable, all terms in the constraint must have the same units. Otherwise one is
adding apples and oranges, and the constraint won’t have any meaning.
To express Constraint 2 in terms of x1 and x2, note that
carpentry hrs. sold iers
Total carpentry hrs.
solider
week
carpentry hrs. trains
train
week
1(x1) 1(x2) x1 x2
Then Constraint 2 may be written as
x1 x2 80
(3)
Again, note that the units of each term in (3) are the same (in this case, carpentry hours
per week).
Finally, we express the fact that at most 40 soldiers per week can be sold by limiting the
weekly production of soldiers to at most 40 soldiers. This yields the following constraint:
x1 40
(4)
Thus (2)–(4) express Constraints 1–3 in terms of the decision variables; they are called
the constraints for the Giapetto linear programming problem. The coefficients of the decision variables in the constraints are called technological coefficients. This is because
the technological coefficients often reflect the technology used to produce different products. For example, the technological coefficient of x2 in (3) is 1, indicating that a soldier
requires 1 carpentry hour. The number on the right-hand side of each constraint is called
3 . 1 What Is a Linear Programming Problem?
51
the constraint’s right-hand side (or rhs). Often the rhs of a constraint represents the quantity of a resource that is available.
To complete the formulation of a linear programming problem, the following question must be answered for each decision variable: Can the decision variable
only assume nonnegative values, or is the decision variable allowed to assume both positive and negative values?
If a decision variable xi can only assume nonnegative values, then we add the sign restriction xi 0. If a variable xi can assume both positive and negative (or zero) values,
then we say that xi is unrestricted in sign (often abbreviated urs). For the Giapetto problem, it is clear that x1 0 and x2 0. In other problems, however, some variables may
be urs. For example, if xi represented a firm’s cash balance, then xi could be considered
negative if the firm owed more money than it had on hand. In this case, it would be appropriate to classify xi as urs. Other uses of urs variables are discussed in Section 4.12.
Combining the sign restrictions x1 0 and x2 0 with the objective function (1) and
Constraints (2)–(4) yields the following optimization model:
Sign Restrictions
max z 3x1 2x2
(Objective function)
(1)
subject to (s.t.)
2x1 x2 100
x1 x2 80
x1 x2 40
x1 x2 0
x1 x2 0
(Finishing constraint)
(Carpentry constraint)
(Constraint on demand for soldiers)
(Sign restriction)†
(Sign restriction)
(2)
(3)
(4)
(5)
(6)
“Subject to” (s.t.) means that the values of the decision variables x1 and x2 must satisfy
all constraints and all sign restrictions.
Before formally defining a linear programming problem, we define the concepts of linear
function and linear inequality.
A function f (x1, x2, . . . , xn) of x1, x2, . . . , xn is a linear function if and only if
for some set of constants c1, c2, . . . , cn, f(x1, x2, . . . , xn) c1x1 c2x2 cnxn. ■
DEFINITION ■
For example, f (x1, x2) 2x1 x2 is a linear function of x1 and x2, but f (x1, x2) x21x2
is not a linear function of x1 and x2.
For any linear function f (x1, x2, . . . , xn) and any number b, the inequalities f (x1,
x2, . . . , xn) b and f (x1, x2, . . . , xn) b are linear inequalities. ■
DEFINITION ■
Thus, 2x1 3x2 3 and 2x1 x2 3 are linear inequalities, but x21x2 3 is not a
linear inequality.
†
The sign restrictions do constrain the values of the decision variables, but we choose to consider the sign restrictions as being separate from the constraints. The reason for this will become apparent when we study the
simplex algorithm in Chapter 4.
52
CHAPTER
3 Introduction to Linear Programming
A linear programming problem (LP) is an optimization problem for which we
do the following:
DEFINITION ■
We attempt to maximize (or minimize) a linear function of the decision variables. The function that is to be maximized or minimized is called the objective
function.
1
The values of the decision variables must satisfy a set of constraints. Each constraint must be a linear equation or linear inequality.
2
A sign restriction is associated with each variable. For any variable xi, the sign
restriction specifies that xi must be either nonnegative (xi 0) or unrestricted in
sign (urs). ■
3
Because Giapetto’s objective function is a linear function of x1 and x2, and all of Giapetto’s constraints are linear inequalities, the Giapetto problem is a linear programming
problem. Note that the Giapetto problem is typical of a wide class of linear programming
problems in which a decision maker’s goal is to maximize profit subject to limited resources.
The Proportionality and Additivity Assumptions
The fact that the objective function for an LP must be a linear function of the decision
variables has two implications.
The contribution of the objective function from each decision variable is proportional
to the value of the decision variable. For example, the contribution to the objective function from making four soldiers (4
3 $12) is exactly four times the contribution to
the objective function from making one soldier ($3).
1
The contribution to the objective function for any variable is independent of the values of the other decision variables. For example, no matter what the value of x2, the manufacture of x1 soldiers will always contribute 3x1 dollars to the objective function.
2
Analogously, the fact that each LP constraint must be a linear inequality or linear equation has two implications.
The contribution of each variable to the left-hand side of each constraint is proportional to the value of the variable. For example, it takes exactly three times as many finishing hours (2 3 6 finishing hours) to manufacture three soldiers as it takes to manufacture one soldier (2 finishing hours).
1
The contribution of a variable to the left-hand side of each constraint is independent
of the values of the variable. For example, no matter what the value of x1, the manufacture of x2 trains uses x2 finishing hours and x2 carpentry hours.
2
The first implication given in each list is called the Proportionality Assumption of Linear Programming. Implication 2 of the first list implies that the value of the objective
function is the sum of the contributions from individual variables, and implication 2 of
the second list implies that the left-hand side of each constraint is the sum of the contributions from each variable. For this reason, the second implication in each list is called
the Additivity Assumption of Linear Programming.
For an LP to be an appropriate representation of a real-life situation, the decision variables must satisfy both the Proportionality and Additivity Assumptions. Two other assumptions must also be satisfied before an LP can appropriately represent a real situation:
the Divisibility and Certainty Assumptions.
3 . 1 What Is a Linear Programming Problem?
53
The Divisibility Assumption
The Divisibility Assumption requires that each decision variable be allowed to assume
fractional values. For example, in the Giapetto problem, the Divisibility Assumption implies that it is acceptable to produce 1.5 soldiers or 1.63 trains. Because Giapetto cannot actually produce a fractional number of trains or soldiers, the Divisibility Assumption is not satisfied in the Giapetto problem. A linear programming problem
in which some or all of the variables must be nonnegative integers is called an integer
programming problem. The solution of integer programming problems is discussed in
Chapter 9.
In many situations where divisibility is not present, rounding off each variable in the
optimal LP solution to an integer may yield a reasonable solution. Suppose the optimal
solution to an LP stated that an auto company should manufacture 150,000.4 compact cars
during the current year. In this case, you could tell the auto company to manufacture
150,000 or 150,001 compact cars and be fairly confident that this would reasonably approximate an optimal production plan. On the other hand, if the number of missile sites
that the United States should use were a variable in an LP and the optimal LP solution
said that 0.4 missile sites should be built, it would make a big difference whether we
rounded the number of missile sites down to 0 or up to 1. In this situation, the integer
programming methods of Chapter 9 would have to be used, because the number of missile sites is definitely not divisible.
The Certainty Assumption
The Certainty Assumption is that each parameter (objective function coefficient, righthand side, and technological coefficient) is known with certainty. If we were unsure of the
exact amount of carpentry and finishing hours required to build a train, the Certainty Assumption would be violated.
Feasible Region and Optimal Solution
Two of the most basic concepts associated with a linear programming problem are feasible region and optimal solution. For defining these concepts, we use the term point to
mean a specification of the value for each decision variable.
DEFINITION ■
The feasible region for an LP is the set of all points that satisfies all the LP’s
constraints and sign restrictions. ■
For example, in the Giapetto problem, the point (x1 40, x2 20) is in the feasible
region. Note that x1 40 and x2 20 satisfy the constraints (2)–(4) and the sign restrictions (5)–(6):
Constraint (2), 2x1 x2 100, is satisfied, because 2(40) 20 100.
Constraint (3), x1 x2 80, is satisfied, because 40 20 80.
Constraint (4), x1 40, is satisfied, because 40 40.
Restriction (5), x1 0, is satisfied, because 40 0.
Restriction (6), x2 0, is satisfied, because 20 0.
54
CHAPTER
3 Introduction to Linear Programming
On the other hand, the point (x1 15, x2 70) is not in the feasible region, because even
though x1 15 and x2 70 satisfy (2), (4), (5), and (6), they fail to satisfy (3): 15 70
is not less than or equal to 80. Any point that is not in an LP’s feasible region is said to
be an infeasible point. As another example of an infeasible point, consider (x1 40,
x2 20). Although this point satisfies all the constraints and the sign restriction (5), it
is infeasible because it fails to satisfy the sign restriction (6), x2 0. The feasible region
for the Giapetto problem is the set of possible production plans that Giapetto must consider in searching for the optimal production plan.
DEFINITION ■
For a maximization problem, an optimal solution to an LP is a point in the
feasible region with the largest objective function value. Similarly, for a
minimization problem, an optimal solution is a point in the feasible region with
the smallest objective function value. ■
Most LPs have only one optimal solution. However, some LPs have no optimal
solution, and some LPs have an infinite number of solutions (these situations are
discussed in Section 3.3). In Section 3.2, we show that the unique optimal solution to
the Giapetto problem is (x1 20, x2 60). This solution yields an objective function
value of
z 3x1 2x2 3(20) 2(60) $180
When we say that (x1 20, x2 60) is the optimal solution to the Giapetto problem, we
are saying that no point in the feasible region has an objective function value that exceeds
180. Giapetto can maximize profit by building 20 soldiers and 60 trains each week. If Giapetto were to produce 20 soldiers and 60 trains each week, the weekly profit would be
$180 less weekly fixed costs. For example, if Giapetto’s only fixed cost were rent of $100
per week, then weekly profit would be 180 100 $80 per week.
PROBLEMS
Group A
1 Farmer Jones must determine how many acres of corn
and wheat to plant this year. An acre of wheat yields 25
bushels of wheat and requires 10 hours of labor per week.
An acre of corn yields 10 bushels of corn and requires 4
hours of labor per week. All wheat can be sold at $4 a
bushel, and all corn can be sold at $3 a bushel. Seven acres
of land and 40 hours per week of labor are available.
Government regulations require that at least 30 bushels of
corn be produced during the current year. Let x1 number
of acres of corn planted, and x2 number of acres of wheat
planted. Using these decision variables, formulate an LP
whose solution will tell Farmer Jones how to maximize the
total revenue from wheat and corn.
2
3
Answer these questions about Problem 1.
a Is (x1 2, x2 3) in the feasible region?
b Is (x1 4, x2 3) in the feasible region?
c Is (x1 2, x2 1) in the feasible region?
d Is (x1 3, x2 2) in the feasible region?
produced and x2 number of bushels of wheat produced,
reformulate Farmer Jones’s LP.
4 Truckco manufactures two types of trucks: 1 and 2.
Each truck must go through the painting shop and assembly
shop. If the painting shop were completely devoted to
painting Type 1 trucks, then 800 per day could be painted;
if the painting shop were completely devoted to painting
Type 2 trucks, then 700 per day could be painted. If the
assembly shop were completely devoted to assembling truck
1 engines, then 1,500 per day could be assembled; if the
assembly shop were completely devoted to assembling truck
2 engines, then 1,200 per day could be assembled. Each
Type 1 truck contributes $300 to profit; each Type 2 truck
contributes $500. Formulate an LP that will maximize
Truckco’s profit.
Group B
5
Why don’t we allow an LP to have
or
constraints?
Using the variables x1 number of bushels of corn
3 . 1 What Is a Linear Programming Problem?
55
3.2
The Graphical Solution of Two-Variable Linear Programming Problems
Any LP with only two variables can be solved graphically. We always label the variables
x1 and x2 and the coordinate axes the x1 and x2 axes. Suppose we want to graph the set
of points that satisfies
2x1 3x2 6
(7)
The same set of points (x1, x2) satisfies
3x2 6 2x1
This last inequality may be rewritten as
x2 13(6 2x1) 2 23x1
(8)
Because moving downward on the graph decreases x2 (see Figure 1), the set of points that
satisfies (8) and (7) lies on or below the line x2 2 23x1. This set of points is indicated
by darker shading in Figure 1. Note, however, that x2 2 23x1, 3x2 6 2x1, and 2x1 3x2 6 are all the same line. This means that the set of points satisfying (7) lies on or below the line 2x1 3x2 6. Similarly, the set of points satisfying 2x1 3x2 6 lies on or
above the line 2x1 3x2 6. (These points are shown by lighter shading in Figure 1.)
Consider a linear inequality constraint of the form f(x1, x2) b or f(x1, x2) b. In
general, it can be shown that in two dimensions, the set of points that satisfies a linear inequality includes the points on the line f(x1, x2) b, defining the inequality plus all points
on one side of the line.
There is an easy way to determine the side of the line for which an inequality such as
f(x1, x2) b or f(x1, x2) b is satisfied. Just choose any point P that does not satisfy the line
f(x1, x2) b. Determine whether P satisfies the inequality. If it does, then all points on the
same side as P of f(x1, x2) b will satisfy the inequality. If P does not satisfy the inequality,
then all points on the other side of f(x1, x2) b, which does not contain P, will satisfy the inequality. For example, to determine whether 2x1 3x2 6 is satisfied by points above or below the line 2x1 3x2 6, we note that (0, 0) does not satisfy 2x1 3x2 6. Because (0,
0) is below the line 2x1 3x2 6, the set of points satisfying 2x1 3x2 6 includes the
line 2x1 3x2 6 and the points above the line 2x1 3x2 6. This agrees with Figure 1.
x2
5
Satisfies 2x1 + 3x2 ≤ 6
4
Satisfies 2x1 + 3x2 ≥ 6
3
x2 = 2 – 2 x 1
3
2
1
–2
FIGURE
Graphing a Linear
Inequality
56
–1
(0, 0)
1
2
1
–1
CHAPTER
3 Introduction to Linear Programming
3
4
x1
Finding the Feasible Solution
We illustrate how to solve two-variable LPs graphically by solving the Giapetto problem.
To begin, we graphically determine the feasible region for Giapetto’s problem. The feasible region for the Giapetto problem is the set of all points (x1, x2) satisfying
2x1
x1
x1
x1
x1
x2
x2
x2
x2
x2
100
80
40
0
0
(Constraints)
(2)
(3)
(4)
(Sign restrictions)
(5)
(6)
For a point (x1, x2) to be in the feasible region, (x1, x2) must satisfy all the inequalities
(2)–(6). Note that the only points satisfying (5) and (6) lie in the first quadrant of the x1–x2
plane. This is indicated in Figure 2 by the arrows pointing to the right from the x2 axis
and upward from the x1 axis. Thus, any point that is outside the first quadrant cannot be
in the feasible region. This means that the feasible region will be the set of points in the
first quadrant that satisfies (2)–(4).
Our method for determining the set of points that satisfies a linear inequality will also
identify those that meet (2)–(4). From Figure 2, we see that (2) is satisfied by all points
below or on the line AB (AB is the line 2x1 x2 100). Inequality (3) is satisfied by all
points on or below the line CD (CD is the line x1 x2 80). Finally, (4) is satisfied by
all points on or to the left of line EF (EF is the line x1 40). The side of a line that satisfies an inequality is indicated by the direction of the arrows in Figure 2.
From Figure 2, we see that the set of points in the first quadrant that satisfies (2), (3),
and (4) is bounded by the five-sided polygon DGFEH. Any point on this polygon or in
its interior is in the feasible region. Any other point fails to satisfy at least one of the inequalities (2)–(6). For example, the point (40, 30) lies outside DGFEH because it is above
the line segment AB. Thus (40, 30) is infeasible, because it fails to satisfy (2).
x2
100
B
(2)
80
Feasible region
D
(4)
G
60
40
(40, 30)
z = 100
(3)
20
F
z = 60
FIGURE
2
Graphical Solution of
Giapetto Problem
z = 180
E
H
10
20
40
A
50
C
60
80
x1
3 . 2 The Graphical Solution of Two-Variable Linear Programming Problems
57
An easy way to find the feasible region is to determine the set of infeasible points. Note
that all points above line AB in Figure 2 are infeasible, because they fail to satisfy (2).
Similarly, all points above CD are infeasible, because they fail to satisfy (3). Also, all
points to the right of the vertical line EF are infeasible, because they fail to satisfy (4).
After these points are eliminated from consideration, we are left with the feasible region
(DGFEH).
Finding the Optimal Solution
Having identified the feasible region for the Giapetto problem, we now search for the optimal solution, which will be the point in the feasible region with the largest value of z 3x1 2x2. To find the optimal solution, we need to graph a line on which all points have
the same z-value. In a max problem, such a line is called an isoprofit line (in a min problem, an isocost line). To draw an isoprofit line, choose any point in the feasible region
and calculate its z-value. Let us choose (20, 0). For (20, 0), z 3(20) 2(0) 60. Thus,
(20, 0) lies on the isoprofit line z 3x1 2x2 60. Rewriting 3x1 2x2 60 as x2 30 32x1, we see that the isoprofit line 3x1 2x2 60 has a slope of 32. Because all
isoprofit lines are of the form 3x1 2x2 constant, all isoprofit lines have the same
slope. This means that once we have drawn one isoprofit line, we can find all other isoprofit lines by moving parallel to the isoprofit line we have drawn.
It is now clear how to find the optimal solution to a two-variable LP. After you have
drawn a single isoprofit line, generate other isoprofit lines by moving parallel to the drawn
isoprofit line in a direction that increases z (for a max problem). After a point, the isoprofit lines will no longer intersect the feasible region. The last isoprofit line intersecting
(touching) the feasible region defines the largest z-value of any point in the feasible region and indicates the optimal solution to the LP. In our problem, the objective function
z 3x1 2x2 will increase if we move in a direction for which both x1 and x2 increase.
Thus, we construct additional isoprofit lines by moving parallel to 3x1 2x2 60 in a
northeast direction (upward and to the right). From Figure 2, we see that the isoprofit line
passing through point G is the last isoprofit line to intersect the feasible region. Thus, G
is the point in the feasible region with the largest z-value and is therefore the optimal solution to the Giapetto problem. Note that point G is where the lines 2x1 x2 100 and
x1 x2 80 intersect. Solving these two equations simultaneously, we find that (x1 20, x2 60) is the optimal solution to the Giapetto problem. The optimal value of z may
be found by substituting these values of x1 and x2 into the objective function. Thus, the
optimal value of z is z 3(20) 2(60) 180.
Binding and Nonbinding Constraints
Once the optimal solution to an LP has been found, it is useful (see Chapters 5 and 6) to
classify each constraint as being a binding constraint or a nonbinding constraint.
DEFINITION ■
A constraint is binding if the left-hand side and the right-hand side of the
constraint are equal when the optimal values of the decision variables are
substituted into the constraint. ■
Thus, (2) and (3) are binding constraints.
58
CHAPTER
3 Introduction to Linear Programming
DEFINITION ■
A constraint is nonbinding if the left-hand side and the right-hand side of the
constraint are unequal when the optimal values of the decision variables are
substituted into the constraint. ■
Because x1 20 is less than 40, (4) is a nonbinding constraint.
Convex Sets, Extreme Points, and LP
The feasible region for the Giapetto problem is an example of a convex set.
DEFINITION ■
A set of points S is a convex set if the line segment joining any pair of points in
S is wholly contained in S. ■
Figure 3 gives four illustrations of this definition. In Figures 3a and 3b, each line segment joining two points in S contains only points in S. Thus, in both these figures, S is
convex. In Figures 3c and 3d, S is not convex. In each figure, points A and B are in S, but
there are points on the line segment AB that are not contained in S. In our study of linear
programming, a certain type of point in a convex set (called an extreme point) is of great
interest.
DEFINITION ■
For any convex set S, a point P in S is an extreme point if each line segment that
lies completely in S and contains the point P has P as an endpoint of the line
segment. ■
For example, in Figure 3a, each point on the circumference of the circle is an extreme
point of the circle. In Figure 3b, points A, B, C, and D are extreme points of S. Although
point E is on the boundary of S in Figure 3b, E is not an extreme point of S. This is because E lies on the line segment AB (AB lies completely in S), and E is not an endpoint of
the line segment AB. Extreme points are sometimes called corner points, because if the
set S is a polygon, the extreme points of S will be the vertices, or corners, of the polygon.
The feasible region for the Giapetto problem is a convex set. This is no accident: It can
be shown that the feasible region for any LP will be a convex set. From Figure 2, we see
that the extreme points of the feasible region are simply points D, F, E, G, and H. It can
be shown that the feasible region for any LP has only a finite number of extreme points.
Also note that the optimal solution to the Giapetto problem (point G) is an extreme point
of the feasible region. It can be shown that any LP that has an optimal solution has an
extreme point that is optimal. This result is very important, because it reduces the set of
points that yield an optimal solution from the entire feasible region (which generally contains an infinite number of points) to the set of extreme points (a finite set).
S = shaded area
A
A
E
B
B
B
A
FIGURE
3
Convex and Nonconvex
Sets
C
a
b
D
c
3 . 2 The Graphical Solution of Two-Variable Linear Programming Problems
d
59
For the Giapetto problem, it is easy to see why the optimal solution must be an extreme
point of the feasible region. We note that z increases as we move isoprofit lines in a northeast
direction, so the largest z-value in the feasible region must occur at some point P that has no
points in the feasible region northeast of P. This means that the optimal solution must lie somewhere on the boundary of the feasible region DGFEH. The LP must have an extreme point
that is optimal, because for any line segment on the boundary of the feasible region, the largest
z-value on that line segment must be assumed at one of the endpoints of the line segment.
To see this, look at the line segment FG in Figure 2. FG is part of the line 2x1 x2 100 and has a slope of 2. If we move along FG and decrease x1 by 1, then x2 will
increase by 2, and the value of z changes as follows: 3x1 goes down by 3(1) 3, and 2x2
goes up by 2(2) 4. Thus, in total, z increases by 4 3 1. This means that moving
along FG in a direction of decreasing x1 increases z. Thus, the value of z at point G must
exceed the value of z at any other point on the line segment FG.
A similar argument shows that for any objective function, the maximum value of z on
a given line segment must occur at an endpoint of the line segment. Therefore, for any
LP, the largest z-value in the feasible region must be attained at an endpoint of one of the
line segments forming the boundary of the feasible region. In short, one of the extreme
points of the feasible region must be optimal. (To test your understanding, show that if
Giapetto’s objective function were z 6x1 x2, point F would be optimal, whereas if
Giapetto’s objective function were z x1 6x2, point D would be optimal.)
Our proof that an LP always has an optimal extreme point depended heavily on the fact
that both the objective function and the constraints were linear functions. In Chapter 11,
we show that for an optimization problem in which the objective function or some of the
constraints are not linear, the optimal solution to the optimization problem may not occur
at an extreme point.
The Graphical Solution of Minimization Problems
EXAMPLE
2
Dorian Auto
Dorian Auto manufactures luxury cars and trucks. The company believes that its most
likely customers are high-income women and men. To reach these groups, Dorian Auto
has embarked on an ambitious TV advertising campaign and has decided to purchase
1-minute commercial spots on two types of programs: comedy shows and football games.
Each comedy commercial is seen by 7 million high-income women and 2 million highincome men. Each football commercial is seen by 2 million high-income women and 12
million high-income men. A 1-minute comedy ad costs $50,000, and a 1-minute football
ad costs $100,000. Dorian would like the commercials to be seen by at least 28 million
high-income women and 24 million high-income men. Use linear programming to determine how Dorian Auto can meet its advertising requirements at minimum cost.
Solution
Dorian must decide how many comedy and football ads should be purchased, so the decision variables are
x1 number of 1-minute comedy ads purchased
x2 number of 1-minute football ads purchased
Then Dorian wants to minimize total advertising cost (in thousands of dollars).
Total advertising cost cost of comedy ads cost of football ads
total
cost
cost
comedy ad comedy ads
50x1 100x2
60
CHAPTER
3 Introduction to Linear Programming
total
football
ads
Thus, Dorian’s objective function is
min z 50x1 100x2
(9)
Dorian faces the following constraints:
Constraint 1
Commercials must reach at least 28 million high-income women.
Constraint 2
Commercials must reach at least 24 million high-income men.
To express Constraints 1 and 2 in terms of x1 and x2, let HIW stand for high-income
women viewers and HIM stand for high-income men viewers (in millions).
total
total
HIW
comedy
ads football ad football ads
total
total
HIM
comedy
ads football ad football ads
HIW
HIW comedy ad
7x1 2x2
HIM
HIM comedy ad
2x1 12x2
Constraint 1 may now be expressed as
7x1 2x2 28
(10)
and Constraint 2 may be expressed as
2x1 12x2 24
(11)
The sign restrictions x1 0 and x2 0 are necessary, so the Dorian LP is given by:
min z 50x1 100x2
s.t.
7x1 2x2 28
s.t.
2x1 12x2 24
x1, x2 0
(HIW)
(HIM)
This problem is typical of a wide range of LP applications in which a decision maker
wants to minimize the cost of meeting a certain set of requirements. To solve this LP
graphically, we begin by graphing the feasible region (Figure 4). Note that (10) is satisfied by points on or above the line AB (AB is part of the line 7x1 2x2 28) and that
x2
14
B
12
10
8
(10)
6
(4, 4)
4
z = 320
FIGURE
4
Graphical Solution of
Dorian Problem
z = 600
E
2
(11)
D
C
A
2
4
6
8
10
12
14
x1
3 . 2 The Graphical Solution of Two-Variable Linear Programming Problems
61
(11) is satisfied by the points on or above the line CD (CD is part of the line 2x1 12x2 24). From Figure 4, we see that the only first-quadrant points satisfying both
(10) and (11) are the points in the shaded region bounded by the x1 axis, CEB, and the x2 axis.
Like the Giapetto problem, the Dorian problem has a convex feasible region, but the
feasible region for Dorian, unlike Giapetto’s, contains points for which the value of at least
one variable can assume arbitrarily large values. Such a feasible region is called an unbounded feasible region.
Because Dorian wants to minimize total advertising cost, the optimal solution to the
problem is the point in the feasible region with the smallest z-value. To find the optimal
solution, we need to draw an isocost line that intersects the feasible region. An isocost
line is any line on which all points have the same z-value (or same cost). We arbitrarily
choose the isocost line passing through the point (x1 4, x2 4). For this point, z 50(4) 100(4) 600, and we graph the isocost line z 50x1 100x2 600.
We consider lines parallel to the isocost line 50x1 100x2 600 in the direction of
decreasing z (southwest). The last point in the feasible region that intersects an isocost
line will be the point in the feasible region having the smallest z-value. From Figure 4,
we see that point E has the smallest z-value of any point in the feasible region; this is the
optimal solution to the Dorian problem. Note that point E is where the lines 7x1 2x2 28 and 2x1 12x2 24 intersect. Simultaneously solving these equations yields the optimal solution (x1 3.6, x2 1.4). The optimal z-value can then be found by substituting these values of x1 and x2 into the objective function. Thus, the optimal z-value is z 50(3.6) 100(1.4) 320 $320,000. Because at point E both the HIW and HIM constraints are satisfied with equality, both constraints are binding.
Does the Dorian model meet the four assumptions of linear programming outlined in
Section 3.1?
For the Proportionality Assumption to be valid, each extra comedy commercial must
add exactly 7 million HIW and 2 million HIM. This contradicts empirical evidence, which
indicates that after a certain point advertising yields diminishing returns. After, say, 500
auto commercials have been aired, most people have probably seen one, so it does little
good to air more commercials. Thus, the Proportionality Assumption is violated.
We used the Additivity Assumption to justify writing (total HIW viewers) (HIW
viewers from comedy ads) (HIW viewers from football ads). In reality, many of the
same people will see a Dorian comedy commercial and a Dorian football commercial. We
are double-counting such people, and this creates an inaccurate picture of the total number of people seeing Dorian commercials. The fact that the same person may see more
than one type of commercial means that the effectiveness of, say, a comedy commercial
depends on the number of football commercials. This violates the Additivity Assumption.
If only 1-minute commercials are available, then it is unreasonable to say that Dorian
should buy 3.6 comedy commercials and 1.4 football commercials, so the Divisibility Assumption is violated, and the Dorian problem should be considered an integer programming problem. In Section 9.3, we show that if the Dorian problem is solved as an integer
programming problem, then the minimum cost is attained by choosing (x1 6, x2 1)
or (x1 4, x2 2). For either solution, the minimum cost is $400,000. This is 25% higher
than the cost obtained from the optimal LP solution.
Because there is no way to know with certainty how many viewers are added by each type
of commercial, the Certainty Assumption is also violated. Thus, all the assumptions of linear programming seem to be violated by the Dorian Auto problem. Despite these drawbacks,
analysts have used similar models to help companies determine their optimal media mix.†
†
Lilien and Kotler (1983).
62
CHAPTER
3 Introduction to Linear Programming
PROBLEMS
Group A
1
Graphically solve Problem 1 of Section 3.1.
2
Graphically solve Problem 4 of Section 3.1.
3 Leary Chemical manufactures three chemicals: A, B,
and C. These chemicals are produced via two production
processes: 1 and 2. Running process 1 for an hour costs $4
and yields 3 units of A, 1 of B, and 1 of C. Running process
2 for an hour costs $1 and produces 1 unit of A and 1 of B.
To meet customer demands, at least 10 units of A, 5 of B,
and 3 of C must be produced daily. Graphically determine
a daily production plan that minimizes the cost of meeting
Leary Chemical’s daily demands.
4 For each of the following, determine the direction in
which the objective function increases:
a z 4x1 x2
b z x1 2x2
c z x1 3x2
5 Furnco manufactures desks and chairs. Each desk uses
4 units of wood, and each chair uses 3. A desk contributes
3.3
$40 to profit, and a chair contributes $25. Marketing
restrictions require that the number of chairs produced be at
least twice the number of desks produced. If 20 units of
wood are available, formulate an LP to maximize Furnco’s
profit. Then graphically solve the LP.
6 Farmer Jane owns 45 acres of land. She is going to plant
each with wheat or corn. Each acre planted with wheat
yields $200 profit; each with corn yields $300 profit. The
labor and fertilizer used for each acre are given in Table 1.
One hundred workers and 120 tons of fertilizer are available.
Use linear programming to determine how Jane can
maximize profits from her land.
TA B L E
Labor
Fertilizer
1
Wheat
Corn
3 workers
2 tons
2 workers
4 tons
Special Cases
The Giapetto and Dorian problems each had a unique optimal solution. In this section,
we encounter three types of LPs that do not have unique optimal solutions.
1 Some LPs have an infinite number of optimal solutions (alternative or multiple optimal solutions).
2
Some LPs have no feasible solutions (infeasible LPs).
Some LPs are unbounded: There are points in the feasible region with arbitrarily large
(in a max problem) z-values.
3
Alternative or Multiple Optimal Solutions
EXAMPLE
3
Alternative Optimal Solutions
An auto company manufactures cars and trucks. Each vehicle must be processed in the
paint shop and body assembly shop. If the paint shop were only painting trucks, then 40
per day could be painted. If the paint shop were only painting cars, then 60 per day could
be painted. If the body shop were only producing cars, then it could process 50 per day.
If the body shop were only producing trucks, then it could process 50 per day. Each truck
contributes $300 to profit, and each car contributes $200 to profit. Use linear programming to determine a daily production schedule that will maximize the company’s profits.
Solution
The company must decide how many cars and trucks should be produced daily. This leads
us to define the following decision variables:
x1 number of trucks produced daily
x2 number of cars produced daily
3 . 3 Special Cases
63
The company’s daily profit (in hundreds of dollars) is 3x1 2x2, so the company’s objective function may be written as
max z 3x1 2x2
(12)
The company’s two constraints are the following:
Constraint 1
The fraction of the day during which the paint shop is busy is less than or
equal to 1.
Constraint 2
The fraction of the day during which the body shop is busy is less than or
equal to 1.
We have
trucks
day fraction of day
Fraction of day paint shop works on trucks truck
1
40 x1
Fraction of day paint shop works on cars 610 x2
Fraction of day body shop works on trucks 510 x1
Fraction of day body shop works on cars 510 x2
Thus, Constraint 1 may be expressed by
1
1
x1 x2 1
40
60
(Paint shop constraint)
(13)
(Body shop constraint)
(14)
and Constraint 2 may be expressed by
1
1
x1 x2 1
50
50
Because x1 0 and x2 0 must hold, the relevant LP is
max z 3x1 2x2
s.t.
(12)
1
1
x1 x2 1
40
60
1
1
x1 x2 1
50
50
x1, x2 0
(13)
(14)
The feasible region for this LP is the shaded region in Figure 5 bounded by AEDF.†
For our isoprofit line, we choose the line passing through the point (20, 0). Because
(20, 0) has a z-value of 3(20) 2(0) 60, this yields the isoprofit line z 3x1 2x2 60. Examining lines parallel to this isoprofit line in the direction of increasing z
(northeast), we find that the last “point” in the feasible region to intersect an isoprofit line
is the entire line segment AE. This means that any point on the line segment AE is optimal. We can use any point on AE to determine the optimal z-value. For example, point A,
(40, 0), gives z 3(40) 120.
In summary, the auto company’s LP has an infinite number of optimal solutions, or
multiple or alternative optimal solutions. This is indicated by the fact that as an isoprofit
†
Constraint (13) is satisfied by all points on or below AB (AB is
all points on or below CD (CD is 510 x1 510 x2 1).
64
CHAPTER
3 Introduction to Linear Programming
1
40
x1 1
60
x2 1), and (14) is satisfied by
x2
60
B
(13)
50
D
40
30
E
z = 100
20
(14)
10
FIGURE
z = 60
5
Graphical Solution of
Example 3
A
F
10
20
30
C
40
50
60
x1
line leaves the feasible region, it will intersect an entire line segment corresponding to the
binding constraint (in this case, AE).
From our current example, it seems reasonable (and can be shown to be true) that if
two points (A and E here) are optimal, then any point on the line segment joining these
two points will also be optimal.
If an alternative optimum occurs, then the decision maker can use a secondary criterion to choose between optimal solutions. The auto company’s managers might prefer
point A because it would simplify their business (and still allow them to maximize profits) by allowing them to produce only one type of product (trucks).
The technique of goal programming (see Section 4.14) is often used to choose among
alternative optimal solutions.
Infeasible LP
It is possible for an LP’s feasible region to be empty (contain no points), resulting in an
infeasible LP. Because the optimal solution to an LP is the best point in the feasible region, an infeasible LP has no optimal solution.
EXAMPLE
4
Infeasible LP
Suppose that auto dealers require that the auto company in Example 3 produce at least 30
trucks and 20 cars. Find the optimal solution to the new LP.
Solution
After adding the constraints x1 30 and x2 20 to the LP of Example 3, we obtain the
following LP:
max z 3x1 2x2
s.t.
1
1
x1 x2 1
40
60
1
1
x1 x2 1
50
50
3 . 3 Special Cases
(15)
(16)
65
x2
60
50
F
B
D
(15)
(17)
40
I
30
(18)
20
FIGURE
6
H
G
(16)
10
A
An Empty Feasible
Region (Infeasible LP)
E
10
20
30
A
40
C
50
x1
60
x1 50 x2 30
x2 20
x1, x2 0
(17)
(18)
The graph of the feasible region for this LP is Figure 6.
Constraint
Constraint
Constraint
Constraint
(15)
(16)
(17)
(18)
is
is
is
is
satisfied
satisfied
satisfied
satisfied
by
by
by
by
all
all
all
all
points
points
points
points
on
on
on
on
or
or
or
or
below AB (AB is 410 x1 610 x2 1).
below CD (CD is 510 x1 510 x2 1).
to the right of EF (EF is x1 30).
above GH (GH is x2 20).
From Figure 6 it is clear that no point satisfies all of (15)–(18). This means that Example
4 has an empty feasible region and is an infeasible LP.
In Example 4, the LP is infeasible because producing 30 trucks and 20 cars requires
more paint shop time than is available.
Unbounded LP
Our next special LP is an unbounded LP. For a max problem, an unbounded LP occurs if
it is possible to find points in the feasible region with arbitrarily large z-values, which corresponds to a decision maker earning arbitrarily large revenues or profits. This would indicate that an unbounded optimal solution should not occur in a correctly formulated LP.
Thus, if the reader ever solves an LP on the computer and finds that the LP is unbounded,
then an error has probably been made in formulating the LP or in inputting the LP into
the computer.
For a minimization problem, an LP is unbounded if there are points in the feasible region with arbitrarily small z-values. When graphically solving an LP, we can spot an unbounded LP as follows: A max problem is unbounded if, when we move parallel to our
original isoprofit line in the direction of increasing z, we never entirely leave the feasible
region. A minimization problem is unbounded if we never leave the feasible region when
moving in the direction of decreasing z.
66
CHAPTER
3 Introduction to Linear Programming
EXAMPLE
5
Unbounded LP
Graphically solve the following LP:
max z 2x1 x2
s.t.
x1 x2 1
2x1 x2 6
x1, x2 0
Solution
(19)
(20)
From Figure 7, we see that (19) is satisfied by all points on or above AB (AB is the line
x1 x2 1). Also, (20) is satisfied by all points on or above CD (CD is 2x1 x2 6).
Thus, the feasible region for Example 5 is the (shaded) unbounded region in Figure 7,
which is bounded only by the x2 axis, line segment DE, and the part of line AB beginning
at E. To find the optimal solution, we draw the isoprofit line passing through (2, 0). This
isoprofit line has z 2x1 x2 2(2) 0 4. The direction of increasing z is to the
southeast (this makes x1 larger and x2 smaller). Moving parallel to z 2x1 x2 in a
southeast direction, we see that any isoprofit line we draw will intersect the feasible region. (This is because any isoprofit line is steeper than the line x1 x2 1.)
Thus, there are points in the feasible region that have arbitrarily large z-values. For example, if we wanted to find a point in the feasible region that had z 1,000,000, we could
choose any point in the feasible region that is southeast of the isoprofit line z 1,000,000.
From the discussion in the last two sections, we see that every LP with two variables
must fall into one of the following four cases:
The LP has a unique optimal solution.
Case 1
The LP has alternative or multiple optimal solutions: Two or more extreme points
are optimal, and the LP will have an infinite number of optimal solutions.
Case 2
The LP is infeasible: The feasible region contains no points.
Case 3
Case 4 The LP is unbounded: There are points in the feasible region with arbitrarily large
z-values (max problem) or arbitrarily small z-values (min problem).
In Chapter 4, we show that every LP (not just LPs with two variables) must fall into one
of Cases 1–4.
x2
6
D
B
z=4
z=6
5
4
(19)
(20)
3
2
E
1
FIGURE
7
An Unbounded LP
C
A
x1
1
2
3
4
5
6
3 . 3 Special Cases
67
In the rest of this chapter, we lead the reader through the formulation of several more
complicated linear programming models. The most important step in formulating an LP
model is the proper choice of decision variables. If the decision variables have been properly chosen, the objective function and constraints should follow without much difficulty.
Trouble in determining an LP’s objective function and constraints is usually the result of
an incorrect choice of decision variables.
PROBLEMS
Group A
Identify which of Cases 1–4 apply to each of the following LPs:
1
max z x1 x2
s.t.
x1 x2 4
x1 x2 5
x1, x2 0
2
max z 4x1 x2
s.t.
8x1 2x2 16
5x1 2x2 12
x1, x2 0
3
max z x1 3x2
s.t.
x1 2x2 4
x1 2x2 4
x1, x2 0
4
max z 3x1 x2
s.t.
2x1 3x2 6
x1 3x2 9
x1, x2 0
5 True or false: For an LP to be unbounded, the LP’s
feasible region must be unbounded.
6 True or false: Every LP with an unbounded feasible
region has an unbounded optimal solution.
7 If an LP’s feasible region is not unbounded, we say the
LP’s feasible region is bounded. Suppose an LP has a
bounded feasible region. Explain why you can find the
optimal solution to the LP (without an isoprofit or isocost
line) by simply checking the z-values at each of the feasible
region’s extreme points. Why might this method fail if the
LP’s feasible region is unbounded?
3.4
8 Graphically find all optimal solutions to the following LP:
min z x1 x2
s.t.
x1 x2 6
x1 x2 0
x2 x1 3
x1, x2 0
9 Graphically determine two optimal solutions to the
following LP:
min z 3x1 5x2
s.t.
3x1 2x2 36
3x1 5x2 45
x1, x2 0
Group B
10 Money manager Boris Milkem deals with French
currency (the franc) and American currency (the dollar). At
12 midnight, he can buy francs by paying .25 dollars per
franc and dollars by paying 3 francs per dollar. Let x1 number of dollars bought (by paying francs) and x2 number of francs bought (by paying dollars). Assume that
both types of transactions take place simultaneously, and
the only constraint is that at 12:01 A.M. Boris must have a
nonnegative number of francs and dollars.
a Formulate an LP that enables Boris to maximize
the number of dollars he has after all transactions are
completed.
b Graphically solve the LP and comment on the
answer.
A Diet Problem
Many LP formulations (such as Example 2 and the following diet problem) arise from
situations in which a decision maker wants to minimize the cost of meeting a set of
requirements.
68
CHAPTER
3 Introduction to Linear Programming
EXAMPLE
6
Diet Problem
My diet requires that all the food I eat come from one of the four “basic food groups”
(chocolate cake, ice cream, soda, and cheesecake). At present, the following four foods
are available for consumption: brownies, chocolate ice cream, cola, and pineapple cheesecake. Each brownie costs 50¢, each scoop of chocolate ice cream costs 20¢, each bottle
of cola costs 30¢, and each piece of pineapple cheesecake costs 80¢. Each day, I must ingest at least 500 calories, 6 oz of chocolate, 10 oz of sugar, and 8 oz of fat. The nutritional content per unit of each food is shown in Table 2. Formulate a linear programming
model that can be used to satisfy my daily nutritional requirements at minimum cost.
Solution
As always, we begin by determining the decisions that must be made by the decision
maker: how much of each type of food should be eaten daily. Thus, we define the decision variables:
x1
x2
x3
x4
number of brownies eaten daily
number of scoops of chocolate ice cream eaten daily
bottles of cola drunk daily
pieces of pineapple cheesecake eaten daily
My objective is to minimize the cost of my diet. The total cost of any diet may be determined from the following relation: (total cost of diet) (cost of brownies) (cost of ice
cream) (cost of cola) (cost of cheesecake). To evaluate the total cost of a diet, note
that, for example,
cost
Cost of cola bottle of cola
bottles of
30x
cola
drunk
3
Applying this to the other three foods, we have (in cents)
Total cost of diet 50x1 20x2 30x3 80x4
Thus, the objective function is
min z 50x1 20x2 30x3 80x4
The decision variables must satisfy the following four constraints:
Constraint 1
Daily calorie intake must be at least 500 calories.
Constraint 2
Daily chocolate intake must be at least 6 oz.
Constraint 3
Daily sugar intake must be at least 10 oz.
Constraint 4
Daily fat intake must be at least 8 oz.
TA B L E
2
Nutritional Values for Diet
Type of Food
Brownie
Chocolate ice cream
(1 scoop)
Cola (1 bottle)
Pineapple cheesecake
(1 piece)
Calories
Chocolate (Ounces)
Sugar (Ounces)
Fat (Ounces)
400
3
2
2
200
150
2
0
2
4
4
1
500
0
4
5
3 . 4 A Diet Problem
69
To express Constraint 1 in terms of the decision variables, note that (daily calorie intake) (calories in brownies) (calories in chocolate ice cream) (calories in cola) (calories
in pineapple cheesecake).
The calories in the brownies consumed can be determined from
calories
Calories in brownies brownie
400x
brownies
eaten 1
Applying similar reasoning to the other three foods shows that
Daily calorie intake 400x1 200x2 150x3 500x4
Constraint 1 may be expressed by
400x1 200x2 150x3 500x4 500
(Calorie constraint)
(21)
(Chocolate constraint)
(22)
(Sugar constraint)
(23)
(Fat constraint)
(24)
Constraint 2 may be expressed by
3x1 2x2 6
Constraint 3 may be expressed by
2x1 2x2 4x3 4x4 10
Constraint 4 may be expressed by
2x1 4x2 x3 5x4 8
Finally, the sign restrictions xi 0 (i 1, 2, 3, 4) must hold.
Combining the objective function, constraints (21)–(24), and the sign restrictions
yields the following:
min z 50x1 20x2 30x3 80x4
s.t.
400x1 200x2 150x3 500x4 500
s.t.
403x1 2x2 150x3 500x4 6
s.t.
402x1 2x2 4x3 4x4 10
s.t.
402x1 4x2 x3 5x4 8
s.t.
40xi 0 (i 1, 2, 3, 4)
(Calorie constraint)
(Chocolate constraint)
(Sugar constraint)
(Fat constraint)
(Sign restrictions)
(21)
(22)
(23)
(24)
The optimal solution to this LP is x1 x4 0, x2 3, x3 1, z 90. Thus, the
minimum-cost diet incurs a daily cost of 90¢ by eating three scoops of chocolate ice cream
and drinking one bottle of cola. The optimal z-value may be obtained by substituting the
optimal value of the decision variables into the objective function. This yields a total cost
of z 3(20) 1(30) 90¢. The optimal diet provides
200(3) 150(1) 750 calories
2(3) 6 oz of chocolate
2(3) 4(1) 10 oz of sugar
4(3) 1(1) 13 oz of fat
Thus, the chocolate and sugar constraints are binding, but the calories and fat constraints
are nonbinding.
A version of the diet problem with a more realistic list of foods and nutritional requirements was one of the first LPs to be solved by computer. Stigler (1945) proposed a diet
70
CHAPTER
3 Introduction to Linear Programming
problem in which 77 types of food were available and 10 nutritional requirements (vitamin
A, vitamin C, and so on) had to be satisfied. When solved by computer, the optimal solution yielded a diet consisting of corn meal, wheat flour, evaporated milk, peanut butter, lard,
beef, liver, potatoes, spinach, and cabbage. Although such a diet is clearly high in vital nutrients, few people would be satisfied with it because it does not seem to meet a minimum
standard of tastiness (and Stigler required that the same diet be eaten each day). The optimal solution to any LP model will reflect only those aspects of reality that are captured by
the objective function and constraints. Stigler’s (and our) formulation of the diet problem
did not reflect people’s desire for a tasty and varied diet. Integer programming has been used
to plan institutional menus for a weekly or monthly period.† Menu-planning models do contain constraints that reflect tastiness and variety requirements.
PROBLEMS
Group A
1 There are three factories on the Momiss River (1, 2, and
3). Each emits two types of pollutants (1 and 2) into the
river. If the waste from each factory is processed, the
pollution in the river can be reduced. It costs $15 to process
a ton of factory 1 waste, and each ton processed reduces the
amount of pollutant 1 by 0.10 ton and the amount of
pollutant 2 by 0.45 ton. It costs $10 to process a ton of
factory 2 waste, and each ton processed will reduce the
amount of pollutant 1 by 0.20 ton and the amount of
pollutant 2 by 0.25 ton. It costs $20 to process a ton of
factory 3 waste, and each ton processed will reduce the
amount of pollutant 1 by 0.40 ton and the amount of
pollutant 2 by 0.30 ton. The state wants to reduce the amount
of pollutant 1 in the river by at least 30 tons and the amount
of pollutant 2 in the river by at least 40 tons. Formulate an
LP that will minimize the cost of reducing pollution by the
desired amounts. Do you think that the LP assumptions
(Proportionality, Additivity, Divisibility, and Certainty) are
reasonable for this problem?
2‡ U.S. Labs manufactures mechanical heart valves from
the heart valves of pigs. Different heart operations require
valves of different sizes. U.S. Labs purchases pig valves
from three different suppliers. The cost and size mix of the
valves purchased from each supplier are given in Table 3.
Each month, U.S. Labs places one order with each supplier.
At least 500 large, 300 medium, and 300 small valves must
be purchased each month. Because of limited availability of
pig valves, at most 700 valves per month can be purchased
from each supplier. Formulate an LP that can be used to
minimize the cost of acquiring the needed valves.
3 Peg and Al Fundy have a limited food budget, so Peg is
trying to feed the family as cheaply as possible. However,
she still wants to make sure her family members meet their
daily nutritional requirements. Peg can buy two foods. Food
TA B L E
Supplier
1
2
3
3
Cost
Per Value ($)
Percent
Large
Percent
Medium
Percent
Small
5
4
3
40
30
20
40
35
20
20
35
60
1 sells for $7 per pound, and each pound contains 3 units of
vitamin A and 1 unit of vitamin C. Food 2 sells for $1 per
pound, and each pound contains 1 unit of each vitamin.
Each day, the family needs at least 12 units of vitamin A and
6 units of vitamin C.
a Verify that Peg should purchase 12 units of food 2
each day and thus oversatisfy the vitamin C requirement
by 6 units.
b Al has put his foot down and demanded that Peg fulfill the family’s daily nutritional requirement exactly by
obtaining precisely 12 units of vitamin A and 6 units of
vitamin C. The optimal solution to the new problem will
involve ingesting less vitamin C, but it will be more expensive. Why?
4 Goldilocks needs to find at least 12 lb of gold and at
least 18 lb of silver to pay the monthly rent. There are two
mines in which Goldilocks can find gold and silver. Each
day that Goldilocks spends in mine 1, she finds 2 lb of gold
and 2 lb of silver. Each day that Goldilocks spends in mine
2, she finds 1 lb of gold and 3 lb of silver. Formulate an LP
to help Goldilocks meet her requirements while spending as
little time as possible in the mines. Graphically solve the LP.
†
Balintfy (1976).
Based on Hilal and Erickson (1981).
‡
3 . 4 A Diet Problem
71
3.5
A Work-Scheduling Problem
Many applications of linear programming involve determining the minimum-cost method
for satisfying workforce requirements. The following example illustrates the basic features
common to many of these applications.
EXAMPLE
7
Post Office Problem
A post office requires different numbers of full-time employees on different days of the
week. The number of full-time employees required on each day is given in Table 4. Union
rules state that each full-time employee must work five consecutive days and then receive
two days off. For example, an employee who works Monday to Friday must be off on Saturday and Sunday. The post office wants to meet its daily requirements using only fulltime employees. Formulate an LP that the post office can use to minimize the number of
full-time employees who must be hired.
Solution
Before giving the correct formulation of this problem, let’s begin by discussing an incorrect solution. Many students begin by defining xi to be the number of employees working
on day i (day 1 Monday, day 2 Tuesday, and so on). Then they reason that (number
of full-time employees) (number of employees working on Monday) (number of employees working on Tuesday) (number of employees working on Sunday). This
reasoning leads to the following objective function:
min z x1 x2 x6 x7
To ensure that the post office has enough full-time employees working on each day, they
add the constraints xi (number of employees required on day i). For example, for Monday add the constraint x1 17. Adding the sign restrictions xi 0 (i 1, 2, . . . , 7) yields
the following LP:
min z x1 x2 x3 x4 x5 x6 x7
s.t.
x1x1x1x1x1x1x1 17
s.t.
x1x2x1x1x1x1x1 13
s.t.
x1x1x3x1x1x1x1 15
s.t.
x1x1x1x4x1x1x1 19
s.t.
x1x1x1x1x5x1x1 14
s.t.
x1x1x1x1x1x6x1 16
s.t.
x1x1x1x1x1x1x7 11
xi 0 (i 1, 2, . . . , 7)
There are at least two flaws in this formulation. First, the objective function is not the
number of full-time post office employees. The current objective function counts each employee five times, not once. For example, each employee who starts work on Monday
works Monday to Friday and is included in x1, x2, x3, x4, and x5. Second, the variables x1,
x2, . . . , x7 are interrelated, and the interrelation between the variables is not captured by
the current set of constraints. For example, some of the people who are working on Monday (the x1 people) will be working on Tuesday. This means that x1 and x2 are interrelated,
but our constraints do not indicate that the value of x1 has any effect on the value of x2.
The key to correctly formulating this problem is to realize that the post office’s primary decision is not how many people are working each day but rather how many people begin work on each day of the week. With this in mind, we define
72
CHAPTER
3 Introduction to Linear Programming
TA B L E
4
Requirements for Post Office
Number of Full-time
Employees Required
Day
1
2
3
4
5
6
7
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
17
13
15
19
14
16
11
xi number of employees beginning work on day i
For example, x1 is the number of people beginning work on Monday (these people work
Monday to Friday). With the variables properly defined, it is easy to determine the correct objective function and constraints. To determine the objective function, note that
(number of full-time employees) (number of employees who start work on Monday) (number of employees who start work on Tuesday) (number of employees who
start work on Sunday). Because each employee begins work on exactly one day of the
week, this expression does not double-count employees. Thus, when we correctly define
the variables, the objective function is
min z x1 x2 x3 x4 x5 x6 x7
The post office must ensure that enough employees are working on each day of the
week. For example, at least 17 employees must be working on Monday. Who is working
on Monday? Everybody except the employees who begin work on Tuesday or on Wednesday (they get, respectively, Sunday and Monday, and Monday and Tuesday off). This
means that the number of employees working on Monday is x1 x4 x5 x6 x7. To
ensure that at least 17 employees are working on Monday, we require that the constraint
x1 x4 x5 x6 x7 17
be satisfied. Adding similar constraints for the other six days of the week and the sign restrictions xi 0 (i 1, 2, . . . , 7) yields the following formulation of the post office’s
problem:
min z x1 x2 x3 x4 x5 x6 x7
s.t.
x1 x2 x3 x4 x5 x6 x7 17
s.t.
x1 x2 x3 x4 x5 x6 x7 13
s.t.
x1 x2 x3 x4 x5 x6 x7 15
s.t.
x1 x2 x3 x4 x5 x6 x7 19
s.t.
x1 x2 x3 x4 x5 x6 x7 14
s.t.
x1 x2 x3 x4 x5 x6 x7 16
s.t.
x1 x2 x3 x4 x5 x6 x7 11
xi 0
(i 1, 2, . . . , 7)
(Monday constraint)
(Tuesday constraint)
(Wednesday constraint)
(Thursday constraint)
(Friday constraint)
(Saturday constraint)
(Sunday constraint)
(Sign restrictions)
The optimal solution to this LP is z 637, x1 43, x2 130, x3 2, x4 232, x5 0, x6 10
, x7 5. Because we are only allowing full-time employees, however, the variables must
3
be integers, and the Divisibility Assumption is not satisfied. To find a reasonable answer in
which all variables are integers, we could try to round the fractional variables up, yielding
3 . 5 A Work-Scheduling Problem
73
the feasible solution z 25, x1 2, x2 4, x3 2, x4 8, x5 0, x6 4, x7 5. It
turns out, however, that integer programming can be used to show that an optimal solution
to the post office problem is z 23, x1 4, x2 4, x3 2, x4 6, x5 0, x6 4,
x7 3. Notice that there is no way that the optimal linear programming solution could
have been rounded to obtain the optimal all-integer solution.
Baker (1974) has developed an efficient technique (that does not use linear programming) to determine the minimum number of employees required when each worker receives two consecutive days off.
If you solve this problem using LINDO, LINGO, or the Excel Solver, you may get a
different workforce schedule that uses 23 employees. This shows that Example 7 has alternative optimal solutions.
Creating a Fair Schedule for Employees
The optimal solution we found requires 4 workers to start on Monday, 4 on Tuesday, 2 on
Wednesday, 6 on Thursday, 4 on Saturday, and 3 on Sunday. The workers who start on
Saturday will be unhappy because they never receive a weekend day off. By rotating the
schedules of the employees over a 23-week period, a fairer schedule can be obtained. To
see how this is done, consider the following schedule:
■
■
■
■
■
■
weeks
weeks
weeks
weeks
weeks
weeks
1–4: start on Monday
5–8: start on Tuesday
9–10: start on Wednesday
11–16: start on Thursday
17–20: start on Saturday
21–23: start on Sunday
Employee 1 follows this schedule for a 23-week period. Employee 2 starts with week 2
of this schedule (starting on Monday for 3 weeks, then on Tuesday for 4 weeks, and closing with 3 weeks starting on Sunday and 1 week on Monday). We continue in this fashion to generate a 23-week schedule for each employee. For example, employee 13 will
have the following schedule:
■
■
■
■
■
■
■
weeks
weeks
weeks
weeks
weeks
weeks
weeks
1–4: start on Thursday
5–8: start on Saturday
9–11: start on Sunday
12–15: start on Monday
16–19: start on Tuesday
20–21: start on Wednesday
22–23 start on Thursday
This method of scheduling treats each employee equally.
Modeling Issues
This example is a static scheduling problem, because we assume that the post office
faces the same schedule each week. In reality, demands change over time, workers take
vacations in the summer, and so on, so the post office does not face the same situation
each week. A dynamic scheduling problem will be discussed in Section 3.12.
1
74
CHAPTER
3 Introduction to Linear Programming
If you wanted to set up a weekly scheduling model for a supermarket or a fast-food
restaurant, the number of variables could be very large and the computer might have difficulty finding an exact solution. In this case, heuristic methods can be used to find a
good solution to the problem. See Love and Hoey (1990) for an example of scheduling a
fast-food restaurant.
2
Our model can easily be expanded to handle part-time employees, the use of overtime,
and alternative objective functions such as maximizing the number of weekend days off.
(See Problems 1, 3, and 4.)
3
How did we determine the number of workers needed each day? Perhaps the post office wants to have enough employees to ensure that 95% of all letters are sorted within
an hour. To determine the number of employees needed to provide adequate service, the
post office would use queuing theory, which is discussed in Stochastic Models in Operations Research: Applications and Algorithms; and forecasting, which is discussed in Chapter 14 of this book.
4
Real-World Application
Krajewski, Ritzman, and McKenzie (1980) used LP to schedule clerks who processed
checks at the Ohio National Bank. Their model determined the minimum-cost combination of part-time employees, full-time employees, and overtime labor needed to process
each day’s checks by the end of the workday (10 P.M.). The major input to their model was
a forecast of the number of checks arriving at the bank each hour. This forecast was produced using multiple regression (see Stochastic Models in Operations Research: Applications and Algorithms). The major output of the LP was a work schedule. For example,
the LP might suggest that 2 full-time employees work daily from 11 A.M. to 8 P.M., 33
part-time employees work every day from 6 P.M. to 10 P.M., and 27 part-time employees
work from 6 P.M. to 10 P.M. on Monday, Tuesday, and Friday.
PROBLEMS
Group A
1 In the post office example, suppose that each full-time
employee works 8 hours per day. Thus, Monday’s requirement of 17 workers may be viewed as a requirement of
8(17) 136 hours. The post office may meet its daily labor
requirements by using both full-time and part-time
employees. During each week, a full-time employee works
8 hours a day for five consecutive days, and a part-time
employee works 4 hours a day for five consecutive days. A
full-time employee costs the post office $15 per hour,
whereas a part-time employee (with reduced fringe benefits)
costs the post office only $10 per hour. Union requirements
limit part-time labor to 25% of weekly labor requirements.
Formulate an LP to minimize the post office’s weekly labor
costs.
2 During each 4-hour period, the Smalltown police force
requires the following number of on-duty police officers: 12
midnight to 4 A.M.—8; 4 to 8 A.M.—7; 8 A.M. to 12 noon—
6; 12 noon to 4 P.M.—6; 4 to 8 P.M.—5; 8 P.M. to 12
midnight—4. Each police officer works two consecutive
4-hour shifts. Formulate an LP that can be used to minimize
the number of police officers needed to meet Smalltown’s
daily requirements.
Group B
3 Suppose that the post office can force employees to
work one day of overtime each week. For example, an
employee whose regular shift is Monday to Friday can also
be required to work on Saturday. Each employee is paid $50
a day for each of the first five days worked during a week
and $62 for the overtime day (if any). Formulate an LP
whose solution will enable the post office to minimize the
cost of meeting its weekly work requirements.
4 Suppose the post office had 25 full-time employees and
was not allowed to hire or fire any employees. Formulate an
LP that could be used to schedule the employees in order to
maximize the number of weekend days off received by the
employees.
3 . 5 A Work-Scheduling Problem
75
5 Each day, workers at the Gotham City Police Department
work two 6-hour shifts chosen from 12 A.M. to 6 A.M., 6 A.M.
to 12 P.M., 12 P.M. to 6 P.M., and 6 P.M. to 12 A.M. The
following number of workers are needed during each shift:
12 A.M. to 6 A.M.—15 workers; 6 A.M. to 12 P.M.—5 workers;
12 P.M. to 6 P.M.—12 workers; 6 P.M. to 12 A.M.—6 workers.
Workers whose two shifts are consecutive are paid $12 per
hour; workers whose shifts are not consecutive are paid $18
per hour. Formulate an LP that can be used to minimize the
cost of meeting the daily workforce demands of the Gotham
City Police Department.
6 During each 6-hour period of the day, the Bloomington
Police Department needs at least the number of policemen
shown in Table 5. Policemen can be hired to work either 12
consecutive hours or 18 consecutive hours. Policemen are
paid $4 per hour for each of the first 12 hours a day they
work and are paid $6 per hour for each of the next 6 hours
they work in a day. Formulate an LP that can be used to
minimize the cost of meeting Bloomington’s daily police
requirements.
TA B L E
5
Time Period
Number of Policemen Required
12 A.M.–6 A.M.
6 A.M.–12 P.M.
12 P.M.–6 P.M.
6 P.M.–12 A.M.
12
8
6
15
3.6
7 Each hour from 10 A.M. to 7 P.M., Bank One receives
checks and must process them. Its goal is to process all the
checks the same day they are received. The bank has 13
check-processing machines, each of which can process up
to 500 checks per hour. It takes one worker to operate each
machine. Bank One hires both full-time and part-time
workers. Full-time workers work 10 A.M.–6 P.M., 11 A.M.–
7 P.M., or Noon–8 P.M. and are paid $160 per day. Part-time
workers work either 2 P.M.–7 P.M. or 3 P.M.–8 P.M. and are
paid $75 per day. The number of checks received each hour
is given in Table 6. In the interest of maintaining continuity,
Bank One believes it must have at least three full-time
workers under contract. Develop a cost-minimizing work
schedule that processes all checks by 8 P.M.
TA B L E
Time
10 A.M.
11 A.M.
Noon
1 P.M.
2 P.M.
3 P.M.
4 P.M.
5 P.M.
6 P.M.
7 P.M.
6
Checks Received
5,000
4,000
3,000
4,000
2,500
3,000
4,000
4,500
3,500
3,000
A Capital Budgeting Problem
In this section (and in Sections 3.7 and 3.11), we discuss how linear programming can be
used to determine optimal financial decisions. This section considers a simple capital budgeting model.†
We first explain briefly the concept of net present value (NPV), which can be used to
compare the desirability of different investments. Time 0 is the present.
Suppose investment 1 requires a cash outlay of $10,000 at time 0 and a cash outlay of
$14,000 two years from now and yields a cash flow of $24,000 one year from now. Investment 2 requires a $6,000 cash outlay at time 0 and a $1,000 cash outlay two years
from now and yields a cash flow of $8,000 one year from now. Which investment would
you prefer?
Investment 1 has a net cash flow of
10,000 24,000 14,000 $0
and investment 2 has a net cash flow of
6,000 8,000 1,000 $1,000
On the basis of net cash flow, investment 2 is superior to investment 1. When we compare investments on the basis of net cash flow, we are assuming that a dollar received at
†
This section is based on Weingartner (1963).
76
CHAPTER
3 Introduction to Linear Programming
any point in time has the same value. This is not true! Suppose that there exists an investment (such as a money market fund) for which $1 invested at a given time will yield
(with certainty) $(1 r) one year later. We call r the annual interest rate. Because $1
now can be transformed into $(1 r) one year from now, we may write
$1 now $(1 r) one year from now
Applying this reasoning to the $(1 r) obtained one year from now shows that
$1 now $(1 r) one year from now $(1 r)2 two years from now
and
$1 now $(1 r)k k years from now
Dividing both sides of this equality by (1 r)k shows that
$1 received k years from now $(1 r)k now
In other words, a dollar received k years from now is equivalent to receiving $(1 r)k
now.
We can use this idea to express all cash flows in terms of time 0 dollars (this process
is called discounting cash flows to time 0). Using discounting, we can determine the total value (in time 0 dollars) of the cash flows for any investment. The total value (in time
0 dollars) of the cash flows for any investment is called the net present value, or NPV,
of the investment. The NPV of an investment is the amount by which the investment will
increase the firm’s value (as expressed in time 0 dollars).
Assuming that r 0.20, we can compute the NPV for investments 1 and 2.
24,000
14,000
NPV of investment 1 10,000 2
1 0.20
(1 0.20)
$277.78
This means that if a firm invested in investment 1, then the value of the firm (in time 0
dollars) would increase by $277.78. For investment 2,
8,000
1,000
NPV of investment 2 6,000 2
1 0.20
(1 0.20)
$27.78
If a firm invested in investment 2, then the value of the firm (in time 0 dollars) would be
reduced by $27.78.
Thus, the NPV concept says that investment 1 is superior to investment 2. This conclusion is contrary to the one reached by comparing the net cash flows of the two investments. Note that the comparison between investments often depends on the value of r. For
example, the reader is asked to show in Problem 1 at the end of this section that for r 0.02, investment 2 has a higher NPV than investment 1. Of course, our analysis assumes
that the future cash flows of an investment are known with certainty.
Computing NPV with Excel
If we receive a cash flow of ct in t years from now (t 1, 2, . . . T ) and we discount cash
flows at a rate r, then the NPV of our cash flows is given by
tT
c
t
(1 r)t
t1
3 . 6 A Capital Budgeting Problem
77
The basic idea is that $1 today equals $(1 r) a year from now, so
1
today $1 a year from now
1r
The Excel function NPV makes this computation easy. The syntax is
NPV (r, range of cash flows)
The formula assumes that cash flows occur at the end of the year.
Projects with NPV 0 add value to the company, while projects with negative NPV
reduce the company’s value.
We illustrate the computation of NPV in the file NPV.xls.
NPV.xls
EXAMPLE
8
Computing NPV
For a discount rate of 15%, consider a project with the cash flows shown in Figure 8.
Solution
a
Compute project NPV if cash flows are at the end of the year.
b
Compute project NPV if cash flows are at the beginning of the year.
c
Compute project NPV if cash flows are at the middle of the year.
a
We enter in cell C7 the formula
NPV(C1,C4:I4)
and obtain $375.06.
Because all cash flows are received a year earlier, we multiply each cash flow’s value
by (1 1.15), so the answer is obtained in C8 with formula
b
(1 C1) C7
NPV is now larger: $431.32.
We checked this in cell D8 with the formula
C4 NPV(C1,D4:I4)
c Because all cash flows are received six months earlier, we multiply each cash flow’s
value by 1.15
. NPV is now computed in C9 with the formula
(1.15)^0.5 C7
Now NPV is $402.21.
A
FIGURE
78
8
1
2
3
4
5
6
7
8
9
B
dr
Time
end of yr.
end of year
beginning of yr. beg. of yr .
middle of year middle of yr.
CHAPTER
C
0.15
1
-400
$375.06
$431.32
$402.21
3 Introduction to Linear Programming
D
E
2
200
$431.32
F
3
600
4
-900
G
5
1000
I
H
6
250
7
230
The XNPV Function
Often cash flows occur at irregular intervals. This makes it difficult to compute the NPV
of these cash flows. Fortunately, the Excel XNPV function makes computing NPVs of irregularly timed cash flows a snap. To use the XNPV function, you must first have added
the Analysis Toolpak. To do this, select Tools Add-Ins and check the Analysis Toolpak and
Analysis Tookpak VBA boxes. Here is an example of XNPV in action.
EXAMPLE
9
Finding NPV of Nonperiodic Cash Flows
Suppose on April 8, 2001, we paid out $900. Then we receive
■
■
■
■
$300
$400
$200
$100
on
on
on
on
8/15/01
1/15/02
6/25/02
7/03/03.
If the annual discount rate is 10%, what is the NPV of these cash flows?
Solution
We enter the dates (in Excel date format) in D3:D7 and the cash flows in E3:E7 (see Figure 9). Entering the formula
XNPV(A9,E3:E7,D3:D7)
in cell D11 computes the project’s NPV in terms of April 8, 2001, dollars because that is
the first date chronologically. What Excel did was as follows:
Compute the number of years after April 8, 2001, that each date occurred. (We did
this in column F). For example, August 15, 2001, is .3534 years after April 8.
1
years after
1
Then discount cash flows at a rate . For example, the August 15,
1 rate
.3534
1
2001, cash flow is discounted by .967.
1 .1
2
3
We obtained Excel dates in serial number form by changing format to General.
If you want the XNPV function to determine a project’s NPV in today’s dollars, insert
a $0 cash flow on today’s date and include this row in the XNPV calculation. Excel will
then return the project’s NPV as of today’s date.
FIGURE
9
Example of
XNPV Function
A
1
2 XNPV Function
3
4
5
6
7
8 Rate
9
0.1
10
11
12
13
14
B
C
D
E
F
G
Code
Date
Cash Flow Time
df
36989.00
4/8/01
-900
1
37118.00
8/15/01
300 0.353425 0.966876
37271.00
1/15/02
400 0.772603 0.929009
37432.00
6/25/02
200 1.213699 0.890762
37805.00
7/3/03
100 2.235616 0.808094
XNPV
Direct
20.62822 20.628217
XIRR
12.97%
3 . 6 A Capital Budgeting Problem
79
With this background information, we are ready to explain how linear programming
can be applied to problems in which limited investment funds must be allocated to investment projects. Such problems are called capital budgeting problems.
EXAMPLE
10
Project Selection
Star Oil Company is considering five different investment opportunities. The cash outflows and net present values (in millions of dollars) are given in Table 7. Star Oil has $40
million available for investment now (time 0); it estimates that one year from now (time
1) $20 million will be available for investment. Star Oil may purchase any fraction of each
investment. In this case, the cash outflows and NPV are adjusted accordingly. For example, if Star Oil purchases one-fifth of investment 3, then a cash outflow of 15(5) $1 million would be required at time 0, and a cash outflow of 15(5) $1 million would be required at time 1. The one-fifth share of investment 3 would yield an NPV of 15(16) $3.2
million. Star Oil wants to maximize the NPV that can be obtained by investing in investments 1–5. Formulate an LP that will help achieve this goal. Assume that any funds left
over at time 0 cannot be used at time 1.
Solution
Star Oil must determine what fraction of each investment to purchase. We define
xi fraction of investment i purchased by Star Oil
(i 1, 2, 3, 4, 5)
Star’s goal is to maximize the NPV earned from investments. Now, (total NPV) (NPV
earned from investment 1) (NPV earned from investment 2) (NPV earned from
investment 5). Note that
NPV from investment 1 (NPV from investment 1)(fraction of investment 1 purchased)
13x1
Applying analogous reasoning to investments 2–5 shows that Star Oil wants to maximize
z 13x1 16x2 16x3 14x4 39x5
(25)
Star Oil’s constraints may be expressed as follows:
Constraint 1
Star cannot invest more than $40 million at time 0.
Constraint 2
Star cannot invest more than $20 million at time 1.
Constraint 3
Star cannot purchase more than 100% of investment i (i 1, 2, 3, 4, 5).
To express Constraint 1 mathematically, note that (dollars invested at time 0) (dollars
invested in investment 1 at time 0) (dollars invested in investment 2 at time 0) (dollars invested in investment 5 at time 0). Also, in millions of dollars,
fraction of
investment
1 purchased
Dollars invested in investment 1
dollars required for
at time 0
investment 1 at time 0
11x1
TA B L E
7
Cash Flows and Net Present Value for Investments in Capital Budgeting
Investment ($)
Time 0 cash outflow
Time 1 cash outflow
NPV
80
CHAPTER
1
2
3
4
5
11
3
13
53
6
16
5
5
16
5
1
14
29
34
39
3 Introduction to Linear Programming
Similarly, for investments 2–5,
Dollars invested at time 0 11x1 53x2 5x3 5x4 29x5
Then Constraint 1 reduces to
11x1 53x2 5x3 5x4 29x5 40
(Time 0 constraint)
(26)
(Time 1 constraint)
(27)
Constraint 2 reduces to
3x1 6x2 5x3 x4 34x5 20
Constraints 3–7 may be represented by
xi 1
(i 1, 2, 3, 4, 5)
(28–32)
Combining (26)–(32) with the sign restrictions xi 0 (i 1, 2, 3, 4, 5) yields the following LP:
max z 13x1 16x2 16x3 14x4 39x5
s.t.
11x1 53x2 5x3 5x4 29x5 40
s.t.
3x1 6x2 5x3 x4 34x5 20
s.t.
x1 6x2 5x3 x4 34x5 1
s.t.
3x1 6x2 5x3 x4 34x5 1
s.t.
3x1 6x2 5x3 x4 34x5 1
s.t.
3x1 6x2 5x3 x4 34x5 1
s.t.
3x1 6x2 5x3 x4 34x5 1
xi 0
(i 1, 2, 3, 4, 5)
(Time 0 constraint)
(Time 1 constraint)
The optimal solution to this LP is x1 x3 x4 1, x2 0.201, x5 0.288, z 57.449.
Star Oil should purchase 100% of investments 1, 3, and 4; 20.1% of investment 2; and 28.8%
of investment 5. A total NPV of $57,449,000 will be obtained from these investments.
It is often impossible to purchase only a fraction of an investment without sacrificing
the investment’s favorable cash flows. Suppose it costs $12 million to drill an oil well just
deep enough to locate a $30-million gusher. If there were a sole investor in this project
who invested $6 million to undertake half of the project, then he or she would lose the
entire investment and receive no positive cash flows. Because, in this example, reducing
the money invested by 50% reduces the return by more than 50%, this situation would violate the Proportionality Assumption.
In many capital budgeting problems, it is unreasonable to allow the xi to be fractions:
Each xi should be restricted to 0 (not investing at all in investment i) or 1 (purchasing all of
investment i). Thus, many capital budgeting problems violate the Divisibility Assumption.
A capital budgeting model that allows each xi to be only 0 or 1 is discussed in Section 9.2.
PROBLEMS
Group A
1 Show that if r 0.02, investment 2 has a larger NPV
than investment 1.
2 Two investments with varying cash flows (in thousands
of dollars) are available, as shown in Table 8. At time 0,
$10,000 is available for investment, and at time 1, $7,000 is
available. Assuming that r 0.10, set up an LP whose
solution maximizes the NPV obtained from these
investments. Graphically find the optimal solution to the LP.
3 . 6 A Capital Budgeting Problem
81
TA B L E
8
figures are in millions. For example, Project 1 will add $14
million in NPV and require expenditures of $12 million
during year 1 and $3 million during year 2. Fifty million is
available for projects during year 1 and $20 million is
available during year 2. Assuming we may undertake a
fraction of each project, how can we maximize NPV?
Cash Flow (in $ Thousands) at Time
Investment
1
2
0
1
2
3
6
8
5
3
7
9
9
7
Group B
5† Finco must determine how much investment and debt
to undertake during the next year. Each dollar invested
reduces the NPV of the company by 10¢, and each dollar of
debt increases the NPV by 50¢ (due to deductibility of
interest payments). Finco can invest at most $1 million
during the coming year. Debt can be at most 40% of
investment. Finco now has $800,000 in cash available. All
investment must be paid for from current cash or borrowed
money. Set up an LP whose solution will tell Finco how to
maximize its NPV. Then graphically solve the LP.
(Assume that any fraction of an investment may be
purchased.)
3 Suppose that r, the annual interest rate, is 0.20, and that
all money in the bank earns 20% interest each year (that is,
after being in the bank for one year, $1 will increase to
$1.20). If we place $100 in the bank for one year, what is
the NPV of this transaction?
4 A company has nine projects under consideration. The
NPV added by each project and the capital required by each
project during the next two years is given in Table 9. All
TA B L E
9
Project
Year 1 Outflow
Year 2 Outflow
NPV
1
2
3
4
5
6
7
8
9
12
3
14
54
7
17
6
6
17
6
2
15
30
35
40
6
6
12
48
4
14
36
3
10
18
3
12
3.7
Short-Term Financial Planning‡
LP models can often be used to aid a firm in short- or long-term financial planning (also
see Section 3.11). Here we consider a simple example that illustrates how linear programming can be used to aid a corporation’s short-term financial planning.§
EXAMPLE
11
Short-Term Financial Planning
Semicond is a small electronics company that manufactures tape recorders and radios. The
per-unit labor costs, raw material costs, and selling price of each product are given in
Table 10. On December 1, 2002, Semicond has available raw material that is sufficient to
manufacture 100 tape recorders and 100 radios. On the same date, the company’s balance
sheet is as shown in Table 11, and Semicond’s asset–liability ratio (called the current ratio) is 20,000/10,000 2.
Semicond must determine how many tape recorders and radios should be produced
during December. Demand is large enough to ensure that all goods produced will be sold.
All sales are on credit, however, and payment for goods produced in December will not
†
Based on Myers and Pogue (1974).
This section covers material that may be omitted with no loss of continuity.
§
This section is based on an example in Neave and Wiginton (1981).
‡
82
CHAPTER
3 Introduction to Linear Programming
TA B L E
10
Cost Information for Semicond
Selling price
Labor cost
Raw material cost
TA B L E
Tape Recorder
Radio
$100
$ 50
$ 30
$90
$35
$40
11
Balance Sheet for Semicond
Assets
Cash
Accounts receivable§
Inventory outstanding¶
Bank loan
Liabilities
$10,000
$ 3,000
$ 7,000
$10,000
§
Accounts receivable is money owed to Semicond by customers
who have previously purchased Semicond products.
¶
Value of December 1, 2002, inventory 30(100) 40(100) $7,000.
be received until February 1, 2003. During December, Semicond will collect $2,000 in
accounts receivable, and Semicond must pay off $1,000 of the outstanding loan and a
monthly rent of $1,000. On January 1, 2003, Semicond will receive a shipment of raw
material worth $2,000, which will be paid for on February 1, 2003. Semicond’s management has decided that the cash balance on January 1, 2003, must be at least $4,000. Also,
Semicond’s bank requires that the current ratio at the beginning of January be at least 2.
To maximize the contribution to profit from December production, (revenues to be received) (variable production costs), what should Semicond produce during December?
Solution
Semicond must determine how many tape recorders and radios should be produced during December. Thus, we define
x1 number of tape recorders produced during December
x2 number of radios produced during December
To express Semicond’s objective function, note that
Contribution to profit
100 50 30 $20
Contribution to profit
90 35 40 $15
As in the Giapetto example, this leads to the objective function
max z 20x1 15x2
(33)
Semicond faces the following constraints:
Because of limited availability of raw material, at most 100 tape recorders
can be produced during December.
Constraint 1
Constraint 2 Because of limited availability of raw material, at most 100 radios can be
produced during December.
3 . 7 Short-Term Financial Planning
83
Constraint 3
Cash on hand on January 1, 2002, must be at least $4,000.
Constraint 4
(January 1 assets)/(January 1 liabilities) 2 must hold.
Constraint 1 is described by
x1 100
(34)
x2 100
(35)
Constraint 2 is described by
To express Constraint 3, note that
January 1 cash on hand December 1 cash on hand
accounts receivable collected during December
portion of loan repaid during December
December rent December labor costs
10,000 2,000 1,000 1,000 50x1 35x2
10,000 50x1 35x2
Now Constraint 3 may be written as
10,000 50x1 35x2 4,000
(36 )
Most computer codes require each LP constraint to be expressed in a form in which all
variables are on the left-hand side and the constant is on the right-hand side. Thus, for
computer solution, we should write (36 ) as
50x1 35x2 6,000
(36)
To express Constraint 4, we need to determine Semicond’s January 1 cash position, accounts receivable, inventory position, and liabilities in terms of x1 and x2. We have already
shown that
January 1 cash position 10,000 50x1 35x2
Then
January 1 accounts receivable December 1 accounts receivable
accounts receivable from December sales
accounts receivable collected during December
3,000 100x1 90x2 2000
1,000 100x1 90x2
It now follows that
Value of January 1 inventory value of December 1 inventory
value of inventory used in December
value of inventory received on January 1
7,000 (30x1 40x2) 2,000
9,000 30x1 40x2
We can now compute the January 1 asset position:
January 1 asset position January 1 cash position January 1 accounts receivable
January 1 inventory position
(10,000 50x1 35x2) (1,000 100x1 90x2)
(9,000 30x1 40x2)
20,000 20x1 15x2
84
CHAPTER
3 Introduction to Linear Programming
Finally,
January 1 liabilities December 1 liabilities December loan payment
amount due on January 1 inventory shipment
10,000 1,000 2,000
$11,000
Constraint 4 may now be written as
20,000 20x1 15x2
2
11,000
Multiplying both sides of this inequality by 11,000 yields
20,000 20x1 15x2 22,000
Putting this in a form appropriate for computer input, we obtain
20x1 15x2 2,000
(37)
Combining (33)–(37) with the sign restrictions x1 0 and x2 0 yields the following LP:
max z 20x1 15x2
s.t.
20x1 15x2 s.t.
20x1 15x2 s.t.
50x1 35x2 s.t.
20x1 15x2 x1, x2 100
100
6,000
2,000
0
(Tape recorder constraint)
(Radio constraint)
(Cash position constraint)
(Current ratio constraint)
(Sign restrictions)
When solved graphically (or by computer), the following optimal solution is obtained:
z 2,500, x1 50, x2 100. Thus, Semicond can maximize the contribution of December’s production to profits by manufacturing 50 tape recorders and 100 radios. This
will contribute 20(50) 15(100) $2,500 to profits.
PROBLEMS
Group A
1
Graphically solve the Semicond problem.
3.8
2 Suppose that the January 1 inventory shipment had been
valued at $7,000. Show that Semicond’s LP is now infeasible.
Blending Problems
Situations in which various inputs must be blended in some desired proportion to produce
goods for sale are often amenable to linear programming analysis. Such problems are
called blending problems. The following list gives some situations in which linear programming has been used to solve blending problems.
Blending various types of crude oils to produce different types of gasoline and other
outputs (such as heating oil)
1
3 . 8 Blending Problems
85
2
Blending various chemicals to produce other chemicals
3
Blending various types of metal alloys to produce various types of steels
Blending various livestock feeds in an attempt to produce a minimum-cost feed mixture for cattle
4
Mixing various ores to obtain ore of a specified quality
5
Mixing various ingredients (meat, filler, water, and so on) to produce a product like
bologna
6
Mixing various types of papers to produce recycled paper of varying quality
7
The following example illustrates the key ideas that are used in formulating LP models
of blending problems.
EXAMPLE
12
Oil Blending
Sunco Oil manufactures three types of gasoline (gas 1, gas 2, and gas 3). Each type is
produced by blending three types of crude oil (crude 1, crude 2, and crude 3). The sales
price per barrel of gasoline and the purchase price per barrel of crude oil are given in
Table 12. Sunco can purchase up to 5,000 barrels of each type of crude oil daily.
The three types of gasoline differ in their octane rating and sulfur content. The crude oil
blended to form gas 1 must have an average octane rating of at least 10 and contain at most
1% sulfur. The crude oil blended to form gas 2 must have an average octane rating of at least
8 and contain at most 2% sulfur. The crude oil blended to form gas 3 must have an octane rating of at least 6 and contain at most 1% sulfur. The octane rating and the sulfur content of the
three types of oil are given in Table 13. It costs $4 to transform one barrel of oil into one barrel of gasoline, and Sunco’s refinery can produce up to 14,000 barrels of gasoline daily.
Sunco’s customers require the following amounts of each gasoline: gas 1—3,000 barrels per day; gas 2—2,000 barrels per day; gas 3—1,000 barrels per day. The company
considers it an obligation to meet these demands. Sunco also has the option of advertising to stimulate demand for its products. Each dollar spent daily in advertising a particular type of gas increases the daily demand for that type of gas by 10 barrels. For example, if Sunco decides to spend $20 daily in advertising gas 2, then the daily demand for
gas 2 will increase by 20(10) 200 barrels. Formulate an LP that will enable Sunco to
maximize daily profits (profits revenues costs).
Solution
Sunco must make two types of decisions: first, how much money should be spent in advertising each type of gas, and second, how to blend each type of gasoline from the three
types of crude oil available. For example, Sunco must decide how many barrels of crude
1 should be used to produce gas 1. We define the decision variables
ai dollars spent daily on advertising gas i
(i 1, 2, 3)
xij barrels of crude oil i used daily to produce gas j
(i 1, 2, 3; j 1, 2, 3)
For example, x21 is the number of barrels of crude 2 used each day to produce gas 1.
TA B L E
12
Gas and Crude Oil Prices for Blending
Gas
1
2
3
86
CHAPTER
Sales Price
per Barrel ($)
Crude
Purchase Price
per Barrel ($)
70
60
50
1
2
3
45
35
25
3 Introduction to Linear Programming
TA B L E
13
Octane Ratings and Sulfur Requirements
for Blending
Crude
Octane
Rating
Sulfur
Content (%)
12
6
8
0.5
2.0
3.0
1
2
3
Knowledge of these variables is sufficient to determine Sunco’s objective function and constraints, but before we do this, we note that the definition of the decision variables implies that
x11 x12 x13 barrels of crude 1 used daily
x21 x22 x23 barrels of crude 2 used daily
x31 x32 x33 barrels of crude 3 used daily
(38)
x11 x21 x31 barrels of gas 1 produced daily
x12 x22 x32 barrels of gas 2 produced daily
x13 x23 x33 barrels of gas 3 produced daily
(39)
To simplify matters, let’s assume that gasoline cannot be stored, so it must be sold on the
day it is produced. This implies that for i 1, 2, 3, the amount of gas i produced daily
should equal the daily demand for gas i. Suppose that the amount of gas i produced daily
exceeded the daily demand. Then we would have incurred unnecessary purchasing and
production costs. On the other hand, if the amount of gas i produced daily is less than the
daily demand for gas i, then we are failing to meet mandatory demands or incurring unnecessary advertising costs.
We are now ready to determine Sunco’s objective function and constraints. We begin
with Sunco’s objective function. From (39),
Daily revenues from gas sales 70(x11 x21 x31) 60(x12 x22 x32)
50(x13 x23 x33)
From (38),
Daily cost of purchasing crude oil 45(x11 x12 x13) 35(x21 x22 x23)
25(x31 x32 x33)
Also,
Daily advertising costs a1 a2 a3
Daily production costs 4(x11 x12 x13 x21 x22 x23 x31 x32 x33)
Then,
Daily profit daily revenue from gas sales
daily cost of purchasing crude oil
daily advertising costs daily production costs
(70 45 4)x11 (60 45 4)x12 (50 45 4)x13
(70 35 4)x21 (60 35 4)x22 (50 35 4)x23
(70 25 4)x31 (60 25 4)x32
(50 25 4)x33 a1 a2 a3
3 . 8 Blending Problems
87
Thus, Sunco’s goal is to maximize
z 21x11 11x12 x13 31x21 21x22 11x23 41x31
31x32 21x33 a1 a2 a3
(40)
Regarding Sunco’s constraints, we see that the following 13 constraints must be satisfied:
Constraint 1
Gas 1 produced daily should equal its daily demand.
Constraint 2
Gas 2 produced daily should equal its daily demand.
Constraint 3
Gas 3 produced daily should equal its daily demand.
Constraint 4
At most 5,000 barrels of crude 1 can be purchased daily.
Constraint 5
At most 5,000 barrels of crude 2 can be purchased daily.
Constraint 6
At most 5,000 barrels of crude 3 can be purchased daily.
Constraint 7 Because of limited refinery capacity, at most 14,000 barrels of gasoline can
be produced daily.
Constraint 8
Crude oil blended to make gas 1 must have an average octane level of at
least 10.
Constraint 9
Crude oil blended to make gas 2 must have an average octane level of at
least 8.
Constraint 10
Crude oil blended to make gas 3 must have an average octane level of at
least 6.
Constraint 11
Crude oil blended to make gas 1 must contain at most 1% sulfur.
Constraint 12
Crude oil blended to make gas 2 must contain at most 2% sulfur.
Constraint 13
Crude oil blended to make gas 3 must contain at most 1% sulfur.
To express Constraint 1 in terms of decision variables, note that
Daily demand for gas 1 3,000 gas 1 demand generated by
advertising
gas 1 demand dollars
Gas 1 demand generated by advertising spent
dollar spent
†
10a1
Thus, daily demand for gas 1 3,000 10a1. Constraint 1 may now be written as
x11 x21 x31 3,000 10a1
(41 )
x11 x21 x31 10a1 3,000
(41)
which we rewrite as
Constraint 2 is expressed by
x12 x22 x32 10a2 2,000
(42)
Many students believe that gas 1 demand generated by advertising should be written as 110 a1. Analyzing the
units of this term will show that this is not correct. 110 has units of dollars spent per barrel of demand, and a1
has units of dollars spent. Thus, the term 110 a1 would have units of (dollars spent)2 per barrel of demand. This
cannot be correct!
†
88
CHAPTER
3 Introduction to Linear Programming
Constraint 3 is expressed by
x13 x23 x33 10a3 1,000
(43)
From (38), Constraint 4 reduces to
x11 x12 x13 5,000
(44)
x21 x22 x23 5,000
(45)
x31 x32 x33 5,000
(46)
Constraint 5 reduces to
Constraint 6 reduces to
Note that
Total gas produced gas 1 produced gas 2 produced gas 3 produced
(x11 x21 x31) (x12 x22 x32) (x13 x23 x33)
Then Constraint 7 becomes
x11 x21 x31 x12 x22 x32 x13 x23 x33 14,000
(47)
To express Constraints 8–10, we must be able to determine the “average” octane level in
a mixture of different types of crude oil. We assume that the octane levels of different
crudes blend linearly. For example, if we blend two barrels of crude 1, three barrels of
crude 2, and one barrel of crude 3, the average octane level in this mixture would be
12(2) 6(3) 8(1)
50
1
Total octane value in mixture
8 231
Generalizing, we can express Constraint 8 by
12x11 6x21 8x31
Total octane value in gas 1
10
x11 x21 x31
(48 )
Unfortunately, (48 ) is not a linear inequality. To transform (48 ) into a linear inequality,
all we have to do is multiply both sides by the denominator of the left-hand side. The resulting inequality is
12x11 6x21 8x31 10(x11 x21 x31)
which may be rewritten as
2x11 4x21 2x31 0
(48)
Similarly, Constraint 9 yields
12x12 6x22 8x32
8
x12 x22 x32
Multiplying both sides of this inequality by x12 x22 x32 and simplifying yields
4x12 2x22 0
(49)
Because each type of crude oil has an octane level of 6 or higher, whatever we blend to
manufacture gas 3 will have an average octane level of at least 6. This means that any values of the variables will satisfy Constraint 10. To verify this, we may express Constraint
10 by
12x13 6x23 8x33
6
x13 x23 x33
3 . 8 Blending Problems
89
Multiplying both sides of this inequality by x13 x23 x33 and simplifying, we obtain
6x13 2x33 0
(50)
Because x13 0 and x33 0 are always satisfied, (50) will automatically be satisfied and
thus need not be included in the model. A constraint such as (50) that is implied by other
constraints in the model is said to be a redundant constraint and need not be included
in the formulation.
Constraint 11 may be written as
Total sulfur in gas 1 mixture
0.01
Then, using the percentages of sulfur in each type of oil, we see that
Total sulfur in gas 1 mixture Sulfur in oil 1 used for gas 1
sulfur in oil 2 used for gas 1
sulfur in oil 3 used for gas 1
0.005x11 0.02x21 0.03x31
Constraint 11 may now be written as
0.005x11 0.02x21 0.03x31
0.01
x11 x21 x31
Again, this is not a linear inequality, but we can multiply both sides of the inequality by
x11 x21 x31 and simplify, obtaining
0.005x11 0.01x21 0.02x31 0
(51)
Similarly, Constraint 12 is equivalent to
0.005x12 0.02x22 0.03x32
0.02
x12 x22 x32
Multiplying both sides of this inequality by x12 x22 x32 and simplifying yields
0.015x12 0.01x32 0
(52)
Finally, Constraint 13 is equivalent to
0.005x13 0.02x23 0.03x33
0.01
x13 x23 x33
Multiplying both sides of this inequality by x13 x23 x33 and simplifying yields the
LP constraint
0.005x13 0.01x23 0.02x33 0
(53)
Combining (40)–(53), except the redundant constraint (50), with the sign restrictions
xij 0 and ai 0 yields an LP that may be expressed in tabular form (see Table 14). In
Table 14, the first row (max) represents the objective function, the second row represents
the first constraint, and so on. When solved on a computer, an optimal solution to Sunco’s
LP is found to be
x11 2222.22
x21 444.44
x31 333.33
a1 0
90
CHAPTER
3 Introduction to Linear Programming
z 287,500
x12 2111.11
x22 4222.22
x32 3166.67
a2 750
a3
x13 666.67
x23 333.34
x33 0
0
TA B L E
14
Objective Function and Constraints for Blending
x11
21
1
0
0
1
0
0
1
2
0
0.005
0
0
x12
11
0
1
0
1
0
0
1
0
4
0
0.015
0
x13
x21
1
0
0
1
1
0
0
1
0
0
0
0
0.005
31
1
0
0
0
1
0
1
4
0
0.01
0
0
x22
21
0
1
0
0
1
0
1
0
2
0
0
0
x23
11
0
0
1
0
1
0
1
0
0
0
0
0.01
x31
41
1
0
0
0
0
1
1
2
0
0.02
0
0
x32
x33
31
0
1
0
0
0
1
1
0
0
0
0.01
0
21
0
0
1
0
0
1
1
0
0
0
0
0.02
a1
a2
a3
1
10
0
0
0
0
0
0
0
0
0
0
0
1
0
10
0
0
0
0
0
0
0
0
0
0
1
0
0
10
0
0
0
0
0
0
0
0
0
(max)
3,000
2,000
1,000
5,000
5,000
5,000
14,000
0
0
0
0
0
Thus, Sunco should produce x11 x21 x31 3,000 barrels of gas 1, using 2222.22
barrels of crude 1, 444.44 barrels of crude 2, and 333.33 barrels of crude 3. The firm
should produce x12 x22 x32 9,500 barrels of gas 2, using 2,111.11 barrels of crude
1, 4222.22 barrels of crude 2, and 3,166.67 barrels of crude 3. Sunco should also produce x13 x23 x33 1,000 barrels of gas 3, using 666.67 barrels of crude 1 and 333.34
barrels of crude 2. The firm should also spend $750 on advertising gas 2. Sunco will earn
a profit of $287,500.
Observe that although gas 1 appears to be most profitable, we stimulate demand for
gas 2, not gas 1. The reason for this is that given the quality (with respect to octane level
and sulfur content) of the available crude, it is difficult to produce gas 1. Therefore, Sunco
can make more money by producing more of the lower-quality gas 2 than by producing
extra quantities of gas 1.
Modeling Issues
We have assumed that the quality level of a mixture is a linear function of each input
used in the mixture. For example, we have assumed that if gas 3 is made with 23 crude 1
and 13 crude 2, then octane level for gas 3 (23) (octane level for crude 1) (13) (octane level for crude 2). If the octane level of a gas is not a linear function of the fraction
of each input used to produce the gas, then we no longer have a linear programming problem; we have a nonlinear programming problem. For example, let gi3 fraction of gas
3 made with oil i. Suppose that the octane level for gas 3 is given by gas 3 octane level g13.5 (oil 1 octane level) g23.4 (oil 2 octane level) g33.3 (oil 3 octane level). Then
we do not have an LP problem. The reason for this is that the octane level of gas 3 is not
a linear function of g13, g23, and g33. We discuss nonlinear programming in Chapter 11.
1
In reality, a company using a blending model would run the model periodically (each
day, say) and set production on the basis of the current inventory of inputs and current
demand forecasts. Then the forecast levels and input levels would be updated, and the
model would be run again to determine the next day’s production.
2
3 . 8 Blending Problems
91
Real-World Applications
Blending at Texaco
Texaco (see Dewitt et al., 1980) uses a nonlinear programming model (OMEGA) to plan
and schedule its blending applications. The company’s model is nonlinear because blend
volatilities and octanes are nonlinear functions of the amount of each input used to produce a particular gasoline.
Blending in the Steel Industry
Fabian (1958) describes a complex LP model that can be used to optimize the production
of iron and steel. For each product produced there are several blending constraints. For
example, basic pig iron must contain at most 1.5% silicon, at most .05% sulphur, between
.11% and .90% phosphorus, between .4% and 2% manganese, and between 4.1% and
4.4% carbon. See Problem 6 (in the Review Problems section) for a simple example of
blending in the steel industry.
Blending in the Oil Industry
Many oil companies use LP to optimize their refinery operations. Problem 14 contains an
example (based on Magoulas and Marinos-Kouris [1988]) of a blending model that can
be used to maximize a refinery’s profit.
PROBLEMS
Group A
1 You have decided to enter the candy business. You are
considering producing two types of candies: Slugger Candy
and Easy Out Candy, both of which consist solely of sugar,
nuts, and chocolate. At present, you have in stock 100 oz
of sugar, 20 oz of nuts, and 30 oz of chocolate. The mixture
used to make Easy Out Candy must contain at least 20%
nuts. The mixture used to make Slugger Candy must contain
at least 10% nuts and 10% chocolate. Each ounce of Easy
Out Candy can be sold for 25¢ , and each ounce of Slugger
Candy for 20¢. Formulate an LP that will enable you to
maximize your revenue from candy sales.
2 O.J. Juice Company sells bags of oranges and cartons
of orange juice. O.J. grades oranges on a scale of 1 (poor)
to 10 (excellent). O.J. now has on hand 100,000 lb of grade
9 oranges and 120,000 lb of grade 6 oranges. The average
quality of oranges sold in bags must be at least 7, and the
average quality of the oranges used to produce orange juice
must be at least 8. Each pound of oranges that is used for
juice yields a revenue of $1.50 and incurs a variable cost
(consisting of labor costs, variable overhead costs, inventory
costs, and so on) of $1.05. Each pound of oranges sold in
bags yields a revenue of 50¢ and incurs a variable cost of
20¢. Formulate an LP to help O.J. maximize profit.
3 A bank is attempting to determine where its assets
should be invested during the current year. At present,
$500,000 is available for investment in bonds, home loans,
auto loans, and personal loans. The annual rate of return on
92
CHAPTER
3 Introduction to Linear Programming
each type of investment is known to be: bonds, 10%; home
loans, 16%; auto loans, 13%; personal loans, 20%. To ensure
that the bank’s portfolio is not too risky, the bank’s
investment manager has placed the following three
restrictions on the bank’s portfolio:
a The amount invested in personal loans cannot exceed the amount invested in bonds.
b The amount invested in home loans cannot exceed
the amount invested in auto loans.
c No more than 25% of the total amount invested may
be in personal loans.
The bank’s objective is to maximize the annual return on its
investment portfolio. Formulate an LP that will enable the
bank to meet this goal.
4 Young MBA Erica Cudahy may invest up to $1,000. She
can invest her money in stocks and loans. Each dollar
invested in stocks yields 10¢ profit, and each dollar invested
in a loan yields 15¢ profit. At least 30% of all money invested
must be in stocks, and at least $400 must be in loans.
Formulate an LP that can be used to maximize total profit
earned from Erica’s investment. Then graphically solve
the LP.
5 Chandler Oil Company has 5,000 barrels of oil 1 and
10,000 barrels of oil 2. The company sells two products:
gasoline and heating oil. Both products are produced by
combining oil 1 and oil 2. The quality level of each oil is
as follows: oil 1—10; oil 2—5. Gasoline must have an
average quality level of at least 8, and heating oil at least 6.
Demand for each product must be created by advertising.
Each dollar spent advertising gasoline creates 5 barrels of
demand and each spent on heating oil creates 10 barrels of
demand. Gasoline is sold for $25 per barrel, heating oil for
$20. Formulate an LP to help Chandler maximize profit.
Assume that no oil of either type can be purchased.
in bond 1 and $400,000 in bond 4 would have an average
duration of
600,000(3) 400,000(9)
5.4
6 Bullco blends silicon and nitrogen to produce two types
of fertilizers. Fertilizer 1 must be at least 40% nitrogen and
sells for $70/lb. Fertilizer 2 must be at least 70% silicon and
sells for $40/lb. Bullco can purchase up to 80 lb of nitrogen
at $15/lb and up to 100 lb of silicon at $10/lb. Assuming
that all fertilizer produced can be sold, formulate an LP to
help Bullco maximize profits.
Formulate an LP that will enable Solodrex to maximize the
expected return on its investment.
7 Eli Daisy uses chemicals 1 and 2 to produce two drugs.
Drug 1 must be at least 70% chemical 1, and drug 2 must
be at least 60% chemical 2. Up to 40 oz of drug 1 can be
sold at $6 per oz; up to 30 oz of drug 2 can be sold at $5
per oz. Up to 45 oz of chemical 1 can be purchased at $6
per oz, and up to 40 oz of chemical 2 can be purchased at
$4 per oz. Formulate an LP that can be used to maximize
Daisy’s profits.
8 Highland’s TV-Radio Store must determine how many
TVs and radios to keep in stock. A TV requires 10 sq ft of
floorspace, whereas a radio requires 4 sq ft; 200 sq ft of
floorspace is available. A TV will earn Highland $60 in
profits, and a radio will earn $20. The store stocks only TVs
and radios. Marketing requirements dictate that at least 60%
of all appliances in stock be radios. Finally, a TV ties up
$200 in capital, and a radio, $50. Highland wants to have at
most $3,000 worth of capital tied up at any time. Formulate
an LP that can be used to maximize Highland’s profit.
9 Linear programming models are used by many Wall
Street firms to select a desirable bond portfolio. The
following is a simplified version of such a model. Solodrex
is considering investing in four bonds; $1,000,000 is
available for investment. The expected annual return, the
worst-case annual return on each bond, and the “duration”
of each bond are given in Table 15. The duration of a bond
is a measure of the bond’s sensitivity to interest rates.
Solodrex wants to maximize the expected return from its
bond investments, subject to three constraints.
Constraint 1 The worst-case return of the bond portfolio
must be at least 8%.
Constraint 2 The average duration of the portfolio must be
at most 6. For example, a portfolio that invested $600,000
Constraint 3 Because of diversification requirements, at
most 40% of the total amount invested can be invested in a
single bond.
10 Coalco produces coal at three mines and ships it to
four customers. The cost per ton of producing coal, the ash
and sulfur content (per ton) of the coal, and the production
capacity (in tons) for each mine are given in Table 16. The
number of tons of coal demanded by each customer are
given in Table 17.
The cost (in dollars) of shipping a ton of coal from a
mine to each customer is given in Table 18. It is required
that the total amount of coal shipped contain at most 5% ash
and at most 4% sulfur. Formulate an LP that minimizes the
cost of meeting customer demands.
11 Eli Daisy produces the drug Rozac from four
chemicals. Today they must produce 1,000 lb of the drug.
The three active ingredients in Rozac are A, B, and C. By
weight, at least 8% of Rozac must consist of A, at least 4%
of B, and at least 2% of C. The cost per pound of each
chemical and the amount of each active ingredient in 1 lb
of each chemical are given in Table 19.
It is necessary that at least 100 lb of chemical 2 be used.
Formulate an LP whose solution would determine the cheapest way of producing today’s batch of Rozac.
TA B L E
16
Production
Cost ($)
Capacity
Ash
Content (Tons)
Sulfur
Content (Tons)
1
2
3
50
55
62
120
100
140
.08
.06
.04
.05
.04
.03
TA B L E
17
Mine
Customer 1
80
TA B L E
Bond
1
2
3
4
15
TA B L E
Expected
Return (%)
Worst-Case
Return (%)
Duration
13
8
12
14
6%
8%
10%
9%
3
4
7
9
Customer 2
Customer 3
Customer 4
70
60
40
18
Customer
Mine
1
2
3
4
1
2
3
4
9
8
6
6
12
8
7
3
12
11
5
3 . 8 Blending Problems
93
TA B L E
Chemical
1
2
3
4
19
Cost ($ per Lb)
A
B
C
8
10
11
14
.03
.06
.10
.12
.02
.04
.03
.09
.01
.01
.04
.04
12 (A spreadsheet might be helpful on this problem.) The
risk index of an investment can be obtained from return on
investment (ROI) by taking the percentage of change in the
value of the investment (in absolute terms) for each year,
and averaging them.
Suppose you are trying to determine what percentage of
your money should be invested in T-bills, gold, and stocks.
In Table 20 (or File Inv68.xls) you are given the annual returns (change in value) for these investments for the years
1968–1988. Let the risk index of a portfolio be the weighted
(according to the fraction of your money assigned to each
investment) average of the risk index of each individual investment. Suppose that the amount of each investment must
be between 20% and 50% of the total invested. You would
like the risk index of your portfolio to equal .15, and your
goal is to maximize the expected return on your portfolio.
Formulate an LP whose solution will maximize the expected
return on your portfolio, subject to the given constraints.
Use the average return earned by each investment during
the years 1968–1988 as your estimate of expected return.†
Group B
13 The owner of Sunco does not believe that our LP
optimal solution will maximize daily profit. He reasons,
“We have 14,000 barrels of daily refinery capacity, but your
optimal solution produces only 13,500 barrels. Therefore, it
cannot be maximizing profit.” How would you respond?
14 Oilco produces two products: regular and premium
gasoline. Each product contains .15 gram of lead per liter.
The two products are produced from six inputs: reformate,
fluid catalytic cracker gasoline (FCG), isomerate (ISO),
polymer (POL), MTBE (MTB), and butane (BUT). Each
input has four attributes:
Attribute
Attribute
Attribute
Attribute
1
2
3
4
Research octane number (RON)
RVP
ASTM volatility at 70°C
ASTM volatility at 130°C
The attributes and daily availability (in liters) of each input are given in Table 21.
The requirements for each output are given in Table 22.
The daily demand (in thousands of liters) for each product must be met, but more can be produced if desired. The
RON and ASTM requirements are minimums. Regular gasoline sells for 29.49¢/liter, premium gasoline for 31.43¢. Before being ready for sale, .15 gram/liter of lead must be re-
moved from each product. The cost of removing .1 gram/liter
is 8.5¢. At most 38% of each type of gasoline can consist
of FCG. Formulate and solve an LP whose solution will tell
Oilco how to maximize their daily profit.‡
TA B L E
20
Year
Stocks
Gold
T-Bills
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
11
9
4
14
19
15
27
37
24
7
7
19
33
5
22
23
6
32
19
5
17
11
8
14
14
44
66
64
0
22
18
31
59
99
25
4
11
15
12
16
22
2
5
7
7
4
4
7
8
6
5
5
7
10
11
15
11
9
10
8
6
5
6
TA B L E
21
Availability
Reformate 15,572
FCG
15,434
ISO
6,709
POL
1,190
MTB
748
BUT
Unlimited
TA B L E
Regular
Premium
‡
RVP
ASTM(70)
ASTM(130)
98.9
93.2
86.1
97
117
98
7.66
9.78
29.52
14.51
13.45
166.99
5
57
107
7
98
130
46
103
100
73
100
100
22
Demand
RON
RVP
ASTM(70)
ASTM(130)
9.8
30
90
96
21.18
21.18
10
10
50
50
Based on Magoulas and Marinos-Kouris (1988).
†
Based on Chandy (1987).
94
RON
CHAPTER
3 Introduction to Linear Programming
3.9
Production Process Models
We now explain how to formulate an LP model of a simple production process.† The key
step is to determine how the outputs from a later stage of the process are related to the
outputs from an earlier stage.
EXAMPLE
13
Brute Production Process
Rylon Corporation manufactures Brute and Chanelle perfumes. The raw material needed
to manufacture each type of perfume can be purchased for $3 per pound. Processing 1 lb
of raw material requires 1 hour of laboratory time. Each pound of processed raw material yields 3 oz of Regular Brute Perfume and 4 oz of Regular Chanelle Perfume. Regular
Brute can be sold for $7/oz and Regular Chanelle for $6/oz. Rylon also has the option of
further processing Regular Brute and Regular Chanelle to produce Luxury Brute, sold at
$18/oz, and Luxury Chanelle, sold at $14/oz. Each ounce of Regular Brute processed further requires an additional 3 hours of laboratory time and $4 processing cost and yields
1 oz of Luxury Brute. Each ounce of Regular Chanelle processed further requires an additional 2 hours of laboratory time and $4 processing cost and yields 1 oz of Luxury
Chanelle. Each year, Rylon has 6,000 hours of laboratory time available and can purchase
up to 4,000 lb of raw material. Formulate an LP that can be used to determine how Rylon can maximize profits. Assume that the cost of the laboratory hours is a fixed cost.
Solution
Rylon must determine how much raw material to purchase and how much of each type
of perfume should be produced. We therefore define our decision variables to be
x1
x2
x3
x4
x5
number
number
number
number
number
of
of
of
of
of
ounces of Regular Brute sold annually
ounces of Luxury Brute sold annually
ounces of Regular Chanelle sold annually
ounces of Luxury Chanelle sold annually
pounds of raw material purchased annually
Rylon wants to maximize
Contribution to profit revenues from perfume sales processing costs
costs of purchasing raw material
7x1 18x2 6x3 14x4 (4x2 4x4) 3x5
7x1 14x2 6x3 10x4 3x5
Thus, Rylon’s objective function may be written as
max z 7x1 14x2 6x3 10x4 3x5
(54)
Rylon faces the following constraints:
Constraint 1
No more than 4,000 lb of raw material can be purchased annually.
Constraint 2
No more than 6,000 hours of laboratory time can be used each year.
Constraint 1 is expressed by
x5 4,000
(55)
†
This section is based on Hartley (1971).
3 . 9 Production Process Models
95
To express Constraint 2, note that
Total lab time used annually time used annually to process raw material
time used annually to process Luxury Brute
time used annually to process Luxury Chanelle
x5 3x2 2x4
Then Constraint 2 becomes
3x2 2x4 x5 6,000
(56)
After adding the sign restrictions xi 0 (i 1, 2, 3, 4, 5), many students claim that Rylon should solve the following LP:
max z 7x1 14x2 6x3 10x4 3x5
s.t.
x5 4,000
3x2 2x4 x5 6,000
xi 0
(i 1, 2, 3, 4, 5)
This formulation is incorrect. Observe that the variables x1 and x3 do not appear in any
of the constraints. This means that any point with x2 x4 x5 0 and x1 and x3 very
large is in the feasible region. Points with x1 and x3 large can yield arbitrarily large profits. Thus, this LP is unbounded. Our mistake is that the current formulation does not indicate that the amount of raw material purchased determines the amount of Brute and
Chanelle that is available for sale or further processing. More specifically, from Figure 10
(and the fact that 1 oz of processed Brute yields exactly 1 oz of Luxury Brute), it follows
that
Ounces of Regular Brute Sold
ounces of Brute produced
ounces of Luxury Brute sold
pounds of raw
material
purchased
3x5
This relation is reflected in the constraint
x1 x2 3x5
or
x1 x2 3x5 0
(57)
Similarly, from Figure 10 it is clear that
Ounces of Regular Chanelle sold ounces of Luxury Chanelle sold 4x5
This relation yields the constraint
x3 x4 4x5
or
x3 x4 4x5 0
(58)
Constraints (57) and (58) relate several decision variables. Students often omit constraints of this type. As this problem shows, leaving out even one constraint may very well
x1 oz Reg. Brute sold
3x5 oz
Brute
x2 oz Reg. Brute processed into Lux. Brute
x5 lb
Raw material
FIGURE
x3 oz Reg. Chanelle sold
10
4x5 oz
Chanelle
Production Process for
Brute and Chanelle
96
CHAPTER
x4 oz Reg. Chanelle into Lux. Chanelle
3 Introduction to Linear Programming
lead to an unacceptable answer (such as an unbounded LP). If we combine (53)–(58) with
the usual sign restrictions, we obtain the correct LP formulation.
max z 7x1 14x2 6x3 10x4 3x5
s.t.
x5 4,000
s.t.
3x2 6x3 2x4 x5 6,000
x1 x2 6x3 2x4 3x5 0
s.t.
x3 x4 4x5 0
xi 0
(i 1, 2, 3, 4, 5)
The optimal solution is z 172,666.667, x1 11,333.333 oz, x2 666.667 oz, x3 16,000 oz, x4 0, and x5 4,000 lb. Thus, Rylon should purchase all 4,000 lb of available raw material and produce 11,333.333 oz of Regular Brute, 666.667 oz of Luxury
Brute, and 16,000 oz of Regular Chanelle. This production plan will contribute
$172,666.667 to Rylon’s profits. In this problem, a fractional number of ounces seems reasonable, so the Divisibility Assumption holds.
We close our discussion of the Rylon problem by discussing an error that is made by
many students. They reason that
1 lb raw material 3 oz Brute 4 oz Chanelle
Because x1 x2 total ounces of Brute produced, and x3 x4 total ounces of
Chanelle produced, students conclude that
x5 3(x1 x2) 4(x3 x4)
(59)
This equation might make sense as a statement for a computer program; in a sense, the
variable x5 is replaced by the right side of (59). As an LP constraint, however, (59) makes
no sense. To see this, note that the left side has the units “pounds of raw material,” and
the term 3x1 on the right side has the units
Ounces of Brute
(ounces of Brute)
Because some of the terms do not have the same units, (59) cannot be correct. If there
are doubts about a constraint, then make sure that all terms in the constraint have the
same units. This will avoid many formulation errors. (Of course, even if the units on both
sides of a constraint are the same, the constraint may still be wrong.)
PROBLEMS
Group A
1 Sunco Oil has three different processes that can be used
to manufacture various types of gasoline. Each process
involves blending oils in the company’s catalytic cracker.
Running process 1 for an hour costs $5 and requires 2
barrels of crude oil 1 and 3 barrels of crude oil 2. The
output from running process 1 for an hour is 2 barrels of
gas 1 and 1 barrel of gas 2. Running process 2 for an hour
costs $4 and requires 1 barrel of crude 1 and 3 barrels of
crude 2. The output from running process 2 for an hour is
3 barrels of gas 2. Running process 3 for an hour costs $1
and requires 2 barrels of crude 2 and 3 barrels of gas 2. The
output from running process 3 for an hour is 2 barrels of
gas 3. Each week, 200 barrels of crude 1, at $2/barrel, and
300 barrels of crude 2, at $3/barrel, may be purchased. All
gas produced can be sold at the following per-barrel prices:
gas 1, $9; gas 2, $10; gas 3, $24. Formulate an LP whose
solution will maximize revenues less costs. Assume that
only 100 hours of time on the catalytic cracker are available
each week.
2 Furnco manufactures tables and chairs. A table requires
40 board ft of wood, and a chair requires 30 board ft of
3 . 9 Production Process Models
97
wood. Wood may be purchased at a cost of $1 per board ft,
and 40,000 board ft of wood are available for purchase. It
takes 2 hours of skilled labor to manufacture an unfinished
table or an unfinished chair. Three more hours of skilled
labor will turn an unfinished table into a finished table, and
2 more hours of skilled labor will turn an unfinished chair
into a finished chair. A total of 6,000 hours of skilled labor
are available (and have already been paid for). All furniture
produced can be sold at the following unit prices: unfinished
table, $70; finished table, $140; unfinished chair, $60;
finished chair, $110. Formulate an LP that will maximize
the contribution to profit from manufacturing tables and
chairs.
6 Daisy Drugs manufactures two drugs: 1 and 2. The
drugs are produced by blending two chemicals: 1 and 2. By
weight, drug 1 must contain at least 65% chemical 1, and
drug 2 must contain at least 55% chemical 1. Drug 1 sells
for $6/oz, and drug 2 sells for $4/oz. Chemicals 1 and 2 can
be produced by one of two production processes. Running
process 1 for an hour requires 3 oz of raw material and 2
hours skilled labor and yields 3 oz of each chemical.
Running process 2 for an hour requires 2 oz of raw material
and 3 hours of skilled labor and yields 3 oz of chemical 1
and 1 oz of chemical 2. A total of 120 hours of skilled labor
and 100 oz of raw material are available. Formulate an LP
that can be used to maximize Daisy’s sales revenues.
3 Suppose that in Example 11, 1 lb of raw material could
be used to produce either 3 oz of Brute or 4 oz of Chanelle.
How would this change the formulation?
7† Lizzie’s Dairy produces cream cheese and cottage
cheese. Milk and cream are blended to produce these two
products. Both high-fat and low-fat milk can be used to
produce cream cheese and cottage cheese. High-fat milk is
60% fat; low-fat milk is 30% fat. The milk used to produce
cream cheese must average at least 50% fat and that for
cottage cheese, at least 35% fat. At least 40% (by weight)
of the inputs to cream cheese and at least 20% (by weight)
of the inputs to cottage cheese must be cream. Both cottage
cheese and cream cheese are produced by putting milk and
cream through the cheese machine. It costs 40¢ to process
1 lb of inputs into a pound of cream cheese. It costs 40¢ to
produce 1 lb of cottage cheese, but every pound of input for
cottage cheese yields 0.9 lb of cottage cheese and 0.1 lb of
waste. Cream can be produced by evaporating high-fat and
low-fat milk. It costs 40¢ to evaporate 1 lb of high-fat milk.
Each pound of high-fat milk that is evaporated yields 0.6 lb
of cream. It costs 40¢ to evaporate 1 lb of low-fat milk.
Each pound of low-fat milk that is evaporated yields 0.3 lb
of cream. Each day, up to 3,000 lb of input may be sent
through the cheese machine. Each day, at least 1,000 lb of
cottage cheese and 1,000 lb of cream cheese must be
produced. Up to 1,500 lb of cream cheese and 2,000 lb of
cottage cheese can be sold each day. Cottage cheese is sold
for $1.20/lb and cream cheese for $1.50/lb. High-fat milk is
purchased for 80¢/lb and low-fat milk for 40¢/lb. The
evaporator can process at most 2,000 lb of milk daily.
Formulate an LP that can be used to maximize Lizzie’s daily
profit.
4 Chemco produces three products: 1, 2, and 3. Each
pound of raw material costs $25. It undergoes processing
and yields 3 oz of product 1 and 1 oz of product 2. It costs
$1 and takes 2 hours of labor to process each pound of raw
material. Each ounce of product 1 can be used in one of
three ways.
It can be sold for $10/oz.
It can be processed into 1 oz of product 2. This requires 2 hours of labor and costs $1.
It can be processed into 1 oz of product 3. This requires 3 hours of labor and costs $2.
Each ounce of product 2 can be used in one of two ways.
It can be sold for $20/oz.
It can be processed into 1 oz of product 3. This requires 1 hour of labor and costs $6.
Product 3 is sold for $30/oz. The maximum number of
ounces of each product that can be sold is given in Table 23.
A maximum of 25,000 hours of labor are available.
Determine how Chemco can maximize profit.
TA B L E
Product
1
2
3
23
Oz
5,000
5,000
3,000
Group B
5 A company produces A, B, and C and can sell these
products in unlimited quantities at the following unit prices:
A, $10; B, $56; C, $100. Producing a unit of A requires 1
hour of labor; a unit of B, 2 hours of labor plus 2 units of
A; and a unit of C, 3 hours of labor plus 1 unit of B. Any
A that is used to produce B cannot be sold. Similarly, any
B that is used to produce C cannot be sold. A total of 40
hours of labor are available. Formulate an LP to maximize
the company’s revenues.
98
CHAPTER
3 Introduction to Linear Programming
8 A company produces six products in the following
fashion. Each unit of raw material purchased yields four
units of product 1, two units of product 2, and one unit of
product 3. Up to 1,200 units of product 1 can be sold, and
up to 300 units of product 2 can be sold. Each unit of
product 1 can be sold or processed further. Each unit of
product 1 that is processed yields a unit of product 4.
Demand for products 3 and 4 is unlimited. Each unit of
product 2 can be sold or processed further. Each unit of
product 2 that is processed further yields 0.8 unit of product
5 and 0.3 unit of product 6. Up to 1,000 units of product 5
can be sold, and up to 800 units of product 6 can be sold.
Up to 3,000 units of raw material can be purchased at $6 per
unit. Leftover units of products 5 and 6 must be destroyed.
It costs $4 to destroy each leftover unit of product 5 and $3
†
Based on Sullivan and Secrest (1985).
TA B L E
Product
24
TA B L E
Sales
Price ($)
Production
Cost ($)
7
6
4
3
20
35
4
4
2
1
5
5
1
2
3
4
5
6
Grade
Amount produced
TA B L E
9 Each week Chemco can purchase unlimited quantities
of raw material at $6/lb. Each pound of purchased raw
material can be used to produce either input 1 or input 2.
Each pound of raw material can yield 2 oz of input 1,
requiring 2 hours of processing time and incurring $2 in
processing costs. Each pound of raw material can yield 3 oz
of input 2, requiring 2 hours of processing time and incurring
$4 in processing costs.
Two production processes are available. It takes 2 hours
to run process 1, requiring 2 oz of input 1 and 1 oz of input 2. It costs $1 to run process 1. Each time process 1 is
run 1 oz of product A and 1 oz of liquid waste are produced.
Each time process 2 is run requires 3 hours of processing
time, 2 oz of input 2 and 1 oz of input 1. Process 2 yields
1 oz of product B and .8 oz of liquid waste. Process 2 incurs $8 in costs.
Chemco can dispose of liquid waste in the Port Charles
River or use the waste to produce product C or product D.
Government regulations limit the amount of waste Chemco
is allowed to dump into the river to 1,000 oz/week. One
ounce of product C costs $4 to produce and sells for $11.
One hour of processing time, 2 oz of input 1, and .8 oz of
liquid waste are needed to produce an ounce of product C.
One unit of product D costs $5 to produce and sells for $7.
One hour of processing time, 2 oz of input 2, and 1.2 oz of
liquid waste are needed to produce an ounce of product D.
At most 5,000 oz of product A and 5,000 oz of product
B can be sold each week, but weekly demand for products
C and D is unlimited. Product A sells for $18/oz and product B sells for $24/oz. Each week 6,000 hours of processing time is available. Formulate an LP whose solution will
tell Chemco how to maximize weekly profit.
10 LIMECO owns a lime factory and sells six grades of
lime (grades 1 through 6). The sales price per pound is
given in Table 25. Lime is produced by kilns. If a kiln is run
for an 8-hour shift, the amounts (in pounds) of each grade
Grade
Price($)
25
1
12
3
10
4
18
5
20
6
25
2
3
3
1
4
1.5
5
2
6
3
1
20
2
30
3
40
4
35
5
25
6
50
of lime given in Table 26 are produced. It costs $150 to run
a kiln for an 8-hour shift. Each day the factory believes it
can sell up to the amounts (in pounds) of lime given in
Table 27.
Lime that is produced by the kiln may be reprocessed by
using any one of the five processes described in Table 28.
For example, at a cost of $1/lb, a pound of grade 4 lime
may be transformed into .5 lb of grade 5 lime and .5 lb of
grade 6 lime.
Any extra lime leftover at the end of each day must be
disposed of, with the disposal costs (per pound) given in
Table 29.
Formulate an LP whose solution will tell LIMECO how
to maximize their daily profit.
11 Chemco produces three products: A, B, and C. They
can sell up to 30 pounds of each product at the following
prices (per pound): product A, $10; product B, $12; product
C, $20. Chemco purchases raw material at $5/lb. Each pound
of raw material can be used to produce either 1 lb of A or
1 lb of B. For a cost of $3/lb processed, product A can be
converted to .6 lb of product B and .4 lb of product C. For
a cost of $2/lb processed, product B can be converted to
.8 lb of product C. Formulate an LP whose solution will tell
Chemco how to maximize their profit.
12 Chemco produces 3 chemicals: B, C, and D. They begin
by purchasing chemical A for a cost of $6/100 liters. For an
TA B L E
28
Input (1 Lb)
Output
Grade 1
.3
.2
.3
.2
.1
.8
.5
.5
.9
Grade 2
Grade 3
Grade 4
Grade 5
TA B L E
2
14
1
2
27
Grade
Maximum demand
to destroy each leftover unit of product 6. Ignoring raw
material purchase costs, the per-unit sales price and
production costs for each product are shown in Table 24.
Formulate an LP whose solution will yield a profitmaximizing production schedule.
TA B L E
26
lb
lb
lb
lb
lb
lb
lb
lb
lb
Grade
Grade
Grade
Grade
Grade
Grade
Grade
Grade
Grade
Cost ($ per Lb of Input)
3
4
5
6
6
4
5
6
6
2
1
1
1
2
29
Grade
Cost of Disposition ($)
1
3
2
2
3 . 9 Production Process Models
3
3
4
2
5
4
6
2
99
additional cost of $3 and the use of 3 hours of skilled labor,
100 liters of A can be transformed into 40 liters of C and
60 liters of B. Chemical C can either be sold or processed
further. It costs $1 and takes 1 hour of skilled labor to
process 100 liters of C into 60 liters of D and 40 liters of
B. For each chemical the sales price per 100 liters and the
maximum amount (in 100s of liters) that can be sold are
given in Table 30.
A maximum of 200 labor hours are available. Formulate
an LP whose solution will tell Chemco how to maximize
their profit.
13 Carrington Oil produces two types of gasoline, gas 1
and gas 2, from two types of crude oil, crude 1 and crude
2. Gas 1 is allowed to contain up to 4% impurities, and gas
2 is allowed to contain up to 3% impurities. Gas 1 sells for
$8 per barrel, whereas gas 2 sells for $12 per barrel. Up to
4,200 barrels of gas 1 and up to 4,300 barrels of gas 2 can
be sold. The cost per barrel of each crude, availability, and
the level of impurities in each crude are as shown in Table
31. Before blending the crude oil into gas, any amount of
each crude can be “purified” for a cost of $0.50 per barrel.
Purification eliminates half the impurities in the crude oil.
Determine how to maximize profit.
14 You have been put in charge of the Melrose oil refinery.
The refinery produces gas and heating oil from crude oil.
Gas sells for $8 per barrel and must have an average “grade
level” of at least 9. Heating oil sells for $6 a barrel and must
TA B L E
TA B L E
B
C
D
12
30
16
60
26
40
3.10
31
Oil
Cost per
Barrel ($)
Impurity
Level (%)
Availability
(Barrels)
6
8
10%
2%
5,000
4,500
Crude 1
Crude 2
TA B L E
30
Price ($)
Maximum demand
have an average grade level of at least 7. At most, 2,000
barrels of gas and 600 barrels of heating oil can be sold.
Incoming crude can be processed by one of three methods.
The per barrel yield and per barrel cost of each processing
method are shown in Table 32. For example, if we refine 1
barrel of incoming crude by method 1, it costs us $3.40 and
yields .2 barrels of grade 6, .2 barrels of grade 8, and .6
barrels of grade 10.
Before being processed into gas and heating oil,
processed grades 6 and 8 may be sent through the catalytic
cracker to improve their quality. For $1.30 per barrel, a barrel of grade 6 may be “cracked” into a barrel of grade 8. For
$2 per barrel, a barrel of grade 8 may be cracked into a barrel of grade 10. Any leftover processed or cracked oil that
cannot be used for heating oil or gas must be disposed of at
a cost of $0.20 per barrel. Determine how to maximize the
refinery’s profit.
Method
1
2
3
32
Grade 6
Grade 8
Grade 10
Cost ($)
.2
.3
.4
.2
.3
.4
.6
.4
.2
3.40
3.00
2.60
Using Linear Programming to Solve Multiperiod
Decision Problems: An Inventory Model
Up to this point, all the LP formulations we have discussed are examples of static, or oneperiod, models. In a static model, we assume that all decisions are made at a single point
in time. The rest of the examples in this chapter show how linear programming can be
used to determine optimal decisions in multiperiod, or dynamic, models. Dynamic models arise when the decision maker makes decisions at more than one point in time. In a
dynamic model, decisions made during the current period influence decisions made during future periods. For example, consider a company that must determine how many units
of a product should be produced during each month. If it produced a large number of units
during the current month, this would reduce the number of units that should be produced
during future months. The examples discussed in Sections 3.10–3.12 illustrate how earlier decisions affect later decisions. We will return to dynamic decision models when we
study dynamic programming in Chapters 18 and 19.
100
CHAPTER
3 Introduction to Linear Programming
EXAMPLE
14
Sailco Inventory
Sailco Corporation must determine how many sailboats should be produced during each
of the next four quarters (one quarter three months). The demand during each of the
next four quarters is as follows: first quarter, 40 sailboats; second quarter, 60 sailboats;
third quarter, 75 sailboats; fourth quarter, 25 sailboats. Sailco must meet demands on
time. At the beginning of the first quarter, Sailco has an inventory of 10 sailboats. At the
beginning of each quarter, Sailco must decide how many sailboats should be produced
during that quarter. For simplicity, we assume that sailboats manufactured during a quarter can be used to meet demand for that quarter. During each quarter, Sailco can produce
up to 40 sailboats with regular-time labor at a total cost of $400 per sailboat. By having
employees work overtime during a quarter, Sailco can produce additional sailboats with
overtime labor at a total cost of $450 per sailboat.
At the end of each quarter (after production has occurred and the current quarter’s demand has been satisfied), a carrying or holding cost of $20 per sailboat is incurred. Use
linear programming to determine a production schedule to minimize the sum of production and inventory costs during the next four quarters.
Solution
For each quarter, Sailco must determine the number of sailboats that should be produced
by regular-time and by overtime labor. Thus, we define the following decision variables:
xt number of sailboats produced by regular-time labor (at $400/boat)
during quarter t
(t 1, 2, 3, 4)
yt number of sailboats produced by overtime labor (at $450/boat)
during quarter t
(t 1, 2, 3, 4)
It is convenient to define decision variables for the inventory (number of sailboats on
hand) at the end of each quarter:
it number of sailboats on hand at end of quarter t
(t 1, 2, 3, 4)
Sailco’s total cost may be determined from
Total cost cost of producing regular-time boats
cost of producing overtime boats inventory costs
400(x1 x2 x3 x4) 450(y1 y2 y3 y4)
20(i1 i2 i3 i4)
Thus, Sailco’s objective function is
min z 400x1 400x2 400x3 400x4 450y1 450y2
450y3 450y4 20i1 20i2 20i3 20i4
(60)
Before determining Sailco’s constraints, we make two observations that will aid in formulating multiperiod production-scheduling models.
For quarter t,
Inventory at end of quarter t inventory at end of quarter (t 1)
quarter t production quarter t demand
This relation plays a key role in formulating almost all multiperiod production-scheduling
models. If we let dt be the demand during period t (thus, d1 40, d2 60, d3 75, and
d4 25), our observation may be expressed in the following compact form:
it it1 (xt yt) dt
(t 1, 2, 3, 4)
3 . 1 0 Using Linear Programming to Solve Multiperiod Decision Problems
(61)
101
In (61), i0 inventory at end of quarter 0 inventory at beginning of quarter 1 10.
For example, if we had 20 sailboats on hand at the end of quarter 2 (i2 20) and produced 65 sailboats during quarter 3 (this means x3 y3 65), what would be our ending third-quarter inventory? Simply the number of sailboats on hand at the end of quarter 2 plus the sailboats produced during quarter 3, less quarter 3’s demand of 75. In this
case, i3 20 65 75 10, which agrees with (61). Equation (61) relates decision
variables associated with different time periods. In formulating any multiperiod LP model,
the hardest step is usually finding the relation (such as (61)) that relates decision variables
from different periods.
We also note that quarter t’s demand will be met on time if and only if (sometimes
written iff ) it 0. To see this, observe that it1 (xt yt) is available to meet period
t’s demand, so that period t’s demand will be met if and only if
it1 (xt yt) dt
or
it it1 (xt yt) dt 0
This means that the sign restrictions it 0 (t 1, 2, 3, 4) will ensure that each quarter’s
demand will be met on time.
We can now determine Sailco’s constraints. First, we use the following four constraints
to ensure that each period’s regular-time production will not exceed 40: x1, x2, x3, x4 40. Then we add constraints of the form (61) for each time period (t 1, 2, 3, 4). This
yields the following four constraints:
i1 10 x1 y1 40
i3 i2 x3 y3 75
i2 i1 x2 y2 60
i4 i3 x4 y4 25
Adding the sign restrictions xt 0 (to rule out negative production levels) and it 0 (to
ensure that each period’s demand is met on time) yields the following formulation:
min z 400x1 400x2 400x3 400x4 450y1 450y2 450y3 450y4
20i1 20i2 20i3 20i4
s.t.
x1 40,
x2 40,
x3 40,
x4 40
i1 10 x1 y1 40,
i2 i1 x2 y2 60
i3 i2 x3 y3 75,
i4 i3 x4 y4 25
it 0,
yt 0,
and
xt 0
(t 1, 2, 3, 4)
The optimal solution to this problem is z 78,450; x1 x2 x3 40; x4 25; y1 0; y2 10; y3 35; y4 0; i1 10; i2 i3 i4 0. Thus, the minimum total cost
that Sailco can incur is $78,450. To incur this cost, Sailco should produce 40 sailboats
with regular-time labor during quarters 1–3 and 25 sailboats with regular-time labor during quarter 4. Sailco should also produce 10 sailboats with overtime labor during quarter
2 and 35 sailboats with overtime labor during quarter 3. Inventory costs will be incurred
only during quarter 1.
Some readers might worry that our formulation allows Sailco to use overtime production during quarter t even if period t’s regular production is less than 40. True, our formulation does not make such a schedule infeasible, but any production plan that had yt
0 and xt 40 could not be optimal. For example, consider the following two production
schedules:
Production schedule A x1 x2 x3 40;
x4 25;
y2 10;
y3 25;
y4 0
Production schedule B x1 40;
x2 30;
x3 30;
y2 20;
y3 35;
y4 0
102
CHAPTER
3 Introduction to Linear Programming
x4 25;
Schedules A and B both have the same production level during each period. This means
that both schedules will have identical inventory costs. Also, both schedules are feasible,
but schedule B incurs more overtime costs than schedule A. Thus, in minimizing costs,
schedule B (or any schedule having yt 0 and xt 40) would never be chosen.
In reality, an LP such as Example 14 would be implemented by using a rolling horizon, which works in the following fashion. After solving Example 14, Sailco would implement only the quarter 1 production strategy (produce 40 boats with regular-time labor).
Then the company would observe quarter 1’s actual demand. Suppose quarter 1’s actual
demand is 35 boats. Then quarter 2 begins with an inventory of 10 40 35 15 boats.
We now make a forecast for quarter 5 demand (suppose the forecast is 36). Next determine production for quarter 2 by solving an LP in which quarter 2 is the first quarter,
quarter 5 is the final quarter, and beginning inventory is 15 boats. Then quarter 2’s production would be determined by solving the following LP:
min z 400(x2 x3 x4 x5) 450( y2 y3 y4 y5) 20(i2 i3 i4 i5)
s.t.
x2 40,
x3 40,
x4 40,
x5 40
i2 15 x2 y2 60,
i3 i2 x3 y3 75
i5 i4 x5 y5 36
i4 i3 x4 y4 25,
it 0, yt 0,
and
xt 0
(t 2, 3, 4, 5)
Here, x5 quarter 5’s regular-time production, y5 quarter 5’s overtime production, and
i5 quarter 5’s ending inventory. The optimal values of x2 and y2 for this LP are then
used to determine quarter 2’s production. Thus, each quarter, an LP (with a planning horizon of four quarters) is solved to determine the current quarter’s production. Then current
demand is observed, demand is forecasted for the next four quarters, and the process repeats itself. This technique of “rolling planning horizon” is the method by which most dynamic or multiperiod LP models are implemented in real-world applications.
Our formulation of the Sailco problem has several other limitations.
Production cost may not be a linear function of the quantity produced. This would violate the Proportionality Assumption. We discuss how to deal with this problem in Chapters 9 and 13.
1
Future demands may not be known with certainty. In this situation, the Certainty Assumption is violated.
2
We have required Sailco to meet all demands on time. Often companies can meet demands during later periods but are assessed a penalty cost for demands that are not met
on time. For example, if demand is not met on time, then customer displeasure may result in a loss of future revenues. If demand can be met during later periods, then we say
that demands can be backlogged. Our current LP formulation can be modified to incorporate backlogging (see Problem 1 of Section 4.12).
3
We have ignored the fact that quarter-to-quarter variations in the quantity produced
may result in extra costs (called production-smoothing costs.) For example, if we increase production a great deal from one quarter to the next, this will probably require the
costly training of new workers. On the other hand, if production is greatly decreased from
one quarter to the next, extra costs resulting from laying off workers may be incurred. In
Section 4.12, we modify the present model to account for smoothing costs.
4
If any sailboats are left at the end of the last quarter, we have assigned them a value
of zero. This is clearly unrealistic. In any inventory model with a finite horizon, the inventory left at the end of the last period should be assigned a salvage value that is indicative of the worth of the final period’s inventory. For example, if Sailco feels that each
sailboat left at the end of quarter 4 is worth $400, then a term 400i4 (measuring the
worth of quarter 4’s inventory) should be added to the objective function.
5
3 . 1 0 Using Linear Programming to Solve Multiperiod Decision Problems
103
PROBLEMS
Group A
1 A customer requires during the next four months,
respectively, 50, 65, 100, and 70 units of a commodity (no
backlogging is allowed). Production costs are $5, $8, $4,
and $7 per unit during these months. The storage cost from
one month to the next is $2 per unit (assessed on ending
inventory). It is estimated that each unit on hand at the end
of month 4 could be sold for $6. Formulate an LP that will
minimize the net cost incurred in meeting the demands of
the next four months.
TA B L E
Date
March 31
April 30
TA B L E
2 A company faces the following demands during the next
three periods: period 1, 20 units; period 2, 10 units; period
3, 15 units. The unit production cost during each period is
as follows: period 1—$13; period 2—$14; period 3—$15.
A holding cost of $2 per unit is assessed against each period’s
ending inventory. At the beginning of period 1, the company
has 5 units on hand.
In reality, not all goods produced during a month can be
used to meet the current month’s demand. To model this
fact, we assume that only one half of the goods produced
during a period can be used to meet the current period’s demands. Formulate an LP to minimize the cost of meeting
the demand for the next three periods. (Hint: Constraints
such as i1 x1 5 20 are certainly needed. Unlike our
example, however, the constraint i1 0 will not ensure that
period 1’s demand is met. For example, if x1 20, then i1
0 will hold, but because only 12(20) 10 units of period
1 production can be used to meet period 1’s demand, x1 20 would not be feasible. Try to think of a type of constraint
that will ensure that what is available to meet each period’s
demand is at least as large as that period’s demand.)
B
5,000
8,000
2,000
4,000
35
Month
Line 1
Line 2
March
April
800
400
2,000
1,200
TA B L E
36
Production Rate
Product
Line 1
Line 2
A
B
0.15
0.12
0.16
0.14
hours per product, are shown in Table 36. It takes 0.15 hour
to manufacture 1 unit of product A on line 1, and so on. It
costs $5 per hour of line time to produce any product. The
inventory carrying cost per month for each product is 20¢
per unit (charged on each month’s ending inventory).
Currently, there are 500 units of A and 750 units of B in
inventory. Management would like at least 1,000 units of
each product in inventory at the end of April. Formulate an
LP to determine the production schedule that minimizes the
total cost incurred in meeting demands on time.
3 James Beerd bakes cheesecakes and Black Forest cakes.
During any month, he can bake at most 65 cakes. The costs
per cake and the demands for cakes, which must be met on
time, are listed in Table 33. It costs 50¢ to hold a cheesecake,
and 40¢ to hold a Black Forest cake, in inventory for a
month. Formulate an LP to minimize the total cost of
meeting the next three months’ demands.
5 During the next two months, General Cars must meet
(on time) the following demands for trucks and cars: month
1—400 trucks, 800 cars; month 2—300 trucks, 300 cars.
During each month, at most 1,000 vehicles can be produced.
Each truck uses 2 tons of steel, and each car uses 1 ton of
steel. During month 1, steel costs $400 per ton; during
month 2, steel costs $600 per ton. At most, 1,500 tons of
steel may be purchased each month (steel may only be used
4 A manufacturing company produces two types of
products: A and B. The company has agreed to deliver the
products on the schedule shown in Table 34. The company
has two assembly lines, 1 and 2, with the available
production hours shown in Table 35. The production rates
for each assembly line and product combination, in terms of
33
Month 1
Item
Cheesecake
Black Forest
104
A
Production Hours
Available
Group B
TA B L E
34
Month 2
Month 3
Demand
Cost/Cake ($)
Demand
Cost/Cake ($)
Demand
Cost/Cake ($)
40
20
3.00
2.50
30
30
3.40
2.80
20
10
3.80
3.40
CHAPTER
3 Introduction to Linear Programming
during the month in which it is purchased). At the beginning
of month 1, 100 trucks and 200 cars are in inventory. At the
end of each month, a holding cost of $150 per vehicle is
assessed. Each car gets 20 mpg, and each truck gets
10 mpg. During each month, the vehicles produced by the
company must average at least 16 mpg. Formulate an LP to
meet the demand and mileage requirements at minimum
cost (include steel costs and holding costs).
6 Gandhi Clothing Company produces shirts and pants.
Each shirt requires 2 sq yd of cloth, each pair of pants, 3.
During the next two months, the following demands for
shirts and pants must be met (on time): month 1—10 shirts,
15 pairs of pants; month 2—12 shirts, 14 pairs of pants.
During each month, the following resources are available:
month 1—90 sq yd of cloth; month 2—60 sq yd. (Cloth that
is available during month 1 may, if unused during month 1,
be used during month 2.)
During each month, it costs $4 to make an article of
clothing with regular-time labor and $8 with overtime labor.
During each month, a total of at most 25 articles of clothing may be produced with regular-time labor, and an unlimited number of articles of clothing may be produced with
overtime labor. At the end of each month, a holding cost of
$3 per article of clothing is assessed. Formulate an LP that
can be used to meet demands for the next two months (on
time) at minimum cost. Assume that at the beginning of
month 1, 1 shirt and 2 pairs of pants are available.
7 Each year, Paynothing Shoes faces demands (which
must be met on time) for pairs of shoes as shown in Table
37. Workers work three consecutive quarters and then receive
one quarter off. For example, a worker may work during
quarters 3 and 4 of one year and quarter 1 of the next year.
During a quarter in which a worker works, he or she can
produce up to 50 pairs of shoes. Each worker is paid $500
per quarter. At the end of each quarter, a holding cost of $50
per pair of shoes is assessed. Formulate an LP that can be
used to minimize the cost per year (labor holding) of
meeting the demands for shoes. To simplify matters, assume
3.11
TA B L E
Quarter 1
600
37
Quarter 2
Quarter 3
Quarter 4
300
800
100
that at the end of each year, the ending inventory is zero.
(Hint: It is allowable to assume that a given worker will get
the same quarter off during each year.)
8 A company must meet (on time) the following demands:
quarter 1—30 units; quarter 2—20 units; quarter 3—40
units. Each quarter, up to 27 units can be produced with
regular-time labor, at a cost of $40 per unit. During each
quarter, an unlimited number of units can be produced with
overtime labor, at a cost of $60 per unit. Of all units
produced, 20% are unsuitable and cannot be used to meet
demand. Also, at the end of each quarter, 10% of all units
on hand spoil and cannot be used to meet any future
demands. After each quarter’s demand is satisfied and
spoilage is accounted for, a cost of $15 per unit is assessed
against the quarter’s ending inventory. Formulate an LP that
can be used to minimize the total cost of meeting the next
three quarters’ demands. Assume that 20 usable units are
available at the beginning of quarter 1.
9 Donovan Enterprises produces electric mixers. During
the next four quarters, the following demands for mixers
must be met on time: quarter 1—4,000; quarter 2—2,000;
quarter 3—3,000; quarter 4—10,000. Each of Donovan’s
workers works three quarters of the year and gets one quarter
off. Thus, a worker may work during quarters 1, 2, and 4
and get quarter 3 off. Each worker is paid $30,000 per year
and (if working) can produce up to 500 mixers during a
quarter. At the end of each quarter, Donovan incurs a holding
cost of $30 per mixer on each mixer in inventory. Formulate
an LP to help Donovan minimize the cost (labor and
inventory) of meeting the next year’s demand (on time). At
the beginning of quarter 1, 600 mixers are available.
Multiperiod Financial Models
The following example illustrates how linear programming can be used to model multiperiod cash management problems. The key is to determine the relations of cash on hand
during different periods.
EXAMPLE
15
Finco Multiperiod Investment
Finco Investment Corporation must determine investment strategy for the firm during the
next three years. Currently (time 0), $100,000 is available for investment. Investments A,
B, C, D, and E are available. The cash flow associated with investing $1 in each investment is given in Table 38.
For example, $1 invested in investment B requires a $1 cash outflow at time 1 and returns 50¢ at time 2 and $1 at time 3. To ensure that the company’s portfolio is diversified,
Finco requires that at most $75,000 be placed in any single investment. In addition to investments A–E, Finco can earn interest at 8% per year by keeping uninvested cash in
3 . 1 1 Multiperiod Financial Models
105
38
TA B L E
Cash Flow ($) at Time*
A
B
C
D
E
0
1
2
1
0
1
1
0
0.50
1
1.2
0
0
1
0.50
0
0
1
3
0
1
0
1.9
1.5
*Note: Time 0 present; time 1 1 year from now; time
2 2 years from now; time 3 3 years from now.
money market funds. Returns from investments may be immediately reinvested. For example, the positive cash flow received from investment C at time 1 may immediately be
reinvested in investment B. Finco cannot borrow funds, so the cash available for investment at any time is limited to cash on hand. Formulate an LP that will maximize cash on
hand at time 3.
Solution
Finco must decide how much money should be placed in each investment (including
money market funds). Thus, we define the following decision variables:
A dollars invested in investment A
B dollars invested in investment B
C dollars invested in investment C
D dollars invested in investment D
E dollars invested in investment E
St dollars invested in money market funds at time t
(t 0, 1, 2)
Finco wants to maximize cash on hand at time 3. At time 3, Finco’s cash on hand will be
the sum of all cash inflows at time 3. From the description of investments A–E and the
fact that from time 2 to time 3, S2 will increase to 1.08S2,
Time 3 cash on hand B 1.9D 1.5E 1.08S2
Thus, Finco’s objective function is
max z B 1.9D 1.5E 1.08S2
(62)
In multiperiod financial models, the following type of constraint is usually used to relate
decision variables from different periods:
Cash available at time t cash invested at time t
uninvested cash at time t that is carried over to time t 1
If we classify money market funds as investments, we see that
Cash available at time t cash invested at time t
(63)
Because investments A, C, D, and S0 are available at time 0, and $100,000 is available
at time 0, (63) for time 0 becomes
100,000 A C D S0
(64)
At time 1, 0.5A 1.2C 1.08S0 is available for investment, and investments B and S1
are available. Then for t 1, (63) becomes
106
CHAPTER
3 Introduction to Linear Programming
0.5A 1.2C 1.08S0 B S1
(65)
At time 2, A 0.5B 1.08S1 is available for investment, and investments E and S2 are
available. Thus, for t 2, (63) reduces to
A 0.5B 1.08S1 E S2
(66)
Let’s not forget that at most $75,000 can be placed in any of investments A–E. To take
care of this, we add the constraints
A 75,000
B 75,000
C 75,000
D 75,000
E 75,000
(67)
(68)
(69)
(70)
(71)
Combining (62) and (64)–(71) with the sign restrictions (all variables 0) yields the following LP:
max z B 1.9D 1.5E 1.08S2
s.t.
A C D S0 100,000
0.5A 1.2C 1.08S0 B S1
A 0.5B 1.08S1 E S2
A 75,000
B 75,000
C 75,000
D 75,000
E 75,000
A, B, C, D, E, S0, S1, S2 0
We find the optimal solution to be z 218,500, A 60,000, B 30,000, D 40,000,
E 75,000, C S0 S1 S2 0. Thus, Finco should not invest in money market
funds. At time 0, Finco should invest $60,000 in A and $40,000 in D. Then, at time 1, the
$30,000 cash inflow from A should be invested in B. Finally, at time 2, the $60,000 cash
inflow from A and the $15,000 cash inflow from B should be invested in E. At time 3,
Finco’s $100,000 will have grown to $218,500.
You might wonder how our formulation ensures that Finco never invests more money
at any time than the firm has available. This is ensured by the fact that each variable Si
must be nonnegative. For example, S0 0 is equivalent to 100,000 A C D 0,
which ensures that at most $100,000 will be invested at time 0.
Real-World Application
Using LP to Optimize Bond Portfolios
Many Wall Street firms buy and sell bonds. Rohn (1987) discusses a bond selection model
that maximizes profit from bond purchases and sales subject to constraints that minimize
the firm’s risk exposure. See Problem 4 for a simplified version of this model.
3 . 1 1 Multiperiod Financial Models
107
PROBLEMS
Group A
1 A consultant to Finco claims that Finco’s cash on hand
at time 3 is the sum of the cash inflows from all investments,
not just those investments yielding a cash inflow at time 3.
Thus, the consultant claims that Finco’s objective function
should be
max z 1.5A 1.5B 1.2C 1.9D 1.5E
1.08S0 1.08S1 1.08S2
Explain why the consultant is incorrect.
2 Show that Finco’s objective function may also be written as
max z 100,000 0.5A 0.5B 0.2C 0.9D 0.5E
0.08S0 0.08S1 0.08S2
3 At time 0, we have $10,000. Investments A and B are
available; their cash flows are shown in Table 39. Assume
that any money not invested in A or B earns no interest.
Formulate an LP that will maximize cash on hand at time
3. Can you guess the optimal solution to this problem?
Group B
4† Broker Steve Johnson is currently trying to maximize
his profit in the bond market. Four bonds are available for
purchase and sale, with the bid and ask price of each bond
as shown in Table 40. Steve can buy up to 1,000 units of
each bond at the ask price or sell up to 1,000 units of each
bond at the bid price. During each of the next three years,
the person who sells a bond will pay the owner of the bond
the cash payments shown in Table 41.
Steve’s goal is to maximize his revenue from selling
bonds less his payment for buying bonds, subject to the
constraint that after each year’s payments are received, his
current cash position (due only to cash payments from bonds
and not purchases or sale of bonds) is nonnegative. Assume
TA B L E
Time
0
1
2
3
TA B L E
Bond
1
2
3
4
39
A
B
$1
$0.2
$1.5
$0
$0
$1
$0
$1.0
40
Bid Price
Ask Price
980
970
960
940
990
985
972
954
Based on Rohn (1987).
CHAPTER
41
Year
Bond 1
Bond 2
Bond 3
Bond 4
1
2
3
100
110
1,100
80
90
1,120
70
80
1,090
60
50
1,110
TA B L E
Month
January
February
March
April
May
June
42
Cash Flow
Month
Cash Flow
12
10
8
10
4
5
July
August
September
October
November
December
7
2
15
12
7
45
that cash payments are discounted, with a payment of $1
one year from now being equivalent to a payment of 90¢
now. Formulate an LP to maximize net profit from buying
and selling bonds, subject to the arbitrage constraints previously described. Why do you think we limit the number of
units of each bond that can be bought or sold?
5 A small toy store, Toyco projects the monthly cash flows
(in thousands of dollars) in Table 42 during the year 2003.
A negative cash flow means that cash outflows exceed cash
inflows to the business. To pay its bills, Toyco will need to
borrow money early in the year. Money can be borrowed in
two ways:
a Taking out a long-term one-year loan in January. Interest of 1% is charged each month, and the loan must
be paid back at the end of December.
b Each month money can be borrowed from a shortterm bank line of credit. Here, a monthly interest rate of
1.5% is charged. All short-term loans must be paid off
at the end of December.
At the end of each month, excess cash earns 0.4% interest. Formulate an LP whose solution will help Toyco
maximize its cash position at the beginning of January,
2004.
6 Consider Problem 5 with the following modification:
Each month Toyco can delay payments on some or all of the
cash owed for the current month. This is called “stretching
payments.” Payments may be stretched for only one month,
and a 1% penalty is charged on the amount stretched. Thus,
if it stretches payments on $10,000 cash owed in January,
then it must pay 10,000(1.01) $10,100 in February. With
this modification, formulate an LP that would help Toyco
maximize its cash on hand at the beginning of January 1,
2004.
†
108
TA B L E
3 Introduction to Linear Programming
7 Suppose we are borrowing $1,000 at 12% annual interest
with 60 monthly payments. Assume equal payments are
made at the end of month 1, month 2, . . . month 60. We
know that entering into Excel the function
PMT(.01, 60, 1,000)
would yield the monthly payment ($22.24).
It is instructive to use LP to determine the montly payment. Let p be the (unknown) monthly payment. Each month
we owe .01 (our current unpaid balance) in interest. The
remainder of our monthly payment is used to reduce the unpaid balance. For example, suppose we paid $30 each month.
At the beginning of month 1, our unpaid balance is $1,000.
Of our month 1 payment, $10 goes to interest and $20 to
paying off the unpaid balance. Then we would begin month
2 with an unpaid balance of $980. The trick is to use LP to
determine the monthly payment that will pay off the loan at
the end of month 60.
8 You are a CFA (chartered financial analyst). Madonna
has come to you because she needs help paying off her credit
card bills. She owes the amounts on her credit cards shown
in Table 43. Madonna is willing to allocate up to $5,000 per
month to pay off these credit cards. All cards must be paid
off within 36 months. Madonna’s goal is to minimize the
total of all her payments. To solve this problem, you must
understand how interest on a loan works. To illustrate,
suppose Madonna pays $5,000 on Saks during month 1.
Then her Saks balance at the beginning of month 2 is
20,000 (5,000 .005(20,000))
This follows because during month 1 Madonna incurs
.005(20,000) in interest charges on her Saks card. Help
Madonna solve her problems!
9 Winstonco is considering investing in three projects. If
we fully invest in a project, the realized cash flows (in
millions of dollars) will be as shown in Table 44. For
example, project 1 requires cash outflow of $3 million today
3.12
TA B L E
43
Card
Saks Fifth Avenue
Bloomingdale’s
Macys
TA B L E
Balance ($)
Monthly Rate (%)
20,000
50,000
40,000
.5
1
1.5
44
Cash Flow
Time (Years)
0
0.5
1
1.5
2
2.5
3
Project 1
Project 2
Project 3
3.0
1.0
1.8
1.4
1.8
1.8
5.5
2
.5
1.5
1.5
1.5
1.2
1
2.0
2.0
1.8
1
1
1
6
and returns $5.5 million 3 years from now. Today we have
$2 million in cash. At each time point (0, .5, 1, 1.5, 2, and
2.5 years from today) we may, if desired, borrow up to $2
million at 3.5% (per 6 months) interest. Leftover cash earns
3% (per 6 months) interest. For example, if after borrowing
and investing at time 0 we have $1 million we would receive
$30,000 in interest at time .5 years. Winstonco’s goal is to
maximize cash on hand after it accounts for time 3 cash
flows. What investment and borrowing strategy should be
used? Remember that we may invest in a fraction of a
project. For example, if we invest in .5 of project 3, then we
have cash outflows of $1 million at time 0 and .5.
Multiperiod Work Scheduling
In Section 3.5, we saw that linear programming could be used to schedule employees in
a static environment where demand did not change over time. The following example (a
modified version of a problem from Wagner [1975]) shows how LP can be used to schedule employee training when a firm faces demand that changes over time.
EXAMPLE
16
Multiperiod Work Scheduling
CSL is a chain of computer service stores. The number of hours of skilled repair time that
CSL requires during the next five months is as follows:
Month
Month
Month
Month
Month
1
2
3
4
5
(January): 6,000 hours
(February): 7,000 hours
(March): 8,000 hours
(April): 9,500 hours
(May): 11,000 hours
3 . 1 2 Multiperiod Work Scheduling
109
At the beginning of January, 50 skilled technicians work for CSL. Each skilled technician
can work up to 160 hours per month. To meet future demands, new technicians must be
trained. It takes one month to train a new technician. During the month of training, a
trainee must be supervised for 50 hours by an experienced technician. Each experienced
technician is paid $2,000 a month (even if he or she does not work the full 160 hours).
During the month of training, a trainee is paid $1,000 a month. At the end of each month,
5% of CSL’s experienced technicians quit to join Plum Computers. Formulate an LP
whose solution will enable CSL to minimize the labor cost incurred in meeting the service requirements for the next five months.
Solution
CSL must determine the number of technicians who should be trained during month t
(t 1, 2, 3, 4, 5). Thus, we define
xt number of technicians trained during month t
(t 1, 2, 3, 4, 5)
CSL wants to minimize total labor cost during the next five months. Note that
Total labor cost cost of paying trainees cost of paying experienced technicians
To express the cost of paying experienced technicians, we need to define, for t 1, 2,
3, 4, 5,
yt number of experienced technicians at the beginning of month t
Then
Total labor cost (1,000x1 1,000x2 1,000x3 1,000x4 1,000x5)
(2,000y1 2000y2 2,000y3 2,000y4 2,000y5)
Thus, CSL’s objective function is
min z 1,000x1 1,000x2 1,000x3 1,000x4 1,000x5
2,000y1 2,000y2 2,000y3 2,000y4 2,000y5
What constraints does CSL face? Note that we are given y1 50, and that for t 1, 2,
3, 4, 5, CSL must ensure that
Number of available technician hours during month t
Number of technician hours required during month t (72)
Because each trainee requires 50 hours of experienced technician time, and each skilled
technician is available for 160 hours per month,
Number of available technician hours during month t 160yt 50xt
Now (72) yields the following five constraints:
160y1
160y2
160y3
160y4
160y5
50x1
50x2
50x3
50x4
50x5
6,000
7,000
8,000
9,500
11,000
(month
(month
(month
(month
(month
1
2
3
4
5
constraint)
constraint)
constraint)
constraint)
constraint)
As in the other multiperiod formulations, we need constraints that relate variables from
different periods. In the CSL problem, it is important to realize that the number of skilled
technicians available at the beginning of any month is determined by the number of skilled
technicians available during the previous month and the number of technicians trained
during the previous month:
110
CHAPTER
3 Introduction to Linear Programming
Experienced technicians available Experienced technicians available
at beginning of month t
at beginning of month (t 1)
(73)
technicians trained during month (t 1)
experienced technicians who quit during
month (t 1)
For example, for February, (73) yields
y2 y1 x1 0.05y1
or
y2 0.95y1 x1
Similarly, for March, (73) yields
y3 0.95y2 x2
and for April,
y4 0.95y3 x3
and for May,
y5 0.95y4 x4
Adding the sign restrictions xt 0 and yt 0 (t 1, 2, 3, 4, 5), we obtain the following LP:
min z 1,000x1 1,000x2 1,000x3 1,000x4 1,000x5
2,000y1 2,000y2 2,000y3 2,000y4 2,000y5
s.t.
160y1 50x1 6,000
y1 50
160y2 50x2 7,000
0.95y1 x1 y2
160y3 50x3 8,000
0.95y2 x2 y3
160y4 50x4 9,500
0.95y3 x3 y4
160y5 50x5 11,000
0.95y4 x4 y5
xt, yt 0
(t 1, 2, 3, 4, 5)
The optimal solution is z 593,777; x1 0; x2 8.45; x3 11.45; x4 9.52; x5 0;
y1 50; y2 47.5; y3 53.58; y4 62.34; and y5 68.75.
In reality, the yt’s must be integers, so our solution is difficult to interpret. The problem with our formulation is that assuming that exactly 5% of the employees quit each
month can cause the number of employees to change from an integer during one month
to a fraction during the next month. We might want to assume that the number of employees quitting each month is the integer closest to 5% of the total workforce, but then
we do not have a linear programming problem!
PROBLEMS
Group A
1 If y1 38, then what would be the optimal solution to
CSL’s problem?
2 An insurance company believes that it will require the
following numbers of personal computers during the next
six months: January, 9; February, 5; March, 7; April, 9;
May, 10; June, 5. Computers can be rented for a period of
one, two, or three months at the following unit rates: onemonth rate, $200; two-month rate, $350; three-month rate,
$450. Formulate an LP that can be used to minimize the
cost of renting the required computers. You may assume that
if a machine is rented for a period of time extending beyond
June, the cost of the rental should be prorated. For example,
if a computer is rented for three months at the beginning of
May, then a rental fee of 23(450) $300, not $450, should
be assessed in the objective function.
3 The IRS has determined that during each of the next 12
months it will need the number of supercomputers given in
Table 45. To meet these requirements, the IRS rents
3 . 1 2 Multiperiod Work Scheduling
111
TA B L E
45
TA B L E
46
Month
Computer Requirements
Month
Selling Price ($)
Purchase Price ($)
3
6
7
1
4
5
5
1
3
2
8
8
2
3
4
3
3
2
5
5
1
2
3
4
5
6
7
8
9
10
11
12
800
1,000
600
500
1,200
400
800
600
400
500
800
600
1
2
3
4
5
6
7
8
9
10
supercomputers for a period of one, two, or three months.
It costs $100 to rent a supercomputer for one month, $180
for two months, and $250 for three months. At the beginning
of month 1, the IRS has no supercomputers. Determine the
rental plan that meets the next 12 months’ requirements at
minimum cost. Note: You may assume that fractional rentals
are okay, so if your solution says to rent 140.6 computers
for one month we can round this up or down (to 141 or 140)
without having much effect on the total cost.
Group B
of wheat. Each month, wheat can be bought and sold at the
price per 1000 bushels given in Table 46.
The sequence of events during each month is as follows:
a You observe your initial stock of wheat.
b You can sell any amount of wheat up to your initial
stock at the current month’s selling price.
c You can buy (at the current month’s buying price) as
much wheat as you want, subject to the warehouse size
limitation.
Your goal is to formulate an LP that can be used to determine how to maximize the profit earned over the next 10
months.
4 You own a wheat warehouse with a capacity of 20,000
bushels. At the beginning of month 1, you have 6,000 bushels
SUMMARY
Linear Programming Definitions
A linear programming problem (LP) consists of three parts:
A linear function (the objective function) of decision variables (say, x1, x2, . . . , xn)
that is to be maximized or minimized.
1
A set of constraints (each of which must be a linear equality or linear inequality) that
restrict the values that may be assumed by the decision variables.
2
3 The sign restrictions, which specify for each decision variable xj either (1) variable
xj must be nonnegative—xj 0; or (2) variable xj may be positive, zero, or negative—xj
is unrestricted in sign (urs).
The coefficient of a variable in the objective function is the variable’s objective function coefficient. The coefficient of a variable in a constraint is a technological coefficient.
The right-hand side of each constraint is called a right-hand side (rhs).
A point is simply a specification of the values of each decision variable. The feasible
region of an LP consists of all points satisfying the LP’s constraints and sign restrictions.
Any point in the feasible region that has the largest z-value of all points in the feasible region (for a max problem) is an optimal solution to the LP. An LP may have no optimal
solution, one optimal solution, or an infinite number of optimal solutions.
112
CHAPTER
3 Introduction to Linear Programming
A constraint in an LP is binding if the left-hand side and the right-hand side are equal
when the values of the variables in the optimal solution are substituted into the constraint.
Graphical Solution of Linear Programming Problems
The feasible region for any LP is a convex set. If an LP has an optimal solution, there is
an extreme (or corner) point of the feasible region that is an optimal solution to the LP.
We may graphically solve an LP (max problem) with two decision variables as follows:
Step 1
Graph the feasible region.
Step 2
Draw an isoprofit line.
Move parallel to the isoprofit line in the direction of increasing z. The last point
in the feasible region that contacts an isoprofit line is an optimal solution to the LP.
Step 3
LP Solutions: Four Cases
When an LP is solved, one of the following four cases will occur:
Case 1
The LP has a unique solution.
The LP has more than one (actually an infinite number of ) optimal solutions.
This is the case of alternative optimal solutions. Graphically, we recognize this case
when the isoprofit line last hits an entire line segment before leaving the feasible region.
Case 2
The LP is infeasible (it has no feasible solution). This means that the feasible region contains no points.
Case 3
Case 4 The LP is unbounded. This means (in a max problem) that there are points in the
feasible region with arbitrarily large z-values. Graphically, we recognize this case by the
fact that when we move parallel to an isoprofit line in the direction of increasing z, we
never lose contact with the LP’s feasible region.
Formulating LPs
The most important step in formulating most LPs is to determine the decision variables
correctly.
In any constraint, the terms must have the same units. For example, one term cannot
have the units “pounds of raw material” while another term has the units “ounces of raw
material.”
REVIEW PROBLEMS
Group A
1 Bloomington Breweries produces beer and ale. Beer
sells for $5 per barrel, and ale sells for $2 per barrel.
Producing a barrel of beer requires 5 lb of corn and 2 lb of
hops. Producing a barrel of ale requires 2 lb of corn and 1
lb of hops. Sixty pounds of corn and 25 lb of hops are
available. Formulate an LP that can be used to maximize
revenue. Solve the LP graphically.
2 Farmer Jones bakes two types of cake (chocolate and
vanilla) to supplement his income. Each chocolate cake can
be sold for $1, and each vanilla cake can be sold for 50¢.
Each chocolate cake requires 20 minutes of baking time and
uses 4 eggs. Each vanilla cake requires 40 minutes of baking
time and uses 1 egg. Eight hours of baking time and 30 eggs
are available. Formulate an LP to maximize Farmer Jones’s
Review Problems
113
revenue, then graphically solve the LP. (A fractional number
of cakes is okay.)
3 I now have $100. The following investments are available
during the next three years:
Investment A Every dollar invested now yields $0.10 a
year from now and $1.30 three years from now.
Investment B Every dollar invested now yields $0.20 a
year from now and $1.10 two years from now.
Investment C Every dollar invested a year from now yields
$1.50 three years from now.
During each year, uninvested cash can be placed in money
market funds, which yield 6% interest per year. At most $50
may be placed in each of investments A, B, and C. Formulate
an LP to maximize my cash on hand three years from now.
4 Sunco processes oil into aviation fuel and heating oil. It
costs $40 to purchase each 1,000 barrels of oil, which is
then distilled and yields 500 barrels of aviation fuel and 500
barrels of heating oil. Output from the distillation may be
sold directly or processed in the catalytic cracker. If sold
after distillation without further processing, aviation fuel
sells for $60 per 1,000 barrels, and heating oil sells for $40
per 1,000 barrels. It takes 1 hour to process 1,000 barrels of
aviation fuel in the catalytic cracker, and these 1,000 barrels
can be sold for $130. It takes 45 minutes to process 1,000
barrels of heating oil in the cracker, and these 1,000 barrels
can be sold for $90. Each day, at most 20,000 barrels of oil
can be purchased, and 8 hours of cracker time are available.
Formulate an LP to maximize Sunco’s profits.
5
Finco has the following investments available:
Investment A For each dollar invested at time 0, we receive $0.10 at time 1 and $1.30 at time 2. (Time 0 now;
time 1 one year from now; and so on.)
Investment B For each dollar invested at time 1, we receive $1.60 at time 2.
Investment C For each dollar invested at time 2, we receive $1.20 at time 3.
mixture of the two alloys can be determined by averaging
that of the alloys that are mixed together. For example, a
one-ton mixture that is 40% alloy 1 and 60% alloy 2 has a
tensile strength of 0.4(42,000) 0.6(50,000). Use linear
programming to determine how to minimize the cost of
producing a ton of steel.
7 Steelco manufactures two types of steel at three different
steel mills. During a given month, each steel mill has 200
hours of blast furnace time available. Because of differences
in the furnaces at each mill, the time and cost to produce a
ton of steel differs for each mill. The time and cost for each
mill are shown in Table 48. Each month, Steelco must
manufacture at least 500 tons of steel 1 and 600 tons of steel
2. Formulate an LP to minimize the cost of manufacturing
the desired steel.
8† Walnut Orchard has two farms that grow wheat and
corn. Because of differing soil conditions, there are
differences in the yields and costs of growing crops on the
two farms. The yields and costs are shown in Table 49. Each
farm has 100 acres available for cultivation; 11,000 bushels
of wheat and 7,000 bushels of corn must be grown.
Determine a planting plan that will minimize the cost of
meeting these demands. How could an extension of this
model be used to allocate crop production efficiently
throughout a nation?
9 Candy Kane Cosmetics (CKC) produces Leslie Perfume,
which requires chemicals and labor. Two production
processes are available: Process 1 transforms 1 unit of labor
and 2 units of chemicals into 3 oz of perfume. Process 2
transforms 2 units of labor and 3 units of chemicals into
5 oz of perfume. It costs CKC $3 to purchase a unit of labor
and $2 to purchase a unit of chemicals. Each year, up to
20,000 units of labor and 35,000 units of chemicals can be
purchased. In the absence of advertising, CKC believes it
can sell 1,000 oz of perfume. To stimulate demand for
TA B L E
48
At any time, leftover cash may be invested in T-bills, which
pay 10% per year. At time 0, we have $100. At most, $50
can be invested in each of investments A, B, and C. Formulate an LP that can be used to maximize Finco’s cash on
hand at time 3.
Producing a Ton of Steel
Mill
Cost
Time
(Minutes)
Cost
Time
(Minutes)
6 All steel manufactured by Steelco must meet the
following requirements: 3.2–3.5% carbon; 1.8–2.5% silicon;
0.9–1.2% nickel; tensile strength of at least 45,000 pounds
per square inch (psi). Steelco manufactures steel by
combining two alloys. The cost and properties of each alloy
are given in Table 47. Assume that the tensile strength of a
1
2
3
$10
$12
$14
20
24
28
$11
$ 9
$10
22
18
30
Farm 1
Farm 2
500
100
400
90
650
120
350
80
Steel 1
TA B L E
TA B L E
49
47
Cost per ton ($)
Percent silicon
Percent nickel
Percent carbon
Tensile strength (psi)
114
Steel 2
Alloy 1
Alloy 2
$190
2
1
3
42,000
$200
2.5
1.5
4
50,000
CHAPTER
3 Introduction to Linear Programming
Corn yield/acre (bushels)
Cost/acre of corn ($)
Wheat yield/acre (bushels)
Cost/acre of wheat ($)
†
Based on Heady and Egbert (1964).
Leslie, CKC can hire the lovely model Jenny Nelson. Jenny
is paid $100/hour. Each hour Jenny works for the company
is estimated to increase the demand for Leslie Perfume by
200 oz. Each ounce of Leslie Perfume sells for $5. Use
linear programming to determine how CKC can maximize
profits.
10 Carco has a $150,000 advertising budget. To increase
automobile sales, the firm is considering advertising in
newspapers and on television. The more Carco uses a
particular medium, the less effective is each additional ad.
Table 50 shows the number of new customers reached by
each ad. Each newspaper ad costs $1,000, and each
television ad costs $10,000. At most, 30 newspaper ads and
15 television ads can be placed. How can Carco maximize
the number of new customers created by advertising?
11 Sunco Oil has refineries in Los Angeles and Chicago.
The Los Angeles refinery can refine up to 2 million barrels
of oil per year, and the Chicago refinery up to 3 million.
Once refined, oil is shipped to two distribution points:
Houston and New York City. Sunco estimates that each
distribution point can sell up to 5 million barrels per year.
Because of differences in shipping and refining costs, the
profit earned (in dollars) per million barrels of oil shipped
depends on where the oil was refined and on the point of
distribution (see Table 51). Sunco is considering expanding
the capacity of each refinery. Each million barrels of annual
refining capacity that is added will cost $120,000 for the Los
Angeles refinery and $150,000 for the Chicago refinery. Use
linear programming to determine how Sunco can maximize
its profits less expansion costs over a ten-year period.
12 For a telephone survey, a marketing research group
needs to contact at least 150 wives, 120 husbands, 100
single adult males, and 110 single adult females. It costs $2
to make a daytime call and (because of higher labor costs)
$5 to make an evening call. Table 52 lists the results. Because
of limited staff, at most half of all phone calls can be evening
calls. Formulate an LP to minimize the cost of completing
the survey.
TA B L E
50
Newspaper
Television
TA B L E
Number
of Ads
New
Customers
1–10
11–20
21–30
1–5
6–10
11–15
900
600
300
10,000
5,000
2,000
51
Profit per Million Barrels ($)
From
Los Angeles
Chicago
To Houston
To New York
20,000
18,000
15,000
17,000
TA B L E
52
Person
Responding
Wife
Husband
Single male
Single female
None
Percent of
Daytime Calls
Percent of
Evening Calls
30
10
10
10
40
30
30
15
20
5
13 Feedco produces two types of cattle feed, both
consisting totally of wheat and alfalfa. Feed 1 must contain
at least 80% wheat, and feed 2 must contain at least 60%
alfalfa. Feed 1 sells for $1.50/lb, and feed 2 sells for $1.30/lb.
Feedco can purchase up to 1,000 lb of wheat at 50¢/lb and
up to 800 lb of alfalfa at 40¢/lb. Demand for each type of
feed is unlimited. Formulate an LP to maximize Feedco’s
profit.
14 Feedco (see Problem 13) has decided to give its
customer (assume it has only one customer) a quantity
discount. If the customer purchases more than 300 lb of
feed 1, each pound over the first 300 lb will sell for only
$1.25/lb. Similarly, if the customer purchases more than 300
pounds of feed 2, each pound over the first 300 lb will sell
for $1.00/lb. Modify the LP of Problem 13 to account for
the presence of quantity discounts. (Hint: Define variables
for the feed sold at each price.)
15 Chemco produces two chemicals: A and B. These
chemicals are produced via two manufacturing processes.
Process 1 requires 2 hours of labor and 1 lb of raw material
to produce 2 oz of A and 1 oz of B. Process 2 requires 3
hours of labor and 2 lb of raw material to produce 3 oz of
A and 2 oz of B. Sixty hours of labor and 40 lb of raw
material are available. Demand for A is unlimited, but only
20 oz of B can be sold. A sells for $16/oz, and B sells for
$14/oz. Any B that is unsold must be disposed of at a cost
of $2/oz. Formulate an LP to maximize Chemco’s revenue
less disposal costs.
16 Suppose that in the CSL computer example of Section
3.12, it takes two months to train a technician and that
during the second month of training, each trainee requires
10 hours of experienced technician time. Modify the
formulation in the text to account for these changes.
17 Furnco manufactures tables and chairs. Each table and
chair must be made entirely out of oak or entirely out of
pine. A total of 150 board ft of oak and 210 board ft of pine
are available. A table requires either 17 board ft of oak or
30 board ft of pine, and a chair requires either 5 board ft of
oak or 13 board ft of pine. Each table can be sold for $40,
and each chair for $15. Formulate an LP that can be used
to maximize revenue.
18† The city of Busville contains three school districts.
The number of minority and nonminority students in each
200
) are
district is given in Table 53. Of all students, 25% (
800
minority students.
†
Based on Franklin and Koenigsberg (1973).
Review Problems
115
TA B L E
District
1
2
3
TA B L E
District
1
2
3
tract, and the profit (in thousands of dollars) per acre for
each possible use of land are given in Table 55. Capital of
$150,000 and 200 man-days of labor are available. How
should the land be allocated to various uses to maximize
profit received from the two tracts?
53
Minority
Students
Nonminority
Students
50
50
100
200
250
150
54
Cooley
High
Walt Whitman
High
1
2
1
2
1
1
The local court has decided that both of the town’s two
high schools (Cooley High and Walt Whitman High) must
have approximately the same percentage of minority students (within 5%) as the entire town. The distances (in
miles) between the school districts and the high schools are
given in Table 54. Each high school must have an enrollment of 300–500 students. Use linear programming to determine an assignment of students to schools that minimizes
the total distance students must travel to school.
19† Brady Corporation produces cabinets. Each week, it
requires 90,000 cu ft of processed lumber. The company
may obtain lumber in two ways. First, it may purchase
lumber from an outside supplier and then dry it in the
supplier’s kiln. Second, it may chop down logs on its own
land, cut them into lumber at its sawmill, and finally dry the
lumber in its own kiln. Brady can purchase grade 1 or grade
2 lumber. Grade 1 lumber costs $3 per cu ft and when dried
yields 0.7 cu ft of useful lumber. Grade 2 lumber costs $7
per cubic foot and when dried yields 0.9 cu ft of useful
lumber. It costs the company $3 to chop down a log. After
being cut and dried, a log yields 0.8 cu ft of lumber. Brady
incurs costs of $4 per cu ft of lumber dried. It costs $2.50
per cu ft of logs sent through the sawmill. Each week, the
sawmill can process up to 35,000 cu ft of lumber. Each
week, up to 40,000 cu ft of grade 1 lumber and up to 60,000
cu ft of grade 2 lumber can be purchased. Each week, 40
hours of time are available for drying lumber. The time it
takes to dry 1 cu ft of grade 1 lumber, grade 2 lumber, or
logs is as follows: grade 1—2 seconds; grade 2—0.8 second;
log—1.3 seconds. Formulate an LP to help Brady minimize
the weekly cost of meeting the demand for processed lumber.
20‡ The Canadian Parks Commission controls two tracts
of land. Tract 1 consists of 300 acres and tract 2, 100 acres.
Each acre of tract 1 can be used for spruce trees or hunting,
or both. Each acre of tract 2 can be used for spruce trees or
camping, or both. The capital (in hundreds of dollars) and
labor (in worker-days) required to maintain one acre of each
21§ Chandler Enterprises produces two competing
products: A and B. The company wants to sell these products
to two groups of customers: group 1 and group 2. The value
each customer places on a unit of A and B is as shown in
Table 56. Each customer will buy either product A or product
B, but not both. A customer is willing to buy product A if
she believes that
Value of product A price of product A
Value of product B price of product B
and
Value of product A price of product A 0
A customer is willing to buy product B if she believes that
Value of product B price of product B
value of product A price of product A
and
Value of product B price of product B 0
Group 1 has 1,000 members, and group 2 has 1,500 members. Chandler wants to set prices for each product that ensure that group 1 members purchase product A and group 2
members purchase product B. Formulate an LP that will
help Chandler maximize revenues.
22¶ Alden Enterprises produces two products. Each
product can be produced on one of two machines. The length
of time needed to produce each product (in hours) on each
machine is as shown in Table 57. Each month, 500 hours of
time are available on each machine. Each month, customers
are willing to buy up to the quantities of each product at the
TA B L E
Tract
1
1
1
2
2
2
Capital
Labor
Profit
3
3
4
1
30
10
0.1
0.2
0.2
0.05
5
1.01
0.2
0.4
0.5
0.06
0.09
1.1
56
Value of A to
Value of B to
Group 1
Customer
Group 2
Customer
$10
$80
$12
$15
Based on Dobson and Kalish (1988).
Based on Jain, Stott, and Vasold (1978).
¶
Based on Carino and Lenoir (1988).
‡
Based on Cheung and Auger (1976).
CHAPTER
Spruce
Hunting
Both
Spruce
Camping
Both
TA B L E
§
†
116
55
3 Introduction to Linear Programming
TA B L E
Product
57
Machine 1
Machine 2
4
7
3
4
1
2
TA B L E
given in Table 60. The hospital now has available each week
570 hours of diagnostic services, 1,000 bed-days, 50,000
nursing hours, and $50,000 worth of drugs. To meet the
community’s minimum health care demands at least 10
DRG1, 15 DRG2, 40 DRG3, and 160 DRG4 cases must be
handled each week. Use LP to determine the hospital’s
optimal mix of DRGs.†
58
Demands
Product
Prices
Month 1
Month 2
Month 1
Month 2
100
140
190
130
$55
$65
$12
$32
1
2
prices given in Table 58. The company’s goal is to maximize
the revenue obtained from selling units during the next two
months. Formulate an LP to help meet this goal.
23 Kiriakis Electronics produces three products. Each
product must be processed on each of three types of
machines. When a machine is in use, it must be operated by
a worker. The time (in hours) required to process each
product on each machine and the profit associated with each
product are shown in Table 59. At present, five type 1
machines, three type 2 machines, and four type 3 machines
are available. The company has 10 workers available and
must determine how many workers to assign to each
machine. The plant is open 40 hours per week, and each
worker works 35 hours per week. Formulate an LP that will
enable Kiriakis to assign workers to machines in a way that
maximizes weekly profits. (Note: A worker need not spend
the entire work week operating a single machine.)
24 Gotham City Hospital serves cases from four
diagnostic-related groups (DRGs). The profit contribution,
diagnostic service use (in hours), bed-day use (in days),
nursing care use (in hours), and drug use (in dollars) are
TA B L E
59
Machine 1
Machine 2
Machine 3
Profit ($)
Product 1
Product 2
Product 3
2
3
4
6
3
5
7
8
4
6
9
10
25 Oliver Winery produces four award-winning wines
in Bloomington, Indiana. The profit contribution, labor
hours, and tank usage (in hours) per gallon for each type
of wine are given in Table 61. By law, at most 100,000
gallons of wine can be produced each year. A maximum
of 12,000 labor hours and 32,000 tank hours are available
annually. Each gallon of wine 1 spends an average of 13
year in inventory; wine 2, an average of 1 year; wine 3,
an average of 2 years; wine 4, an average of 3.333 years.
The winery’s warehouse can handle an average inventory
level of 50,000 gallons. Determine how much of each
type of wine should be produced annually to maximize
Oliver Winery’s profit.
26
Graphically solve the following LP:
min z 5x1 x2
s.t.
2x1 x2 6
x1 x2 4
2x1 10x2 20
x1, x2 0
27 Grummins Engine produces diesel trucks. New
government emission standards have dictated that the
average pollution emissions of all trucks produced in the
next three years cannot exceed 10 grams per truck.
Grummins produces two types of trucks. Each type 1 truck
sells for $20,000, costs $15,000 to manufacture, and emits
15 grams of pollution. Each type 2 truck sells for $17,000,
costs $14,000 to manufacture, and emits 5 grams of
pollution. Production capacity limits total truck production
during each year to at most 320 trucks. Grummins knows
that the maximum number of each truck type that can
be sold during each of the next three years is given in
Table 62.
Thus, at most, 300 type 1 trucks can be sold during
year 3. Demand may be met from previous production or
the current year’s production. It costs $2,000 to hold 1
truck (of any type) in inventory for one year. Formulate an
LP to help Grummins maximize its profit during the next
three years.
TA B L E
TA B L E
DRG
1
2
3
4
Wine
60
Profit
Diagnostic
Services
Bed-Day
Nursing Use
Drugs
2,000
1,500
500
300
7
4
2
1
5
2
1
0
30
10
5
1
800
500
150
50
1
2
3
4
61
Profit ($)
Labor (Hr)
Tank (Hr)
6
12
20
30
.2
.3
.3
.5
1.5
1.5
1.5
1.5
†
Based on Robbins and Tuntiwonpiboon (1989).
Review Problems
117
TA B L E
62
TA B L E
63
Maximum Demand for Trucks
Year
Type 1
Type 2
Shift
1
2
3
100
200
300
200
100
150
8 A.M.–4 P.M.
4 P.M.–Midnight
Midnight–8 A.M.
28
Describe all optimal solutions to the following LP:
min z 4x1 x2
s.t.
3x1 x2 6
4x1 x2 12
x1 x2 2
x1, x2 0
29 Juiceco manufactures two products: premium orange
juice and regular orange juice. Both products are made by
combining two types of oranges: grade 6 and grade 3. The
oranges in premium juice must have an average grade of at
least 5, those in regular juice, at least 4. During each of the
next two months Juiceco can sell up to 1,000 gallons of
premium juice and up to 2,000 gallons of regular juice.
Premium juice sells for $1.00 per gallon, while regular juice
sells for 80¢ per gallon. At the beginning of month 1, Juiceco
has 3,000 gallons of grade 6 oranges and 2,000 gallons of
grade 3 oranges. At the beginning of month 2, Juiceco may
purchase additional grade 3 oranges for 40¢ per gallon and
additional grade 6 oranges for 60¢ per gallon. Juice spoils at
the end of the month, so it makes no sense to make extra juice
during month 1 in the hopes of using it to meet month 2
demand. Oranges left at the end of month 1 may be used to
produce juice for month 2. At the end of month 1 a holding
cost of 5¢ is assessed against each gallon of leftover grade 3
oranges, and 10¢ against each gallon of leftover grade 6
oranges. In addition to the cost of the oranges, it costs 10¢ to
produce each gallon of (regular or premium) juice. Formulate
an LP that could be used to maximize the profit (revenues costs) earned by Juiceco during the next two months.
30 Graphically solve the following linear programming
problem:
max z 5x1 x2
s.t.
2x1 3x2 12
x1 3x2 0
x1 0, x2 0
31
Graphically find all solutions to the following LP:
min z x1 2x2
s.t.
x1 x2 4
x1 x2 8
x1 x2 6
x1, x2 0
32 Each day Eastinghouse produces capacitors during
three shifts: 8 A.M.–4 P.M., 4 P.M.–midnight, midnight–8 A.M.
The hourly salary paid to the employees on each shift, the
price charged for each capacitor made during each shift, and
118
CHAPTER
3 Introduction to Linear Programming
Hourly Salary
Defects
(per Capacitor)
Price
$12
$16
$20
4
3
2
$18
$22
$24
the number of defects in each capacitor produced during a
given shift are shown in Table 63. Each of the company’s 25
workers can be assigned to one of the three shifts. A worker
produces 10 capacitors during a shift, but because of
machinery limitations, no more than 10 workers can be
assigned to any shift. Each day, at most 250 capacitors can
be sold, and the average number of defects per capacitor for
the day’s production cannot exceed three. Formulate an LP
to maximize Eastinghouse’s daily profit (sales revenue labor cost).
33
Graphically find all solutions to the following LP:
max z 4x1 x2
s.t.
8x1 2x2 16
x1 x2 12
x1, x2 0
34 During the next three months Airco must meet (on
time) the following demands for air conditioners: month 1,
300; month 2, 400; month 3, 500. Air conditioners can be
produced in either New York or Los Angeles. It takes 1.5
hours of skilled labor to produce an air conditioner in Los
Angeles, and 2 hours in New York. It costs $400 to produce
an air conditioner in Los Angeles, and $350 in New York.
During each month, each city has 420 hours of skilled labor
available. It costs $100 to hold an air conditioner in inventory
for a month. At the beginning of month 1, Airco has 200 air
conditioners in stock. Formulate an LP whose solution will
tell Airco how to minimize the cost of meeting air
conditioner demands for the next three months.
35 Formulate the following as a linear programming
problem: A greenhouse operator plans to bid for the job of
providing flowers for city parks. He will use tulips, daffodils,
and flowering shrubs in three types of layouts. A Type 1
layout uses 30 tulips, 20 daffodils, and 4 flowering shrubs.
A Type 2 layout uses 10 tulips, 40 daffodils, and 3 flowering
shrubs. A Type 3 layout uses 20 tulips, 50 daffodils, and 2
flowering shrubs. The net profit is $50 for each Type 1
layout, $30 for each Type 2 layout, and $60 for each Type 3
layout. He has 1,000 tulips, 800 daffodils, and 100 flowering
shrubs. How many layouts of each type should be used to
yield maximum profit?
36 Explain how your formulation in Problem 35 changes
if both of the following conditions are added:
a The number of Type 1 layouts cannot exceed the
number of Type 2 layouts.
b There must be at least five layouts of each type.
37
Graphically solve the following LP problem:
min z 6x1 2x2
s.t.
3x1 2x2 12
2x1 4x2 12
x2 1
x1, x2 0
TA B L E
Demand
Sales Price
38 We produce two products: product 1 and product 2 on
two machines (machine 1 and machine 2). The number of
hours of machine time and labor depends on the machine
and the product as shown in Table 64.
The cost of producing a unit of each product is shown in
Table 65.
The number of labor hours and machine time available
this month are in Table 66.
This month, at least 200 units of product 1 and at least
240 units of product 2 must be produced. Also, at least half
of product 1 must be made on machine 1, and at least half
of product 2 must be made on machine 2. Determine how
we can minimize the cost of meeting our monthly demands.
39 Carrotco manufactures two products: 1 and 2. Each
unit of each product must be processed on machine 1 and
machine 2 and uses raw material 1 and raw material 2. The
resource usage is as in Table 67.
TA B L E
64
Machine time
Labor
TA B L E
Product 1
Machine 1
Product 2
Machine 1
Product 1
Machine 2
Product 2
Machine 2
0.75
0.75
0.75
0.75
0.8
1.2
0.9
1.9
Product 2
Machine 1
Product 1
Machine 2
Product 2
Machine 2
$0.40
$2.20
$4.00
$1.50
TA B L E
Product 1
Machine 1
65
Product 2
400
30
300
35
Thus, producing one unit of product 1 uses .6 unit of
machine 1 time, .4 unit of machine 2 time, 2 units of raw
material 1, and 1 unit of raw material 2. The sales price per
unit and demand for each product are in Table 68.
It costs $4 to purchase each unit of raw material 1 and
$5 to produce each unit of raw material 2. Unlimited
amounts of raw material can be purchased. Two hundred
units of machine 1 time and 300 units of machine 2 time are
available. Determine how Carrotco can maximize its profit.
40 A company assembles two products: A and B. Product
A sells for $11 per unit, and product B sells for $23 per unit.
A unit of product A requires 2 hours on assembly line 1 and
1 unit of raw material. A unit of product B requires 2 units
of raw material, 1 unit of A, and 2 hours on line 2. For line
1, 1,300 hours of time are available and 500 hours of time
are available on line 2. A unit of raw material may be bought
(for $5 a unit) or produced (at no cost) by using 2 hours of
time on line 1. Determine how to maximize profit.
41 Ann and Ben are getting divorced and want to
determine how to divide their joint property: retirement
account, home, summer cottage, investments, and miscellaneous assets. To begin, Ann and Ben are told to allocate
100 total points to the assets. Their allocation is as shown
in Table 69.
Assuming that all assets are divisible (that is, a fraction
of each asset may be given to each person), how should the
assets be allocated? Two criteria should govern the asset allocation:
Criteria 1 Each person should end up with the same number of points. This prevents Ann from envying Ben and Ben
from envying Ann.
Criteria 2 The total number of points received by Ann and
Ben should be maximized.
42 Eli Daisy manufactures two drugs in Los Angeles and
Indianapolis. The cost of manufacturing a pound of each
drug is shown in Table 70.
Hours Available
Machine 1
Machine 2
Labor
Product 1
If assets could not be split between people, what problem
arises?
66
Resource
68
200
200
400
TA B L E
69
Points
TA B L E
67
Machine 1
Machine 2
Raw material 1
Raw material 2
Item
Product 1
Product 2
0.6
0.4
2
1
0.4
0.3
1
2
Retirement account
Home
Summer cottage
Investments
Miscellaneous
Ann’s
Ben’s
50
20
15
10
5
40
30
10
10
10
Review Problems
119
TA B L E
70
City
Drug 1 Cost ($)
Drug 2 Cost ($)
4.10
4.00
4.50
5.20
Indianapolis
Los Angeles
TA B L E
71
City
Drug 1 Time (Hr)
Drug 2 Time (Hr)
.24
.24
.33
.33
Indianapolis
Los Angeles
The machine time (in hours) required to produce a pound
of each drug at each city is as in Table 71.
Daisy needs to produce at least 1,000 pounds of drug 1
and 2,000 pounds of drug 2 per week. The company has 500
hours per week of machine time in Indianapolis and 400
hours per week of machine time in Los Angeles. Determine
how Lilly can minimize the cost of producing the needed
drugs.
43 Daisy also produces Wozac in New York and Chicago.
Each month, it can produce up to 30 units in New York and
up to 35 units in Chicago. The cost of producing a unit each
month at each location is shown in Table 72.
The customer demands shown in Table 73 must be met
on time.
The cost of holding a unit in inventory (measured against
ending inventory) is shown in Table 74.
TA B L E
72
Month
New York
Chicago
8.62
8.70
8.90
8.40
8.75
9.00
Cost ($)
1
2
3
TA B L E
73
Month
Demand (Units)
1
2
3
At the beginning of month 1, we have 10 units of Wozac
in inventory. Determine a cost-minimizing schedule for the
next three months.
44 You have been put in charge of the Dawson Creek oil
refinery. The refinery produces gas and heating oil from
crude oil. Gas sells for $11 per barrel and must have an
average grade level of at least 9. Heating oil sells for $6 a
barrel and must have an average grade level of at least 7. At
most, 2,000 barrels of gas and 600 barrels of heating oil can
be sold.
Incoming crude can be processed by one of three methods. The per barrel yield and per barrel cost of each processing method are shown in Table 75.
For example, if we refine one barrel of incoming crude
by method 1, it costs us $3.40 and yields .2 barrels of grade
6, .2 barrels of grade 8, and .6 barrels of grade 10. These
costs include the costs of buying the crude oil.
Before being processed into gas and heating oil, grades
6 and 8 may be sent through the catalytic cracker to improve
their quality. For $1 per barrel, one barrel of grade 6 can be
“cracked” into a barrel of grade 8. For $1.50 per barrel, a
barrel of grade 8 can be cracked into a barrel of grade 10.
Determine how to maximize the refinery’s profit.
45 Currently we own 100 shares each of stocks 1 through
10. The original price we paid for these stocks, today’s price,
and the expected price in one year for each stock is shown
in Table 76.
We need money today and are going to sell some of our
stocks. The tax rate on capital gains is 30%. If we sell 50
shares of stock 1, then we must pay tax of .3 50(30 20) $150. We must also pay transaction costs of 1% on
each transaction. Thus, our sale of 50 shares of stock 1
would incur transaction costs of .01 50 30 $15. After
taxes and transaction costs, we must be left with $30,000
from our stock sales. Our goal is to maximize the expected
(before-tax) value in one year of our remaining stock. What
stocks should we sell? Assume it is all right to sell a fractional share of stock.
Group B
46 Gotham City National Bank is open Monday–Friday
from 9 A.M. to 5 P.M. From past experience, the bank knows
that it needs the number of tellers shown in Table 77. The
bank hires two types of tellers. Full-time tellers work 9–5
five days a week, except for 1 hour off for lunch. (The bank
determines when a full-time employee takes lunch hour, but
each teller must go between noon and 1 P.M. or between
1 P.M. and 2 P.M.) Full-time employees are paid (including
fringe benefits) $8/hour (this includes payment for lunch
hour). The bank may also hire part-time tellers. Each part-
50
60
40
TA B L E
Grade
TA B L E
74
Month
Holding Cost ($)
1
2
3
120
75
0.26
0.12
0.12
CHAPTER
3 Introduction to Linear Programming
Method
6
8
10
Cost ($ per Barrel)
1
2
3
.2
.3
.4
.3
.4
.4
.5
.3
.2
3.40
3.00
2.60
TA B L E
76
Price ($)
Stock
1
2
3
4
5
6
7
8
9
10
Tax rate (%)
Transaction cost (%)
TA B L E
Time
Period
9–10
10–11
11–Noon
Noon–1
1–2
2–3
3–4
4–5
Shares Owned
Purchase
Current
In One Year
100
100
100
100
100
100
100
100
100
100
0.3
0.01
20
25
30
35
40
45
50
55
60
65
30
34
43
47
49
53
60
62
64
66
36
39
42
45
51
55
63
64
66
70
77
Tellers
Required
4
3
4
6
5
6
8
8
time teller must work exactly 3 consecutive hours each day.
A part-time teller is paid $5/hour (and receives no fringe
benefits). To maintain adequate quality of service, the bank
has decided that at most five part-time tellers can be hired.
Formulate an LP to meet the teller requirements at minimum
cost. Solve the LP on a computer. Experiment with the LP
answer to determine an employment policy that comes close
to minimizing labor cost.
47† The Gotham City Police Department employs 30
police officers. Each officer works 5 days per week. The
crime rate fluctuates with the day of the week, so the number
of police officers required each day depends on which day
of the week it is: Saturday, 28; Sunday, 18; Monday, 18;
Tuesday, 24; Wednesday, 25; Thursday, 16; Friday, 21. The
police department wants to schedule police officers to
minimize the number whose days off are not consecutive.
Formulate an LP that will accomplish this goal. (Hint: Have
a constraint for each day of the week that ensures that the
proper number of officers are not working on the given day.)
48‡Alexis Cornby makes her living buying and selling corn.
On January 1, she has 50 tons of corn and $1,000. On the
first day of each month Alexis can buy corn at the following
prices per ton: January, $300; February, $350; March, $400;
April, $500. On the last day of each month, Alexis can sell
corn at the following prices per ton: January, $250; February,
$400; March, $350; April, $550. Alexis stores her corn in a
warehouse that can hold at most 100 tons of corn. She must
be able to pay cash for all corn at the time of purchase. Use
linear programming to determine how Alexis can maximize
her cash on hand at the end of April.
49§At the beginning of month 1, Finco has $400 in cash. At
the beginning of months 1, 2, 3, and 4, Finco receives certain
revenues, after which it pays bills (see Table 78). Any money
left over may be invested for one month at the interest rate
of 0.1% per month; for two months at 0.5% per month; for
three months at 1% per month; or for four months at 2% per
month. Use linear programming to determine an investment
strategy that maximizes cash on hand at the beginning of
month 5.
50 City 1 produces 500 tons of waste per day, and city 2
produces 400 tons of waste per day. Waste must be
incinerated at incinerator 1 or 2, and each incinerator can
process up to 500 tons of waste per day. The cost to incinerate
waste is $40/ton at incinerator 1 and $30/ton at 2.
TA B L E
78
Month
Revenues ($)
Bills ($)
400
800
300
300
600
500
500
250
1
2
3
4
†
Based on Rothstein (1973).
‡
Based on Charnes and Cooper (1955).
Based on Robichek, Teichroew, and Jones (1965).
§
Review Problems
121
Incineration reduces each ton of waste to 0.2 tons of debris,
which must be dumped at one of two landfills. Each landfill
can receive at most 200 tons of debris per day. It costs $3
per mile to transport a ton of material (either debris or
waste). Distances (in miles) between locations are shown in
Table 79. Formulate an LP that can be used to minimize the
total cost of disposing of the waste of both cities.
51† Silicon Valley Corporation (Silvco) manufactures
transistors. An important aspect of the manufacture of
transistors is the melting of the element germanium (a major
component of a transistor) in a furnace. Unfortunately, the
melting process yields germanium of highly variable quality.
Two methods can be used to melt germanium; method 1
costs $50 per transistor, and method 2 costs $70 per transistor. The qualities of germanium obtained by methods 1
and 2 are shown in Table 80. Silvco can refire melted germanium in an attempt to improve its quality. It costs $25 to
refire the melted germanium for one transistor. The results
of the refiring process are shown in Table 81. Silvco has sufficient furnace capacity to melt or refire germanium for at
most 20,000 transistors per month. Silvco’s monthly demands are for 1,000 grade 4 transistors, 2,000 grade 3 transistors, 3,000 grade 2 transistors, and 3,000 grade 1 transistors. Use linear programming to minimize the cost of
producing the needed transistors.
TA B L E
79
Incinerator
City
1
2
1
2
30
36
5
42
Landfill
Incinerator
1
2
1
2
5
9
8
6
TA B L E
80
Percent Yielded
by Melting
Grade of‡
Melted
Germanium
Method 1
Method 2
Defective
1
2
3
4
30
30
20
15
5
20
20
25
20
15
‡
Note: Grade 1 is poor; grade 4 is excellent.
The quality of the germanium dictates the
quality of the manufactured transistor.
TA B L E
81
Percent Yielded by Refiring
Refired Grade
of Germanium
Defective
Grade 1
Grade 2
Grade 3
Defective
1
2
3
4
30
25
15
20
10
0
30
30
20
20
0
0
40
30
30
0
0
0
50
50
Cost ($)
Pulp Content (%)
5
6
8
10
15
20
30
40
TA B L E
82
Input
Box board
Tissue paper
Newsprint
Book paper
52‡ A paper-recycling plant processes box board, tissue
paper, newsprint, and book paper into pulp that can be used
to produce three grades of recycled paper (grades 1, 2, and
3). The prices per ton and the pulp contents of the four
inputs are shown in Table 82. Two methods, de-inking and
asphalt dispersion, can be used to process the four inputs
into pulp. It costs $20 to de-ink a ton of any input. The
process of de-inking removes 10% of the input’s pulp,
leaving 90% of the original pulp. It costs $15 to apply
asphalt dispersion to a ton of material. The asphalt dispersion
process removes 20% of the input’s pulp. At most, 3,000
tons of input can be run through the asphalt dispersion
process or the de-inking process. Grade 1 paper can only be
produced with newsprint or book paper pulp; grade 2 paper,
only with book paper, tissue paper, or box board pulp; and
grade 3 paper, only with newsprint, tissue paper, or box
board pulp. To meet its current demands, the company needs
500 tons of pulp for grade 1 paper, 500 tons of pulp for
grade 2 paper, and 600 tons of pulp for grade 3 paper.
Formulate an LP to minimize the cost of meeting the
demands for pulp.
53 Turkeyco produces two types of turkey cutlets for sale
to fast-food restaurants. Each type of cutlet consists of white
meat and dark meat. Cutlet 1 sells for $4/lb and must consist
of at least 70% white meat. Cutlet 2 sells for $3/lb and must
consist of at least 60% white meat. At most, 50 lb of cutlet
1 and 30 lb of cutlet 2 can be sold. The two types of turkey
used to manufacture the cutlets are purchased from the
GobbleGobble Turkey Farm. Each type 1 turkey costs $10
and yields 5 lb of white meat and 2 lb of dark meat. Each
type 2 turkey costs $8 and yields 3 lb of white meat and
3 lb of dark meat. Formulate an LP to maximize Turkeyco’s
profit.
54 Priceler manufactures sedans and wagons. The number
of vehicles that can be sold each of the next three months
†
Based on Smith (1965).
‡
Based on Glassey and Gupta (1975).
122
CHAPTER
3 Introduction to Linear Programming
TA B L E
83
Month
Sedans
Wagons
1
2
3
1,100
1,500
1,200
600
700
50
are listed in Table 83. Each sedan sells for $8,000, and each
wagon sells for $9,000. It costs $6,000 to produce a sedan
and $7,500 to produce a wagon. To hold a vehicle in
inventory for one month costs $150 per sedan and $200 per
wagon. During each month, at most 1,500 vehicles can be
produced. Production line restrictions dictate that during
month 1 at least two-thirds of all cars produced must be
sedans. At the beginning of month 1, 200 sedans and 100
wagons are available. Formulate an LP that can be used to
maximize Priceler’s profit during the next three months.
55 The production-line employees at Grummins Engine
work four days a week, 10 hours a day. Each day of the
week, (at least) the following numbers of line employees are
needed: Monday–Friday, 7 employees; Saturday and Sunday,
3 employees. Grummins has 11 production-line employees.
Formulate an LP that can be used to maximize the number
of consecutive days off received by the employees. For
example, a worker who gets Sunday, Monday, and
Wednesday off receives two consecutive days off.
56 Bank 24 is open 24 hours per day. Tellers work two
consecutive 6-hour shifts and are paid $10 per hour. The
possible shifts are as follows: midnight–6 A.M., 6 A.M.–noon,
noon–6 P.M., 6 P.M.–midnight. During each shift, the
following numbers of customers enter the bank: midnight–
6 A.M., 100; 6 A.M.–noon, 200; noon–6 P.M., 300;
6 P.M.–midnight, 200. Each teller can serve up to 50
customers per shift. To model a cost for customer
impatience, we assume that any customer who is present at
the end of a shift “costs” the bank $5. We assume that by
midnight of each day, all customers must be served, so each
day’s midnight–6 A.M. shift begins with 0 customers in the
bank. Formulate an LP that can be used to minimize the
sum of the bank’s labor and customer impatience costs.
57† Transeast Airlines flies planes on the following route:
L.A.–Houston–N.Y.–Miami–L.A. The length (in miles) of
each segment of this trip is as follows: L.A.–Houston, 1,500
miles; Houston–N.Y., 1,700 miles; N.Y.–Miami, 1,300
miles; Miami–L.A., 2,700 miles. At each stop, the plane
may purchase up to 10,000 gallons of fuel. The price of fuel
at each city is as follows: L.A., 88¢; Houston, 15¢; N.Y.,
$1.05; Miami, 95¢. The plane’s fuel tank can hold at most
12,000 gallons. To allow for the possibility of circling over
a landing site, we require that the ending fuel level for each
leg of the flight be at least 600 gallons. The number of
gallons used per mile on each leg of the flight is
1 (average fuel level on leg of flight/2,000)
To simplify matters, assume that the average fuel level on
any leg of the flight is
(Fuel level at start of leg) (fuel level at end of leg)
Formulate an LP that can be used to minimize the fuel cost
incurred in completing the schedule.
58‡ To process income tax forms, the IRS first sends each
form through the data preparation (DP) department, where
information is coded for computer entry. Then the form is
sent to data entry (DE), where it is entered into the computer.
During the next three weeks, the following number of forms
will arrive: week 1, 40,000; week 2, 30,000; week 3, 60,000.
The IRS meets the crunch by hiring employees who work
40 hours per week and are paid $200 per week. Data
preparation of a form requires 15 minutes, and data entry of
a form requires 10 minutes. Each week, an employee is
assigned to either data entry or data preparation. The IRS
must complete processing of all forms by the end of week
5 and wants to minimize the cost of accomplishing this
goal. Formulate an LP that will determine how many workers
should be working each week and how the workers should
be assigned over the next five weeks.
59 In the electrical circuit of Figure 11, It current (in
amperes) flowing through resistor t, Vt voltage drop (in
volts) across resistor t, and Rt resistance (in ohms) of
resistor t. Kirchoff’s Voltage and Current Laws imply that
V1 V2 V3 and I1 I2 I3 I4. The power dissipated
by the current flowing through resistor t is I2t Rt. Ohm’s Law
implies that Vt ItRt. The two parts of this problem should
be solved independently.
a Suppose you are told that I1 4, I2 6, I3 8, and
I4 18 are required. Also, the voltage drop across each
resistor must be between 2 and 10 volts. Choose the Rt’s
to minimize the total dissipated power. Formulate an LP
whose solution will solve your problem.
b Suppose you are told that V1 6, V2 6, V3 6,
and V4 4 are required. Also, the current flowing
through each resistor must be between 2 and 6 amperes.
Choose the Rt’s to minimize the total dissipated power.
Formulate an LP whose solution will solve your
1
problem. (Hint: Let (t 1, 2, 3, 4) be your decision
R
t
variables.)
60 The mayor of Llanview is trying to determine the
number of judges needed to handle the judicial caseload.
FIGURE
11
R1
I1
R2
I2
R3
I3
R4
I4
†
Based on Darnell and Loflin (1977).
‡
Based on Lanzenauer et al. (1987).
Review Problems
123
TA B L E
84
Month
Hours
January
February
March
April
May
June
July
August
September
October
November
December
400
300
200
600
800
300
200
400
300
200
100
300
to determine how E.J. can minimize the cost of paying its
bills on time.
Group C
62‡ Olé Oil produces three products: heating oil, gasoline,
and jet fuel. The average octane levels must be at least 4.5
for heating oil, 8.5 for gas, and 7.0 for jet fuel. To produce
these products Olé purchases two types of oil: crude 1 (at
$12 per barrel) and crude 2 (at $10 per barrel). Each day, at
most 10,000 barrels of each type of oil can be purchased.
Before crude can be used to produce products for sale,
it must be distilled. Each day, at most 15,000 barrels of oil
can be distilled. It costs 10¢ to distill a barrel of oil. The result of distillation is as follows: (1) Each barrel of crude 1
yields 0.6 barrel of naphtha, 0.3 barrel of distilled 1, and 0.1
barrel of distilled 2. (2) Each barrel of crude 2 yields 0.4
barrel of naphtha, 0.2 barrel of distilled 1, and 0.4 barrel of
distilled 2. Distilled naphtha can be used only to produce
gasoline or jet fuel. Distilled oil can be used to produce
heating oil or it can be sent through the catalytic cracker (at
a cost of 15¢ per barrel). Each day, at most 5,000 barrels of
distilled oil can be sent through the cracker. Each barrel
of distilled 1 sent through the cracker yields 0.8 barrel of
cracked 1 and 0.2 barrel of cracked 2. Each barrel of distilled 2 sent through the cracker yields 0.7 barrel of cracked
1 and 0.3 barrel of cracked 2. Cracked oil can be used to
produce gasoline and jet fuel but not to produce heating oil.
The octane level of each type of oil is as follows: naphtha, 8; distilled 1, 4; distilled 2, 5; cracked 1, 9; cracked 2, 6.
All heating oil produced can be sold at $14 per barrel;
all gasoline produced, $18 per barrel; and all jet fuel produced, $16 per barrel. Marketing considerations dictate that
at least 3,000 barrels of each product must be produced
daily. Formulate an LP to maximize Olé’s daily profit.
61† E.J. Korvair Department Store has $1,000 in available
cash. At the beginning of each of the next six months, E.J.
will receive revenues and pay bills as shown in Table 85. It
is clear that E.J. will have a short-term cash flow problem
until the store receives revenues from the Christmas
shopping season. To solve this problem, E.J. must borrow
money.
At the beginning of July, E.J. may take out a six-month
loan. Any money borrowed for a six-month period must be
paid back at the end of December along with 9% interest
(early payback does not reduce the interest cost of the loan).
E.J. may also meet cash needs through month-to-month borrowing. Any money borrowed for a one-month period incurs
an interest cost of 4% per month. Use linear programming
63 Donald Rump is the international funds manager for
Countribank. Each day Donald’s job is to determine how the
bank’s current holdings of dollars, pounds, marks, and yen
should be adjusted to meet the day’s currency needs. Today
the exchange rates between the various currencies are given
in Table 86. For example, one dollar can be converted to
.58928 pounds, or one pound can be converted to 1.697
dollars.
At the beginning of the day, Countribank has the currency holdings given in Table 87.
At the end of the day, Countribank must have at least the
amounts of each currency given in Table 88.
Donald’s goal is to each day transfer funds in a way that
makes currency holdings satisfy the previously listed mini-
During each month of the year it is estimated that the number
of judicial hours needed is as given in Table 84.
a Each judge works all 12 months and can handle as
many as 120 hours per month of casework. To avoid creating a backlog, all cases must be handled by the end of
December. Formulate an LP whose solution will determine how many judges Llanview needs.
b If each judge received one month of vacation each
year, how would your answer change?
TA B L E
Month
July
August
September
October
November
December
85
Revenues ($)
Bills ($)
1,000
2,000
2,000
4,000
7,000
9,000
5,000
5,000
6,000
2,000
2,000
1,000
†
Based on Robichek, Teichroew, and Jones (1965).
124
CHAPTER
3 Introduction to Linear Programming
TA B L E
86
To
From
Dollars
Pounds
Marks
Yen
‡
Dollars
1
1.697
.57372
.007233
Pounds
Marks
Yen
.58928
1.743
2.9579
1
.0126
138.3
234.7
79.346
1
1
.33808
.00426
Based on Garvin et al. (1957).
TA B L E
87
TA B L E
88
Currency
Units
(in Billions)
Currency
Units
(in Billions)
Dollars
Pounds
Marks
Yen
8
1
8
0
Dollars
Pounds
Marks
Yen
6
3
1
10
mums, and maximizes the dollar value of the currency holdings at the end of the day.
To figure out the dollar value of, say, one pound, average the two conversion rates. Thus, one pound is worth approximately
1.697 (1/.58928)
1.696993 dollars
REFERENCES
Each of the following seven books is a cornucopia of interesting LP formulations:
Bradley, S., A. Hax, and T. Magnanti. Applied Mathematical
Programming. Reading, Mass.: Addison-Wesley, 1977.
Lawrence, K., and S. Zanakis. Production Planning and
Scheduling: Mathematical Programming Applications.
Atlanta, Ga: Industrial Engineering and Management
Press, 1984.
Murty, K. Operations Research: Deterministic Optimization
Models. Saddle River, N.J.: Prentice-Hall, 1995.
Schrage, L. Linear Integer and Quadratic Programming
With LINDO. Palo Alto, Calif.: Scientific Press, 1986.
Shapiro, J. Optimization Models for Planning and Allocation: Text and Cases in Mathematical Programming.
New York: Wiley, 1984.
Wagner, H. Principles of Operations Research, 2d ed. Englewood Cliffs, N.J.: Prentice Hall, 1975.
Williams, H. Model Building in Mathematical Programming, 2d ed. New York: Wiley, 1985.
Baker, K. “Scheduling a Full-Time Work Force to Meet
Cyclic Staffing Requirements,” Management Science
20(1974):1561–1568. Presents a method (other than LP)
for scheduling personnel to meet cyclic workforce
requirements.
Balintfy, J. “A Mathematical Programming System for Food
Management Applications,” Interfaces 6(no. 1, pt 2,
1976):13–31. Discusses menu planning models.
Carino, H., and C. Lenoir. “Optimizing Wood Procurement
in Cabinet Manufacturing,” Interfaces 18(no. 2,
1988):11–19.
Chandy, K. “Pricing in the Government Bond Market,” Interfaces 16(1986):65–71.
Charnes, A., and W. Cooper. “Generalization of the Warehousing Model,” Operational Research Quarterly
6(1955):131–172.
Cheung, H., and J. Auger. “Linear Programming and Land
Use Allocation,” Socio-Economic Planning Science
10(1976):43–45.
Darnell, W., and C. Loflin. “National Airlines Fuel Management and Allocation Model,” Interfaces 7(no. 3,
1977):1–15.
Dobson, G., and S. Kalish. “Positioning and Pricing a Product Line,” Marketing Science 7(1988):107–126.
Fabian, T. “A Linear Programming Model of Integrated
Iron and Steel Production,” Management Science,
4(1958):415–449.
Forgionne, G. “Corporate MS Activities: An Update,” Interfaces 13(1983):20–23. Concerns the fraction of large
firms using linear programming (and other operations
research techniques).
Franklin, A., and E. Koenigsberg. “Computed School Assignments in a Large District,” Operations Research
21(1973):413–426.
Garvin, W., et al. “Applications of Linear Programming in
the Oil Industry,” Management Science 3(1957):
407–430.
Glassey, R., and V. Gupta. “An LP Analysis of Paper Recycling.” In Studies in Linear Programming, ed. H. Salkin
and J. Saha. New York: North-Holland, 1975.
Hartley, R. “Decision Making When Joint Products Are Involved,” Accounting Review (1971):746–755.
Heady, E., and A. Egbert. “Regional Planning of Efficient
Agricultural Patterns,” Econometrica 32(1964):374–386.
Hilal, S., and W. Erickson. “Matching Supplies to Save
Lives: Linear Programming the Production of Heart
Valves,” Interfaces 11(1981):48–56.
Jain, S., K. Stott, and E. Vasold. “Orderbook Balancing Using a Combination of LP and Heuristic Techniques,” Interfaces 9(no. 1, 1978):55–67.
Krajewski, L., L. Ritzman, and P. McKenzie. “Shift Scheduling in Banking Operations: A Case Application,” Interfaces, 10(no. 2, 1980):1–8.
Love, R., and J. Hoey, “Management Science Improves Fast
Food Operations,” Interfaces, 20(no. 2, 1990): 21–29.
Magoulas, K., and D. Marinos-Kouris. “Gasoline Blending
LP,” Oil and Gas Journal (July 18, 1988):44–48.
Moondra, S. “An LP Model for Workforce Scheduling in
Banks,” Journal of Bank Research (1976).
Myers, S., and C. Pogue. “A Programming Approach to
Corporate Financial Management,” Journal of Finance
29(1974):579–599.
Neave, E., and J. Wiginton. Financial Management: Theory
and Strategies. Englewood Cliffs, N.J.: Prentice Hall,
1981.
Robbins, W., and N. Tuntiwonpiboon. “Linear Programming
a Useful Tool in Case-Mix Management,” HealthCare
Financial Management (1989):114–117.
Robichek, A., D. Teichroew, and M. Jones. “Optimal ShortTerm Financing Decisions,” Management Science
12(1965):1–36.
Rohn, E. “A New LP Approach to Bond Portfolio Management,” Journal of Financial and Quantitative Analysis
22(1987):439–467.
References
125
Rothstein, M. “Hospital Manpower Shift Scheduling by
Mathematical Programming,” Health Services Research (1973).
Smith, S. “Planning Transistor Production by Linear
Programming,” Operations Research 13(1965):
132–139.
Stigler, G. “The Cost of Subsistence,” Journal of Farm
Economics 27(1945). Discusses the diet problem.
126
CHAPTER
3 Introduction to Linear Programming
Sullivan, R., and S. Secrest. “A Simple Optimization DSS
for Production Planning at Dairyman’s Cooperative
Creamery Association,” Interfaces 15(no. 5, 1985):
46–54.
Weingartner, H. Mathematical Programming and the Analysis of Capital Budgeting. Englewood Cliffs, N.J.: Prentice Hall, 1963.
4
The Simplex Algorithm
and Goal Programming
In Chapter 3, we saw how to solve two-variable linear programming problems graphically. Unfortunately, most real-life LPs have many variables, so a method is needed to solve LPs with
more than two variables. We devote most of this chapter to a discussion of the simplex algorithm, which is used to solve even very large LPs. In many industrial applications, the simplex
algorithm is used to solve LPs with thousands of constraints and variables.
In this chapter, we explain how the simplex algorithm can be used to find optimal solutions
to LPs. We also detail how two state-of-the-art computer packages (LINDO and LINGO) can
be used to solve LPs. Briefly, we also discuss Karmarkar’s pioneering approach for solving
LPs. We close the chapter with an introduction to goal programming, which enables the decision maker to consider more than one objective function.
4.1
How to Convert an LP to Standard Form
We have seen that an LP can have both equality and inequality constraints. It also can
have variables that are required to be nonnegative as well as those allowed to be unrestricted in sign (urs). Before the simplex algorithm can be used to solve an LP, the
LP must be converted into an equivalent problem in which all constraints are equations and all variables are nonnegative. An LP in this form is said to be in standard
form.†
To convert an LP into standard form, each inequality constraint must be replaced by
an equality constraint. We illustrate this procedure using the following problem.
EXAMPLE
1
Leather Limited
Leather Limited manufactures two types of belts: the deluxe model and the regular model.
Each type requires 1 sq yd of leather. A regular belt requires 1 hour of skilled labor, and
a deluxe belt requires 2 hours. Each week, 40 sq yd of leather and 60 hours of skilled labor are available. Each regular belt contributes $3 to profit and each deluxe belt, $4. If
we define
x1 number of deluxe belts produced weekly
x2 number of regular belts produced weekly
†
Throughout the first part of the chapter we assume that all variables must be nonnegative (0). The conversion of urs variables to nonnegative variables is discussed in Section 4.12.
the appropriate LP is
max z 4x1 3x2
s.t.
x1 x2 40
s.t.
2x1 x2 60
x1, x2 0
(LP 1)
(Leather constraint)
(Labor constraint)
(1)
(2)
How can we convert (1) and (2) to equality constraints? We define for each constraint
a slack variable si(si slack variable for ith constraint), which is the amount of the resource unused in the ith constraint. Because x1 x2 sq yd of leather are being used, and
40 sq yd are available, we define s1 by
s1 40 x1 x2
or
x1 x2 s1 40
or
2x1 x2 s2 60
Similarly, we define s2 by
s2 60 2x1 x2
Observe that a point (x1, x2) satisfies the ith constraint if and only if si 0. For example,
x1 15, x2 20 satisfies (1) because s1 40 15 20 5 0.
Intuitively, (1) is satisfied by the point (15, 20), because s1 5 sq yd of leather are
unused. Similarly, (15, 20) satisfies (2), because s2 60 2(15) 20 10 labor hours
are unused. Finally, note that the point x1 x2 25 fails to satisfy (2), because s2 60 2(25) 25 15 indicates that (25, 25) uses more labor than is available.
In summary, to convert (1) to an equality constraint, we replace (1) by s1 40 x1 x2 (or x1 x2 s1 40) and s1 0. To convert (2) to an equality constraint, we
replace (2) by s2 60 2x1 x2 (or 2x1 x2 s2 60) and s2 0. This converts
LP 1 to
max z 4x1 3x2
s.t.
x1 x2 s1 s2 40
s.t.
2x1 x2 s1 s2 60
x1, x2, s1, s2 0
(LP 1)
Note that LP 1 is in standard form. In summary, if constraint i of an LP is a constraint,
then we convert it to an equality constraint by adding a slack variable si to the ith constraint and adding the sign restriction si 0.
To illustrate how a constraint can be converted to an equality constraint, let’s consider the diet problem of Section 3.4.
min z 50x1 20x2 30x3 80x4
s.t.
400x1 200x2 150x3 500x4 500
s.t.
3x1 2x2
6
s.t.
2x1 2x2 4x3 4x4 10
s.t.
2x1 4x2 x3 5x4 8
x1, x2, x3, x4 0
(Calorie constraint)
(Chocolate constraint)
(Sugar constraint)
(Fat constraint)
(3)
(4)
(5)
(6)
To convert the ith constraint to an equality constraint, we define an excess variable
(sometimes called a surplus variable) ei. (ei will always be the excess variable for the ith
128
CHAPTER
4 The Simplex Algorithm and Goal Programming
constraint.) We define ei to be the amount by which the ith constraint is oversatisfied.
Thus, for the diet problem,
e1 400x1 200x2 150x3 500x4 500,
or
(3)
400x1 200x2 150x3 500x4 e1 500
e2 3x1 2x2 6,
or
3x1 2x2 e2 6
(4)
e3 2x1 2x2 4x3 4x4 10,
or
2x1 2x2 4x3 4x4 e3 10 (5)
e4 2x1 4x2 x3 5x4 8,
or
2x1 4x2 x3 5x4 e4 8
(6)
A point (x1, x2, x3, x4) satisfies the ith constraint if and only if ei is nonnegative. For
example, from (4), e2 0 if and only if 3x1 2x2 6. For a numerical example, consider the point x1 2, x3 4, x2 x4 0, which satisfies all four of the diet problem’s
constraints. For this point,
e1
e2
e3
e4
400(2) 150(4) 500 900 0
3(2) 6 0 0
2(2) 4(4) 10 10 0
2(2) 4 8 0 0
As another example, consider x1 x2 1, x3 x4 0. This point is infeasible; it violates the chocolate, sugar, and fat constraints. The infeasibility of this point is indicated by
e2 3(1) 2(1) 6 1 0
e3 2(1) 2(1) 10 6 0
e4 2(1) 4(1) 8 2 0
Thus, to transform the diet problem into standard form, replace (3) by (3); (4) by (4);
(5) by (5); and (6) by (6). We must also add the sign restrictions ei 0 (i 1, 2, 3, 4).
The resulting LP is in standard form and may be written as
min z 50x1 20x2 30x3 80x4
s.t.
400x1 200x2 150x3 500x4 e1 s.t.
3x1 2x2 150x3 500x4 e1 s.t.
2x1 2x2 4x3 4x4 e1 s.t.
2x1 4x2 x3 5x4 e1 xi, ei 0
(i 1, 2, 3, 4)
e1
e2
e2
e2
e1
e2
e3
e3
e1
e2
e2
e4
500
6
10
8
In summary, if the ith constraint of an LP is a constraint, then it can be converted
to an equality constraint by subtracting an excess variable ei from the ith constraint and
adding the sign restriction ei 0.
If an LP has both and constraints, then simply apply the procedures we have described to the individual constraints. As an example, let’s convert the short-term financial
planning model of Section 3.7 to standard form. Recall that the original LP was
max z 20x1 15x2
s.t.
x1 35x2 100
s.t.
x1 35x2 100
s.t.
50x1 35x2 6,000
s.t.
20x1 15x2 2,000
x1, x2 0
4 . 1 How to Convert an LP to Standard Form
129
Following the procedures described previously, we transform this LP into standard form
by adding slack variables s1, s2, and s3, respectively, to the first three constraints and subtracting an excess variable e4 from the fourth constraint. Then we add the sign restrictions
s1 0, s2 0, s3 0, and e4 0. This yields the following LP in standard form:
max z 20x1 15x2
s.t.
x1 15x2 s1 s1 s1 e4 100
s.t.
50x1 15x2 s1 s2 s1 e4 100
s.t.
50x1 35x2 s1 s1 s3 e4 6,000
s.t.
20x1 15x2 s1 s1 s1 e4 2,000
xi 0 (i 1, 2);
si 0 (i 1, 2, 3);
e4 0
Of course, we could easily have labeled the excess variable for the fourth constraint e1
(because it is the first excess variable). We chose to call it e4 rather than e1 to indicate that
e4 is the excess variable for the fourth constraint.
PROBLEMS
Group A
3
1 Convert the Giapetto problem (Example 1 in Chapter 3)
to standard form.
2 Convert the Dorian problem (Example 2 in Chapter 3)
to standard form.
4.2
Convert the following LP to standard form:
min z 3x1 x2
s.t.
x1 x2 3
s.t.
x1 x2 4
s.t.
2x1 x2 3
x1, x2 0
Preview of the Simplex Algorithm
Suppose we have converted an LP with m constraints into standard form. Assuming that
the standard form contains n variables (labeled for convenience x1, x2, . . . , xn), the standard form for such an LP is
max z c1x1 c2x2 (or min)
s.t.
a11x1 a12x2 s.t.
a21x1 a22x2 s.t.
cnxn
a1nxn b1
a2nxn b2
am1x1 am2x2
amnxn bm
xi 0 (i 1, 2, . . . , n)
If we define
A
130
CHAPTER
a11
a12
a12
a22
a1n
a2n
a1n
am2
amn
4 The Simplex Algorithm and Goal Programming
(7)
and
b1
b2
x1
x2
x
,
b
xn
bm
the constraints for (7) may be written as the system of equations Ax b. Before proceeding further with our discussion of the simplex algorithm, we must define the concept
of a basic solution to a linear system.
Basic and Nonbasic Variables
Consider a system Ax b of m linear equations in n variables (assume n m).
DEFINITION ■
A basic solution to Ax b is obtained by setting n m variables equal to 0 and
solving for the values of the remaining m variables. This assumes that setting the
n m variables equal to 0 yields unique values for the remaining m variables or,
equivalently, the columns for the remaining m variables are linearly independent.
■
To find a basic solution to Ax b, we choose a set of n m variables (the nonbasic
variables, or NBV) and set each of these variables equal to 0. Then we solve for the values of the remaining n (n m) m variables (the basic variables, or BV) that satisfy Ax b.
Of course, the different choices of nonbasic variables will lead to different basic solutions. To illustrate, we find all the basic solutions to the following system of two equations in three variables:
x1 x2 x3 3
x1 x2 x3 1
(8)
We begin by choosing a set of 3 2 1 (3 variables, 2 equations) nonbasic variables.
For example, if NBV {x3}, then BV {x1, x2}. We obtain the values of the basic variables by setting x3 0 and solving
x1 x2 3
x1 x2 1
We find that x1 2, x2 1. Thus, x1 2, x2 1, x3 0 is a basic solution to (8). However, if we choose NBV {x1} and BV {x2, x3}, we obtain the basic solution x1 0,
x2 3, x3 2. If we choose NBV {x2}, we obtain the basic solution x1 3, x2 0,
x3 1. The reader should verify these results.
Some sets of m variables do not yield a basic solution. For example, consider the following linear system:
x1 2x2 x3 1
2x1 4x2 x3 3
If we choose NBV {x3} and BV {x1, x2}, the corresponding basic solution would
be obtained by solving
x1 2x2 1
2x1 4x2 3
4 . 2 Preview of the Simplex Algorithm
131
Because this system has no solution, there is no basic solution corresponding to BV {x1, x2}.
Feasible Solutions
A certain subset of the basic solutions to the constraints Ax b of an LP plays an important role in the theory of linear programming.
DEFINITION ■
Any basic solution to (7) in which all variables are nonnegative is a basic feasible
solution (or bfs). ■
Thus, for an LP with the constraints given by (8), the basic solutions x1 2, x2 1,
x3 0, and x1 0, x2 3, x3 2 are basic feasible solutions, but the basic solution
x1 3, x2 0, x3 1 fails to be a basic solution (because x3 0).
In the rest of this section, we assume that all LPs are in standard form. Recall from
Section 3.2 that the feasible region for any LP is a convex set. Let S be the feasible region for an LP in standard form. Recall that a point P is an extreme point of S if all line
segments that contain P and are completely contained in S have P as an endpoint. It turns
out that the extreme points of an LP’s feasible region and the LP’s basic feasible solutions
are actually one and the same. More formally,
THEOREM
1
A point in the feasible region of an LP is an extreme point if and only if it is a basic feasible solution to the LP.
See Luenburger (1984) for a proof of Theorem 1.
To illustrate the correspondence between extreme points and basic feasible solutions
outlined in Theorem 1, let’s look at the Leather Limited example of Section 4.1. Recall
that the LP was
max z 4x1 3x2
s.t.
x1 x2 40
s.t.
2x1 x2 60
x1, x2 0
(LP 1)
(1)
(2)
By adding slack variables s1 and s2, respectively, to (1) and (2), we obtain LP 1 in standard form:
max z 4x1 3x2
s.t.
x1 x2 s1 s2 40
s.t.
2x1 x2 s1 s2 60
x1, x2, s1, s2 0
(LP 1)
The feasible region for the Leather Limited problem is graphed in Figure 1. Both inequalities are satisfied: (1) by all points below or on the line AB(x1 x2 40), and
(2) by all points on or below the line CD(2x1 x2 60). Thus, the feasible region for
LP 1 is the shaded region bounded by the quadrilateral BECF. The extreme points of the
feasible region are B (0, 40), C (30, 0), E (20, 20), and F (0, 0).
132
CHAPTER
4 The Simplex Algorithm and Goal Programming
x2
60
D
50
40
B
30
E
20
FIGURE
1
Feasible Region for
Leather Limited
10
C
F
10
20
30
A
40
x1
50
60
Table 1 shows the correspondence between the basic feasible solutions to LP 1 and
the extreme points of the feasible region for LP 1. This example should make it clear that
the basic feasible solutions to the standard form of an LP correspond in a natural fashion
to the LP’s extreme points.
In the context of the Leather Limited example, it is easy to show why any bfs is an extreme point. The converse is harder! We now show that for the LL problem, any bfs is
an extreme point. Any point in the feasible region for LL may be specified as a fourdimensional column vector with the four elements of the vector denoting x1, x2, s1, and
s2, respectively. Consider the bfs B with BV {x2, s2}. If B is not an extreme point, then
there exists two distinct feasible points v1 and v2 and non-negative numbers 1 and 2 satisfying 0 i 1 and 1 2 1 such that
0
40
0
20
1v1
2v2
Clearly, both v1 and v2 must both have x1 s2 0. But because v1 and v2 are both
feasible, the values of x2 and s2 for both v1 and v2 can be determined by solving x2 40
and x2 s2 60. These equations have a unique solution (because columns corresponding to basic variables x2 and s2 are linearly independent). This shows that v1 v2,
so B is indeed an extreme point.
TA B L E
1
Correspondence between Basic Feasible Solutions and Corner Points for Leather Limited
Basic
Variables
Nonbasic
Variables
Basic
Feasible Solution
Corresponds to
Corner Point
x1, x2
x1, s1
x1, s2
x2, s1
x2, s2
s1, s2
s1, s2
x2, s2
x2, s1
x1, s2
x1, s1
x1, x2
s1 s2 0, x1 x2 20
x2 s2 0, x1 30, s1 10
x2 s1 0, x1 40, s2 20
x1 s2 0, s1 20, x2 60
x1 s1 0, x2 40, s2 20
x1 x2 0, s1 40, s2 60
E
C
Not a bfs because s2 0
Not a bfs because s1 0
B
F
4 . 2 Preview of the Simplex Algorithm
133
We note that more than one set of basic variables may correspond to a given extreme
point. If this is the case, then we say the LP is degenerate. See Section 4.11 for a discussion of the impact of degeneracy on the simplex algorithm.
We will soon see that if an LP has an optimal solution, then it has a bfs that is
optimal. This is important because any LP has only a finite number of bfs’s. Thus we
can find the optimal solution to an LP by searching only a finite number of points.
Because the feasible region for any LP contains an infinite number of points, this
helps us a lot!
Before explaining why any LP that has an optimal solution has an optimal bfs, we need
to define the concept of a direction of unboundedness.
4.3
Direction of Unboundedness
Consider an LP in standard form with feasible region S and constraints Ax b and x 0. Assuming that our LP has n variables, 0 represents an n-dimensional column vector
consisting of all 0’s. A nonzero vector d is a direction of unboundedness if for all xS
and any c 0, x cdS. In short, if we are in the LP’s feasible region, then we can
move as far as we want in the direction d and remain in the feasible region. Figure 2 displays the feasible region for the Dorian Auto example (Example 2 of Chapter 3). In standard form, the Dorian example is
min z 50x1 100x2
7x1 2x2 e1 28
2x1 12x2 e2 24
x1, x2, e1, e2 0
Looking at Figure 2 it is clear that if we start at any feasible point and move up
and to the right at a 45-degree angle, we will remain in the feasible region. This means
that
x2
14
B
12
10
8
(10)
6
(4, 4)
4
z = 320
FIGURE
2
Graphical Solution of
Dorian Problem
134
z = 600
E
2
(11)
D
C
A
2
CHAPTER
4
6
8
10
12
14
4 The Simplex Algorithm and Goal Programming
x1
1
1
d
9
14
is a direction of unboundedness for this LP. It is easy to show (see Problem 6) that d is a
direction of unboundedness if and only if Ad 0 and d 0.
The following Representation Theorem [for a proof, see Nash and Sofer (1996)] is the
key insight needed to show why any LP with an optimal solution has an optimal bfs.
THEOREM
2
Consider an LP in standard form, having bfs b1, b2, . . . , bk. Any point x in the LP’s
feasible region may be written in the form
xd
ik
i1
ibi
where d is 0 or a direction of unboundedness and
ik
i1
i
1 and
i
0.
If the LP’s feasible region is bounded, then d 0, and we may write x ik
i1 ibi,
where the i are nonnegative weights adding to 1. In this case, we see that any feasible
x may be written as a convex combination of the LP’s bfs. We now give two illustrations
of Theorem 2.
Consider the Leather Limited example. The feasible region is bounded. To illustrate
Theorem 2, we can write the point G (20, 10) (G is not a bfs!) in Figure 3 as a convex
combination of the LP’s bfs. Note from Figure 3 that point G may be written as
1
F 65 H [here H (24, 12)]. Then note that point H may be written as .6E .4C. Putting
6
these two relationships together, we may write point G as 61 F 65 (.6E .4C) 61 F 1
E 31 C. This expresses point G as a convex combination of the LP’s extreme points.
2
To illustrate Theorem 2 for an unbounded LP, let’s consider Example 2 of Chapter 3
(the Dorian example; see Figure 4) and try to express the point F (14, 4) in the representation given in Theorem 2. Recall that in standard form the constraints for the Dorian
example are given by
7x1 2x2 e1 28
60
D
50
40
B
30
E
20
FIGURE
3
Writing (20, 10) as a
Convex Combination
of bfs
H
10
G
C
F
10
20
30
A
40
x1
50
60
4 . 3 Direction of Unboundedness
135
x2
14
B
12
10
8
(10)
6
(4, 4)
4
z = 320
FIGURE
4
Expressing F (14, 4)
Using Theorem 2
F
z = 600
E
2
(11)
D
C
A
2
4
6
8
10
12
14
x1
2x1 12x2 e2 24
From Figure 4, we see that to move from bfs C to point F we need to move up and to
0
the right along a line having slope 144 2. This line corresponds to the direction of
12
unboundedness
2
4
d
22
52
Letting
12
14
0
4
b1 and
x
56
78
0
52
we may write x d b1, which is the desired representation.
4.4
Why Does an LP Have an Optimal bfs?
Consider an LP with objective function max cx and constraints Ax b. Suppose this LP
THEOREM
3
has an optimal solution. We now sketch a proof of the fact that the LP has an optimal bfs.
If an LP has an optimal solution, then it has an optimal bfs.
Proof Let x be an optimal solution to our LP. Because x is feasible, Theorem 2 tells
us that we may write x d ik
i1 ibi, where d is 0 or a direction of unboundedness and b1, b2, . . . , bk are the LP’s bfs. Also, ik
i1 i 1 and i 0. If cd
136
CHAPTER
4 The Simplex Algorithm and Goal Programming
0, then for any k 0, kd ik
i1 ibi is feasible, and as k grows larger and larger,
the objective function value approaches infinity. This contradicts the fact that the LP
has an optimal solution. If cd 0, then the feasible point ik
i1 ibi has a larger objective function value than x. This contradicts the optimality of x. In short, we have
shown that if x is optimal, then cd 0. Now the objective function value for x is
given by
cx cd ik
i1
icbi
ik
i1
icbi
Suppose that b1 is the bfs with the largest objective function value. Because
i 1 and i 0,
ik
i1
cb1 cx
Because x is optimal, this shows that b1 is also optimal, and the LP does indeed
have an optimal bfs.
Adjacent Basic Feasible Solutions
Before describing the simplex algorithm in general terms, we need to define the concept
of an adjacent basic feasible solution.
DEFINITION ■
For any LP with m constraints, two basic feasible solutions are said to be adjacent
if their sets of basic variables have m 1 basic variables in common. ■
For example, in Figure 3, two basic feasible solutions will be adjacent if they have
2 1 1 basic variable in common. Thus, the bfs corresponding to point E in Figure 3
is adjacent to the bfs corresponding to point C. Point E is not, however, adjacent to bfs F.
Intuitively, two basic feasible solutions are adjacent if they both lie on the same edge of
the boundary of the feasible region.
We now give a general description of how the simplex algorithm solves LPs in a max
problem.
Find a bfs to the LP. We call this bfs the initial basic feasible solution. In general,
the most recent bfs will be called the current bfs, so at the beginning of the problem the
initial bfs is the current bfs.
Step 1
Step 2 Determine if the current bfs is an optimal solution to the LP. If it is not, then find
an adjacent bfs that has a larger z-value.
Step 3
Return to step 2, using the new bfs as the current bfs.
If an LP in standard form has m constraints and n variables, then there may be a basic solution for each choice of nonbasic variables. From n variables, a set of n m nonbasic variables (or equivalently, m basic variables) can be chosen in
mn n!
different ways. Thus, an LP can have at most
mn basic solutions. Because some basic solutions may not be feasible, an LP can have at most
4 . 4 Why Does an LP Have an Optimal bfs?
137
mn basic feasible solutions. If we were to proceed from the current bfs to a better bfs (without ever repeating a bfs), then we would surely find the optimal bfs after examining at most
mn basic feasible solutions. This means (assuming that no bfs is repeated) that the simplex
algorithm will find the optimal bfs after a finite number of calculations. We return to this
discussion in Section 4.11.
In principle, we could enumerate all basic feasible solutions to an LP and find the bfs
with the largest z-value. The problem with this approach is that even small LPs have a very
large number of basic feasible solutions. For example, an LP in standard form that has 20
variables and 10 constraints might have (if each basic solution were feasible) up to
2010 184,756
basic feasible solutions. Fortunately, vast experience with the simplex algorithm indicates
that when this algorithm is applied to an n-variable, m-constraint LP in standard form, an
optimal solution is usually found after examining fewer than 3m basic feasible solutions.
Thus, for a 20-variable, 10-constraint LP in standard form, the simplex will usually find the
optimal solution after examining fewer than 3(10) 30 basic feasible solutions. Compared
with the alternative of examining 184,756 basic solutions, the simplex is quite efficient!†
Geometry of Three-Dimensional LPs
Consider the following LP:
max z 2x1 2x2 2x3 8
s.t.
2x1 x2 2x3 8
x3 10
x1, x2, x3 0
The set of points satisfying a linear inequality in three (or any number of) dimensions
is a half-space. For example, the set of points in three dimensions satisfying 2x1 x2 8 is a half-space. Thus, the feasible region for our LP is the intersection of the following
five half-spaces: 2x1 x2 8, x3 10, x1 0, x2 0, and x3 0. The intersection of
half-spaces is called a polyhedron. The feasible region for our LP is the prism pictured
in Figure 5.
On each face (or facet) of the feasible region, one constraint (or sign restriction) is
binding for all points on that face. For example, the constraint 2x1 x2 8 is binding
for all points on the face ABCD; x3 0 is binding on face ABF; x3 10 is binding on
face DEC; x2 0 is binding on face ADEF; x1 0 is binding on face CBFE.
Clearly, the corner (or extreme) points of the LP’s feasible region are A, B, C, D, E,
and F. In this case, the correspondence between the bfs and corner points is as shown in
Table 2.
To illustrate the concept of adjacent basic feasible solutions, note that corner points A,
In solving many LPs with 50 variables and m 50 constraints, Chvàtal (1983) found that the simplex algorithm examined an average of 2m basic feasible solutions before finding an LP’s optimal solution.
†
138
CHAPTER
4 The Simplex Algorithm and Goal Programming
C
x3
(0, 0, 10)
E
(0, 8, 10)
(4, 0, 10)
D
x2
B
(0, 8, 0)
FIGURE
5
(0, 0, 0)
Feasible Region in
Three Dimensions
(4, 0, 0)
F
TA B L E
x1
A
2
Correspondence between bfs and Corner Points
Basic
Variables
x1, x3
s1, s2
s1, x3
x2, x3
x2, s2
x1, s2
Corresponds to
Corner Point
Basic Feasible Solution
x1 4, x3 10, x2 s1 s2
s1 8, s2 10, x1 x2 x3
s1 8, x3 10, x1 x2 s2
x2 8, x3 10, x1 s1 s2
x2 8, s2 10, x1 x3 s1
x1 4, s2 10, x2 x3 s1
0
0
0
0
0
0
D
F
E
C
B
A
E, and B are adjacent to corner point F. Thus, if the simplex algorithm begins at F, then
we can be sure that the next bfs to be considered will be A, E, or B.
TA B L E
3
PROBLEMS
Group A
1 For the Giapetto problem (Example 1 in Chapter 3),
show how the basic feasible solutions to the LP in standard
form correspond to the extreme points of the feasible region.
2 For the Dorian problem (Example 2 in Chapter 3), show
how the basic feasible solutions to the LP in standard form
correspond to the extreme points of the feasible region.
3 Widgetco produces two products: 1 and 2. Each requires
the amounts of raw material and labor, and sells for the
price given in Table 3.
Up to 350 units of raw material can be purchased at $2
per unit, while up to 400 hours of labor can be purchased at
$1.50 per hour. To maximize profit, Widgetco must solve
the following LP:
max z 2x1 2.5x2
s.t.
x1 2x2 350
(Raw material)
Raw material
Labor
Sales price
Product 1
Product 2
1 unit
2 hours
$7
2 units
1 hour
$8
2x1 x2 400
(Labor)
x1, x2 0
Here, xi number of units of product i produced. Demonstrate the correspondence between corner points and basic
feasible solutions.
4 For the Leather Limited problem, represent the point
(10, 20) in the form cd ik
i1 ibi.
5 For the Dorian problem, represent the point (10,40) in
the form cd ik
i1 ibi.
Group B
6 For an LP in standard form with constraints Ax b and
x 0, show that d is a direction of unboundedness if and
4 . 4 Why Does an LP Have an Optimal bfs?
139
only if Ad 0 and d 0.
7 Recall that Example 5 of Chapter 3 is an unbounded LP. Find a direction of unboundedness along which we can move for
which the objective function becomes arbitrarily large.
4.5
The Simplex Algorithm
We now describe how the simplex algorithm can be used to solve LPs in which the goal
is to maximize the objective function. The solution of minimization problems is discussed
in Section 4.4.
The simplex algorithm proceeds as follows:
Step 1
Convert the LP to standard form (see Section 4.1).
Step 2
Obtain a bfs (if possible) from the standard form.
Step 3
Determine whether the current bfs is optimal.
If the current bfs is not optimal, then determine which nonbasic variable should
become a basic variable and which basic variable should become a nonbasic variable to
find a new bfs with a better objective function value.
Step 4
Step 5 Use EROs to find the new bfs with the better objective function value. Go back
to step 3.
In performing the simplex algorithm, write the objective function
z c1x1 c2x2 EXAMPLE
2
cnxn
in the form
Dakota Furniture Company
z c1x1 c2x2 cnxn 0
We call this format the row 0 version of the objective function (row 0 for short).
The Dakota Furniture Company manufactures desks, tables, and chairs. The manufacture
of each type of furniture requires lumber and two types of skilled labor: finishing and carpentry. The amount of each resource needed to make each type of furniture is given in
Table 4.
Currently, 48 board feet of lumber, 20 finishing hours, and 8 carpentry hours are available. A desk sells for $60, a table for $30, and a chair for $20. Dakota believes that demand for desks and chairs is unlimited, but at most five tables can be sold. Because the
available resources have already been purchased, Dakota wants to maximize total revenue.
TA B L E
4
Resource Requirements for Dakota Furniture
Resource
Lumber (board ft)
Finishing hours
Carpentry hours
140
CHAPTER
Desk
Table
Chair
8
4
2
6.5
2.5
1.5
1.5
1.5
0.5
4 The Simplex Algorithm and Goal Programming
Defining the decision variables as
x1 number of desks produced
x2 number of tables produced
x3 number of chairs produced
it is easy to see that Dakota should solve the following LP:
max z 60x1 30x2 20x3
s.t.
8x1 6x2 x3 48
4x1 2x2 1.5x3 2x1 1.5x2 0.5x3 x2
x1, x2, x3 20
8
5
0
(Lumber constraint)
(Finishing constraint)
(Carpentry constraint)
(Limitation on table demand)
Convert the LP to Standard Form
We begin the simplex algorithm by converting the constraints of the LP to the standard
form discussed in Section 4.1. Then we convert the LP’s objective function to the row 0
format. To put the constraints in standard form, we simply add slack variables s1, s2, s3,
and s4, respectively, to the four constraints. We label the constraints row 1, row 2, row 3,
and row 4, and add the sign restrictions si 0 (i 1, 2, 3, 4). Note that the row 0 format for our objective function is
z 60x1 30x2 20x3 0
Putting rows 1–4 together with row 0 and the sign restrictions yields the equations and
basic variables shown in Table 5. A system of linear equations (such as canonical form 0,
shown in Table 5) in which each equation has a variable with a coefficient of 1 in that
equation (and a zero coefficient in all other equations) is said to be in canonical form. We
will soon see that if the right-hand side of each constraint in a canonical form is nonnegative, a basic feasible solution can be obtained by inspection.†
5
TA B L E
Canonical Form 0
Basic
Variable
Row
0
1
2
3
4
z
z
z
z
z
60x1
68x1
64x1
62x1
60x1
.30x2 .20x3 s1 s2 s3 s4
1.6x2 1.6x3 s1 s2 s3 s4
1.2x2 1.5x3 s1 s2 s3 s4
1.5x2 0.5x3 s1 s2 s3 s4
1.5x2 1.5x3 s1 s2 s3 s4
0
48
20
8
5
z1
s1
s2
s3
s4
0
48
20
8
5
†
If a canonical form with nonnegative right-hand sides is not readily available, however, then the techniques
described in Sections 4.12 and 4.13 can be used to find a canonical form and a basic feasible solution.
4 . 5 The Simplex Algorithm
141
From Section 4.2, we know that the simplex algorithm begins with an initial basic feasible solution and attempts to find better ones. After obtaining a canonical form, we therefore search for the initial bfs. By inspection, we see that if we set x1 x2 x3 0, we
can solve for the values of s1, s2, s3, and s4 by setting si equal to the right-hand side of
row i.
BV {s1, s2, s3, s4}
and
NBV {x1, x2, x3}
The basic feasible solution for this set of basic variables is s1 48, s2 20, s3 8,
s4 5, x1 x2 x3 0. Observe that each basic variable may be associated with the
row of the canonical form in which the basic variable has a coefficient of 1. Thus, for
canonical form 0, s1 may be thought of as the basic variable for row 1, as may s2 for row
2, s3 for row 3, and s4 for row 4.
To perform the simplex algorithm, we also need a basic (although not necessarily nonnegative) variable for row 0. Because z appears in row 0 with a coefficient of 1, and z
does not appear in any other row, we use z as its basic variable. With this convention, the
basic feasible solution for our initial canonical form has
BV {z, s1, s2, s3, s4}
and
NBV {x1, x2, x3}
For this basic feasible solution, z 0, s1 48, s2 20, s3 8, s4 5, x1 x2 x3 0.
As this example indicates, a slack variable can be used as a basic variable for an equation if the right-hand side of the constraint is nonnegative.
Is the Current Basic Feasible Solution Optimal?
Once we have obtained a basic feasible solution, we need to determine whether it is optimal; if the bfs is not optimal, then we try to find a bfs adjacent to the initial bfs with a
larger z-value. To do this, we try to determine whether there is any way that z can be increased by increasing some nonbasic variable from its current value of zero while holding all other nonbasic variables at their current values of zero. If we solve for z by rearranging row 0, then we obtain
z 60x1 30x2 20x3
(9)
For each nonbasic variable, we can use (9) to determine whether increasing a nonbasic
variable (and holding all other nonbasic variables at zero) will increase z. For example,
suppose we increase x1 by 1 (holding the other nonbasic variables x2 and x3 at zero). Then
(9) tells us that z will increase by 60. Similarly, if we choose to increase x2 by 1 (holding
x1 and x3 at zero), then (9) tells us that z will increase by 30. Finally, if we choose to increase x3 by 1 (holding x1 and x2 at zero), then (9) tells us that z will increase by 20. Thus,
increasing any of the nonbasic variables will increase z. Because a unit increase in x1
causes the largest rate of increase in z, we choose to increase x1 from its current value of
zero. If x1 is to increase from its current value of zero, then it will have to become a basic variable. For this reason, we call x1 the entering variable. Observe that x1 has the
most negative coefficient in row 0.
Determine the Entering Variable
We choose the entering variable (in a max problem) to be the nonbasic variable with the
most negative coefficient in row 0 (ties may be broken in an arbitrary fashion). Because
each one-unit increase of x1 increases z by 60, we would like to make x1 as large as possible. What limits how large we can make x1? Note that as x1 increases, the values of the
142
CHAPTER
4 The Simplex Algorithm and Goal Programming
current basic variables (s1, s2, s3, and s4) will change. This means that increasing x1 may
cause a basic variable to become negative. With this in mind, we look at how increasing
x1 (while holding x2 x3 0) changes the values of the current set of basic variables.
From row 1, we see that s1 48 8x1 (remember that x2 x3 0). Because the sign
restriction s1 0 must be satisfied, we can only increase x1 as long as s1 0, or 48 8x1 0, or x1 488 6. From row 2, s2 20 4x1. We can only increase x1 as long as
s2 0, so x1 must satisfy 20 4x1 0 or x1 240 5. From row 3, s3 8 2x1 so
x1 28 4. Similarly, we see from row 4 that s4 5. Thus, whatever the value of x1, s4
will be nonnegative. Summarizing,
s1 0
s2 0
s3 0
s4 0
48
6
8
20
for
x1 5
4
8
for
x1 4
2
for all values of x1
for
x1 This means that to keep all the basic variables nonnegative, the largest that we can make
x1 is min { 488 , 240 , 82 } 4. If we make x1 4, then s3 will become negative, and we will
no longer have a basic feasible solution. Notice that each row in which the entering variable had a positive coefficient restricted how large the entering variable could become.
Also, for any row in which the entering variable had a positive coefficient, the row’s basic variable became negative when the entering variable exceeded
Right-hand side of row
(10)
If the entering variable has a nonpositive coefficient in a row (such as x1 in row 4), the row’s
basic variable will remain positive for all values of the entering variable. Using (10), we can
quickly compute how large x1 can become before a basic variable becomes negative.
48
6
8
20
Row 2 limit on x1 5
4
8
Row 3 limit on x1 4
2
Row 4 limit on x1 no limit
Row 1 limit on x1 (Because coefficient of x1 in row 4 is nonpositive)
We can state the following rule for determining how large we can make an entering variable.
The Ratio Test
When entering a variable into the basis, compute the ratio in (10) for every constraint in
which the entering variable has a positive coefficient. The constraint with the smallest ratio is called the winner of the ratio test. The smallest ratio is the largest value of the entering variable that will keep all the current basic variables nonnegative. In our example,
row 3 was the winner of the ratio test for entering x1 into the basis.
Find a New Basic Feasible Solution:
Pivot in the Entering Variable
4 . 5 The Simplex Algorithm
143
Returning to our example, we know that the largest we can make x1 is 4. For x1 to equal 4,
it must become a basic variable. Looking at rows 1–4, we see that if we make x1 a basic
variable in row 1, then x1 will equal 488 6; in row 2, x1 will equal 240 5; in row 3, x1
will equal 82 4. Also, because x1 does not appear in row 4, x1 cannot be made a basic variable in row 4. Thus, if we want to make x1 4, then we have to make it a basic variable in
row 3. The fact that row 3 was the winner of the ratio test illustrates the following rule.
In Which Row Does the Entering Variable Become Basic?
Always make the entering variable a basic variable in a row that wins the ratio test (ties
may be broken arbitrarily).
To make x1 a basic variable in row 3, we use elementary row operations to make x1 have
a coefficient of 1 in row 3 and a coefficient of 0 in all other rows. This procedure is called
pivoting on row 3; and row 3 is the pivot row. The final result is that x1 replaces s3 as the
basic variable for row 3. The term in the pivot row that involves the entering basic variable
is called the pivot term. Proceeding as we did when we studied the Gauss–Jordan method
in Chapter 2, we make x1 a basic variable in row 3 by performing the following EROs.
Create a coefficient of 1 for x1 in row 3 by multiplying row 3 by 12 . The resulting
row (marked with a prime to show it is the first iteration) is
ERO 1
x1 0.75x2 0.25x3 0.5s3 4
ERO 2
(row 3)
To create a zero coefficient for x1 in row 0, replace row 0 with 60(row 3) row 0.
z 15x2 5x3 30s3 240
ERO 3
(row 0)
To create a zero coefficient for x1 in row 1, replace row 1 with 8(row 3) row 1.
x3 s1 4s3 16
ERO 4
(row 1)
To create a zero coefficient for x1 in row 2, replace row 2 with 4(row 3) row 2.
x2 0.5x3 s2 2s3 4
(row 2)
Because x1 does not appear in row 4, we don’t need to perform an ero to eliminate x1
from row 4. Thus, we may write the “new” row 4 (call it row 4 to be consistent with other
notation) as
x2 s4 5
(row 4)
Putting rows 0–4 together, we obtain the canonical form shown in Table 6.
Looking for a basic variable in each row of the current canonical form, we find that
BV {z, s1, s2, x1, s4}
TA B L E
and
NBV {s3, x2, x3}
6
Canonical Form 1
Basic
Variable
Row
Row
Row
Row
Row
Row
144
0
1
2
3
4
CHAPTER
z
0.15x2 0.25x3 s1 s2 .30s3 s4
z1 0.15x2 0.25x3 s1 s2 .34s3 s4
z1 0.15x2 00.5x3 s1 s2 .32s3 s4
x1 0.75x2 0.25x3 s1 s2 0.5s3 s4
z1 0.15x2 0.25x3 s1 s2 .30s3 s4
4 The Simplex Algorithm and Goal Programming
240
16
4
4
5
z 240
s1 16
s2 4
x1 4
s4 5
Thus, canonical form 1 yields the basic feasible solution z 240, s1 16, s2 4, x1 4, s4 5, x2 x3 s3 0. We could have predicted that the value of z in canonical
form 1 would be 240 from the fact that each unit by which x1 is increased increases z by
60. Because x1 was increased by 4 units (from x1 0 to x1 4), we would expect that
Canonical form 1 z-value initial z-value 4(60)
0 240 240
In obtaining canonical form 1 from the initial canonical form, we have gone from one bfs
to a better (larger z-value) bfs. Note that the initial bfs and the improved bfs are adjacent.
This follows because the two basic feasible solutions have 4 1 3 basic variables (s1, s2,
and s4) in common (excluding z, which is a basic variable in every canonical form). Thus,
we see that in going from one canonical form to the next, we have proceeded from one bfs
to a better adjacent bfs. The procedure used to go from one bfs to a better adjacent bfs is
called an iteration (or sometimes, a pivot) of the simplex algorithm.
We now try to find a bfs that has a still larger z-value. We begin by examining canonical form 1 (Table 6) to see if we can increase z by increasing the value of some nonbasic variable (while holding all other nonbasic variables equal to zero). Rearranging row
0 to solve for z yields
z 240 15x2 5x3 30s3
(11)
From (11), we see that increasing the nonbasic variable x2 by 1 (while holding x3 s3 0) will decrease z by 15. We don’t want to do that! Increasing the nonbasic variable s3 by
1 (holding x2 x3 0) will decrease z by 30. Again, we don’t want to do that. On the
other hand, increasing x3 by 1 (holding x2 s3 0) will increase z by 5. Thus, we choose
to enter x3 into the basis. Recall that our rule for determining the entering variable is to
choose the variable with the most negative coefficient in the current row 0. Because x3 is
the only variable with a negative coefficient in row 0, it should be entered into the basis.
Increasing x3 by 1 will increase z by 5, so it is to our advantage to make x3 as large as
possible. We can increase x3 as long as the current basic variables (s1, s2, x1, and s4) remain nonnegative. To determine how large x3 can be, we must solve for the values of the
current basic variables in terms of x3 (holding x2 s3 0). We obtain
From
From
From
From
row
row
row
row
1:
2:
3:
4:
s1 16 x3
s2 4 0.5x3
x1 4 0.25x3
s4 5
These equations tell us that s1 0 and s4 0 will hold for all values of x3. From row
2, we see that s2 0 will hold if 4 0.5x3 0, or x3 04.5 8. From row 3, x1 0
will hold if 4 0.25x3 0, or x3 0.425 16. This shows that the largest we can make
x3 is min { 04.5 , 0.425 } 8. This fact could also have been discovered by using (10) and the
ratio test, as follows:
Row 1: no ratio
(x3 has negative coefficient in row 1)
4
8
0.5
4
Row 3:
16
0.25
Row 4: no ratio
(x3 has a nonpositive coefficient in row 4)
Row 2:
Thus, the smallest ratio occurs in row 2, and row 2 wins the ratio test. This means that
we should use EROs to make x3 a basic variable in row 2.
4 . 5 The Simplex Algorithm
145
TA B L E
7
Canonical Form 2
Basic
Variable
Row
0.15x2 x3 s1 .10s2 .10s3 s4 280
z1 0.12x2 x3 s1 0.2s2 .38s3 s4 24
z1 0.12x2 x3 s1 0.2s2 .34s3 s4 8
x1 1.25x2 x3 s1 0.5s2 1.5s3 s4 2
z1 0.15x2 x3 s1 0.5s2 .30s3 s4 5
z 280
s1 24
x3 8
x1 2
s4 5
0
1
2
3
4
z
ERO 1
Create a coefficient of 1 for x3 in row 2 by replacing row 2 with 2(row 2):
2x2 x3 2s2 4s3 8
ERO 2
(row 2)
Create a coefficient of 0 for x3 in row 0 by replacing row 0 with 5(row 2) row 0:
z 5x2 10s2 10s3 280
ERO 3
(row 0)
Create a coefficient of 0 for x3 in row 1 by replacing row 1 with row 2 row 1:
2x2 s1 2s2 8s3 24
ERO 4
(row 1)
Create a coefficient of 0 for x3 in row 3, by replacing row 3 with 14 (row 2) 3:
x1 1.25x2 0.5s2 1.5s3 2
(row 3)
Because x3 already has a zero coefficient in row 4, we may write
x2 s4 5
(row 4)
Combining rows 0– 4 gives the canonical form shown in Table 7.
Looking for a basic variable in each row of canonical form 2, we find
BV {z, s1, x3, x1, s4}
and
NBV {s2, s3, x2}
Canonical form 2 yields the following bfs: z 280, s1 24, x3 8, x1 2, s4 5,
s2 s3 x2 0. We could have predicted that canonical form 2 would have z 280
from the fact that each unit of the entering variable x3 increased z by 5, and we have
increased x3 by 8 units. Thus,
Canonical form 2 z-value canonical form 1 z-value 8(5)
240 40 280
Because the bfs’s for canonical forms 1 and 2 have (excluding z) 4 1 3 basic variables in common (s1, s4, x1), they are adjacent basic feasible solutions.
Now that the second iteration (or pivot) of the simplex algorithm has been completed,
we examine canonical form 2 to see if we can find a better bfs. If we rearrange row 0
and solve for z, we obtain
z 280 5x2 10s2 10s3
(12)
From (12), we see that increasing x2 by 1 (while holding s2 s3 0) will decrease z by
5; increasing s2 by 1 (holding s3 x2 0) will decrease z by 10; increasing s3 by 1 (holding x2 s2 0) will decrease z by 10. Thus, increasing any nonbasic variable will cause
z to decrease. This might lead us to believe that our current bfs from canonical form 2 is
146
CHAPTER
4 The Simplex Algorithm and Goal Programming
an optimal solution. This is indeed correct! To see why, look at (12). We know that any
feasible solution to the Dakota Furniture problem must have x2 0, s2 0, and s3 0,
and 5x2 0, 10s2 0, and 10s3 0. Combining these inequalities with (12), it is
clear that any feasible solution must have z 280 terms that are 0, and z 280.
Our current bfs from canonical form 2 has z 280, so it must be optimal.
The argument that we just used to show that canonical form 2 is optimal revolved
around the fact that each of its nonbasic variables had a nonnegative coefficient in row 0.
This means that we can determine whether a canonical form’s bfs is optimal by applying
the following simple rule.
Is a Canonical Form Optimal (Max Problem)?
A canonical form is optimal (for a max problem) if each nonbasic variable has a nonnegative coefficient in the canonical form’s row 0.
REMARKS
1 The coefficient of a decision variable in row 0 is often referred to as the variable’s reduced cost.
Thus, in our optimal canonical form, the reduced costs for x1 and x3 are 0, and the reduced cost for
x2 is 5. The reduced cost of a nonbasic variable is the amount by which the value of z will decrease
if we increase the value of the nonbasic variable by 1 (while all the other nonbasic variables remain
equal to 0). For example, the reduced cost for the variable “tables” (x2) in canonical form 2 is 5.
From (12), we see that increasing x2 by 1 will reduce z by 5. Note that because all basic variables
(except z, of course) must have zero coefficients in row 0, the reduced cost for a basic variable will
always be 0. In Chapters 5 and 6, we discuss the concept of reduced costs in much greater detail.
These comments are correct only if the values of all the basic variables remain nonnegative after the nonbasic variable is increased by 1. Increasing x2 to 1 leaves x1, x3, and s1 all nonnegative,
so our comments are valid.
2 From canonical form 2, we see that the optimal solution to the Dakota Furniture problem is to
manufacture 2 desks (x1 2) and 8 chairs (x3 8). Because x2 0, no tables should be made.
Also, s1 24 is reasonable because only 8 8(2) 24 board feet of lumber are being used. Thus,
48 24 24 board feet of lumber are not being used. Similarly, s4 5 makes sense because, although up to 5 tables could have been produced, 0 tables are actually being produced. Thus, the
slack in constraint 4 is 5 0 5. Because s2 s3 0, all available finishing and carpentry hours
are being utilized, so the finishing and carpentry constraints are binding.
3 We have chosen the entering variable to be the one with the most negative coefficient in row 0,
but this may not always lead us quickly to the optimal bfs (see Review Problem 11). Actually, even
if we choose the variable with the smallest (in absolute value) negative coefficient, the simplex algorithm will eventually find the LP’s optimal solution.
4 Although any variable with a negative row 0 coefficient may be chosen to enter the basis, the
pivot row must be chosen by the ratio test. To show this formally, suppose that we have chosen to
enter xi into the basis, and in the current tableau xi is a basic variable in row k. Then row k may be
written as
bk
akixi Consider any other constraint (say, row j) in the canonical form. Row j in the current canonical form
may be written as
ajixi bj
If we pivot on row k, row k becomes
bk
aki
The new row j after the pivot will be obtained by adding a
ji times the last equation to row j of
the current canonical form. This yields a new row j of
xi 0xi aki
aji
bj bkaji
aki
We know that after the pivot, each constraint must have a nonnegative right-hand side. Thus,
0 must hold to ensure that row k has a nonnegative right-hand side after the pivot. Suppose
0. Then, to ensure that row j will have a nonnegative right-hand side after the pivot, we
4 . 5 The Simplex Algorithm
147
must have
bj bkaji
0
aki
or (because aji
0)
bj
b
k
aji
aki
Thus, row k must be a “winner” of the ratio test to ensure that row j will have a nonnegative righthand side after the pivot is completed.
If aji 0, then the right-hand side of row j will surely be nonnegative after the pivot. This follows because
bkaji
0
aki
will now hold.
As promised earlier, we have outlined an algorithm that proceeds from one bfs to a
better bfs. The algorithm stops when an optimal solution has been found. The convergence
of the simplex algorithm is discussed further in Section 4.11.
Summary of the Simplex Algorithm for a Max Problem
Step 1
Convert the LP to standard form.
Find a basic feasible solution. This is easy if all the constraints are with nonnegative right-hand sides. Then the slack variable si may be used as the basic variable for
row i. If no bfs is readily apparent, then use the techniques discussed in Sections 4.12 and
4.13 to find a bfs.
Step 2
Step 3 If all nonbasic variables have nonnegative coefficients in row 0, then the current
bfs is optimal. If any variables in row 0 have negative coefficients, then choose the variable with the most negative coefficient in row 0 to enter the basis. We call this variable
the entering variable.
Use EROs to make the entering variable the basic variable in any row that wins
the ratio test (ties may be broken arbitrarily). After the EROs have been used to create a
new canonical form, return to step 3, using the current canonical form.
Step 4
When using the simplex algorithm to solve problems, there should never be a constraint
with a negative right-hand side (it is okay for row 0 to have a negative right-hand side;
see Section 4.6). A constraint with a negative right-hand side is usually the result of an
error in the ratio test or in performing one or more EROs. If one (or more) of the constraints has a negative right-hand side, then there is no longer a bfs, and the rules of the
simplex algorithm may not lead to a better bfs.
Representing Simplex Tableaus
Rather than writing each variable in every constraint, we often used a shorthand display
called a simplex tableau. For example, the canonical form
z 3x1 x2 s1 s1 6
z 3x1 x2 s1 s1 4
148
CHAPTER
4 The Simplex Algorithm and Goal Programming
TA B L E
8
A Simplex Tableau
z
x1
x2
s1
s2
rhs
Basic
Variable
1
0
0
3
1
2
1
0
1
0
1
0
0
0
1
6
4
3
z2 6
s1 4
s2 3
z 2x1 x2 s1 s2 3
would be written in abbreviated form as shown in Table 8 (rhs right-hand side). This
format makes it very easy to spot basic variables: Just look for columns having a single
entry of 1 and all other entries
equal to 0 (s1 and s2). In our
use of simplex tableaus, we
will encircle the pivot term
and denote the winner of the
ratio test by *.
s.t.
s.t.
4 Suppose you want to solve the Dorian problem (Example
2 in Chapter 3) by the simplex algorithm. What difficulty
would occur?
5
Use the simplex algorithm to solve the following LP:
max z x1 x2 100
s.t.
4x1 x2 100
s.t.
4x1 x2 80
s.t.
4x1 x1 40
x1, x2 0
6
Use the simplex algorithm to solve the following LP:
max z x1 x2 x3
s.t.
x1 2x2 2x3 20
PROBLEMS
Group A
1 Use the simplex algorithm to solve the Giapetto problem
(Example 1 in Chapter 3).
2
Use the simplex algorithm to solve the following LP:
max z 2x1 3x2 6
s.t.
x1 2x2 6
s.t.
2x1 x2 8
x1, x2 0
x1 x2 2x3 10
x1 x2 x3 20
x1, x2, x3 0
3 Use the simplex algorithm to solve the following
problem:
max z 2x1 x2 x3 60
s.t.
3x1 x2 x3 60
s.t.
s.t.
2x1 x2 2x3 20
2x1 2x2 x3 20
x1, x2, x3 0
Group B
7 It has been suggested that at each iteration of the simplex algorithm, the entering variable should be (in a maximization
problem) the variable that would bring about the greatest increase in the objective function. Although this usually results in
fewer pivots than the rule of entering the most negative row 0 entry, the greatest increase rule is hardly ever used. Why not?
4 . 6 Using the Simplex Algorithm to Solve Minimization Problems
149
4.6
Using the Simplex Algorithm to Solve Minimization Problems
There are two different ways that the simplex algorithm can be used to solve minimization problems. We illustrate these methods by solving the following LP:
min z 2x1 3x2
s.t.
x1 x2 4
(LP 2)
x1 x2 6
x1, x2 0
s.t.
Method 1
The optimal solution to LP 2 is the point (x1, x2) in the feasible region for LP 2 that makes
z 2x1 3x2 the smallest. Equivalently, we may say that the optimal solution to LP 2 is
the point in the feasible region that makes z 2x1 3x2 the largest. This means that
we can find the optimal solution to LP 2 by solving LP 2:
max z 2x1 3x2
s.t.
x1 x2 4
s.t.
x1 x2 6
x1, x2 0
(LP 2)
In solving LP 2, we will use z as the basic variable for row 0. After adding slack variables s1 and s2 to the two constraints, we obtain the initial tableau in Table 9. Because x2 is
the only variable with a negative coefficient in row 0, we enter x2 into the basis. The ratio
test indicates that x2 should enter the basis in the first constraint, row 1. The resulting tableau
is shown in Table 10. Because each variable in row 0 has a nonnegative coefficient, this is
an optimal tableau. Thus, the optimal solution to LP 2 is z 12, x2 4, s2 10, x1 s1 0. Then the optimal solution to LP 2 is z 12, x2 4, s2 10, x1 s1 0. Substituting the values of x1 and x2 into LP 2’s objective function, we obtain
9
TA B L E
Initial Tableau for LP 2—Method 1
z
x1
x2
s1
s2
rhs
Basic
Variable
1
0
0
2
1
1
3
1
1
0
1
0
0
0
1
0
4
6
z2 0
s1 4
s2 6
10
TA B L E
Optimal Tableau for LP 2—Method 1
150
z
x1
x2
s1
s2
rhs
Basic
Variable
1
0
0
5
1
2
0
1
0
3
1
1
0
0
1
12
14
10
z2 12
x2 41
s2 10
CHAPTER
4 The Simplex Algorithm and Goal Programming
Ratio
4
1
4*
None
TA B L E
11
Initial Tableau for LP 2—Method 2
z
x1
x2
s1
s2
rhs
Basic
Variable
1
0
0
2
1
1
3
1
1
0
1
0
0
0
1
0
4
6
z2 0
s1 4
s2 6
TA B L E
Ratio
4
1
4*
None
12
Optimal Tableau for LP 2—Method 2
z
x1
x2
s1
s2
rhs
Basic
Variable
1
0
0
5
1
2
0
1
0
3
1
1
0
0
1
12
14
10
z2 12
x2 4
s2 10
z 2x1 3x2 2(0) 3(4) 12
In summary, multiply the objective function for the min problem by 1 and solve the
problem as a maximization problem with objective function z. The optimal solution to the
max problem will give you the optimal solution to the min problem. Remember that (optimal z-value for min problem) (optimal objective function value z for max problem).
Method 2
A simple modification of the simplex algorithm can be used to solve min problems directly. Modify Step 3 of the simplex as follows: If all nonbasic variables in row 0 have
nonpositive coefficients, then the current bfs is optimal. If any nonbasic variable in row
0 has a positive coefficient, choose the variable with the “most positive” coefficient in row
0 to enter the basis.
should enter the basis in row
This modification of the
1, resulting in Table 12. Besimplex algorithm works because each variable in row 0
cause increasing a nonbasic
has a nonpositive coefficient,
variable with a positive coefthis is an optimal tableau.†
ficient in row 0 will decrease
Thus, the optimal solution to
z. If we use this method to
LP 2 is (as we have already
solve LP 2, then our initial
seen) z 12, x2 4, s2 tableau will be as shown in
10, x1 s1 0.
Table 11. Because x2 has the
most positive coefficient in
row 0, we enter x2 into the basis. The ratio test says that x2
To see that this tableau is optimal, note that from row 0, z 12 5x1 3s1. Because x1 0 and s1 0,
this shows that z 12. Thus, the current bfs (which has z 12) must be optimal.
†
4 . 6 Using the Simplex Algorithm to Solve Minimization Problems
151
PROBLEMS
Group A
1
Use the simplex algorithm to find the optimal solution to the following LP:
min z 4x1 x2
s.t.
2x1 x2 8
s.t.
2x1 x2 5
x1 x2 4
x1, x2 0
2
Use the simplex algorithm to find the optimal solution to the following LP:
min z x1 x2
s.t.
x1 x2 1
x1 x2 2
TA B L E
13
Initial Tableau for Dakota Furniture ($35/Table)
z
x1
x2
x3
s1
s2
s3
s4
rhs
Basic
Variable
1
60
35.5
20.5
0
0
0
0
20
z2 0
0
68
36.5
21.5
1
0
0
0
48
s1 48
0
64
32.5
21.5
0
1
0
0
20
s2 20
Ratio
0
62
31.5
20.5
0
0
1
0
28
s3 8
48
8
20
4
8
2
0
60
31.5
20.5
0
0
0
1
25
s4 5
None
TA B L E
6*
5*
4*
14
First Tableau for Dakota Furniture ($35/Table)
z
x1
x2
x3
s1
s2
s3
s4
rhs
Basic
Variable
Ratio
1
0
0
0
0
0
10.75
0.75
1.75
5.25
1.25
0.55
0
1
0
0
0
1
30.5
4.5
2.5
0
0
0
240
16
4
z2 240
s1 16
s2 4
None
4
8*
0.5
0
1
0.75
0.25
0
0
0.5
0
24
x1 4
4
0.25
0
0
1.75
0.25
0
0
0.5
1
25
s4 5
None
TA B L E
16
15
Second (and Optimal) Tableau for Dakota Furniture ($35/Table)
152
z
x1
x2
x3
s1
s2
s3
s4
rhs
1
0
0
0
0
0
0
0
1
0
0.75
2.75
2.75
1.25
1.75
0
0
1
0
0
0
1
0
0
0
10.5
2.5
2.5
0.5
0.5
10.5
8.5
4.5
1.5
0.5
0
0
0
0
1
280
24
8
22
25
CHAPTER
4 The Simplex Algorithm and Goal Programming
Basic
Variable
z2 s1 x3 x1 s4 280
24
8
2*
5
16
TA B L E
Another Optimal Tableau for Dakota Furniture ($35/Table)
z
x1
x2
x3
s1
s2
s3
s4
rhs
Basic
Variable
1
0
0
0
0
0.6
1.6
1.6
0.8
0.8
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
10.5
1.2
1.2
0.4
0.4
10.5
5.6
1.6
1.2
1.2
0
0
0
0
1
280
227.2
211.2
221.6
223.4
z 280
s1 27.2
x3 11.2
x2 1.6
s4 3.4
x1, x2 0
3
Use the simplex algorithm to find the optimal solution to the following LP:
min z 2x1 5x2
s.t.
3x1 8x2 12
2x1 3x2 6
x1, x2 0
4
Use the simplex algorithm to find the optimal solution to the following LP:
min z 3x1 8x2
s.t.
4x1 2x2 12
2x1 3x2 6
x1, x2 0
4.7
Alternative Optimal Solutions
Recall from Example 3 of Section 3.3 that for some LPs, more than one extreme point is
optimal. If an LP has more than one optimal solution, then we say that it has multiple or
alternative optimal solutions. We show now how the simplex algorithm can be used to
determine whether an LP has alternative optimal solutions.
Reconsider the Dakota Furniture example of Section 4.3, with the modification that tables sell for $35 instead of $30 (see Table 13). Because x1 has the most negative coefficient in row 0, we enter x1 into the basis. The ratio test indicates that x1 should be entered
in row 3. Now only x3 has a negative coefficient in row 0, so we enter x3 into the basis
(see Table 14). The ratio test indicates that x3 should enter the basis in row 2. The resulting, optimal, tableau is given in Table 15. As in Section 4.3, this tableau indicates that the
optimal solution to the Dakota Furniture problem is s1 24, x3 8, x1 2, s4 5, and
x2 s2 s3 0.
Recall that all basic variables must have a zero coefficient in row 0 (or else they wouldn’t
be basic variables). However, in our optimal tableau, there is a nonbasic variable, x2, which
also has a zero coefficient in row 0. Let us see what happens if we enter x2 into the basis. The
ratio test indicates that x2 should enter the basis in row 3 (check this). The resulting tableau is
given in Table 16. The important thing to notice is that because x2 has a zero coefficient in the
optimal tableau’s row 0, the pivot that enters x2 into the basis does not change row 0. This
means that all variables in our new row 0 will still have nonnegative coefficients. Thus, our
new tableau is also optimal. Because the pivot has not changed the value of z, an alternative
optimal solution for the Dakota example is z 280, s1 27.2, x3 11.2, x2 1.6, s4 3.4,
and x1 s3 s2 0.
In summary, if tables sell for $35, Dakota can obtain $280 in sales revenue by manu-
4 . 7 Alternative Optimal Solutions
153
facturing 2 desks and 8 chairs or by manufacturing 1.6 tables and 11.2 chairs. Thus,
Dakota has multiple (or alternative) optimal extreme points.
As stated in Chapter 3, it can be shown that any point on the line segment joining two
optimal extreme points will also be optimal. To illustrate this idea, let’s write our two opoptimal extreme points, there
timal extreme points:
are an infinite number of optimal solutions to the Dakota
x1
Optiproblem. For example, by
choosing c 0.5, we obtain
mal 2extreme point 1 x2
the optimal solution x1 1,
0
x3
x2 0.8, x3 9.6.
8
If there is no nonbasic variable with a zero coefficient in
row 0 of the optimal tableau,
then the LP has a unique opOptimal
extreme
point 2 x1
0
timal solution (see Problem
3). Even if there is a nonbasic
x2 1.6
x3
11.2
Thus, for 0 c 1,
x1
2
x2 c 0 0 (1 c)
x3
8 1.6 11.2
2c
1.6 1.6c
11.2 3.2c
TA B L E
17
z
x1
x2
s1
s2
rhs
1
0
0
0
1
0
0
0
1
2
3
1
3
2
1
10
14
13
TA B L E
18
z
x1
x2
x3
x4
rhs
1
0
0
0
1
0
0
0
1
0
1
2
2
1
3
2
2
3
will be optimal. This shows
that although the Dakota Furniture example has only two
variable with a zero coefficient in row 0 of the optimal tableau, it is possible that the LP
may not have alternative optimal solutions (see Review Problem 25).
PROBLEMS
Group A
1
2
Show that if a toy soldier sold for $28, then the Giapetto problem would have alternative optimal solutions.
EXAMPLE 3
Breadco Bakeries: An Unbounded LP
Show that the following LP has alternative optimal solutions; find three of them.
max z 3x1 6x2
s.t.
5x1 7x2 35
s.t.
x1 2x2 2
x1, x2 0
154
CHAPTER
4 The Simplex Algorithm and Goal Programming
3
Find alternative optimal solutions to the following LP:
max z x1 x2
s.t.
x1 x2 2x3 1
x1 x2 2x3 1
All xi 0
4
Find all optimal solutions to the following LP:
max z 3x1 3x2
s.t.
x1 x2 1
All xi 0
5
How many optimal basic feasible solutions does the following LP have?
max z 2x1 2x2
s.t.
x1 x2 6
s.t.
2x1 x2 13
All xi 0
Group B
6 Suppose you have found this optimal tableau (Table 17) for a maximization problem. Use the fact that each nonbasic
variable has a strictly positive coefficient in row 0 to show that x1 4, x2 3, s1 s2 0 is the unique optimal solution to
this
LP.
(Hint:
Can
any
extreme
point
having
s1 0 or s2 0 have z 10?)
7
Explain why the set of optimal solutions to an LP is a convex set.
8 Consider
an
LP
with
the
optimal
tableau
shown
in
Table 18.
a Does this LP have more than one bfs that is optimal?
b How many optimal solutions does this LP have? (Hint: If the value of x3 is increased, then how does this change the
values of the basic variables and the z-value?)
9
Characterize all optimal solutions to the following LP:
max z 8x5
s.t.
x1 x2 x3 3x4 2x5 2
s.t.
x1 x2 2x3 4x4 5x5 5
All xi 0
4.8
Unbounded LPs
Recall from Section 3.3 that for some LPs, there exist points in the feasible region for
which z assumes arbitrarily large (in max problems) or arbitrarily small (in min problems)
values. When this situation occurs, we say that LP is unbounded. In this section, we show
TA B L E
19
Initial Tableau for Breadco
z
x1
x2
x3
x4
s1
s2
rhs
Basic
Variable
1
0
36
61
30
61
3
1
4
0
0
1
0
0
10
15
z2 0
s1 5
0
66
65
0
1
0
1
10
s2 10
4 . 8 Unbounded LPs
Ratio
5
1
10
6
5
53 *
155
TA B L E
20
First Tableau for Breadco
z
x1
x2
1
0
0
0
0
0
1
1
6
5
6
TA B L E
x3
x4
s1
3
2
0
1
1
6
16
1
0
0
rhs
Basic
Variable
6
60
z2 60
16
1
6
10
3
5
3
s1 s2
s2 10
3
5
3
Ratio
( 130 )/( 16 ) 20*
None
21
Second Tableau for Breadco
z
x1
x2
x3
x4
s1
s2
rhs
Basic
Variable
Ratio
1
0
0
0
0
1
2
1
1
9
6
1
0
1
0
12
6
1
4
1
0
100
20
5
z2 100
x4 20
x1 5
None
None
how the simplex algorithm can be used to determine whether an LP is unbounded.
Breadco Bakeries bakes two kinds of bread: French and sourdough. Each loaf of French
bread can be sold for 36¢, and each loaf of sourdough bread for 30¢. A loaf of French
bread requires 1 yeast packet and 6 oz of flour; sourdough requires 1 yeast packet and
5 oz of flour. At present, Breadco has 5 yeast packets and 10 oz of flour. Additional yeast
packets can be purchased at 3¢ each, and additional flour at 4¢/oz. Formulate and solve
an LP that can be used to maximize Breadco’s profits ( revenues costs).
Solution
Define
x1
x2
x3
x4
number
number
number
number
of
of
of
of
loaves of French bread baked
loaves of sourdough bread baked
yeast packets purchased
ounces of flour purchased
Then Breadco’s objective is to maximize z revenues costs, where
Revenues 36x1 30x2
and
Costs 3x3 4x4
Thus, Breadco’s objective function is
max z 36x1 30x2 3x3 4x4
Breadco faces the following two constraints:
Constraint 1
Number of yeast packages used to bake bread cannot exceed available yeast
plus purchased yeast.
Constraint 2
Ounces of flour used to bake breads cannot exceed available flour plus pur-
chased flour.
Because
156
CHAPTER
4 The Simplex Algorithm and Goal Programming
Available yeast purchased yeast 5 x3
Available flour purchased flour 10 x4
Constraint 1 may be written as
x1 x2 5 x3
or
x1 x2 x3 5
or
6x1 5x2 x4 10
and Constraint 2 may be written as
6x1 5x2 10 x4
Adding the sign restrictions xi 0 (i 1, 2, 3, 4) yields the following LP:
max z 36x1 30x2 3x3 4x4
s.t.
x1 x2 x3 x4 5
s.t.
6x1 5x2 x3 x4 10
x1, x2, x3, x4 0
(Yeast constraint)
(Flour constraint)
Adding slack variables s1 and s2 to the two constraints, we obtain the tableau in Table 19.
Because 36 30, we enter x1 into the basis. The ratio test indicates that x1 should
enter the basis in row 2. Entering x1 into the basis in row 2 yields the tableau in Table 20.
Because x4 has the only negative coefficient in row 0, we enter x4 into the basis. The ratio test indicates that x4 should enter the basis in row 1, with the resulting tableau in Table
21. Because x3 has the most negative coefficient in row 0, we would like to enter x3 into
the basis. The ratio test, however, fails to indicate the row in which x3 should enter the
basis. What is happening? Going back to the basic ideas that led us to the ratio test, we
see that as x3 is increased (holding the other nonbasic variables at zero), the current basic variables, x4 and x1, change as follows:
x4 20 6x3
x1 5 x3
(13)
(14)
As x3 is increased, both x4 and x1 increase. This means that no matter how large we make
x3, the inequalities x4 0 and x1 0 will still be true. Because each unit by which we increase
x3 will increase z by 9, we can find points in the feasible region for which z assumes an arbitrarily large value. For example, can we find a feasible point with z 1,000? To do this, we
need to increase z by 1,000 100 900. Each unit by which x3 is increased will increase z
by 9, so increasing x3 by 9090 100 should give us z 1,000. If we set x3 100 (and hold
the other nonbasic variables at zero), then (13) and (14) show that x4 and x1 must now equal
x4 20 6(100) 620
x1 5 6(100) 105
Thus, x1 105, x3 100, x4 620, x2 0 is a point in the feasible region with z 1,000. In a similar fashion, we can find points in the feasible region having arbitrarily
large z-values. This means the Breadco problem is an unbounded LP.
From the Breadco example, we see that an unbounded LP occurs in a max problem if
there is a nonbasic variable with a negative coefficient in row 0 and there is no constraint that
limits how large we can make the nonbasic variable. This situation will occur if a nonbasic
variable (such as x3) has a negative coefficient in row 0 and nonpositive coefficients in each
constraint. To summarize, an unbounded LP for a max problem occurs when a variable with
a negative coefficient in row 0 has a nonpositive coefficient in each constraint.
If an LP is unbounded, one will eventually come to a tableau where one wants to enter a variable (such as x3) into the basis, but the ratio test will fail. This is probably the
easiest way to spot an unbounded LP.
4 . 8 Unbounded LPs
157
As we noted in Chapter 3, an unbounded LP is usually caused by an incorrect formulation. In the Breadco example, we obtained an unbounded LP because we allowed
Breadco to pay 3 6(4) 27¢ for the ingredients in a loaf of French bread and then sell
the loaf for 36¢. Thus, each loaf of French bread earns a profit of 9¢. Because unlimited
purchases of yeast and flour are allowed, it is clear that our model allows Breadco to manufacture as much French bread as it desires, thereby earning arbitrarily large profits. This
is the cause of the unbounded LP.
Of course, our formulation of the Breadco example ignored several aspects of reality.
First, we assumed that demand for Breadco’s products
is unlimited. Second, we ignored the fact that certain resources to make bread (such
as ovens and labor) are in limited supply. Finally, we made
the unrealistic assumption
that unlimited quantities of
yeast and flour could be purchased.
TA B L E
22
z
x1
x2
x3
x4
rhs
1
0
0
3
1
2
2
1
0
0
1
0
0
0
1
0
3
4
cnxn. Let c [c1 c2 . .
. cn]. If the LP is a maximization problem, then the LP will
be unbounded if and only if it
has a direction of unboundedness d satisfying cd
0. If
the LP is a minimization problem, then the LP will be unbounded if and only if it has a
direction of unboundedness d
Unbounded LPs and
Directions of
Unboundedness
Consider an LP with an objective function c1x1 c2x2 satisfying cd 0. I[n Example 3, the last tableau shows us that if we start at the point
5
0
0
20
0
0
(the variables are listed in the same order they are listed in the tableau), we can find a direction of unboundedness as follows. Every unit by which x3 is increased will maintain
feasibility if we increase x1 by one unit and x4 by six units and leave x2, s1, and s2 unchanged. Because we can increase x3 without limit, this indicates that
†
See Chapter 9 for a discussion of integer programming and Chapter 11 for a discussion of quadratic
programming.
158
CHAPTER
4 The Simplex Algorithm and Goal Programming
FIGURE
6
LINDO Output for
Dakota Furniture
1
0
1
d
6
0
0
is a direction of unboundedness. Because
1
0
1
cd [36 30 3 4 0 0]
9
6
0
0
we know that LP is unbounded. This follows because each time we move in the direction
d an amount that increases x3 by one unit, we increase z by 9, and we can move as far as
we want in the direction d.
PROBLEMS
Group A
1
Show that the following LP is unbounded:
max z 2x2
s.t.
x1 x2 4
s.t.
x1 x2 1
Dakota
x1, x2 0
Find a point in the feasible region with z 10,000.
2 State a rule that can be used to determine if a min problem has an unbounded optimal solution
(that is, z can be made arbitrarily small). Use the rule to show that
4 . 9 The LINDO Computer Package
159
FIGURE
7
min z 2x1 3x2
s.t.
x1 x2 1
s.t.
x1 2x2 2
x1, x2 0
is an unbounded LP.
3 Suppose that in solving an LP, we obtain the tableau in Table 22. Although x1 can enter the basis, this LP is unbounded.
Why?
4 Use
tion 3.3.
5
the
simplex
method
to
solve
Problem
10
of
Sec-
Show that the following LP is unbounded:
max z x1 2x2
s.t.
x1 x2 2
s.t.
2x1 x2 1
x1, x2 0
6 Show that the following LP is unbounded:
min z x1 3x2
s.t.
x1 2x2 4
s.t.
x1 x2 3
x1, x2 0
4.9
The LINDO Computer Package
LINDO (Linear Interactive and Discrete Optimizer) was developed by Linus Schrage
(1986). It is a user-friendly computer package that can be used to solve linear, integer,
and quadratic programming problems.† Appendix A to this chapter gives a brief explanation of how LINDO can be used to solve LPs. In this section, we explain how the information on a LINDO printout is related to our discussion of the simplex algorithm.
We begin by discussing the LINDO ouput for the Dakota Furniture example (see Figure 6). LINDO allows the user to name the variables, so we define
DESKS number of desks produced
160
CHAPTER
4 The Simplex Algorithm and Goal Programming
FIGURE
8
TABLES number of tables produced
CHAIRS number of chairs produced
Then the Dakota formulation in the first block of Figure 6 is
max
s.t.
s.t.
s.t.
60 DESKS 30 TABLES 20 CHAIRS 48 (Row 1)
8 DESKS 6 TABLES CHAIRS 48 (Row 2) (Lumber constraint)
4 DESKS 2 TABLES 1.5 CHAIRS 20 (Row 3) (Finishing constraint)
2 DESKS 1.5 TABLES 0.5 CHAIRS 8 (Row 4) (Carpentry constraint)
TABLES 0.5 CHAIRS 5 (Row 5)
DESKS, TABLES, CHAIRS 0
(LINDO assumes that all variables are nonnegative, so the nonnegativity constraints need
not be input to the computer.) To be consistent with LINDO, we have labeled the objective function row 1 and the constraint rows 2–5.
To enter this problem in LINDO, make sure the screen contains a blank window, or
work area, with “Untitled” at the top of the work area. If necessary, a new window can
be opened by selecting New from the File menu or by clicking on the New File button.
The first statement in a LINDO model is always the objective. Enter the objective much
like you would write it in equation form:
MAX 60 DESKS 30 TABLES 20 CHAIRS
This tells LINDO to maximize the objective function. Proceed by entering the constraints
as follows:
SUBJECT TO (OR s.t.)
8 DESKS 1.6 TABLES CHAIRS 48
4 DESKS 1.2 TABLES 1.5 CHAIRS 20
2 DESKS 1.5 TABLES .5 CHAIRS 8
TABLES 5
Your screen will now look like the one in Figure 6. Note that LINDO automatically as-
4 . 9 The LINDO Computer Package
161
FIGURE
9
sumes that all decision variables are nonnegative.
To save the file for later use, select Save from the File menu and when asked for a file
name replace the * symbol with a name of your choice (we chose Dakota). Do not type over
the characters .LTX. You may now use the File Open command to retrieve the problem.
To solve the model, proceed as follows:
1
From the Solve menu, select the Solve command or click the button with a bull’s-eye.
When asked if you want to do a range (sensitivity analysis) choose No. We will explain how to interpret a range or sensitivity analysis in Chapter 6.
2
When the solution is completed, a display showing the status of the Solve command
will be present. After reviewing the displayed information, select Close.
3
You should now see your input data overlaying a display labeled “Reports Window.”
Click anywhere in the Reports window, and your input data will be removed from the
foreground. Move to the top of the screen using the single arrow at the right of the screen,
and your screen should now look like that in Figure 7.
4
Looking now at the LINDO output in Figure 7, we see
LP OPTIMUM FOUND AT STEP 2
THE TABLEAU
ROW
(BASIS)
1 ART
2 SLK
2
3
CHAIRS
4
DESKS
5 SLK
5
FIGURE
10
Example of TABLEAU
Command
162
ROW
1
2
3
4
5
CHAPTER
SLK
4
10.000
-8.000
-4.000
1.500
.000
DESKS
.000
.000
.000
1.000
.000
SLK
5
.000
.000
.000
.000
1.000
TABLES
5.000
-2.000
-2.000
1.250
1.000
280.000
24.000
8.000
2.000
5.000
4 The Simplex Algorithm and Goal Programming
CHAIRS
.000
.000
1.000
.000
.000
SLK
2
.000
1.000
.000
.000
.000
SLK
3
10.000
2.000
2.000
-.500
.000
indicating that LINDO found the optimal solution after two iterations (or pivots) of the
simplex algorithm.
OBJECTIVE FUNCTION VALUE 280.000000
indicates that the optimal z-value is 280.
VALUE
gives the value of the variable in the optimal LP solution. Thus, the optimal solution calls
for Dakota to produce 2 desks, 0 tables, and 8 chairs.
SLACK OR SURPLUS
gives the value of the slack or excess (“surplus variable” is another name for excess variable) in the optimal solution. Thus,
s1
s2
s3
s4
Sail.lng
slack
slack
slack
slack
for row 2 on LINDO
for row 3 on LINDO
for row 4 on LINDO
for row 5 on LINDO
REDUCED COST
output
output
output
output
24
0
0
5
gives the coefficient of the variable in row 0 of the optimal tableau (in a max problem).
As discussed in Section 4.3, the reduced cost for each basic variable must be 0. For a nonbasic variable xj, the reduced cost is the amount by which the optimal z-value is decreased
if xj is increased by 1 unit (and all other nonbasic variables remain equal to 0). In the
LINDO output for the Dakota problem, the reduced cost is 0 for each of the basic variables (DESKS and CHAIRS). Also, the reduced cost for TABLES is 5. This means that
if Dakota were forced to produce a table, revenue would decrease by $5.
For a minimization problem, the LP Optimum, Objective Function Value, and Slack
and Surplus columns are interpreted as described. But the reduced cost for a variable is
(coefficient of variable in optimal row 0). Thus, in a min problem, the reduced cost for
a basic variable will again be zero, but the reduced cost for a nonbasic variable xj will be
the amount by which the optimal z-value increases if xj is increased by 1 unit (and all
other nonbasic variables remain equal to 0).
To illustrate the interpretation of the LINDO output for a minimization problem, let’s
look at the LINDO output for the diet problem of Section 3.4 (see Figure 9). If we let
BR
IC
COLA
PC
brownies eaten daily
scoops of chocolate ice cream eaten daily
number of bottles of soda drunk daily
pieces of pineapple cheesecake eaten daily
then the diet problem may be formulated as
min 50 BR 20 IC 30 COLA 80 PC
s.t. 400 BR 200 IC 150 COLA 500 PC 500
s.t.
3 BR 2 IC
6
s.t.
2 BR 2 IC 4 COLA 4 PC 10
s.t.
2 BR 4 IC COLA 5 PC 8
BR, IC, COLA, PC 0
(Calorie constraint)
(Chocolate constraint)
(Sugar constraint)
(Fat constraint)
The Value column shows that the optimal solution is to eat three scoops of chocolate ice
cream daily and drink one bottle of soda daily. The Objective Function Value on the
LINDO output indicates that the cost of this diet is 90¢. The Slack or Surplus column
4 . 1 0 Matrix Generators, LINGO, and Scaling of LPs
163
shows that the first constraint (calories) has an excess of 250 calories and that the fourth
constraint (fat) has an excess of 5 oz. Thus, the calorie and fat constraints are nonbinding.
The chocolate and sugar constraints have no excess and are therefore binding constraints.
From the Reduced Cost column, we see that if we were forced to eat a brownie (while
keeping PC 0), the minimum cost of the daily diet would increase by 27.5¢, and if we
were forced to eat a piece of pineapple cheesecake (while holding BR 0), the minimum
cost of the daily diet would increase by 50¢.
The Tableau Command
If, after obtaining the optimal solution to the Dakota furniture problem, you close the Reports window and select the Tableau command (under the Reports menu), LINDO will
display the optimal tableau (see Figure 10). Remembering that the first constraint is row
2 in LINDO, we see that BV {s1, CHAIRS, DESKS, s4}. Thus, for example, SLK5 on
the LINDO output corresponds to s4. The artificial variable (ART) listed as basic in row
1 is z; thus, row 0 of the optimal tableau is z 5TABLES 10s2 10s3 280.
When you have installed LINDO on your hard drive, the LINDO formulation for the
Dakota and Diet problems will be in the directory C:\WINSTON\LINDO\SAMPLES.
See Appendix A of Chapter 4 for further discussion of LINDO.
4.10
Matrix Generators, LINGO, and Scaling of LPs
Many LPs solved in practice contain thousands of constraints and decision variables. Few
users of linear programming would want to input the constraints and objective function
each time such an LP is to be solved. For this reason, most actual applications of LP use
a matrix generator to simplify the inputting of the LP. A matrix generator allows the user
to input the relevant parameters that determine the LP’s objective function and constraints;
it then generates the LP formulation from that information. For example, let’s consider
the Sailco example from Section 3.10. If we were dealing with a planning horizon of 200
periods, then this problem would involve 400 constraints and 600 decision variables—
clearly too many for convenient input. A matrix generator for this problem would require
the user to input only the following information for each period: cost of producing a sailboat with regular-time labor, cost with overtime labor, demand, and holding costs. From
this information, the matrix generator would generate the LP’s objective function and constraints, call up an LP software package (such as LINDO) and solve the problem. Finally,
an output analyzer would be written to display the output in a user-friendly format.
The LINGO Package
The package LINGO is an example of a sophisticated matrix generator (and much more!).
LINGO is an optimization modeling language that enables the user to create many (perhaps thousands) of constraints or objective function terms by typing one line. To illustrate
how LINGO works, we will solve the Sailco problem (Example 12 of Chapter 3).
Solving the Sailco Problem
The LINGO model follows (it is the file Sail.lng on your disk).
164
CHAPTER
4 The Simplex Algorithm and Goal Programming
MODEL:
1]
2]
3]
4]
5]
6]
7]
8]
9]
10]
11]
12]
END
Sail.lng
Post.lng
SETS:
QUARTERS/Q1,Q2,Q3,Q4/:TIME,DEM,RP,OP,INV;
ENDSETS
MIN=@SUM(QUARTERS:400*RP+450*OP+20*INV);
@FOR(QUARTERS(I):RP(I)<40);
@FOR(QUARTERS(I)|TIME(I)#GT#1:
INV(I)=INV(I-1)+RP(I)+OP(I)-DEM(I););
INV(1)=10+RP(1)+OP(1)-DEM(1);
DATA:
DEM=40,60,75,25;
TIME=1,2,3,4;
ENDDATA
To begin setting up a model with LINGO, think of the objects or sets that define the
problem. For Sailco, the four quarters (Q1, Q2, Q3, and Q4) help define the problem. For
each quarter we determine the objects that must be known to find an optimal production
schedule—demand (DEM), regular-time production (RP), overtime production (OP), and
end-of-quarter inventory (INV). The first three lines of the Sailco program define these
objects. SETS: begins the definition of the sets needed to model the problem and ENDSETS ends it. The effect of line 2 is to define four quarters: Q1, Q2, Q3, and Q4. For
each quarter, line 2 creates time (indicating if the quarter is the first, second, third, or
fourth quarter); the demand for sailboats; the regular-time and overtime production levels; and the ending inventory. Now that these sets and objects have been defined, we can
use them to build a model (containing an objective function and constraints). LINGO will
solve for the RP, OP, and INV once we input (in the DATA section of the program) the
demands and numbers of the quarters.
Line 4 creates the objective function; MIN indicates that we are minimizing.
@SUM(QUARTERS: followed by 400*RP 450*OP 20*INV means sum 400*RP 450*OP 20*INV over all quarters. Thus for each quarter we compute 400*(regulartime production) 450*(overtime production) 20*(ending inventory). Notice that line
4 creates the proper objective function whether there are 4, 40, 400, or 4,000 quarters!
Line 5 says that for each quarter, RP cannot exceed 40. Again, if there were 400 quarters in the planning horizon, this statement would generate 400 constraints.
Together, lines 6 and 7 create constraints for all quarters (except the first) that ensure
that
Ending Inventory for Quarter i (Ending Inventory for Quarter i 1)
(Quarter i Production) (Quarter i Demand)
Notice that unlike LINDO, variables are allowed on the right side of a constraint (and
numbers are allowed on the left side).
Line 8 creates the constraint ensuring that
(Ending Quarter 1 Inventory) (Beginning Quarter 1 Inventory)
(Quarter 1 Production) (Quarter 1 Demand)
Lines 9–12 input the needed data (the number of the quarter and the demand for each
quarter). The DATA section must begin with a DATA: statement and end with an ENDDATA statement. As with LINDO, a LINGO program ends with an END statement.
Notice that once we have created the LINGO model to solve the Sailco example, we
can easily edit the model to solve any n-period production-scheduling model. If we were
solving a 12-quarter problem, we would simply edit (see Remark 3 later) line 2 to QUARTERS/1..12/:TIME,DEM,RP,OP,INV;. Then enter the 12 quarterly demands in line 10 and
change Line 11 to TIME1,2,3,4,5,6,7,8,9,10,11,12;. To find the optimal solution to the
problem either select the Solve command from the LINGO menu or click the button with
4 . 1 0 Matrix Generators, LINGO, and Scaling of LPs
165
MODEL:
SETS:
QUARTERS/Q1,Q2,Q3,Q4/:TIME,DEM,RP,OP,INV;
ENDSETS
MIN=@SUM(QUARTERS:400*RP+450*OP+20*INV);
@FOR(QUARTERS(I):RP(I)<40);
@FOR(QUARTERS(I)|TIME(I)#GT#1:
INV(I)=INV(I-1)+RP(I)+OP(I)-DEM(I););
INV(1)=10+RP(1)+OP(1)-DEM(1);
DATA:
DEM=40,60,75,25;
TIME=1,2,3,4;
ENDDATA
END
MIN
400 RP( Q1) + 450 OP(
+ 450 OP( Q2) + 20 INV(
+ 20 INV( Q3) + 400 RP(
SUBJECT TO
2] RP( Q1) <=
40
3] RP( Q2) <=
40
4] RP( Q3) <=
40
5] RP( Q4) <=
40
6]- INV( Q1) - RP( Q2) - OP(
7]- INV( Q2) - RP( Q3) - OP(
8]- INV( Q3) - RP( Q4) - OP(
9]- RP( Q1) - OP( Q1) + INV(
END
Q1) + 20 INV( Q1) + 400 RP( Q2)
Q2) + 400 RP( Q3) + 450 OP( Q3)
Q4) + 450 OP( Q4) + 20 INV( Q4)
Q2)
Q3)
Q4)
Q1)
+ INV( Q2) =
+ INV( Q3) =
+ INV( Q4) =
= - 30
Global optimal solution found at step:
Objective value:
Variable
TIME( Q1)
TIME( Q2)
TIME( Q3)
TIME( Q4)
DEM( Q1)
DEM( Q2)
DEM( Q3)
DEM( Q4)
RP( Q1)
RP( Q2)
RP( Q3)
RP( Q4)
OP( Q1)
OP( Q2)
OP( Q3)
OP( Q4)
INV( Q1)
INV( Q2)
INV( Q3)
INV( Q4)
FIGURE
Row
1
2
3
4
5
6
7
8
9
11
- 60
- 75
- 25
7
78450.00
Value
1.000000
2.000000
3.000000
4.000000
40.00000
60.00000
75.00000
25.00000
40.00000
40.00000
40.00000
25.00000
0.0000000
10.00000
35.00000
0.0000000
10.00000
0.0000000
0.0000000
0.0000000
Slack or Surplus
78450.00
0.0000000
0.0000000
0.0000000
15.00000
0.0000000
0.0000000
0.0000000
0.0000000
Reduced Cost
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
20.00000
0.0000000
0.0000000
50.00000
0.0000000
20.00000
70.00000
420.0000
Dual Price
1.000000
30.00000
50.00000
50.00000
0.0000000
450.0000
450.0000
400.0000
430.0000
a bull’s-eye.
In this example, we will also look at how to use some of the editing capabilities of
LINGO. Type the first four lines of this model just as you normally would. This will define the sets section and the objective function, and should appear as follows:
SETS:
QUARTERS/Q1,Q2,Q3,Q4/:TIME,DEM,RP,OP,INV;
ENDSETS
MIN = @SUM(QUARTERS:400*RP+450*OP+20*INV);
166
CHAPTER
4 The Simplex Algorithm and Goal Programming
The next line required is the @FOR statement that restricts regular-time production (RP)
to values less than 40. Instead of typing in this entire statement, use LINGO’s Paste Function command as follows:
From the Edit menu, select Paste Function. Notice that you do not have to click on
this, but only highlight it, and a submenu appears.
1
2
From the submenu, select Set, and another submenu appears listing various @ functions.
Select the @FOR function, and a general form of the @FOR statement will appear in
your input window.
3
Replace the general terms of the function with your specific parameters. This statement should then appear as follows:
4
@FOR(QUARTERS(I):RP(I)<40);
Because another @FOR statement is needed to further define constraints on all quarters, you could type this in or
use the Paste Function command again. Using additional
Edit commands, however, will
allow you to copy and paste a
portion of the previous @FOR
statement instead of retyping
it. Do this as follows:
Place your cursor at the
beginning of the @FOR statement previously typed.
@FOR(QUARTERS(I):RP(I)<40
);
From the Edit menu, select
Copy (or use the shortcut
CtrlC) to copy the highlighted text.
3
Place the cursor at the beginning of the next blank line
and press CtrlV to paste the
copied text.
4
You can now type in the re-
1
Hold down the left mouse
button and drag the mouse to
highlight the portion of the
statement that can be reused,
as shown below:
2
TA B L E
Product
Quantity Available
Steel
Rubber
Labor
50 tons
10 tons
150 hours
Labor
Usage (Hrs)
Pollution (Lb)
6
4
3
4
3
2
0.000003 lb
0.000002 lb
0.000001 lb
24
Steel used (tons)
Rubber used (tons)
Labor used (hrs)
Unit profit ($)
26
Group
Profit ($)
Cars
Trucks
Trains
2
.3
10
800
3
.7
12
1,500
5
.2
20
2,500
Needed Exposures (in Millions)
Children
Men
Women
TA B L E
TA B L E
25
Resource
TA B L E
23
1
2
3
TA B L E
15
40
50
27
No.
Watching (million)
Children
Men
Women
Unit cost ($)
Program
Sponge Bob
Friends
Dawson’s Creek
3
1
2
1
15
20
0
4
9
30,000
360,000
80,000
4 . 1 0 Matrix Generators, LINGO, and Scaling of LPs
167
TA B L E
28
District
Whites
Blacks
1
2
3
4
5
6
7
8
9
10
400
200
200
150
150
100
300
120
400
480
100
490
200
140
300
160
250
100
150
160
1
2
3
4
5
6
7
8
9
10
1
2
3
2
1
3
3
3
2
2
3
1
3
4
2
4
2
3
2
1
2
3
2
2
1
2
3
2
3
1
Distance (Miles)
High School 1
High School 2
High School 3
mainder of this line, and the
following lines as shown below.
@FOR(QUARTERS(I)|TIME(I)
#GT#1:
INV(I)=INV(I1)+RP(I)+OP(I)-DEM(I););
INV(1)=10+RP(1)+OP(1)-
4.11
DEM(1);
DATA:
DEM=40,60,75,25;
TIME=1,2,3,4;
ENDDATA
END
While the Copy command
only saved a few keystrokes
in this example, it can save
Degeneracy and the Convergence of the Simplex Algorithm
Theoretically, the simplex algorithm (as we have described it) can fail to find the optimal
solution to an LP. However, LPs arising from actual applications seldom exhibit this unpleasant behavior. For the sake of completeness, however, we now discuss the type of situation in which the simplex can fail. Our discussion depends crucially on the following
relationship (for a max problem) between the z-values for the current bfs and the new bfs
(that is, the bfs after the next pivot):
z-value for new bfs z-value of current bfs
(value of entering variable in new bfs)(coefficient
of entering variable in row 0 of current bfs)
(15)
Equation (15) follows, because each unit by which the entering variable is increased will
increase z by (coefficient of entering variable in row 0 of current bfs). Recall that (coefficient of entering variable in row 0) 0 and (value of entering variable in new bfs) 0. Combining these facts with (15), we can deduce the following facts:
1 If (value of entering variable in new bfs)
for current bfs).
0, then (z-value for new bfs)
(z-value
2 If (value of entering variable in new bfs) 0, then (z-value for new bfs) (z-value
for current bfs).
For the moment, assume that the LP we are solving has the following property: In each
of the LP’s basic feasible solutions, all of the basic variables are positive (positive means
0). An LP with this property is a nondegenerate LP.
If we are using the simplex to solve a nondegenerate LP, fact 1 in the foregoing list
tells us that each iteration of the simplex will increase z. This implies that when the simplex is used to solve a nondegenerate LP, it is impossible to encounter the same bfs twice.
168
CHAPTER
4 The Simplex Algorithm and Goal Programming
To see this, suppose that we are at a basic feasible solution (call it bfs 1) that has z 20.
Fact 1 shows that our next pivot will take us to a bfs (call it bfs 2) and has z 20. Because no future pivot can decrease z, we can never return to a bfs having z 20. Thus,
we can never return to bfs 1. Now recall that every LP has only a finite number of basic
feasible solutions. Because we can never repeat a bfs, this argument shows that when we
use the simplex algorithm to solve a nondegenerate LP, we are guaranteed to find the optimal solution in a finite number of iterations. For example, suppose we are solving a nondegenerate LP with 10 variables and 5 constraints. Such an LP has at most
105 252
basic feasible solutions. We will never repeat a bfs, so we know that for this problem, the
simplex is guaranteed to find an optimal solution after at most 252 pivots.
However, the simplex may fail for a degenerate LP.
An LP is degenerate if it has at least one bfs in which a basic variable is equal to
zero. ■
DEFINITION ■
The following LP is degenerate:
max z 5x1 2x2
s.t.
x1 x2 6
s.t.
x1 x2 0
x1, x2 0
(16)
What happens when we use the simplex algorithm to solve (16)? After adding slack
variables s1 and s2 to the two constraints, we obtain the initial tableau in Table 29. In this
bfs, the basic variable s2 0. Thus, (16) is a degenerate LP. Any bfs that has at least one
basic variable equal to zero (or, equivalently, at least one constraint with a zero right-hand
side) is a degenerate bfs. Because 5 2, we enter x1 into the basis. The winning ratio is 0. This means that after x1 enters the basis, x1 will equal zero in the new bfs. After
doing the pivot, we obtain the tableau in Table 30. Our new bfs has the same z-value as
TA B L E
29
A Degenerate LP
z
x1
x2
s1
s2
rhs
Basic
Variable
Ratio
1
0
0
5
1
1
2
1
1
0
1
0
0
0
1
0
6
0
z2 0
s1 6
s2 0
6*
0*
Ratio
TA B L E
30
First Tableau for (16)
z
x1
x2
s1
s2
rhs
Basic
Variable
1
0
0
0
0
1
7
2
1
0
1
0
5
1
1
0
6
0
z2 0
s1 6
x1 0
6
2
3*
None
4 . 1 1 Degeneracy and the Convergence of the Simplex Algorithm
169
TA B L E
31
Optimal Tableau for (16)
z
x1
x2
s1
s2
rhs
Basic
Variable
1
0
0
0
0
1
0
1
0
3.5
0.5
0.5
1.5
0.5
0.5
21
13
13
z2 21
x2 3
x1 3
the old bfs. This is consistent with fact 2. In the new bfs, all variables have exactly the
same values as they had before the pivot! Thus, our new bfs is also degenerate. Continuing with the simplex, we enter x2 in row 1. The resulting tableau is shown in Table 31.
This is an optimal tableau, so the optimal solution to (16) is z 21, x2 3, x1 3,
s1 s2 = 0.
We can now explain why the simplex may have problems in solving a degenerate LP.
Suppose we are solving a degenerate LP for which the optimal z-value is z 30. If we
begin with a bfs that has, say, z 20, we know (look at the LP we just solved) that it is
possible for a pivot to leave the value of z unchanged. This means that it is possible for a
sequence of pivots like the following to occur:
Initial bfs
After first pivot
After second pivot
After third pivot
After fourth pivot
(bfs
(bfs
(bfs
(bfs
(bfs
1):
2):
3):
4):
1):
z
z
z
z
z
20
20
20
20
20
In this situation, we encounter the same bfs twice. This occurrence is called cycling. If
cycling occurs, then we will loop, or cycle, forever among a set of basic feasible solutions
and never get to the optimal solution (z 30, in our example). Cycling can indeed occur
(see Problem 3 at the end of this section). Fortunately, the simplex algorithm can be modified to ensure that cycling will never occur [see Bland (1977) or Dantzig (1963) for details].† For a practical example of cycling, see Kotiah and Slater (1973).
If an LP has many degenerate basic feasible solutions (or a bfs with many basic variables equal to zero), then the simplex algorithm is often very inefficient. To see why, look
at the feasible region for (16) in Figure 12, the shaded triangle BCD. The extreme points
of the feasible region are B, C, and D. Following the procedure outlined in Section 4.2,
let’s look at the correspondence between the basic feasible solutions to (16) and the extreme points of its feasible region (see Table 32). Three sets of basic variables correspond
to extreme point C. It can be shown that for an LP with n decision variables to be degenerate, n 1 or more of the LP’s constraints (including the sign restrictions xi 0 as
constraints) must be binding at an extreme point.
In (16), the constraints x1 x2 0, x1 0, and x2 0 are all binding at point C.
Each extreme point at which three or more constraints are binding will correspond to
more than one set of basic variables. For example, at point C, s1 must be one of the basic variables, but the other basic variable may be x2, x1, or s2.
†
Bland showed that cycling can be avoided by applying the following rules (assume that slack and excess
variables are numbered xn1, xn2, . . .):
1 Choose as the entering variable (in a max problem) the variable with a negative coefficient in row 0 that
has the smallest subscript.
2 If there is a tie in the ratio test, then break the tie by choosing the winner of the ratio test so that the variable leaving the basis has the smallest subscript.
170
CHAPTER
4 The Simplex Algorithm and Goal Programming
x2
6
B
x1 + x2 = 6
5
4
x1 – x2 = 0
D
3
2
FIGURE
12
Feasible Region for the
LP (16)
1
A
C
1
TA B L E
2
3
4
5
x1
6
32
Three Sets of Basic Variables Correspond to Corner Point C
Basic
Variables
Basic Feasible Solution
Corresponds to
Extreme Point
x1, x2
x1, s1
x1, s2
x2, s1
x2, s2
s1, s2
x1 x2 3, s1 s2 0
x1 0, s1 6, x2 s2 0
x1 6, s2 6, x2 s1 0
x2 0, s1 6, x1 s2 0
x2 6, s2 6, s1 x1 0
s1 6, s2 0, x1 x2 0
D
C
Infeasible
C
B
C
We can now discuss why the simplex algorithm often is an inefficient method for solving degenerate LPs. Suppose an LP is degenerate. Then there may be many sets (maybe
hundreds) of basic variables that correspond to some nonoptimal extreme point. The simplex algorithm might encounter all these sets of basic variables before it finds that it was
at a nonoptimal extreme point. This problem was illustrated (on a small scale) in solving
(16): The simplex took two pivots before it found that point C was suboptimal. Fortunately, some degenerate LPs have a special structure that enables us to solve them by
methods other than the simplex (see, for example, the discussion of the assignment problem in Chapter 7).
PROBLEMS
Group A
1 Even if an LP’s initial tableau is nondegenerate, later
tableaus may exhibit degeneracy. Degenerate tableaus often
occur in the tableau following a tie in the ratio test. To
illustrate this, solve the following LP:
max z 5x1 3x2
s.t.
4x1 2x2 12
s.t.
4x1 x2 10
s.t.
x1 x2 4
x1, x2 0
Also graph the feasible region and show which extreme
points correspond to more than one set of basic variables.
2
Find the optimal solution to the following LP:
min z x1 x2
s.t.
x1 x2 1
s.t.
x1 x2 0
x1, x2 0
4 . 1 1 Degeneracy and the Convergence of the Simplex Algorithm
171
Group B
3 Show that if ties in the ratio test are broken by favoring
row 1 over row 2, then cycling occurs when the following
LP is solved by the simplex:
max z 2x1 3x2 x3 12x4
s.t
2x1 9x2 x3 9x4 0
x1
x2 x33 2x4 0
3
xi 0 (i 1, 2, 3, 4)
5 Show that if Bland’s Rule to prevent cycling is applied
to Problem 4, then cycling does not occur.
6 Consider an LP (maximization problem) in which each
basic feasible solution is nondegenerate. Suppose that xi is
the only variable in our current tableau having a negative
coefficient in row 0. Show that any optimal solution to the
LP must have xi 0.
4 Show that if ties are broken in favor of lower-numbered
rows, then cycling occurs when the simplex method is used
to solve the following LP:
max z 3x1 x2 6x3
9x1 x2 9x3 2x4 0
x1 x32 2x3 x34 0
9x1 x2 9x3 2x4 1
xi 0 (i 1, 2, 3, 4)
4.12
The Big M Method
Recall that the simplex algorithm requires a starting bfs. In all the problems we have
solved so far, we found a starting bfs by using the slack variables as our basic variables.
If an LP has any or equality constraints, however, a starting bfs may not be readily apparent. Example 4 will illustrate that a bfs may be hard to find. When a bfs is not readily apparent, the Big M method (or the two-phase simplex method of Section 4.13) may
be used to solve the problem. In this section, we discuss the Big M method, a version of
the simplex algorithm that first finds a bfs by adding “artificial” variables to the problem.
The objective function of the original LP must, of course, be modified to ensure that the
artificial variables are all equal to 0 at the conclusion of the simplex algorithm. The following example illustrates the Big M method.
EXAMPLE
4
Bevco
Bevco manufactures an orange-flavored soft drink called Oranj by combining orange soda
and orange juice. Each ounce of orange soda contains 0.5 oz of sugar and 1 mg of vitamin C. Each ounce of orange juice contains 0.25 oz of sugar and 3 mg of vitamin C. It
costs Bevco 2¢ to produce an ounce of orange soda and 3¢ to produce an ounce of orange juice. Bevco’s marketing department has decided that each 10-oz bottle of Oranj
must contain at least 20 mg of vitamin C and at most 4 oz of sugar. Use linear programming to determine how Bevco can meet the marketing department’s requirements at minimum cost.
Solution
Let
x1 number of ounces of orange soda in a bottle of Oranj
x2 number of ounces of orange juice in a bottle of Oranj
Then the appropriate LP is
min z 2x1 3x2
1
s.t.
x 14 x2 4
2 1
1
s.t.
2 x1 3x2 20
172
CHAPTER
4 The Simplex Algorithm and Goal Programming
(Sugar constraint)
(Vitamin C constraint)
(17)
s.t.
1
2
x1 x2 10
(10 oz in bottle of Oranj)
x1, x2 0
(The solution will be continued later in this section.)
To put (17) into standard form, we add a slack variable s1 to the sugar constraint and
subtract an excess variable e2 from the vitamin C constraint. After writing the objective
function as z 2x1 3x2 0, we obtain the following standard form:
Row
Row
Row
Row
0:
1:
2:
3:
z 2x1 3x2 s1 e2 0
z 12 x1 14 x2 s1 e2 4
z x1 3x2 s1 e2 20
z x1 x2 s1 e2 10
All variables nonnegative
(18)
In searching for a bfs, we see that s1 4 could be used as a basic (and feasible) variable
for row 1. If we multiply row 2 by 1, we see that e2 20 could be used as a basic
variable for row 2. Unfortunately, e2 20 violates the sign restriction e2 0. Finally,
in row 3 there is no readily apparent basic variable. Thus, in order to use the simplex to
solve (17), rows 2 and 3 each need a basic (and feasible) variable. To remedy this problem, we simply “invent” a basic feasible variable for each constraint that needs one. Because these variables are created by us and are not real variables, we call them artificial
variables. If an artificial variable is added to row i, we label it ai. In the current problem,
we need to add an artificial variable a2 to row 2 and an artificial variable a3 to row 3. The
resulting set of equations is
z
z
z
z
2x1 3x2 s1 e2 a2 a2 0
1
x 14 x2 s1 e2 a2 a2 4
2 1
x1 3x2 s1 e2 a2 a2 20
x1 x2 s1 e2 a2 a3 10
(18)
We now have a bfs: z 0, s1 4, a2 20, a3 10. Unfortunately, there is no guarantee that the optimal solution to (18) will be the same as the optimal solution to (17). In
solving (18), we might obtain an optimal solution in which one or more artificial variables
are positive. Such a solution may not be feasible in the original problem (17). For example, in solving (18), the optimal solution may easily be shown to be z 0, s1 4, a2 20, a3 10, x1 x2 0. This “solution” contains no vitamin C and puts 0 ounces of soda
in a bottle, so it cannot possibly solve our original problem! If the optimal solution to (18)
is to solve (17), then we must make sure that the optimal solution to (18) sets all artificial
variables equal to zero. In a min problem, we can ensure that all the artificial variables will
be zero by adding a term Mai to the objective function for each artificial variable ai. (In a
max problem, add a term Mai to the objective function.) Here M represents a “very large”
positive number. Thus, in (18), we would change our objective function to
min z 2x1 3x2 Ma2 Ma3
Then row 0 will change to
z 2x1 3x2 Ma2 Ma3 0
Modifying the objective function in this way makes it extremely costly for an artificial
variable to be positive. With this modified objective function, it seems reasonable that the
optimal solution to (18) will have a2 a3 0. In this case, the optimal solution to (18)
will solve the original problem (17). It sometimes happens, however, that in solving the
4 . 1 2 The Big M Method
173
analog of (18), some of the artificial variables may assume positive values in the optimal
solution. If this occurs, the original problem has no feasible solution.
For obvious reasons, the method we have just outlined is often called the Big M
method. We now give a formal description of the Big M method.
Description of Big M Method
Step 1 Modify the constraints so that the right-hand side of each constraint is nonnegative. This requires that each constraint with a negative right-hand side be multiplied
through by 1. Remember that if you multiply an inequality by any negative number, the
direction of the inequality is reversed. For example, our method would transform the inequality x1 x2 1 into x1 x2 1. It would also transform x1 x2 2 into
x1 x2 2.
Step 1 Identify each constraint that is now (after step 1) an or constraint. In step
3, we will add an artificial variable to each of these constraints.
Convert each inequality constraint to standard form. This means that if constraint
i is a constraint, we add a slack variable si, and if constraint i is a constraint, we subtract an excess variable ei.
Step 2
Step 3 If (after step 1 has been completed) constraint i is a or constraint, add an
artificial variable ai. Also add the sign restriction ai 0.
Let M denote a very large positive number. If the LP is a min problem, add (for
each artificial variable) Mai to the objective function. If the LP is a max problem, add (for
each artificial variable) Mai to the objective function.
Step 4
Step 5 Because each artificial variable will be in the starting basis, all artificial variables
must be eliminated from row 0 before beginning the simplex. This ensures that we begin
with a canonical form. In choosing the entering variable, remember that M is a very large
positive number. For example, 4M 2 is more positive than 3M 900, and 6M 5
is more negative than 5M 40. Now solve the transformed problem by the simplex. If
all artificial variables are equal to zero in the optimal solution, then we have found the
optimal solution to the original problem. If any artificial variables are positive in the optimal solution, then the original problem is infeasible.†
When an artificial variable leaves the basis, its column may be dropped from future
tableaus because the purpose of an artificial variable is only to get a starting basic feasible solution. Once an artificial variable leaves the basis, we no longer need it. Despite this
fact, we often maintain the artificial variables in all tableaus. The reason for this will become apparent in Section 6.7.
Solution
Example 4 (Continued)
Step 1 Because none of the constraints has a negative right-hand side, we don’t have to
multiply any constraint through by 1.
†
We have ignored the possibility that when the LP (with the artificial variables) is solved, the final tableau
may indicate that the LP is unbounded. If the final tableau indicates the LP is unbounded and all artificial
variables in this tableau equal zero, then the original LP is unbounded. If the final tableau indicates that the
LP is unbounded and at least one artificial variable is positive, then the original LP is infeasible. See Bazaraa
and Jarvis (1990) for details.
174
CHAPTER
4 The Simplex Algorithm and Goal Programming
Constraints 2 and 3 will require artificial variables.
Step 1
Add a slack variable s1 to row 1 and subtract an excess variable e2 from row 2.
The result is
Step 2
min z 2x1 3x2
1
Row 1:
x 14 x2 s1 e2 4
2 1
1
Row 2:
2 x1 3x2 s1 e2 20
1
Row 3:
x2 s1 e2 10
2 x1 Step 3
Add an artificial variable a2 to row 2 and an artificial variable a3 to row 3. The
result is
min z 2x1 3x2
1
Row 1:
x 14 x2 s1 e2 a2 a3 4
2 1
1
Row 2:
2 x1 3x2 s1 e2 a2 a3 20
1
Row 3:
x2 s1 e2 a2 a3 10
2 x1 From this tableau, we see that our initial bfs will be s1 4, a2 20, and a3 10.
Because we are solving a min problem, we add Ma2 Ma3 to the objective function (if we were solving a max problem, we would add Ma2 Ma3). This makes a2 and
a3 very unattractive, and the act of minimizing z will cause a2 and a3 to be zero. The objective function is now
Step 4
min z 2x1 3x2 Ma2 Ma3
Step 5
Row 0 is now
z 2x1 3x2 Ma2 Ma3 0
Because a2 and a3 are in our starting bfs (that’s why we introduced them), they must be
eliminated from row 0. To eliminate a2 and a3 from row 0, simply replace row 0 by row
0 M(row 2) M(row 3). This yields
Row 0:
z
M(row 2):
M(row 3):
New row 0: z (2M 2x1 3x2
Ma2 Ma3 0
Mx1 3Mx2 Me2 Ma2 Ma3 20M
Mx1 Mx2
Ma3 10M
2)x1 (4M 3)x2 Me2 Ma2 Ma3 30M
Combining the new row 0 with rows 1–3 yields the initial tableau shown in Table 33.
We are solving a min problem, so the variable with the most positive coefficient in row
0 should enter the basis. Because 4M 3 2M 2, variable x2 should enter the basis.
The ratio test indicates that x2 should enter the basis in row 2, which means the artificial
variable a2 will leave the basis. The most difficult part of doing the pivot is eliminating
TA B L E
33
Initial Tableau for Bevco
z
x1
x2
s1
e2
a2
a3
rhs
1
0
0
0
2M 2
4M 3
1
2
1
4
1
1
3
1
0
1
0
0
M
0
1
0
0
0
1
0
0
0
0
1
30M
4
20
10
4 . 1 2 The Big M Method
Basic
Variable
z2
s1
a2
a3
30M
4
20
10
Ratio
16
20
*
3
10
175
34
TA B L E
First Tableau for Bevco
z
1
0
0
0
x1
2M3
3
5
12
1
3
2
3
x2
s1
e2
a2
0
0
0
1
1
0
0
0
M3
3
1
12
13
13
34M
3
112
13
13
a3
rhs
0
6010M
3
7
3
20
3
10
3
0
0
1
Basic
Variable
z2 s1 x2 a3 6010M
3
7
3
20
3
10
3
Ratio
28
5
20*
25*
x2 from row 0. First, replace row 2 by 13 (row 2). Thus, the new row 2 is
1
x
3 1
x2 13 e2 13 a2 20
3
We can now eliminate x2 from row 0 by adding (4M 3)(new row 2) to row 0 or
(3 4M)(new row 2) row 0. Now
(3 4M)(new row 2)
(3 4M)x1
(3 4M)e2
(3 4M)a2
20(3 4M)
(3 4M)x2 3
3
3
3
Row 0:
z (2M 2)x1 (4M 3)x2 Me2 30M
New row 0: z (2M 3)x1
(M 3)e2
(3 4M)a2
60 10M
3
3
3
3
After using EROs to eliminate x2 from row 1 and row 3, we obtain the tableau in Table
M3
34. Because 2M33
, we next enter x1 into the basis. The ratio test indicates that x1
3
should enter the basis in the third row of the current tableau. Then a3 will leave the basis, and our next tableau will have a2 a3 0. To enter x1 into the basis in row 3, we
first replace row 3 by 32 (row 3). Thus, new row 3 will be
x1 e2
a
3a
2 3 5
2
2
2
To eliminate x1 from row 0, we replace row 0 by row 0 (3 2M)(new row 3)/3.
(2M 3)x1
(M 3)e2
(3 4M)a2
60 10M
3
3
3
3
(3 2M)(new row 3) (3 2M)x1
(3 2M)e2
(2M 3)a2
:
3
3
6
6
(3 2M)a3
15 10M
2
3
e2
(1 2M)a2
(3 2M)a3
New row 0:
z
25
2
2
2
Row 0:
z
New row 1 and new row 2 are computed as usual, yielding the tableau in Table 35. Because all variables in row 0 have nonpositive coefficients, this is an optimal tableau; all
artificial variables are equal to zero in this tableau, so we have found the optimal solution
to the Bevco problem: z 25, x1 x2 5, s1 14 , e2 0. This means that Bevco can
hold the cost of producing a 10-oz bottle of Oranj to 25¢ by mixing 5 oz of orange soda
and 5 oz of orange juice. Note that the a2 column could have been dropped after a2 left
the basis (at the conclusion of the first pivot), and the a3 column could have been dropped
after a3 left the basis (at the conclusion of the second pivot).
176
CHAPTER
4 The Simplex Algorithm and Goal Programming
TA B L E
35
Optimal Tableau for Bevco
z
x1
x2
s1
e2
1
0
0
0
2
0
0
0
1
0
0
1
0
0
1
0
0
1
1
8
1
2
1
2
a2
a3
rhs
Basic
Variable
12M
2
32M
2
25
z2 25
1
8
1
2
1
2
5
8
1
2
3
2
1
4
s1 1
4
5
x2 5
5
x1 5
How to Spot an Infeasible LP
We now modify the Bevco problem by requiring that a 10-oz bottle of Oranj contain at
least 36 mg of vitamin C. Even 10 oz of orange juice contain only 3(10) 30 mg of vitamin C, so we know that Bevco cannot possibly meet the new vitamin C requirement.
This means that Bevco’s LP should now have no feasible solution. Let’s see how the Big
M method reveals the LP’s infeasibility. We have changed Bevco’s LP to
min z 2x1 3x2
1
s.t.
x 14 x2 4
2 1
1
s.t.
2 x1 3x2 36
1
s.t.
x2 10
2 x1 x1, x2 0
(Sugar constraint)
(Vitamin C constraint)
(10 oz constraint)
(19)
After going through Steps 1–5 of the Big M method, we obtain the initial tableau in Table
36. Because 4M 3 2M 2, we enter x2 into the basis. The ratio test indicates that
x2 should be entered in row 3, causing a3 to leave the basis. After entering x2 into the basis, we obtain the tableau in Table 37. Because each variable has a nonpositive coefficient
in row 0, this is an optimal tableau. The optimal solution indicated by this tableau is z 30 6M, s1 32 , a2 6, x2 10, a3 e2 x1 0. An artificial variable (a2) is
positive in the optimal tableau, so Step 5 shows that the original LP has no feasible solution.† In summary, if any artificial variable is positive in the optimal Big M tableau,
then the original LP has no feasible solution.
TA B L E
36
Initial Tableau for Bevco (Infeasible)
z
x1
x2
s1
e2
a2
a3
rhs
1
0
0
0
2M 2
4M 3
1
1
3
1
0
1
0
0
M
0
1
0
0
0
1
0
0
0
0
1
46M
4
36
10
1
2
1
4
z2
s1
a2
a3
Basic
Variable
Ratio
16
12
10*
46M
4
36
10
To explain why (19) can have no feasible solution, suppose that it does (x1, x2). Clearly, if we set a3 a2 0, (x1, x2) will be feasible for our modified LP (the LP with artificial variables). If we substitute (x1, x2) into
the modified objective function (z 2x1 3x2 Ma2 Ma3), we obtain z 2x1 3x2 (this follows because a3 a2 0). Because M is large, this z-value is certainly less than 6M 30. This contradicts the fact
that the best z-value for our modified objective function is 6M 30. This means that our original LP (19)
must have no feasible solution.
†
4 . 1 2 The Big M Method
177
TA B L E
37
Tableau Indicating Infeasibility for Bevco (Infeasible)
z
x1
s2
s1
e2
a2
a3
rhs
1
0
0
0
1 2M
1
4
2
1
0
0
0
1
0
1
0
0
M
0
1
0
0
0
1
0
3 4M
1
4
3
1
30 6M
3
2
6
10
Basic
Variable
z2 6M 30
3
s1 2
a2 6
x2 10
Note that when the Big M method is used, it is difficult to determine how large M should
be. Generally, M is chosen to be at least 100 times larger than the largest coefficient in the
original objective function. The introduction of such large numbers into the problem can
cause roundoff errors and other computational difficulties. For this reason, most computer
codes solve LPs by using the two-phase simplex method (described in Section 4.13).
PROBLEMS
Group A
Use the Big M method to solve the following LPs:
1
2
3
min z 4x1 4x2 x3
s.t.
2x1 x2 3x3 2
2x1 x2
3
2x1 x2 3x3 3
x1, x2, x3 0
min z 2x1 3x2
s.t.
2x1 x2 4
s.t.
x1 x2 1
x1, x2 0
max z 3x1 x2
s.t.
x1 x2 3
2x1 x2 4
x1 x2 3
x1, x2 0
4.13
4
min z 3x1
s.t.
2x1 2x2 6
3x1 2x2 4
x1, x2 0
5
min z x1 x2
s.t.
2x1 x2 2x3 4
x1 x2 2x3 2
x1, x2, x3 0
6
min z x1 x2
s.t.
x1 2x2 2
2x1 2x2 4
x1, x2 0
The Two-Phase Simplex Method†
When a basic feasible solution is not readily available, the two-phase simplex method may
be used as an alternative to the Big M method. In the two-phase simplex method, we add artificial variables to the same constraints as we did in the Big M method. Then we find a bfs
to the original LP by solving the Phase I LP. In the Phase I LP, the objective function is to
minimize the sum of all artificial variables. At the completion of Phase I, we reintroduce the
original LP’s objective function and determine the optimal solution to the original LP.
The following steps describe the two-phase simplex method. Note that steps 1–3 for
the two-phase simplex are identical to steps 1–3 for the Big M method.
†
This section covers topics that may be omitted with no loss of continuity.
178
CHAPTER
4 The Simplex Algorithm and Goal Programming
Step 1 Modify the constraints so that the right-hand side of each constraint is nonnegative.
This requires that each constraint with a negative right-hand side be multiplied through by 1.
Step 1 Identify each constraint that is now (after step 1) an or constraint. In step
3, we will add an artificial variable to each constraint.
Convert each inequality constraint to the standard form. If constraint i is a constraint,
then add a slack variable si. If constraint i is a constraint, subtract an excess variable ei.
Step 2
If (after step 1) constraint i is a or constraint, add an artificial variable ai.
Also add the sign restriction ai 0.
Step 3
For now, ignore the original LP’s objective function. Instead solve an LP whose
objective function is min w (sum of all the artificial variables). This is called the Phase
I LP. The act of solving the Phase I LP will force the artificial variables to be zero.
Step 4
Because each ai 0, solving the Phase I LP will result in one of the following three cases:
The optimal value of w is greater than zero. In this case, the original LP has no
feasible solution.
Case 1
Case 2 The optimal value of w is equal to zero, and no artificial variables are in the optimal Phase I basis. In this case, we drop all columns in the optimal Phase I tableau that
correspond to the artificial variables. We now combine the original objective function with
the constraints from the optimal Phase I tableau. This yields the Phase II LP. The optimal solution to the Phase II LP is the optimal solution to the original LP.
The optimal value of w is equal to zero and at least one artificial variable is in
the optimal Phase I basis. In this case, we can find the optimal solution to the original LP
if at the end of Phase I we drop from the optimal Phase I tableau all nonbasic artificial
variables and any variable from the original problem that has a negative coefficient in row
0 of the optimal Phase I tableau.
Case 3
Before solving examples illustrating Cases 1–3, we briefly discuss why w 0 corresponds to the original LP having no feasible solution and w 0 corresponds to the original LP having at least one feasible solution.
Phases I and II Feasible Solutions
Suppose the original LP is infeasible. Then the only way to obtain a feasible solution to the
Phase I LP is to let at least one artificial variable be positive. In this situation, w 0 (Case
1) will result. On the other hand, if the original LP has a feasible solution, then this feasible
solution (with all ai 0) is feasible in the Phase I LP and yields w 0. This means that if
the original LP has a feasible solution, the optimal Phase I solution will have w 0. We
now work through examples of Cases 1 and 2 of the two-phase simplex method.
EXAMPLE
5
Two-Phase Simplex: Case 2
First we use the two-phase simplex to solve the Bevco problem of Section 4.12. Recall
that the Bevco problem was
min z 2x1 3x2
1
s.t.
x 14 x2 4
2 1
x1 3x2 20
x1 3x2 10
x1, x2 0
4 . 1 3 The Two-Phase Simplex Method
179
Solution
As in the Big M method, steps 1–3 transform the constraints into
1
x
2 1
14 x2 s1 e2 a2 a3 4
x1 3x2 s1 e2 a2 a3 20
1
x2 s1 e2 a2 a3 10
2 x1 1
2
Step 4 yields the following Phase I LP:
min w a2 a3
1
s.t.
x 14 x2 s1 e2 a2 a 4
2 1
1
s.t.
2 x1 3x2 s1 e2 a2 a3 20
1
s.t.
x2 s1 e2 a2 a3 10
2 x1 This set of equations yields a starting bfs for Phase I (s1 4, a2 20, a3 10).
Note, however, that the row 0 for this tableau (w a2 a3 0) contains the basic
variables a2 and a3. As in the Big M method, a2 and a3 must be eliminated from row 0
before we can solve Phase I. To eliminate a2 and a3 from row 0, simply add row 2 and
row 3 to row 0:
Row 0:
w 2x1 4x2 e2 a2 a3 0
Row 2:
x1 3x2 e2 a2 a3 20
Row 3:
x1 x2 e2 a2 a3 10
New row 0: w 2x1 4x2 e2 a2 a3 30
Combining the new row 0 with the Phase I constraints yields the initial Phase I tableau
in Table 38. Because the Phase I problem is always a min problem (even if the original
LP is a max problem), we enter x2 into the basis. The ratio test indicates that x2 will enter the basis in row 2, with a2 exiting the basis. After performing the necessary EROs, we
obtain the tableau in Table 39. Because 5 20 and 5 258 , x1 enters the basis in row 3.
Thus, a3 will leave the basis. Because a2 and a3 will be nonbasic after the current pivot
is completed, we already know that the next tableau will be optimal for Phase I. A glance
at the tableau in Table 40 confirms this fact.
Because w 0, Phase I has been concluded. The basic feasible solution s1 14 , x2 5, x1 5 has been found. No artificial variables are in the optimal Phase I basis, so the
problem is an example of Case 2. We now drop the columns for the artificial variables a2
and a3 (we no longer need them) and reintroduce the original objective function.
min z 2x1 3x2
or
z 2x1 3x2 0
Because x1 and x2 are both in the optimal Phase I basis, they must be eliminated from the
Phase II row 0. We add 3(row 2) 2(row 3) of the optimal Phase I tableau to row 0.
Phase II row 0:
z 2x1 3x2 2 e2 0
3(row 2):
3x2 32 e2 15
1
2(row 3):
2x1
2 e2 10
New Phase II row 0: z 2x1 3x2 12 e2 25
1
We now begin Phase II with the following set of equations:
min z s1 x2 x1x2s1 180
CHAPTER
4 The Simplex Algorithm and Goal Programming
1
e 25
2 2
1
e 14
8 2
1
e 5
2 2
1
e
5
2 2
TA B L E
38
Initial Phase I Tableau for Bevco
w
x1
x2
s1
e2
a2
a3
rhs
Basic
Variable
1
2
4
0
1
0
0
30
w 30
0
1
2
1
4
1
0
0
0
24
s1 4
0
1
3
0
1
1
0
20
a2 20
20
*
3
0
1
1
0
0
0
1
10
a3 10
10*
TA B L E
Ratio
16*
39
Phase I Tableau for Bevco after One Iteration
w
x1
1
2
3
5
12
1
3
2
3
0
0
0
TA B L E
x2
s1
e2
a2
0
0
0
1
1
0
0
0
1
3
1
12
13
1
3
43
112
1
3
13
a3
rhs
0
10
3
7
3
20
3
10
3
0
0
1
Basic
Variable
w s1 x2 a3 10
3
7
3
20
3
10
3
Ratio
28
5
20*
25*
40
Optimal Phase I Tableau for Bevco
w
x1
x2
s1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
a2
a3
rhs
Basic
Variable
0
1
1
0
w 0
18
12
12
1
8
1
2
12
58
12
3
2
1
4
s1 5
x2 5
5
x1 5
e2
1
4
This is optimal. Thus, in this problem, Phase II requires no pivots to find an optimal solution. If the Phase II row 0 does not indicate an optimal tableau, then simply continue
with the simplex until an optimal row 0 is obtained. In summary, our optimal Phase II
tableau shows that the optimal solution to the Bevco problem is z 25, x1 5, x2 5,
s1 14 , and e2 0. This agrees, of course, with the optimal solution found by the Big M
method in Section 4.12.
EXAMPLE
6
Two-Phase Simplex: Case I
To illustrate Case 1, we now modify Bevco’s problem so that 36 mg of vitamin C are required. From Section 4.12, we know that this problem is infeasible. This means that the
optimal Phase I solution should have w 0 (Case 1). To show that this is true, we begin with the original problem:
min z 2x1 3x2
1
s.t.
x 14 x2 4
2 1
x1 3x2 36
x1 x2 10
x1, x2 0
4 . 1 3 The Two-Phase Simplex Method
181
41
TA B L E
Initial Phase I Tableau for Bevco (Infeasible)
w
x1
x2
s1
e2
a2
a3
rhs
1
0
0
0
2
4
1
2
1
4
1
1
3
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
46
4
36
10
Basic
Variable
Ratio
16
12
10*
w
s1
a2
a3
46
4
36
0
42
TA B L E
Tableau Indicating Infeasibility for Bevco (Infeasible)
Solution
w
x1
x2
s1
e2
a2
a3
1
0
0
0
2
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
4
14
3
1
1
4
2
1
rhs
6
3
2
6
10
Basic
Variable
w 6
s1 32
a2 6
x2 10
After completing steps 1–4 of the two-phase simplex, we obtain the following Phase I
problem:
min w a2 a3
1
s.t.
x 14 x2 s1 e2 a2 a3 4
2 1
1
s.t.
2 x1 3x2 s1 e2 a2 a3 36
1
s.t.
x2 s1 e2 a2 a3 10
2 x1 From this set of equations, we see that the initial Phase I bfs is s1 4, a2 36, and
a3 10. Because the basic variables a2 and a3 occur in the Phase I objective function, they
must be eliminated from the Phase I row 0. To do this, we add rows 2 and 3 to row 0:
Row 0:
w 2x1 4x2 e2 a2 a3 0
Row 2:
x1 3x2 e2 a2 a3 36
Row 3:
x1 x2 e2 a2 a3 10
New row 0: w 2x1 4x2 e2 a2 a3 46
With the new row 0, the initial Phase I tableau is as shown in Table 41. Because 4 2,
we should enter x2 into the basis. The ratio test indicates that x2 should enter the basis in
row 3, forcing a3 to leave the basis. The resulting tableau is shown in Table 42. No variable in row 0 has a positive coefficient, so this is an optimal Phase I tableau, and since
the optimal value of w is 6 0, the original LP must have no feasible solution. This is
reasonable, because if the original LP had a feasible solution, it would have been feasible
in the Phase I LP (after setting a2 a3 0). This feasible solution would have yielded
w 0. Because the simplex could not find a Phase I solution with w 0, the original
LP must have no feasible solution.
REMARKS
182
1 As with the Big M method, the column for any artificial variable may be dropped from future
tableaus as soon as the artificial variable leaves the basis. Thus, when we solved the Bevco problem, a2’s column could have been dropped after the first Phase I pivot, and a3’s column could have
been dropped after the second Phase I pivot.
CHAPTER
4 The Simplex Algorithm and Goal Programming
2 It can be shown that (barring ties for the entering variable and in the ratio test) the Big M method
and Phase I of the two-phase method make the same sequence of pivots. Despite this equivalence,
most computer codes utilize the two-phase method to find a bfs. This is because M, being a large
positive number, may cause roundoff errors and other computational difficulties. The two-phase
method does not introduce any large numbers into the objective function, so it avoids this problem.
EXAMPLE
7
Two-Phase Simplex: Case 3
Use the two-phase simplex method to solve the following LP:
min z 40x1 10x2 7x5 14x6
s.t.
2x1 x2 x3 x4 2x5
s.t.
2x1 x2 x3 x4 2x5
s.t.
2x1 x2 x3 x4 x5
s.t.
2x1 2x2 x3 x4 2x5
All xi 0
Solution
x6
x6
x6
x6
0
0
3
4
We may use x4 as a basic variable for the fourth constraint and use artificial variables a1,
a2, and a3 as basic variables for the first three constraints. Our Phase I objective is to minimize w a1 a2 a3. After adding the first three constraints to w a1 a2 a3 0, we obtain the initial Phase I tableau shown in Table 43.
Even though x5 has the most positive coefficient in row 0, we choose to enter x3 into
the basis (as a basic variable in row 3). We see that this will immediately yield w 0.
Our final Phase I tableau is shown in Table 44.
Because w 0, we now have an optimal Phase I tableau. Two artificial variables remain in the basis (a1 and a2) at a zero level. We may now drop the artificial variable a3
from our first Phase II tableau. The only original variable with a negative coefficient in
the optimal Phase I tableau is x1, so we may drop x1 from all future tableaus. This is because from the optimal Phase I tableau we find w x1. This implies that x1 can never become positive during Phase II, so we may drop x1 from all future tableaus. Because z 40x1 10x2 7x5 14x6 0 contains no basic variables, our initial tableau for Phase
II is as in Table 45.
TA B L E
43
w
x1
x2
x3
x4
x5
x6
a1
a2
a3
rhs
Basic
Variable
1
0
0
0
0
0
1
2
1
0
0
1
1
0
2
1
0
0
1
1
0
0
0
0
1
1
2
2
1
2
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
3
0
0
3
4
w 3
a1 0
a2 0
a3 3
x4 4
TA B L E
44
w
x1
x2
x3
x4
x5
x6
a1
a2
a3
rhs
Basic
Variable
1
0
0
0
0
1
1
2
1
1
0
1
1
0
2
0
0
0
1
0
0
0
0
0
1
0
2
2
1
1
0
0
0
1
2
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
3
1
w 0
a1 0
a2 0
x3 3
x4 1
4 . 1 3 The Two-Phase Simplex Method
183
45
TA B L E
z
x2
x3
x4
x5
x6
a1
a2
rhs
Basic
Variables
1
0
0
0
0
10
1
1
0
2
0
0
0
1
0
0
0
0
0
1
7
2
2
1
1
14
0
0
1
2
0
1
0
0
0
0
0
1
0
0
0
0
0
3
1
z1 a1 a2 x3 x4 TA B L E
0
0
0
3
1
46
z
x2
x3
x4
x5
x6
a1
a2
rhs
1
0
0
0
4
0
1
1
0
0
0
1
7
0
0
0
2
0
0
0
1
0
0
0
0
3
2
1
2
0
1
0
0
7
0
0
1
2
1
2
0
0
0
0
1
0
0
7
2
1
2
Basic
Variables
z1 7
a1 0
a2 0
x3 72
x4 1
2
We now enter x6 into the basis in row 4 and obtain the optimal tableau shown in
Table 46.
The optimal solution to our original LP is z 7, x3 7/2, x4 12 , x2 x5 x6 x3 0.
PROBLEMS
Group A
1 Use the two-phase simplex method to solve the Section
4.12 problems.
4.14
2 Explain why the Phase I LP will usually have alternative
optimal solutions.
Unrestricted-in-Sign Variables
In solving LPs with the simplex algorithm, we used the ratio test to determine the row in which
the entering variable became a basic variable. Recall that the ratio test depended on the fact
that any feasible point required all variables to be nonnegative. Thus, if some variables are
allowed to be unrestricted in sign (urs), the ratio test and therefore the simplex algorithm are
no longer valid. In this section, we show how an LP with unrestricted-in-sign variables can be
transformed into an LP in which all variables are required to be nonnegative.
For each urs variable xi, we begin by defining two new variables xi and xi. Then substitute xi xi for xi in each constraint and in the objective function. Also add the sign
restrictions xi 0 and xi 0. The effect of this substitution is to express xi as the difference of the two nonnegative variables xi and xi. Because all variables are now required
to be nonnegative, we can proceed with the simplex. As we will soon see, no basic feasible solution can have both xi
0 and xi
0. This means that for any basic feasible
solution, each urs variable xi must fall into one of the following three cases:
184
CHAPTER
4 The Simplex Algorithm and Goal Programming
Case 1 xi
0 and xi 0. This case occurs if a bfs has xi 0. In this case, xi xi xi xi . Thus, xi xi . For example, if xi 3 in a bfs, this will be indicated by xi 3
and xi 0.
xi 0 and xi 0. This case occurs if xi 0. Because xi xi xi, we obtain
xi xi. For example, if xi 5 in a bfs, we will have xi 0 and xi 5. Then xi 0 5 5.
Case 2
Case 3
xi xi 0. In this case, xi 0 0 0.
In solving the following example, we will learn why no bfs can ever have both xi
and xi 0.
EXAMPLE
8
0
Using urs Variables
A baker has 30 oz of flour and 5 packages of yeast. Baking a loaf of bread requires 5 oz
of flour and 1 package of yeast. Each loaf of bread can be sold for 30¢. The baker may
purchase additional flour at 4¢/oz or sell leftover flour at the same price. Formulate and
solve an LP to help the baker maximize profits (revenues costs).
Solution
Define
x1 number of loaves of bread baked
x2 number of ounces by which flour supply is increased by cash transactions
Therefore, x2 0 means that x2 oz of flour were purchased, and x2 0 means that x2
ounces of flour were sold (x2 0 means no flour was bought or sold). After noting that
x1 0 and x2 is urs, the appropriate LP is
max z 30x1 4x2
s.t.
5x1 30 x2
s.t.
5x1 5 x2
x1 0, x2 urs
(Flour constraint)
(Yeast constraint)
Because x2 is urs, we substitute x2 x2 for x2 in the objective function and constraints.
This yields
max z 30x1 4x2 4x2
s.t.
5x1 30 x2 x2
s.t.
5x1 5
s.t.
5x1, x2, x2 0
After transforming the objective function to row 0 form and adding slack variables s1
and s2 to the two constraints, we obtain the initial tableau in Table 47. Notice that the x2
column is simply the negative of the x2 column. We will see that no matter how many pivots we make, the x2 column will always be the negative of the x2 column. (See Problem 6
for a proof of this assertion.)
Because x1 has the most negative coefficient in row 0, x1 enters the basis—in row 2.
The resulting tableau is shown in Table 48. Again note that the x2 column is the negative
of the x2 column.
Because x2 now has the most negative coefficient in row 0, we enter x2 into the basis
in row 1. The resulting tableau is shown in Table 49. Observe that the x2 column is still
the negative of the x2 column. This is an optimal tableau, so the optimal solution to the
baker’s problem is z 170, x1 5, x 2 5, x2 0, s1 s2 0. Thus, the baker can
earn a profit of 170¢ by baking 5 loaves of bread. Because x2 x2 x2 0 5 5,
4 . 1 4 Unrestricted-in-Sign Variables
185
47
TA B L E
Initial Tableau for urs LP
z
x1
x2
x 2
s1
s2
rhs
Basic
Variable
Ratio
1
0
0
30
5
1
4
1
0
4
1
0
0
1
0
0
0
1
0
30
5
z2 0
s1 30
s2 5
6*
5*
48
TA B L E
First Tableau for urs LP
z
x1
x2
x 2
s1
s2
rhs
Basic
Variable
Ratio
1
0
0
0
0
1
4
1
0
4
1
0
0
1
0
30
5
1
150
175
175
z2 150
s1 5
x1 5
5*
None
49
TA B L E
Optimal Tableau for urs LP
z
x1
x2
x 2
s1
s2
rhs
Basic
Variable
1
0
0
0
0
1
0
1
0
0
1
0
4
1
0
10
5
1
170
175
175
z2 170
x2 5
x1 5
the baker should sell 5 oz of flour. It is optimal for the baker to sell flour, because having 5 packages of yeast limits the baker to manufacturing at most 5 loaves of bread. These
5 loaves of bread use 5(5) 25 oz of flour, so 30 25 5 oz of flour are left to sell.
The variables x2 and x2 will never both be basic variables in the same tableau. To see
why, suppose that x2 is basic (as it is in the optimal tableau). Then the x2 column will contain a single 1 and have every other entry equal to 0. The x2 column is always the negative of the x2 column, so the x2 column will contain a single 1 and have all other entries equal to 0. Such a tableau cannot also have x2 as a basic feasible variable. The same
reasoning shows that if xi is urs, then xi and xi cannot both be basic variables in the same
tableau. This means that in any tableau, xi , xi , or both must equal 0 and that one of Cases
1–3 must always occur.
The following example shows how urs variables can be used to model the productionsmoothing costs discussed in the Sailco example of Section 3.10.
EXAMPLE
9
Modeling Production-Smoothing Costs
Mondo Motorcycles is determining its production schedule for the next four quarters. Demand for motorcycles will be as follows: quarter 1—40; quarter 2—70; quarter 3—50;
quarter 4—20. Mondo incurs four types of costs.
1
186
It costs Mondo $400 to manufacture each motorcycle.
CHAPTER
4 The Simplex Algorithm and Goal Programming
2
At the end of each quarter, a holding cost of $100 per motorcycle is incurred.
Increasing production from one quarter to the next incurs costs for training employees. It is estimated that a cost of $700 per motorcycle is incurred if production is increased
from one quarter to the next.
3
Decreasing production from one quarter to the next incurs costs for severance pay, decreasing morale, and so forth. It is estimated that a cost of $600 per motorcycle is incurred if production is decreased from one quarter to the next.
4
All demands must be met on time, and a quarter’s production may be used to meet demand for the current quarter. During the quarter immediately preceding quarter 1, 50 Mondos were produced. Assume that at the beginning of quarter 1, no Mondos are in inventory.
Formulate an LP that minimizes Mondo’s total cost during the next four quarters.
Solution
To express inventory and production costs, we define for t 1, 2, 3, 4,
pt number of motorcycles produced during quarter t
it inventory at end of quarter t
To determine smoothing costs (costs 3 and 4), we define
xt amount by which quarter t production exceeds quarter t 1 production
Because xt is unrestricted in sign, we may write xt xt xt, where xt 0 and xt 0.
We know that if xt 0, then xt xt and xt 0. Also, if xt 0, then xt xt and
xt 0. This means that
xt increase in quarter t production over quarter t 1 production
(xt 0 if period t production is less than period t 1 production)
xt decrease in quarter t production from quarter t 1 production
(xt 0 if period t production is more than period t 1 production)
For example, if p1 30 and p2 50, we have x2 50 30 20, x2 20, x2 0.
Similarly, if p1 30 and p2 15, we have x2 15 30 15, x2 0, and x2 15.
The variables xt and xt can now be used to express the smoothing costs for quarter t.
We may now express Mondo’s total cost as
Total cost production cost inventory cost
smoothing cost due to increasing production
smoothing cost due to decreasing production
400(p1 p2 p3 p4) 100(i1 i2 i3 i4)
700(x1 x2 x3 x4) 600(x1 x2 x3 x4)
To complete the formulation, we add two types of constraints. First we need inventory
constraints (as in the Sailco problem of Section 3.10) that relate the inventory from the
current quarter to the past quarter’s inventory and the current quarter’s production. For
quarter t, the inventory constraint takes the form
Quarter t inventory (quarter t 1 inventory) (quarter t production)
(quarter t demand)
For t 1, 2, 3, 4, respectively, this yields the following four constraints:
i1 0 p1 40
i3 i2 p3 50
i2 i1 p2 70
i4 i3 p4 20
4 . 1 4 Unrestricted-in-Sign Variables
187
The sign restrictions it 0 (t 1, 2, 3, 4) ensure that each quarter’s demands will be met
on time.
The second type of constraint reflects the fact that pt, pt1, xt, and xt are related. This
relationship is captured by
(quarter t production) (quarter t 1 production) xt xt xt
For t 1, 2, 3, 4, this relation yields the following four constraints:
p1 50 x1 x1
p3 p2 x3 x3
p2 p1 x2 x2
p4 p3 x4 x4
Combining the objective function, the four inventory constraints, the last four constraints,
and the sign restrictions (it, pt, xt , xt 0 for t 1, 2, 3, 4), we obtain the following LP:
min z 400p1 400p2 400p3 400p4 100i1 100i2 100i3 100i4
700x1 700x2 700x3 700x4 600x1 600x2 600x3 600x4
s.t.
s.t.
s.t.
s.t.
s.t.
s.t.
s.t.
s.t.
s.t.
i1 0 p1 40
i2 i1 p2 70
i3 i2 p3 50
i4 i3 p4 20
p1 50 x1 x1
p2 p1 x2 x2
p3 p2 x3 x3
p4 p3 x4 x4
it, pt, xt , xt 0 (t 1, 2, 3, 4)
As in Example 7, the column for xt in the constraints is the negative of the xt column.
Thus, as in Example 7, no bfs to Mondo’s LP can have both xt
0 and xt
0. This
means that xt actually is the increase in production during quarter t, and xt actually is the
amount by which production decreases during quarter t.
There is another way to show that the optimal solution will not have both xt 0 and
xt 0. Suppose, for example, that p2 70 and p1 60. Then the constraint
p2 p1 70 60 x2 x2
(20)
can be satisfied by many combinations of x2 and x2. For example, x2 10 and x2 0 will
satisfy (20), as will x2 20, and x2 10; x2 40 and x2 30; and so on. If p2 p1 10,
the optimal LP solution will always choose x2 10 and x2 0 over any other possibility. To
see why, look at Mondo’s objective function. If x2 10 and x2 0, then x2 and x2 contribute
10(700) $7,000 in smoothing costs. On the other hand, any other choice of x2 and x2 satisfying (20) will contribute more than $7,000 in smoothing costs. For example, x2 20 and
x2 10 contributes 20(700) 10(600) $20,000 in smoothing costs. We are minimizing
total cost, so the simplex will never choose a solution where xt
0 and xt
0 both hold.
The optimal solution to Mondo’s problem is p1 55, p2 55, p3 50, p4 50. This
solution incurs a total cost of $95,000. The optimal production schedule produces a total
of 210 Mondos. Because total demand for the four quarters is only 180 Mondos, there
will be an ending inventory of 210 180 30 Mondos. Note that this is in contrast to
the Sailco inventory model of Section 3.10, in which ending inventory was always 0. The
optimal solution to the Mondo problem has a nonzero inventory in quarter 4, because for
the quarter 4 inventory to be 0, quarter 4 production must be lower than quarter 3 production. Rather than incur the excessive smoothing costs associated with this strategy, the
optimal solution opts for holding 30 Mondos in inventory at the end of quarter 4.
188
CHAPTER
4 The Simplex Algorithm and Goal Programming
PROBLEMS
Group A
1 Suppose that Mondo no longer must meet demands on
time. For each quarter that demand for a motorcycle is
unmet, a penalty or shortage cost of $110 per motorcycle
short is assessed. Thus, demand can now be backlogged. All
demands must be met, however, by the end of quarter 4.
Modify the formulation of the Mondo problem to allow for
backlogged demand. (Hint: Unmet demand corresponds to
it 0. Thus, it is now urs, and we must substitute it it it. Now it will be the amount of demand that is unmet at
the end of quarter t.)
2
FIGURE
13
Steel manufacturing area
(700, 600)
Shipping area
(0, 0)
Use the simplex algorithm to solve the following LP:
max z 2x1 x2
s.t.
3x1 x2 6
s.t.
3x1 x2 4
x1 0, x2 urs
Group B
3 During the next three months, Steelco faces the
following demands for steel: 100 tons (month 1); 200 tons
(month 2); 50 tons (month 3). During any month, a worker
can produce up to 15 tons of steel. Each worker is paid
$5,000 per month. Workers can be hired or fired at a cost of
$3,000 per worker fired and $4,000 per worker hired (it
takes 0 time to hire a worker). The cost of holding a ton of
steel in inventory for one month is $100. Demand may be
backlogged at a cost of $70 per ton month. That is, if 1 ton
of month 1 demand is met during month 3, then a
backlogging cost of $140 is incurred. At the beginning of
month 1, Steelco has 8 workers. During any month, at most
2 workers can be hired. All demand must be met by the end
of month 3. The raw material used to produce a ton of steel
costs $300. Formulate an LP to minimize Steelco’s costs.
4 Show how you could
the following problem:
max z
s.t.
s.t.
TA B L E
use linear programming to solve
|2x1 3x2|
4x1 x2 4
2x1 x2 0.5
x1, x2 0
(1000, 0)
5† Steelco’s main plant currently has a steel manufacturing
area and shipping area located as shown in Figure 13
(distances are in feet). The company must determine where
to locate a casting facility and an assembly and storage
facility to minimize the daily cost of moving material
through the plant. The number of trips made each day are
as shown in Table 50.
Assuming that all travel is in only an east–west or
north–south direction, formulate an LP that can be used to determine where the casting and assembly and storage plants
should be located in order to minimize daily transportation
costs. (Hint: If the casting facility has coordinates (c1, c2), how
should the constraint c1 700 e1 w1 be interpreted?)
6 Show that after any number of pivots the coefficient of
xi in each row of the simplex tableau will equal the negative
of the coefficient of xi in the same row.
7 Clothco manufactures pants. During each of the next six
months they can sell up to the numbers of pants given in
Table 51.
Demand that is not met during a month is lost. Thus, for
example, Clothco can sell up to 500 pants during month 1.
A pair of pants sells for $40, requires 2 hours of labor, and
uses $10 of raw material. At the beginning of month 1,
Clothco has 4 workers. A worker can work at making pants
up to 200 hours per month, and is paid $2,000 per month
(irrespective of how many hours worked). At the beginning
of each month, workers can be hired and fired. It costs
50
From
Casting
Steel manufacturing
Steel manufacturing
Shipping
To
Daily Number
of Trips
Cost (¢) Per
100 Feet
Traveled
Assembly and storage
Casting
Assembly and storage
Assembly and storage
40
8
8
2
10
10
10
20
TA B L E
51
Month
Maximum Demand
1
2
3
4
5
6
500
600
300
400
300
800
†
Based on Love and Yerex (1976).
4 . 1 4 Unrestricted-in-Sign Variables
189
$1,500 to hire and $1,000 to fire a worker. A holding cost
of $5 per pair of pants is assessed against each month’s ending inventory.
4.15
Determine how Clothco can maximize its profit for the
next six months. Ignore the fact that during each month the
number of hired and fired workers must be an integer.
Karmarkar’s Method for Solving LPs
We now give a brief description of Karmarkar’s method for solving LPs. For a more detailed explanation, see Section10.6. Karmarkar’s method requires that the LP be placed in
the following form:
min z cx
s.t.
Kx 0
s.t.
x1 x2 xn 1
xi 0
and that
1
The point x0 [ 1n
1
n
1
]
n
2
The optimal z-value for the LP equals 0.
must be feasible for this LP.
Surprisingly, any LP can be put in this form. Karmarkar’s method uses a transformation
from projective geometry to create a set of transformed variables y1, y2, . . . , yn. This
transformation (call it f ) will always transform the current point into the “center” of the
feasible region in the space defined by the transformed variables. If the transformation
takes the point x into the point y, we write f (x) y. The algorithm begins in the transformed space by moving from f (x0) in the transformed space in a “good” direction (a direction that tends to improve z and maintains feasibility). This yields a point y1 in the
transformed space, which is close to the boundary of the feasible region. Our new point
is x1, satisfying f (x1) y1. The procedure is repeated (this time x1 replaces x0) until the
z-value for xk is sufficiently close to 0.
If our current point is xk, then the transformation will have the property that f (xk) 1
1
[ n 1n
]. Thus, in transformed space, we are always moving away from the “cenn
ter” of the feasible region.
Karmarkar’s method has been shown to be a polynomial time algorithm. This implies
that if an LP of size n is solved by Karmarkar’s method, then there exist positive numbers
a and b such that for any n, an LP of size n can be solved in a time of at most anb.†
In contrast to Karmarkar’s method, the simplex algorithm is an exponential time algorithm for solving LPs. If an LP of size n is solved by the simplex, then there exists a
positive number c such that for any n, the simplex algorithm will find the optimal solution in a time of at most c2n. For large enough n (for positive a, b, and c), c2n
anb.
This means that, in theory, a polynomial time algorithm is superior to an exponential time
algorithm. Preliminary testing of Karmarkar’s method (by Karmarkar) has shown that for
large LPs arising in actual application, this method may be up to 50 times as fast as the
simplex algorithm. Hopefully, Karmarkar’s method will enable researchers to solve many
large LPs that currently require a prohibitively large amount of computer time when
solved by the simplex. If Karmarkar’s method lives up to its early promise, the ability to
formulate LP models will be even more important in the near future than it is today.
Karmarkar’s method has recently been utilized by the Military Airlift Command to determine how often to fly various routes, and which aircraft to use. The resulting LP con†
The size of an LP may be defined as the number of symbols needed to represent the LP in binary notation.
190
CHAPTER
4 The Simplex Algorithm and Goal Programming
tained 150,000 variables and 12,000 constraints and was solved in one hour of computer
time using Karmarkar’s method. Using the simplex method, an LP with similar structure
containing 36,000 variables and 10,000 constraints required four hours of computer time.
Delta Airlines has used Karmarkar’s method to develop monthly schedules for 7,000 pilots and more than 400 aircraft. When the project is completed, Delta expects to have
saved millions of dollars.
4.16
Multiattribute Decision Making in the Absence
of Uncertainty: Goal Programming
In some situations, a decision maker may face multiple objectives, and there may be no
point in an LP’s feasible region satisfying all objectives. In such a case, how can the decision maker choose a satisfactory decision? Goal programming is one technique that
can be used in such situations. The following example illustrates the main ideas of goal
programming.
EXAMPLE
10
Burnit Goal Programming
The Leon Burnit Advertising Agency is trying to determine a TV advertising schedule for
Priceler Auto Company. Priceler has three goals:
Goal 1
Its ads should be seen by at least 40 million high-income men (HIM).
Goal 2
Its ads should be seen by at least 60 million low-income people (LIP).
Goal 3
Its ads should be seen by at least 35 million high-income women (HIW).
Leon Burnit can purchase two types of ads: those shown during football games and those
shown during soap operas. At most, $600,000 can be spent on ads. The advertising costs
and potential audiences of a one-minute ad of each type are shown in Table 52. Leon Burnit must determine how many football ads and soap opera ads to purchase for Priceler.
Solution
Let
x1 number of minutes of ads shown during football games
x2 number of minutes of ads shown during soap operas
Then any feasible solution to the following LP would meet Priceler’s goals:
min (or max) z 0x1 0x2
s.t.
7x1 3x2 40
s.t.
10x1 5x2 60
s.t.
5x1 4x2 35
s.t.
100x1 60x2 600
x1, x2 0
(or any other objective function)
(HIM constraint)
(LIP constraint)
(HIW constraint)
(Budget constraint)
(21)
From Figure 14, we find that no point that satisfies the budget constraint meets all three
of Priceler’s goals. Thus, (21) has no feasible solution. It is impossible to meet all of
Priceler’s goals, so Burnit might ask Priceler to identify, for each goal, a cost (per-unit
short of meeting each goal) that is incurred for failing to meet the goal. Suppose Priceler
determines that
4 . 1 6 Multiattribute Decision Making in the Absence of Uncertainty: Goal Programming
191
TA B L E
52
Cost and Number of Viewers of Ads for Priceler
Millions of Viewers
Ad
Football
Soap opera
HIM
LIP
HIW
Cost ($)
7
3
10
5
5
4
100,000
160,000
Each million exposures by which Priceler falls short of the HIM goal costs Priceler a
$200,000 penalty because of lost sales.
Each million exposures by which Priceler falls short of the LIP goal costs Priceler a
$100,000 penalty because of lost sales.
Each million exposures by which Priceler falls short of the HIW goal costs Priceler
a $50,000 penalty because of lost sales.
Burnit can now formulate an LP that minimizes the cost incurred in deviating from
Priceler’s three goals. The trick is to transform each inequality constraint in (21) that represents one of Priceler’s goals into an equality constraint. Because we don’t know whether
the cost-minimizing solution will undersatisfy or oversatisfy a given goal, we need to define the following variables:
s
i amount by which we numerically exceed the ith goal
s
i amount by which we are numerically under the ith goal
The s
i and si are referred to as deviational variables. For the Priceler problem, we as
sume that each s
i and si is measured in millions of exposures. Using the deviational variables, we can rewrite the first three constraints in (21) as
7x1 3x2 s
1 s1 40
10x1 5x2 s
2 s2 60
5x1 4x2 s3 s
3 35
x2
14
(LIP)
12
10
B
(HIM)
(Budget)
8
6
C is point (3, 5)
(HIW)
C
4
2
FIGURE
14
x1
Constraints for Priceler
192
2
CHAPTER
4
6
8
4 The Simplex Algorithm and Goal Programming
(HIM constraint)
(LIP constraint)
(HIW constraint)
For example, suppose that x1 5 and x2 2. This advertising schedule yields 7(5) 3(2) 41 million HIM exposures. This exceeds the HIM goal by 41 40 1 million
exposures, so s
1 0 and s1 1. Also, this schedule yields 10(5) 5(2) 60 million
LIP exposures. This exactly meets the LIP requirement, and s
2 s2 0. Finally, this
schedule yields 5(5) 4(2) 33 million HIW exposures. We are numerically under the
HIW goal by 35 33 2 million exposures, so s
3 2 and s3 0.
Suppose Priceler wants to minimize the total penalty from the lost sales. In terms of
the deviational variables, the total penalty from lost sales (in thousands of dollars) caused
by deviation from the three goals is 200s
1 100s2 50s3 . The objective function coefficient for the variable associated with goal i is called the weight for goal i. The most
important goal has the largest weight, and so on. Thus, in the Priceler example, goal 1
(HIM) is most important, goal 2 (LIP) is second most important, and goal 3 (HIW) is
least important.
Burnit can minimize the penalty from Priceler’s lost sales by solving the following LP:
min z 200s
1 100s2 50s3
s.t.
7x1 3x2 s
1 s1 40
s.t.
10x1 5x2 s
2 s2 60
s.t.
5x1 4x2 s
3 s3 35
s.t.
100x1 60x2
600
All variables nonnegative
(HIM constraint)
(LIP constraint)
(HIW constraint)
(Budget constraint)
(22)
The optimal solution to this LP is z 250, x1 6, x2 0, s
1 2, s2 0, s3 0,
s1 0, s2 0, s3 5. This meets goal 1 and goal 2 (the goals with the highest costs,
or weights, for each unit of deviation from the goal) but fails to meet the least important
goal (goal 3).
REMARKS
If failure to meet goal i occurs when the attained value of an attribute is numerically smaller than
the desired value of goal i, then a term involving s
i will appear in the objective function. If failure to meet goal i occurs when the attained value of an attribute is numerically larger than the desired value of goal i, then a term involving s
i will appear in the objective function. Also, if we want
to meet a goal exactly and a penalty is assessed for going both over and under a goal, then terms
involving both s
i and si will occur in the objective function.
Suppose we modify the Priceler example by deciding that the budget restriction of $600,000 is
a goal. If we decide that a $1 penalty is assessed for each dollar by which this goal is unmet, then
the appropriate goal programming formulation would be
min z 200s
1 100s2 50s3 s4
s.t.
7x1 3x2 s1 s1 40
s.t.
10x1 5x2 s
2 s2 60
s.t.
5x1 4x2 s
3 s3 35
s.t.
100x1 60x2 s4 s
4 600
All variables nonnegative
(HIM constraint)
(LIP constraint)
(HIW constraint)
(Budget constraint)
In contrast to our previous optimal solution, the optimal solution to this LP is z 33 13 , x1 4 13 ,
1 1 x2 3 13 , s
1 3 , s2 0, s3 0, s4 33 3 , s1 0, s2 0, s3 0, s4 0. Thus, when we define the budget restriction to be a goal, the optimal solution is to meet all three advertising goals
by going $33 13 thousand over budget.
4 . 1 6 Multiattribute Decision Making in the Absence of Uncertainty: Goal Programming
193
Preemptive Goal Programming
In our LP formulation of the Burnit example, we assumed that Priceler could exactly determine the relative importance of the three goals. For instance, Priceler determined that the
HIM goal was 120000 2 times as important as the LIP goal, and the LIP goal was 15000 2 times as important as the HIW goal. In many situations, however, a decision maker may
not be able to determine precisely the relative importance of the goals. When this is the
case, preemptive goal programming may prove to be a useful tool. To apply preemptive
goal programming, the decision maker must rank his or her goals from the most important (goal 1) to least important (goal n). The objective function coefficient for the variable
representing goal i will be Pi. We assume that
P1
P2
P3
Pn
Thus, the weight for goal 1 is much larger than the weight for goal 2, the weight for goal
2 is much larger than the weight for goal 3, and so on. This definition of the P1, P2, . . . ,
Pn ensures that the decision maker first tries to satisfy the most important (goal 1) goal. Then,
among all points that satisfy goal 1, the decision maker tries to come as close as possible to
satisfying goal 2, and so forth. We continue in this fashion until the only way we can come
closer to satisfying a goal is to increase the deviation from a higher-priority goal.
For the Priceler problem, the preemptive goal programming formulation is obtained
from (22) by replacing (22)’s objective function by P1s
1 P2s2 P3s3 . Thus, the preemptive goal programming formulation of the Priceler problem is
min z P1s
1 P2s2 P3s3
s.t.
7x1 3x2 s
(HIM constraint)
1 s1 40
s.t.
10x1 5x2 s2 s2 60
(LIP constraint)
s.t.
5x1 4x2 s
s
35
(HIW constraint)
3
3
s.t.
100x1 60x2 s3 s3 600
(Budget constraint)
All variables nonnegative
(23)
Assume the decision maker has n goals. To apply preemptive goal programming, we must
separate the objective function into n components, where component i consists of the objective function term involving goal i. We define
zi objective function term involving goal i
For the Priceler example, z1 P1s
1 , z2 P2s2 , and z3 P3s3 . Preemptive goal programming problems can be solved by an extension of the simplex known as the goal programming simplex. To prepare a problem for solution by the goal programming simplex,
we must compute n row 0’s, with the ith row 0 corresponding to goal i. Thus, for the
Priceler problem, we have
Row 0 (goal 1): z1 P1s
1 0
Row 0 (goal 2): z2 P2s
2 0
Row 0 (goal 3): z3 P3s
3 0
From (23), we find that BV {s
1 , s2 , s3 , s4} (s4 slack variable for fourth constraint)
is a starting basic feasible solution that could be used to solve (23) via the simplex algorithm (or goal programming simplex algorithm). As with the regular simplex, we must
first eliminate all variables in the starting basis from each row 0. Adding P1 (HIM constraint) to row 0 (goal 1) yields
Row 0 (goal 1): z1 7P1x1 3P1x2 P1s
1 40P1
194
CHAPTER
4 The Simplex Algorithm and Goal Programming
(HIM)
Adding P2 (LIP constraint) to row 0 (goal 2) yields
Row 0 (goal 2): z2 10P2x1 5P2x2 P2s
2 60P2
(LIP)
Adding P3 (HIW constraint) to row 0 (goal 3) yields
Row 0 (goal 3): z3 5P3x1 4P3x2 P3s
3 35P3
(HIW)
The Priceler problem can now be solved by the goal programming simplex.
The differences between the goal programming simplex and the ordinary simplex are
as follows:
The ordinary simplex has a single row 0, whereas the goal programming simplex requires n row 0’s (one for each goal).
1
In the goal programming simplex, the following method is used to determine the entering variable: Find the highest-priority goal (goal i) that has not been met (or find the
highest-priority goal i having zi
0). Find the variable with the most positive coefficient in row 0 (goal i) and enter this variable (subject to the following restriction) into
the basis. This will reduce zi and ensure that we come closer to meeting goal i. If, however, a variable has a negative coefficient in row 0 associated with a goal having a higher
priority than i, then the variable cannot enter the basis. Entering such a variable in the
basis would increase the deviation from some higher-priority goal. If the variable with the
most positive coefficient in row 0 (goal i) cannot be entered into the basis, then try to
find another variable with a positive coefficient in row 0 (goal i). If no variable for row
0 (goal i) can enter the basis, then there is no way to come closer to meeting goal i without increasing the deviation from some higher-priority goal. In this case, move on to row
0 (goal i 1) in an attempt to come closer to meeting goal i 1.
2
3
When a pivot is performed, row 0 for each goal must be updated.
A tableau will yield the optimal solution if all goals are satisfied (that is, z1 z2 zn 0), or if each variable that can enter the basis and reduce the value of zi for
an unsatisfied goal i will increase the deviation from some goal i having a higher priority than goal i.
4
We now use the goal programming simplex to solve the Priceler example. In each
tableau, the row 0’s are listed in order of the goal’s priorities (from highest priority to low
est priority). The initial tableau is Table 53. The current bfs is s
1 40, s2 60, s3 35,
s4 600. Because z1 40P1, goal 1 is not satisfied. To reduce the penalty associated with
not meeting goal 1, we enter the variable with the most positive coefficient (x1) in row 0
(HIM). The ratio test indicates that x1 should enter the basis in the HIM constraint.
After entering x1 into the basis, we obtain Table 54. The current basic solution is x1 40 45
200
,
s 2 270 , s
3 7 , s4 7 . Because s1 0 and z1 0, goal 1 is now satisfied. We
7
now try to satisfy goal 2 (while ensuring that the higher-priority goal 1 is still satisfied).
The variable with the most positive coefficient in row 0 (LIP) is s
1 . Observe that enter
ing s
1 into the basis will not increase z1 [because the coefficient of s1 in row 0 (HIM) is
0]. Thus, after entering s1 into the basis, goal 1 will still be satisfied. The ratio test indicates that s
1 could enter the basis in either the LIP or the budget constraint. We arbitrarily choose to enter s
1 into the basis in the budget constraint.
After pivoting s
1 into the basis, we obtain Table 55. Because z1 z2 0, goals 1 and
2 are met. Because z3 5P3, however, goal 3 is unmet. The current bfs is x1 6, s
2 0, s
3 5, s1 2. We now try to come closer to meeting goal 3 (without violating either goal 1 or goal 2). Because x2 is the only variable with a positive coefficient in row 0
(HIW), the only way to come closer to meeting goal 3 (HIW) is to enter x2 into the basis. Observe, however, that x2 has a negative coefficient in row 0 for goal 2 (LIP). Thus,
4 . 1 6 Multiattribute Decision Making in the Absence of Uncertainty: Goal Programming
195
TA B L E
53
Initial Tableau for Preemptive Goal Programming for Priceler
Row 0 (HIM)
Row 0 (LIP)
Row 0 (HIW)
HIM
LIP
HIW
Budget
TA B L E
x1
x2
s1
s2
s3
s1
s2
s3
s4
rhs
7P1
10P2
5P3
7
10
5
100
3P1
5P2
4P3
3
5
4
60
P1
0
0
1
0
0
0
0
P2
0
0
1
0
0
0
0
P3
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
z1 40P1
z2 60P2
z3 35P3
40
60
35
600
54
First Tableau for Preemptive Goal Programming for Priceler
x1
Row 0 (HIM)
0
0
Row 0 (LIP)
0
Row 0 (HIW)
0
HIM
1
LIP
0
HIW
0
Budget
0
5P2
7
13P3
7
3
7
5
7
13
7
120
7
TA B L E
s1
x2
0
10P2
7
5P3
7
17
10
7
5
7
100
7
s2
s3
s1
s2
s3
s4
0
P1
0
0
0
z1 0
P2
0
0
0
0
z2 0
P3
0
0
0
z3 0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
107P2
57P3
1
7
10
7
57
1070
0
0
1
s2
s3
0
rhs
20P2
7
45P3
7
40
7
20
7
45
7
200
7
55
Optimal Tableau for Preemptive Goal Programming for Priceler
x1
s1
x2
s1
s2
s3
s4
rhs
Row 0 (HIM)
0
0
0
0
0
P1
0
0
0
z1 0
Row 0 (LIP)
0
P2
0
P2
0
0
0
0
1P02
z2 0
Row 0 (HIW)
0
P3
0
0
P3
0
0
0
2P03
z3 5P3
1
3
5
0
0
0
0
0
0
6
LIP
0
1
0
1
0
0
1
0
HIW
0
1
0
0
1
0
0
1
0
6
5
1
0
0
1
0
0
1
100
110
210
7
100
HIM
Budget
0
5
2
the only way we can come closer to meeting goal 3 (HIW) is to violate a higher-priority
goal, goal 2 (LIP). This is therefore an optimal tableau. The preemptive goal programming solution is to purchase 6 minutes of football ads and no soap opera ads. Goals 1 and
2 (HIM and LIP) are met, and Priceler falls 5 million exposures short of meeting goal 3
(HIW).
If the analyst has access to a computerized goal programming code, then by reordering the priorities assigned to the goals, many solutions can be generated. From among
these solutions, the decision maker can choose a solution that she feels best fits her preferences. Table 56 lists the solutions found by the preemptive goal programming method
for each possible set of priorities. Thus, we see that different ordering of priorities can
lead to different advertising strategies.
196
CHAPTER
4 The Simplex Algorithm and Goal Programming
TA B L E
56
Optimal Solutions for Priceler Found by Preemptive Goal Programming
Priorities
Optimal
Highest
Second
Highest
Lowest
x1
Value
x2
Value
HIM
HIM
LIP
LIP
HIW
HIW
LIP
HIW
HIM
HIW
HIM
LIP
HIW
LIP
HIW
HIM
LIP
HIM
6
5
6
6
3
3
0
5
3
0
0
5
5
Deviations from
HIM
LIP
HIW
0
0
0
0
4
4
0
5
5
3
10
3
0
0
5
5
5
5
0
0
When a preemptive goal programming problem involves only two decision variables,
the optimal solution can be found graphically. For example, suppose HIW is the highestpriority goal, LIP is the second-highest, and HIM is the lowest. From Figure 14, we find
that the set of points satisfying the highest-priority goal (HIW) and the budget constraint
is bounded by the triangle ABC. Among these points, we now try to come as close as we
can to satisfying the second-highest-priority goal (LIP). Unfortunately, no point in triangle ABC satisfies the LIP goal. We see from the figure, however, that among all points satisfying the highest-priority goal, point C (C is where the HIW goal is exactly met and the
budget constraint is binding) is the unique point that comes the closest to satisfying the
LIP goal. Simultaneously solving the equations
5x1 4x2 35
100x1 60x2 600
(HIW goal exactly met)
(Budget constraint binding)
we find that point C (3, 5). Thus, for this set of priorities, the preemptive goal programming solution is to purchase 3 football game ads and 5 soap opera ads.
Goal programming is not the only approach used to analyze multiple objective decisionmaking problems under certainty. See Steuer (1985) and Zionts and Wallenius (1976) for
other approaches to multiple objective decision making under certainty.
Using LINDO or LINGO to Solve Preemptive
Goal Programming Problems
Readers who do not have access to a computer program that will solve preemptive goal
programming problems may still use LINDO (or any other LP package) to solve them. To
illustrate how LINDO can be used to solve a preemptive goal programming problem, let’s
look at the Priceler example with our original set of priorities (HIM followed by LIP followed by HIW).
We begin by asking LINDO to minimize the deviation from the highest-priority (HIM)
goal by solving the following LP:
min z s
1
s.t.
7x1
s.t.
10x1
s.t.
5x1
s.t.
100x1
3x2 s
(HIM constraint)
1 s1 40
5x2 s2 s2 60
(LIP constraint)
4x2 s
s
35
(HIW constraint)
3
3
60x2 s3 s3 600
(Budget constraint)
All variables nonnegative
4 . 1 6 Multiattribute Decision Making in the Absence of Uncertainty: Goal Programming
197
Goal 1 (HIM) can be met, so LINDO reports an optimal z-value of 0. We now want to
come as close as possible to meeting goal 2 while ensuring that the deviation from goal
1 remains at its current level (0). Using an objective function of s
2 (to minimize goal 2)
we add the constraint s
0
(to
ensure
that
goal
1
is
still
met)
and
ask LINDO to solve
1
min z s
2
s.t.
7x1
s.t.
10x1
s.t.
5x1
s.t.
100x1
s
(HIM constraint)
1 40
s2 60
(LIP constraint)
s3 35
(HIW constraint)
s3 600
(Budget constraint)
s
0
1
All variables nonnegative
3x2
5x2
4x2
60x2
s
1
s
2
s
3
s
3
Because goals 1 and 2 can be simultaneously met, this LP will also yield an optimal z-value
of 0. We now come as close as possible to meeting goal 3 (HIW) while keeping the deviations
from goals 1 and 2 at their current levels. This requires LINDO to solve the following LP:
min z s
3
s.t.
7x1
s.t.
10x1
s.t.
5x1
s.t.
100x1
s
(HIM constraint)
1 40
s2 60
(LIP constraint)
s
35
(HIW constraint)
3
s3 600
(Budget constraint)
s1 0
s
2 0
All variables nonnegative
3x2
5x2
4x2
60x2
s
1
s
2
s
3
s
3
Of course, the LINDO (or LINGO) full-screen editor makes it easy to go from one step
of the goal programming problem to the next. To go from step i to step i 1, simply modify your objective function to minimize the deviation from the i 1 highest-priority goal
and add a constraint that ensures that the deviation from the ith highest-priority goal remains
at its current level.
REMARKS
1 The optimal solution to this LP is z 5, x1 6, x2 0, s
1 0, s2 0, s3 5, s1 2,
s2 0, s
0,
which
agrees
with
the
solution
obtained
by
the
preemptive
goal
programming
3
method. The z-value of 5 indicates that if goals 1 and 2 are met, then the best that Priceler can do
is to come within 5 million exposures of meeting goal 3.
2 By the way, suppose we could only have come within two units of meeting goal 1. When solv
ing our second LP, we would have added the constraint s
1 2 (instead of s1 0).
3 The goal programming methodology of this section can be applied without any changes when
some or all of the decision variables are restricted to be integer or 0–1 variables (see Problems 11,
12, and 14).
4 Using LINGO, the goal programming methodology of this section can be applied without any
changes even if the objective function or some of the constraints are nonlinear.
PROBLEMS
Group A
1 Graphically determine the preemptive goal progamming
solution to the Priceler example for the following priorities:
a LIP is highest-priority goal, followed by HIW and
then HIM.
198
CHAPTER
b HIM is highest-priority goal, followed by LIP and
then HIW.
c HIM is highest-priority goal, followed by HIW and
then LIP.
4 The Simplex Algorithm and Goal Programming
d HIW is highest-priority goal, followed by HIM and
then LIP.
2 Fruit Computer Company is ready to make its annual
purchase of computer chips. Fruit can purchase chips (in
lots of 100) from three suppliers. Each chip is rated as being
of excellent, good, or mediocre quality. During the coming
year, Fruit will need 5,000 excellent chips, 3,000 good chips,
and 1,000 mediocre chips. The characteristics of the chips
purchased from each supplier are shown in Table 57. Each
year, Fruit has budgeted $28,000 to spend on chips. If Fruit
does not obtain enough chips of a given quality, then the
company may special-order additional chips at $10 per
excellent chip, $6 per good chip, and $4 per mediocre chip.
Fruit assesses a penalty of $1 for each dollar by which the
amount paid to suppliers 1–3 exceeds the annual budget.
Formulate and solve an LP to help Fruit minimize the penalty
associated with meeting the annual chip requirements. Also
use preemptive goal programming to determine a purchasing
strategy. Let the budget constraint have the highest priority,
followed in order by the restrictions on excellent, good, and
mediocre chips.
3 Highland Appliance must determine how many color
TVs and VCRs should be stocked. It costs Highland $300
to purchase a color TV and $200 to purchase a VCR. A
color TV requires 3 sq yd of storage space, and a VCR
requires 1 sq yd of storage space. The sale of a color TV
earns Highland a profit of $150, and the sale of a VCR earns
Highland a profit of $100. Highland has set the following
goals (listed in order of importance):
Goal 1 A maximum of $20,000 can be spent on purchasing color TVs and VCRs.
Goal 2 Highland should earn at least $11,000 in profits
from the sale of color TVs and VCRs.
Goal 3 Color TVs and VCRs should use no more than 200
sq yd of storage space.
Formulate a preemptive goal programming model that Highland could use to determine how many color TVs and VCRs
to order. How would the preemptive goal formulation be modified
if Highland’s goal were to have a profit of exactly $11,000?
4 A company produces two products. Relevant information
for each product is shown in Table 58. The company has a
goal of $48 in profits and incurs a $1 penalty for each dollar
it falls short of this goal. A total of 32 hours of labor are
available. A $2 penalty is incurred for each hour of overtime
(labor over 32 hours) used, and a $1 penalty is incurred for
each hour of available labor that is unused. Marketing
considerations require that at least 10 units of product 2 be
produced. For each unit (of either product) by which
production falls short of demand, a penalty of $5 is assessed.
a Formulate an LP that can be used to minimize the
penalty incurred by the company.
b Suppose the company sets (in order of importance)
the following goals:
Goal
Goal
Goal
Goal
1
2
3
4
Avoid underutilization of labor.
Meet demand for product 1.
Meet demand for product 2.
Do not use any overtime.
TA B L E
57
Characteristics of a
Lot of 100 Chips
Supplier
Excellent
Good
Mediocre
Price
Per 100
Chips ($)
60
50
40
20
35
20
20
15
40
400
300
250
1
2
3
TA B L E
58
Labor required
Contribution to profit
Product 1
Product 2
4 hours
$4
2 hours
$2
5† Deancorp produces sausage by blending together beef
head, pork chuck, mutton, and water. The cost per pound, fat
per pound, and protein per pound for these ingredients is given
in Table 59. Deancorp needs to produce 100 lb of sausage and
has set the following goals, listed in order of priority:
Goal 1 Sausage should consist of at least 15% protein.
Goal 2 Sausage should consist of at most 8% fat.
Goal 3 Cost per pound of sausage should not exceed 8¢.
Formulate a preemptive goal programming model for
Deancorp.
6‡ The Touche Young accounting firm must complete three
jobs during the next month. Job 1 will require 500 hours of
work, job 2 will require 300 hours of work, and job 3 will
require 100 hours of work. Currently, the firm consists of 5
partners, 5 senior employees, and 5 junior employees, each
of whom can work up to 40 hours per month. The dollar
amount (per hour) that the company can bill depends on the
type of accountant who is assigned to each job, as shown in
Table 60. (The X indicates that a junior employee does not
have enough experience to work on job 1.) All jobs must be
completed. Touche Young has also set the following goals,
listed in order of priority:
Goal
Goal
Goal
Goal
1
2
3
4
Monthly billings should exceed $68,000.
At most, 1 partner should be hired.
At most, 3 senior employees should be hired.
At most, 5 junior employees should be hired.
TA B L E
59
Fat (per lb)
Protein (per lb)
Cost (in ¢)
Head
Chuck
Mutton
Moisture
.05
.20
.12
.24
.26
.96
.11
.08
8
0
0
0
†
Formulate and solve a preemptive goal programming model
for this situation.
Based on Steuer (1984).
Based on Welling (1977).
‡
4 . 1 6 Multiattribute Decision Making in the Absence of Uncertainty: Goal Programming
199
TA B L E
60
TA B L E
Partner
Senior employee
Junior employee
Job 1
Job 2
Job 3
160
120
X
120
190
150
110
170
140
Formulate a preemptive goal programming model for this
situation.
7 There are four teachers in the Faber College Business
School. Each semester, 200 students take each of the
following courses: marketing, finance, production, and
statistics. The “effectiveness” of each teacher in teaching
each class is given in Table 61. Each teacher can teach a
total of 200 students during the semester. The dean has set
a goal of obtaining an average teaching effectiveness level
of about 6 in each course. Deviations from this goal in any
course are considered equally important. Formulate a goal
programming model that can be used to determine the
semester’s teaching assignments.
Group B
8† Faber College is admitting students for the class of
2008. It has set four goals for this class, listed in order of
priority:
Goal 1 Entering class should be at least 5,000 students.
Goal 2 Entering class should have an average SAT score
of at least 640.
Goal 3 Entering class should consist of at least 25 percent
out-of-state students.
Goal 4 At least 2,000 members of the entering class should
not be nerds.
The applicants received by Faber are categorized in Table
62. Formulate a preemptive goal programming model that
could determine how many applicants of each type should
be admitted. Assume that all applicants who are admitted
will decide to attend Faber.
9‡ During the next four quarters, Wivco faces the following
demands for globots: quarter 1—13 globots; quarter 2—14
globots; quarter 3—12 globots; quarter 4—15 globots.
Globots may be produced by regular-time labor or by
TA B L E
Teacher
1
2
3
4
Home
State
SAT
Score
No. of
Nerds
No. of
Non-Nerds
In-state
In-state
In-state
Out-of-state
Out-of-state
Out-of-state
700
600
500
700
600
500
1500
1300
500
350
400
400
400
700
500
450
400
600
overtime labor. Production capacity (number of globots)
and production costs during the next four quarters are shown
in Table 63. Wivco has set the following goals in order of
importance:
Goal 1 Meet each quarter’s demand on time.
Goal 2 Inventory at the end of each quarter cannot exceed
3 units.
Goal 3 Total production cost should be held below $250.
Formulate a preemptive goal programming model that could
be used to determine Wivco’s production schedule during
the next four quarters. Assume that at the beginning of the
first quarter 1 globot is in inventory.
10 Ricky’s Record Store now employs five full-time
employees and three part-time employees. The normal
workload is 40 hours per week for full-time and 20 hours
per week for part-time employees. Each full-time employee
is paid $6 per hour for work up to 40 hours per week and
can sell 5 records per hour. A full-time employee who works
overtime is paid $10 per hour. Each part-time employee is
paid $3 per hour and can sell 3 records per hour. It costs
Ricky $6 to buy a record, and each record sells for $9.
Ricky has weekly fixed expenses of $500. He has established
the following weekly goals, listed in order of priority:
Goal 1 Sell at least 1,600 records per week.
Goal 2 Earn a profit of at least $2,200 per week.
Goal 3 Full-time employees should work at most 100 hours
of overtime.
Goal 4 To increase their sense of job security, the number
of hours by which each full-time employee fails to work 40
hours should be minimized.
Formulate a preemptive goal programming model that could
be used to determine how many hours per week each employee should work.
61
Marketing
Finance
Production
Statistics
7
7
3
5
5
8
5
5
8
9
7
6
2
4
9
7
†
Based on Lee and Moore, “University Admissions Planning”
(1974).
‡
Based on Lee and Moore, “Production Scheduling” (1974).
200
62
CHAPTER
TA B L E
63
Regular-Time
Quarter
1
2
3
4
4 The Simplex Algorithm and Goal Programming
Overtime
Capacity
Cost/Unit
Capacity
Cost/Unit
9
10
11
12
$4
$4
$5
$6
5
5
5
5
$6
$7
$8
$9
11 Gotham City is trying to determine the type and
location of recreational facilities to be built during the next
decade. Four types of facilities are under consideration: golf
courses, swimming pools, gymnasiams, and tennis courts.
Six sites are under consideration. If a golf course is built, it
must be built at either site 1 or site 6. Other facilities may
be built at sites 2–5. The available land (in thousands of
square feet) at each site is given in Table 64.
The cost of building each facility (in thousands of dollars), the annual maintenance cost (in thousands of dollars)
for each facility, and the land (in thousands of square feet)
required for each facility are given in Table 65.
The number of user days (in thousands) for each type of
facility depends on where it is built. The dependence is
given in Table 66.
a Consider the following set of priorities:
Priority 1 Limit land use at each site to the land available.
Priority 2 Construction costs should not exceed $1.2
million.
Priority 3 User days should exceed 200,000.
Priority 4 Annual maintenance costs should not exceed
$200,000.
For this set of priorities, use preemptive goal programming
to determine the type and location of recreation facilities in
Gotham City.
b Consider the following set of priorities:
Priority 1 Limit land use at each site to the land available.
Priority 2 User days should exceed 200,000.
Priority 3 Construction costs should not exceed $1.2
million.
Priority 4 Annual maintenance costs should not exceed
$200,000.
For this set of priorities, use preemptive goal programming
to determine the type and location of recreation facilities in
Gotham City.†
TA B L E
TA B L E
64
2
3
4
5
70
80
95
120
Golf
Swimming
Gymnasium
Tennis courts
†
Site
Golf
Swimming
Gymnasium
Tennis courts
1
2
3
4
5
6
31
X
X
X
X
25
37
20
X
21
29
23
X
32
28
22
X
32
38
20
27
X
X
X
12 A small aerospace company is considering eight
projects:
Project 1
Project 2
Project 3
Project 4
Project 5
Project 6
Project 7
Project 8
initiative.
Develop an automated test facility.
Barcode all company inventory and machinery.
Introduce a CAD/CAM system.
Buy a new lathe and deburring system.
Institute FMS (flexible manufacturing system).
Install a LAN (local area network).
Develop AIS (artificial intelligence simulation).
Set up a TQM (total quality management)
Each project has been rated on five attributes: return on
investment (ROI), cost, productivity improvement, worker
requirements, and degree of technological risk. These ratings are given in Table 67.
The company has set the following five goals (listed in
order of priority:
Goal
Goal
Goal
Goal
Goal
1
2
3
4
5
Achieve a return on investment of at least $3,250.
Limit cost to $1,300.
Achieve a productivity improvement of at least 6.
Limit manpower use to 108.
Limit technological risk to a total of 4.
Use preemptive goal programming to determine which projects should be undertaken.
Goal 1
least as
Goal 2
Goal 3
Goal 4
Balance the budget (this means revenues are at
large as costs).
Cut spending by at most $150 billion.
Raise at most $550 billion in taxes from the rich.
Raise at most $350 billion in taxes from the poor.
Currently, the government spends $1 trillion (a trillion 1,000 billion) per year. Revenue can be raised in two ways:
through a gas tax and an income tax. You must determine
65
Site
66
13 The new president has just been elected and has set the
following economic goals (listed from highest to lowest
priority):
Site
Land
TA B L E
Construction
Cost
Maintenance
Cost
Land
Required
340
300
840
85
80
36
50
17
Not relevant
29
38
45
Based on Taylor and Keown (1984).
G per gallon tax rate (in cents)
LTR % tax rate charged on first $30,000 of income
HTR % tax rate charged on any income earned
more than $30,000
C cut in spending (in billions)
If the government chooses G, LTR, and HTR, then the
revenue given in Table 68 (in billions) is raised. Of course,
the tax rate on income more than $30,000 must be at least
as large as the tax rate on the first $30,000 of income. Formulate a preemptive goal programming model to help the
president meet his goals.
4 . 1 6 Multiattribute Decision Making in the Absence of Uncertainty: Goal Programming
201
TA B L E
67
Project
ROI ($)
Cost ($)
Productivity improvement
Manpower needed
Degree of risk
TA B L E
1
2
3
4
5
6
7
8
2,070
900
3
18
3
456
240
2
18
2
670
335
2
27
4
350
700
0
36
1
495
410
1
42
1
380
190
0
6
0
1,500
500
3
48
2
480
160
2
24
3
TA B L E
69
68
Low Income
High Income
Project
Gas tax
Tax on income up to $30,000
Tax on income above $30,000
G
20LTR
0
.5G
5LTR
15HTR
14 HAL computer must determine which of seven research
and development (R&D) projects to undertake. For each
project four quantities are of interest:
a the net present value (NPV in millions of dollars) of
the project
b the annual growth rate in sales generated by the
project
c the probability that the project will succeed
d the cost (in millions of dollars) of the project
The relevant information is given in Table 69. HAL has
set the following four goals:
Goal 1 The total NPV of all chosen projects should be at
least $200 million.
Goal 2 The average probability of success for all projects
chosen should be at least .75.
4.17
1
2
3
4
5
6
7
NPV
(in millions)
Annual Growth
Rate
Probability
of Success
Cost
(in millions)
40
30
60
45
55
40
90
20
16
12
8
18
18
19
.75
.70
.75
.90
.65
.60
.65
220
140
280
240
300
200
440
Goal 3 The average growth rate of all projects chosen
should be at least 15%.
Goal 4 The total cost of all chosen projects should be at
most $1 billion.
For the following sets of priorities, use preemptive (integer)
goal programming to determine which projects should be
selected.
Priority Set 1 2
Priority Set 2 1
4
3
1
4
3
2
Using the Excel Solver to Solve LPs
Excel has the capability to solve linear (and often nonlinear) programming problems. In
this section, we show how to use the Excel Solver† to find the optimal solution to the diet
problem of Section 3.4 and the inventory example of Section 3.10.
The key to solving an LP on a spreadsheet is to set up a spreadsheet that tracks everything of interest (costs or profits, resource usage, etc.). Next, identify the cells of interest
that can be varied. These are called changing cells. After defining the changing cells,
identify the cell that contains your objective function as the target cell. Next, we identify
our constraints and tell the Solver to solve the problem. At this point, the optimal solution to our problem will be placed in the spreadsheet.
†
To activate the Excel Solver for the first time, select Tools and then select Add-Ins. Checking the Solver
Add-in box will cause Excel to open Solver whenever you check Tools and then Solver.
202
CHAPTER
4 The Simplex Algorithm and Goal Programming
Using the Excel Solver to Solve the Diet Problem
In file Diet1.xls, we set up a spreadsheet model of the diet problem (Example 6 of Chapter 3). To begin (see Figure 15) we enter headings for each type of food in B3:E3. In the
range B4:E4, we input trial values for the amount of each food eaten. For example, Figure 15 indicates that we are considering eating three brownies, four scoops of chocolate
ice cream, five bottles of cola, and six pieces of pineapple cheesecake. To see if the diet
in Figure 15 is an “optimal” diet, we must determine its cost as well as the calories, chocolate, sugar, and fat it provides. In the range B5:E5, we input the per-unit cost for each
available food. Then we compute the cost of the diet in cell F5.
We could compute the cost of the diet in cell F5 with the formula
Diet1.xls
B4 B5 C4 C5 D4 D5 E4 E5
but it is easier to enter the formula
SUMPRODUCT(B$4:E$4, B5:E5)
The SUMPRODUCT function requires two ranges as inputs. The first cell in the first
range is multiplied by the first cell in the second range; then the second cell in the first
range is multiplied by the second cell in the second range; and so on. All of these products are then added. Essentially, the SUMPRODUCT function duplicates the notion of
scalar products of vectors discussed in Section 2.1. Thus, in cell F5 the SUMPRODUCT function computes total cost as (3)(50) 4(20) 5(30) 6(80) 860 cents.
In the range B6:E6, we enter the calories in each food; in B7:E7, the chocolate content;
in B8:E8, the sugar content; and in B9:E9, the fat content. Copying the formula in F5 to
the cell range F6:F9 now computes the calories, chocolate, sugar, and fat contained in the
diet defined by the values in B4:E4. Note that the SUMPRODUCT function makes it
easy to create many constraints by entering one formula and using the copy command.
In the cell range H6:H9, we have listed the minimum daily requirement for each nutrient. From Figure 15, we see that our current diet is feasible (meets daily requirements
for each nutrient) and costs $8.70. We now describe how to use Solver to find the optimal solution to the diet problem.
Step 1
From the Tools menu, select Solver. The dialog box in Figure 16 will appear.
Step 2 Move the mouse to the Set Target Cell portion of the dialog box and click (or
type in the cell address) on your target cell (total cost in cell F5) and select Min. This tells
Solver to minimize total cost.
Move the mouse to the By Changing Cells portion of the dialog box and click on
the changing cells (B4:E4). This tells Solver it can change the amount eaten of each food.
Step 3
Click on the Add button to add constraints. The screen in Figure 17 will appear.
Move to the Cell Reference part of the Add Constraint dialog box and select F6:F9. Then
move to the dropdown box and select . Finally, click on the constraint portion of the
dialog box and select H6:H9. Choose OK because there are no more constraints. If you
Step 4
A
FIGURE
15
1
2
3
4
5
6
7
8
9
B
Brownie
Eaten
Cost
Calories
Chocolate
Sugar
Fat
3
50
400
3
2
2
C
D
E
F
G
Feasible
solution to Diet Problem
Choc IC Cola
Pine Cheese Totals
4
5
6
20
30
80
860
200
150
500
5750 >=
2
0
0
17 >=
2
4
4
58 >=
4
1
5
57 >=
4 . 17 Using the Excel Solver to Solve LPs
H
Required
500
6
10
8
203
FIGURE
16
need to add more constraints, choose Add. From the main Solver box you may change a
constraint by selecting Change or delete a constraint by selecting Delete.
We have now created four constraints. Solver will ensure that the changing cells are
chosen so F6 H6, F7 H7, F8 H8, and F9 H9. In short, the diet will be chosen to ensure that enough calories, chocolate, sugar, and fat are eaten.
Our Solver window should now look like Figure 18.
Before solving the problem, we need to tell Solver that all changing cells must
be nonnegative. We must also tell Solver that we have a linear model. If we do not tell
Solver the model is linear, then Solver will not know it should use the simplex method to
solve the problem, and Solver may get an incorrect answer. We may accomplish both of
these goals by selecting options. The screen in Figure 19 will appear. Checking Assume
Non-Negative ensures that all changing cells will be nonnegative. Checking the Assume
Linear Model box ensures that Solver will use the simplex method to solve our LP. Sometimes in a poorly scaled LP (one with both large and small numbers present in the objective function, right-hand sides, or constraints), the Solver will not recognize an LP as
a linear model. Checking the Use Automatic Scaling box minimizes the chances that a
poorly scaled LP will be interpreted as a nonlinear model. By the way, Max Time is the
maximum time the Solver will run before prompting the user about whether to terminate
the solution procedure. Iterations is the maximum number of simplex pivots the Solver
will make before asking the user whether the solution procedure will continue. The Precision setting describes how much “error” is tolerated before deciding a constraint is not
satisfied. For example, with a precision of .001, a changing cell with a value of .0009
would be deemed to satisfy a nonnegativity constraint. The Tolerance and Convergence
settings will be discussed in Chapter 8.
Step 5
FIGURE
204
17
CHAPTER
4 The Simplex Algorithm and Goal Programming
FIGURE
18
Step 6 After choosing OK from the Solver Options box, we then select Solve. Solver
yields the optimal solution shown in Figure 20.
Just like LINDO, the Solver says the minimum cost is 90 cents. The minimum cost is obtained by eating no brownies, 3 oz of chocolate ice cream, 1 bottle of cola, and no pineapple cheesecake.
Using the Solver to Solve the Sailco Example
We now set up a spreadsheet (Sailco.xls) to solve the Sailco example (Example 12 of
Chapter 3). See Figure 21. For each month, we need to keep track of our beginning inventory, ending inventory, and cost. Note that for each month
Sailco.xls
FIGURE
19
4 . 17 Using the Excel Solver to Solve LPs
205
A
20
1
2
3
4
5
6
7
8
9
FIGURE
21
FIGURE
A
1
2
3
B
B
Brownie
Eaten
Cost
Calories
Chocolate
Sugar
Fat
0
50
400
3
2
2
C
D
E
F
G
Optimal Solution
to the Diet Problem
Choc IC Cola
Pine Cheese Totals
3
1
0
20
30
80
90
200
150
500
750 >=
2
0
0
6 >=
2
4
4
10 >=
4
1
5
13 >=
C
D
Optimal solution
to Sailco problem
Beg
OT
RT
4 Month Inventory Production Production
5
1
10
0
40
6
2
10
10
40
7
3
0
35
40
8
4
0
0
25
9
E
<=
<=
<=
<=
F
G
H
RT unit cost
OT unit cost
Unit Holding cost
RT
Capacity Demand Ending Inventory
40
40
10
40
60
0
40
75
0
40
25
0
H
Required
500
6
10
8
I
$ 400.00
$ 450.00
$ 20.00
>=
>=
>=
>=
J
K
0
0
0
0
Total Cost
Monthly Cost
$ 16,200.00
$ 20,500.00
$ 31,750.00
$ 10,000.00
$ 78,450.00
Monthly cost 400(regular-time production) 450(overtime production)
20(unit holding cost)
Ending inventory beginning inventory monthly production monthly demand
Enter unit costs in I1:I3, regular-time monthly capacities in F5:F8, demands in
G5:G8, and beginning month 1 inventory in B5.
Step 1
Step 2
Enter trial values of each month’s overtime and regular-time production in C5:D8.
Step 3
Determine month 1 ending inventory in H5 with the formula
B5 C5 D5 G5
This implements the following relationship:
Ending inventory beginning inventory monthly production monthly demand
Set month 2 beginning inventory to month 1 ending inventory by entering in cell
B6 the formula
H5
Step 4
Step 5 Copying the formula from B5 to B6:B8 computes beginning inventory for months
2–4. Copying the formula from H5 to H6:H8 computes ending inventory for months 2–4.
Step 6
In cell K5, we compute the month 1 cost with the formula
$I$1*D5 C5*$I$2 $I$3*H5
This implements the fact that each month’s cost is given by
Monthly cost 400(regular-time production) 450(overtime production)
20(unit holding cost)
Copying this formula from K5 to K6:K8 computes costs for months 2–4. We compute total cost in cell K9 with the formula
SUM(K5:K8)
We now fill in our Solver dialog box as shown in Figure 22. Our goal is to minimize total cost (cell K9). Our changing cells are overtime and regular-time production
Step 7
206
CHAPTER
4 The Simplex Algorithm and Goal Programming
FIGURE
22
(C5:D8). We must ensure that each month’s regular-time production is at most 40
(D5:D8 F5:F8). Finally, constraining each month’s ending inventory to be nonnegative (H5:H8 J5:J8) ensures that each month’s demand is met on time. In Options
we check Assume Linear Model, Assume Non-Negative, and Use Automatic Scaling.
After choosing Solve, we find the optimal solution shown in Figure 21. A minimum cost
of $78,450 is achieved by producing 40 units with regular-time production during months
1–3, 25 units of regular-time production during month 4, 10 units of overtime production
during month 2, and 35 units of overtime production during month 3.
Using the Value of Option
Recall that in the Sailco problem the minimum cost was $78,450. Suppose that we wanted
to find a solution that yielded a cost of exactly $90,000. Then we may use the Solver’s
Value of option. Simply fill in the Solver dialog box as shown in Figure 23 (see the sheet
titled Cost of $90,000 in file Sailco.xls).
Solver yields the solution in Figure 24. Note that Solver found a feasible solution having a total cost of exactly $90,000.
Sailco.xls
FIGURE
23
4 . 17 Using the Excel Solver to Solve LPs
207
FIGURE
A
24
B
1
2
3
C
D
Optimal solution
to Sailco problem
E
Beg
OT
RT
4 Month Inventory Production Production
1
10 179.090909
0
5
2 149.0909
0
0
6
3 89.09091
0
0
7
4 14.09091
0 10.909091
8
9
<=
<=
<=
<=
F
G
H
RT unit cost
OT unit cost
Unit Holding cost
RT
Capacity Demand Ending Inventory
40
40
149.0909091
40
60
89.09090909
40
75
14.09090909
40
25
0
I
$ 400.00
$ 450.00
$ 20.00
>=
>=
>=
>=
J
K
0
0
0
0
Total Cost
Monthly Cost
$ 83,572.73
$ 1,781.82
$
281.82
$ 4,363.64
$ 90,000.00
Solver and Infeasible LPs
Recall that if at least 36 mg of vitamin C are needed, then the Bevco problem (Example
4 of this chapter) is infeasible. We have set this problem up in Solver in file Bevco.xls.
Figure 25 shows the spreadsheet, and Figure 26 shows the Solver window.
When we choose Solve, we obtain the message shown in Figure 27. This indicates that
the LP has no feasible solution.
Bevco.xls
Solver and Unbounded LPs
Recall that Example 3 of this chapter was an unbounded LP. The file Breadco.xls (see Figure 28) contains a Solver formulation of this LP. Figure 29 contains the Solver window
for the Breadco example. When we choose Solve, we obtain the message in Figure 30.
Breadco.xls
A
208
FIGURE
25
FIGURE
26
1
2
3
4
5
6
7
8
9
10
11
B
C
D
E
F
Infeasible LP
Soda
Amount
Unit cost
Sugar
Vitamin C
Total oz.
CHAPTER
Total Cost
3 0
Juice
0
2
10
3
0.5
1
1
0.25
3
1
Available
2.5 >=
30 >=
10 =
4 The Simplex Algorithm and Goal Programming
Needed
4
36
10
FIGURE
27
A
Unbounded
1 LP
2
B
3
4
5
6
7
8
9
10
FIGURE
28
FIGURE
29
11
12
13
C
E
F
Yeast
FB Baked SD Baked bought
5
0
Flour
bought
Price or
cost
Yeast
needed
Flour
needed
Profit
D
H
Originally we
have
0
20
3
4
36
30
1
1
5
6
5
10
100
Used
Yeast
Flour
G
Available
5 <=
30 <=
5
30
4 . 17 Using the Excel Solver to Solve LPs
209
FIGURE
30
The message “Set Cell values do not converge” indicates an unbounded LP; that is, there
are values of the changing cells that satisfy all constraints and yield arbitrarily large profit.
PROBLEMS
Group A
Group B
Use Excel Solver to find the optimal solution to the following problems:
6
Problem 4 of Section 3.11
7
Problem 5 of Section 3.11
8
Problem 3 of Section 3.12
9
Problem 5 of Section 3.12
1
Problem 2 of Section 3.4
2
Example 7 of Chapter 3
3
Example 11 of Chapter 3
4
Problem 3 of Section 3.10
5
Example 14 of Section 3.12
SUMMARY
Preparing an LP for Solution by the Simplex
An LP is in standard form if all constraints are equality constraints and all variables are
nonnegative. To place an LP in standard form, we do the following:
Step 1 If the ith constraint is a constraint, then we convert it to an equality constraint
by adding a slack variable si and the sign restriction si 0.
Step 2 If the ith constraint is a constraint, then we convert it to an equality constraint
by subtracting an excess variable ei and adding the sign restriction ei 0.
If the variable xi is unrestricted in sign (urs), replace xi in both the objective function and constraints by xi xi, where xi 0 and xi 0.
Step 3
Suppose that once an LP is placed in standard form, it has m constraints and n variables.
A basic solution to Ax b is obtained by setting n m variables equal to 0 and solving for the values of the remaining m variables. Any basic solution in which all variables
are nonnegative is a basic feasible solution (bfs) to the LP.
For any LP, there is a unique extreme point of the LP’s feasible region corresponding to
each bfs. Also, at least one bfs corresponds to each extreme point of the feasible region.
If an LP has an optimal solution, then there is an extreme point that is optimal. Thus,
in searching for an optimal solution to an LP, we may restrict our search to the LP’s basic feasible solutions.
210
CHAPTER
4 The Simplex Algorithm and Goal Programming
The Simplex Algorithm
If the LP is in standard form and a bfs is readily apparent, then the simplex algorithm (for
a max problem) proceeds as follows:
Step 1 If all nonbasic variables have nonnegative coefficients in row 0, then the current
bfs is optimal. If any variables in row 0 have negative coefficients, then choose the variable with the most negative coefficient in row 0 to enter the basis.
Step 2 For each constraint in which the entering variable has a positive coefficient, compute the following ratio:
Right-hand side of constraint
Any constraint attaining the smallest value of this ratio is the winner of the ratio test. Use
EROs to make the entering variable a basic variable in any constraint that wins the ratio
test. Return to step 1.
If the LP (a max problem) is unbounded, then we eventually reach a tableau in which
a nonbasic variable has a negative coefficient in row 0 and a nonpositive coefficient in
each constraint. Otherwise (barring the extremely rare occurrence of cycling), the simplex
algorithm will find an optimal solution to an LP.
If a bfs is not readily apparent, then the Big M method or the two-phase simplex
method must be used to obtain a bfs.
The Big M Method
Step 1
Modify the constraints so that the right-hand side of each constraint is nonnegative.
Step 1 Identify each constraint that is now (after step 1) an or constraint. In step
3, we will add an artificial variable to each of these constraints.
Step 2
Convert each inequality constraint to standard form.
If (after step 1 has been completed) constraint i is a or constraint, then add
an artificial variable ai and the sign restriction ai 0.
Step 3
Let M denote a very large positive number. If the LP is a min problem, then add
(for each artificial variable) Mai to the objective function. For a max problem, add Mai.
Step 4
Step 5 Because each artificial variable will be in the starting basis, each must be eliminated
from row 0 before beginning the simplex. If all artificial variables are equal to 0 in the optimal solution, then we have found the optimal solution to the original problem. If any artificial variables are positive in the optimal solution, then the original problem is infeasible.
The Two-Phase Method
Step 1
Modify the constraints so that the right-hand side of each constraint is nonnegative.
Step 1 Identify each constraint that is now (after step 1) an or constraint. In step
3, we will add an artificial variable to each of these constraints.
Step 2
Convert each inequality constraint to the standard form.
If (after step 1) constraint i is a or constraint, then add an artificial variable
ai and the sign restriction ai 0.
Step 3
4 . 17 Summary
211
For now, ignore the original LP’s objective function. Instead, solve an LP whose
objective function is min w (sum of all the artificial variables). This is called the Phase
I LP.
Step 4
Because each ai 0, solving the Phase I LP will result in one of the following three
cases:
The optimal value of w is greater than zero. In this case, the original LP has no
feasible solution.
Case 1
Case 2 The optimal value of w is equal to zero, and no artificial variables are in the optimal Phase I basis. In this case, drop all columns in the optimal Phase I tableau that correspond to the artificial variables and combine the original objective function with the
constraints from the optimal Phase I tableau. This yields the Phase II LP. The optimal
solution to the Phase II LP and the original LP are the same.
The optimal value of w is equal to zero, and at least one artificial variable is in
the optimal Phase I basis. In this case, we can find the optimal solution to the original LP
if, at the end of Phase I, we drop from the optimal Phase I tableau all nonbasic artificial
variables and any variable from the original problem that has a negative coefficient in row
0 of the optimal Phase I tableau.
Case 3
Solving Minimization Problems
To solve a minimization problem by the simplex, choose as the entering variable the nonbasic variable in row 0 with the most positive coefficient. A tableau or canonical form is
optimal if each variable in row 0 has a nonpositive coefficient.
Alternative Optimal Solutions
If a nonbasic variable has a zero coefficient in row 0 of an optimal tableau and the nonbasic variable can be pivoted into the basis, the LP may have alternative optimal solutions. If two basic feasible solutions are optimal, then any point on the line segment joining the two optimal basic feasible solutions is also an optimal solution to the LP.
Unrestricted-in-Sign Variables
If we replace a urs variable xi with xi xi , the LP’s optimal solution will have xi , xi or
both xi and xi equal to zero.
REVIEW PROBLEMS
Group A
1 Use the simplex algorithm to find two optimal solutions
to the following LP:
max z 5x1 3x2 x3
s.t.
x1 x2 3x3 6
s.t.
5x1 3x2 6x3 15
x3, x1, x2 0
212
CHAPTER
2 Use the simplex algorithm to find the optimal solution
to the following LP:
min z 4x1 x2
s.t.
3x1 x2 6
s.t.
x1 2x2 0
x1, x2 0
4 The Simplex Algorithm and Goal Programming
3 Use the Big M method and the two-phase method to
find the optimal solution to the following LP:
max z 5x1 x2
s.t.
2x1 x2 6
s.t.
x1 x2 4
s.t.
x1 2x2 5
x1, x2 0
4 Use the simplex algorithm to find the optimal solution
to the following LP:
max z 5x1 x2
s.t.
x1 3x2 1
s.t.
x1 4x2 3
s.t.
x1, x2 0
5 Use the simplex algorithm to find the optimal solution
to the following LP:
min z x1 2x2
s.t.
2x1 x2 5
s.t.
x1 x2 3
x1, x2 0
6 Use the Big M method and the two-phase method to
find the optimal solution to the following LP:
max z x1 x2
s.t.
2x1 x2 3.5
s.t.
3x1 x2 3.5
s.t.
x1 x2 1
x1, x2 0
7 Use the simplex algorithm to find two optimal solutions
to the following LP. How many optimal solutions does this
LP have? Find a third optimal solution.
max z 4x1 x2
s.t.
2x1 3x2 4
s.t.
x1 x2 1
s.t.
4x1 x2 2
x1, x2 0
8 Use the simplex method to find the optimal solution to
the following LP:
max z 5x1 x2
s.t.
2x1 x2 6
s.t.
x1 x2 0
x1, x2 0
9 Use the Big M method and the two-phase method to
find the optimal solution to the following LP:
min z 3x1 x2
s.t.
x1 2x2 2
s.t.
x1 x2 3
x1, x2 0
10 Suppose that in the Dakota Furniture problem, 10 types
of furniture could be manufactured. To obtain an optimal
solution, how many types of furniture (at the most) would
have to be manufactured?
11
Consider the following LP:
max z 10x1 x2
s.t.
x1 x2 1
s.t.
20x1 x2 100
x1, x2 0
a Find all the basic feasible solutions for this LP.
b Show that when the simplex is used to solve this LP,
every basic feasible solution must be examined before
the optimal solution is found.
By generalizing this example, Klee and Minty (1972)
constructed (for n 2, 3, . . .) an LP with n decision variables and n constraints for which the simplex algorithm examines 2n 1 basic feasible solutions before the optimal solution is found. Thus, there exists an LP with 10 variables
and 10 constraints for which the simplex requires 210 1 1,023 pivots to find the optimal solution. Fortunately, such
“pathological” LPs rarely occur in practical applications.
12 Productco produces three products. Each product
requires labor, lumber, and paint. The resource requirements,
unit price, and variable cost (exclusive of raw materials) for
each product are given in Table 70. Currently, 900 labor
hours, 1,550 gallons of paint, and 1,600 board feet of lumber
are available. Additional labor can be purchased at $6 per
hour, additional paint at $2 per gallon, and additional lumber
at $3 per board foot. For the following two sets of priorities,
use preemptive goal programming to determine an optimal
production schedule. For set 1:
Priority
Priority
Priority
Priority
1
2
3
4
Obtain profit of at least $10,500.
Purchase no additional labor.
Purchase no additional paint.
Purchase no additional lumber.
For set 2:
Priority
Priority
Priority
Priority
13
1
2
3
4
Purchase no additional labor.
Obtain profit of at least $10,500.
Purchase no additional paint.
Purchase no additional lumber.
Jobs at Indiana University are rated on three factors:
Factor 1
Factor 2
Factor 3
Complexity of duties
Education required
Mental and or visual demands
For each job at IU, the requirement for each factor has been
rated on a scale of 1–4, with a 4 in factor 1 representing
high complexity of duty, a 4 in factor 2 representing high
educational requirement, and a 4 in factor 3 representing
high mental and/or visual demands.
TA B L E
70
Product
Labor
1
2
3
1.5
3
2
Lumber
Paint
2
3
4
3
2
2
4 . 17 Review Problems
Price ($)
Variable
Cost ($)
26
28
31
10
6
7
213
IU wants to determine a formula for grading each job.
To do this, it will assign a point value to the score for each
factor that a job requires. For example, suppose level 2 of
factor 1 yields a point total of 10, level 3 of factor 2 yields
a point total of 20, and level 3 of factor 3 yields a point
value of 30. Then a job with these requirements would have
a point total of 10 20 30. A job’s hourly salary equals
half its point total.
IU has two goals (listed in order of priority) in setting
up the points given to each level of each job factor.
Goal 1 When increasing the level of a factor by one, the
points should increase by at least 10. For example, level 2
of factor 1 should earn at least 10 more points than level 1
of factor 1. Goal 1 is to minimize the sum of deviations
from this requirement.
Goal 2 For the benchmark jobs in Table 71, the actual
point total for each job should come as close as possible to
the point total listed in the table. Goal 2 is to minimize the
sum of the absolute deviations of the point totals from the
desired scores.
Use preemptive goal programming to come up with appropriate point totals. What salary should a job with skill levels of 3 for each factor be paid?
14 A hospital outpatient clinic performs four types of
operations. The profit per operation, as well as the minutes
of X-ray time and laboratory time used are given in Table
72. The clinic has 500 private rooms and 500 intensive care
rooms. Type 1 and Type 2 operations require a patient to
stay in an intensive care room for one day while Type 3 and
Type 4 operations require a patient to stay in a private room
for one day. Each day the hospital is required to perform at
least 100 operations of each type. The hospital has set the
following goals:
Goal 1 Earn a daily profit of at least $100,000.
Goal 2 Use at most 50 hours daily of X-ray time.
Goal 3 Use at most 40 hours daily of laboratory time.
TA B L E
71
Job
1
2
3
Desired Score
1
2
3
4
4
3
2
1
4
3
2
1
4
2
2
2
105
93
75
68
TA B L E
72
Formulate a goal programming model to minimize the daily
cost incurred due to failing to meet the hospital’s goals.
Group B
15 Consider a maximization problem with the optimal
tableau in Table 73. The optimal solution to this LP is z 10, x3 3, x4 5, x1 x2 0. Determine the second-best
bfs to this LP. (Hint: Show that the second-best solution
must be a bfs that is one pivot away from the optimal
solution.)
16 A camper is considering taking two types of items on
a camping trip. Item 1 weighs a1 lb, and item 2 weighs a2
lb. Each type 1 item earns the camper a benefit of c1 units,
and each type 2 item earns the camper c2 units. The knapsack
can hold items weighing at most b lb.
a Assuming that the camper can carry a fractional
number of items along on the trip, formulate an LP to
maximize benefit.
b Show that if
c2
c
1
a2
a1
then the camper can maximize benefit by filling a knapsack with ab2 type 2 items.
C Which of the linear programming assumptions are
violated by this formulation of the camper’s problem?
18 Suppose we have obtained the tableau in Table 75 for
a maximization problem. State conditions on a1, a2, a3, b,
c1, and c2 that are required to make the following statements
true:
a The current solution is optimal, and there are alternative optimal solutions.
b The current basic solution is not a basic feasible
solution.
TA B L E
Type of Operation
214
Goal 1 Cost of $1 for each dollar by which profit goal is
unmet
Goal 2 Cost of $10 for each hour by which X-ray goal is
unmet
Goal 3 Cost of $8 for each hour by which laboratory goal
is unmet
17 You are given the tableau shown in Table 74 for a
maximization problem. Give conditions on the unknowns
a1, a2, a3, b, and c that make the following statements true:
a The current solution is optimal.
b The current solution is optimal, and there are alternative optimal solutions.
c The LP is unbounded (in this part, assume that b 0).
Factor Level
Profit ($)
X-ray time (minutes)
Laboratory time (minutes)
The cost per unit deviation from each goal is as follows:
73
1
2
3
4
z
x1
x2
x3
x4
rhs
200
206
205
150
155
154
100
154
153
80
3
2
1
0
0
2
3
4
1
2
3
0
1
0
0
0
1
10
3
5
CHAPTER
4 The Simplex Algorithm and Goal Programming
TA B L E
74
z
x1
x2
x3
x4
x5
rhs
1
0
0
0
c
1
a2
a3
2
a1
4
3
0
1
0
0
0
0
1
0
0
0
0
1
10
4
1
b
TA B L E
meeting (on time) the demands of the next six months. At
the beginning of month 1, Shoemakers has 13 workers.
75
z
x1
x2
x3
x4
x5
x6
rhs
1
0
0
0
c1
4
1
a3
c2
a1
5
3
0
1
0
0
0
0
1
0
0
a2
1
4
0
0
0
1
10
b
2
3
c The current basic solution is a degenerate bfs.
d The current basic solution is feasible, but the LP is
unbounded.
e The current basic solution is feasible, but the objective function value can be improved by replacing x6 as
a basic variable with x1.
19 Suppose we are solving a maximization problem and
the variable xr is about to leave the basis.
a What is the coefficient of xr in the current row 0?
b Show that after the current pivot is performed, the
coefficient of xr in row 0 cannot be less than zero.
c Explain why a variable that has left the basis on a
given pivot cannot re-enter the basis on the next pivot.
20 A bus company believes that it will need the following
number of bus drivers during each of the next five years:
year 1—60 drivers; year 2—70 drivers; year 3—50 drivers;
year 4—65 drivers; year 5—75 drivers. At the beginning of
each year, the bus company must decide how many drivers
should be hired or fired. It costs $4,000 to hire a driver and
$2,000 to fire a driver. A driver’s salary is $10,000 per year.
At the beginning of year 1, the company has 50 drivers. A
driver hired at the beginning of a year may be used to meet
the current year’s requirements and is paid full salary for the
current year. Formulate an LP to minimize the bus company’s
salary, hiring, and firing costs over the next five years.
21 Shoemakers of America forecasts the following demand
for each of the next six months: month 1—5,000 pairs;
month 2—6,000 pairs; month 3—5,000 pairs; month 4—
9,000 pairs; month 5—6,000 pairs; month 6—5,000 pairs. It
takes a shoemaker 15 minutes to produce a pair of shoes.
Each shoemaker works 150 hours per month plus up to 40
hours per month of overtime. A shoemaker is paid a regular
salary of $2,000 per month plus $50 per hour for overtime.
At the beginning of each month, Shoemakers can either hire
or fire workers. It costs the company $1,500 to hire a worker
and $1,900 to fire a worker. The monthly holding cost per
pair of shoes is 3% of the cost of producing a pair of shoes
with regular-time labor. (The raw materials in a pair of shoes
cost $10.) Formulate an LP that minimizes the cost of
22 Monroe County is trying to determine where to place
the county fire station. The locations of the county’s four
major towns are given in Figure 31. Town 1 is at (10, 20);
town 2 is at (60, 20); town 3 is at (40, 30); town 4 is at (80,
60). Town 1 averages 20 fires per year; town 2, 30 fires;
town 3, 40 fires; and town 4, 25 fires. The county wants to
build the fire station in a location that minimizes the average
distance that a fire engine must travel to respond to a fire.
Since most roads run in either an east–west or a north–south
direction, we assume that the fire engine can only do the
same. Thus, if the fire station were located at (30, 40) and
a fire occurred at town 4, the fire engine would have to
travel (80 30) (60 40) 70 miles to the fire. Use
linear programming to determine where the fire station
should be located. (Hint: If the fire station is to be located
at the point (x, y) and there is a town at the point (a, b),
define variables e, w, n, s (east, west, north, south) that
satisfy the equations x a w e and y b n s.
It should now be easy to obtain the correct LP formulation.)
23† During the 1972 football season, the games shown in
Table 76 were played by the Miami Dolphins, the Buffalo
Bills, and the New York Jets. Suppose that on the basis of
these games, we want to rate these three teams. Let M Miami rating, J Jets rating, and B Bills rating. Given
values of M, J, and B, you would predict that when, for
example, the Bills play Miami, Miami is expected to win by
M B points. Thus, for the first Miami–Bills game, your
prediction would have been in error by |M B 1| points.
Show how linear programming can be used to determine
ratings for each team that minimize the sum of the prediction
errors for all games.
31
FIGURE
4
3
1
2
TA B L E
76
Miami
Bills
Jets
27
28
24
30
—
—
—
—
23
16
24
3
17
24
—
—
41
41
†
Based on Wagner (1954).
4 . 17 Review Problems
215
At the conclusion of the season, this method has been
used to determine ratings for college football and college
basketball. What problems could be foreseen if this method
were used to rate teams early in the season?
28 Suppose the bfs for an optimal tableau is degenerate,
and a nonbasic variable in row 0 has a zero coefficient.
Show by example that either of the following cases may
hold:
24 During the next four quarters, Dorian Auto must meet
(on time) the following demands for cars: quarter 1—4,000;
quarter 2—2,000; quarter 3—5,000; quarter 4—1,000. At
the beginning of quarter 1, there are 300 autos in stock, and
the company has the capacity to produce at most 3,000 cars
per quarter. At the beginning of each quarter, the company
can change production capacity by one car. It costs $100 to
increase quarterly production capacity. It costs $50 per
quarter to maintain one car of production capacity (even if
it is unused during the current quarter). The variable cost of
producing a car is $2,000. A holding cost of $150 per car is
assessed against each quarter’s ending inventory. It is
required that at the end of quarter 4, plant capacity must be
at least 4,000 cars. Formulate an LP to minimize the total
cost incurred during the next four quarters.
Case 1
Case 2
25 Ghostbusters, Inc., exorcises (gets rid of) ghosts.
During each of the next three months, the company will
receive the following number of calls from people who want
their ghosts exorcised: January, 100 calls; February, 300
calls; March, 200 calls. Ghostbusters is paid $800 for each
ghost exorcised during the month in which the customer
calls. Calls need not be responded to during the month they
are made, but if a call is responded to one month after it is
made, then Ghostbusters loses $100 in future goodwill, and
if a call is responded to two months after it is made,
Ghostbusters loses $200 in goodwill. Each employee of
Ghostbusters can exorcise 10 ghosts during a month. Each
employee is paid a salary of $4,000 per month. At the
beginning of January, the company has 8 workers. Workers
can be hired and trained (in 0 time) at a cost of $5,000 per
worker. Workers can be fired at a cost of $4,000 per worker.
Formulate an LP to maximize Ghostbusters’ profit (revenue
less costs) over the next three months. Assume that all calls
must be handled by the end of March.
26 Carco uses robots to manufacture cars. The following
demands for cars must be met (not necessarily on time, but
all demands must be met by end of quarter 4): quarter 1—
600; quarter 2—800; quarter 3—500; quarter 4—400. At
the beginning of the quarter, Carco has two robots. Robots
can be purchased at the beginning of each quarter, but a
maximum of two per quarter can be purchased. Each robot
can build as many as 200 cars per quarter. It costs $5,000
to purchase a robot. Each quarter, a robot incurs $500 in
maintenance costs (even if it is not used to build any cars).
Robots can also be sold at the beginning of each quarter for
$3,000. At the end of each quarter, a holding cost of $200
per car is incurred. If any demand is backlogged, then a cost
of $300 per car is incurred for each quarter the demand is
backlogged.
At the end of quarter 4, Carco must have at least two robots. Formulate an LP to minimize the total cost incurred in
meeting the next four quarters’ demands for cars.
27 Suppose we have found an optimal tableau for an LP,
and the bfs for that tableau is nondegenerate. Also suppose
that there is a nonbasic variable in row 0 with a zero
coefficient. Prove that the LP has more than one optimal
solution.
216
CHAPTER
The LP has more than one optimal solution.
The LP has a unique optimal solution.
29 You are the mayor of Gotham City, and you must
determine a tax policy for the city. Five types of taxes are
used to raise money:
a Property taxes. Let p property tax percentage rate.
b A sales tax on all items except food, drugs, and
durable goods. Let s sales tax percentage rate.
c A sales tax on durable goods. Let d durable goods
sales tax percentage rate.
d A gasoline sales tax. Let g gasoline tax sales percentage rate.
e A sales tax on food and drugs. Let f sales tax on
food and drugs.
The city consists of three groups of people: low-income
(LI), middle-income (MI), and high-income (HI). The
amount of revenue (in millions of dollars) raised from each
group by setting a particular tax at a 1% level is given in
Table 77.
For example, a 3% tax on durable good sales will raise
$360 million from low-income people. Your tax policy must
satisfy the following:
Restriction 1 The tax burden on MI people cannot exceed
$2.8 billion.
Restriction 2 The tax burden on HI people cannot exceed
$2.4 billion.
Restriction 3 The total revenue raised must exceed the
current level of $6.5 billion.
Restriction 4 s must be between 1% and 3%.
Given these restrictions, the mayor has set the following
three goals:
Goal P Keep the property tax rate less than 3%.
Goal LI Limit the tax burden on LI people to $2 billion.
Goal Suburbs If their tax burden becomes too high, 20%
of the LI people, 20% of the MI people, and 40% of the HI
people may consider moving to the suburbs. Suppose that
this will happen if their total tax burden exceeds $1.5 billion. To discourage this exodus, the suburb goal is to keep
the total tax burden on these people below $1.5 billion.
Use goal programming to determine an optimal tax policy if the mayor’s goals follow the following set of priorities:
LI
TA B L E
LI
MI
HI
†
Suburbs†
P
77
p
s
d
g
f
1,900
1,200
1,000
300
400
250
120
100
60
30
20
10
90
60
40
Based on Chrisman, Fry, Reeves, Lewis, and Weinstein (1989).
4 The Simplex Algorithm and Goal Programming
APPENDIX A
LINDO Menu Commands and Statements
Menu Commands
LINDO’s commands can be accessed from a convenient menu similar to those of other
Windows programs. The main menu includes six submenus along the top of the screen
that list the various commands. When you click on one of the submenus—File, Edit,
Solve, Reports, Window, or Help—a pull-down menu appears with the various commands. You can select commands just like you would in most Window programs—by either clicking on the command with your mouse or pressing the underlined letter in the
command name when the appropriate submenu is highlighted. Many commands also have
shortcut keys assigned to them (F2, CtrlZ, etc.). As an added convenience, some of the
most often used commands also may be accessed with icons located in a tool bar at the
top of the screen. The following sections briefly describe the various menu commands and
list the applicable shortcuts and icons.
File Menu
The File menu commands allow you to manipulate your LINDO data files in various
ways. You can use this menu to open, close, save, and print files, as well as perform various tasks unique to LINDO. A description of the File commands follows.
COMMAND
DESCRIPTION
New
F2
Creates a new window for entering input data.
Open
F3
Opens an existing file. Dialog boxes allow you to select from various file types and
locations.
View
F4
Opens an existing file for viewing only. No changes can be made to the file.
Save
F5
Save As...
F6
Close
F7
Saves the window. You can save input data (a model), a Reports window, or a command
window. Data can be saved in the following formats: *.LTX, a text format that can be
edited with word processing software; *.LPK, for saving compiled models in a
“packed” format, but without any special formatting or comments; and *.MPS, the
machine-independent industry standard format for transferring LP problems between
LINDO and other LP software.
Saves the active window with a specified file name. This is useful for renaming a revised file, while keeping the original file intact.
Closes the active window. If the window contains new input data, then you will be
asked if you want to save the changes.
Print
F8
Printer Setup... F9
Log Output... F10
Sends the active window to your printer.
Selects the printer and various options for print format.
Sends all subsequent screen activity that would normally be sent to the Reports window
to a text file. When you have specified a log file location, a check will appear in the
File menu by the Log Output line. To disable Log Output, simply select the command
again.
4 . 17 Appendix A
217
COMMAND
DESCRIPTION
Take Commands...
F11
“Takes” a LINGO batch file with commands and text for automated operation. A model
could be put in memory, solved, and the solution placed in the Reports window and
saved to a file. If you use the Batch command before the beginning of the model text,
the model and the commands contained in the file, as well as the solution, would be
visible in the Reports window.
Retrieves a solution to a model that was saved using the Basis Save command.
Saves the solution for the active model to disk with a specified file name.
Basis Read
F12
Basis Save
Shift+F2
Title
Shift+F3
Date
Shift+F4
Elapsed Time
Shift+F5
Exit
Shift+F6
Displays the title of the active model, if one has been included with the optional Title
statement in the model.
Opens a Reports window and displays the current date and time based on your computer’s clock.
Opens a Reports window and displays the total time elapsed in your current LINDO
session.
Quits LINDO.
Edit Menu
The Edit menu commands allow you to perform basic editing tasks common to most Windows applications, as well as perform various tasks unique to LINDO. A description of
the Edit commands follows.
COMMAND
DESCRIPTION
Undo
Ctrl+Z
Reverses the last action.
Cut
Ctrl+X
Removes any selected text and places it on the clipboard for pasting.
Copy
Ctrl+C
Copies selected text to the clipboard for pasting.
Paste
Ctrl+V
Clear
Delete
Inserts or pastes clipboard contents at the insertion point.
Deletes selected text without placing it on the clipboard.
Find/Replace...
Ctrl+F
Searches the active window to find selected text and replaces it with text entered in the
“Replace with” box.
Options
Allows viewing and changing of various parameters used in LINDO sessions.
Alt+O
Go To Line...Ctrl+T
Allows you to move the cursor to any specified line in the active window.
Paste Symbol...
Ctrl+P
Allows you to paste variable names and reserved symbols into the active window.
Select All Ctrl+A
Selects all of the active window for cutting and copying.
Clear All
Choose New Font
Deletes the entire contents of the active window.
Selects a new font for the text in the active window.
218
CHAPTER
4 The Simplex Algorithm and Goal Programming
Solve Menu
The Solve menu commands are used after you have entered data and are ready to obtain
a solution. A description of the Solve command follows.
COMMAND
DESCRIPTION
Solve
Sends the model in the active window to the LINDO solver to obtain the solution.
Ctrl+S
Compile Model
Ctrl+E
Debug
Ctrl+D
Pivot
Ctrl+N
Preemptive Goal
Ctrl+G
Translates the model into the arithmetic format required by the LINDO solver. Models
are also automatically compiled when you use the Solve command.
Helps determine problems with infeasible and unbounded models. Sufficient and necessary sets (rows) can be identified, as can crucial constraints—those that make an infeasible model feasible if dropped from the model.
Causes LINDO to perform the next step in the solution process, allowing linear programming problems to be solved step-by-step.
Performs Lexico optimization (a form of goal programming) on a model.
Reports Menu
The Reports menu commands allow you to specify how LINDO reports are generated.
Descriptions of the Reports commands follow.
COMMAND
DESCRIPTION
Solution
Alt+0
Range
Alt+1
Statistics
Alt+3
Opens the Solution Report Options dialog box, which allows you to specify how you
want a solution report to appear.
Creates a range report, or sensitivity analysis, for the active model window.
Performs a parametric analysis on the right-hand side of a constraint.
Displays key statistics for the model in the active window.
Peruse
Alt+4
Used to view reports on selected portions of the current model’s solution or structure.
Picture
Alt+5
Creates a display of the current model in matrix form. The nonzero coefficients of the
matrix may be displayed as either text or graphic.
Displays a text-format report with a “picture” of the current basis, ordering the rows
and columns according to the last inversion or triangularization performed by the
solver. The Basis Picture report is sent to the Reports window.
Displays the simplex tableau for the active model. This permits observation of the simplex algorithm at each step.
Displays all, or selected segments, of your model in the Reports window.
Displays a selected column without the rest of the model.
Checks for a guarantee of global optimality in a quadratic model.
Parametrics Alt+2
Basis PictureAlt+6
Tableau
Alt+7
Formulation Alt+8
Show ColumnAlt+9
Positive Definite
Window Menu
The Window menu commands allow you to adjust active command and status windows,
as well as organize the display of multiple windows. Descriptions of the Window commands follow.
4 . 17 Appendix A
219
COMMAND
DESCRIPTION
Open Command Window
Alt+C
Provides access to LINDO’s command-line interface, where you may enter
commands at the colon prompt.
Opens LINDO’s Solver Status window, which displays information about the optimizer
status, such as number of iterations and elapsed run time. This window also appears
when you select Solve from the Solve menu.
Open Status Window
Send to Back
Ctrl+B
Cascade
Alt+A
Tile
Alt+T
Close All
Alt+X
Arrange Icons
Alt+I
List of Windows
Sends the frontmost window to the back.
Arranges all open windows in a cascade fashion from upper left to lower right, with the
active window on top.
Arranges all open windows so they each occupy equivalent space within the program
window.
Closes all active windows.
Moves icons representing minimized windows so that they are arranged across the
bottom of the screen.
At the bottom of the Window menu, a list of the open windows is displayed. The active
window is checked.
Help Menu
The Help menu commands provide access to LINDO’s online help. Descriptions of the
Help commands follow.
COMMAND
DESCRIPTION
Contents
Displays the contents of the help section. The second icon (with the arrow and question
mark) enables context-sensitive help, where the cursor indicator will change to a question mark, and help will be provided specifically for a command selected.
Searches the help section for a word or topic.
F1
Search for Help on...
Alt+F1
How to Use Help
Ctrl+F1
Provides assistance in learning to use the online help system.
About LINDO...
Displays the initial startup screen with general information about LINDO.
Optional Modeling Statements
Besides the basic elements of a model, LINDO recognizes several optional statements that
may appear after the END statement. These statements provide additional modeling capabilities, such as placing additional limits on variables. Descriptions of these statements
follow.
S TAT E M E N T
DESCRIPTION
FREE <Variable>
Removes all bounds on a variable, allowing it to take on any real value—positive
or negative.
Restricts a variable to be a general integer (i.e., in the set of non-negative integers).
Restricts a variable to be a binary integer (i.e., either 0 or 1).
Sets a simple lower bound for a variable (i.e., SLB X 10 would required that X be
greater than or equal to 10).
GIN <Variable>
INT <Variable>
SLB <Variable> <Value>
220
CHAPTER
4 The Simplex Algorithm and Goal Programming
SUB <Variable> <Value> Sets a simple upper bound for a variable (i.e., SUB X 10 would require that X be
less than or equal to 10).
QCP <Constraint>
Indicates the first “real” constraints in a quadratic programming model.
TITLE <Title>
Allows you to attach a title to your model. The title can then be displayed using the
Title command in the File menu.
APPENDIX B
Getting Started with LINGO
Welcome to the LINGO portion of this text. This appendix will give you brief background
information on LINGO and help you install the software. Subsequent chapters will describe features of the software and how to apply the software on sample problems.
What Is LINGO?
LINGO is an interactive computer-software package that can be used to solve linear, integer, and nonlinear programming problems. It can be applied in similar situations to
those of LINDO, but it offers more flexibility in terms of how models are expressed. Unlike LINDO, LINGO allows parentheses and variables on the right-hand side of an equation. Constraints can therefore be written in original form and do not have to be rewritten with constants on the right-hand side. LINGO is also capable of generating large
models with relatively few lines of input. The program also provides a vast library of
mathematical, statistical, and probability functions and greater ability to read data from
external files and worksheets.
LINGO Fundamentals
Much like LINDO, LINGO can be used to solve problems interactively from the keyboard
or solve problems using files created elsewhere—either self-contained or as part of an integrated program containing customized code and LINGO optimization libraries. This appendix will primarily focus on the first method, that of solving problems interactively.
More information on the other methods is available from LINDO Systems, Inc.
Entering a model in the Windows version of LINGO is similar to typing in a Windows
word-processing format: You simply type in model data much as you would write it if
solving a problem manually. The inner window initially labeled “untitled” is provided to
accept input data. LINGO also contains basic editing commands for cutting, copying, and
pasting text. These tools, and other features, are found in the window commands discussed in Appendix C.
The required elements of LINGO are similar to those of LINDO: LINGO also requires
an objective, one or more variables, and one or more constraints. Unlike LINDO, however, LINGO constraints are not preceded by any special terms such as SUBJECT TO or
SUCH THAT.
LINGO follows a syntax similar to that of LINDO, with the following differences:
■
■
■
■
LINGO statements end with semicolons.
LINGO includes additional mathematical operators, as discussed in Appendix C.
An asterisk is required to denote multiplication.
Parentheses may be included to define the order of mathematical operations if you
wish.
Variable names can be up to 32 characters long.
4 . 17 Appendix B
221
APPENDIX C
LINGO Menu Commands and Functions
Menu Commands
LINGO’s commands can be accessed from a convenient menu similar to those of other
Windows programs. The main menu includes five submenus along the top of the screen
that list the various commands. When you click on one of the submenus—File, Edit,
LINGO, Window, or Help—a pull-down menu appears with the various commands. You
can select commands just like you would in most Window programs—by either clicking
on the command with your mouse or pressing the underlined letter in the command name
when the appropriate submenu is highlighted. Many commands also have shortcut keys
assigned to them (F2, Ctrl1Z, etc.). As an additional convenience, some of the most often used commands may also be accessed with icons located in a tool bar at the top of
the screen.
File Menu
The File menu commands allow you to manipulate your LINGO data files in various
ways. You can use this menu to open, close, save, and print files, as well as perform various tasks unique to LINGO. Descriptions of the File commands follow.
COMMAND
DESCRIPTION
New
F2
Creates a new window for entering input data.
Open
F3
Opens an existing file. Dialog boxes allow you to select from various file types and
locations.
Save
F4
Save As...
F5
Close
F6
Saves the active window. You can save input data (a model), a reports window, or a
command window.
Saves the active window with a specified file name. This is useful for renaming a revised file while keeping the original file intact.
Closes the active window. If the window contains new input data, then you will be
asked if you want to save the changes.
Print
F7
Printer Setup... F8
Log Output...
F9
Take Commands
F11
Import LINDO file
F12
Exit
222
F10
Sends the active window to your printer.
Selects the printer and various options for print format.
Sends all subsequent screen activity that would normally be sent to the Reports window
to a text file. When you have specified a log file location, a check will appear in the
File menu by the Log Output line. To disable Log Output, simply select the command
again.
“Takes” a LINGO batch file with commands and model text for automated operation. A
model could be put in memory, solved, and the solution placed in the Reports window
saved to a file. If you use the BATCH command before the beginning of the model text,
then the model and the commands contained in the file would be visible in the Reports
window, as well as the solution.
Opens a file that contains a LINDO model in LINDO TAKE format, translating the
model into a format acceptable to LINGO.
Quits LINGO.
CHAPTER
4 The Simplex Algorithm and Goal Programming
Edit Menu
The Edit menu commands allow you to perform basic editing tasks common to most Windows applications, as well as perform various tasks unique to LINGO. Descriptions of the
Edit commands follow.
COMMAND
DESCRIPTION
Undo
Ctrl+Z
Reverses the last action.
Cut
Ctrl+X
Removes any selected text and places it on the clipboard for pasting.
Copy
Ctrl+C
Copies selected text to the clipboard for pasting.
Paste
Ctrl+V
Clear
Delete
Inserts clipboard contents at the insertion point.
Deletes selected text without placing it on the clipboard.
Find/Replace...
Ctrl+F
Searches the active window to find selected text and replace it with text entered in the
“Replace with” box.
Go To Line...
Allows you to move the cursor to any specified line in the active window.
Ctrl+T
Match Parenthesis
Ctrl+P
Finds the close parenthesis that corresponds to the selected open parenthesis.
Paste Function
Pastes any of LINGO’s built-in functions at the current insertion point. After selecting
this command, another submenu appears with the various function categories.
Selects all of the active window for cutting and copying.
Selects a new font for the text in the active window.
Select All Ctrl+A
Choose New Font
LINGO Menu
The LINGO menu commands are used after you have entered data and are ready to obtain a solution. Descriptions of the LINGO commands follow.
COMMAND
DESCRIPTION
Solve
Sends the model in the active window to the LINGO solver.
Ctrl+S
Solution... Ctrl+O
Range
Ctrl+R
Look...
Ctrl+L
Generate... Ctrl+S
Export to Spreadsheet
Ctrl+E
Opens the Solution Report Options dialog box, which allows you to specify how you
want a solution report to appear.
Displays a range report, which shows over what ranges you can change coefficients
without changing optimal values.
Displays all or selected lines of a model.
Creates another version of the current model in algebraic, LINDO, or MPS format. Can
be used to number rows and display the model in a more readable format. The GEN
command provides a similar capability from the command window.
Exports selected variable values to named ranges in a spreadsheet. A spreadsheet must
first be created with ranges sized to accommodate the exported values. The ranges must
contain numbers. Selecting this command will produce a dialog box that requests the
4 . 17 Appendix C
223
template and output worksheets (spreadsheet file names), variables to export, and the
range to which the values are to be exported. The variables and range are entered in
pairs and added to the list of variable and range pairs by clicking the add button.
Options
Alt+O
Workspace Limit
Ctrl+S
Allows viewing and changing of various parameters used in LINGO sessions.
Allocates memory to LINGO. If you enter “None,” LINGO will use all available
memory.
Window Menu
The Window menu commands allow you to adjust any open command and status windows, as well as organize the display of multiple windows. Descriptions of the Window
commands follow.
COMMAND
DESCRIPTION
Open Command Window
Provides access to LINGO’s command-line interface, where you may enter
commands at the colon prompt.
Opens LINGO’s Solver Status window, which displays information about the optimizer
status, such as number of iterations and elapsed run time. This window also appears
when you select Solve from the LINGO menu.
Open Status Window
Send to Back
Alt+B
Close All
Alt+X
Cascade
Alt+A
Tile
Alt+T
Arrange Icons
Alt+I
List of Windows
Sends the frontmost window to the back.
Closes all active windows.
Arranges all open windows in a cascade fashion from upper left to lower right, with the
active window on top.
Arranges all open windows so they each occupy equivalent space within the program
window.
Arranges icons representing minimized windows across the bottom of the screen.
At the bottom of the Window menu, a list of the open windows is displayed. The active
window is checked.
Help Menu
The Help menu commands provide access to LINGO’s on-line help. Descriptions of the
Help commands follow.
COMMAND
Contents
F1
Search for Help on...
Alt+F1
DESCRIPTION
Displays the contents of the help section. The second icon (the arrow with the question
mark) enables context-sensitive help; the cursor indicator will change to a question
mark, and help will be provided specifically for a command selected.
Searches the help section for a word or topic.
How to Use Help
Ctrl+F1
Provides assistance in learning to use the online help system.
About LINGO...
Displays the initial startup screen with general information about LINGO.
224
CHAPTER
4 The Simplex Algorithm and Goal Programming
Functions
LINGO has seven main functions—standard operators, file import, financial, mathematical, set-looping, variable-domain, and probability, and an assortment of other functions.
Most of these functions are available through the menu commands. The LINGO software
includes a detailed description of its functions in online help screens; therefore, only a
brief description of LINGO functions is offered here.
Standard Operators
Standard operators include arithmetic operators (i.e., ^, *, /, , and ), logical operators
(#EQ#, #NE#, #GT#, #GE#, #LT#, and #L3#) for determining set membership, and
equality–inequality operators (, , , , and ) for specifying whether the lefthand side of an expression should be less than, equal to, or greater than the right-hand
side. These operators constitute some of the most basic functions available in LINGO.
Note that the “greater than” and “less than” symbols ( and ) are interpreted as “loose”
inequalities [i.e., greater than or equal to () and less than or equal to (), respectively].
You typically type these operators in at the keyboard rather than access them from a window command.
File Import Functions
File import functions allow you to import text and data from external sources. The @FILE
function lets you import text or data from an ASCII file, and the @IMPORT function lets
you import data only from a worksheet.
Financial Functions
Financial functions include the @FPA(I,N) function, which returns the present value of
an annuity; and the @FPL(I,N) function, which returns the present value of a lump sum
of $1 N periods from now if the interest rate is I per period. I is not a percentage but rather
a non-negative number representing the interest rate.
Mathematical Functions
Mathematical functions include the following general and trigonometric functions:
@ABS(X), @COS(X), @EXP(X), @LGM(X), @LOG(X), @SIGN(X), @SIN(X),
@SMAX(list), @SMIN(list), @TAN(X). Combinations of the three basic trigonometric
functions (sine, cosine, and tangent) may be used to obtain other trigonometric functions.
Set-Looping Functions
Set-looping functions include @FOR (set_name : constraint_expressions), @MAX
(set_name : expression), @MIN (set_name : expression), and @SUM (set_name : expression). These functions operate over an entire set, producing a single result in all cases,
except the @FOR function, which generates constraints independently for each element
of the set.
Variable Domain Functions
The variable domain functions place additional restrictions on variables and attributes.
They include the following: @BND(L, X, U), @BIN(X), @FREE(X), and @GIN(X).
Probability Functions
LINGO provides common statistical capabilities through its probability functions:
@PSN(X), @PSL(X), @PPS(A,X), @PPL(A,X), @PBN(P,N,X), @PHG(POP,G,N,X),
@PEL(A,X), @PEB(A,X), @PFS(A,X,C), @PFD(N,D,X), @PFD(N,D,X), @PCX(N,X),
@PTD(N,X), and @RAND(X).
4 . 17 Appendix C
225
Other Functions
Other functions provided by LINGO include @IN (set_name, set_element), @SIZE
(set_name), @WARN(‘text’, condition), @WRAP(I,N), and @USER. These functions
provide a variety of capabilities in addition to those of the categories above.
REFERENCES
There are many fine linear programming texts, including the following books:
Bazaraa, M., and J. Jarvis. Linear Programming and Network Flows. New York: Wiley, 1990.
Bersitmas, D., and J. Tsitsiklis. Introduction to Linear Optimization. Belmont, Mass.: Athena Publishing, 1997.
Bradley, S., A. Hax, and T. Magnanti. Applied Mathematical
Programming. Reading, Mass.: Addison-Wesley, 1977.
Chvàtal, V. Linear Programming. San Francisco: Freeman,
1983.
Dantzig, G. Linear Programming and Extensions. Princeton, N.J.: Princeton University Press, 1963.
Gass, S. Linear Programming: Methods and Applications,
5th ed. New York: McGraw-Hill, 1985.
Luenberger, D. Linear and Nonlinear Programming, 2d ed.
Reading, Mass.: Addison-Wesley, 1984.
Murty, K. Linear Programming. New York: Wiley, 1983.
Nash, S., and A. Sofer. Linear and Nonlinear Programming.
New York: McGraw-Hill, 1995.
Nering, E., and A. Tucker. Linear Programs and Related
Problems. New York: Academic Press, 1993.
Simmons, D. Linear Programming for Operations Research.
Englewood Cliffs, N.J.: Prentice Hall, 1972.
Simonnard, M. Linear Programming. Englewood Cliffs,
N.J.: Prentice Hall, 1966.
Wu, N., and R. Coppins. Linear Programming and Extensions. New York: McGraw-Hill, 1981.
Bland, R. “New Finite Pivoting Rules for the Simplex
Method,” Mathematics of Operations Research
226
CHAPTER
2(1977):103–107. Describes simple, elegant approach to
prevent cycling.
Dantzig, G., and N. Thapa. Linear Programming. New York:
Springer-Verlag, 1997.
Karmarkar, N. “A New Polynomial Time Algorithm for Linear Programming,” Combinatorica 4(1984):373–395.
Karmarkar’s method for solving LPs.
Klee, V., and G. Minty. “How Good Is the Simplex Algorithm?”
In Inequalities—III. New York: Academic Press, 1972. Describes LPs for which the simplex method examines every
basic feasible solution before finding the optimal solution.
Kotiah, T., and N. Slater. “On Two-Server Poisson Queues
with Two Types of Customers,” Operations Research
21(1973):597–603. Describes an actual application that
led to an LP in which cycling occurred.
Love, R., and L. Yerex. “An Application of a Facilities Location Model in the Prestressed Concrete Industry,” Interfaces 6(no.4, 1976):45–49.
Papadimitriou, C., and K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Englewood Cliffs,
N.J.: Prentice Hall, 1982. More discussion of polynomial
time and exponential time algorithms.
Schrage, L. User’s Manual for LINDO. Palo Alto, Calif.:
Scientific Press, 1990. Gives complete details of LINDO.
Schrage, L. User’s Manual for LINGO. Chicago, Ill.: LINDO
Systems Inc., 1991. Gives complete details of LINGO.
Schrage, L. User’s Manual for What’s Best. Chicago, Ill.: LINDO
Systems Inc., 1993. Gives complete details of What’s Best.
Wagner, H. “Linear Programming Techniques for Regression Analysis,” Journal of the American Statistical Association 54(1954):206–212.
4 The Simplex Algorithm and Goal Programming
5
Sensitivity Analysis:
An Applied Approach
In this chapter, we discuss how changes in an LP’s parameters affect the optimal solution. This
is called sensitivity analysis. We also explain how to use the LINDO output to answer questions of managerial interest such as “What is the most money a company would be willing to
pay for an extra hour of labor?” We begin with a graphical explanation of sensitivity analysis.
5.1
A Graphical Introduction to Sensitivity Analysis
Sensitivity analysis is concerned with how changes in an LP’s parameters affect the optimal solution.
Reconsider the Giapetto problem of Section 3.1:
s.t.
s.t.
s.t.
2
max z 3x1 2x2
s.t.
2x1 x2 100
s.t.
2x1 x2 80
s.t.
x1 x2 40
x1, x2 0
(Finishing constraint)
(Carpentry constraint)
(Demand constraint)
where
x1 number of soldiers produced per week
x2 number of trains produced per week
The optimal solution to this problem is z 180, x1 20, x2 60 (point B in Figure 1),
and it has x1, x2, and s3 (the slack variable for the demand constraint) as basic variables.
How would changes in the problem’s objective function coefficients or right-hand sides
change this optimal solution?
Graphical Analysis of the Effect of a Change
in an Objective Function Coefficient
If the contribution to profit of a soldier were to increase sufficiently, then it seems reasonable that it would be optimal for Giapetto to produce more soldiers (that is, s3 would
become nonbasic). Similarly, if the contribution to profit of a soldier were to decrease sufficiently, then it would become optimal for Giapetto to produce only trains (x1 would now
be nonbasic). We now show how to determine the values of the contribution to profit for
soldiers for which the current optimal basis will remain optimal.
Let c1 be the contribution to profit by each soldier. For what values of c1 does the current basis remain optimal?
x2
100
Finishing constraint
Slope = –2
80
A
Demand constraint
B
60
Isoprofit line z = 120
Slope = – 3
2
D
40
FIGURE
1
Carpentry constraint
Slope = –1
C
20
Analysis of Range of
Values for Which c1
Remains Optimal in
Giapetto Problem
20
40
60
80
x1
Currently, c1 3, and each isoprofit line has the form 3x1 2x2 constant, or
3x
constant
x2 1 2
2
and each isoprofit line has a slope of 32. From Figure 1, we see that if a change in c1
causes the isoprofit lines to be flatter than the carpentry constraint, then the optimal solution will change from the current optimal solution (point B) to a new optimal solution
(point A). If the profit for each soldier is c1, the slope of each isoprofit line will be c21 .
Because the slope of the carpentry constraint is 1, the isoprofit lines will be flatter than
the carpentry constraint if c21 1, or c1 2, and the current basis will no longer be
optimal. The new optimal solution will be (0, 80), point A in Figure 1.
If the isoprofit lines are steeper than the finishing constraint, then the optimal solution
will change from point B to point C. The slope of the finishing constraint is 2. If c21
2, or c1 4, then the current basis is no longer optimal and point C, (40, 20), will
be optimal. In summary, we have shown that (if all other parameters remain unchanged)
the current basis remains optimal for 2 c1 4, and Giapetto should still manufacture
20 soldiers and 60 trains. Of course, even if 2 c1 4, Giapetto’s profit will change.
For instance, if c1 4, then Giapetto’s profit will now be 4(20) 2(60) $200 instead
of $180.
Graphical Analysis of the Effect of a Change
in a Right-Hand Side on the LP’s Optimal Solution
A graphical analysis can also be used to determine whether a change in the right-hand
side of a constraint will make the current basis no longer optimal. Let b1 be the number
of available finishing hours. Currently, b1 100. For what values of b1 does the current
basis remain optimal? From Figure 2, we see that a change in b1 shifts the finishing constraint parallel to its current position. The current optimal solution (point B in Figure 2)
228
CHAPTER
5 Sensitivity Analysis: An Applied Approach
x2
100
Finishing constraint b1 = 120
Finishing constraint b1 = 100
80
A
Isoprofit line z = 120
Demand constraint
60
B
Finishing constraint b1 = 80
D
40
FIGURE
Carpentry constraint
2
Range of Values on
Finishing Hours for
Which Current Basis
Remains Optimal in
Giapetto Problem
C
20
20
40
60
x1
80
is where the carpentry and finishing constraints are binding. If we change the value of b1,
then as long as the point where the finishing and carpentry constraints are binding remains feasible, the optimal solution will still occur where the finishing and carpentry constraints intersect. From Figure 2, we see that if b1 > 120, then the point where the finishing and carpentry constraints are both binding will lie on the portion of the carpentry
constraint below point D. Note that at point D, 2(40) 40 120 finishing hours are used.
In this region, x1 40, and the demand constraint for soldiers is not satisfied. Thus, for
b1 120, the current basis will no longer be optimal. Similarly, if b1 80, then the carpentry and finishing constraints will be binding at an infeasible point having x1 0, and
the current basis will no longer be optimal. Note that at point A, 0 80 80 finishing
hours are used. Thus (if all other parameters remain unchanged), the current basis remains
optimal if 80 b1 120.
Note that although for 80 b1 120, the current basis remains optimal, the values
of the decision variables and the objective function value change. For example, if 80 b1 100, then the optimal solution will change from point B to some other point on the
line segment AB. Similarly, if 100 b1 120, then the optimal solution will change from
point B to some other point on the line BD.
As long as the current basis remains optimal, it is a routine matter to determine how
a change in the right-hand side of a constraint changes the values of the decision variables. To illustrate the idea, let b1 number of available finishing hours. If we change b1
to 100 , then we know that the current basis remains optimal for 20 20.
Note that as b1 changes (as long as 20 20), the optimal solution to the LP is
still the point where the finishing-hour and carpentry-hour constraints are binding. Thus,
if b1 100 , we can find the new values of the decision variables by solving
2x1 x2 100 and
x1 x2 80
5 . 1 A Graphical Introduction to Sensitivity Analysis
229
This yields x1 20 and x2 60 . Thus, an increase in the number of available
finishing hours results in an increase in the number of soldiers produced and a decrease
in the number of trains produced.
If b2 (the number of available carpentry hours) equals 80 , then it can be shown
(see Problem 2) that the current basis remains optimal for 20 20. If we change
the value of b2 (keeping 20 20), then the optimal solution to the LP is still the
point where the finishing and carpentry constraints are binding. Thus, if b2 80 ,
the optimal solution to the LP is the solution to
2x1 x2 100
and
x1 x2 80 This yields x1 20 and x2 60 2 , which shows that an increase in the amount
of available carpentry hours decreases the number of soldiers produced and increases the
number of trains produced.
Suppose b3, the demand for soldiers, is changed to 40 . Then it can be shown (see
Problem 3) that the current basis remains optimal for 20. For in this range, the
optimal solution to the LP will still occur where the finishing and carpentry constraints
are binding. Thus, the optimal solution will be the solution to
2x1 x2 100
and
x1 x2 80
Of course, this yields x1 20 and x2 60, which illustrates an important fact. Consider
a constraint with positive slack (or positive excess) in an LP’s optimal solution; if we
change the right-hand side of this constraint in the range where the current basis remains
optimal, then the optimal solution to the LP is unchanged.
Shadow Prices
As we will see in Sections 5.2 and 5.3, it is often important for managers to determine how
a change in a constraint’s right-hand side changes the LP’s optimal z-value. With this in
mind, we define the shadow price for the ith constraint of an LP to be the amount by which
the optimal z-value is improved—increased in a max problem and decreased in a min problem—if the right-hand side of the ith constraint is increased by 1. This definition applies
only if the change in the right-hand side of Constraint i leaves the current basis optimal.
For any two-variable LP, it is a simple matter to determine each constraint’s shadow
price. For example, we know that if 100 finishing hours are available (assuming the
current basis remains optimal), then the LP’s optimal solution is x1 20 and x2 60 . Then the optimal z-value will equal 3x1 2x2 3(20 ) 2(60 ) 180 . Thus, as long as the current basis remains optimal, a one-unit increase in the
number of available finishing hours will increase the optimal z-value by $1. So the shadow
price of the first (finishing hours) constraint is $1.
For the second (carpentry hours) constraint, we know that if 80 carpentry hours
are available (and the current basis remains optimal), then the optimal solution to the
LP is x1 20 and x2 60 2 . Then the new optimal z-value is 3x1 2x2 3(20 ) 2(60 2 ) 180 . So a one-unit increase in the number of finishing
hours will increase the optimal z-value by $1 (as long as the current basis remains
optimal). Thus, the shadow price of the second (carpentry hour) constraint is $1.
We now find the shadow price of the third (demand) constraint. If the right-hand side
is 40 , then (as long as the current basis remains optimal) the optimal values of the
decision variables remain unchanged. Then the optimal z-value will also remain unchanged, which shows that the shadow price of the third (demand) constraint is $0. It turns
out that whenever the slack or excess variable for a constraint is positive in an LP’s optimal solution, the constraint will have a zero shadow price.
230
CHAPTER
5 Sensitivity Analysis: An Applied Approach
Suppose that the current basis remains optimal as we increase the right-hand side of
the ith constraint of an LP by bi. ( bi 0 means that we are decreasing the right-hand
side of the ith constraint.) Then each unit by which Constraint i’s right-hand side is increased will increase the optimal z-value (for a max problem) by the shadow price. Thus,
the new optimal z-value is given by
(New optimal z-value) (old optimal z-value) (Constraint i’s shadow price) bi
(1)
For a minimization problem,
(New optimal z-value) (old optimal z-value) (Constraint i’s shadow price) bi
(2)
For example, if 95 carpentry hours are available, then b2 15, and the new z-value is
given by
New optimal z-value 180 15(1) $195
We will continue our discussion of shadow prices in Sections 5.2 and 5.3.
Importance of Sensitivity Analysis
Sensitivity analysis is important for several reasons. In many applications, the values of
an LP’s parameters may change. For example, the prices at which soldiers and trains are
sold or the availability of carpentry and finishing hours may change. If a parameter
changes, then sensitivity analysis often makes it unnecessary to solve the problem again.
For example, if the profit contribution of a soldier increased to $3.50, we would not have
to solve the Giapetto problem again, because the current solution remains optimal. Of
course, solving the Giapetto problem again would not be much work, but solving an LP
with thousands of variables and constraints again would be a chore. A knowledge of sensitivity analysis often enables the analyst to determine from the original solution how
changes in an LP’s parameters change its optimal solution.
Recall that we may be uncertain about the values of parameters in an LP. For example, we might be uncertain about the weekly demand for soldiers. With the graphical
method, it can be shown that if the weekly demand for soldiers is at least 20, then the optimal solution to the Giapetto problem is still (20, 60) (see Problem 3 at the end of this
section). Thus, even if Giapetto is uncertain about the demand for soldiers, the company
can be fairly confident that it is still optimal to produce 20 soldiers and 60 trains.
PROBLEMS
Group A
1 Show that if the contribution to profit for trains is
between $1.50 and $3, the current basis remains optimal. If
the contribution to profit for trains is $2.50, then what would
be the new optimal solution?
2 Show that if available carpentry hours remain between
60 and 100, the current basis remains optimal. If between
60 and 100 carpentry hours are available, would Giapetto
still produce 20 soldiers and 60 trains?
3 Show that if the weekly demand for soldiers is at least
20, then the current basis remains optimal, and Giapetto
should still produce 20 soldiers and 60 trains.
4
For the Dorian Auto problem (Example 2 in Chapter 3),
a Find the range of values on the cost of a comedy ad
for which the current basis remains optimal.
b Find the range of values on the cost of a football ad
for which the current basis remains optimal.
c Find the range of values for required HIW exposures
for which the current basis remains optimal. Determine
the new optimal solution if 28 million HIW exposures are required.
d Find the range of values for required HIM exposures
for which the current basis remains optimal. Determine
5 . 1 A Graphical Introduction to Sensitivity Analysis
231
the new optimal solution if 24 million HIM exposures are required.
e Find the shadow price of each constraint.
f If 26 million HIW exposures are required, determine
the new optimal z-value.
5 Radioco manufactures two types of radios. The only
scarce resource that is needed to produce radios is labor. At
present, the company has two laborers. Laborer 1 is willing
to work up to 40 hours per week and is paid $5 per hour.
Laborer 2 will work up to 50 hours per week for $6 per
hour. The price as well as the resources required to build
each type of radio are given in Table 1.
Letting xi be the number of Type i radios produced each
week, Radioco should solve the following LP:
max z 3x1 2x2
s.t.
2x1 2x2 40
s.t.
s.t.
2x1 2x2 50
s.t.
2
2x1, x2 0
a For what values of the price of a Type 1 radio would
the current basis remain optimal?
b For what values of the price of a Type 2 radio would
the current basis remain optimal?
5.2
TA B L E
1
Radio 1
Price ($)
25
Radio 2
Resource
Required
Price ($)
Laborer 1:
1 hour
Laborer 2:
2 hours
Raw material
cost: $5
22
Resource
Required
Laborer 1:
2 hours
Laborer 2:
2 hours
Raw material
cost: $4
c If laborer 1 were willing to work only 30 hours per
week, then would the current basis remain optimal? Find
the new optimal solution to the LP.
d If laborer 2 were willing to work up to 60 hours per
week, then would the current basis remain optimal? Find
the new optimal solution to the LP.
e Find the shadow price of each constraint.
The Computer and Sensitivity Analysis
If an LP has more than two decision variables, the range of values for a right-hand side
(or objective function coefficient) for which the current basis remains optimal cannot be
determined graphically. These ranges can be computed by hand calculations (see Section
6.3), but this is often tedious, so they are usually determined by packaged computer programs. In this section, we discuss the interpretation of the sensitivity analysis information
on the LINDO output.
To obtain a sensitivity report in LINDO, select Yes when asked (after solving LP) whether
you want a Range analysis. To obtain sensitivity report in LINGO, go to Options and select
Range (after solving LP). If this does not work, then go to Options and choose the General
Solver tab. Then go to Dual Computations and select the Ranges and Values option.
EXAMPLE
1
Winco Products 1
Winco sells four types of products. The resources needed to produce one unit of each and
the sales prices are given in Table 2. Currently, 4,600 units of raw material and 5,000 labor hours are available. To meet customer demands, exactly 950 total units must be produced. Customers also demand that at least 400 units of product 4 be produced. Formulate an LP that can be used to maximize Winco’s sales revenue.
Solution
Let xi number of units of product i produced by Winco.
max z 4x1 6x2 7x3 8x4
s.t.
2x1 3x2 4x3 7x4 950
s.t.
2x1 3x2 4x3 7x4 400
s.t.
2x1 3x2 4x3 7x4 4,600
s.t.
3x1 4x2 5x3 6x4 5,000
s.t.
3 4 5 6x1, x2, x3, x4 0
232
CHAPTER
5 Sensitivity Analysis: An Applied Approach
TA B L E
2
Costs and Resource Requirements for Winco
Resource
Product 1
Product 2
Product 3
Product 4
2
3
4
3
4
6
4
5
7
7
6
8
Raw material
Hours of labor
Sales price ($)
The LINDO output for this LP is given in Figure 3.
When we discuss the interpretation of the LINDO output for minimization problems,
we will refer to the following example.
EXAMPLE
2
Tucker Inc.
Tucker Inc. must produce 1,000 Tucker automobiles. The company has four production
plants. The cost of producing a Tucker at each plant, along with the raw material and labor needed, is shown in Table 3.
MAX
4
SUBJECT TO
2)
3)
4)
5)
END
X1 + 6
X2
+ 7
X3
+ 8
X4
X1 + X2 + X3 + X4 =
X4
>=
400
2 X1 + 3 X2 + 4 X3 + 7
3 X1 + 4 X2 + 5 X3 + 6
950
X4
X4
<=
<=
4600
5000
LP OPTIMUM FOUND AT STEP
4
OBJECTIVE FUNCTION VALUE
1) 6650.00000
VARIABLE
X1
X2
X3
X4
VALUE
.000000
400.000000
150.000000
400.000000
ROW
2)
3)
4)
5)
REDUCED COST
1.000000
.000000
.000000
.000000
SLACK OR SURPLUS
.000000
.000000
.000000
250.000000
NO. ITERATIONS=
DUAL PRICES
3.000000
-2.000000
1.000000
.000000
4
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X1
X2
X3
X4
ROW
FIGURE
3
LINDO Output
for Winco
2
3
4
5
CURRENT
COEF
4.000000
6.000000
7.000000
8.000000
OBJ COEFFICIENT RANGES
ALLOWABLE
INCREASE
1.000000
.666667
1.000000
2.000000
CURRENT
RHS
950.000000
400.000000
4600.000000
5000.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
50.000000
37.000000
250.000000
INFINITY
ALLOWABLE
DECREASE
INFINITY
.500000
.500000
INFINITY
ALLOWABLE
DECREASE
100.000000
125.000000
150.000000
250.000000
5 . 2 The Computer and Sensitivity Analysis
233
TA B L E
3
Cost and Requirements for Producing a Tucker
Plant
1
2
3
4
Cost
(in Thousands of Dollars)
Labor
Raw Material
15
10
19
17
2
3
4
5
3
4
5
6
The autoworkers’ labor union requires that at least 400 cars be produced at plant 3;
3,300 hours of labor and 4,000 units of raw material are available for allocation to the
four plants. Formulate an LP whose solution will enable Tucker Inc. to minimize the cost
of producing 1,000 cars.
Solution
Let xi number of cars produced at plant i. Then, expressing the objective function in
thousands of dollars, the appropriate LP is
min z 15x1 10x2 9x3 7x4
s.t.
2x1 3x2 4x3 5x4 1000
s.t.
2x1 3x2 4x3 5x4 400
s.t.
2x1 3x2 4x3 5x4 3300
s.t.
3x1 4x2 5x3 6x4 4000
t.
2 4 5 6x1, x2, x3, x4 0
s.
The LINDO output for this LP is given in Figure 4.
Objective Function Coefficient Ranges
Recall from Section 5.1 that (at least in a two-variable problem) we can determine the
range of values for an objective function coefficient for which the current basis remains
optimal. For each objective function coefficient, this range is given in the OBJECTIVE
COEFFICIENT RANGES portion of the LINDO output. The ALLOWABLE INCREASE
(AI) section indicates the amount by which an objective function coefficient can be increased with the current basis remaining optimal. Similarly, the ALLOWABLE DECREASE (AD) section indicates the amount by which an objective function coefficient
can be decreased with the current basis remaining optimal. To illustrate these ideas, let ci
be the objective function coefficient for xi in Example 1. If c1 is changed, then the current basis remains optimal if
4
c1 4 1 5
If c2 is changed, then the current basis remains optimal if
5.5 6 0.5 c2 6 0.666667 6.666667
We will refer to the range of variables of ci for which the current basis remains optimal
as the allowable range for ci. As discussed in Section 5.1, if ci remains in its allowable
range then the values of the decision variables remain unchanged, although the optimal
z-value may change. The following examples illustrate these ideas.
234
CHAPTER
5 Sensitivity Analysis: An Applied Approach
MIN
15
SUBJECT TO
2)
3)
4)
5)
END
X1 + 10
X2
+ 9
X3
+ 7
X4
X1 + X2 + X3 + X4 =
X3
>=
400
2 X1 + 3 X2 + 4 X3 + 5
3 X1 + 4 X2 + 5 X3 + 6
1000
X4
X4
<=
<=
3300
4000
LP OPTIMUM FOUND AT STEP
3
OBJECTIVE FUNCTION VALUE
1) 11600.0000
VARIABLE
X1
X2
X3
X4
ROW
2)
3)
4)
5)
VALUE
400.000000
200.000000
400.000000
.000000
SLACK OR SURPLUS
.000000
.000000
300.000000
.000000
NO. ITERATIONS=
REDUCED COST
.000000
.000000
.000000
7.000000
DUAL PRICES
-30.000000
-4.000000
.000000
5.000000
3
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X1
X2
X3
X4
ROW
FIGURE
4
2
3
4
5
LINDO Output
for Tucker
EXAMPLE
3
CURRENT
COEF
15.000000
10.000000
9.000000
7.000000
CURRENT
RHS
1000.000000
400.000000
3300.000000
4000.000000
OBJ COEFFICIENT RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
INFINITY
3.500000
2.000000
INFINITY
INFINITY
4.000000
INFINITY
7.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
66.666660
100.000000
100.000000
400.000000
INFINITY
300.000000
300.000000
200.000000
Interpretation of Objective Function Coefficients Sensitivity Analysis
Suppose Winco raises the price of product 2 by 50¢ per unit. What is the new optimal solution to the LP?
a
Suppose the sales price of product 1 is increased by 60¢ per unit. What is the new optimal solution to the LP?
b
c Suppose the sales price of product 3 is decreased by 60¢. What is the new optimal solution to the LP?
Solution
a Because the AI for c2 is $0.666667, and we are increasing c2 by only $0.5, the current basis remains optimal. The optimal values of the decision variables remain unchanged
(x1 0, x2 400, x3 150, and x4 400 is still optimal). The new optimal z-value may
be determined in two ways. First, we may simply substitute the optimal values of the decision variables into the new objective function, yielding
New optimal z-value 4(0) 6.5(400) 7(150) 8(400) $6,850
Another way to see that the new optimal z-value is $6,850 is to observe the only difference in sales revenue: Each unit of product 2 brings in 50¢ more in revenue. Thus, total
revenue should increase by 400(.50) $200, so
New z-value original z-value 200 $6,850
5 . 2 The Computer and Sensitivity Analysis
235
b The AI for c1 is 1, so the current basis remains optimal, and the optimal values of the
decision variables remain unchanged. Because the value of x1 in the optimal solution is
0, the change in the sales price for product 1 will not change the optimal z-value—it will
remain $6,650.
c For c3, AD .50, so the current basis is no longer optimal. Without resolving the
problem by hand or on the computer, we cannot determine the new optimal solution.
Reduced Costs and Sensitivity Analysis
The REDUCED COST portion of the LINDO output gives us information about how
changing the objective function coefficient for a nonbasic variable will change the LP’s
optimal solution. For simplicity, let’s assume that the current optimal bfs is nondegenerate (that is, if the LP has m constraints, then the current optimal solution has m variables
assuming positive values). For any nonbasic variable xk, the reduced cost is the amount
by which the objective function coefficient of xk must be improved before the LP will have
an optimal solution in which xk is a basic variable. If the objective function coefficient of
a nonbasic variable xk is improved by its reduced cost, then the LP will have alternative
optimal solutions—at least one in which xk is a basic variable, and at least one in which
xk is not a basic variable. If the objective function coefficient of a nonbasic variable xk is
improved by more than its reduced cost, then (barring degeneracy) any optimal solution
to the LP will have xk as a basic variable and xk 0. To illustrate these ideas, note that
in Example 1 the basic variables associated with the optimal solution are x2, x3, x4, and
s4 (the slack for the labor constraint). The nonbasic variable x1 has a reduced cost of $1.
This implies that if we increase x1’s objective function coefficient (in this case, the sales
price per unit of x1) by exactly $1, then there will be alternative optimal solutions, at least
one of which will have x1 as a basic variable. If we increase x1’s objective function coefficient by more than $1, then (because the current optimal bfs is nondegenerate) any optimal solution to the LP will have x1 as a basic variable (with x1 0). Thus, the reduced
cost for x1 is the amount by which x1 “misses the optimal basis.” We must keep a close
watch on x1’s sales price, because a slight increase will change the LP’s optimal solution.
Let’s now consider Example 2, a minimization problem. Here the basic variables associated with the optimal solution are x1, x2, x3, and s3 (the slack variable for the labor
constraint). Again, the optimal bfs is nondegenerate. The nonbasic variable x4 has a reduced cost of 7 ($7,000), so we know that if the cost of producing x4 is decreased by 7,
then there will be alternative optimal solutions. In at least one of these optimal solutions,
x4 will be a basic variable. If the cost of producing x4 is lowered by more than 7, then
(because the current optimal solution is nondegenerate) any optimal solution to the LP
will have x4 as a basic variable (with x4 0).
Right-Hand Side Ranges
Recall from Section 5.1 that we can determine (at least for a two-variable problem) the
range of values for a right-hand side within which the current basis remains optimal. This
information is given in the RIGHTHAND SIDE RANGES section of the LINDO output.
To illustrate, consider the first constraint in Example 1. Currently, the right-hand side of
this constraint (call it b1) is 950. The current basis remains optimal if b1 is decreased by
up to 100 (the allowable decrease, or AD, for b1) or increased by up to 50 (the allowable
increase, or AI, for b1). Thus, the current basis remains optimal if
236
CHAPTER
5 Sensitivity Analysis: An Applied Approach
850 950 100 b1 950 50 1,000
We call this the allowable range for b1. Even if a change in the right-hand side of a constraint leaves the current basis optimal, the LINDO output does not provide sufficient information to determine the new values of the decision variables. However, the LINDO
output does allow us to determine the LP’s new optimal z-value.
Shadow Prices and Dual Prices
In Section 5.1, we defined the shadow price of an LP’s ith constraint to be the amount by
which the optimal z-value of the LP is improved if the right-hand side is increased by one
unit (assuming this change leaves the current basis optimal). If, after a change in a constraint’s
right-hand side, the current basis is no longer optimal, then the shadow prices of all constraints may change. We will discuss this further in Section 5.4. The shadow price for each
constraint is found in the DUAL PRICES section of the LINDO output. If we increase the
right-hand side of the ith constraint by an amount bi —a decrease in bi implies that
bi 0—and the new right-hand side value for Constraint i remains within the allowable
range for the right-hand side given in the RIGHTHAND SIDE RANGES section of the output, then formulas (1) and (2) may be used to determine the optimal z-value after a righthand side is changed. The following example illustrates how shadow prices may be used to
determine how a change in a right-hand side affects the optimal z-value.
EXAMPLE
4
Interpretation of RHS Sensitivity Analysis
In Example 1, suppose that a total of 980 units must be produced. Determine the new
optimal z-value.
a
In Example 1, suppose that 4,500 units of raw material are available. What is the new
optimal z-value? What if only 4,400 units of raw material are available?
b
c In Example 2, suppose that 4,100 units of raw material are available. Find the new optimal z-value.
In Example 2, suppose that exactly 950 cars must be produced. What will be the new
optimal z-value?
d
Solution
b1 30. Because the allowable increase is 50, the current basis remains optimal,
and the shadow price of $3 remains applicable. Then (1) yields
a
New optimal z-value 6,650 30(3) $6,740
Here we see that (as long as the current basis remains optimal) each additional unit of demand increases revenues by $3.
b
b3 100. Because the allowable decrease is 150, the shadow price of $1 remains
valid. Then (1) yields
New optimal z-value 6,650 100(1) $6,550
Thus (as long as the current basis remains optimal), a decrease in available raw material
of one unit decreases revenue by $1. If only 4,400 units of raw material are available, then
b3 200. Because the allowable decrease is 150, we cannot determine the new optimal z-value.
b4 100. The dual (or shadow) price is 5 (thousand). The current basis remains optimal, so (2) yields
c
New optimal z-value 11,600 100(5) 11,100 ($11,100,000)
5 . 2 The Computer and Sensitivity Analysis
237
Thus, as long as the current basis remains optimal, each additional unit of raw material
decreases costs by $5,000.
d
b1 50. The allowable decrease is 100, so the shadow price of 30 (thousand)
and (2) yield
New optimal z-value 11,600 (50)(30) 10,100 $10,100,000
Thus, each unit by which demand is reduced (as long as the current basis remains optimal) decreases costs by $30,000.
Let’s give an interpretation to the shadow price for each constraint in Examples 1 and
2. Again, all discussions are assuming that we are within the allowable range where the
current basis remains optimal. The shadow price of $3 for Constraint 1 in Example 1 implies that each one-unit increase in total demand will increase sales revenues by $3. The
shadow price of $2 for Constraint 2 implies that each unit increase in the requirement
for product 4 will decrease revenue by $2. The shadow price of $1 for Constraint 3 implies that an additional unit of raw material given to Winco (for no cost) increases total
revenue by $1. Finally, the shadow price of $0 for Constraint 4 implies that an additional
unit of labor given to Winco (at no cost) will not increase total revenue. This is reasonable; at present, 250 of the available 5,000 labor hours are not being used, so why should
we expect additional labor to raise revenues?
The shadow price of $30 (thousand) for Constraint 1 of Example 2 means that each
extra car that must be produced will decrease costs by $30,000 (or increase costs by
$30,000). The shadow price of $4 (thousand) for Constraint 2 means that an extra car
that the firm is forced to produce at plant 3 will decrease costs by $4,000 (or increase
costs by $4,000). The shadow price of $0 for the third constraint means that an extra hour
of labor given to Tucker will decrease costs by $0. Thus, if Tucker is given an additional
hour of labor then costs are unchanged. This is reasonable; now 300 hours of available labor are unused. The shadow price for Constraint 4 is $5 (thousand), which means that if
Tucker were given an additional unit of raw material, then costs would decrease by
$5,000.
Signs of Shadow Prices
A constraint will always have a nonpositive shadow price; a constraint will always
have a nonnegative shadow price; and an equality constraint may have a positive, negative, or zero shadow price. To see why this is true, observe that adding points to an LP’s
feasible region can only improve the optimal z-value or leave it the same. Eliminating
points from an LP’s feasible region can only make the optimal z-value worse or leave it
the same. For example, let’s look at the shadow price of the raw-material constraint (a constraint) in Example 1. Why must this shadow price be nonnegative? The shadow price
of the raw-material constraint represents the improvement in the optimal z-value if 4,601
units (instead of 4,600) of raw material are available. Having an additional unit of raw
material available adds points to the feasible region—points for which Winco uses 4,600 but 4,601 units of raw material—so we know that the optimal z-value must increase or stay the same. Thus, the shadow price of this constraint must be nonnegative.
Similarly, let’s consider the shadow price of the x4 400 constraint in Example 1. Increasing the right-hand side of this constraint to 401 eliminates points from the feasible
region (points for which Winco produces 400 but 401 units of product 4). Thus, the
optimal z-value must decrease or stay the same, implying that the shadow price of this
constraint must be nonpositive. Similar reasoning shows that for a minimization problem,
238
CHAPTER
5 Sensitivity Analysis: An Applied Approach
a constraint will have a nonpositive shadow price, and a constraint will have a nonnegative shadow price.
An equality constraint’s shadow price may be positive, negative, or zero. To see why,
consider the following two LPs:
max z x1 x2
s.t.
x1 x2 1
s.t.
x1, x2 0
(LP 1)
max z x1 x2
s.t.
x1 x2 1
s.t.
x1, x2 0
(LP 2)
Both LPs have the same feasible region and set of optimal solutions (the portion of the
line segment x1 x2 1 in the first quadrant). However, LP 1’s constraint has a shadow
price of 1, whereas LP 2’s constraint has a shadow price of 1. Thus, the sign of the
shadow price for an equality constraint may either be positive, negative, or zero.
Sensitivity Analysis and Slack and Excess Variables
It can be shown (see Section 6.10) that for any inequality constraint, the product of the
values of the constraint’s slack or excess variable and the constraint’s shadow price must
equal 0. This implies that any constraint whose slack or excess variable is 0 will have
a zero shadow price. It also implies that any constraint with a nonzero shadow price must
be binding (have slack or excess equal to 0). To illustrate these ideas, consider the labor
constraint in Example 1. This constraint has positive slack, so its shadow price must be 0.
This is reasonable, because slack 250 for this constraint indicates that 250 hours of currently available labor are unused at present. Thus, an extra hour of labor would not increase revenues. Now consider the raw material constraint of Example 1. Because this
constraint has a nonzero shadow price, it must have slack 0. This is reasonable; the
nonzero shadow price means that additional raw material will increase revenue. This can
be the case only if all currently available raw material is now being used.
For constraints with nonzero slack or excess, the value of the slack or excess variable
is related to the ALLOWABLE INCREASE and ALLOWABLE DECREASE sections of
the RIGHTHAND SIDE RANGES portion of the LINDO output. This relationship is detailed in Table 4.
For any constraint having positive slack or excess, the optimal z-value and values of
the decision variables remain unchanged within the right-hand side’s allowable range. To
illustrate these ideas, consider the labor constraint in Example 1. Because slack 250,
we see from Table 4 that AI and AD 250. Thus, the current basis remains optimal
TA B L E
4
Allowable Increases and Decreases for Constraints
with Nonzero Slack or Excess
Type of
Constraint
Al
for rhs
AD
for rhs
∞
Value of excess
Value for slack
∞
5 . 2 The Computer and Sensitivity Analysis
239
for 4,750 available labor . Within this range, both the optimal z-value and values
of the decision variables remain unchanged.
Degeneracy and Sensitivity Analysis
When the optimal solution to an LP is degenerate, caution must be used when interpreting the LINDO output. Recall from Section 4.11 that a bfs is degenerate if at least one
basic variable in the optimal solution equals 0. For an LP with m constraints, if the
LINDO output indicates that less than m variables are positive, then the optimal solution
is a degenerate bfs. To illustrate, consider the following LP:
max z 6x1 4x2 3x3 2x4
s.t.
2x1 3x2 2x3 .2x4 400
s.t.
2x1 3x2 2x3 .2x4 150
s.t.
2x1 3x2 2x3 .5x4 200
s.t.
3x1 3x2 2x3 .5x4 250
s.t.
3 3 3 .5x1, x2, x3, x4 0
The LINDO output for this LP is in Figure 5. The LP has four constraints and in the
optimal solution only two variables are positive, so the optimal solution is a degenerate
bfs. By the way, using the TABLEAU command indicates that the optimal basis is BV {x2, x3, s3, x1}.
We now discuss three “oddities” that may occur when the optimal solution found by
LINDO is degenerate.
In the RANGES IN WHICH THE BASIS IS UNCHANGED, at least one constraint will have a 0 AI or AD. This means that for at least one constraint, the DUAL
PRICE can tell us about the new z-value for either an increase or decrease in the righthand side, but not both.
To understand Oddity 1, consider the first constraint. Its AI is 0. This means that the
first constraint’s DUAL PRICE of .50 cannot be used to determine a new z-value resulting from any increase in the first constraint’s right-hand side.
Oddity 1
Oddity 2 For a nonbasic variable to become positive, its objective function coefficient
may have to be improved by more than its REDUCED COST.
To understand Oddity 2, consider the nonbasic variable x4; its REDUCED COST is
1.5. If we increase its objective function coefficient by 2, however, we still find that the
new optimal solution has x4 0. This oddity occurs because the increase changes the set
of basic variables but not the LP’s optimal solution.
Increasing a variable’s objective function coefficient by more than its AI or decreasing it by more than its AD may leave the optimal solution to the LP the same.
Oddity 3 is similar to Oddity 2. To understand it, consider the nonbasic variable x4. Its
AI is 1.5. If we increase its objective function coefficient by 2, however, we still find that
the new optimal solution is unchanged. This oddity occurs because the increase changes
the set of basic variables but not the LP’s optimal solution.
Oddity 3
We close this section by noting that our discussions apply only if one objective function coefficient or one right-hand side is changed. If more than one objective function coefficient or the right-hand side is changed, it is sometimes still possible to use the LINDO
output to determine whether the current basis remains optimal. See Section 6.4 for details.
240
CHAPTER
5 Sensitivity Analysis: An Applied Approach
MAX
6
SUBJECT TO
2)
3)
4)
5)
END
X1 + 4
X2
2 X1
X1 +
2 X1
3 X1
+ 3
X3
+ 2
X4
+ 3 X2 + X3 + 2 X4
X2 + 2 X3 + X4 <=
+ X2 + X3 + 0.5 X4
+ X2 + X4 <=
250
<= 400
150
<=
200
LP OPTIMUM FOUND AT STEP
3
OBJECTIVE FUNCTION VALUE
1) 700.00000
VARIABLE
X1
X2
X3
X4
ROW
2)
3)
4)
5)
VALUE
50.000000
100.000000
.000000
.000000
REDUCED COST
.000000
.000000
.000000
1.500000
SLACK OR SURPLUS
.000000
.000000
.000000
.000000
NO. ITERATIONS=
DUAL PRICES
.500000
1.250000
.000000
1.250000
3
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X1
X2
X3
X4
ROW
2
3
4
5
OBJ COEFFICIENT RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
3.000000
3.000000
5.000000
1.000000
3.000000
2.142857
1.500000
INFINITY
CURRENT
COEF
6.000000
4.000000
3.000000
2.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
.000000
200.000000
.000000
.000000
INFINITY
.000000
.000000
120.000000
CURRENT
RHS
400.000000
150.000000
200.000000
250.000000
THE TABLEAU
ROW
(BASIS)
X1
1 ART
.000
2
X2
.000
3
X3
.000
4 SLK 4
.000
5
X1 1.000
FIGURE
5
ROW
1
2
3
4
5
SLK
3
1.250
-.250
.583
-.500
.083
X2
.000
1.000
.000
.000
.000
SLK
X3
.000
.000
1.000
.000
.000
4
.000
.000
.000
1.000
.000
X4
1.500
.500
.167
-.500
.167
SLK
5
1.250
-.250
-.083
-.500
.417
SLK 2
.500
.500
-.167
.000
-.167
700.000
100.000
.000
.000
50.000
PROBLEMS
Group A
1 Farmer Leary grows wheat and corn on his 45-acre
farm. He can sell at most 140 bushels of wheat and 120
bushels of corn. Each acre planted with wheat yields 5
bushels, and each acre planted with corn yields 4 bushels.
Wheat sells for $30 per bushel, and corn sells for $50 per
bushel. To harvest an acre of wheat requires 6 hours of
labor; 10 hours are needed to harvest an acre of corn. Up to
350 hours of labor can be purchased at $10 per hour. Let
A1 acres planted with wheat; A2 acres planted with
corn; and L hours of labor that are purchased. To maximize
profits, Leary should solve the following LP:
max z 150A1 200A2 10L
s.t.
6A1 10A2 L 45
s.t.
6A1 10A2 L 0
s.t.
6A1 10A2 L 350
s.t.
5A1 10A2 L 140
s.t.
5A1 4A2 L 120
s.t.
5 A1, A2, L 0
5 . 2 The Computer and Sensitivity Analysis
241
Use the LINDO output in Figure 6 to answer the following
questions:
a If only 40 acres of land were available, what would
Leary’s profit be?
b If the price of wheat dropped to $26, what would be
the new optimal solution to Leary’s problem?
c Use the SLACK portion of the output to determine
the allowable increase and allowable decrease for the
amount of wheat that can be sold. If only 130 bushels
of wheat could be sold, then would the answer to the
problem change?
2 Carco manufactures cars and trucks. Each car
contributes $300 to profit, and each truck contributes $400.
The resources required to manufacture a car and a truck are
shown in Table 5. Each day, Carco can rent up to 98 Type 1
machines at a cost of $50 per machine. The company has
73 Type 2 machines and 260 tons of steel available.
Marketing considerations dictate that at least 88 cars and at
TA B L E
5
Vehicle
Days on Type 1
Machine
Days on Type 2
Machine
Tons of Steel
Car
Truck
0.8
1.8
0.6
0.7
2
3
least 26 trucks be produced. Let x1 number of cars
produced daily; x2 number of trucks produced daily; and
m1 Type 1 machines rented daily.
To maximize profit, Carco should solve the LP in Figure
7. Use the LINDO output to answer the following questions:
a If each car contributed $310 to profit, what would be
the new optimal solution to the problem?
7
FIGURE
LINDO Output for Carco
6
FIGURE
MAX
300
SUBJECT TO
2)
3)
4)
5)
6)
7)
END
LINDO Output for Wheat and Corn
MAX
150
SUBJECT TO
2)
3)
4)
5)
6)
END
A1 + 200
A1 +
6 A1
L <=
5 A1
4 A2
A2
-
10 L
A2 <=
45
+ 10 A2 - L <=
350
<=
140
<=
120
0
X1 + 400
-
50
M1
0.8 X1 + X2 - M1 <=
0
M1 <=
98
0.6 X1 + 0.7 X2 <=
73
2 X1 + 3 X2 <=
260
X1 >= 88
X2 >= 26
LP OPTIMUM FOUND AT STEP
LP OPTIMUM FOUND AT STEP
1)
VARIABLE
A1
A2
L
4250.00000
VALUE
25.000000
20.000000
350.000000
SLACK OR SURPLUS
.000000
.000000
.000000
15.000000
40.000000
REDUCED COST
.000000
.000000
.000000
1)
VARIABLE
X1
X2
M1
ROW
2)
3)
4)
5)
6)
7)
DUAL PRICES
75.000000
12.500000
2.500000
.000000
.000000
32540.0000
VALUE
88.000000
27.600000
98.000000
SLACK OR SURPLUS
.000000
.000000
.879999
1.200003
.000000
1.599999
NO. ITERATIONS=
NO. ITERATIONS=
4
OBJECTIVE FUNCTION VALUE
4
OBJECTIVE FUNCTION VALUE
ROW
2)
3)
4)
5)
6)
X2
REDUCED COST
.000000
.000000
.000000
DUAL PRICES
400.000000
350.000000
.000000
.000000
-20.000000
.000000
4
4
RANGES IN WHICH THE BASIS IS UNCHANGED:
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
A1
A2
L
ROW
2
3
4
5
6
242
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
150.000000 10.000000
30.000000
200.000000 50.000000
10.000000
-10.000000
INFINITY
2.500000
VARIABLE
RIGHTHAND SIDE RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
1.200000
6.666667
40.000000
12.000000
40.000000
12.000000
INFINITY
15.000000
INFINITY
40.000000
ROW
CURRENT
RHS
45.000000
.000000
350.000000
140.000000
120.000000
CHAPTER
5 Sensitivity Analysis: An Applied Approach
X1
X2
M1
2
3
4
5
6
7
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
300.000000
20.000000
INFINITY
400.000000
INFINITY
25.000000
-50.000000
INFINITY
350.000000
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
.000000
.400001
1.599999
98.000000
.400001
1.599999
73.000000
INFINITY
.879999
260.000000
INFINITY
1.200003
88.000000
1.999999
3.000008
26.000000
1.599999
INFINITY
b If Carco were required to produce at least 86 cars,
what would Carco’s profit become?
3 Consider the diet problem discussed in Section 3.4. Use
the LINDO output in Figure 8 to answer the following
questions.
a If a Brownie costs 30¢, then what would be the new
optimal solution to the problem?
b If a bottle of cola cost 35¢, then what would be the
new optimal solution to the problem?
c If at least 8 oz of chocolate were required, then what
would be the cost of the optimal diet?
d If at least 600 calories were required, then what
would be the cost of the optimal diet?
e If at least 9 oz of sugar were required, then what
would be the cost of the optimal diet?
FIGURE
8
LINDO Output for Diet Problem
MAX
50 BR + 20 IC + 30 COLA + 80 PC
SUBJECT TO
2)
400 BR + 200 IC + 150 COLA
+ 500 PC >= 500
3)
3 BR + 2 IC >= 6
4)
2 BR + 2 IC + 4 COLA
+ 4 PC >= 10
5)
2 BR + 4 IC + COLA
+ 5 PC >= 8
END
LP OPTIMUM FOUND AT STEP
2
OBJECTIVE FUNCTION VALUE
1)
VARIABLE
BR
IC
COLA
PC
ROW
2)
3)
4)
5)
90.0000000
VALUE
.000000
3.000000
1.000000
.000000
REDUCED COST
27.500000
.000000
.000000
50.000000
SLACK OR SURPLUS
250.000000
.000000
.000000
5.000000
DUAL PRICES
.000000
-2.500000
-7.500000
.000000
NO. ITERATIONS=
2
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
BR
IC
COLA
PC
ROW
2
3
4
5
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
50.000000
INFINITY
27.500000
20.000000
18.333330
5.000000
30.000000
10.000000
30.000000
80.000000
INFINITY
50.000000
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
500.000000 250.000000
INFINITY
6.000000
4.000000
2.857143
10.000000
INFINITY
4.000000
8.000000
5.000000
INFINITY
f What would the price of pineapple cheesecake have
to be before it would be optimal to eat cheesecake?
g What would the price of a brownie have to be before
it would be optimal to eat a brownie?
h Use the SLACK or SURPLUS portion of the LINDO
output to determine the allowable increase and allowable decrease for the fat constraint. If 10 oz of fat were
required, then would the optimal solution to the problem
change?
4 Gepbab Corporation produces three products at two
different plants. The cost of producing a unit at each plant
is shown in Table 6. Each plant can produce a total of 10,000
units. At least 6,000 units of product 1, at least 8,000 units
of product 2, and at least 5,000 units of product 3 must be
produced. To minimize the cost of meeting these demands,
the following LP should be solved:
min z 5x11 6x12 8x13 8x21 7x22 10x23
s.t.
x11 x12 x13 x21 x22 x23 10,000
s.t.
x11 x12 x13 x21 x22 x23 10,000
s.t.
x11 x12 x13 x21 x22 x23 6,000
s.t.
x11 x12 x13 x21 x22 x23 8,000
s.t.
x11 x12 x13 x21 x22 x23 5,000
All variables 0
Here, xij number of units of product j produced at plant
i. Use the LINDO output in Figure 9 to answer the following questions:
a What would the cost of producing product 2 at plant
1 have to be for the firm to make this choice?
b What would total cost be if plant 1 had 9,000 units
of capacity?
c If it cost $9 to produce a unit of product 3 at plant
1, then what would be the new optimal solution?
5 Mondo produces motorcycles at three plants. At each
plant, the labor, raw material, and production costs
(excluding labor cost) required to build a motorcycle are as
shown in Table 7. Each plant has sufficient machine capacity
to produce up to 750 motorcycles per week. Each of Mondo’s
workers can work up to 40 hours per week and is paid
$12.50 per hour worked. Mondo has a total of 525 workers
and now owns 9,400 units of raw material. Each week, at
least 1,400 Mondos must be produced. Let x1 motorcycles
produced at plant 1; x2 motorcycles produced at plant 2;
and x3 motorcycles produced at plant 3.
The LINDO output in Figure 10 enables Mondo to minimize the variable cost (labor production) of meeting demand. Use the output to answer the following questions:
a What would be the new optimal solution to the problem if the production cost at plant 1 were only $40?
TA B L E
6
Product ($)
Plant
1
2
3
1
2
5
8
6
7
18
10
5 . 2 The Computer and Sensitivity Analysis
243
9
FIGURE
TA B L E
LINDO Output for Gepbab
Plant
MAX
5
SUBJECT TO
2)
3)
4)
5)
6)
END
X11 + 6 X12 + 8 X13 + 8 X21
+ 7 X22 + 10 X23
X11
X21
X11
X12
X13
+
+
+
+
+
X12
X22
X21
X22
X23
+ X13 <=
+ X23 <=
>=
6000
>=
8000
>=
5000
10000
10000
7
Labor
Needed (Hours)
Raw Material
Needed (Units)
Production
Cost ($)
20
16
10
5
8
7
050
080
100
1
2
3
FIGURE
LP OPTIMUM FOUND AT STEP
5
10
LINDO Output for Mondo
OBJECTIVE FUNCTION VALUE
1)
VARIABLE
X11
X12
X13
X21
X22
X23
128000.000
VALUE
6000.000000
.000000
4000.000000
.000000
8000.000000
1000.000000
REDUCED COST
.000000
1.000000
.000000
1.000000
.000000
.000000
MAX
300
SUBJECT TO
2)
3)
4)
5)
6)
7)
END
X1 + 280
X2
+
225
20 X1 + 16 X2 + 10
5 X1 + 8 X2 + 7
X1 <=
750
X2 <=
750
X3 <=
750
X1 + X2 + X3 >=
X3
X3 <=
X3 <=
1400
LP OPTIMUM FOUND AT STEP
ROW
2)
3)
4)
5)
6)
SLACK OR SURPLUS
.000000
1000.000000
.000000
.000000
.000000
NO. ITERATIONS=
DUAL PRICES
2.000000
.000000
-7.000000
-7.000000
-10.000000
5
21000
9400
3
OBJECTIVE FUNCTION VALUE
1)
VARIABLE
X1
X2
X3
357750.000
VALUE
350.000000
300.000000
750.000000
REDUCED COST
.000000
.000000
.000000
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X11
X12
X13
X21
X22
X23
CURRENT
COEF
5.000000
6.000000
8.000000
8.000000
7.000000
10.000000
OBJ COEFFICIENT RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
1.000000
7.000000
INFINITY
1.000000
1.000000
1.000000
INFINITY
1.000000
1.000000
7.000000
1.000000
1.000000
ROW
2)
3)
4)
5)
6)
7)
SLACK OR SURPLUS
1700.000000
.000000
400.000000
450.000000
.000000
.000000
NO. ITERATIONS=
DUAL PRICES
.000000
6.666668
.000000
.000000
61.666660
-333.333300
3
RANGES IN WHICH THE BASIS IS UNCHANGED:
ROW
2
3
4
5
6
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
10000.000000 1000.000000
1000.000000
10000.000000
INFINITY
1000.000000
6000.000000 1000.000000
1000.000000
8000.000000 1000.000000
8000.000000
5000.000000 1000.000000
1000.000000
VARIABLE
X1
X2
X3
ROW
2
3
4
5
6
7
b How much money would Mondo save if the capacity of plant 3 were increased by 100 motorcycles?
c By how much would Mondo’s cost increase if it had
to produce one more motorcycle?
6 Steelco uses coal, iron, and labor to produce three types
of steel. The inputs (and sales price) for one ton of each
type of steel are shown in Table 8. Up to 200 tons of coal
can be purchased at a price of $10 per ton. Up to 60 tons of
iron can be purchased at $8 per ton, and up to 100 labor
hours can be purchased at $5 per hour. Let x1 tons of
steel 1 produced; x2 tons of steel 2 produced; and x3 tons of steel 3 produced.
244
CHAPTER
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
COEF
INCREASE
300.000000
INFINITY
280.000000
20.000010
225.000000
61.666660
ALLOWABLE
DECREASE
20.000000
92.499990
INFINITY
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
21000.000000
INFINITY
1700.000000
9400.000000 1050.000000
900.000000
750.000000
INFINITY
400.000000
750.000000
INFINITY
450.000000
750.000000 450.000000
231.818200
1400.000000
63.750000
131.250000
The LINDO output that yields a maximum profit for the
company is given in Figure 11. Use the output to answer the
following questions.
a What would profit be if only 40 tons of iron could
be purchased?
5 Sensitivity Analysis: An Applied Approach
8
TA B L E
Steel
Coal
Required (Tons)
Iron
Required (Tons)
Labor
Required (Hours)
Sales
Price ($)
3
2
1
1
0
1
1
1
1
51
30
25
1
2
3
FIGURE
11
LINDO Output for Steelco
MAX
8
SUBJECT TO
2)
3)
4)
END
X1 + 5
3 X1
X1 +
X1 +
X2
+ 2
X3
+ 2 X2 + X3 <=
X3
<=
60
X2 + X3 <= 100
LP OPTIMUM FOUND AT STEP
200
2
OBJECTIVE FUNCTION VALUE
1)
530.000000
VARIABLE
X1
X2
X3
ROW
2)
3)
4)
VALUE
60.000000
10.000000
.000000
REDUCED COST
.000000
.000000
1.000000
SLACK OR SURPLUS
.000000
.000000
30.000000
DUAL PRICES
2.500000
.500000
.000000
NO. ITERATIONS=
2
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X1
X2
X3
ROW
2
3
4
hours of overtime; workers are paid $25 per hour for
overtime labor. It takes 4 hours of labor and $5 of raw
material to produce each pair of shoes. At the beginning of
each month, workers can be hired or fired. Each hired worker
costs $1,600, and each fired worker costs $2,000. At the end
of each month, a holding cost of $30 per pair of shoes is
assessed. Formulate an LP that can be used to minimize the
total cost of meeting the next four months’ demands. Then
use LINDO to solve the LP. Finally, use the LINDO printout
to answer the questions that follow these hints (which may
help in the formulation.) Let
xt Pairs of shoes produced during month t with
nonovertime labor
ot Pairs of shoes produced during month t with
overtime labor
it Inventory of pairs of shoes at end of month t
ht Workers hired at beginning of month t
ft Workers fired at beginning of month t
wt Workers available for month t (after month t hiring
and firing)
Four types of constraints will be needed:
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
8.000000
INFINITY
.500000
5.000000
.333333
5.000000
2.000000
1.000000
INFINITY
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
RHS
INCREASE
200.000000
60.000000
60.000000
6.666667
100.000000
INFINITY
ALLOWABLE
DECREASE
20.000000
60.000000
30.000000
b What is the smallest price per ton for steel 3 that
would make it desirable to produce it?
c Find the new optimal solution if steel 1 sold for $55
per ton.
Group B
7 Shoeco must meet (on time) the following demands for
pairs of shoes: month 1—300; month 2—500; month 3—
100; and month 4—100. At the beginning of month 1, 50
pairs of shoes are on hand, and Shoeco has three workers.
A worker is paid $1,500 per month. Each worker can work
up to 160 hours per month before receiving overtime. During
any month, each worker may be forced to work up to 20
Type 1 Inventory equations. For example, during month 1,
i1 50 x1 o1 300.
Type 2 Relate available workers to hiring and firing. For
month 1, for example, the following constraint is needed:
w1 3 h1 f1.
Type 3 For each month, the amount of shoes made with
nonovertime labor is limited by the number of workers. For
example, for month 1, the following constraint is needed:
4x1 160w1.
Type 4 For each month, the number of overtime labor hours
used is limited by the number of workers. For example, for
month 1, the following constraint is needed: 4(o1) 20w1.
For the objective function, the following costs must be considered:
1 Workers’ salaries
2 Hiring costs
3 Firing costs
4 Holding costs
5 Overtime costs
6 Raw-material costs
a Describe the company’s optimal production plan,
hiring policy, and firing policy. Assume that it is acceptable to have a fractional number of workers, hirings,
or firings.
b If overtime labor during month 1 costs $16 per hour,
should any overtime labor be used?
c If the cost of firing workers during month 3 were
$1,800, what would be the new optimal solution to the
problem?
d If the cost of hiring workers during month 1 were
$1,700, what would be the new optimal solution to the
problem?
e By how much would total costs be reduced if demand in month 1 were 100 pairs of shoes?
f What would the total cost become if the company
had 5 workers at the beginning of month 1 (before month
1’s hiring or firing takes place)?
5 . 2 The Computer and Sensitivity Analysis
245
g By how much would costs increase if demand in
month 2 were increased by 100 pairs of shoes?
8
s
s
s
a Solve this LP with LINDO and use your output to
show that the optimal solution is degenerate.
b Use your LINDO output to find an example of Oddities 1–3.
Consider the LP:
max 9x1 8x2 5x3 4x4
s.t.
2x1 8x2 x3 x4 200
s.t.
2x1 8x2 x3 x4 150
s.t.
2x1 8x2 x3 x4 350
s.t.
2x1 8x2 x3 x4 550
s.t.
2 x1, x2, x3, x4 0
5.3
Managerial Use of Shadow Prices
In this section, we will discuss the managerial significance of shadow prices. In particular, we will learn how shadow prices can often be used to answer the following question:
What is the maximum amount that a manager should be willing to pay for an additional
unit of a resource? To answer this question, we usually focus our attention on the shadow
price of the constraint that describes the availability of the resource. We now discuss four
examples of the interpretation of shadow prices.
EXAMPLE
5
Winco Products 2
In Example 1, what is the most that Winco should be willing to pay for an additional unit
of raw material? How about an extra hour of labor?
Solution
EXAMPLE
6
Because the shadow price of the raw-material-availability constraint is 1, an extra unit
would increase total revenue by $1. Thus, Winco could pay up to $1 for an extra unit of
raw material and be as well off as it is now. This means that Winco should be willing to
pay up to $1 for an extra unit of raw material. The labor-availability constraint has a shadow
price of 0. This means that an extra hour of labor will not increase revenues, so Winco
should not be willing to pay anything for an extra hour of labor. (Note that this discussion
is valid because the AIs for the labor and raw-material constraints both exceed 1.)
Winco Products 3
Let’s reconsider Example 1 with the following changes. Suppose as many as 4,600 units
of raw material are available, but they must be purchased at a cost of $4 per unit. Also,
as many as 5,000 hours of labor are available, but they must be purchased at a cost of $6
per hour. The per-unit sales price of each product is as follows: product 1—$30; product
2—$42; product 3—$53; product 4—$72. A total of 950 units must be produced, of which
at least 400 must be product 4. Determine the maximum amount that the firm should be
willing to pay for an extra unit of raw material and an extra hour of labor.
Solution
The contribution to profit from one unit of each product may be computed as follows:
Product
Product
Product
Product
1:
2:
3:
4:
30
42
53
72
4(2)
4(3)
4(4)
4(7)
6(3)
6(4)
6(5)
6(6)
$4
$6
$7
$8
Thus, Winco’s profit is 4x1 6x2 7x3 8x4. To maximize profit, Winco should solve
the same LP as in Example 1, and the relevant LINDO output is again Figure 3. To determine the most Winco should be willing to pay for an extra unit of raw material, note
246
CHAPTER
5 Sensitivity Analysis: An Applied Approach
that the shadow price of the raw material constraint may be interpreted as follows: If
Winco has the right to buy one more unit of raw material (at $4 per unit), then profits increase by $1. Thus, paying $4 $1 $5 for an extra unit of raw material will increase
profits by $1 $1 $0. So Winco could pay up to $5 for an extra unit of raw material
and still be better off. For the raw-material constraint, the shadow price of $1 represents
a premium above and beyond the current price Winco is willing to pay for an extra unit
of raw material.
The shadow price of the labor-availability constraint is $0, which means that the right
to buy an extra hour of labor at $4 an hour will not increase profits. Unfortunately, all this
tells us is that at the current price of $4 per hour, Winco should buy no more labor.
EXAMPLE
7
Farmer Leary’s Shadow Price
Consider the Farmer Leary problem (Problem 1 in Section 5.2).
Solution
a
What is the most that Leary should pay for an additional hour of labor?
b
What is the most that Leary should pay for an additional acre of land?
From the L 350 constraint’s shadow price of 2.5, we see that if 351 hours of labor
are available, then (after paying $10 for another hour of labor) profits increase by $2.50.
So if Leary pays $10 $2.50 $12.50 for an extra hour of labor, profits would increase
by $2.50 $2.50 $0. This implies that Leary should be willing to pay up to $12.50
for another hour of labor.
To look at it another way, the shadow price of the 6A1 10A2 L 0 constraint is
12.5. This means that if the constraint 6A1 10A2 L were replaced by the constraint
6A1 10A2 L 1, profits would increase by $12.50. So if one extra hour of labor
were “given” to Leary (at zero cost), profits would increase by $12.50. Thus, Leary should
be willing to pay up to $12.50 for an extra hour of labor.
a
If 46 acres of land were available, profits would increase by $75 (the shadow price of
the A1 A2 45 constraint). This includes the cost ($0) of purchasing an additional
acre of land. Thus, Leary should be willing to pay up to $75 for an extra acre of land.
b
We now illustrate some of the managerial insights that can be gained by analyzing the
shadow prices for a minimization problem.
EXAMPLE
8
Tucker Inc.’s Shadow Price
The following questions refer to Example 2.
a
What is the most that Tucker should pay for an extra hour of labor?
b
What is the most that Tucker should pay for an extra unit of raw material?
A new customer is willing to purchase 20 cars at a price of $25,000 per vehicle.
Should Tucker fill her order?
c
Solution
Because the shadow price of the labor-availability constraint (row 4) is 0, an extra hour
of labor reduces costs by $0. Thus, Tucker should not pay anything for an extra hour of
labor.
a
Because the shadow price of the raw-material-availability constraint (row 5) is 5 (thousand dollars), an additional unit of raw material reduces costs by $5,000. Thus, Tucker
should be willing to pay up to $5,000 for an extra unit of raw material.
b
5 . 3 Managerial Use of Shadow Prices
247
c The allowable increase for the constraint x1 x2 x3 x4 1,000 is 66.666660.
Because the shadow price of this constraint is 30 (thousand dollars), we know that if
Tucker fills the order, its costs will increase by 20(30,000) $600,000. So Tucker
should not fill the order.
In Example 8, the astute reader may notice that each car costs at most $15,000 to produce. How is it then possible that a unit increase in the number of cars that must be produced increases costs by $30,000? To see why this is the case, we re-solved Tucker’s LP
after increasing the number of cars that had to be produced to 1,001. The new optimal solution has z 11,630, x1 404, x2 197, x3 400, x4 0. We now see why increasing demand by one car raises costs by $30,000. To produce one more car, Tucker must
produce four more Type 1 cars and three fewer Type 2 cars. This ensures that Tucker still
uses only 4,400 units of raw material, but it increases total cost by 4(15,000) 3(10,000)
$30,000!
PROBLEMS
Group A
1 In Problem 2 of Section 5.2, what is the most that Carco
should be willing to pay for an extra ton of steel?
7 In Problem 6 of Section 5.2, what is the most that Steelco
should be willing to pay for an extra ton of iron?
2 In Problem 2 of Section 5.2, what is the most that Carco
should be willing to pay to rent an additional Type 1 machine
for one day?
8 In Problem 6 of Section 5.2, what is the most that Steelco
should be willing to pay for an extra hour of labor?
3 In Problem 3 of Section 5.2, what is the most that one
should be willing to pay for an additional ounce of
chocolate?
4 In Problem 4 of Section 5.2, how much should Gepbab
be willing to pay for another unit of capacity at plant 1?
5 In Problem 5 of Section 5.2, suppose that Mondo could
purchase an additional unit of raw material at a cost of $6.
Should the company do it? Explain.
6 In Problem 6 of Section 5.2, what is the most that Steelco
should be willing to pay for an extra ton of coal?
5.4
9 In Problem 7 of Section 5.2, suppose that a new customer
wishes to buy a pair of shoes during month 1 for $70.
Should Shoeco oblige him?
10 In Problem 7 of Section 5.2, what is the most the
company would be willing to pay for having one more
worker at the beginning of month 1?
11 In solving part (c) of Example 8, a manager reasons as
follows: The average cost of producing a car is $11,600 up
to 1,000 cars. Therefore, if a customer is willing to pay me
$25,000 for a car, I should certainly fill his order. What is
wrong with this reasoning?
What Happens to the Optimal z-Value If the Current
Basis Is No Longer Optimal?
In Section 5.2, we used shadow prices to determine the new optimal z-value if the righthand side of a constraint were changed but remained in the range where the current basis
remains optimal. Suppose we change the right-hand side of a constraint to a value where
the current basis is no longer optimal. In this situation, the LINDO Parametrics feature can
be used to determine how the shadow price of a constraint and the optimal z-value change.
We illustrate the use of the Parametrics feature by varying the amount of raw material
available in Example 1. Suppose we want to determine how the optimal z-value and shadow
price change as the amount of available raw material varies between 0 and 10,000 units. We
first realize that with little raw material available, the LP will be infeasible. To begin, we
248
CHAPTER
5 Sensitivity Analysis: An Applied Approach
change the amount of raw material available to 0. We then obtain from the Range and Sensitivity Analysis results that row 4 has an Allowable Decrease of 3,900. This indicates that
if at least 3,900 units of raw material are available, the problem will be feasible. We therefore change the rhs of the raw material constraint to 3,900 and solve the LP. After finding
the optimal solution, select Reports Parametrics. From the dialog box, choose row 4 and set
the value to 10,000. We will choose Text output. We obtain the output shown in Figure 12.
From Figure 12 we find that if the amount of available raw material is 3,900, then the
shadow price (or dual price) for raw material is now $2, and the optimal z-value is 5,400.
The current basis remains optimal until rm 4,450; between rm 3,900 and rm 4,450, each unit increase in rm will increase the optimal z-value by the shadow price of
$2. Thus, when rm 4,450, the optimal z-value will be
5,400 2(4,450 3,900) $6,500
From Figure 12, we see that when rm 4,450, x3 enters the basis and x1 exits. The
shadow price of rm is now $1, and each additional unit of rm (up to the next change of
basis) will increase the optimal z-value by $1. The next basis change occurs when rm 4,850. At this point, the new optimal z-value may be computed as (optimal z-value for
rm 6,500) (4,850 4,450)($1) $6,900. When rm 4,850, we pivot in SLACK3
(the slack variable for row 3 or constraint 2), and SLACK5 exits. The new shadow price
for rm is $0. Thus when rm 4,850, we see that an additional unit of rm will not increase the optimal z-value. This discussion is summarized in Figure 13, which shows the
optimal z-value as a function of the amount of available raw material.
For any LP, a graph of the optimal objective function value as a function of a righthand side will consist of several straight-line segments of possibly differing slopes. (Such
a function is called a piecewise linear function.) The slope of each straight-line segment
is just the constraint’s shadow price. At points where the optimal basis changes (points B,
C, and D in Figure 13), the slope of the graph may change. For a constraint in a maximization problem, the slope of each line segment must be nonnegative—more of a re-
FIGURE
12
10
Optimal z-value (thousands)
9
8
7
6
5
B
Infeasible
C
D
4850
5250
A
4
3
2
1
FIGURE
13
Optimal z-Value versus
Raw Material
0
3900
4450
10,000
Available raw material
5 . 4 What Happens to the Optimal z-Value If the Current Basis Is No Longer Optimal?
249
source can’t hurt. In a maximization problem, the slopes of successive line segments for
a constraint will be nonincreasing. This is simply a consequence of diminishing returns;
as we obtain more of a resource (and availability of other resources is held constant), the
value of an additional unit of the resource cannot increase.
For a constraint in a maximization problem, the graph of the optimal z-value as a
function of the right-hand side will again be a piecewise linear function. The slope of each
line segment will be nonpositive (corresponding to the fact that a constraint has a nonpositive shadow price). The slopes of successive line segments will be nonincreasing. For
the x4 400 constraint in Example 1, plotting the optimal z-value as a function of the
constraint’s right-hand side yields the graph in Figure 14.
For an equality constraint in a maximization problem, the graph of the optimal z-value
as a function of right-hand side will again be piecewise linear. The slopes of each line
segment may be positive or negative, but the slopes of successive line segments will again
be nonincreasing. For the constraint x1 x2 x3 x4 950 in Example 1, we obtain
the graph in Figure 15.
For a minimization problem, the plot of the optimal z-value against a constraint’s righthand side is again a piecewise linear function. For all minimization problems, the slopes
of successive line segments will be nondecreasing. For a constraint, the slope of each
line segment is nonpositive; for a constraint, the slope is nonnegative; and for an
equality constraint, the slope may be positive or negative.
8
Optimal z-value (thousands)
7
A
B
Infeasible
C
6
D
5
4
3
2
1
FIGURE
14
Optimal z-Value versus
Product 4 Requirement
0
0.4
0.2
0.6
0.8
1
Product 4 requirement (thousands)
8
Infeasible
Optimal z-value (thousands)
7
C
6
5
D
E F
1
1.2
B
4
3
A
2
1
FIGURE
15
Optimal z-Value versus
Production Requirement
250
0
0.2
0.4
0.6
0.8
1.4
1.6
Required production (thousands)
CHAPTER
5 Sensitivity Analysis: An Applied Approach
1.8
2
Effect of Change in Objective Function
Coefficient on Optimal z-Value
We now discuss how to find the graph of the optimal objective function value as a function of a variable’s objective function coefficient. To see how this works, let’s reconsider
the Giapetto problem.
max z 3x1 2x2
s.t.
2x1 x2 100
s.t.
x1 x2 80
s.t.
x1 x2 40
s.t.
2 x1, x2 0
Let c1 objective function coefficient for x1. Currently, we have c1 3. We want to determine how the optimal z-value depends on c1. To determine this relationship, we must find,
for each value of c1, the optimal values of the decision variables. Recall from Figure 1 (p.
228) that point A (0, 80) is optimal if the isoprofit line is flatter than the carpentry constraint. Also note that point B (20, 60) is optimal if the slope of the isoprofit line is steeper
than the carpentry constraint and flatter than the finishing-hour constraint. Finally, point C (40, 20) is optimal if the slope of the isoprofit line is steeper than the slope of the finishinghour constraint. A typical isoprofit line is c1x1 2x2 k, so we know that the slope of a
typical isoprofit line is c21 . This implies that point A is optimal if c21 1 (or c1 2).
We also find that point B is optimal if 2 c21 1 (or 2 c1 4). Finally, point C is
optimal if c21 2 (or c1 4). By substituting the optimal values of the decision variables into the objective function (c1x1 2x2), we obtain the following information:
Value of c1
0 c1 2
2 c1 4
2 c1 4
Optimal z-value
c1(0)0 2(80) $160
c1(20) 2(60) $120 20c1
c1(40) 2(20) $140 40c1
The relationship between c1 and the optimal z-value is portrayed graphically in Figure 16.
As seen in the figure, the graph of the optimal z-value as a function of c1 is a piecewise
linear function. The slope of each line segment in the graph is equal to the value of x1 in
the optimal solution. In a maximization problem, it can be shown (see Problem 5) that as
the value of an objective function coefficient increases, the value of the variable in the
LP’s optimal solution cannot decrease. Thus, the slope of the graph of the optimal z-value
as a function of an objective function coefficient will be nondecreasing.
400
Optimal z-value
350
300
250
200
150
100
FIGURE
16
Optimal z-Value
versus c1
50
0
2
4
6
8
10
c1
5 . 4 What Happens to the Optimal z-Value If the Current Basis Is No Longer Optimal?
251
Similarly, in a minimizing problem, the graph of the optimal z-value as a function of
a variable xi’s objective function coefficient ci is a piecewise linear function. Again, the
slope of each line segment is equal to the optimal value of xi in the bfs corresponding to
the line segment. It can be shown (see Problem 6) that the optimal xi-value is a nonincreasing function of ci. Thus, in a minimization problem, the graph of the optimal z-value
as a function of ci will be a piecewise linear function having a nonincreasing slope.
PROBLEMS
Group A
Group B
In what follows, bi represents the right-hand side of an LP’s
ith constraint.
5 For Example 1, suppose that we increase the sales price
of a product. Show that in the new optimal solution, the
amount produced of that product cannot decrease.
1 Use the LINDO PARA command to graph the optimal
z-value for Example 1 as a function of b4.
2 Use the PARA command to graph the optimal z-value
for Example 2 as a function of b1. Then answer the same
questions for b2, b3, and b4, respectively.
3 For the Giapetto example of Section 3.1, graph the
optimal z-value as a function of x2’s objective function
coefficient. Also graph the optimal z-value as a function of
b1, b2, and b3.
4 For the Dorian Auto example (Example 2 in Chapter 3),
let c1 be the objective function coefficient of x1. Determine
the optimal z-value as a function of c1.
SUMMARY
6 For Example 2, suppose that we increase the cost of
producing a type of car. Show that in the new optimal
solution to the LP, the number of cars produced of that type
cannot increase.
7 Consider the Sailco problem (Example 12 in Chapter 3).
Suppose we want to consider how profit will be affected if we
change the number of sailboats that can be produced each
month with regular-time labor. How can we use the PARA
command to answer this question? (Hint: Let c change in
number of sailboats that can be produced each month with
regular-time labor. Change the right-hand side of some
constraints to 40 c and add another constraint to the problem.)
Graphical Sensitivity Analysis
To determine whether the current basis remains optimal after changing an objective function coefficient, note that changing the objective function coefficient of a variable changes
the slope of the isoprofit line. The current basis remains optimal as long as the current
optimal solution is the last point in the feasible region to make contact with isoprofit lines
as we move in the direction of increasing z (for a max problem). If the current basis remains optimal, the values of the decision variables remain unchanged, but the optimal
z-value may change.
To determine if the current basis remains optimal after changing the right-hand side of
a constraint, begin by finding the constraints (possibly including sign restrictions) that are
binding for the current optimal solution. As we change the right-hand side of a constraint,
the current basis remains optimal as long as the point where the constraints are binding
remains feasible. Even if the current basis remains optimal, the values of the decision variables and the optimal z-value may change.
Shadow Prices
The shadow price of the ith constraint of a linear programming problem is the amount
by which the optimal z-value is improved if the right-hand side of the ith constraint is increased by 1 (assuming that the current basis remains optimal). The shadow price of the
ith constraint is the dual price for row i 1 given on the LINDO output.
252
CHAPTER
5 Sensitivity Analysis: An Applied Approach
If the right-hand side of the ith constraint is increased by bi, then (assuming the current basis remains optimal) the new optimal z-value for a maximization problem may be
found as follows:
(New optimal z-value) (old optimal z-value) (Constraint i’s shadow price) bi
(1)
For a minimization problem, the new optimal z-value may be found from
(New optimal z-value) (old optimal z-value) (Constraint i’s shadow price) bi
(2)
Objective Function Coefficient Range
The OBJ COEFFICIENT RANGE portion of the LINDO output gives the range of values for an objective function coefficient for which the current basis remains optimal.
Within this range, the values of the decision variables remain unchanged, but the optimal
z-value may or may not change.
Reduced Cost
For any nonbasic variable, the reduced cost for the variable is the amount by which the
nonbasic variable’s objective function coefficient must be improved before that variable
will become a basic variable in some optimal solution to the LP.
Right-Hand Side Range
If the right-hand side of a constraint remains within the RIGHTHAND SIDE RANGES value
given on the LINDO printout, then the current basis remains optimal, and the dual price may
be used to determine how a change in the right-hand side changes the optimal z-value. Even
if the right-hand side of a constraint remains within the RIGHTHAND SIDE RANGES value
on the LINDO output, then the values of the decision variables will probably change.
Signs of Shadow Prices
A constraint will have a nonpositive shadow price; a constraint will have a nonnegative
shadow price; and an equality constraint may have a positive, negative, or zero shadow price.
Optimal z-Value as a Function of a Constraint’s
Right-Hand Side
In all cases, the optimal z-value will be a piecewise linear function of a constraint’s righthand side. The exact form of the function is as shown in Table 9.
Optimal z-Value as a Function of an
Objective Function Coefficient
In a maximization problem, the optimal z-value will be a nondecreasing, piecewise linear
function of an objective function coefficient. The slope will be a nondecreasing function
of the objective function coefficient.
5 . 4 Summary
253
TA B L E
9
Type of LP
Maximization
Maximization
Maximization
Minimization
Minimization
Minimization
Type of
Constraint
Slopes of Each Piecewise
Linear Segment Are
Nonnegative and nonincreasing
Nonpositive and nonincreasing
Unrestricted in sign and nonincreasing
Nonpositive and nondecreasing
Nonnegative and nondecreasing
Unrestricted in sign and nondecreasing
In a minimization problem, the optimal z-value will be a nondecreasing, piecewise linear function of an objective function coefficient. The slope will be a nonincreasing function of the objective function coefficient.
REVIEW PROBLEMS
Group A
1 HAL produces two types of computers: PCs and VAXes.
The computers are produced in two locations: New York
and Los Angeles. New York can produce up to 800
computers and Los Angeles up to 1,000 computers. HAL
can sell up to 900 PCs and 900 VAXes. The profit associated
with each production site and computer sale is as follows:
New York—PC, $600; VAX, $800; Los Angeles—PC,
$1,000; VAX, $1,300. The skilled labor required to build
each computer at each location is as follows: New York—
PC, 2 hours; VAX, 2 hours; Los Angeles—PC, 3 hours;
VAX, 4 hours. A total of 4,000 hours of labor are available.
Labor is purchased at a cost of $20 per hour. Let
XNP PCs produced in New York
XLP PCs produced in Los Angeles
XNV VAXes produced in New York
XLV VAXes produced in Los Angeles
Use the LINDO printout in Figure 17 to answer the following questions:
a If 3,000 hours of skilled labor were available, what
would be HAL’s profit?
b Suppose an outside contractor offers to increase the
capacity of New York to 850 computers at a cost of
$5,000. Should HAL hire the contractor?
c By how much would the profit for a VAX produced
in Los Angeles have to increase before HAL would want
to produce VAXes in Los Angeles?
d What is the most HAL should pay for an extra hour
of labor?
2 Vivian’s Gem Company produces two types of gems:
Types 1 and 2. Each Type 1 gem contains 2 rubies and 4
diamonds. A Type 1 gem sells for $10 and costs $5 to
produce. Each Type 2 gem contains 1 ruby and 1 diamond.
A Type 2 gem sells for $6 and costs $4 to produce. A total
of 30 rubies and 50 diamonds are available. All gems that
are produced can be sold, but marketing considerations
254
CHAPTER
dictate that at least 11 Type 1 gems be produced. Let x1 number of Type 1 gems produced and x2 number of Type
2 gems produced. Assume that Vivian wants to maximize
profit. Use the LINDO printout in Figure 18 to answer the
following questions:
a What would Vivian’s profit be if 46 diamonds were
available?
b If Type 2 gems sold for only $5.50, what would be
the new optimal solution to the problem?
c What would Vivian’s profit be if at least 12 Type 1
gems had to be produced?
3 Wivco produces product 1 and product 2 by processing
raw material. Up to 90 lb of raw material may be purchased
at a cost of $10/lb. One pound of raw material can be used
to produce either 1 lb of product 1 or 0.33 lb of product 2.
Using a pound of raw material to produce a pound of product
1 requires 2 hours of labor or 3 hours to produce 0.33 lb of
product 2. A total of 200 hours of labor are available, and
at most 40 pounds of product 2 can be sold. Product 1 sells
for $13/lb and product 2, $40/lb. Let
RM pounds of raw material processed
P1 pounds of raw material used to produce product 1
P2 pounds of raw material used to produce product 2
To maximize profit, Wivco should solve the following LP:
max z 13P1 40(0.33)P2 10RM
s.t.
RM 2P1 3P2
s.t.
RM 2P1 3P2 200
s.t.
RM 2P1 3P2 90
s.t.
RM 0.33P2 40
s.t.
P1, P2, RM 0
Use the LINDO output in Figure 19 to answer the following questions:
a If only 87 lb of raw material could be purchased,
what would be Wivco’s profits?
5 Sensitivity Analysis: An Applied Approach
17
FIGURE
FIGURE
LINDO Output for HAL
MAX
600
SUBJECT TO
2)
3)
4)
5)
6)
7)
18
LINDO Output for Vivian’s Gem
XNP + 1000 XLP + 800 XNV
+ 1300 XLV - 20 L
2 XNP + 3 XLP + 2 XNV
+ 4 XLV - L <=
XNP + XNV
<=
800
XLP + XLV
<= 1000
XNP + XLP
<=
900
XNV + XLV
<=
900
L
<=
4000
0
MAX
5
SUBJECT TO
2)
3)
4)
END
X1 + 2
X2
2 X1 +
4 X1 +
X1 >=
X2 <=
X2 <=
11
30
50
LP OPTIMUM FOUND AT STEP
2
OBJECTIVE FUNCTION VALUE
END
1)
LP OPTIMUM FOUND AT STEP
OBJECTIVE FUNCTION VALUE
1)
VARIABLE
XNP
XLP
XNV
XLV
L
67.0000000
3
VARIABLE
X1
X2
VALUE
11.000000
6.000000
REDUCED COST
.000000
.000000
1360000.00
VALUE
.000000
800.000000
800.000000
.000000
4000.000000
REDUCED COST
200.000000
.000000
.000000
33.333370
.000000
ROW
2)
3)
4)
SLACK OR SURPLUS
2.000000
.000000
.000000
NO. ITERATIONS=
DUAL PRICES
0.000000
2.000000
-3.000000
2
RANGES IN WHICH THE BASIS IS UNCHANGED:
ROW
2)
3)
4)
5)
6)
7)
SLACK OR SURPLUS
.000000
.000000
200.000000
100.000000
100.000000
.000000
NO. ITERATIONS=
DUAL PRICES
333.333300
133.333300
.000000
.000000
.000000
313.333300
3
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
XNP
XLP
XNV
XLV
L
ROW
2
3
4
5
6
7
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
600.000000
200.000000
INFINITY
1000.000000
200.000000
25.000030
800.000000
INFINITY
133.333300
1300.000000
33.333370
INFINITY
-20.000000
INFINITY
313.333300
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
.000000
300.000000
2400.000000
800.000000
100.000000
150.000000
1000.000000
INFINITY
200.000000
900.000000
INFINITY
100.000000
900.000000
INFINITY
100.000000
4000.000000
300.000000
2400.000000
b If product 2 sold for $39.50/lb, what would be the
new optimal solution to Wivco’s problem?
c What is the most that Wivco should pay for another
pound of raw material?
d What is the most that Wivco should pay for another
hour of labor?
4 Zales Jewelers uses rubies and sapphires to produce two
types of rings. A Type 1 ring requires 2 rubies, 3 sapphires,
and 1 hour of jeweler’s labor. A Type 2 ring requires 3
rubies, 2 sapphires, and 2 hours of jeweler’s labor. Each
Type 1 ring sells for $400; type 2 sells for $500. All rings
VARIABLE
X1
X2
ROW
2
3
4
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
5.000000
3.000000
INFINITY
2.000000
INFINITY
.750000
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
30.000000
INFINITY
2.000000
50.000000
2.000000
6.000000
11.000000
1.500000
1.000000
produced by Zales can be sold. At present, Zales has 100
rubies, 120 sapphires, and 70 hours of jeweler’s labor. Extra
rubies can be purchased at a cost of $100 per ruby. Market
demand requires that the company produce at least 20 Type
1 rings and at least 25 Type 2. To maximize profit, Zales
should solve the following LP:
X1 Type 1 rings produced
X2 Type 2 rings produced
R2 number of rubies purchased
max z 400X1 500X2 100R
s.t.
2X1 3X2 R 100
s.t.
3X1 2X2 R 120
s.t.
3X1 2X2 R 70
s.t.
3X1 2X2 R 20
s.t.
3X1 2X2 R 25
s.t.
3 2X1, X2 0
Use the LINDO output in Figure 20 to answer the following questions:
a Suppose that instead of $100, each ruby costs $190.
Would Zales still purchase rubies? What would be the
new optimal solution to the problem?
b Suppose that Zales were only required to produce at
least 23 Type 2 rings. What would Zales’ profit now be?
5 . 4 Review Problems
255
FIGURE
19
FIGURE
LINDO Output for Wivco
20
LINDO Output for Zales
MAX
13 P1 + 13.2 P2 - 10 RM
SUBJECT TO
2) - P1 - P2 + RM >= 0
3)
2 P1 + 3 P2 <= 200
4)
RM
<= 90
5)
0.33 P2 <= 40
END
LP OPTIMUM FOUND AT STEP
MAX
400 X1 +
SUBJECT TO
2)
2 X1
3)
3 X1
4)
X1
5)
X1
6)
X2
END
500
X2
-
100
R
+ 3 X2 - R <=
+ 2 X2 <= 120
+ 2 X2 <= 70
>=
20
>=
25
100
3
LP OPTIMUM FOUND AT STEP
2
OBJECTIVE FUNCTION VALUE
OBJECTIVE FUNCTION VALUE
1)
274.000000
1)
VARIABLE
P1
P2
RM
ROW
2)
3)
4)
5)
VALUE
70.000000
20.000000
90.000000
REDUCED COST
0.000000
0.000000
0.000000
SLACK OR SURPLUS
0.000000
0.000000
0.000000
33.400002
NO. ITERATIONS=
DUAL PRICES
-12.600000
0.200000
2.600000
0.000000
P1
P2
RM
ROW
2
3
4
5
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
13.000000
0.200000
0.866667
13.200000
1.300000
0.200000
-10.000000
INFINITY
2.600000
5 Beerco manufactures ale and beer from corn, hops, and
malt. Currently, 40 lb of corn, 30 lb of hops, and 40 lb of
malt are available. A barrel of ale sells for $40 and requires
1 lb of corn, 1 lb of hops, and 2 lb of malt. A barrel of beer
sells for $50 and requires 2 lb of corn, 1 lb of hops, and
1 lb of malt. Beerco can sell all ale and beer that is produced.
Assume that Beerco’s goal is to maximize total sales revenue
and solve the following LP:
max z 40ALE 50BEER
s.t.
2ALE 2BEER 40
(Corn constraint)
s.t.
2ALE 2BEER 30
(Hops constraint)
s.t.
2ALE 2BEER 40
(Malt constraint)
s.t.
2 ALE, BEER 0
ALE barrels of ale produced, and BEER barrels of
beer produced.
CHAPTER
VALUE
20.000000
25.000000
15.000000
REDUCED COST
0.000000
0.000000
0.000000
SLACK OR SURPLUS
0.000000
10.000000
0.000000
0.000000
0.000000
NO. ITERATIONS=
DUAL PRICES
100.000000
0.000000
200.000000
0.000000
-200.000000
2
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X1
X2
R
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
0.000000
23.333334
10.000000
200.000000
70.000000
20.000000
90.000000
10.000000
23.333334
40.000000
INFINITY
33.400002
c What is the most that Zales would be willing to pay
for another hour of jeweler’s labor?
d What is the most that Zales would be willing to pay
for another sapphire?
256
ROW
2)
3)
4)
5)
6)
3
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
VARIABLE
X1
X2
R
19000.0000
ROW
2
3
4
5
6
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
400.000000
INFINITY
100.000000
500.000000
200.000000
INFINITY
-100.000000
100.000000
100.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
15.000000
INFINITY
INFINITY
10.000000
3.333333
0.000000
0.000000
INFINITY
0.000000
2.500000
CURRENT
RHS
100.000000
120.000000
70.000000
20.000000
25.000000
a Graphically find the range of values for the price of
ale for which the current basis remains optimal.
b Graphically find the range of values for the price of
beer for which the current basis remains optimal.
c Graphically find the range of values for the amount
of available corn for which the current basis remains optimal. What is the shadow price of the corn constraint?
d Graphically find the range of values for the amount
of available hops for which the current basis remains optimal. What is the shadow price of the hops constraint?
e Graphically find the range of values for the amount
of available malt for which the current basis remains optimal. What is the shadow price of the malt constraint?
f Find the shadow price of each constraint if the constraints were expressed in ounces instead of pounds.
g Draw a graph of the optimal z-value as a function of
the price of ale.
5 Sensitivity Analysis: An Applied Approach
h Draw a graph of the optimal z-value as a function of
the amount of available corn.
i Draw a graph of the optimal z-value as a function of
the amount of available hops.
j Draw a graph of the optimal z-value as a function of
the amount of available malt.
6 Gepbab Production Company uses labor and raw material
to produce three products. The resource requirements and
sales price for the three products are as shown in Table 10.
Currently, 60 units of raw material are available. Up to 90
hours of labor can be purchased at $1 per hour. To maximize
Gepbab profits, solve the following LP:
max z 6X1 8X2 13X3 L
s.t.
3X1 4X2 6X3 L 0
s.t.
2X1 2X2 5X3 L 60
s.t.
2X1 2X2 5X3 L 90
X1, X2, X3, L 0
Here, Xi units of product i produced, and L number of
labor hours purchased. Use the LINDO output in Figure 21
to answer the following questions:
a What is the most the company should pay for another unit of raw material?
b What is the most the company should pay for another hour of labor?
c What would product 1 have to sell for to make it desirable for the company to produce it?
d If 100 hours of labor could be purchased, what would
the company’s profit be?
e Find the new optimal solution if product 3 sold for $15.
7 Giapetto, Inc., sells wooden soldiers and wooden trains.
The resources used to produce a soldier and train are shown
in Table 11. A total of 145,000 board feet of lumber and
90,000 hours of labor are available. As many as 50,000
soldiers and 50,000 trains can be sold, with trains selling for
$55 and soldiers for $32. In addition to producing trains and
soldiers itself, Giapetto can buy (from an outside supplier)
extra soldiers at $27 each and extra trains at $50 each. Let
SM thousands of soldiers manufactured
SB thousands of soldiers bought at $27
TM thousands of trains manufactured
TB thousands of trains bought at $50
Then Giapetto can maximize profit by solving the LP in the
LINDO printout in Figure 22. Use this printout to answer
the following questions. (Hint: Think about the units of the
constraints and objective function.)
a If Giapetto could purchase trains for $48 per train,
then what would be the new optimal solution to the LP?
Explain.
TA B L E
10
Product
Resource
1
2
3
Labor (hours)
Raw material (units)
Sales price ($)
3
2
6
4
2
8
16
15
13
FIGURE
21
LINDO Output for Gepbab
MAX
6
SUBJECT TO
2)
3)
4)
END
X1 + 8 X2 + 13 X3 - L
3 X1 + 4 X2 + 6 X3 - L
2 X1 + 2 X2 + 5 X3 <=
L
<=
90
<=
60
LP OPTIMUM FOUND AT STEP
0
3
OBJECTIVE FUNCTION VALUE
1)
VARIABLE
X1
X2
X3
L
97.5000000
VALUE
.000000
11.250000
7.500000
90.000000
ROW
2)
3)
4)
SLACK OR SURPLUS
.000000
.000000
.000000
NO. ITERATIONS=
REDUCED COST
.250000
.000000
.000000
.000000
DUAL PRICES
1.750000
.500000
.750000
3
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X1
X2
X3
L
ROW
2
3
4
TA B L E
OBJ COEFFICIENT RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
.250000
INFINITY
.666667
.666667
3.000000
1.000000
INFINITY
.750000
CURRENT
COEF
6.000000
8.000000
13.000000
-1.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
30.000000
18.000000
15.000000
15.000000
30.000000
18.000000
CURRENT
RHS
.000000
60.000000
90.000000
11
Lumber (board (ft)
Labor (hours)
Soldier
Train
3
2
5
4
b What is the most Giapetto would be willing to pay
for another 100 board feet of lumber? For another 100
hours of labor?
c If 60,000 labor hours are available, what would Giapetto’s profit be?
d If only 40,000 trains could be sold, what would Giapetto’s profit be?
8 Wivco produces two products: 1 and 2. The relevant
data are shown in Table 12. Each week, up to 400 units of
raw material can be purchased at a cost of $1.50 per unit.
The company employs four workers, who work 40 hours
per week. (Their salaries are considered a fixed cost.)
Workers are paid $6 per hour to work overtime. Each week,
320 hours of machine time are available.
5 . 4 Review Problems
257
FIGURE
22
LINDO Output for Giapetto
MAX
32 SM + 55 TM + 5 SB + 5 TB
SUBJECT TO
2)
3 SM + 5 TM
<=
145
3)
2 SM + 4 TM
<=
90
4)
SM + SB
<=
50
5)
TM + TB <=
50
END
LP OPTIMUM FOUND AT STEP
4
OBJECTIVE FUNCTION VALUE
1)
VARIABLE
SM
TM
SB
TB
ROW
2)
3)
4)
5)
1715.00000
VALUE
45.000000
.000000
5.000000
50.000000
REDUCED COST
.000000
4.000000
.000000
.000000
SLACK OR SURPLUS
10.000000
.000000
.000000
.000000
DUAL PRICES
.000000
13.500000
5.000000
5.000000
NO. ITERATIONS=
4
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
SM
TM
SB
TB
ROW
2
3
4
5
TA B L E
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
32.000000
INFINITY
2.000000
55.000000
4.000000
INFINITY
5.000000
2.000000
5.000000
5.000000
INFINITY
4.000000
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
145.000000
INFINITY
10.000000
90.000000
6.666667
90.000000
50.000000
INFINITY
5.000000
50.000000
INFINITY
50.000000
12
Selling price ($)
Labor required (hours)
Machine time required (hours)
Raw material required (units)
Product 1
Product 2
15
10.75
11.5
12
8
0.50
0.80
1
RM number of units of raw materials purchased each
week
A1 dollars spent each week on advertising product 1
A2 dollars spent each week on advertising product 2
Then Wivco should solve the following LP:
max z 15PI 8P2 6(OT) 1.5RM A1 A2
s.t.
0.75P1 10A1 50
(1)
s.t.
0.75P2 15A2 60
(2)
0.75P1 0.5P2 160 (OT)
(3)
2P1 P2 RM
(4)
RM 400
(5)
A1 A2 100
(6)
1.5P1 0.8P2 320
(7)
All variables non-negative
Use LINDO to solve this LP. Then use the computer output
to answer the following questions:
a If overtime cost only $4 per hour, would Wivco use it?
b If each unit of product 1 sold for $15.50, would the
current basis remain optimal? What would be the new
optimal solution?
c What is the most that Wivco should be willing to pay
for another unit of raw material?
d How much would Wivco be willing to pay for another hour of machine time?
e If each worker were required (as part of the regular
workweek) to work 45 hours per week, what would the
company’s profits be?
f Explain why the shadow price of row (1) is 0.10.
(Hint: If the right-hand side of (1) were increased from
50 to 51, then in the absence of advertising for product
1, 51 units of product 1 could now be sold each week.)
9 In this problem, we discuss how shadow prices can be
interpreted for blending problems (see Section 3.8). To
illustrate the ideas, we discuss Problem 2 of Section 3.8. If
we define
x6J pounds of grade 6 oranges in juice
x9J pounds of grade 9 oranges in juice
x6B pounds of grade 6 oranges in bags
x9B pounds of grade 9 oranges in bags
then the appropriate formulation is
max z 0.45(x6J x9J) 0.30(x6B x9B)
(Grade 6
s.t.
x6Jx9J x6B x9B 120,000
constraint)
(Grade 9
constraint)
(Orange
6x6J 9x9J
x9B 800,00
0juice
(1)
constraint)
6x6B 9x9B
(Bags
,000
(2)
x9B 700
constraint)
x6J, x9J, x6B, x9B 0
Constraints (1) and (2) are examples of blending constraints
because they specify the proportion of grade 6 and grade 9
oranges that must be blended to manufacture orange juice
x9J x6B x9B 100,000
In the absence of advertising, 50 units of product 1 and
60 units of product 2 will be demanded each week. Advertising can be used to stimulate demand for each product.
Each dollar spent on advertising product 1 increases its demand by 10 units, and each dollar spent for product 2 increases its demand by 15 units. At most $100 can be spent
on advertising. Define
P1 number of units of product 1 produced each week
P2 number of units of product 2 produced each week
OT number of hours of overtime labor used each week
258
CHAPTER
5 Sensitivity Analysis: An Applied Approach
and bags of oranges. It would be useful to determine how a
slight change in the standards for orange juice and bags of
oranges would affect profit. At the end of this problem, we
explain how to use the shadow prices of Constraints (1) and
(2) to answer the following questions:
a Suppose that the average grade for orange juice is
increased to 8.1. Assuming the current basis remains optimal, by how much would profits change?
b Suppose the average grade requirements for bags of
oranges is decreased to 6.9. Assuming the current basis
remains optimal, by how much would profits change?
The shadow price for both (1) and (2) is 0.15. The optimal solution to the O.J. problem is x6J 26,666.67, x9J 53,333.33, x6B 93,333.33, x9B 46,666.67. To interpret
the shadow prices of blending constraints (1) and (2), we assume that a slight change in the quality standard for a product will not significantly change the quantity of the product
that is produced.
Now note that (1) may be written as
6x6J 9x9J 8(x6J x9J)
or
2x6J x9J 0
If the quality standard for orange juice is changed to 8 ,
then (1) can be written as
6x6J 9x9J (8 )(x6J x9J)
or
2x6J x9J (x6J x9J)
Because we are assuming that changing orange juice quality from 8 to 8 does not change the amount of orange
juice produced, x6J x9J will remain equal to 80,000, and
(1) will become
2x6J x9J 80,000
Using the definition of shadow price, answer parts (a) and (b).
10 Use LINDO to solve the Sailco problem of Section
3.10, then use the output to answer the following questions:
a If month 1 demand decreased to 35 sailboats, what
would be the total cost of satisfying the demands during
the next four months?
b If the cost of producing a sailboat with regular-time
labor during month 1 were $420, what would be the new
optimal solution to the Sailco problem?
c Suppose a new customer is willing to pay $425 for
a sailboat. If his demand must be met during month 1,
should Sailco fill the order? How about if his demand
must be met during month 4?
11 Autoco has three assembly plants located in various
parts of the country. The first plant (built in 1937 and located
in Norwood, Ohio) requires 2 hours of labor and 1 hour of
machine time to assemble one automobile. The second plant
(built in 1958 and located in Bakersfield, California) requires
1.5 hours of labor and 1.5 hours of machine time to assemble
one automobile. The third plant (built in 1981 and located
in Kingsport, Tennessee) requires 1.1 hours of labor and 2.5
hours of machine time to assemble one automobile.
The firm pays $30 per hour of labor and $10 per hour of
machine time at each of its plants. The first plant has a capacity of 1,000 hours of machine time per day; the second,
900 hours; and the third, 2,000 hours. The manufacturer’s
production target is 1,800 automobiles per day.
The production department sets each plant’s schedule by
solving a linear programming problem designed to identify
the cost-minimizing pattern of assembly across the three
plants.
a Use LINDO to determine the cost-minimizing
method of meeting Autoco’s daily production target.
b The UWA local in Norwood, Ohio, has proposed
wage concessions at that plant to raise employment.
What is the smallest decrease in the wage rate at that
plant that would increase employment there?
c What is the cost of assembling an extra automobile
given the current output level of 1,800 automobiles?
Would your answer be different if the production target
were only 1,000 automobiles? Why or why not?
d A team of production specialists has indicated that
the auto manufacturer can achieve efficiencies at its
Bakersfield plant by reconfiguring the assembly line.
The reconfiguration has the effect of increasing the productivity of the labor at this plant from 1.5 hours to
1 hour per automobile. By how much will the firm’s
costs fall as a result of this change, assuming that it continues to produce 1,800 automobiles?
e If 2,000 autos must be produced, by how much would
costs increase?
f If labor costs $32 per hour in Bakersfield, California,
what would be the new solution to the problem?
12 Machinco produces four products, requiring time on
two machines and two types (skilled and unskilled) of labor.
The amount of machine time and labor (in hours) used by
each product and the sales prices are given in Table 13.
Each month, 700 hours are available on machine 1 and 500
hours on machine 2. Each month, Machinco can purchase
up to 600 hours of skilled labor at $8 per hour and up to
650 hours of unskilled labor at $6 per hour. Formulate an
LP that will enable Machinco to maximize its monthly
profit. Solve this LP and use the output to answer the
following questions:
a By how much does the price of product 3 have to increase before it becomes optimal to produce it?
b If product 1 sold for $290, then what would be the
new optimal solution to the problem?
c What is the most Machinco would be willing to pay
for an extra hour of time on each machine?
d What is the most Machinco would be willing to pay
for an extra hour of each type of labor?
e If up to 700 hours of skilled labor could be purchased each month, then what would be Machinco’s
monthly profits?
13 A company produces tools at two plants and sells them
to three customers. The cost of producing 1,000 tools at a
TA B L E
Product
1
2
3
4
13
Machine 1
Machine 2
Skilled
Unskilled
Sales ($)
11
7
6
5
4
6
5
4
8
5
4
6
7
8
7
4
300
260
220
180
5 . 4 Review Problems
259
plant and shipping them to a customer is given in Table 14.
Customers 1 and 3 pay $200 per thousand tools; customer
2 pays $150 per thousand tools. To produce 1,000 tools at
plant 1, 200 hours of labor are needed, while 300 hours are
needed at plant 2. A total of 5,500 hours of labor are available
for use at the two plants. Additional labor hours can be
purchased at $20 per labor hour. Plant 1 can produce up to
10,000 tools and plant 2, up to 12,000 tools. Demand by
each customer is assumed unlimited. If we let Xij tools
(in thousands) produced at plant i and shipped to customer
j then the company should solve the LP on the LINDO
printout in Figure 23. Use this printout to answer the
following questions:
a If it costs $70 to produce 1,000 tools at plant 1 and
ship them to customer 1, what would be the new solution to the problem?
b If the price of an additional hour of labor were reduced to $4, would the company purchase any additional labor?
c A consultant offers to increase plant 1’s production
capacity by 5,000 tools for a cost of $400. Should the
company take her offer?
d If the company were given 5 extra hours of labor,
what would its profit become?
14 Solve Review Problem 24 of Chapter 3 on LINDO and
answer the following questions:
a For which type of DRGs should the hospital seek to
increase demand?
b What resources are in excess supply? Which resources should the hospital expand?
c What is the most the hospital should be willing to
pay additional nurses?
15 Old Macdonald’s 200-acre farm sells wheat, alfalfa,
and beef. Wheat sells for $30 per bushel, alfalfa sells for
$200 per bushel, and beef sells for $300 per ton. Up to
1,000 bushels of wheat and up to 1,000 bushels of alfalfa
can be sold, but demand for beef is unlimited. If an acre of
land is devoted to raising wheat, alfalfa, or beef, the yield
and the required labor are given in Table 15. As many as
2,000 hours of labor can be purchased at $15 per hour. Each
acre devoted to beef requires 5 bushels of alfalfa. The
LINDO output in Figure 24 shows how to maximize profit,
use it to answer the following questions. The variables are
as follows:
W acres devoted to wheat
AS bushels of alfalfa sold
A acres devoted to alfalfa
B acres devoted to beef
TA B L E
14
Customer ($)
Plant
1
2
260
1
2
3
160
130
30
70
160
170
CHAPTER
FIGURE
23
LINDO Output for Problem 13
MAX
140 X11 + 120 X12 + 40 X13
+ 70 X21 + 80 X22 + 30
SUBJECT TO
2) X11 + X12 + X13
<=
3) X21 + X22 + X23
<=
4) 200 X11 + 200 X12 + 200 X13
+ 300 X22 + 300 X23
END
X23 - 20 L
10
12
+ 300 X21
- L <= 5500
LP OPTIMUM FOUND AT STEP
2
OBJECTIVE FUNCTION VALUE
1)
VARIABLE
X11
X12
X13
X21
X22
X23
L
ROW
2)
3)
4)
2333.3330
VALUE
10.000000
.000000
.000000
.000000
11.666670
.000000
.000000
REDUCED COST
.000000
20.000000
100.000000
10.000000
.000000
50.000000
19.733330
SLACK OR SURPLUS
.000000
.333333
.000000
DUAL PRICES
86.666660
.000000
.266667
NO. ITERATIONS=
2
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X11
X12
X13
X21
X22
X23
L
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
140.000000
INFINITY
20.000000
120.000000
20.000000
INFINITY
40.000000
100.000000
INFINITY
70.000000
10.000000
INFINITY
80.000000
130.000000
10.000000
30.000000
50.000000
INFINITY
-20.000000
19.733330
INFINITY
RIGHTHAND SIDE RANGES
CURRENT
ALLOWABLE
ALLOWABLE
RHS
INCREASE
DECREASE
2
10.000000
17.500000
.500000
3
12.000000
INFINITY
.333333
4 5500.000000
100.000000
3500.000000
ROW
TA B L E
Crop
Wheat
Alfalfa
Beef
15
Yield/Acre
Labor/Acre (Hours)
50 bushels
100 bushels
10 tons
30
20
50
AB bushels of alfalfa devoted to beef
L hours of labor purchased
a How much must the price of a bushel of wheat increase before it becomes profitable to grow wheat?
b What is the most Old Macdonald should pay for another hour of labor?
5 Sensitivity Analysis: An Applied Approach
FIGURE
24
LINDO Output for Old Macdonald
MAX
1500 W + 200 AS + 3000 B - 15 L
SUBJECT TO
2)
50 W
<=
1000
3)
AS
<=
1000
4)
AS + AB - 100 A =
0
5)
- 5 B + AB =
0
6)
W + B + A <= 200
7)
L <= 2000
8)
30 W + 50 B - L + 20 A <= 0
END
LP OPTIMUM FOUND AT STEP
1
OBJECTIVE FUNCTION VALUE
1)
VARIABLE
W
AS
B
L
AB
A
ROW
2)
3)
4)
5)
6)
7)
8)
275882.300
VALUE
.000000
1000.000000
35.294120
2000.000000
176.470600
11.764710
SLACK OR SURPLUS
1000.000000
.000000
.000000
.000000
152.941200
.000000
.000000
NO. ITERATIONS=
REDUCED COST
264.705800
.000000
.000000
.000000
.000000
.000000
DUAL PRICES
.000000
188.235300
11.764710
-11.764710
.000000
43.823530
58.823530
1
Each product must be processed through two assembly
lines: 1 and 2. The number of hours required by each product on each assembly line are given in Table 17.
The number of hours available on each assembly line
during each month are given in Table 18.
Each unit of PS requires 4 pounds of raw material; each
unit of QT requires 3 pounds. As many as 710 units of raw
material can be purchased at $3 per pound. At the beginning
of month 1, 10 units of PS and 5 units of QT are available.
It costs $10 to hold a unit of either product in inventory for
a month. Solve this LP on LINDO and use your output to
answer the following questions:
a Find the new optimal solution if it costs $11 to hold
a unit of PS in inventory at the end of month 1.
b Find the company’s new optimal solution if 210
hours on line 1 are available during month 1.
c Find the company’s new profit level if 109 hours are
available on line 2 during month 3.
d What is the most Cornco should be willing to pay
for an extra hour of line 1 time during month 2?
e What is the most Cornco should be willing to pay
for an extra pound of raw material?
f What is the most Cornco should be willing to pay for
an extra hour of line 1 time during month 3?
g Find the new optimal solution if PS sells for $50
during month 2.
h Find the new optimal solution if QT sells for $50
during month 3.
i Suppose spending $20 on advertising would increase
demand for QT in month 2 by 5 units. Should the advertising be done?
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
W
AS
B
L
AB
A
ROW
2
3
4
5
6
7
8
OBJ COEFFICIENT RANGES
CURRENT
ALLOWABLE
ALLOWABLE
COEF
INCREASE
DECREASE
1500.000000
264.705800
INFINITY
200.000000
INFINITY
188.235300
3000.000000 48000.000000
449.999800
-15.000000
INFINITY
43.823530
.000000 9599.999000
89.999980
.000000
INFINITY
8999.998000
CURRENT
RHS
1000.000000
1000.000000
.000000
.000000
200.000000
2000.000000
.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
INFINITY
1000.000000
8999.999000
1000.000000
1200.000000
8999.999000
8999.999000
180.000000
INFINITY
152.941200
7428.571000
1800.000000
7428.571000
1800.000000
c What is the most Old Macdonald should pay for another bushel of alfalfa?
d What would be the new optimal solution if alfalfa
sold for $20 for bushel?
16 Cornco produces two products: PS and QT. The sales
price for each product and the maximum quantity of each
that can be sold during each of the next three months are
given in Table 16.
TA B L E
16
Month 1
Product
Month 2
Month 3
Price ($)
Demand
Price ($)
Demand
40
35
50
43
60
40
45
50
PS
QT
TA B L E
Price ($) Demand
55
44
50
40
17
Hours
Product
Line 1
Line 2
3
2
2
2
PS
QT
TA B L E
18
Month
Line
1
2
1
2
3
1,200
2,140
160
150
190
110
5 . 4 Review Problems
261
6
Sensitivity Analysis and Duality
Two of the most important topics in linear programming are sensitivity analysis and duality. After studying these important topics, the reader will have an appreciation of the beauty and
logic of linear programming and be ready to study advanced linear programming topics such
as those discussed in Chapter 10.
In Section 6.1, we illustrate the concept of sensitivity analysis through a graphical example.
In Section 6.2, we use our knowledge of matrices to develop some important formulas, which
are used in Sections 6.3 and 6.4 to develop the mechanics of sensitivity analysis. The remainder of the chapter presents the important concept of duality. Duality provides many insights into the nature of linear programming, gives us the useful concept of shadow prices,
and helps us understand sensitivity analysis. It is a necessary basis for students planning to
take advanced topics in linear and nonlinear programming.
6.1
A Graphical Introduction to Sensitivity Analysis
Sensitivity analysis is concerned with how changes in an LP’s parameters affect the LP’s
optimal solution.
Reconsider the Giapetto problem of Section 3.1:
s.t.
max z 3x1 2x2
s.t.
2x1 x2 100
s.t.
2x1 x2 800
s.t.
x1 x2 400
2 x1, x2 0
(Finishing constraint)
(Carpentry constraint)
(Demand constraint)
where
x1 number of soldiers produced per week
x2 number of trains produced per week
The optimal solution to this problem is z 180, x1 20, x2 60 (point B in Figure 1),
and it has x1, x2, and s3 (the slack variable for the demand constraint) as basic variables.
How would changes in the problem’s objective function coefficients or right-hand sides
change this optimal solution?
Graphical Analysis of the Effect of a Change
in an Objective Function Coefficient
If the contribution to profit of a soldier were to increase sufficiently, then it would be optimal for Giapetto to produce more soldiers (s3 would become nonbasic). Similarly, if the
x2
100
Finishing constraint
Slope = –2
80
60
A
Isoprofit line z = 120
Slope = – 3
2
D
40
FIGURE
1
Analysis of Range of
Values for Which c1
Remains Optimal in
Giapetto Problem
Demand constraint
B
Carpentry constraint
Slope = –1
C
20
20
40
60
80
x1
contribution to profit of a soldier were to decrease sufficiently, it would be optimal for Giapetto to produce only trains (x1 would now be nonbasic). We now show how to determine the values of the contribution to profit for soldiers for which the current optimal basis will remain optimal.
Let c1 be the contribution to profit by each soldier. For what values of c1 does the current basis remain optimal?
At present, c1 3, and each isoprofit line has the form 3x1 2x2 constant, or
constant
3
, and each isoprofit line has a slope of . From Figure 1, we see that
x2 32x 2
2
if a change in c1 causes the isoprofit lines to be flatter than the carpentry constraint, then
the optimal solution will change from the current optimal solution (point B) to a new optimal solution (point A). If the profit for each soldier is c1, then the slope of each isoprofit
line will be c21 . Because the slope of the carpentry constraint is 1, the isoprofit lines
will be flatter than the carpentry constraint if c21 1, or c1 2, and the current basis
will no longer be optimal. The new optimal solution will be (0, 80), point A in Figure 1.
If the isoprofit lines are steeper than the finishing constraint, then the optimal solution
will change from point B to point C. The slope of the finishing constraint is 2. If
2, or c1 4, then the current basis is no longer optimal, and point C (40, 20)
c21
will be optimal. In summary, we have shown that (if all other parameters remain unchanged) the current basis remains optimal for 2 c1 4, and Giapetto should still manufacture 20 soldiers and 60 trains. Of course, even if 2 c1 4, Giapetto’s profit will
change. For instance, if c1 4, Giapetto’s profit will now be 4(20) 2(60) $200 instead of $180.
Graphical Analysis of the Effect of a Change in a Right-Hand
Side on the LP’s Optimal Solution
A graphical analysis can also be used to determine whether a change in the right-hand
side of a constraint will make the current basis no longer optimal. Let b1 be the number
of available finishing hours. Currently, b1 100. For what values of b1 does the current
6 . 1 A Graphical Introduction to Sensitivity Analysis
263
basis remain optimal? From Figure 2, we see that a change in b1 shifts the finishing constraint parallel to its current position. The current optimal solution (point B in Figure 2)
is where the carpentry and finishing constraints are binding. If we change the value of b1,
then as long as the point where the finishing and carpentry constraints are binding remains feasible, the optimal solution will still occur where these constraints intersect. From
Figure 2, we see that if b1 120, then the point where the finishing and carpentry constraints are both binding will lie on the portion of the carpentry constraint below point D.
Note that at point D, 2(40) 40 120 finishing hours are used. In this region, x1 40,
and the demand constraint for soldiers is not satisfied. Thus, for b1 120, the current basis will no longer be optimal. Similarly, if b1 80, the carpentry and finishing constraints
will be binding at an infeasible point having x1 0, and the current basis will no longer
be optimal. Note that at point A, 0 80 80 finishing hours are used. Thus (if all other
parameters remain unchanged), the current basis remains optimal if 80 b1 120.
Note that although for 80 b1 120, the current basis remains optimal, the values
of the decision variables and the objective function value change. For example, if 80 b1 100, the optimal solution will change from point B to some other point on the line
segment AB. Similarly, if 100 b1 120, then the optimal solution will change from
point B to some other point on the line BD.
As long as the current basis remains optimal, it is a routine matter to determine how
a change in the right-hand side of a constraint changes the values of the decision variables. To illustrate the idea, let b1 number of available finishing hours. If we change b1
to 100 , we know that the current basis remains optimal for 20 20. Note
that as b1 changes (as long as 20 20), the optimal solution to the LP is still the
point where the finishing-hour and carpentry-hour constraints are binding. Thus, if b1 100 , we can find the new values of the decision variables by solving
2x1 x2 100 and
x1 x2 80
x2
100
Finishing constraint b1 = 120
Finishing constraint b1 = 100
80
A
Isoprofit line z = 120
Demand constraint
60
B
Finishing constraint b1 = 80
D
40
FIGURE
2
Range of Values of
Finishing Hours for
Which Current Basis
Remains Optimal in
Giapetto Problem
264
Carpentry constraint
C
20
20
CHAPTER
40
60
6 Sensitivity Analysis and Duality
80
x1
This yields x1 20 and x2 60 . Thus, an increase in the number of available
finishing hours results in an increase in the number of soldiers produced and a decrease
in the number of trains produced.
If b2 (the number of available carpentry hours) equals 80 , it can be shown (see
Problem 2) that the current basis remains optimal for 20 20. If we change the
value of b2 (keeping 20 20), then the optimal solution to the LP is still the point
where the finishing and carpentry constraints are binding. Thus, if b2 80 , the optimal solution to the LP is the solution to
2x1 x2 100
and
x1 x2 80 This yields x1 20 and x2 60 2 , which shows that an increase in the amount
of available carpentry hours decreases the number of soldiers produced and increases the
number of trains produced.
Suppose b3, the demand for soldiers, is changed to 40 . Then it can be shown (see
Problem 3) that the current basis remains optimal for 20. For in this range, the
optimal solution to the LP will still occur where the finishing and carpentry constraints
are binding. Thus, the optimal solution will be the solution to
2x1 x2 100
and
x1 x2 80
Of course, this yields x1 20 and x2 60, which illustrates an important point. In a constraint with positive slack (or positive excess) in an LP’s optimal solution, if we change
the right-hand side of the constraint to a value in the range where the current basis remains optimal, the optimal solution to the LP is unchanged.
Shadow Prices
As we will see in Section 6.8, it is often important for managers to determine how a change
in a constraint’s right-hand side changes the LP’s optimal z-value. With this in mind, we define the shadow price for the ith constraint of an LP to be the amount by which the optimal
z-value is improved (improvement means increase in a max problem and decrease in a min
problem) if the right-hand side of the ith constraint is increased by 1. This definition applies
only if the change in the right-hand side of Constraint i leaves the current basis optimal.
For any two-variable LP, it is a simple matter to determine each constraint’s shadow
price. For example, we know that if 100 finishing hours are available (assuming that
the current basis remains optimal), then the LP’s optimal solution is x1 20 and
x2 60 . Then the optimal z-value will equal 3x1 2x2 3(20 ) 2(60 ) 180 . Thus, as long as the current basis remains optimal, a unit increase in the number of available finishing hours will increase the optimal z-value by $1. So the shadow
price of the first (finishing hour) constraint is $1.
For the second (carpentry hour) constraint, we know that if 80 carpentry hours
are available (and the current basis remains optimal), then the optimal solution to the
LP is x1 20 and x2 60 2 . Then the new optimal z-value is 3x1 2x2 3(20 ) 2(60 2 ) 180 . Thus, a unit increase in the number of carpentry
hours will increase the optimal z-value by $1 (as long as the current basis remains optimal). So the shadow price of the second (carpentry hour) constraint is $1.
We now find the shadow price of the third (demand) constraint. If the right-hand side
is 40 , then the optimal values of the decision variables remain unchanged, as long
as the current basis remains optimal. Then the optimal z-value will also remain unchanged, which shows that the shadow price of the third (demand) constraint is $0. It turns
out that whenever the slack variable or excess variable for a constraint is positive in an
LP’s optimal solution, the constraint will have a zero shadow price.
6 . 1 A Graphical Introduction to Sensitivity Analysis
265
Suppose we increase the right-hand side of the ith constraint of an LP by bi( bi 0
means that we are decreasing the right-hand side) and the current basis remains optimal.
Then each unit by which Constraint i’s right-hand side is increased will increase the optimal z-value (for a max problem) by the shadow price. Thus, the new optimal z-value is
given by
(New optimal z-value) (old optimal z-value) (Constraint i’s shadow price) bi
For a minimization problem,
(New optimal z-value) (old optimal z-value) (Constraint i’s shadow price) bi
For example, if 95 carpentry hours are available, then b2 15, and the new z-value is
given by
New optimal z-value 180 15(1) $195
We will continue our discussion of shadow prices in Section 6.8.
Importance of Sensitivity Analysis
Sensitivity analysis is important for several reasons. In many applications, the values of
an LP’s parameters may change. For example, the prices at which soldiers and trains are
sold may change, as may the availability of carpentry and finishing hours. If a parameter
changes, sensitivity analysis often makes it unnecessary to solve the problem again. For
example, if the profit contribution of a soldier increased to $3.50, we would not have to
solve the Giapetto problem again because the current solution remains optimal. Of course,
solving the Giapetto problem again would not be much work, but solving an LP with
thousands of variables and constraints again would be a chore. A knowledge of sensitivity analysis often enables the analyst to determine from the original solution how changes
in an LP’s parameters change the optimal solution.
Recall that we may be uncertain about the values of parameters in an LP, for example,
the weekly demand for soldiers. With the graphical method, it can be shown that if the
weekly demand for soldiers is at least 20, then the optimal solution to the Giapetto problem is still (20, 60) (see Problem 3 at the end of this section). Thus, even if Giapetto is
uncertain about the demand for soldiers, the company can still be fairly confident that it
is optimal to produce 20 soldiers and 60 trains.
Of course, the graphical approach is not useful for sensitivity analysis on an LP with
more than two variables. Before learning how to perform sensitivity analysis on an arbitrary LP, we need to use our knowledge of matrices to express simplex tableaus in matrix
form. This is the subject of Section 6.2.
PROBLEMS
Group A
1 Show that if the contribution to profit for trains is
between $1.50 and $3, the current basis remains optimal. If
the contribution to profit for trains is $2.50, what would be
the new optimal solution?
2 Show that if available carpentry hours remain between
60 and 100, the current basis remains optimal. If between
60 and 100 carpentry hours are available, then would
Giapetto still produce 20 soldiers and 60 trains?
266
CHAPTER
6 Sensitivity Analysis and Duality
3 Show that if the weekly demand for soldiers is at least
20, the current basis remains optimal, and Giapetto should
still produce 20 soldiers and 60 trains.
4
For the Dorian Auto problem (Example 2 in Chapter 3),
a Find the range of values of the cost of a comedy ad
for which the current basis remains optimal.
b Find the range of values of the cost of a football ad
for which the current basis remains optimal.
c Find the range of values of required HIW exposures
for which the current basis remains optimal. Determine
the new optimal solution if 28 million HIW exposures are required.
d Find the range of values of required HIM exposures
for which the current basis remains optimal. Determine
the new optimal solution if 24 million HIM exposures are required.
e Find the shadow price of each constraint.
f If 26 million HIW exposures are required, determine
the new optimal z-value.
TA B L E
Radio 1
25
Radio 2
Resource
Required
Price ($)
5 Radioco manufactures two types of radios. The only
scarce resource needed to produce radios is labor. The
company now has two laborers. Laborer 1 is willing to work
as many as 40 hours per week and is paid $5 per hour.
Laborer 2 is willing to work up to 50 hours per week and is
paid $6 per hour. The price as well as the resources required
to build each type of radio are given in Table 1.
Letting xi be the number of type i radios produced each
week, show that Radioco should solve the following LP:
max z 3x1 2x2
s.t.
2x1 2x2 40
s.t.
2x1 2x2 50
s.t.
2
2x1, x2 0
6.2
1
Price ($)
Laborer 1:
1 hour
Laborer 2:
2 hours
Raw material
cost: $5
22
Resource
Required
Laborer 1:
2 hours
Laborer 2:
2 hours
Raw material
cost: $4
a For what values of the price of a Type 1 radio would
the current basis remain optimal?
b For what values of the price of a Type 2 radio would
the current basis remain optimal?
c If laborer 1 were willing to work only 30 hours per
week, would the current basis remain optimal? Find the
new optimal solution to the LP.
d If laborer 2 were willing to work up to 60 hours per
week, would the current basis remain optimal? Find the
new optimal solution to the LP.
e Find the shadow price of each constraint.
Some Important Formulas
In this section, we use our knowledge of matrices to show how an LP’s optimal tableau
can be expressed in terms of the LP’s parameters. The formulas developed in this section
are used in our study of sensitivity analysis, duality, and advanced LP topics.
Assume that we are solving a max problem that has been prepared for solution by the Big
M method and that at this point, the LP has m constraints and n variables. Although some of
these variables may be slack, excess, or artificial, we choose to label them x1, x2, . . . , xn.
Then the LP may be written as
max z c1x1 c2x2 s.t.
a11x1 a12x2 s.t.
a21x1 a22x2 aaa22 xxx11 aa22 xx22 2 1 a2 x2 s.t.
am1x1 am2x2 xi 0
cnxn
a1nxn b1
a2nxn b2
a2
aa22
amnxn bm
(1)
(i 1, 2, . . . , n)
Throughout this chapter, we use the Dakota Furniture problem of Section 4.5 (without the
x2 5 constraint) as an example. For the Dakota problem, the analog of LP (1) is
max z
s.t.
s.t.
s.t.
s.t.
60x1 30x2 20x3 0s1 0s2 0s3
8x1 1.6x2 1.5x3 s1 s2 s3 48
4x1 1.2x2 1.5x3 s1 s2 s3 20
2x1 1.5x2 0.5x3 s1 s2 s3 8
2 1.5 0.5 x1, x2, x3, s1, s2, s3 0
6 . 2 Some Important Formulas
(1 )
267
Suppose we have found the optimal solution to (1). Let BVi be the basic variable for row
i of the optimal tableau. Also define BV {BV1, BV2, . . . , BVm} to be the set of basic
variables in the optimal tableau, and define the m 1 vector
xBV1
xBV2
xBV xBVm
We also define
NBV the set of nonbasic variables in the optimal tableau
xNBV (n m) 1 vector listing the nonbasic variables (in any desired order)
To illustrate these definitions, we recall that the optimal tableau for the Dakota problem is
zx1
zx1
zx1
zx1
1.25x2
1.22x2
1.22x2
1.25x2
x3
x3
x3
x3
s1
s1
s1
s1
.10s2
0.2s2
0.2s2
0.5s2
.10s3
1.8s3
1.4s3
1.5s3
280
24
8
2
(2)
For this optimal tableau, BV1 s1, BV2 x3, and BV3 x1. Then
s1
xBV x3
x1
We may choose NBV {x2, s2, s3}. Then
x2
xNBV s2
s3
Using our knowledge of matrix algebra, we can express the optimal tableau in terms of
BV and the original LP (1). Recall that c1, c2, . . . , cn are the objective function coefficients
for the variables x1, x2, . . . , xn (some of these may be slack, excess, or artificial variables).
DEFINITION ■
cBV is the 1
m row vector [cBV1
cBV2
cBVm].
■
Thus, the elements of cBV are the objective function coefficients for the optimal
tableau’s basic variables. For the Dakota problem, BV {s1, x3, x1}. Then from (1 ) we
find that cBV [0 20 60].
DEFINITION ■
cNBV is the 1 (n m) row vector whose elements are the coefficients of the
nonbasic variables (in the order of NBV). ■
If we choose to list the nonbasic variables for the Dakota problem in the order NBV {x2, s2, s3}, then cNBV [30 0 0].
DEFINITION ■
The m
(1). ■
m matrix B is the matrix whose jth column is the column for BVj in
For the Dakota problem, the first column of B is the s1 column in (1 ); the second, the
x3 column; and the third, the x1 column. Thus,
268
CHAPTER
6 Sensitivity Analysis and Duality
1
B 0
0
DEFINITION ■
1.0
1.5
0.5
8
4
2
aj is the column (in the constraints) for the variable xj in (1).
■
For example, in the Dakota problem,
6.0
a2 2.0
1.5
DEFINITION ■
1
a (for s1) 0
0
and
N is the m (n m) matrix whose columns are the columns for the nonbasic
variables (in the NBV order) in (1). ■
If for the Dakota problem, we write NBV {x2, s2, s3}, then
6.0
N 2.0
1.5
DEFINITION ■
The m
0
1
0
0
0
1
1 column vector b is the right-hand side of the constraints in (1).
■
For the Dakota problem,
48
b 20
28
We write bi for the right-hand side of the ith constraint in the original Dakota problem:
b2 20.
We can now use matrix algebra to determine how an LP’s optimal tableau (with set of
basic variables BV) is related to the original LP in the form (1).
Expressing the Constraints in Any Tableau
in Terms of B1 and the Original LP
We begin by observing that (1) may be written as
z cBVxBV cNBVxNBV
s.t.
BxBV NxNBV b
xBV, xNBV 0
(3)
Using the format of (3), the Dakota problem can be written as
max z [0
s.t.
1
0
0
20
1.0
1.5
0.5
s1
60] x3 [30
x1
8
4
2
s1
6.5
x3 2.5
x1
1.5
0
0
1
0
x2
0] s2
s3
0
0
1
x2
48
s2 20
s3
28
6 . 2 Some Important Formulas
269
s1
0
x3 0 ,
x1
0
x2
0
s2 0
s3
0
Multiplying the constraints in (3) through by B1, we obtain
B1BxBV B1NxNBV B1b
xBV B1NxNBV B1b
or
(4)
In (4), BVi occurs with a coefficient of 1 in the ith constraint and a zero coefficient in
each other constraint. Thus, BV is the set of the basic variables for (4), and (4) yields the
constraints for the optimal tableau.
For the Dakota problem, the Gauss–Jordan method can be used to show that
1
B1 0
0
8.5
4.5
1.5
2.5
2.5
0.5
Then (4) yields
s1
1
x3 0
x1
0
2.5
2.5
0.5
8.5
4.5
1.5
6.5
2.5
1.5
0
1
0
0
0
1
x2
1
s2 0
s3
0
2.5
2.5
0.5
8.5
4.5
1.5
48
20
8
or
s1
2.00
2.0
x3 2.50
2.0
x1
1.25 0.5
8.0
4.0
1.5
x2
24
8
2
s2
s3
(4 )
Of course, these are the constraints for the Dakota optimal tableau, (2).
From (4), we see that the column of a nonbasic variable xj in the constraints of the optimal
tableau is given by B1 [column for xj in (1)] B1aj. For example, the x2 column is B1
(first column of N) B1a2. From (4), we also find that the right-hand side of the constraints
is the vector B1b. The following two equations summarize the preceding discussion:
Column for xj in optimal tableau’s constraints B1aj
Right-hand side of optimal tableau’s constraints B1b
To illustrate (5), we find:
Column for x2
B1a2
in Dakota optimal tableau
in Dakota optimal tableau
1
2.0
0
2.0
0 0.5
8.0
4.0
1.5
6.0
2.00
2.0 2.00
1.5
1.25
To illustrate (6), we compute:
Right-hand side of constraints
B1b
in Dakota optimal tableau
Right-hand side of constraints
270
CHAPTER
6 Sensitivity Analysis and Duality
1
2.0
0
2.0
0 0.5
8.0
4.0
1.5
48
24
20 8
8
2
(5)
(6)
Determining the Optimal Tableau’s Row 0
in Terms of the Initial LP
We now show how to express row 0 of the optimal tableau in terms of BV and the original LP (1). To begin, we multiply the constraints (expressed in the form BxBV NxNBV
b) through by the vector cBVB1:
cBVxBV cBVB1NxNBV cBVB1b
(7)
and rewrite the original objective function, z cBVxBV cNBVxNBV, as
z cBVxBV cNBVxNBV 0
(8)
By adding (7) to (8), we can eliminate the optimal tableau’s basic variables and obtain its
row 0:
z (cBVB1N cNBV)xNBV cBVB1b
(9)
From (9), the coefficient of xj in row 0 is
cBVB1 (column of N for xj) (coefficient for xj in cNBV) cBVB1aj cj
and the right-hand side of row 0 is cBVB1b.
To help summarize the preceding discussion, we let cj be the coefficient of xj in the
optimal tableau’s row 0. Then we have shown that
cj cBVB1aj cj
(10)
Right-hand side of optimal tableau’s row 0 cBVB1b
(11)
and
To illustrate the use of (10) and (11), we determine row 0 of the Dakota problem’s optimal
tableau. Recall that
cBV [0
20
60]
and
1
B
1
0
0
2.0
2.0
0.5
8.0
4.0
1.5
Then cBVB1 [0 10 10], and from (10) we find that the coefficients of the nonbasic variables in row 0 of the optimal tableau are
1
c2 cBVB a2 c2 [0
10
6.0
10] 2.0 30 20 15 30 5
1.5
and
1
Coefficient of s2 in optimal row 0 cBVB
1
Coefficient of s3 in optimal row 0 cBVB
0
1 0 10
0
0
0 0 10
1
Of course, the optimal tableau’s basic variables (x1, x3, and s1) will have zero coefficients
in row 0.
6 . 2 Some Important Formulas
271
From (11), the right-hand side of row 0 is
cBVB1b [0
10
48
10] 20 280
8
Putting it all together, we see that row 0 is
z 5x2 10s2 10s3 280
Of course, this result agrees with (2).
Simplifying Formula (10) for Slack, Excess,
and Artificial Variables
Formula (10) can be greatly simplified if xj is a slack, excess, or artificial variable. For example, if xj is the slack variable si, the coefficient of si in the objective function is 0, and the
column for si in the original tableau has 1 in row i and 0 in all other rows. Then (10) yields
Coefficient of si in optimal row 0 ith element of cBVB1 0
Coefficient of si in optimal row 0 ith element of cBVB1
(10 )
Similarly, if xj is the excess variable ei, then the coefficient of ei in the objective function is 0 and the column for ei in the original tableau has 1 in row i and 0 in all other
rows. Then (10) reduces to
Coefficient of ei in optimal row 0 (ith element of cBVB1) 0
Coefficient of ei in optimal row 0 (ith element of cBVB1)
(10)
Finally, if xj is an artificial variable ai, then the objective function coefficient of ai (for
a max problem) is M and the original column for ai has 1 in row i and 0 in all other
rows. Then (10) reduces to
Coefficient of ai in optimal row 0 (ith element of cBVB1) (M)
Coefficient of ai in optimal row 0 (ith element of cBVB1) (M)
(10)
The derivations of this section have not been easy. Fortunately, use of (5), (6), (10), and
(11) does not require a complete understanding of the derivations. A summary of the formulas derived in this section for computing an optimal tableau from the initial LP follows.
Summary of Formulas for Computing
the Optimal Tableau from the Initial LP
xj column in optimal tableau’s constraints B1aj
Right-hand side of optimal tableau’s constraints B1b
cj cBVB1aj cj
Coefficient of slack variable si in optimal row 0
ith element of cBVB1
Coefficient of excess variable ei in optimal row 0
(ith element of cBVB1)
Coefficient of artificial variable ai in optimal row 0
(ith element of cBVB1) M (max problem)
Right-hand side of optimal row 0 cBVB1b
272
CHAPTER
6 Sensitivity Analysis and Duality
(5)
(6)
(10)
(10 )
(10)
(10)
(11)
We must first find B1 because it is necessary in order to compute all parts of the optimal tableau. Similarly, we must find cBVB1 to compute the optimal tableau’s row 0.
The following example is another illustration of the use of the preceding formulas.
EXAMPLE
1
Computing Optimal Tableau
For the following LP, the optimal basis is BV {x2, s2}. Compute the optimal tableau.
max z x1 4x2
s.t.
x1 2x2 6
s.t.
2x1 x2 8
.
x1, x2 0
Solution
After adding slack variables s1 and s2, we obtain the analog of (1):
max z x1 4x2
s.t.
x1 2x2 s1 s2 6
s.t.
2x1 x2 s1 s2 8
First we compute B1. Because
1 1
2
B
0
we find B1 by applying the Gauss–Jordan method to the following matrix:
1 1 0 1
2
B|I2 0
1
0
The reader should verify that
B1 1
2
12
0
1
Use (5) and (6) to determine the optimal tableau’s constraints. Because
a1 2
1
the column for x1 in the optimal tableau is
B1a1 1
2
12
0
1
1
2
1
2
3
2
The other nonbasic variable is s1. The column for s1 in the original problem is
0
1
so (5) yields
Column for s1 in optimal tableau 1
2
12
0
1
1
0
1
2
12
Because
b
8
6
6 . 2 Some Important Formulas
273
(6) yields
Right-hand side of optimal tableau 1
2
12
0
1
6
3
8
5
Because BV is listed as {x2, s2}, x2 is the basic variable for row 1, and s2 is the basic variable for row 2. Thus, the constraints of the optimal tableau are
1
x1
2
3
x1
2
Because cBV [4
x2 12s1 s2 3
x2 12s1 s2 5
0],
cBVB1 [4
0]
1
2
12
0
[2
1
0]
Then (10) yields
Coefficient of x1 in row 0 of optimal tableau cBVB1a1 c1
Coefficient of x1 in row 0 of optimal tableau [2
0]
2 1 1
1
From (10 )
Coefficient of s1 in optimal tableau First element of cBVB1 2
Because
b
8
6
(11) shows that the right-hand side of the optimal tableau’s row 0 is
cBVB1b [2
0]
8 12
6
Of course, the basic variables x2 and s2 will have zero coefficients in row 0. Thus, the optimal tableau’s row 0 is z x1 2s1 12, and the complete optimal tableau is
z 12x1 x2 2s1 s2 12
z 12x1 x2 12s1 s2 3
z 32x1 x2 12s1 s2 5
We have used the formulas of this section to create an LP’s optimal tableau, but they
can also be used to create the tableau for any set of basic variables. This observation will
be important when we study the revised simplex method in Section 10.1.
PROBLEMS
Group A
1 For the following LP, x1 and x2 are basic variables in the
optimal tableau. Use the formulas of this section to
determine the optimal tableau.
274
CHAPTER
6 Sensitivity Analysis and Duality
max z 3x1 x2
s.t.
2x1 x2 2
s.t.
x1 x2 4
x1, x2 0
max z x1 x2
s.t.
2x1 x2 4
s.t.
x1 x2 2
s.t.
x1, x2 0
2 For the following LP, x2 and s1 are basic variables in the
optimal tableau. Use the formulas of this section to
determine the optimal tableau.
6.3
Sensitivity Analysis
We now explore how changes in an LP’s parameters (objective function coefficients, righthand sides, and technological coefficients) change the optimal solution. As described in
Section 6.1, the study of how an LP’s optimal solution depends on its parameters is called
sensitivity analysis. Our discussion focuses on maximization problems and relies heavily
on the formulas of Section 6.2. (The modifications for min problems are straightforward;
see Problem 8 at the end of this section.)
As in Section 6.2, we let BV be the set of basic variables in the optimal tableau. Given a
change (or changes) in an LP, we want to determine whether BV remains optimal. The mechanics of sensitivity analysis hinge on the following important observation. From Chapter 4,
we know that a simplex tableau (for a max problem) for a set of basic variables BV is optimal if and only if each constraint has a nonnegative right-hand side and each variable has a
nonnegative coefficient in row 0. This follows, because if each constraint has a nonnegative
right-hand side, then BV’s basic solution is feasible, and if each variable in row 0 has a nonnegative coefficient, then there can be no basic feasible solution with a higher z-value than BV.
Our observation implies that whether a tableau is feasible and optimal depends only on the
right-hand sides of the constraints and on the coefficients of each variable in row 0. For example, if an LP has variables x1, x2, . . . , x6, the following partial tableau would be optimal:
z
z
z
z
2x2
2x2
2x2
2x2
x4
x4
x4
x4
x6
x6
x6
x6
6
1
2
3
This tableau’s optimality is not affected by the parts of the tableau that are omitted.
Suppose we have solved an LP and have found that BV is an optimal basis. We can
use the following procedure to determine if any change in the LP will cause BV to be no
longer optimal.
Step 1 Using the formulas of Section 6.2, determine how changes in the LP’s parameters
change the right-hand side and row 0 of the optimal tableau (the tableau having BV as
the set of basic variables).
Step 2 If each variable in row 0 has a non-negative coefficient and each constraint has a
nonnegative right-hand side, then BV is still optimal. Otherwise, BV is no longer optimal.
If BV is no longer optimal, then you can find the new optimal solution by using the
Section 6.2 formulas to recreate the entire tableau for BV and then continuing the simplex algorithm with the BV tableau as your starting tableau.
There can be two reasons why a change in an LP’s parameters causes BV to be no
longer optimal. First, a variable (or variables) in row 0 may have a negative coefficient.
In this case, a better (larger z-value) bfs can be obtained by pivoting in a nonbasic variable with a negative coefficient in row 0. If this occurs, we say that BV is now a suboptimal basis. Second, a constraint (or constraints) may now have a negative right-hand side.
In this case, at least one member of BV will now be negative and BV will no longer yield
a bfs. If this occurs, we say that BV is now an infeasible basis.
6 . 3 Sensitivity Analysis
275
We illustrate the mechanics of sensitivity analysis in the Dakota Furniture example.
Recall that
x1 number of desks manufactured
x2 number of tables manufactured
x3 number of chairs manufactured
The objective function for the Dakota problem was
max z 60x1 30x2 20x3
and the initial tableau was
z
z
z
z
60x1
8x1
4x1
2x1
.30x2
.36x2
1.2x2
1.5x2
.20x3
1.5x3
1.5x3
0.5x3
s1
s1
s1
s1
s2
s2
s2
s2
s3
s3
s3
s3
0
48
20
8
(Lumber constraint)
(Finishing constraint)
(Carpentry constraint)
(12)
The optimal tableau was
zx1
zx1
zx1
zx1
1.25x2
1.22x2
1.22x2
1.25x2
x3
x3
x3
x3
s1
s1
s1
s1
.10s2
0.2s2
0.2s2
0.5s2
.10s3
. 8s3
1.4s3
1.5s3
280
24
8
2
(13)
Note that BV {s1, x3, x1} and NBV {x2, s2, s3}. The optimal bfs is z 280, s1 24, x3 8, x1 2, x2 0, s2 0, s3 0.
We now discuss how six types of changes in an LP’s parameters change the optimal
solution:
Change 1
Changing the objective function coefficient of a nonbasic variable
Change 2
Changing the objective function coefficient of a basic variable
Change 3
Changing the right-hand side of a constraint
Change 4
Changing the column of a nonbasic variable
Change 5
Adding a new variable or activity
Change 6
Adding a new constraint (see Section 6.11)
Changing the Objective Function Coefficient
of a Nonbasic Variable
In the Dakota problem, the only nonbasic decision variable is x2 (tables). Currently, the
objective function coefficient of x2 is c2 30. How would a change in c2 affect the
optimal solution to the Dakota problem? More specifically, for what values of c2 would
BV {s1, x3, x1} remain optimal?
Suppose we change the objective function coefficient of x2 from 30 to 30 . Then
represents the amount by which we have changed c2 from its current value. For what values of will the current set of basic variables (the current basis) remain optimal? We begin by determining how changing c2 from 30 to 30 will change the BV tableau. Note
that B1 and b are unchanged, and therefore, from (6), the right-hand side of BV’s tableau
(B1b) has not changed, so BV is still feasible. Because x2 is a nonbasic variable, cBV has
not changed. From (10), we can see that the only variable whose row 0 coefficient will be
276
CHAPTER
6 Sensitivity Analysis and Duality
changed by a change in c2 is x2. Thus, BV will remain optimal if c2 0, and BV will be
suboptimal if c2 0. In this case, z could be improved by entering x2 into the basis.
We have
6.0
a2 2.0
1.5
and c2 30 (10) shows that
. Also, from Section 6.2, we know that cBVB1 [0
c2 [0
10
6.0
10] 2.0 (30 ) 35 30 1.5
10
10]. Now
5
Thus, c2 0 holds, and BV will remain optimal, if 5 0, or 5. Similarly,
c2 0 holds if 5, but then BV is no longer optimal. This means that if the price of
tables is decreased or increased by $5 or less, BV remains optimal. Thus, for c2 30 5 35, BV remains optimal.
If BV remains optimal after a change in a nonbasic variable’s objective function coefficient, the values of the decision variables and the optimal z-value remain unchanged.
This is because a change in the objective function coefficient for a nonbasic variable
leaves the right-hand side of row 0 and the constraints unchanged. For example, if the
price of tables increases to $33 (c2 33), the optimal solution to the Dakota problem remains unchanged (Dakota should still make 2 desks and 8 chairs, and z 280). On the
other hand, if c2 35, BV will no longer be optimal, because c2
0. In this case, we
find the new optimal solution by recreating the BV tableau and then using the simplex algorithm. For example, if c2 40, we know that the only part of the BV tableau that will
change is the coefficient of x2 in row 0. If c2 40, then
6.0
c2 [0 10 10] 2.0 40 5
1.5
Now the BV “final” tableau is as shown in Table 2. This is not an optimal tableau (it
is suboptimal), and we can increase z by making x2 a basic variable in row 3. The resulting tableau is given in Table 3. This is an optimal tableau. Thus, if c2 40, the optimal
solution to the Dakota problem changes to z 288, s1 27.2, x3 11.2, x2 1.6,
x1 0, s2 0, s3 0. In this case, the increase in the price of tables has made tables
sufficiently more attractive to induce Dakota to manufacture them. Note that after changing a nonbasic variable’s objective function coefficient, it may, in general, take more than
one pivot to find the new optimal solution.
There is a more insightful way to show that the current basis in the Dakota problem
remains optimal as long as the price of tables is decreased or increased by $5 or less. From
the optimal row 0 in (13), we see that if c2 30, then
z 280 10s2 10s3 5x2
This tells us that each table that Dakota manufactures will decrease revenue by $5 (in
other words, the reduced cost for tables is 5). If we increase the price of tables by more
than $5, each table would now increase Dakota’s revenue. For example, if c2 36, each
table would increase revenues by 6 5 $1 and Dakota should manufacture tables.
Thus, as before, we see that for 5, the current basis is no longer optimal. This analysis yields another interpretation of the reduced cost of a nonbasic variable: The reduced
cost for a nonbasic variable (in a max problem) is the maximum amount by which the
6 . 3 Sensitivity Analysis
277
2
TA B L E
“Final” (Suboptimal) Dakota Tableau ($40/Table)
z
z
z
z
x1
x1
x1
x1
1.25x2
1.22x2
1.22x2
1.25x2
x3 s1
x3 s1
x3 s1
x3 s1
.10s2 .10s3 280
0.2s2 1.8s3 24
0.2s2 1.4s3 8
0.5s2 1.5s3 2
Basic Variable
Ratio
None
None
1.6*
z1
s1
x3
x1
280
24
8
2
3
TA B L E
Optimal Dakota Tableau ($40/Table)
Basic Variable
z
z
z
z
1.4x1
1.6x1
1.6x1
0.8x1
x2 x3 s1 1.8s2 .16s3 288
x2 x3 s1 1.2s2 5.6s3 27.2
x2 x3 s1 1.2s2 1.6s3 11.2
x2 x3 s1 0.4s2 1.2s3 1.6
z1
s1
x3
x2
288
27.2
11.2
1.6
variable’s objective function coefficient can be increased before the current basis becomes
suboptimal, and it becomes optimal for the nonbasic variable to enter the basis.
In summary, if the objective function coefficient for a nonbasic variable xj is changed,
the current basis remains optimal if cj 0. If cj 0, then the current basis is no longer
optimal, and xj will be a basic variable in the new optimal solution.
Changing the Objective Function
Coefficient of a Basic Variable
In the Dakota problem, the decision variables x1 (desks) and x3 (chairs) are basic variables. We
now explain how a change in the objective function coefficient of a basic variable will affect
an LP’s optimal solution. We begin by analyzing how this change affects the BV tableau. Because we are not changing B (or therefore B1) or b, (6) shows that the right-hand side of each
constraint will remain unchanged, and BV will remain feasible. Because we are changing cBV,
however, so cBVB1 will change. From (10), we see that a change in cBVB1 may change more
than one coefficient in row 0. To determine whether BV remains optimal, we must use (10)
to recompute row 0 for the BV tableau. If each variable in row 0 still has a nonnegative coefficient, BV remains optimal. Otherwise, BV is now suboptimal. To illustrate the preceding
ideas, we analyze how a change in the objective function coefficient for x1 (desks) from its
current value of c1 60 affects the optimal solution to the Dakota problem.
Suppose that c1 is changed to 60 , changing cBV to cBV [0 20 60 ].
To compute the new row 0, we need to know B1. We could (as in Section 6.2) use the
Gauss–Jordan method to compute B1. Recall that this method begins by writing down
the 3 6 matrix B|I3:
1
B|I3 0
0
1.0
1.5
0.5
8
4
2
1
0
0
0
1
0
0
0
1
Then we use EROs to transform the first three columns of B|I3 to I3. At this point, the last
three columns of the resulting matrix will be B1.
278
CHAPTER
6 Sensitivity Analysis and Duality
It turns out that when we solved the Dakota problem by the simplex algorithm, without realizing it, we found B1. To see why this is the case, note that in going from the
initial Dakota tableau (12) to the optimal Dakota tableau (13) we performed a series of
EROs on the constraints. These EROs transformed the constraint columns corresponding
to the initial basis (s1, s2, s3)
from
s1
1
0
0
s2
0
1
0
s3
0
0
1
to
s1
s2
1
2.0
0
2.0
0 0.5
to
s3
8.0
4.0
1.5
These same EROs have transformed the columns corresponding to BV {s1, x3, x1}
from
s1 x3 x1
1 1.0 8
B 0 1.5 4
0 0.5 2
to
to
s1
1
0
0
x3
0
1
0
x1
0
0
1
This means that in solving the Dakota problem by the simplex algorithm, we have used
EROs to transform B to I3. These same EROs transformed I3 into
1
2.0 8.0
0
2.0 4.0 B1
0 0.5
1.5
We have discovered an extremely important fact: For any simplex tableau, B1 is the
m m matrix consisting of the columns in the current tableau that correspond to the initial tableau’s set of basic variables (taken in the same order). This means that if the starting basis for an LP consists entirely of slack variables, then B1 for the optimal tableau
is simply the columns for the slack variables in the constraints of the optimal tableau. In
general, if the starting basic variable for the ith constraint is the artificial variable ai, then
the ith column of B1 will be the column for ai in the optimal tableau’s constraints. Thus,
we need not use the Gauss–Jordan method to find the optimal tableau’s B1. We have already found B1 by performing the simplex algorithm.
We can now compute what cBVB1 will be if c1 60 :
1
2.0 8.0
1
2.0 4.0
cBVB [0 20 60 ] 0
(14)
0 0.5
1.5
cBVB1 [0
10 0.5
10 1.5 ]
Observe that for 0, (14) yields the original cBVB1. We can now compute the new
row 0 corresponding to c1 60 . After noting that
8
6.0
1.0
a1 4 , a2 2.0 , a3 1.5 , c1 60 , c2 30, c3 20
2
1.5
0.5
we can use (10) to compute the new row 0. Because s1, x3, and x1 are basic variables, their
coefficients in row 0 must still be 0. The coefficient of each nonbasic variable in the new
row 0 is as follows:
6.0
1
c2 cBVB a2 c2 [0 10 0.5
10 1.5 ] 2.0 30 5 1.25
1.5
6 . 3 Sensitivity Analysis
279
Coefficient of s2 in row 0 second element of cBVB1 10 0.5
Coefficient of s3 in row 0 third element of cBVB1 10 1.5
Thus, row 0 of the optimal tableau is now
z (5 1.25 )x2 (10 0.5 )s2 (10 1.5 )s3 ?
From the new row 0, we see that BV will remain optimal if and only if the following hold:
5 1.25 0 (true iff †
10 0.5 0 (true iff†
10 1.5 0 (true iff†
4)
20)
(20/3))
This means that the current basis remains optimal as long as 4, 20, and 230. From Figure 3, we see that the current basis will remain optimal if and only if
4 20: If c1 is decreased by $4 or less or increased by up to $20, the current basis remains optimal. Thus, as long as 56 60 4 c1 60 20 80, the current
basis remains optimal. If c1 56 or c1 80, the current basis is no longer optimal.
If the current basis remains optimal, then the values of the decision variables don’t
change because B1b remains unchanged. The optimal z-value does change, however. To
illustrate this, suppose c1 70. Because 56 70 80, we know that the current basis
remains optimal. Thus, Dakota should still manufacture 2 desks (x1 2) and 8 chairs
(x3 8). However, changing c1 to 70 changes z to z 70x1 30x2 20x3. This changes
z to 70(2) 20(8) $300. Another way to see that z is now $300 is to note that we have
increased the revenue from each desk by 70 60 $10. Dakota is making 2 desks, so
revenue should increase by 2(10) $20, and new revenue 280 20 $300.
When the Current Basis Is No Longer Optimal
Recall that if c1 56 or c1 80, then the current basis is no longer optimal. Intuitively,
if the price of desks is decreased sufficiently (with all other prices held constant), desks
will no longer be worth making. Our analysis shows that this occurs if the price of desks
is decreased by more than $4. The reader should verify (see Problem 2 at the end of this
section) that if c1 56, x1 is no longer a basic variable in the new optimal solution. On
the other hand, if c1 80, desks have become profitable enough to make the current basis suboptimal; desks are now so attractive that we want to make more of them. To do
this, we must force another variable out of the basis. Suppose c1 100. Because 100 80, we know that the current basis is no longer optimal. How can we determine the new
optimal solution? Simply create the optimal tableau for c1 100 and proceed with the
simplex. If c1 100, then 100 60 40, and the new row 0 will have
c1 0,
c2 5 1.25 55,
s1 coefficient in row 0 0
s2 coefficient in row 0 10 0.5 s3 coefficient in row 0 10 1.5 1
c3 0,
10
70
Right-hand side of row 0 cBVB b [0
10
48
70] 20 360
8
From (6), changing c1 does not change the constraints in the BV tableau. This means that
if c1 100, then the BV tableau is as given in Table 4. BV {s1, x3, x1} is now subopti†
“If and only if ”
280
CHAPTER
6 Sensitivity Analysis and Duality
– 4 ≤ ∆ ≤ 20
FIGURE
3
Determination of Range
of Values on c1 for
Which Current Basis
Remains Optimal
– 20
3
∆ ≥ – 20
3
∆ ≥ –4
–4
∆ ≤ 20
20
TA B L E
4
“Final” (Suboptimal) Tableau If c1 100
z
z
z
z
x1
x1
x1
x1
1.55x2
1.22x2
1.22x2
1.25x2
TA B L E
x3 s1
x3 s1
x3 s1
x3 s1
.10s2 .70s3 360
0.2s2 1.8s3 24
0.2s2 1.4s3 8
0.5s2 1.5s3 2
Basic Variable
Ratio
12
4*
None
z1
s1
x3
x1
360
24
8
2
5
Optimal Dakota Tableau If c1 100
Basic Variable
z
z
z
z
x1
x1
x1
x1
1.45x2
1.22x2
1.22x2
0.75x2
0.25x3
0.25x3
20.5x3
0.25x3
s1
s1
s1
s1
s2 .50s3 400
s2 1.4s3 16
s2 1.2s3 4
s2 0.5s3 4
z1 400
s1 16
s2 4
x1 4
mal. To find the new Dakota optimal solution, we enter s2 into the basis in row 2 (Table 5).
This is an optimal tableau. If c1 100, then the new optimal solution to the Dakota problem is z 400, s1 16, s2 4, x1 4, x2 0, x3 0. Notice that increasing the profitability of desks has caused Dakota to stop making chairs. The resources that were previously used to make the chairs are now used to make 4 2 2 extra desks.
In summary, if the objective function coefficient of a basic variable xj is changed, then
the current basis remains optimal if the coefficient of every variable in row 0 of the BV
tableau remains nonnegative. If any variable in row 0 has a negative coefficient, then the
current basis is no longer optimal.
Interpretation of the Objective Coefficient Ranges
Block of the LINDO Output
To obtain a sensitivity report in LINDO, select Yes when asked (after solving LP) whether
you want a Range analysis. To obtain a sensitivity report in LINGO, go to Options and
select Range (after solving LP). If this does not work, go to Options, choose the General
Solver tab, and then go to Dual Computations and select the Ranges and Values option.
In the OBJ COEFFICIENT RANGES block of the LINDO (or LINGO) computer output, we see the amount by which each variable’s objective function coefficient may be
changed before the current basis becomes suboptimal (assuming all other LP parameters
are held constant). Look at the LINDO output for the Dakota problem (Figure 4). For each
variable, the CURRENT COEF column gives the current value of the variable’s objective
function coefficient. For example, the objective function coefficient for DESKS is 60. The
ALLOWABLE INCREASE column gives the maximum amount by which the objective
6 . 3 Sensitivity Analysis
281
MAX
SUBJECT TO
2)
3)
4)
END
60 DESKS + 30 TABLES + 20 CHAIRS
8 DESKS + 6 TABLES + CHAIRS <=
48
4 DESKS + 2 TABLES + 1.5 CHAIRS <=
20
2 DESKS + 1.5 TABLES + 0.5 CHAIRS <=
8
LP OPTIMUM FOUND
AT STEP
2
OBJECTIVE FUNCTION VALUE
1)
280.000000
VARIABLE
DESKS
TABLES
CHAIRS
ROW
2)
3)
4)
VALUE
REDUCED COST
2.000000
0.000000
0.000000
5.000000
8.000000
0.000000
SLACK OR SURPLUS
24.000000
0.000000
0.000000
NO. ITERATIONS=
DUAL PRICES
0.000000
10.000000
10.000000
2
RANGES IN WHICH THE BASIS IS UNCHANGED
VARIABLE
DESKS
TABLES
CHAIRS
ROW
FIGURE
4
2
3
4
LINDO Output for
Dakota Furniture
OBJ COEFFICIENT RANGES
ALLOWABLE
INCREASE
20.000000
5.000000
2.500000
ALLOWABLE
DECREASE
4.000000
INFINITY
5.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
INFINITY
4.000000
2.000000
ALLOWABLE
DECREASE
24.000000
4.000000
1.333333
CURRENT
COEF
60.000000
30.000000
20.000000
CURRENT
RHS
48.000000
20.000000
8.000000
function coefficient of a variable can be increased with the current basis remaining optimal (assuming all other LP parameters stay constant). For example, if the objective function coefficient for DESKS is increased above 60 20 80, then the current basis is no
longer optimal. Similarly, the ALLOWABLE DECREASE column gives the maximum
amount by which the objective function coefficient of a variable can be decreased with
the current basis remaining optimal (assuming all other LP parameters constant). If the
objective function coefficient for DESKS drops below 60 4 56, the current basis is
no longer optimal. In summary, we see from the LINDO output that if the objective function coefficient for DESKS is changed, the current basis remains optimal if
56 60 4 objective coefficient for DESKS 60 20 80
Of course, this agrees with our earlier computations.
Changing the Right-Hand Side of a Constraint
Effect on the Current Basis
In this section, we examine how the optimal solution to an LP changes if the right-hand
side of a constraint is changed. Because b does not appear in (10), changing the righthand side of a constraint will leave row 0 of the optimal tableau unchanged; changing a
right-hand side cannot cause the current basis to become suboptimal. From (5) and (6),
however, we see that a change in the right-hand side of a constraint will affect the righthand side of the constraints in the optimal tableau. As long as the right-hand side of each
282
CHAPTER
6 Sensitivity Analysis and Duality
constraint in the optimal tableau remains nonnegative, the current basis remains feasible
and optimal. If at least one right-hand side in the optimal tableau becomes negative, then
the current basis is no longer feasible and therefore no longer optimal.
Suppose we want to determine how changing the amount of finishing hours (b2) affects
the optimal solution to the Dakota problem. Currently, b2 20. If we change b2 to 20 , then from (6), the right-hand side of the constraints in the optimal tableau will become
48
B1 20 8
B1 [48
20 1
0
0
8.0
4.0
1.5
2.0
2.0
0.5
24 2
82
2 0.5
48
20 8
Of course, for 0, the right-hand side reduces to the right-hand side of the original
optimal tableau. If this does not happen, then an error has been made.
It can be shown (see Problem 9) that if the right-hand side of the ith constraint is increased by , then the right-hand side of the optimal tableau is given by (original right-hand
side of the optimal tableau) (column i of B1). Because the second column of B1 is
2.0
2.0
0.5
and the original right-hand side is
24
8
2
we again find that the right-hand side of the constraints in the optimal tableau is
24 2
82
2 0.5
For the current basis to remain optimal, we require that the right-hand side of each constraint in the optimal tableau remain nonnegative. This means that the current basis will
remain optimal if and only if the following hold:
24 2 .0 0
8 2 .0 0
2 0.5 0
(true iff
(true iff
(true iff
12)
4)
4)
As long as 12, 4, and 4, the current basis remains feasible and therefore
optimal. From Figure 5, we see that for 4 4, the current basis remains feasible and
therefore optimal. This means that for 20 4 b2 20 4, or 16 b2 24, the current basis remains optimal: If between 16 and 24 finishing hours are available, BV {s1,
x3, x1} remains optimal, and Dakota should still manufacture desks and chairs. If b2 24
or if b2 16, however, the current basis becomes infeasible and is no longer optimal.
–4 ≤ ∆ ≤ 4
∆ ≥ –12
–12
FIGURE
5
Determination of Range
of Values on b2 for
Which Current Basis
Remains Optimal
∆ ≥ –4
–4
4
∆ ≤ 4
6 . 3 Sensitivity Analysis
283
Effect on Decision Variables and z
Even if the current basis remains optimal (16 b2 24), the values of the decision variables and z change. This was illustrated in our graphical discussion of sensitivity analysis in Section 6.1. To see how the values of the objective function and decision variables
change, recall that the values of the basic variables in the optimal solution are given by
B1b and the optimal z-value is given by cBVB1b. Changing b will change the values of
the basic variables and the optimal z-value. To illustrate this, suppose that 22 finishing
hours are available. Because 16 22 24, the current basis remains optimal and, from
(6), the new values of the basic variables are as follows (the same basis remains optimal,
so the nonbasic variables remain equal to 0):
s1
1
B b 0
0
1
2.0
2.0
0.5
8.0
4.0
1.5
48
28
22 12
8
1
x3
x1
If 22 finishing hours were available, then Dakota should manufacture 12 chairs and only
1 desk.
To determine how a change in a right-hand side affects the optimal z-value, we may
use formula (11). If 22 finishing hours are available, we find that
1
New z-value cBVB (new b) [0
10
48
10] 22 300
8
In Section 6.8, we explain how the important concept of shadow price can be used to determine how changes in a right-hand side change the optimal z-value.
When the Current Basis Is No Longer Optimal
If we change a right-hand side enough that the current basis is no longer optimal, how
can we determine the new optimal basis? Suppose we change b2 to 30. Because b2 24,
we know that the current basis is no longer optimal. If we re-create the optimal tableau,
we see from the formulas of Section 6.2 that the only part of the optimal tableau that will
change is the right-hand side of row 0 and the constraints. From (6), the right-hand side
of the constraints in the tableau for BV {s1, x3, x1} is
8.0
4.0
1.5
1
2.0
2.0
B1b 0
0 0.5
48
44
30 28
8
3
From (11), the right-hand side of row 0 is now
cBVB1b [0
10
48
10] 30 380
8
The tableau for the optimal basis, BV {s1, x3, x1}, is now as shown in Table 6. Because
x1 3, BV is no longer feasible or optional. Unfortunately, this tableau does not yield
a readily apparent basic feasible solution. If we use this as our initial tableau, we can’t
use the simplex algorithm to find the new optimal solution to the Dakota problem. In Section 6.11, we discuss a different method for solving LPs, the dual simplex algorithm,
which can be used to solve LPs when the initial tableau has one or more negative righthand sides and each variable in row 0 has a nonnegative coefficient.
In summary, if the right-hand side of a constraint is changed, then the current basis
remains optimal if the right-hand side of each constraint in the tableau remains non284
CHAPTER
6 Sensitivity Analysis and Duality
TA B L E
6
Final (Infeasible) Dakota Tableau If b2 30
Basic Variable
z
z
z
z
x1
x1
x1
x1
1.25x2
1.22x2
1.22x2
1.25x2
x3 s1
x3 s1
x3 s1
x3 s1
.10s2 .10s3 380
0.2s2 1.8s3 44
0.2s2 1.4s3 28
0.5s2 1.5s3 3
z1
s1
x3
x1
480
44
28
3
negative. If the right-hand side of any constraint is negative, then the current basis is infeasible, and a new optimal solution must be found.
Interpretation of the Right-Hand Side
Ranges Block of the LINDO Output
The block of the LINDO (or LINGO) output labeled RIGHTHAND SIDE RANGES (see
Figure 4) gives information concerning the amount by which a right-hand side can be
changed before the current basis becomes infeasible (all other LP parameters constant).
The CURRENT RHS column gives the current right-hand side of each constraint. Thus,
for row 3 (the second constraint), the current right-hand side is 20. The ALLOWABLE
INCREASE column is the maximum amount by which the right-hand side of the constraint can be increased with the current basis remaining optimal (all other LP parameters constant). For example, if the amount of available finishing hours (second constraint)
is increased by up to 4 hours, then the current basis remains optimal. Similarly, the
ALLOWABLE DECREASE column gives the maximum amount by which the right-hand
side of a constraint can be decreased with the current basis remaining optimal (all other
LP parameters constant). If the amount of available finishing hours is decreased by more
than 4 hours, then the current basis is no longer optimal. In summary, if the number of
finishing hours is changed (all other LP parameters constant), the current basis remains
optimal if
16 20 4 available finishing hours 20 4 24
Changing the Column of a Nonbasic Variable
Currently, 6 board feet of lumber, 2 finishing hours, and 1.5 carpentry hours are required
to make a table that can be sold for $30. Also x2 (the variable for tables) is a nonbasic variable in the optimal solution. This means that Dakota should not manufacture any tables
now. Suppose, however, that the price of tables increased to $43 and, because of changes
in production technology, a table required 5 board feet of lumber, 2 finishing hours, and
2 carpentry hours. Would this change the optimal solution to the Dakota problem? Here
we are changing elements of the column for x2 in the original problem (including the objective function). Changing the column for a nonbasic variable such as tables leaves B (and
B1) and b unchanged. Thus, the right-hand side of the optimal tableau remains unchanged. A glance at (10) also shows that the only part of row 0 that is changed is c2; the
current basis will remain optimal if and only if c2 0 holds. We now use (10) to compute
the new coefficient of x2 in row 0. This process is called pricing out x2. From (10),
c2 cBVB1a2 c2
6 . 3 Sensitivity Analysis
285
Note that cBVB1 still equals [0
10
c2 43
10], but a2 and c2 have changed to
5
a2 2
2
and
Now
c2 [0
5
10] 2 43 3
2
10
0
Because c2 0, the current basis is no longer optimal. The fact that c2 3 means that
each table that Dakota manufactures now increases revenues by $3. It is clearly to Dakota’s
advantage to enter x2 into the basis. To find the new optimal solution to the Dakota problem, we recreate the tableau for BV {s1, x3, x1} and then apply the simplex algorithm.
From (5), the column for x2 in the constraint portion of the BV tableau is now
1
B a2 0
0
1
2.0
2.0
0.5
8.0
4.0
1.5
5
7
2 4
2
2
The tableau for BV {s1, x3, x1} is now as shown in Table 7. To find the new optimal
solution, we enter x2 into the basis in row 3. This yields the optimal tableau in Table 8.
Thus, the new optimal solution to the Dakota problem is z 283, s1 31, x3 12,
x2 1, x1 0, s2 0, s3 0. After the column for the nonbasic variable x2 (tables) has
been changed, Dakota should manufacture 12 chairs and 1 table. In summary, if the column of a nonbasic variable xj is changed, then the current basis remains optimal if cj 0. If cj 0, then the current basis is no longer optimal and xj will be a basic variable in
the new optimal solution.
If the column of a basic variable is changed, then it is usually difficult to determine
whether the current basis remains optimal. This is because the change may affect both B (and
hence B1) and cBV and thus the entire row 0 and the entire right-hand side of the optimal
7
TA B L E
“Final” (Suboptimal) Dakota Tableau for New Method of Making Tables
Basic Variable
z
z
z
z
x1
x1
x1
x1
3x2
7x2
4x2
2x2
x3 s1
x3 s1
x3 s1
x3 s1
.10s2 .10s3 280
0.2s2 1.8s3 24
0.2s2 1.4s3 8
0.5s2 1.5s3 2
z1
s1
x3
x1
280
24
8
2*
8
TA B L E
Optimal Dakota Tableau for New Method of Making Tables
Basic Variable
z
z
z
z
286
1.5x1
3.5x1
0.2x1
0.5x1
CHAPTER
x3 x3 s1 9.25s2 12.25s3 283
x3 x3 s1 0.25s2 12.75s3 31
x3 x3 s1 0.25s2 12.25s3 12
x2 x3 s1 0.25s2 10.75s3 1
6 Sensitivity Analysis and Duality
z1
s1
x3
x1
283
31
12
1
tableau. As always, the current basis would remain optimal if and only if each variable has a
nonnegative coefficient in row 0 and each constraint has a nonnegative right-hand side.
Adding a New Activity
In many situations, opportunities arise to undertake new activities. For example, in the Dakota
problem, the company may be presented with the opportunity to manufacture additional types
of furniture, such as footstools. If a new activity is available, we can evaluate it by applying
the method utilized to determine whether the current basis remains optimal after a change in
the column of a nonbasic variable. The following example illustrates the approach.
Suppose that Dakota is considering making footstools. A stool sells for $15 and requires 1 board foot of lumber, 1 finishing hour, and 1 carpentry hour. Should the company manufacture any stools?
To answer this question, define x4 to be the number of footstools manufactured by
Dakota. The initial tableau is now changed by the introduction of the x4 column. Our new
initial tableau is
z
z
z
z
60x1
8x1
4x1
2x1
.30x2
1.6x2
1.2x2
1.5x2
.20x3
1.5x3
1.5x3
0.5x3
15x4
15x4
15x4
15x4
s1
s1
s1
s1
s2
s2
s2
s2
s3
s3
s3
s3
0
48
20
8
(15)
We call the addition of the x4 column to the problem adding a new activity. How will
the addition of the new activity change the optimal BV {s1, x3, x1} tableau? From (6),
we see that the right-hand sides of all constraints in the optimal tableau will remain unchanged. From (10), we see that the coefficient of each of the old variables in row 0 will
remain unchanged. We must, of course, compute c4, the coefficient of the new activity in
row 0 of the optimal tableau. The right-hand side of each constraint in the optimal tableau
is unchanged and the only variable in row 0 that can have a negative coefficient is x4, so
the current basis will remain optimal if c4 0 or become nonoptimal if c4 0.
To determine whether a new activity causes the current basis to be no longer optimal,
price out the new activity. Because
c4 15
1
a4 1
1
and
we may use (10) to price out x4. The result is
c4 [0
10
1
10] 1 15 5
1
Because c4 0, the current basis is still optimal. Equivalently, the reduced cost of footstools is $5. This means that each stool manufactured will decrease revenues by $5. For
this reason, we choose not to manufacture any stools.
In summary, if a new column (corresponding to a variable xj) is added to an LP, then
the current basis remains optimal if cj 0. If cj 0, then the current basis is no longer
optimal and xj will be a basic variable in the new optimal solution. Table 9 presents a summary of sensitivity analyses for a maximization problem. When applying the techniques
of this section to a minimization problem, just remember that a tableau is optimal if and
only if each variable has a nonpositive coefficient in row 0 and the right-hand side of each
constraint is nonnegative.
6 . 3 Sensitivity Analysis
287
9
TA B L E
Summary of Sensitivity Analysis (Max Problem)
Change in
Initial Problem
Effect on
Optimal Tableau
Current Basis Is
Still Optimal If:
Changing nonbasic objective
function coefficient cj
Coefficient of x j in optimal
row 0 is changed
Changing basic objective
function coefficient cj
Entire row 0 may change
Changing right-hand side of
a constraint
Right-hand side of
constraints and row 0 are
changed
Changes the coefficient for
x j in row 0 and x j’s
constraint column in
optimal tableau
Coefficient of x j in row 0 for
current basis is still
nonnegative
Each variable still has a
nonnegative coefficient in
row 0
Right-hand side of each
constraint is still nonnegative
Changing the column of a
nonbasic variable x j or
adding a new variable x j
The coefficient of x j in row
0 is still nonnegative
PROBLEMS
Group A
1 In the Dakota problem, show that the current basis
remains optimal if c3, the price of chairs, satisfies 15 c3 22.5. If c3 21, find the new optimal solution. Also,
if c3 25, find the new optimal solution.
2 If c1 55 in the Dakota problem, show that the new
optimal solution does not produce any desks.
3 In the Dakota problem, show that if the amount of lumber
(board ft) available (b1) satisfies b1 24, the current basis
remains optimal. If b1 30, find the new optimal solution.
4 Show that if tables sell for $50 and use 1 board ft of
lumber, 3 finishing hours, and 1.5 carpentry hours, the
current basis for the Dakota problem will no longer be
optimal. Find the new optimal solution.
5 Dakota Furniture is considering manufacturing home
computer tables. A home computer table sells for $36 and uses
6 board ft of lumber, 2 finishing hours, and 2 carpentry hours.
Should the company manufacture any home computer tables?
6 Sugarco can manufacture three types of candy bar. Each
candy bar consists totally of sugar and chocolate. The
compositions of each type of candy bar and the profit earned
from each candy bar are shown in Table 10. Fifty oz of
sugar and 100 oz of chocolate are available. After defining
xi to be the number of Type i candy bars manufactured,
Sugarco should solve the following LP:
TA B L E
Bar
1
2
3
288
10
Amount of
Sugar (Ounces)
1
1
1
max z 3x1 7x2 5x3
s.t.
x1 x2 x3 50
(Sugar constraint)
s.t.
2x1 3x2 x3 100
(Chocolate constraint)
x1, x2, x3 0
After adding slack variables s1 and s2, the optimal tableau
is as shown in Table 11. Using this optimal tableau, answer
the following questions:
a For what values of Type 1 candy bar profit does the
current basis remain optimal? If the profit for a Type 1
candy bar were 7¢, what would be the new optimal solution to Sugarco’s problem?
b For what values of Type 2 candy bar profit would the
current basis remain optimal? If the profit for a Type 2
candy bar were 13¢, then what would be the new optimal solution to Sugarco’s problem?
c For what amount of available sugar would the current basis remain optimal?
d If 60 oz of sugar were available, what would be Sugarco’s profit? How many of each candy bar should the
company make? Could these questions be answered if
only 30 oz of sugar were available?
e Suppose a Type 1 candy bar used only 0.5 oz of
sugar and 0.5 oz of chocolate. Should Sugarco now
make Type 1 candy bars?
TA B L E
Amount of
Chocolate (Ounces)
2
3
1
CHAPTER
Profit
(Cents)
3
7
5
6 Sensitivity Analysis and Duality
11
z
x1
x2
x3
s1
s2
rhs
Basic
Variable
1
0
0
3
0
0
1
0
1
0
4
1
12
300
325
325
z3 300
x3 250
x2 250
1
2
1
2
3
2
12
1
2
f Sugarco is considering making Type 4 candy bars. A
Type 4 candy bar earns 17¢ profit and requires 3 oz of
sugar and 4 oz of chocolate. Should Sugarco manufacture any Type 4 candy bars?
7 The following questions refer to the Giapetto problem
(Section 3.1). Giapetto’s LP was
max z 3x1 2x2
s.t.
2x1 x2 100
(Finishing constraint)
s.t.
2x1 x2 80
(Carpentry constraint)
s.t.
2x1 x2 40
(Limited demand for soldiers)
(x1 soldiers and x2 trains). After adding slack variables
s1, s2, and s3, the optimal tableau is as shown in Table 12.
Use this optimal tableau to answer the following questions:
a Show that as long as soldiers (x1) contribute between
$2 and $4 to profit, the current basis remains optimal. If
soldiers contribute $3.50 to profit, find the new optimal
solution to the Giapetto problem.
b Show that as long as trains (x2) contribute between
$1.50 and $3.00 to profit, the current basis remains optimal.
c Show that if between 80 and 120 finishing hours are
available, the current basis remains optimal. Find the
new optimal solution to the Giapetto problem if 90 finishing hours are available.
d Show that as long as the demand for soldiers is at
least 20, the current basis remains optimal.
e Giapetto is considering manufacturing toy boats. A toy
boat uses 2 carpentry hours and 1 finishing hour. Demand
for toy boats is unlimited. If a toy boat contributes $3.50
to profit, should Giapetto manufacture any toy boats?
Group B
8 Consider the Dorian Auto problem (Example 2 of
Chapter 3):
min z 50x1 100x2
s.t.
7x1 2x2 28
(HIW)
s.t.
2x1 12x2 24
(HIM)
x1, x2 0
(x1 number of comedy ads, and x2 number of football
ads). The optimal tableau is given in Table 13. Remember
that for a min problem, a tableau is optimal if and only if
each variable has a nonpositive coefficient in row 0 and the
right-hand side of each constraint is nonnegative.
a Find the range of values of the cost of a comedy ad
(currently $50,000) for which the current basis remains
optimal.
b Find the range of values of the number of required
HIW exposures (currently 28 million) for which the current basis remains optimal. If 40 million HIW exposures
were required, what would be the new optimal solution?
c Suppose an ad on a news program costs $110,000
and reaches 12 million HIW and 7 million HIM. Should
Dorian advertise on the news program?
9 Show that if the right-hand side of the ith constraint is
increased by , then the right-hand side of the optimal
tableau is given by (original right-hand side of the optimal
tableau) (column i of B1).
TA B L E
TA B L E
12
z
x1
x2
s1
s2
s3
rhs
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
2
1
0
0
0
1
180
320
360
320
6.4
Basic
Variable
z3
x1
x2
s3
180
200
600
200
13
z
x1
x2
e1
e2
a1
a2
rhs
1
0
0
0
1
0
0
0
1
5
230
7.5
5M
1
40
870
3
20
410
7.5 M
410
320
333.6
331.4
1
40
7
80
Sensitivity Analysis When More Than One
Parameter Is Changed: The 100% Rule†
In this section, we show how to use the LINDO output to determine whether the current
basis remains optimal when more than one objective function coefficient or right-hand
side is changed.
The 100% Rule for Changing Objective Function Coefficients
Depending on whether the objective function coefficient of any variable with a zero reduced cost in the optimal tableau is changed, there are two cases to consider:
†
This section covers topics that may be omitted with no loss of continuity.
6 . 4 Sensitivity Analysis When More Than One Parameter Is Changed: The 100% Rule
289
Case 1 All variables whose objective function coefficients are changed have nonzero reduced costs in the optimal row 0.
Case 2 At least one variable whose objective function coefficient is changed has a reduced cost of zero.
In Case 1, the current basis remains optimal if and only if the objective function coefficient for each variable remains within the allowable range† given on the LINDO printout (see Problem 10 at the end of this section). If the current basis remains optimal, then
both the values of the decision variables and objective function remain unchanged. If the
objective function coefficient for any variable is outside its allowable range, then the current basis is no longer optimal.
The following two examples of Case 1 refer to the diet problem of Section 3.4. The
LINDO printout for this problem is given in Figure 6.
EXAMPLE
2
100% Rule for Objective Functional Coefficients 1
Suppose the price of a brownie increases to 60¢ and a piece of pineapple cheesecake decreases to 50¢. Does the current basis remain optimal? What would be the new optimal
solution?
Solution
Both brownies and pineapple cheesecake have nonzero reduced costs, so we are in Case
1. From Figure 6 and the Case 1 discussion, we see that the current basis remains optimal if and only if
22.5 50 27.5 cost of a brownie 50 5.530 80 50 cost of a piece of cheesecake 80 .
Because the new prices satisfy both of these conditions, the current basis remains optimal. Also the optimal z-value and optimal value of the decision variables remain unchanged.
EXAMPLE
3
100% Rule for Objective Functional Coefficients 2
If prices drop to 40¢ for a brownie and 25¢ for a piece of pineapple cheesecake, is the
current basis still optimal?
Solution
From Figure 6, we see that Case 1 again applies. The cost of a brownie remains in its allowable range, but the price of pineapple cheesecake does not. Thus, the current basis is
no longer optimal, and the problem must be solved again.
In Case 2, we can often show that the current basis remains optimal by using the 100%
Rule. Let
cj original objective function coefficient for xj
cj change in cj
Ij maximum allowable increase in cj for which current basis remains optimal
(from LINDO output)
Dj maximum allowable decrease in cj for which current basis remains optimal
(from LINDO output)
†
The allowable range for cj is the range of values for which the current basis remains optimal (assuming that
only cj is changed).
290
CHAPTER
6 Sensitivity Analysis and Duality
MIN
50 BR + 20 IC + 30 COLA + 80 PC
SUBJECT TO
2)
400 BR + 200 IC + 150 COLA + 500 PC >=
3)
3 BR + 2 IC >=
6
4)
2 BR + 2 IC + 4 COLA + 4 PC >=
10
5)
2 BR + 4 IC + COLA + 5 PC >=
8
END
LP OPTIMUM FOUND
AT STEP
500
5
OBJECTIVE FUNCTION VALUE
1)
90.000000
VARIABLE
BR
IC
COLA
PC
ROW
2)
3)
4)
5)
VALUE
0.000000
3.000000
1.000000
0.000000
REDUCED COST
27.500000
0.000000
0.000000
50.000000
SLACK OR SURPLUS
250.000000
0.000000
0.000000
5.000000
NO. ITERATIONS=
DUAL PRICES
0.000000
-2.500000
-7.500000
0.000000
5
RANGES IN WHICH THE BASIS IS UNCHANGED
VARIABLE
BR
IC
COLA
PC
ROW
FIGURE
6
LINDO Output for
Diet Problem
2
3
4
5
OBJ COEFFICIENT RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
INFINITY
27.500000
18.333334
5.000000
10.000000
30.000000
INFINITY
50.000000
CURRENT
COEF
50.000000
20.000000
30.000000
80.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
250.000000
4.000000
INFINITY
5.000000
CURRENT
RHS
500.000000
6.000000
10.000000
8.000000
ALLOWABLE
DECREASE
INFINITY
2.857143
4.000000
INFINITY
For each variable xj, we define the ratio rj:
If
cj 0,
If
cj 0,
cj
rj Ij
cj
rj Dj
If cj is unchanged, then rj 0. Thus, rj measures the ratio of the actual change in cj to
the maximum allowable change in cj that would keep the current basis optimal. If only
one objective function coefficient were being changed, then the current basis would remain optimal if rj 1 (or equivalently, if rj, expressed as a percentage, were less than or
equal to 100%). The 100% Rule for objective function coefficients is a generalization of
this idea. It states that if rj 1, then we can be sure that the current basis remains optimal. If rj 1, then the current basis may or may not be optimal; we can’t be sure. If
the current basis does remain optimal, then the values of the decision variables remain
unchanged, but the optimal z-value may change. The reader is referred to Bradley, Hax,
and Magnanti (1977) for a proof of the 100% Rule. We sketch the proof in Problem 11
at the end of this section.
The following two examples of Case 2 refer to the Dakota Furniture problem and illustrate the use of the 100% Rule.
6 . 4 Sensitivity Analysis When More Than One Parameter Is Changed: The 100% Rule
291
EXAMPLE
4
Basis No Longer Optimal
Suppose the desk price increases to $70 and chairs decrease to $18. Does the current basis remain optimal? What is the new optimal z-value?
Solution
Because both desks and chairs have zero reduced costs (they are basic variables), we must
apply the 100% Rule to determine whether the current basis remains optimal. Returning
to the notation that x1 desks, x2 tables, and x3 chairs, we may write
c1 70 60 10,
I1 20,
c3 18 20 2,
D3 5,
c2 0,
so
r2 0
so
so
r1 1200 0.5
r3 25 0.4
Because r1 r2 r3 0.9 1, the current basis remains optimal. Another way of looking at it: We changed c1 50% of the amount it was “allowed” to change and c3 40% of
the amount it was “allowed” to change. Because 50% 40% 90% 100%, the current basis remains optimal.
The current basis remains optimal, so the values of the decision variables do not
change. Note that the revenue from each desk has increased by $10 and the revenue from
each chair has decreased by $2. Dakota is still producing 2 desks and 8 chairs, so revenue
increases by 2(10) 8(2) $4 and is now 280 4 $284.
EXAMPLE
5
100% Rule and Optimal Basis 1
Show that if the price of tables increases to $33 and desk prices decrease to $58, the 100%
Rule does not tell us whether the current basis is still optimal.
Solution
For this situation,
c1 58 60 2,
D1 4,
c2 33 30 3,
I2 5,
c3 0,
so
r3 0
so
so
r1 r2 2
4
3
5
0.5
0.6
Because r1 r2 r3 0.5 0.6 0 1.1 1, the 100% Rule yields no information
about whether the current basis is optimal.
The 100% Rule for Changing Right-Hand Sides
Depending on whether any of the constraints whose right-hand sides are being modified
are binding constraints, there are two cases to consider:
Case 1
All constraints whose right-hand sides are being modified are nonbinding constraints.
Case 2 At least one of the constraints whose right-hand side is being modified is a binding constraint (that is, has zero slack or zero excess).
In Case 1, the current basis remains optimal if and only if each right-hand side remains
within its allowable range.† Then the values of the decision variables and optimal objective
function remain unchanged. If the right-hand side for any constraint is outside its allowable
range, then the current basis is no longer optimal (see Problem 12 at the end of this section). The following examples for the diet problem illustrate the application of Case 1.
†
The allowable range for a right-hand side bi is the range of values for which the current basis remains optimal (assuming the other LP parameters remain unchanged).
292
CHAPTER
6 Sensitivity Analysis and Duality
EXAMPLE
6
New Optimal Solution
Suppose the calorie requirement is decreased to 400 calories and the fat requirement is increased to 10 oz. Does the current basis remain optimal? What is the new optimal solution?
Solution
Both the calorie and fat constraints are nonbinding, so Case 1 applies. From Figure 6, we
see that the allowable ranges for the calorie and fat constraints are
500 calorie requirement 500 250 750
8 fat requirement 8 5 13
The new calorie and fat requirements both remain within their allowable ranges, so the
current basis remains optimal. The optimal z-value and the values of the decision variables remain unchanged.
EXAMPLE
7
Basis No Longer Optimal
Suppose the calorie requirement is decreased to 400 calories and the fat requirement is
increased to 15 oz. Is the current basis still optimal?
Solution
The fat requirement is no longer in its allowable range, so the current basis is no longer
optimal.
In Case 2, we can often show that the current basis remains optimal via another version of the 100% Rule. Let
bj current right-hand side of the jth constraint (from row j 1 on LINDO output)
bj change in bj
Ij maximum allowable increase in bj for which the current basis remains optimal
(from LINDO output)
Dj maximum allowable decrease in bj for which the current basis remains optimal
(from LINDO output)
For each constraint, compute the ratio rj:
If
bj 0,
If
bj 0,
bj
rj Ij
bj
rj Ij
If only the jth right-hand side is changed, then the current basis remains optimal if rj 1. Also
note that rj is the fraction of the maximum allowable change (in the sense that the current
basis remains optimal) in bj that has occurred. The 100% Rule states that if rj 1, then the
current basis remains optimal. If rj 1, then the current basis may or may not be optimal;
we can’t be sure (see Problem 13 at the end of this section for a sketch of the proof of this
result). The following examples illustrate the use of the 100% Rule for right-hand sides.
EXAMPLE
8
Basis Remains Optimal
In the Dakota problem, suppose 22 finishing hours and 9 carpentry hours are available.
Does the current basis remain optimal?
Solution
The finishing and carpentry constraints are binding, so we are in Case 2 and need to use
the 100% Rule.
6 . 4 Sensitivity Analysis When More Than One Parameter Is Changed: The 100% Rule
293
b1 0,
so
r1 0
b2 22 20 2,
I2 4,
b3 9 8 1,
I3 2,
r2 r3 so
so
2
4
1
2
0.5
0.5
Because r1 r2 r3 1, the current basis remains optimal.
EXAMPLE
9
100% Rule and Optimal Basis 2
In the diet problem, suppose the chocolate requirement is increased to 8 oz and the sugar
requirement is reduced to 7 oz. Does the current basis remain optimal?
Solution
The chocolate and sugar constraints are binding, so we are in Case 2 and need to use the
100% Rule.
b2 8 6 2,
b3 7 10 3,
b1 b4 0, so
I2 4,
D3 4,
r1 r4 0
r2 r3 so
so
2
4
3
4
0.5
0.75
Because r1 r2 r3 r4 1.25 1, the 100% Rule yields no information about
whether the current basis remains optimal.
PROBLEMS
Group A
Group B
The following questions refer to the diet problem:
10 Prove the Case 1 result for the objective function
coefficients.
1 If the cost of a brownie is 70¢ and a piece of cheesecake
costs 60¢, does the current basis remain optimal?
2 If the cost of a brownie is 20¢ and a piece of cheesecake
is $1, does the current basis remain optimal?
3 If the fat requirement is reduced to 3 oz and the calorie
requirement is increased to 800 calories, does the current
basis remain optimal?
4 If the fat requirement is 6 oz and the calorie requirement
is 600 calories, does the current basis remain optimal?
5 If the price of a bottle of soda is 15¢ and a piece of
cheesecake is 60¢, show that the current basis remains optimal.
What will be the new optimal solution to the diet problem?
6 If 8 oz of chocolate and 60 calories are required, show
that the current basis remains optimal.
The following questions refer to the Dakota problem.
7 Suppose that the price of a desk is $65, a table is $25,
and a chair is $18. Show that the current basis remains
optimal. What is the new optimal z-value?
8 Suppose that 60 board ft of lumber and 23 finishing hours
are available. Show that the current basis remains optimal.
9 Suppose 40 board ft of lumber, 21 finishing hours, and
8.5 carpentry hours are available. Show that the current
basis remains optimal.
294
CHAPTER
6 Sensitivity Analysis and Duality
11 To illustrate the validity of the 100% Rule for objective
function coefficients, consider an LP with four decision
variables (x1, x2, x3, and x4) and two constraints in which x1
and x2 are basic variables in the optimal basis. Suppose (if
only a single objective function coefficient is changed) the
current basis is known to be optimal for L1 c1 U1 and
L2 c2 U2. Suppose we change c1 to c1 c1 c1 and
c2 to c2 c2 c2, where c1 0 and c2 0. Let
c1
r1
U1 c1
and
c2
r2
c2 L2
Show that if r1 r2 1, the current basis remains optimal.
Hint: Any variable xj prices out to cBVB1aj cj. To show
that for the new values of c1 and c2, all variables still price
out nonnegative, use the fact that
[c1, c2] r1[U1, c2] r2[c1, L2] (1 r1 r2)[c1, c2]
12 Prove the Case 1 result for right-hand sides. Use the
fact that if a constraint is nonbinding in the optimal solution,
then its slack or excess variable is in the optimal basis, and
the corresponding column of B1 will have a single 1 and
all other elements equal to 0.
13 In this problem, we sketch a proof of the 100% Rule
for right-hand sides. Consider an LP with two constraints
and right-hand sides b1 and b2. Suppose that if only one
right-hand side is changed, the current basis remains optimal
for L1 b1 U1 and L2 b2 U2. Suppose we change
the right-hand sides to b1 b1 b1 and b2 b2 b2,
where b1 0 and b2
b1
r1 U1 b1
0. Let
and
b 0
B1
b2
r2 b2 L2
b1
0
2
Show that if r1 r2 1, the current basis remains optimal.
(Hint: You must show that
Use the fact that
[b1, b2] r1[U1, b2] r2[b1, L2] (1 r1 r2)[b1, b2]
to show this.)
6.5
Finding the Dual of an LP
Associated with any LP is another LP, called the dual. Knowing the relation between an
LP and its dual is vital to understanding advanced topics in linear and nonlinear programming. This relation is important because it gives us interesting economic insights.
Knowledge of duality will also provide additional insights into sensitivity analysis.
In this section, we explain how to find the dual of any LP; in Section 6.6, we discuss
the economic interpretation of the dual; and in Sections 6.7–6.10, we discuss the relation
that exists between an LP and its dual.
When taking the dual of a given LP, we refer to the given LP as the primal. If the primal is a max problem, then the dual will be a min problem, and vice versa. For convenience,
we define the variables for the max problem to be z, x1, x2, . . . , xn and the variables for the
min problem to be w, y1, y2, . . . , ym. We begin by explaining how to find the dual of a max
problem in which all variables are required to be nonnegative and all constraints are constraints (called a normal max problem). A normal max problem may be written as
max z c1x1 c2x2 s.t.
a11x1 a12x2 s.t.
a21x1 a22x2 aa2 xx1 a2 x2 a22 x11 aa22 xx22 s.t.
am1x1 am2x2 xj 0 ( j 1, 2,
cnxn
cna1nxn b1
cna2nxn b2
cna2
ccnnaa22
amnxn bm
. . . , n)
(16)
The dual of a normal max problem such as (16) is defined to be
min w b1y1 b2y2 s.t.
a11y1 a21y2 a12y1 a22y2 aa2 xx1 a2 x2 a22 x11 aa22 xx22 a1ny1 a2ny2 yi 0 (i 1, 2,
bmxm
am1ym c1
am2ym c2
cna2
ccnnaa22
amnym cn
. . . , m)
(17)
A min problem such as (17) that has all constraints and all variables nonnegative is
called a normal min problem. If the primal is a normal min problem such as (17), then
we define the dual of (17) to be (16).
Finding the Dual of a Normal Max or Min Problem
A tabular approach makes it easy to find the dual of an LP. If the primal is a normal max
problem, then it can be read across (Table 14); the dual is found by reading down. Similarly, if the primal is a normal min problem, we find it by reading down; the dual is found
6 . 5 Finding the Dual of an LP
295
TA B L E
14
Finding the Dual of a Normal Max or Min Problem
max z
min w
(y1 0)
(y2 0)
y1
y2
(ym 0)
ym
(x1 0)
(x2 0)
(xn 0)
x1
a11
a21
x2
a12
a22
xn
a1n
a2n
am1
c1
am2
c2
amn
cn
b1
b2
bm
by reading across in the table. We illustrate the use of the table by finding the dual of the
Dakota problem and the dual of the diet problems. The Dakota problem is
s.t.
max z 60x1 30x2 20x3
s.t.
8x1 1.6x2 1.5x3 48
s.t.
4x1 1.2x2 1.5x3 20
s.t.
2x1 1.5x2 0.5x3 8
2 2.5 0
.5x1, x2, x3 0
(Lumber constraint)
(Finishing constraint)
(Carpentry constraint)
where
x1 number of desks manufactured
x2 number of tables manufactured
x3 number of chairs manufactured
Using the format of Table 14, we read the Dakota problem across in Table 15. Then,
reading down, we find the Dakota dual to be
min w 48y1 20y2 8y3
s.t.
8y1 1.4y2 1.2y3 s.t.
6y1 1.2y2 1.5y3 s.t.
6y1 1.5y2 0.5y3 s.t.
1.5 0.5y1, y2, y3 60
30
20
0
The tabular method of finding the dual makes it clear that the ith dual constraint corresponds to the ith primal variable xi. For example, the first dual constraint corresponds to
x1 (desks), because each number comes from the x1 (desk) column of the primal. Simi-
TA B L E
15
Finding the Dual of the Dakota Problem
max z
min w
(y1 0)
(y2 0)
(y3 0)
296
CHAPTER
y1
y2
y3
(x1 0)
(x2 0)
(x3 0)
x1
8
4
2
60
x2
6.5
2.5
1.5
30
x3
1.5
1.5
0.5
20
6 Sensitivity Analysis and Duality
48
20
88
larly, the second dual constraint corresponds to x2 (tables), and the third dual constraint
corresponds to x3 (chairs). In a similar fashion, dual variable yi is associated with the ith
primal constraint. For example, y1 is associated with the first primal constraint (lumber
constraint), because each coefficient of y1 in the dual comes from the lumber constraint,
or the availability of lumber. The importance of these correspondences between the primal and the dual will become clear in Section 6.6.
We now find the dual of the diet problem. Because the diet problem is a min problem,
we follow the convention of using w to denote the objective function and y1, y2, y3, and
y4 for the variables. Then the diet problem may be written as
s.t.
min w 50y1 20y2 30y3 80y4
s.t.
400y1 200y2 150y3 500y4 500
s.t.
3y1 2y2 150y3 500y4 6
s.t.
2y1 2y2 4y3 4y4 10
s.t.
2y1 4y2 y3 5y4 8
y1, y2, y3, y4 0
(Calorie constraint)
(Chocolate constraint)
(Sugar constraint)
(Fat constraint)
where
y1
y2
y3
y4
number of brownies eaten daily
number of scoops of chocolate ice cream eaten daily
bottles of soda drunk daily
pieces of pineapple cheesecake eaten daily
The primal is a normal min problem, so we can read it down, and read its dual across, in
Table 16. We find that the dual of the diet problem is
max z 500x1 6x2 10x3 8x4
s.t.
400x1 3x2 2x3 2x4 50
s.t.
200x1 2x2 2x3 4x4 20
s.t.
150x1 2x2 4x3 x4 30
s.t.
500x1 2x2 4x3 5x4 80
s.t.
500 2 2 2x1, x2, x3, x4 0
As in the Dakota problem, we see that the ith dual constraint corresponds to the ith
primal variable. For example, the third dual constraint may be thought of as the soda constraint. Also, the ith dual variable corresponds to the ith primal constraint. For example,
x3 (the third dual variable) may be thought of as the dual sugar variable.
TA B L E
16
Finding the Dual of the Diet Problem
max z
min w
( y1 0)
( y2 0)
( y3 0)
( y4 0)
y1
y2
y3
y4
(x1 0)
(x2 0)
(x3 0)
(x4 0)
x1
400
200
150
500
500
x2
3
2
0
0
6
x3
2
2
4
4
10
x4
2
4
1
5
8
6 . 5 Finding the Dual of an LP
50
20
30
80
297
Finding the Dual of a Nonnormal LP
Unfortunately, many LPs are not normal max or min problems. For example,
max z 2x1 x2
s.t.
x1 x2 s.t.
2x1 x2 s.t.
x1 x2 s.t.
2x1 x1 2
3
1
0, x2 urs
(18)
is not a normal max problem because it has a constraint, an equality constraint, and an
unrestricted-in-sign variable. As another example of a nonnormal LP, consider
min w 2y1 4y2 6y3
s.t.
y1 2y2 y3 2
s.t.
y1 2y2 y3 1
s.t.
2y1 2y2 y3 1
s.t.
2y1 y2 y3 3
s.t.
y1 urs, y2, y3 0
(19)
This LP is not a normal min problem because it contains an equality constraint, a constraint, and an unrestricted-in-sign variable.
Fortunately, an LP can be transformed into normal form (either (16) or (17)). To place
a max problem into normal form, we proceed as follows:
Multiply each constraint by 1, converting it into a constraint. For
example, in (18), 2x1 x2 3 would be transformed into 2x1 x2 3.
Step 1
Replace each equality constraint by two inequality constraints (a constraint and
a constraint). Then convert the constraint to a constraint. For example, in (18),
we would replace x1 x2 2 by the two inequalities x1 x2 2 and x1 x2 2. Then
we would convert x1 x2 2 to x1 x2 2. The net result is that x1 x2 2 is
replaced by the two inequalities x1 x2 2 and x1 x2 2.
Step 2
Step 3 As in Section 4.14, replace each urs variable xi by xi x xi , where xi 0
and xi 0. In (18), we would replace x2 by x2 x2.
After these transformations are complete, (18) has been transformed into the following
(equivalent) LP:
max z 2x1 x2 x2
s.t.
x1 x2 x2 2
s.t.
x1 x2 x2 2
s.t.
2x1 x2 x2 3
s.t.
x1 x2 x2 1
s.t.
2 x1, x2, x2 0
(18 )
Because (18 ) is a normal max problem, we could use (16) and (17) to find the dual of
(18 ).
If the primal is not a normal min problem, then we can transform it into a normal min
problem as follows:
298
CHAPTER
6 Sensitivity Analysis and Duality
Step 1 Convert each constraint into a constraint by multiplying through by 1. For
example, in (19), 2y1 y2 3 is transformed into 2y1 y2 3.
Replace each equality constraint by a constraint and a constraint. Then transform the constraint into a constraint. For example, in (19), the constraint y2 y3 1 is equivalent to y2 y3 1 and y2 y3 1. Transforming y2 y3 1 into
y2 y3 1, we see that we can replace the constraint y2 y3 1 by the two constraints y2 y3 1 and y2 y3 1.
Step 2
Replace any urs variable yi by yi yi yi , where yi 0 and yi 0. Applying
these steps to (19) yields the following standard min problem:
Step 3
min w 2y1 2y1 4y2 6y3
s.t.
y1 2y1 2y2 y3 2
s.t.
2y1 2y1 2y2 y3 1
s.t.
2y1 2y1 y2 y3 1
s.t.
2y1 2y1 y2 6y3 1
s.t.
2y1 2y1 y2 6y3 3
s.t.
2 2 2 2y1, y1, y2, y3 0
(19 )
Because (19 ) is a normal min problem in standard form, we may use (16) and (17) to
find its dual.
We can find the dual of a nonnormal LP without going through the transformations
that we have described by using the following rules.†
Finding the Dual of a Nonnormal Max Problem
Step 1
Fill in Table 14 so that the primal can be read across.
After making the following changes, the dual can be read down in the usual fashion: (a) If the ith primal constraint is a constraint, then the corresponding dual variable
yi must satisfy yi 0. (b) If the ith primal constraint is an equality constraint, then the
dual variable yi is now unrestricted in sign. (c) If the ith primal variable is urs, then the
ith dual constraint will be an equality constraint.
Step 2
When this method is applied to (18), the Table 14 format yields Table 17. We note with
an asterisk (*) the places where the rules must be used to determine part of the dual. For
example, x2 urs causes the second dual constraint to be an equality constraint. Also, the
first primal constraint being an equality constraint makes y1 urs, and the second primal
constraint being a constraint makes y2 0. Filling in the missing information across
from the appropriate asterisk yields Table18. Reading the dual down, we obtain
min w 2y1 3y2 y3
s.t.
y1 2y2 y3 2
s.t.
y1 y2 y3 1
y1 urs, y2 0, y3 0
In Section 6.8, we give an intuitive explanation of why an equality constraint yields an
unrestricted-in-sign dual variable and why a constraint yields a negative dual variable.
We can use the following rules to take the dual of a nonnormal min problem.
†
In Problems 5 and 6 at the end of this section, we show that these rules are consistent with taking the dual
of the transformed LP via (16) and (17).
6 . 5 Finding the Dual of an LP
299
TA B L E
17
Finding the Dual of LP (18)
max z
min w
y1
y2
y3
(y3 0)
TA B L E
(x1 0)
(x2 urs)*
x1
1
2
1
2
x2
1
1
1
1
2*
3*
1*
18
Finding the Dual of LP (18) (Continued)
max z
min w
(y1 urs)
(y2 0)
(y3 0)
y1
y2
y3
(x1 0)
(x2 urs)
x1
1
2
1
2
x2
1
1
1
1
2
3
1
Finding the Dual of a Nonnormal Min Problem
Step 1
Write out the primal so it can be read down in Table 14.
Step 2 Except for the following changes, the dual can be read across the table: (a) If the
ith primal constraint is a constraint, then the corresponding dual variable xi must satisfy xi 0. (b) If the ith primal constraint is an equality constraint, then the corresponding dual variable xi will be urs. (c) If the ith primal variable yi is urs, then the ith dual
constraint is an equality constraint.
When this method is applied to (19), we get Table 19. Asterisks (*) show where the new
rules must be used to determine parts of the dual. Because y1 is urs, the first dual constraint is an equality. The third primal constraint is an equality, so dual variable x3 is urs.
Finally, because the fourth primal constraint is a constraint, the fourth dual variable x4
must satisfy x4 0. We can now complete the table (see Table 20). Reading the dual
across, we obtain
TA B L E
19
Finding the Dual of LP (19)
max z
min w
(y1 urs)*
(y2 0)
(y3 0)
300
CHAPTER
y1
y2
y3
(x1 0)
(x2 0)
x1
1
2
1
2
x2
1
0
1
1
6 Sensitivity Analysis and Duality
x3
0
1
1
1*
x4
2
1
0
3*
2
4
6
TA B L E
20
Finding the Dual of LP (19) (Continued)
max z
min w
(y1 urs)
(y2 0)
(y3 0)
y1
y2
y3
(x1 0)
(x2 0)
(x3 urs)
(x4 0)
x1
1
2
1
2
x2
1
0
1
1
x3
0
1
1
1
x4
2
1
0
3
2
4
6
max z 2x1 x2 x3 3x4
s.t.
x1 x2 x3 2x4 2
s.t.
2x1 x2 x3 x4 4
s.t.
2x1 x2 x3 2x4 6
x1, x2 0, x3 urs, x4 0
The reader may verify that with these rules, the dual of the dual is always the primal.
This is easily seen from the Table 14 format, because when you take the dual of the dual
you are changing the LP back to its original position.
PROBLEMS
Group A
Group B
Find the duals of the following LPs:
5 This problem shows why the dual variable for an equality
constraint should be urs.
a Use the rules given in the text to find the dual of
max z x1 2x2
s.t.
3x1 x2 6
s.t.
2x1 x2 5
x1, x2 0
b Now transform the LP in part (a) to the normal form.
Using (16) and (17), take the dual of the transformed
LP. Use y2 and y2 as the dual variables for the two primal constraints derived from 2x1 x2 5.
c Make the substitution y2 y2 y2 in the part (b)
answer. Now show that the two duals obtained in parts
(a) and (b) are equivalent.
1
max z 2x1 x2
s.t.
x1 x2 1
s.t.
x1 x2 3
s.t.
x1 2x2 4
s.t.
2x1, x2 0
2
min w y1 y2
s.t.
2y1 y2 4
s.t.
y1 y2 1
s.t.
y1 2y2 3
s.t.
2y1, y2 0
3
max z 4x1 x2 2x3
s.t.
x1 x2 x3 s.t.
2x1 x2 x3 s.t.
2x1 2x2 x3 s.t.
x1 2x2 x3 x1 0, x2, x3 urs
4
5
7
6
4
min w 4y1 2y2 y3
s.t.
y1 2y2 2y3 6
s.t.
y1 y2 2y3 8
y1, y2 0, y3 urs
6 This problem shows why a dual variable yi corresponding
to a constraint in a max problem must satisfy yi 0.
a Using the rules given in the text, find the dual of
max z 3x1 x2
s.t.
x1 x2 1
s.t.
x1 x2 2
s.t.
x1, x2 0
b Transform the LP of part (a) into a normal max
problem. Now use (16) and (17) to find the dual of the
transformed LP. Let y2 be the dual variable corresponding to the second primal constraint.
c Show that, defining y2 y2, the dual in part (a) is
equivalent to the dual in part (b).
6 . 5 Finding the Dual of an LP
301
6.6
Economic Interpretation of the Dual Problem
Interpreting the Dual of a Max Problem
The dual of the Dakota problem is
min w 48y1 20y2 8y3
s.t.
8y1 1.4y2 1.2y3 60
s.t.
6y1 1.2y2 1.5y3 30
s.t.
y1 1.5y2 0.5y3 20
s.t.
6 1.5 y1, y2, y3 0
(Desk constraint)
(Table constraint)
(Chair constraint)
(20)
The first dual constraint is associated with desks, the second with tables, and the third
with chairs. Also, y1 is associated with lumber, y2 with finishing hours, and y3 with carpentry hours. The relevant information about the Dakota problem is shown in Table 21.
We are now ready to interpret the Dakota dual (20). Suppose an entrepreneur wants to
purchase all of Dakota’s resources. Then the entrepreneur must determine the price he or
she is willing to pay for a unit of each of Dakota’s resources. With this in mind, we define
y1 price paid for 1 board ft of lumber
y2 price paid for 1 finishing hour
y3 price paid for 1 carpentry hour
The resource prices y1, y2, and y3 should be determined by solving the Dakota dual (20).
The total price that should be paid for these resources is 48y1 20y2 8y3. Because the
cost of purchasing the resources is to be minimized,
min w 48y1 20 y2 8y3
is the objective function for the Dakota dual.
In setting resource prices, what constraints does the entrepreneur face? Resource prices
must be set high enough to induce Dakota to sell. For example, the entrepreneur must offer
Dakota at least $60 for a combination of resources that includes 8 board feet of lumber, 4
finishing hours, and 2 carpentry hours, because Dakota could, if it desires, use these resources
to produce a desk that can be sold for $60. The entrepreneur is offering 8y1 4y2 2y3 for
the resources used to produce a desk, so he or she must choose y1, y2, and y3 to satisfy
8y1 4y2 2y3 60
But this is just the first (or desk) constraint of the Dakota dual. Similar reasoning shows
that at least $30 must be paid for the resources used to produce a table (6 board feet of lumber, 2 finishing hours, and 1.5 carpentry hours). This means that y1, y2, and y3 must satisfy
6y1 2y2 1.5y3 30
TA B L E
21
Relevant Information for Dakota Problem
Resource/Product
302
Resource
Desk
Table
Chair
Lumber (board ft)
Finishing (hours)
Carpentry (hours)
Selling price ($)
68
64
62
60
36.5
32.5
31.5
30.5
21.5
21.5
20.5
20.5
CHAPTER
6 Sensitivity Analysis and Duality
Amount of
Resource
Available
48
20
08
This is the second (or table) constraint of the Dakota dual.
Similarly, the third (or chair) dual constraint,
y1 1.5y2 0.5y3 20
states that at least $20 (the price of a chair) must be paid for the resources needed to produce a chair (1 board foot of lumber, 1.5 finishing hours, and 0.5 carpentry hour). The
sign restrictions y1 0, y2 0, and y3 0 must also hold. Putting everything together,
we see that the solution to the dual of the Dakota problem does yield prices for lumber,
finishing hours, and carpentry hours. The preceding discussion also shows that the ith dual
variable does indeed correspond in a natural way to the ith primal constraint.
In summary, when the primal is a normal max problem, the dual variables are related
to the value of the resources available to the decision maker. For this reason, the dual variables are often referred to as resource shadow prices. A more thorough discussion of
shadow prices is given in Section 6.8.
Interpreting the Dual of a Min Problem
To interpret the dual of a min problem, we consider the dual of the diet problem of Section 3.4. In Section 6.5, we found that the diet problem dual was
max z 500x1 6x2 10x3 8x4
s.t.
400x1 3x2 2x3 2x4 50
s.t.
200x1 2x2 2x3 4x4 20
s.t.
150x1 2x2 4x3 x4 30
s.t.
500x1 2x1 4x3 5x4 80
s.t.
500 2 2 4x1, x2, x3, x4 0
(Brownie constraint)
(Ice cream constraint)
(Soda constraint)
(Cheesecake constraint)
(21)
The data for the diet problem are shown in Table 22. To interpret (21), suppose Candice
is a “nutrient” salesperson who sells calories, chocolate, sugar, and fat. She wants to ensure that a dieter will meet all of his or her daily requirements by purchasing calories,
sugar, fat, and chocolate. Then Candice must determine
x1
x2
x3
x4
price
price
price
price
per
per
per
per
calorie to charge dieter
ounce of chocolate to charge dieter
ounce of sugar to charge dieter
ounce of fat to charge dieter
Candice wants to maximize her revenue from selling the dieter the daily ration of required
nutrients. Because she will receive 500x1 6x2 10x3 8x4 cents in revenue from the
dieter, her objective is to
max z 500x1 6x2 10x3 8x4
TA B L E
22
Relevant Information for Diet Problem
Brownie
Ice cream
Soda
Cheesecake
Requirements
Calories
Chocolate
(Ounces)
Sugar
(Ounces)
Fat
(Ounces)
Price
(Cents)
400
200
150
500
500
3
2
0
0
6
2
2
4
4
10
2
4
1
5
8
50
20
30
80
6 . 6 Economic Interpretation of the Dual Problem
303
This is the objective function for the dual of the diet problem. But in setting nutrient
prices, Candice must set prices low enough so that it will be in the dieter’s economic interest to purchase all nutrients from her. For example, by purchasing a brownie for 50¢,
the dieter can obtain 400 calories, 3 oz of chocolate, 2 oz of sugar, and 2 oz of fat. So
Candice cannot charge more than 50¢ for this combination of nutrients. This leads to the
following (brownie) constraint:
400x1 3x2 2x3 2x4 50
the first constraint in the diet problem dual. Similar reasoning yields the second dual (ice
cream) constraint, the third (soda constraint), and the fourth (cheesecake constraint).
Again, the sign restrictions x1 0, x2 0, x3 0, and x4 0 must be satisfied.
Our discussion shows that the optimal value of xi may be interpreted as a price for 1
unit of the nutrient associated with the ith dual constraint. Thus, x1 would be the price for
1 calorie, x2 would be the price for 1 oz of chocolate, and so on. Again, we see that it is
reasonable to associate the ith dual variable (xi) and the ith primal constraint.
In summary, we have shown that when the primal is a normal max problem or a normal min problem, the dual problem has an intuitive economic interpretation. In Section
6.8, we explain more about the proper interpretation of the dual variables.
PROBLEM
Group A
1 Find the dual of Example 3 in Chapter 3 (an auto
company) and give an economic interpretation of the dual
problem.
6.7
2 Find the dual of Example 2 in Chapter 3 (Dorian Auto)
and give an economic interpretation of the dual problem.
The Dual Theorem and Its Consequences
In this section, we discuss one of the most important results in linear programming: the
Dual Theorem. In essence, the Dual Theorem states that the primal and dual have equal
optimal objective function values (if the problems have optimal solutions). This result is
interesting in its own right, but we will see that in proving the Dual Theorem, we gain
many important insights into linear programming.
To simplify the exposition, we assume that the primal is a normal max problem with m
constraints and n variables. Then the dual problem will be a normal min problem with m
variables and n constraints. In this case, the primal and the dual may be written as follows:
Primal Problem
304
CHAPTER
max z c1x1 c2x2 s.t.
a11 x1 a12 x2 s.t.
a21 x1 a22 x2 s.t.
ai1 x1 ai2 x2 x1 a2x2 am1x1 am2x2 xj 0 ( j 1, 2,
6 Sensitivity Analysis and Duality
cnxn
a1n xn
a2n xn
ain xn
a 2xn
amnxn
. . . , n)
b1
b2
bi
bm
(22)
Dual Problem
min w b1y1 b2y2 s.t.
a11y1 a21y2 s.t.
a12y1 a22y2 bmym
am1ym c1
am2ym c2
s.t.
a1jy1 a2jy2 amjym cj
s.t.
a1ny1 a2ny2 amnym cn
yi 0 (i 1, 2, . . . , m)
(23)
Weak Duality
If we choose any feasible solution to the primal and any feasible solution to the dual, the
w-value for the feasible dual solution will be at least as large as the z-value for the feasible primal solution. This result is formally stated in Lemma 1.
LEMMA 1
LEMMA
1
(Weak Duality). Let
x1
x
x2
xn
be any feasible solution to the primal and y [y1 y2
solution to the dual. Then (z-value for x) (w-value for y).
ym] be any feasible
Because yi 0, multiplying the ith primal constraint in (22) by yi will yield
the following valid inequality:
Proof
yiai1x1 yiai2x2 yiainxn biyi (i 1, 2, . . . , m)
(24)
Adding the m inequalities in (24), we find that
im jn
im
yiaijxj i1
biyi
i1 j1
(25)
Because xj 0, multiplying the jth dual constraint in (23) by xj yields the following valid inequality:
xja1jy1 xja2jy2 xjamjym cjxj ( j 1, 2, . . . , n)
(26)
Adding the n inequalities in (26) yields
im jn
jn
yiaijxj j1
cjxj
i1 j1
(27)
Combining (25) and (27), we obtain
jn
im jn
im
cjxj i1
j1
yiaijxj i1
biyi
j1
which is the desired result.
6 . 7 The Dual Theorem and Its Consequences
305
If a feasible solution to either the primal or the dual is readily available, weak duality
can be used to obtain a bound on the optimal objective function value for the other problem. For example, in looking at the Dakota problem, it is easy to see that x1 x2 x3 1 is primal feasible. This solution has a z-value of 60 30 20 110. Weak duality now implies that any dual feasible solution (y1, y2, y3) must satisfy
48y1 20y2 8y3 110
Because the dual is a min problem, and any dual feasible solution must have w 110,
this means that the optimal w-value for the dual 110 (see Figure 7). This shows that
weak duality enables us to use any primal feasible solution to bound the optimal value of
the dual objective function.
Analogously, we can use any feasible solution to the dual to develop a bound on the
optimal value of the primal objective function. For example, looking at the Dakota dual,
it can readily be verified that y1 10, y2 10, y3 0 is dual feasible. This dual solution has a dual objective function value of 48(10) 20(10) 8(0) 680. From weak
duality, we see that any primal feasible solution
x1
x2
x3
must satisfy
60x1 30x2 20x3 680
Because the primal is a max problem and every primal feasible solution has z 680, we
may conclude that the optimal primal objective function value 680 (see Figure 8).
If we define
b1
b2
b
and
c [c1
c2
cn]
bm
then for a point
x1
x2
x
xn
the primal objective function value may be written as cx, and for a point y [ y1 y2
ym] the dual objective function value may be written as yb. We now use weak duality to
prove the following important result.
FIGURE
Illustration of
Weak Duality
FIGURE
w ≥ 110 must hold for all
dual feasible points
No dual feasible point
has w < 110
w
w = 680
8
Illustration of
Weak Duality
306
z = 110
7
z ≤ 680 must hold for all
primal feasible points
z
CHAPTER
6 Sensitivity Analysis and Duality
No primal feasible point
has z > 680
LEMMA 2
LEMMA
2
Let
x1
x2
x xn
be a feasible solution to the primal and y [ y1 y2
ym] be a feasible solution
to the dual. If cx
x yb, then x is optimal for the primal and y is optimal for the dual.
Proof
From weak duality we know that for any primal feasible point x,
cx yb
Thus, any primal feasible point must yield a z-value that does not exceed yb. Because x is primal feasible and has a primal objective function value of cxx yb, x
must be primal optimal. Similarly, because x is primal feasible, weak duality implies that for any dual feasible point y,
cx
yb
Thus, any dual feasible point must yield an objective function value exceeding cxx.
Because y is dual feasible and has a dual objective function value yb cxx, y must
be an optimal solution for the dual.
We use the Dakota problem to illustrate the use of Lemma 2. The reader may verify that
2
x 0
8
is primal feasible and that y [0 10 10] is dual feasible. Because cx
x yb 280,
Lemma 2 implies that x is optimal for the Dakota primal, and y is optimal for the Dakota
dual. Lemma 2 plays an important role in our proof of the Dual Theorem.
The Dual Theorem
Before proceeding with our proof of the Dual Theorem, we note that weak duality can be
used to prove the following results.
LEMMA 3
LEMMA
3
If the primal is unbounded, then the dual problem is infeasible.
Proof
See Problem 7 at the end of this section.
LEMMA 4
LEMMA
4
If the dual is unbounded, then the primal is infeasible.
Proof
See Problem 8 at the end of this section.
6 . 7 The Dual Theorem and Its Consequences
307
Lemmas 3 and 4 describe the relation between the primal and dual in two relatively
unimportant cases.†
These cases are of limited interest. We are primarily interested in the relation between
the primal and dual when the primal has an optimal solution. In what follows, we let z optimal primal objective function value and w
optimal dual objective function value.
If the primal has an optimal solution, then the following important result (the Dual Theorem) describes the relation between the primal and the dual.
THEOREM
1
The Dual Theorem
Suppose BV is an optimal basis for the primal. Then cBVB1 is an optimal solution
to the dual. Also, z w
.
Proof
The argument used to prove the Dual Theorem includes the following steps:
Use the fact that BV is an optimal basis for the primal to show that cBVB1 is
dual feasible.
1
2 Show that the optimal primal objective function value the dual objective function for cBVB1.
We have found a primal feasible solution (from BV) and a dual feasible solution (cBVB1) that have equal objective function values. From Lemma 2, we can
now conclude that cBVB1 is optimal for the dual and z w
.
3
We now verify step 1 for the case where the primal is a normal maximization problem with n variables and m constraints.‡ After adding slack variables s1, s2, . . . , sm
to the primal, we write the primal and dual problems as follows:
max z c1x1 c2x2 s.t.
a11 x1 a12x2 a21 x1 a22x2 Primal Problem
cnxn
a1nxn s1
a2nxn
s2
am1x1 am2x2 amnxn
xj 0
( j 1, 2, . . . , n);
si 0
min w b1y1 b2y2 s.t.
a11y1 a21y2 a12y1 a22y2 Dual Problem
bmym
am1ym c1
am2ym c2
b1
b2
(28)
sm bm
(i 1, 2, . . . , m)
(29)
a1ny1 a2ny2 amnym cn
yi 0 (i 1, 2, . . . , m)
Let BV be an optimal basis for the primal, and define cBVB1 [ y1, y2, . . . , ym].
Thus, for the optimal basis BV, yi is the ith element of cBVB1. BV is optimal for
†
It can happen that both the primal and the dual can be infeasible, as in the following example:
Primalmax z x2
lmin w y1 y2
Primals.t.
x1 x2 1
Duals.t.
y1 y2 0
Dual s.t.
y1y2 1
Primals.t.
x1 x2 1
x1, x2 0
y1, y2 0
‡
Our proof can easily be modified to handle the situation where the primal is not a normal max problem.
308
CHAPTER
6 Sensitivity Analysis and Duality
the primal, so the coefficient of each variable in row 0 of BV’s primal tableau must
be nonnegative. From (10), the coefficient of xj in row 0 of the BV tableau (cj) is
given by
cj cBVB1aj cj
a1j
a2j
[ y1
y2
ym]
cj
amj
y1a1j y2a2j ymamj cj
But we know that cj 0, so for j 1, 2, . . . , n,
y1a1j y2a2j ymamj cj 0
1
Thus, cBVB satisfies each of the n dual constraints.
Because BV is an optimal basis for the primal, we also know that each slack variable has a nonnegative coefficient in the BV primal tableau. From (10 ), we find that
the coefficient of si in BV’s row 0 is yi, the ith element of cBVB1. Thus, for i 1,
2, . . . , m, yi 0. We have shown that cBVB1 satisfies all n constraints in (29)
and that all the elements of cBVB1 are nonnegative. Thus, cBVB1 is indeed dual
feasible.
Step 2 of the Dual Theorem proof requires that we show
Dual objective function value for cBVB1
primal objective function value for BV (30)
From (11), we know that the primal objective function value for BV is cBVB1b.
But the dual objective function value for the dual feasible solution cBVB1 is
b1
b2
b1y1 b2y2 bmym [ y1
y2
ym]
cBVB1b
bm
Thus, (30) is valid.
We have shown that steps 1 and 2 of the Dual Theorem proof are valid. Step 3
now completes our proof of the Dual Theorem.
REMARKS
1 In step 1 of the Dual Theorem proof, we showed that a basis BV that is feasible for the primal
is optimal if and only if cBVB1 is dual feasible. In Section 6.9, we use this result to gain useful insights into sensitivity analysis.
2 When we find the optimal solution to the primal by using the simplex algorithm, we have also
found the optimal solution to the dual.
To see why Remark 2 is true, suppose that the primal is a normal max problem with m
constraints. To use the simplex to solve this problem, we must add a slack variable si to the
ith primal constraint. Suppose BV is an optimal basis for the primal. Then the Dual Theorem tells us that cBVB1 [ y1 y2
ym] is the optimal solution to the dual. Recall
from (10 ), however, that yi is the coefficient of si in row 0 of the optimal (BV) primal
tableau. Thus, we have shown that if the primal is a normal max problem, then the optimal
value of the ith dual variable is the coefficient of si in row 0 of the optimal primal tableau.
6 . 7 The Dual Theorem and Its Consequences
309
TA B L E
23
Optimal Solution to the Dakota Problem
Basic
Variable
z
z
z
z
x1
x1
x1
x1
1.25x2
1.22x2
1.22x2
1.25x2
x3 s1 .10s2 .10s3 280
x3 s1 0.2s2 .18s3 240
x3 s1 0.2s2 .14s3 8
x3 s1 0.5s2 1.5s3 2
z1
s1
x3
x1
280
24
8
2
We use the Dakota problem to illustrate Remark 2. The optimal tableau for the Dakota
problem is shown in Table 23. The optimal primal solution is z 280, s1 24, x3 8,
x1 2, x2 0, s2 0, s3 0. From the preceding discussion, the optimal dual solution
is y1 0, y2 10, y3 10, w 48(0) 20(10) 8(10) 280. Observe that the optimal primal and dual objective function values are equal, as required by the Dual Theorem.
Of course, we may always compute the optimal dual solution directly by solving
cBVB1 [0
20
1
60] 0
0
2.0
2.0
0.5
8.0
4.0 [0
1.5
10
10]
Of course, the two methods of obtaining the dual solution agree.
If the primal has or equality constraints, then we can still find the optimal dual solution from the optimal primal tableau. To see how this is done, recall that the Dual Theorem tells us that the optimal value of the ith dual variable ( yi) is the ith element of
cBVB1. From (10), we see that if the ith constraint of the primal is a constraint, then
Optimal value of ith dual variable yi (coefficient of ei in the optimal row 0)
The coefficient of ei in the optimal row 0 must be nonnegative, so this shows that if
the ith constraint in the primal is a constraint, then yi 0. This agrees with our previous convention (see Section 6.5) that a constraint must have a nonpositive dual variable. From (10), we see that if the ith primal constraint is an equality constraint, then
yi (coefficient of ai in optimal row 0) M
Although the coefficient of ai in the optimal row 0 must be nonnegative, the fact that M
is a large positive number means that yi 0 or yi 0 is possible. This agrees with our
previous convention, which stated that the dual variable for an equality constraint is urs.
How to Read the Optimal Dual Solution from Row 0
of the Optimal Tableau If the Primal Is a Max Problem
Optimal value of dual variable yi
in optimal row 0
if Constraint i is a constraint coefficient of si
Optimal value of dual variable yi
(coefficient of ei in optimal row 0)
if Constraint i is a constraint
Optimal value of dual variable yi
(coefficient of ai in optimal row 0) M
if Constraint i is an equality
constraint
(31)
(31 )
(31)
The following example illustrates how to find the optimal dual solution to a problem with
, , and equality constraints.
310
CHAPTER
6 Sensitivity Analysis and Duality
EXAMPLE
10
Finding the Dual Solution to a Nonnormal Max Problem
To solve the following LP,
max z 3x1 2x2 5x3
s.t.
x1 3x2 2x3 s.t.
x1 2x2 x3 s.t.
2x1 x2 5x3 s.t.
2 5x1, x2, x3 15
5
10
0
(32)
we add a slack variable s1, subtract an excess variable e2, and add two artificial variables
a2 and a3. The optimal tableau for (32) is given in Table 24. From this tableau, the opti565
15
65
120
, x3 , x2 , x1 , s1 e2 a2 a3 0. Use this inmal solution is z 23
23
23
23
formation to find the optimal solution to the dual of (32).
Solution
Following the steps in Section 6.5, we find the dual of (32) from the tableau in Table 25:
min w 15y1 5y2 10y3
s.t.
y1 2y2 2y3 3
s.t.
3y1 2y2 y3 2
s.t.
2y1 y2 5y3 5
s.t.
y1 0, y2 0, y3 urs
(33)
From (31) and the optimal primal tableau, we can find the optimal solution to (33) as follows:
Because the first primal constraint is a constraint, we see from (31) that y1 coefficient of s1 in optimal row 0 5213 . The second primal constraint is a constraint, so we
see from (31 ) that y2 (coefficient of e2 in optimal row 0) 5283 . Because the third
constraint is an equality constraint, we see from (31) that y3 (coefficient of a3 in the
optimal row 0) M 293 .
TA B L E
24
Optimal Tableau for LP (32)
z
x1
x2
x3
s1
e2
a2
a3
rhs
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
51
23
4
23
2
23
9
23
5
8
23
5
23
293
1
7
23
M 5283
253
M 293
223
213
56
5
23
1
5
23
6
5
23
1
2
0
23
TA B L E
9
23
1273
7
23
Basic
Variable
z2
x3
x2
x1
56
5
23
1
5
23
65
23
1
0
2
23
25
Finding the Dual of LP (32)
max z
min w
( y1 0)
(y2 0)
( y3 urs)
y1
y2
y3
(x1 0)
(x2 0)
(x3 0)
x1
1
0
2
3
x2
3
2
1
2
x3
2
1
5
5
15
5*
10*
6 . 7 The Dual Theorem and Its Consequences
311
By the Dual Theorem, the optimal dual objective function value w must equal
summary, the optimal dual solution is
w
565
,
23
y1 51
,
23
y2 5283 , y3 565
.
23
In
9
23
The reader should check that this solution is indeed feasible (all dual constraints are
satisfied with equality) and that
9
51
58
565
w
15(23 ) 5(23 ) 10(23 ) 2
3
Even if the primal is a min problem, we may read the optimal dual solution from the
optimal primal tableau.
How to Read the Optimal Dual Solution from Row 0
of the Optimal Tableau If the Primal Is a Min Problem
Optimal value of dual variable xi
coefficient of si in optimal row 0
if Constraint i is a constraint
Optimal value of dual variable xi
if Constraint i is a constraint (coefficient of ei in optimal row 0)
Optimal value of dual variable xi
if Constraint i is an equality
(coefficient of ai in optimal row 0) M
constraint
To illustrate how the optimal solution to the dual of a min problem may be read from the
optimal primal tableau, consider
min w 3y1 2y2 y3
s.t.
y1 y2 y3 4
s.t.
y1 y2 y3 2
.t.
y1 y2 2y3 6
.t.
2y1, y2, y3 0
s
s
The optimal tableau for this problem is given in Table 26. Thus, the optimal primal solution is w 6, y2 y3 2, y1 0. The dual of the preceding LP is
max z 4x1 2x2 6x3
s.t.
x1 x2 x3 3
s.t.
x1 x2 x3 2
s.t.
x1 x2 2x3 1
x1 0, x2 0, x3 urs
TA B L E
26
Finding the Optimal Solution to the Dual When Primal Is a Min Problem
312
w
y1
y2
y3
e1
s2
a1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
3
2
3
1
0
0
1
0
3M
2
3
1
CHAPTER
6 Sensitivity Analysis and Duality
a3
1 M
1
2
1
rhs
6
2
2
2
From the optimal primal tableau, we find that the optimal dual solution is z 6, x1 3,
x2 0, x3 1.
PROBLEMS
Group A
1 The following questions refer to the Giapetto problem
(see Problem 7 of Section 6.3).
a Find the dual of the Giapetto problem.
b Use the optimal tableau of the Giapetto problem to
determine the optimal dual solution.
c Verify that the Dual Theorem holds in this instance.
2
Consider the following LP:
max z 2x1 x2 x3
s.t.
x1 x2 x3 3
s.t.
x1 x2 x3 2
s.t.
x1 x2 x3 1
s.t.
x1, x2, x3 0
a Find the dual of this LP.
b After adding a slack variable s1, subtracting an excess variable e2, and adding artificial variables a2 and
a3, row 0 of the LP’s optimal tableau is found to be
z 4x1 e2 (M 1)a2 (M 2)a3 0
Find the optimal solution to the dual of this LP.
3
For the following LP,
max z x1 5x2
s.t.
2x1 2x2 0.5
s.t.
x1 3x2 0.5
s.t.
x1, x2 0
row 0 of the optimal tableau is z 0.4s1 1.4s2 ? Determine the optimal z-value for the given LP.
4 The following questions refer to the Bevco problem of
Section 4.10.
a Find the dual of the Bevco problem.
b Use the optimal tableau for the Bevco problem that is
given in Section 4.10 to find the optimal solution to the
6.8
dual. Verify that the Dual Theorem holds in this instance.
5
Consider the following linear programming problem:
max z 4x1 x2
s.t.
3x1 2x2 6
s.t.
6x1 3x2 10
s.t.
6 3x1, x2 0
Suppose that in solving this problem, row 0 of the optimal
tableau is found to be z 2x2 s2 230. Use the Dual Theorem to prove that the computations must be incorrect.
6 Show that (for a max problem) if the ith primal constraint
is a constraint, then the optimal value of the ith dual
variable may be written as (coefficient of ai in optimal
row 0) M.
Group B
7 In this problem, we use weak duality to prove Lemma 3.
a Show that Lemma 3 is equivalent to the following:
If the dual is feasible, then the primal is bounded. (Hint:
Do you remember, from plane geometry, what the contrapositive is?)
b Use weak duality to show the validity of the form of
Lemma 3 given in part (a). (Hint: If the dual is feasible,
then there must be a dual feasible point having a
w-value of, say, wo. Now use weak duality to show that
the primal is bounded.)
8 Following along the lines of Problem 7, use weak duality
to prove Lemma 4.
9 Use the information given in Problem 8 of Section 6.3
to determine the dual of the Dorian Auto problem and its
optimal solution.
Shadow Prices
We now return to the concept of shadow price that was discussed in Section 6.1. A more
formal definition follows.
The shadow price of the ith constraint is the amount by which the optimal
z-value is improved (increased in a max problem and decreased in a min problem)
if we increase bi by 1 (from bi to bi 1).†
DEFINITION ■
This assumes that after the right-hand side of Constraint i has been changed to bi 1, the current basis remains optimal.
†
6 . 8 Shadow Prices
313
By using the Dual Theorem, we can easily determine the shadow price of the ith constraint. To illustrate, we find the shadow price of the second constraint (finishing hours)
of the Dakota problem. Let cBVB1 [ y1 y2 y3] [0 10 10] be the optimal solution to the dual of the max problem. From the Dual Theorem, we know that
Optimal z-value when rhs of constraints are (b1 48, b2 20, b3 8)
48y1 20y2 8y3
(31)
What happens to the optimal z-value for the Dakota problem if b2 (currently 20 finishing hours) is increased by 1 unit (to 21 hours)? We know that changing a right-hand
side may cause the current basis to no longer be optimal (see Section 6.3). For the moment, however, we assume that the current basis remains optimal when we increase b2 by
1. Then cBV and B1 remain unchanged, so the optimal solution to the dual of the Dakota
problem remains unchanged.
We next find
Optimal z-value when rhs of finishing constraint is 21 48y1 21y2 8y3
(35)
Subtracting (34) from (35) yields
Change in optimal z-value if finishing hours are increased by 1
shadow price for finishing constraint 2
y2 10
(36)
This example shows that the shadow price of the ith constraint of a max problem is the
optimal value of the ith dual variable. The shadow prices are the dual variables, so we
know that the shadow price for a constraint will be nonnegative; for a constraint,
nonpositive; and for an equality constraint, unrestricted in sign. The examples discussed
later in this section give intuitive justifications for these sign conventions.
Similar reasoning can be used to show that if (in a maximization problem) the righthand side of the ith constraint is increased by an amount bi, then (assuming the current
basis remains optimal) the new optimal z-value may be found from
New optimal z-value old optimal z-value bi(Constraint i shadow price) (37)
For a minimization problem, the shadow price of the ith constraint is the amount by
which a unit increase in the right-hand side improves, or decreases, the optimal z-value
(assuming that the current basis remains optimal). It can be shown that the shadow price
of the ith constraint of a min problem (optimal value of the ith dual variable). If the
right-hand side is increased by an amount bi, then (assuming the current basis remains
optimal) the new optimal z-value may be found from
New optimal z-value old optimal z-value bi(Constraint i shadow price) (37 )
The following three examples should clarify the shadow price concept.
EXAMPLE
11
Shadow Prices for Normal Max Problem
For the Dakota problem:
1
Find and interpret the shadow prices
If 18 finishing hours were available, what would be Dakota’s revenue? (It can be
shown by the methods of Section 6.3 that if 16 finishing hours 24, the current basis remains optimal.)
2
If 9 carpentry hours were available, what would be Dakota’s revenue? (For
pentry hours 10, the current basis remains optimal.)
3
314
CHAPTER
6 Sensitivity Analysis and Duality
20
3
car-
If 30 board feet of lumber were available, what would be Dakota’s revenue? (For
24 lumber , the current basis remains optimal.)
4
If 30 carpentry hours were available, why couldn’t the shadow price for the carpentry
constraint be used to determine the new z-value?
5
Solution
1 In Section 6.7, we found the optimal solution to the Dakota dual to be y1 0, y2 10, y3 10. Thus, the shadow price for the lumber constraint is 0; for the finishing constraint, 10; and for the carpentry constraint, 10. The fact that the lumber constraint has a
shadow price of 0 means that increasing the amount of available lumber by 1 board foot
(or any amount) will not increase revenue. This is reasonable because we are currently using only 24 of the available 48 board feet of lumber, so adding any more will not do
Dakota any good. Dakota’s revenue would increase by $10 if 1 more finishing hour were
available. Similarly, 1 more carpentry hour would increase Dakota’s revenue by $10. In
this problem, the shadow price of the ith constraint may be thought of as the maximum
amount that the company would pay for an extra unit of the resource associated with the
ith constraint. For example, an extra carpentry hour would raise revenue by y3 $10 (see
Example 12 for a max problem in which this interpretation is invalid). Thus, Dakota could
pay up to $10 for an extra carpentry hour and still be better off. Similarly, the company
would be willing to pay nothing ($0) for an extra board foot of lumber and up to $10 for
an extra finishing hour. To answer questions 2–4, we apply (37), using the fact that the
old z-value 280.
y2 10, b2 18 20 2. The current basis is still optimal because 16 18
24. Then (37) yields (new revenue) 280 10(2) $260.
2
y3 10, b3 9 8 1. Because 230 9 10, the current basis remains optimal.
Then (37) yields (new revenue) 280 10(1) $290.
3
4 y1 0, b1 30 48 18. Because 24 30 , the current basis is still optimal. Then (37) yields (new revenue) 280 0(18) $280.
If b3 30, the current basis is no longer optimal, because 30 10. This means that
BV (and therefore cBVB1) changes, and we cannot use the current set of shadow prices
to determine the new revenue level.
5
Intuitive Explanation of the Sign of Shadow Prices
We can now give an intuitive explanation of why (in a max problem) the shadow price of
a constraint will always be nonnegative. Consider the following situation: We are given
two LP max problems (LP 1 and LP 2) that have the same objective functions. Suppose
that every point that is feasible for LP 1 is also feasible for LP 2. This means that LP 2’s
feasible region contains all the points in LP 1’s feasible region and possibly some other
points. Then the optimal z-value for LP 2 must be at least as large as the optimal z-value
for LP 1. To see this, suppose that point x (with z-value z ) is optimal for LP 1. Because
x is also feasible for LP 2 (which has the same objective function as LP 1), LP 2 can attain a z-value of z (by using the feasible point x ). It is also possible that by using one of
the points feasible for only LP 2 (and not for LP 1), LP 2 might do better than z . In short,
adding points to the feasible region of a max problem cannot decrease the optimal z-value.
We can use this observation to show why a constraint must have a nonnegative
shadow price. For the Dakota problem, if we increase the right-hand side of the carpentry constraint by 1 (from 8 to 9), we see that all points that were originally feasible re-
6 . 8 Shadow Prices
315
main feasible, and some new points (which use 8 and 9 carpentry hours) may be
feasible. Thus, the optimal z-value cannot decrease, and the shadow price for the carpentry constraint must be nonnegative.
The purpose of the following example is to show that (contrary to what many books
say) the shadow price of a constraint is not always the maximum price you would be
willing to pay for an additional unit of a resource.
EXAMPLE
12
Shadow Price as a Premium
Leatherco manufactures belts and shoes. A belt requires 2 square yards of leather and 1
hour of skilled labor. A pair of shoes requires 3 sq yd of leather and 2 hours of skilled labor. As many as 25 sq yd of leather and 15 hours of skilled labor can be purchased at a
price of $5/sq yd of leather and $10/hour of skilled labor. A belt sells for $23, and a pair
of shoes sells for $40. Leatherco wants to maximize profits (revenues costs). Formulate an LP that can be used to maximize Leatherco’s profits. Then find and interpret the
shadow prices for this LP.
Solution
Define
x1 number of belts produced
x2 number of pairs of shoes produced
After noting that
Cost/belt 2(5) 1(10) $20
Cost/pair of shoes 3(5) 2(10) $35
we find that Leatherco’s objective function is
max z (23 20)x1 (40 35)x2 3x1 5x2
Leatherco faces the following two constraints:
Constraint 1
Leatherco can use at most 25 sq yd of leather.
Constraint 2
Leatherco can use at most 15 hours of skilled labor.
Constraint 1 is expressed by
2x1 3x2 25
(Leather constraint)
while Constraint 2 is expressed by
x1 2x2 15
(Skilled-labor constraint)
After adding the sign restrictions x1 0 and x2 0, we obtain the following LP:
max z 3x1 5x2
s.t.
2x1 3x2 25
s.t.
x1 2x2 15
2x1, x2 0
s.t.
(Leather constraint)
(Skilled-labor constraint)
After adding slack variables s1 and s2 to the leather and skilled-labor constraints, respectively, we obtain the optimal tableau shown in Table 27. Thus, the optimal solution to
Leatherco’s problem is z 40, x1 5, x2 5. The shadow prices are
y1 leather shadow price coefficient of s1 in optimal row 0 1
y2 skilled-labor shadow price coefficient of s2 in optimal row 0 1
316
CHAPTER
6 Sensitivity Analysis and Duality
TA B L E
27
Optimal Tableau for Leatherco
Basic
Variable
z x1 x2 2s1 3s2 40
z x1 x2 2s1 3s2 5
z x1 x2 2s1 2s2 5
z1 40
x1 5
x2 5
The meaning of the leather shadow price is that if one more square yard of leather were
available, then Leatherco’s objective function (profits) would increase by $1. Let’s look further at what happens if an additional square yard of leather is available. Because s1 is nonbasic, the extra square yard of leather will be purchased. Also, because s2 is nonbasic, we
will still use all available labor. This means that the $1 increase in profits includes the cost
of purchasing an extra square yard of leather. If the availability of an extra square yard of
leather increases profits by $1, then it must be increasing revenue by 1 5 $6. Thus, the
maximum amount Leatherco should pay for an extra square yard of leather is $6 (not $1).
Another way to see this is as follows: If we purchase another square yard of leather at
the current price of $5, profits increase by y1 $1. If we purchase another square yard
of leather at a price of $6 $5 $1, then profits increase by $1 $1 $0. Thus, the
most Leatherco would be willing to pay for an extra square yard of leather is $6.
Similarly, the most Leatherco would be willing to pay for an extra hour of labor is y2 (cost of an extra hour of skilled labor) 1 10 $11. In this problem, we see that the
shadow price for a resource represents the premium over and above the cost of the resource
that Leatherco would be willing to pay for an extra unit of resource.
The two preceding examples show that we must be careful when interpreting the
shadow price of a constraint. Remember that the shadow price for a constraint in a max
problem is the amount by which the objective function increases if the right-hand side is
increased by 1.
The following example illustrates the interpretation of the shadow prices of and
equality constraints.
EXAMPLE
13
Shadow Prices for and Constraints
Steelco has received an order for 100 tons of steel. The order must contain at least 3.5
tons of nickel, at most 3 tons of carbon, and exactly 4 tons of manganese. Steelco receives
$20/ton for the order. To fill the order, Steelco can combine four alloys, whose chemical
composition is given in Table 28. Steelco wants to maximize the profit (revenues costs)
obtained from filling the order. Formulate the appropriate LP. Also find and interpret the
shadow prices for each constraint.
Solution
After we define xi number of tons of alloy i used to fill the order, Steelco’s LP is seen
to be
max z (20 12)x1 (20 10)x2 (20 8)x3 (20 6)x4
s.t.
0.06x1 0.03x2 0.02x3 0.01x4 3.5
(Nickel constraint)
s.t.
0.03x1 0.02x2 0.05x3 0.06x4 3.5
(Carbon constraint)
s.t.
0.08x1 0.03x2 0.02x3 0.01x4 4.5
(Manganese constraint)
s.t.
0.08x1 0.03x2 0.02x3 0.01x4 100.
(Order size 100 tons)
s.t.
0.08 0.03 0.02 0.02x1, x2, x3, x4 0
6 . 8 Shadow Prices
317
TA B L E
28
Relevant Information for Steelco
Alloy (%)
Cement
Nickel
Carbon
Manganese
Cost/ton ($)
1
2
3
4
6
3
8
12
3
2
3
10
2
5
2
8
1
6
1
6
After adding a slack variable s2, subtracting an excess variable e1, and adding artificial
variables a1, a3, and a4, the following optimal solution is obtained: z 1,000, s2 0.25,
x1 25, x2 62.5, x4 12.5, e1 0, x3 0. The optimal row 0 is
z 400e1 (M 400)a1 (M 200)a3 (M 16)a4 1,000
Using (31), (31 ), and (31), we obtain
Shadow price of nickel constraint (coefficient of e1 in optimal row 0)
Shadow price of nickel constraint 400
Shadow price of carbon constraint coefficient of s2 in optimal row 0
Shadow price of carbon constraint 0
Shadow price of manganese constraint (coefficient of a3 in optimal row 0) M
Shadow price of manganese constraint 200
Shadow price of order size constraint (coefficient of a4 in optimal row 0) M
Shadow price of order size constraint 16
By the sensitivity analysis procedures of Section 6.3, it can be shown that the current basis remains optimal if 3.46 b1 3.6. As long as the nickel requirement is in this range,
increasing the nickel requirement by an amount b1 will increase Steelco’s profits by
400 b1. For example, increasing the nickel requirement to 3.55 tons ( b1 0.05)
would “increase” (actually decrease) profits by 400(0.05) $20. The nickel constraint
has a negative shadow price because increasing the right-hand side of the nickel constraint
makes it harder to satisfy the nickel constraint. In fact, an increase in the nickel requirement forces Steelco to use more of the expensive type 1 alloy. This raises costs and lowers profits. As we have already seen, the shadow price of a constraint (in a max problem) will always be nonpositive, because increasing the right-hand side of a constraint
eliminates points from the feasible region. Thus, the optimal z-value must decrease or remain unchanged.
By the Section 6.3 sensitivity analysis procedures, for 2.75 b2 , the current basis remains optimal. As stated before, the carbon constraint has a zero shadow price. This
means that if we increase Steelco’s carbon requirement, Steelco’s profit will not change.
Intuitively, this is because our present optimal solution contains only 2.75 3 tons of carbon. Thus, relaxing the carbon requirement won’t enable Steelco to reduce costs, so
Steelco’s profit will remain unchanged.
By the sensitivity analysis procedures, the current basis remains optimal if 3.83 b3 4.07. The shadow price of the third (manganese) constraint is 200, so we know that
as long as the manganese requirement remains in the given range, increasing it by an
amount of b3 will increase profit by 200 b3. For example, if the manganese requirement
were 4.05 tons ( b3 0.05), then profits would increase by (0.05)200 $10.
318
CHAPTER
6 Sensitivity Analysis and Duality
By the sensitivity analysis procedures, the current basis remains optimal if 91.67 b4 103.12. Because the shadow price of the fourth (order size) constraint is 16, increasing the order size by b4 tons (with nickel, carbon, and manganese requirements unchanged) would increase profits by 16 b4. For example, the profit from a 103-ton order
that required 3.5 tons of nickel, 3 tons of carbon, and exactly 4 tons of manganese
would be 1,000 3(16) $1,048.
In this problem, both equality constraints had positive shadow prices. In general, we
know that it is possible for an equality constraint’s dual variable (and shadow price) to be
negative. If this occurs, then the equality constraint will have a negative shadow price. To
illustrate this possibility, suppose that Steelco’s customer required exactly 4.5 tons of manganese in the order. Because 4.5 4.07, the current basis is no longer optimal. If we
solve Steelco’s LP again, it can be shown that the shadow price for the manganese constraint has changed to 54.55. This means that an increase in the manganese requirement
will decrease Steelco’s profits.
Interpretation of the Dual Prices Column
of the LINDO Output
For a max problem, LINDO gives the values of the shadow prices in the DUAL PRICES
column of the output. The dual price for row i 1 on the LINDO output is the shadow
price for the ith constraint and the optimal value for the ith dual variable. Thus, in Figure
4, we see that for the Dakota problem,
y1 shadow price for lumber constraint row 2 dual price 0
y2 shadow price for finishing constraint row 3 dual price 10
y3 shadow price for carpentry constraint row 4 dual price 10
For a maximization problem, the vector cBVB1 (needed for pricing out new activities)
is the same as the vector of dual prices given in the LINDO output. For the Dakota problem, we would price out new activities using cBVB1 [0 10 10].
For a minimization problem, the entry in the DUAL PRICE column for any constraint
is the shadow price. Thus, from the LINDO printout in Figure 6, we find that the shadow
prices for the constraints in the diet problem are as follows: calorie 0; chocolate 2.5¢; sugar 7.5¢; and fat 0. This implies that
1 Increasing the calorie requirement by 1 will leave the cost of the optimal diet unchanged.
Increasing the chocolate requirement by 1 oz will decrease the cost of the optimal diet
by 2.5¢ (that is, increase the cost of the optimal diet by 2.5¢).
2
Increasing the sugar requirement by 1 oz will decrease the cost of the optimal diet by
7.5¢ (that is, increase the cost of the optimal diet by 7.5¢).
3
Increasing the fat requirement by 1 oz will leave the cost of the optimal diet unchanged.
4
The entry in the DUAL PRICE column for any constraint is, however, the negative of
the constraint’s dual variable. Thus, for the diet problem, we see from Figure 6 that the
optimal dual solution to the diet problem is given by cBVB1 [0 2.5 7.5 0]. When
6 . 8 Shadow Prices
319
pricing out a new activity for a minimization problem, use the negative of each dual price
as the corresponding element of cBVB1.
Remember that for any LP, the dual prices remain valid only as long as the current basis remains optimal. As stated in Section 6.3, the range of right-hand side values for which
the current basis remains optimal may be obtained from the RIGHTHAND SIDE RANGES
block of the LINDO output.
Degeneracy and Sensitivity Analysis
When the optimal solution to an LP is degenerate, caution must be used when interpreting the LINDO output. Recall from Section 4.11 that a bfs is degenerate if at least one
basic variable in the optimal solution equals 0. For an LP with m constraints, if the
LINDO output indicates that less than m variables are positive, then the optimal solution
is a degenerate bfs. To illustrate, consider the following LP:
max z 6X1 4X2 3X3 2X4
s.t.
2X1 3X2 X3 .2X4 400
s.t.
X1 X2 2X3 . X4 150
s.t.
2X1 X2 X3 .5X4 200
s.t.
3X1 X2 2X3 .5X4 250
s.t.
3 3 2 .5X1, X2, X3, X4 0
The LINDO output for this LP is in Figure 9. The LP has four constraints and only two
positive variables in the optimal solution, so the bfs is degenerate. By the way, results from
using the TABLEAU command indicate that the optimal basis is BV {X2, X3, S3, X1}.
We now discuss three “oddities” that may occur when the optimal solution found by
LINDO is degenerate.
Oddity 1 At least one constraint’s RANGE IN WHICH THE BASIS IS UNCHANGED
will have a 0 ALLOWABLE INCREASE or ALLOWABLE DECREASE. This means that
for at least one constraint the DUAL PRICE can tell us about the new z-value for either
an increase or a decrease in the constraint’s right-hand side, but not both.
To understand Oddity 1, consider the first constraint. Its AI is 0. Thus, its DUAL
PRICE of .50 cannot be used to determine a new z-value resulting from any increase in
the first constraint’s right-hand side.
Oddity 2 For a nonbasic variable to become positive, its objective function coefficient
may have to be improved by more than its REDUCED COST.
To understand Oddity 2 consider the nonbasic variable X4; its REDUCED COST is
1.5. If we increase X4’s objective function coefficient by 2, however, we still find that the
new optimal solution has X4 0 because the change affects the set of basic variables, but
not the LP’s optimal solution. If we increase X4’s objective function coefficient by 4.5 or
more, then we find that X4 is positive.
If you increase a variable’s objective function coefficient by more than its AI or
decrease it by more than its AD, then the optimal solution to the LP may remain the same.
Oddity 3 is similar to Oddity 2. To understand Oddity 3, consider the nonbasic variable X4; its AI is 1.5. If we increase X4’s objective function coefficient by 2, however, we
still find that the new optimal solution is unchanged. This oddity occurs because the
change affects the set of basic variables but not the LP’s optimal solution.
Oddity 3
320
CHAPTER
6 Sensitivity Analysis and Duality
MAX
6 X1 + 4 X2 + 3 X3 + 2 X4
SUBJECT TO
2)
2 X1 + 3 X2 + X3 + 2 X4 <=
3)
X1 + X2 + 2 X3 + X4 <=
150
4)
2 X1 + X2 + X3 + 0.5 X4 <=
5)
3 X1 + X2 + X4 <=
250
END
LP OPTIMUM FOUND AT STEP
400
200
3
OBJECTIVE FUNCTION VALUE
1)
700.00000
VARIABLE
X1
X2
X3
X4
ROW
2)
3)
4)
5)
VALUE
50.000000
100.000000
.000000
.000000
SLACK
REDUCED COST
.000000
.000000
.000000
1.500000
NO. ITERATIONS=
OR SURPLUS
.000000
.000000
.000000
.000000
DUAL PRICES
.500000
1.250000
.000000
1.250000
3
RANGES IN WHICH THE BASIS IS UNCHANGED:
VARIABLE
X1
X2
X3
X4
ROW
CURRENT
RHS
400.000000
150.000000
200.000000
250.000000
2
3
4
5
THE TABLEAU
ROW (BASIS)
1 ART
2
X2
3
X3
4 SLK
4
5
X1
FIGURE
9
ROW
1
2
3
4
5
OBJ COEFFICIENT RANGES
ALLOWABLE
INCREASE
3.000000
5.000000
3.000000
1.500000
CURRENT
COEF
6.000000
4.000000
3.000000
2.000000
SLK
3
1.250
-.250
.583
-.500
.083
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
.000000
.000000
INFINITY
.000000
X1
.000
.000
.000
.000
1.000
SLK
X2
.000
1.000
.000
.000
.000
4
.000
.000
.000
1.000
.000
X3
.000
.000
1.000
.000
.000
ALLOWABLE
DECREASE
3.000000
1.000000
2.142857
INFINITY
ALLOWABLE
DECREASE
200.000000
.000000
.000000
120.000000
X4
1.500
.500
.167
-.500
.167
SLK
2
.500
.500
-.167
.000
-.167
SLK
5
1.250 700.000
-.250 100.000
-.083
.000
-.500
.000
.417
50.000
PROBLEMS
Group A
1
Use the Dual Theorem to prove (37).
2 The following questions refer to the Sugarco problem
(Problem 6 of Section 6.3):
a Find the shadow prices for the Sugarco problem.
b If 60 oz of sugar were available, what would be Sugarco’s profit?
c How about 40 oz of sugar?
d How about 30 oz of sugar?
6 . 8 Shadow Prices
321
TA B L E
29
Product
Resource
1
2
Skilled labor (hours)
Unskilled labor (hours)
Raw material (units)
3
2
1
4
3
2
3 Suppose we are working with a min problem and
increase the right-hand side of a constraint. What can
happen to the optimal z-value?
4 Suppose we are working with a min problem and
increase the right-hand side of a constraint. What can
happen to the optimal z-value?
5 A company manufactures two products (1 and 2). Each
unit of product 1 can be sold for $15, and each unit of
product 2 for $25. Each product requires raw material and
two types of labor (skilled and unskilled) (see Table 29).
Currently, the company has available 100 hours of skilled
labor, 70 hours of unskilled labor, and 30 units of raw
material. Because of marketing considerations, at least 3
units of product 2 must be produced.
a Explain why the company’s goal is to maximize
revenue.
b The relevant LP is
max z 15x1 25x2
s.t.
3x1 4x2 100
(Skilled labor constraint)
s.t.
2x1 3x2 70
(Unskilled labor constraint)
s.t.
x1 2x2 30
(Raw material constraint)
s.t.
2x1 2x2 3
(Product 2 constraint)
x1, x2 0
The optimal tableau for this problem has the following row 0:
z 15s3 5e4 (M 5)a4 435
The optimal solution to the LP is z 435, x1 24, x2 3. Find and interpret the shadow price of each constraint.
How much would the company be willing to pay for an additional unit of each type of labor? How much would it be
willing to pay for an extra unit of raw material?
c Assuming the current basis remains optimal (it does),
what would the company’s revenue be if 35 units of raw
material were available?
d With the current basis optimal, what would the company’s revenue be if 80 hours of skilled labor were available?
e With the current basis optimal, what would the company’s new revenue be if at least 5 units of product 2
were required? How about if at least 2 units of product
2 were required?
6 Suppose that the company in Problem 5 owns no labor
and raw material but can purchase them at the following
prices: as many as 100 hours of skilled labor at $3/hour, 70
hours of unskilled labor at $2/hour, and 30 units of raw
material at $1 per unit of raw material. If the company’s
goal is to maximize profit, show that the appropriate LP is
322
CHAPTER
6 Sensitivity Analysis and Duality
max z x1 5x2
s.t.
3x1 4x2 100
s.t.
2x1 3x2 70
s.t.
x1 2x2 30
s.t.
2x21 2x2 3
s.t.
2 3x1, x2 0
The optimal row 0 for this LP is
z 1.5x1 2.5s3 Ma4 75
and the optimal solution is z 75, x1 0, x2 15. In answering parts (a) and (b), assume that the current basis remains optimal.
a How much should the company pay for an extra unit
of raw material?
b How much should the company pay for an extra
hour of skilled labor? Unskilled labor? (Be careful here!)
7 For the Dorian problem (see Problem 8 of Section 6.3),
answer the following questions:
a What would Dorian’s cost be if 40 million HIW exposures were required?
b What would Dorian’s cost be if only 20 million HIM
exposures were required?
8 If it seems difficult to believe that the shadow price of
an equality constraint should be urs, try this problem.
Consider the following two LPs:
(LP 1) max z x2
(LP 1) s.t.
x1 x2 2
(LP 1) s.t.
x1, x2 0
(LP 1) max z x2
(LP 2) s.t.
x1 x2 2
(LP 2) s.t.
x1, x2 0
In which LP will the constraint have a positive shadow
price? Which will have a negative shadow price?
Group B
9 For the Dakota problem, suppose that 22 finishing hours
and 9 carpentry hours are available. What would be the new
optimal z-value? [Hint: Use the 100% Rule to show that the
current basis remains optimal, and mimic (34)–(36).]
10 For the diet problem, suppose at least 8 oz of chocolate
and at least 9 oz of sugar are required (with other
requirements remaining the same). What is the new optimal
z-value?
11
Consider the LP:
max z 9x1 8x2 5x3 4x4
s.t.
x1 x2 x3 x4 200
s.t.
x 1 x2 x3 x4 150
s.t.
x1 x2 x3 x4 350
s.t.
2x1 x2 x3 x4 550
s.t.
2 x1, x2, x3, x4 0
a Solve this LP with LINDO and use your output to
show that the optimal solution is degenerate.
b Use your LINDO output to find an example of Oddities 1–3.
6.9
Duality and Sensitivity Analysis
Our proof of the Dual Theorem demonstrated the following result: Assuming that a set of basic variables BV is feasible, then BV is optimal (that is, each variable in row 0 has a nonnegative coefficient) if and only if the associated dual solution (cBVB1) is dual feasible.
This result can be used for an alternative way of doing the following types of sensitivity analysis (see list of changes at the beginning of Section 6.3).
Change 1
Changing the objective function coefficient of a nonbasic variable
Change 4
Changing the column of a nonbasic variable
Change 5
Adding a new activity
In each case, the change leaves BV feasible. BV will remain optimal if the BV row 0 remains nonnegative. Primal optimality and dual feasibility are equivalent, so we see that
the above changes will leave the current basis optimal if and only if the current dual solution cBVB1 remains dual feasible. If the current dual solution is no longer dual feasible, then BV will be suboptimal, and a new optimal solution must be found.
We illustrate the duality-based approach to sensitivity analysis by reworking some of
the Section 6.3 illustrations. Recall that these illustrations dealt with the Dakota problem:
max z 60x1 30x2 20x3
s.t.
8x1 1.6x2 1.5x3 s.t.
4x1 1.2x2 1.5x3 s.t.
2x1 1.5x2 0.5x3 s.t.
2 1.5 0.5x1, x2, x3 48
20
8
0
(Lumber constraint)
(Finishing constraint)
(Carpentry constraint)
The optimal solution was z 280, s1 24, x3 8, x1 2, x2 0, s2 0, s3 0. The
only nonbasic decision variable in the optimal solution is x2 (tables). The dual of the
Dakota problem is
s.t.
min w 48y1 20y2 8y3
s.t.
8y1 1.4y2 1.2y3 60
s.t.
6y1 1.2y2 1.5y3 30
s.t.
y1 1.5y2 0.5y3 20
6 1.5 0.5
y1, y2, y3 0
(Desk constraint)
(Table constraint)
(Chair constraint)
Recall that the optimal dual solution—and therefore the constraint shadow prices—are
y1 0, y2 10, y3 10. We now show how knowledge of duality can be applied to sensitivity analysis.
EXAMPLE
14
Changing Objective Function Coefficient of Nonbasic Variable
We want to change the objective function coefficient of a nonbasic variable. Let c2 be the
coefficient of x2 (tables) in the Dakota objective function. In other words, c2 is the price
at which a table is sold. For what values of c2 will the current basis remain optimal?
Solution
If y1 0, y2 10, y3 10 remains dual feasible, then the current basis—and the values
of all the variables—are unchanged. Note that if the objective function coefficient for x2
is changed, then the first and third dual constraints remain unchanged, but the second
(table) dual constraint is changed to
6y1 2y2 1.5y3 c2
6 . 9 Duality and Sensitivity Analysis
323
If y1 0, y2 10, y3 10 satisfies this inequality, then dual feasibility (and therefore
primal optimality) is maintained. Thus, the current basis remains optimal if c2 satisfies
6(0) 2(10) 1.5(10) c2, or c2 35. This shows that for c2 35, the current basis
remains optimal. Conversely, if c2 35, the current basis is no longer optimal. This
agrees with the result obtained in Section 6.3.
Using shadow prices, we may give an alternative interpretation of this result. We can
use shadow prices to compute the implied value of the resources needed to construct a
table (see Table 30). A table uses $35 worth of resources, so the only way producing tables can increase Dakota’s revenues is if a table sells for more than $35. Thus, the current
basis fails to be optimal if c2 35, and the current basis remains optimal if c2 35.
TA B L E
30
Why a Table Is Profitable at $35/Table
Resource
in a
Table
Lumber
Finishing
Carpentry
EXAMPLE
15
Shadow Price
of Resource ($)
Amount of
Resource Used
10
10
10
6.5 board ft
2.5 hours
1.5 hours
Value of
Resource Used
1.10(6)
1.10(2)
10(1.5)
Total:
$05
$20
$15
$35
Changing a Nonbasic Variable
We want to change the column for a nonbasic activity. Suppose a table sells for $43 and
uses 5 board feet of lumber, 2 finishing hours, and 2 carpentry hours. Does the current
basis remain optimal?
Solution
Changing the column for the nonbasic variable “tables” leaves the first and third dual constraints unchanged but changes the second to
5y1 2y2 2y3 43
Because y1 0, y2 10, y3 10 does not satisfy the new second dual constraint, dual
feasibility is not maintained, and the current basis is no longer optimal. In terms of
shadow prices, this result is reasonable (see Table 31). Each table uses $40 worth of resources and sells for $43, so Dakota can increase its revenue by 43 40 $3 for each
table that is produced. Thus, the current basis is no longer optimal, and x2 (tables) will be
basic in the new optimal solution.
31
TA B L E
Shadow Price Interpretation of Table Production Decision ($40/Table)
Resource
in a
Table
Lumber
Finishing
Carpentry
324
CHAPTER
Shadow Price
of Resource ($)
Amount of
Resource Used
Value of
Resource Used ($)
10
10
10
5 board ft
2 hours
2 hours
10(5) $05
10(2) $20
10(2) $20
Total: $40
6 Sensitivity Analysis and Duality
EXAMPLE
16
Adding a New Activity
We want to add a new activity. Suppose Dakota is considering manufacturing footstools
(x4). A footstool sells for $15 and uses 1 board foot of lumber, 1 finishing hour, and 1
carpentry hour. Does the current basis remain optimal?
Solution
Introducing the new activity (footstools) leaves the three dual constraints unchanged, but
the new variable x4 adds a new dual constraint (corresponding to footstools). The new
dual constraint will be
y1 y2 y3 15
The current basis remains optimal if y1 0, y2 10, y3 10 satisfies the new dual constraint. Because 0 10 10 15, the current basis remains optimal. In terms of shadow
prices, a stool utilizes 1(0) $0 worth of lumber, 1(10) $10 worth of finishing hours,
and 1(10) $10 worth of carpentry time. A stool uses 0 10 10 $20 worth of resources and sells for only $15, so Dakota should not make footstools, and the current basis remains optimal.
PROBLEMS
Group A
1 For the Dakota problem, suppose computer tables sell
for $35 and use 6 board feet of lumber, 2 hours of finishing
time, and 1 hour of carpentry time. Is the current basis still
optimal? Interpret this result in terms of shadow prices.
2 The following questions refer to the Sugarco problem
(Problem 6 of Section 6.3):
a For what values of profit on a Type 1 candy bar does
the current basis remain optimal?
b If a Type 1 candy bar used 0.5 oz of sugar and
0.75 oz of chocolate, would the current basis remain
optimal?
c A Type 4 candy bar is under consideration. A Type
4 candy bar yields a 10¢ profit and uses 2 oz of sugar
and 1 oz of chocolate. Does the current basis remain
optimal?
6.10
3 Suppose, in the Dakota problem, a desk still sells for
$60 but now uses 8 board ft of lumber, 4 finishing hours,
and 15 carpentry hours. Determine whether the current
basis remains optimal. What is wrong with the following
reasoning?
The change in the column for desks leaves the second
and third dual constraints unchanged and changes the first to
8y1 4y2 15y3 60
Because y1 0, y2 10, y3 10 satisfies the new dual
constraint, the current basis remains optimal.
Complementary Slackness
The Theorem of Complementary Slackness is an important result that relates the optimal
primal and dual solutions. To state this theorem, we assume that the primal is a normal
max problem with variables x1, x2, . . . , xn and m constraints. Let s1, s2, . . . , sm be the
slack variables for the primal. Then the dual is a normal min problem with variables y1,
y2, . . . , ym and n constraints. Let e1, e2, . . . , en be the excess variables for the dual.
A statement of the Theorem of Complementary Slackness follows.
6 . 1 0 Complementary Slackness
325
THEOREM
THEOREM 2
2
Let
x
x1
x2
xn
be a feasible primal solution and y [y1 y2
ym] be a feasible dual solution.
Then x is primal optimal and y is dual optimal if and only if
siyi 0
ejxj 0
(i 1, 2, . . . , m)
( j 1, 2, . . . , n)
(38)
(39)
In Problem 4 at the end of this section, we sketch the proof of the Theorem of Complementary Slackness, but first we discuss the intuitive meaning of this theorem.
From (38), it follows that the optimal primal and dual solutions must satisfy
ith primal slack 0 implies ith dual variable 0
ith dual variable 0 implies ith primal slack 0
(40)
(41)
From (39), it follows that the optimal primal and dual solutions must satisfy
jth dual excess 0 implies jth primal variable 0
jth primal variable 0 implies jth dual excess 0
(42)
(43)
From (40) and (42), we see that if a constraint in either the primal or dual is nonbinding (has either si 0 or ej 0), then the corresponding variable in the other (or
complementary) problem must equal 0. Hence the name complementary slackness.
To illustrate the interpretation of the Theorem of Complementary Slackness, we return
to the Dakota problem. Recall that the primal is
max z 60x1 30x2 20x3
s.t.
8x1 1.6x2 0.0x3 48
s.t.
4x1 1.2x2 1.5x3 20
s.t.
2x1 1.5x2 0.5x3 8
s.t.
2 1.5 0.5x1, x2, x3 0
(Lumber constraint)
(Finishing constraint)
(Carpentry constraint)
and the dual is
min w 48y1 20y2 8y3
s.t.
8y1 1.4y2 1.2y3 60
s.t.
6y1 1.2y2 1.5y3 30
s.t.
6y1 1.5y2 0.5y3 20
y1, y2, y3 0
(Desk constraint)
(Table constraint)
(Chair constraint)
The optimal primal solution is
z
s1 s2 s3 326
CHAPTER
280,
x1 2,
x2 0,
x3 8
48 (8(2) 6(0) 1(8)) 24
20 (4(2) 2(0) 1.5(8)) 0
8 (2(2) 1.5(0) 0.5(8)) 0
6 Sensitivity Analysis and Duality
The optimal dual solution is
w
e1
e2
e3
y2 10,
y3 10
280,
y1 0,
(8(0) 4(10) 2(10)) 60 0
(6(0) 2(10) 1.5(10)) 30 5
(1(0) 1.5(10) 0.5(10)) 20 0
For the Dakota problem, (38) reduces to
s1y1 s2y2 s3y3 0
which is indeed satisfied by the optimal primal and dual solutions. Also, (39) reduces to
e1x1 e2x2 e3x3 0
which is also satisfied by the optimal primal and dual solutions.
We now illustrate the interpretation of (40)–(43). Note that (40) tells us that because the
optimal primal solution has s1 0, the optimal dual solution must have y1 0. In the context of the Dakota problem, this means that positive slack in the lumber constraint implies
that lumber must have a zero shadow price. Slack in the lumber constraint means that extra lumber would not be used, so an extra board foot of lumber should indeed be worthless.
Equation (41) tells us that because y2 0 in the optimal dual solution, s2 0 must
hold in the optimal primal solution. This is reasonable because y2 0 means that an extra finishing hour has some value. This can only occur if we are at present using all available finishing hours (or equivalently, if s2 0).
Observe that (42) tells us that because e2 0 in the optimal dual solution, x2 0 must
hold in the optimal primal solution. This is reasonable because e2 6y1 2y2 1.5y3 30. Because y1, y2, and y3 are resource shadow prices, e2 may be written as
e2 (value of resources used by table) (sales price of a table)
Thus, if e2 0, tables are selling for a price that is less than the value of the resources
used to make 1 unit of x2 (tables). This means that no tables should be made (or equivalently, that x2 0). This shows that e2 0 in the optimal dual solution implies that x2 0 must hold in the optimal primal solution.
Note that for the Dakota problem, (43) tells us that x1 0 for the optimal primal solution implies that e1 0. This result simply reflects the following important fact. For
any variable xj in the optimal primal basis, the marginal revenue obtained from producing a unit of xj must equal the marginal cost of the resources used to produce a unit of
xj. This is a consequence of the fact that each basic variable must have a zero coefficient
in row 0 of the optimal primal tableau. In short, (43) is simply the LP version of the wellknown economic maxim that an optimal production strategy must have marginal revenue
equal marginal cost.
To be more specific, observe that x1 0 means that desks are in the optimal basis.
Then
Marginal revenue obtained by manufacturing desk $60
To compute the marginal cost of manufacturing a desk (in terms of shadow prices), note that
Cost of lumber in desk 8(0) $0
Cost of finishing hours used to make a desk 4(10) $40
Cost of carpentry hours used to make a desk 2(10) $20
Marginal cost of producing a desk 0 40 20 $60
Thus, for desks, marginal revenue is equal to marginal cost.
6 . 1 0 Complementary Slackness
327
Using Complementary Slackness to Solve LPs
If the optimal solution to the primal or dual is known, complementary slackness can
sometimes be used to determine the optimal solution to the complementary problem. For
example, suppose we were told that the optimal solution to the Dakota problem was z 280, x1 2, x2 0, x3 8, s1 24, s2 0, s3 0. Can we use Theorem 2 to help us
find the optimal solution to the Dakota dual? Because s1 0, (40) tells us that the optimal dual solution must have y1 0. Because x1 0 and x3 0, (43) implies that the
optimal dual solution must have e1 0, and e3 0. This means that for the optimal dual
solution, the first and third constraints must be binding. We know that y1 0, so we know
that the optimal values of y2 and y3 may be found by solving the first and third dual constraints as equalities (with y1 0). Thus, the optimal values of y2 and y3 must satisfy
4y2 2y3 60
and
1.5y2 0.5y3 20
Solving these equations simultaneously shows that the optimal dual solution must have
y2 10 and y3 10. Thus, complementary slackness has helped us find the optimal dual
solution y1 0, y2 10, y3 10. (From the Dual Theorem, we know, of course, that the
optimal dual solution must have w
280.)
PROBLEMS
Group A
1 Glassco manufactures glasses: wine, beer, champagne,
and whiskey. Each type of glass requires time in the molding
shop, time in the packaging shop, and a certain amount of
glass. The resources required to make each type of glass are
given in Table 32. Currently, 600 minutes of molding time,
400 minutes of packaging time, and 500 oz of glass are
available. Assuming that Glassco wants to maximize
revenue, the following LP should be solved:
max z 6x1 10x2 9x3 20x4
s.t.
4x1 9x2 7x3 10x4 600
(Molding
constraint)
s.t.
x1 x2 3x3 40x4 400
(Packaging
constraint)
s.t.
3x1 4x2 2x3 x4 500
(Glass
constraint)
x1, x2, x3, x4 0
28
00
,
It can be shown that the optimal solution to this LP is z 3
400
20
280
, x4 , x2 0, x3 0, s1 0, s2 0, s3 .
x1 3
3
3
TA B L E
a Find the dual of the Glassco problem.
b Using the given optimal primal solution and the Theorem of Complementary Slackness, find the optimal solution to the dual of the Glassco problem.
c Find an example of each of the complementary slackness conditions, (40)–(43). As in the text, interpret each
example in terms of shadow prices.
2 Use the Theorem of Complementary Slackness to show
that in the LINDO output, the SLACK or SURPLUS and
DUAL PRICE entries for any row cannot both be positive.
3
Consider the following LP:
max z 5x1 3x2 x3
s.t.
2x1 x2 x3 6
s.t.
x1 2x2 x3 7
x1, x2, x3 0
Graphically solve the dual of this LP. Then use complementary slackness to solve the max problem.
32
Glass
Molding time
Packaging time
Glass
Selling price
328
x1
Wine
x2
Beer
x3
Champagne
x4
Whiskey
4 minutes
1 minute
3 oz
$6
9 minutes
1 minute
4 oz
$10
7 minutes
3 minutes
2 oz
$9
10 minutes
40 minutes
1 oz
$20
CHAPTER
6 Sensitivity Analysis and Duality
Group B
4 Let x [x1 x2 x3 s1 s2 s3] be a primal feasible
point for the Dakota problem and y [ y1 y2 y3 e1 e2
e3] be a dual feasible point.
a Multiply the ith constraint (in standard form) of the
primal by yi and sum the resulting constraints.
b Multiply the jth dual constraint (in standard form)
by xj and sum them.
6.11
c Compute: part (a) answer minus part (b) answer.
d Use the part (c) answer and the Dual Theorem to
show that if x is primal optimal and y is dual optimal,
then (38) and (39) hold.
e Use the part (c) answer to show that if (38) and (39)
both hold, then x is primal optimal and y is dual optimal. (Hint: Look at Lemma 2.)
The Dual Simplex Method
When we use the simplex method to solve a max problem (we will refer to the max problem as a primal), we begin with a primal feasible solution (because each constraint in the
initial tableau has a nonnegative right-hand side). At least one variable in row 0 of the initial tableau has a negative coefficient, so our initial primal solution is not dual feasible.
Through a sequence of simplex pivots, we maintain primal feasibility and obtain an optimal solution when dual feasibility (a non-negative row 0) is attained. In many situations,
however, it is easier to solve an LP by beginning with a tableau in which each variable in
row 0 has a nonnegative coefficient (so the tableau is dual feasible) and at least one constraint has a negative right-hand side (so the tableau is primal infeasible). The dual simplex method maintains a nonnegative row 0 (dual feasibility) and eventually obtains a
tableau in which each right-hand side is nonnegative (primal feasibility). At this point, an
optimal tableau has been obtained. Because this technique maintains dual feasibility, it is
called the dual simplex method.
Dual Simplex Method for a Max Problem
Is the right-hand side of each constraint nonnegative? If so, an optimal solution
has been found; if not, at least one constraint has a negative right-hand side, and we go
to step 2.
Step 1
Choose the most negative basic variable as the variable to leave the basis. The
row in which the variable is basic will be the pivot row. To select the variable that enters
the basis, we compute the following ratio for each variable xj that has a negative coefficient in the pivot row:
Step 2
Coefficient of xj in row 0
Choose the variable with the smallest ratio (absolute value) as the entering variable. This
form of the ratio test maintains a dual feasible tableau (all variables in row 0 have nonnegative coefficients). Now use EROs to make the entering variable a basic variable in the
pivot row.
If there is any constraint in which the right-hand side is negative and each variable has a nonnegative coefficient, then the LP has no feasible solution. If no constraint
indicating infeasibility is found, return to step 1.
Step 3
To illustrate the case of an infeasible LP, suppose the dual simplex method yielded a constraint such as x1 2x2 x3 5. Because x1 0, 2x2 0, and x3 0, x1 2x2 x3 0, and the constraint x1 2x2 x3 5 cannot be satisfied. In this case, the original LP must be infeasible.
6 . 1 1 The Dual Simplex Method
329
Three uses of the dual simplex follow:
1
Finding the new optimal solution after a constraint is added to an LP
2
Finding the new optimal solution after changing a right-hand side of an LP
3
Solving a normal min problem
Finding the New Optimal Solution
After a Constraint Is Added to an LP
The dual simplex method is often used to find the new optimal solution to an LP after a
constraint is added. When a constraint is added, one of the following three cases will occur:
Case 1
The current optimal solution satisfies the new constraint.
The current optimal solution does not satisfy the new constraint, but the LP still
has a feasible solution.
Case 2
Case 3
The additional constraint causes the LP to have no feasible solutions.
If Case 1 occurs, then the current optimal solution satisfies the new constraint, and the
current solution remains optimal. To illustrate why this is true, suppose we have added
the constraint x1 x2 x3 11 to the Dakota problem. The current optimal solution
(z 280, x1 2, x2 0, x3 8) satisfies this constraint. To see why this solution remains optimal after the constraint x1 x2 x3 11 is added, recall that adding a constraint to an LP either leaves the feasible region unchanged or eliminates points from the
feasible region. In this case, the Section 6.8 discussion tells us that adding a constraint (to
a max problem) either reduces the optimal z-value or leaves it unchanged. This means that
if we add the constraint x1 x2 x3 11 to the Dakota problem, the new optimal
z-value can be at most 280. The current solution is still feasible and has z 280, so it
must still be optimal.
If Case 2 occurs, the current solution is no longer feasible, so it can no longer be optimal. The dual simplex method can be used to determine the new optimal solution. Suppose that in the Dakota problem, marketing considerations dictate that at least 1 table be
manufactured. This adds the constraint x2 1. Because the current optimal solution has
x2 0, it is no longer feasible and cannot be optimal. To find the new optimal solution,
we subtract an excess variable e4 from the constraint x2 1. This yields the constraint
x2 e4 1. If we multiply this constraint through by 1, we obtain x2 e4 1,
and we can use e4 as a basic variable for this constraint. Appending this constraint to the
optimal Dakota tableau yields Table 33.
Because we are using the row 0 from an optimal tableau, each variable has a nonnegative coefficient in row 0, and we may proceed with the dual simplex method. The
variable e4 1 is the most negative basic variable, so e4 will exit from the basis, and
row 4 will be the pivot row. Because x2 is the only variable with a negative coefficient in
row 4, x2 must enter into the basis (see Table 34).
This is an optimal tableau. Thus, if the constraint x2 1 is added to the Dakota problem, the optimal solution becomes z 275, s1 26, x3 10, x1 34, x2 1, which has
reduced Dakota’s objective function (revenue) by $5 (the reduced cost for tables).
If we had wanted to, we could simply have added the constraint x2 1 to the original
Dakota initial tableau and used the regular simplex method to solve the problem. This
would have entailed adding an artificial variable to the x2 1 constraint and would probably have required many pivots. When we use the dual simplex to solve a problem again
after a constraint has been added, we are taking advantage of the fact that we have already
330
CHAPTER
6 Sensitivity Analysis and Duality
33
TA B L E
“Old” Optimal Dakota Tableau If x2 1 Is Required
Basic Variable
z
z
z
z
z
x1
x1
x1
x1
x1
5x2
2x2
2x2
54x2
2x2
TA B L E
x3 s1 10s2 10s3 e4 280
x3 s1 02s2 18s3 e4 24
x3 s1 02s2 14s3 e4 8
x3 s1 112s2 32s3 e4 2
x3 s1 05s2 15s3 e4 1
z1
s1
x3
x1
e4
280
24
8
2
1
34
“New” Optimal Dakota Tableau If x2 1 Is Required
Basic Variable
z
z
z
z
z
x1
x1
x1
x1
x1
x2
x2
x2
x2
x2
x3
x3
x3
x3
x3
s1
s1
s1
s1
s1
10s2
12s2
12s2
1s2
2
12s2
10s3 18s3 14s3 134s3 10s3 5e4
2e4
2e4
5e4
4
8e4
275
26
10
34
1
z1
s1
x3
x1
x2
275
26
10
3
4
1
obtained a nonnegative row 0 and that most of our right-hand sides have nonnegative coefficients. This is why the dual simplex usually requires relatively few pivots to find a new
optimal solution when a constraint is added to an LP.
If Case 3 occurs, step 3 of the dual simplex method allows us to show that the LP is
now infeasible. To illustrate the idea, suppose we add the constraint x1 x2 12 to the
Dakota problem. After subtracting an excess variable e4 from this constraint, we obtain
x1 x2 e4 12
or
x1 x2 e4 12
Appending this constraint to the optimal Dakota tableau yields Table 35.
Because x1 appears in the new constraint, it seems that x1 can no longer be used as a
basic variable for row 3. To remedy this problem, we eliminate x1 (and in general all basic variables) from the new constraint by replacing row 4 by row 3 row 4 (see Table
36). Because e4 10 is the most negative basic variable, e4 will leave the basis and
row 4 will be the pivot row. The variable s2 is the only one with a negative coefficient in
row 4, so s2 enters the basis and becomes a basic variable in row 4 (see Table 37). Now
x3 must leave the basis, and row 2 will be the pivot row. Because x2 is the only variable
in row 2 with a negative coefficient, x2 now enters the basis (see Table 38). Because x1 0, x3 0, 2s3 0, and 3e4 0, the left side of row 3 must be nonnegative and cannot
equal 20. Hence, the Dakota problem with the additional constraint x1 x2 12 has
no feasible solution.
TA B L E
35
“Old” Optimal Dakota Tableau If x1 x2 12 Is Required
Basic Variable
z
z
z
z
z
x1
x1
x1
x1
x1
1.25x2
1.52x2
1.55x2
1.25x2
1.55x2
x3 x3 x3 x3 x3 s1
s1
s1
s1
s1
.10s2 .10s3 e4 280
0.2s2 1.8s3 e4 24
0.2s2 1.4s3 e4 8
0.5s2 1.5s3 e4 2
0.5s2 1.5s3 e4 12
z1
s1
x3
x1
e4
280
24
8
2
12
6 . 1 1 The Dual Simplex Method
331
TA B L E
36
e4 Is Now a Basic Variable in Row 4
Basic Variable
z
z
z
z
z
x1
x1
x1
x1
x1
1.25x2
1.22x2
1.22x2
1.25x2
0.25x2
TA B L E
x3 x3 x3 x3 x3 s1
s1
s1
s1
s1
.10s2 .10s3 e4 280
0.2s2 1.8s3 e4 24
0.2s2 1.4s3 e4 8
0.5s2 1.5s3 e4 2
0.5s2 1.5s3 e4 10
z1
s1
x3
x1
e4
280
24
8
2
10
37
s2 Enters the Basis in Row 4
Basic Variable
z
z
z
z
z
x1
x1
x1
x1
x1
.10x2
0.5x2
0.5x2
0.5x2
0.5x2
TA B L E
x3 x3 x3 x3 x3 s1
s1
s1
s1
s1
s2 40s3 20e4 80
s2 02s3 24e4 16
s2 02s3 24e4 32
s2 05s3 24e4 12
s2 03s3 22e4 20
z1 80
s1 16
x3 32
x2 12
s2 20
38
Tableau Indicating Infeasibility of Dakota Example When x1 x2 12 Is Required
Basic Variable
z
z
z
z
z
x1
x1
x1
x1
x1
x2
x2
x2
x2
x2
.10x3
0.5x3
0.5x3
0.5x3
0.5x3
s1
s1
s1
s1
s1
s2 60s3 60e4 240
s2 04s3 24e4 16
s2 02s3 24e4 32
s2 02s3 23e4 20
s2 04s3 24e4 36
z1 240
s1 16
x2 32
x1 20
s2 36
Finding the New Optimal Solution
After Changing a Right-Hand Side
If the right-hand side of a constraint is changed and the current basis becomes infeasible,
the dual simplex can be used to find the new optimal solution. To illustrate, suppose that
30 finishing hours are now available. In Section 6.3, we showed that this changed the current optimal tableau to that shown in Table 39.
Because each variable in row 0 has a non-negative coefficient, the dual simplex method
may be used to find the new optimal solution. The variable x1 is the most negative one,
so x1 must leave the basis, and row 3 will be the pivot row. Because s2 has the only negative coefficient in row 3, s2 will enter the basis (see Table 40).
This is an optimal tableau. If 30 finishing hours are available, the new optimal solution to the Dakota problem is to manufacture 16 chairs, 0 tables, and 0 desks. Of course,
if we change the right-hand side of a constraint, it is possible that the LP will be infeasible. Step 3 of the dual simplex algorithm will indicate whether this is the case.
332
CHAPTER
6 Sensitivity Analysis and Duality
TA B L E
39
“Old” Optimal Dakota Tableau If 30 Finishing Hours Are Available
Basic Variable
z
z
z
z
x1
x1
x1
x1
1.25x2
1.22x2
1.22x2
1.25x2
TA B L E
x3 x3 x3 x3 s1
s1
s1
s1
.10s2 .10s3 380
0.2s2 1.8s3 44
0.2s2 1.4s3 28
0.5s2 1.5s3 3
z1
s1
x3
x1
380
44
28
3
40
“New” Optimal Dakota Tableau If 30 Finishing Hours Are Available
Basic Variable
z
z
z
z
20x1
24x1
24x1
22x1
.30x2 3.3x2 3.3x2 2.5x2 x3 s1 s2 40s3 320
x3 s1 s2 42s3 32
x3 s1 s2 42s3 16
x3 s1 s2 43s3 6
z1
s1
x3
x1
320
32
16
6
Solving a Normal Min Problem
To illustrate how the dual simplex can be used to solve a normal min problem, we solve
the following LP:
min z x1 2x2
s.t.
x1 2x2 x3 4
s.t.
2x1 x2 x3 6
s.t.
2 2 x1, x2, x3 0
We begin by multiplying z by 1 to convert the LP to a max problem with objective function z x1 2x2. After subtracting excess variables e1 and e2 from the two constraints,
we obtain the initial tableau in Table 41. Each variable has a nonnegative coefficient in
row 0, so the dual simplex method can be applied. Before proceeding, we need to find the
basic variables for the constraints. If we multiply each constraint through by 1, we can
use e1 and e2 as basic variables. This yields the tableau in Table 42. At least one constraint
has a negative right-hand side, so this is not an optimal tableau, and we proceed to step 2.
We choose the most negative basic variable (e2) to exit from the basis. Because e2 is
basic in row 2, row 2 will be the pivot row. To determine the entering variable, we find
the following ratios:
x1 ratio 1/2 12
x2 ratio 2/1 2
The smaller ratio (in absolute value) is the x1 ratio, so we use EROs to enter x1 into the
basis in row 2 (see Table 43).†
There is no constraint indicating infeasibility (step 3), so we return to step 1. The first
constraint has a negative right-hand side, so the tableau is not optimal, and we go to step
2. Because e1 1 is the most negative basic variable, e1 will exit from the basis, and
†
The interested reader may verify that if we had made an error in performing the ratio test and had chosen x2
to enter the basis, then a negative coefficient in row 0 would have resulted, and dual feasibility would have
been destroyed.
6 . 1 1 The Dual Simplex Method
333
TA B L E
41
Initial Tableau for Solving Normal Min Problem
z 2x1 2x2 x3 e1 e2 0
z 2x1 2x2 x3 e1 e2 4
z 2x1 2x2 x3 e1 e2 6
TA B L E
42
Initial Tableau in Canonical Form
Basic Variable
z 2x1 2x1 x3 e1 e2 0
z 2x1 2x2 x3 e1 e2 4
z 2x1 2x2 x3 e1 e2 6
TA B L E
z 0
e1 4
e2 6
43
First Dual Simplex Tableau
Basic Variable
z x1 32x2 12x3 e1 12e2 3
z 3
z x1 52x2 32x3 e1 12e2 1
e1 1
z x1 x1 3
1x2
2
1x3
2
e1 1e2
2
3
row 1 will be the pivot row. The possible entering variables are x3 and e2. The relevant ratios are
x3 ratio e2 ratio 1
2
32
1
2
12
13
1
The smallest ratio (in absolute value) is 31, so x3 will enter the basis in row 1. After pivoting in x3, the new tableau is as shown in Table 44.† Each right-hand side is non-negative, so
this is an optimal tableau. The original problem was a min problem, so the optimal solution
to the original min problem is z 130 , x1 130 , x3 32, and x2 0.
Observe that each dual simplex tableau (except the optimal dual simplex tableau) has
a z -value exceeding the optimal z -value. For this reason, we say that the dual simplex
tableaus are superoptimal. As the dual simplex proceeds, each pivot brings us closer to a
primal feasible solution. Each pivot (barring degeneracy) decreases z , and we are “less
superoptimal.” Once primal feasibility is obtained, our solution is optimal.
TA B L E
44
Optimal Tableau for Dual Simplex Example
Basic Variable
z x1 z x1 z x1 7
x2
3
5
x2
3
1
x2
3
x3 x3 x3 1
e1
3
2
e1
3
1
e1
3
1
e2
3
1
e2
3
1
e2
3
130
2
3
10
3
†
z 130
x3 x1 2
3
10
3
If we had chosen to enter into the basis any variable with a positive coefficient in the pivot row, then we
would have ended up with some negative entries in row 0. This is why any variable that is entered into the basis must have a negative coefficient in the pivot row.
334
CHAPTER
6 Sensitivity Analysis and Duality
PROBLEMS
Group A
1
Use the dual simplex method to solve the following LP:
max z 2x1 x3
s.t.
x1 x2 x3 5
s.t.
x1 2x2 4x3 8
s.t.
2 4x1, x2, x3 0
TA B L E
Basic Variable
z x1 0.2x2 s1 0.3s2 18
z x1 0.5x2 s1 0.5s2 2
z x1 0.5x2 s1 0.5s2 3
2 In solving the following LP, we obtain the optimal
tableau shown in Table 45.
max z 6x1 x2
s.t.
x1 x2 5
s.t.
2x1 x2 6
s.t.
2 x1, x2 0
a Find the optimal solution to this LP if we add the
constraint 3x1 x2 10.
b Find the optimal solution if we add the constraint
x1 x2 6.
6.12
45
z1 18
s1 2
x1 3
c Find the optimal solution if we add the constraint
8x1 x2 12.
3 Find the new optimal solution to the Dakota problem if
only 20 board ft of lumber are available.
4 Find the new optimal solution to the Dakota problem if
15 carpentry hours are available.
Data Envelopment Analysis†
Often we wonder if a university, hospital, restaurant, or other business is operating efficiently. The Data Envelopment Analysis (DEA) method can be used to answer this question. Our presentation is based on Callen (1991). To illustrate how DEA works, let’s consider a group of three hospitals. To simplify matters, we assume that each hospital “converts”
two inputs into three different outputs. The two inputs used by each hospital are
Input 1 capital (measured by the number of hospital beds)
Input 2 labor (measured in thousands of labor hours used during a month)
The outputs produced by each hospital are
Output 1 hundreds of patient-days during month for patients under age 14
Output 2 hundreds of patient-days during month for patients between 14 and 65
Output 3 hundreds of patient-days during month for patients over 65
Suppose that the inputs and outputs for the three hospitals are as given in Table 46.
To determine whether a hospital is efficient, let’s define tr price or value of one unit
of output r and ws cost of one unit of input s. The efficiency of hospital i is defined to be
value of hospital i’s outputs
For the data in Table 46, we find the efficiency of each hospital to be as follows:
9t1 4t2 16t3
Hospital 1 efficiency 5w1 14w2
5t1 7t2 10t3
Hospital 2 efficiency 8w1 15w2
4t1 9t2 13t3
Hospital 3 efficiency 7w1 12w2
†
This section may be omitted without loss of continuity.
6 . 1 2 Data Envelopment Analysis
335
46
TA B L E
Inputs and Outputs for Hospitals
Inputs
Outputs
Hospital
1
2
1
2
3
1
2
3
5
8
7
14
15
12
9
5
4
4
7
9
16
10
13
The DEA approach uses the following four ideas to determine if a hospital is efficient.
No hospital can be more than 100% efficient. Thus, the efficiency of each hospital
must be less than or equal to 1. For hospital 1, we find that (9t1 4t2 16t3)/(5w1 14w2) 1. Multiplying both sides of this inequality by (5w1 14w2) (this is the trick
we used to simplify blending constraints in Section 3.8!) yields the LP constraint 5w1 14w2 9t1 4t2 16t3 0.
1
2 Suppose we are interested in evaluating the efficiency of hospital i. We attempt to
choose output prices (t1, t2, and t3) and input costs (w1 and w2) that maximize efficiency.
If the efficiency of hospital i equals 1, then it is efficient; if the efficiency is less than 1,
then it is inefficient.
To simplify computations, we may scale the output prices so that the cost of hospital
i’s inputs equals 1. Thus, for hospital 2 we add the constraint 8w1 15w2 1.
3
We must ensure that each input cost and output price is strictly positive. If, for example, ti 0, then DEA could not detect an inefficiency involving output i; if wj 0,
then DEA could not detect an inefficiency involving input j.
4
Points (1)–(4) lead to the following LPs for testing the efficiency of each hospital.
336
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
1
1
1
1
1
1
1
1
1
1
LP
LP
LP
LP
LP
LP
LP
LP
LP
LP
max z 9t1 4t2 16t3 5w1 14w2 0.0001 (1)
s.t.
9t1 4t2 16t3 5w1 14w2 0.0001 (2)
s.t.
5t1 7t2 10t3 8w1 15w2 0.0001 (3)
s.t.
4t1 9t2 13t3 7w1 12w2 0.0001 (4)
s.t.
4t1 9t2 13t3 5w1 14w2 1.0001 (5)
s.t.
t1 9t2 13t3 5w1 14w2 .0001 (6)
s.t.
t1 t2 13t3 5w1 14w2 .0001 (7)
s.t.
t1 9t2 13t3 5w1 14w2 .0001 (8)
s.t.
t1 9t2 13t3 5w1 14w2 .0001 (9)
s.t.
t1 9t2 13t3 5w1 14w2 .0001(10)
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
2
2
2
2
2
1
LP
LP
LP
LP
LP
LP
max z 5t1 7t2 10t3 5w1 14w2 0.0001
s.t.
9t1 4t2 16t3 5w1 14w2 0.0001
s.t.
5t1 7t2 10t3 8w1 15w2 0.0001
s.t.
4t1 9t2 13t3 7w1 12w2 0.0001
s.t.
4t1 9t2 13t3 8w1 15w2 1.0001
s.t.
t1 9t2 13t3 5w1 14w2 .0001
CHAPTER
6 Sensitivity Analysis and Duality
(1)
(2)
(3)
(4)
(5)
(6)
Hospital
Hospital
Hospital
Hospital
1
1
1
1
LP
LP
LP
LP
s.t.
s.t.
s.t.
s.t.
14w2
14w2
14w2
14w2
.0001 (7)
.0001 (8)
.0001 (9)
.0001(10)
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
Hospital
3
3
3
3
2
1
1
1
1
1
LP
LP
LP
LP
LP
LP
LP
LP
LP
LP
max z 4t1 9t2 13t3 5w1 14w2
s.t.
9t1 4t2 16t3 5w1 14w2
s.t.
5t1 7t2 10t3 8w1 15w2
s.t.
4t1 9t2 13t3 7w1 12w2
s.t.
4t1 9t2 13t3 7w1 12w2
s.t.
t1 9t2 13t3 5w1 14w2
s.t.
t1 t2 13t3 5w1 14w2
s.t.
t1 9t2 13t3 5w1 14w2
s.t.
t1 9t2 13t3 5w1 14w2
s.t.
t1 9t2 13t3 5w1 14w2
0.0001 (1)
0.0001 (2)
0.0001 (3)
0.0001 (4)
1.0001 (5)
.0001 (6)
.0001 (7)
.0001 (8)
.0001 (9)
.0001(10)
t1
t1
t1
t1
t2
9t2
9t2
9t2
13t3
13t3
13t3
13t3
5w1
5w1
5w1
5w1
Let’s see how the hospital 1 LP incorporates points (1)–(4). Point (1) maximizes the
efficiency of hospital 1. This is because Constraint (5) implies that the total cost of hospital 1’s inputs equal 1. Constraints (2)–(4) ensure that no hospital is more than 100% efficient. Constraints (6)–(10) ensure that each input cost and output price is strictly positive (the .0001 right-hand side is arbitrary; any small positive number may be used).
The LINDO output for these LPs is given in Figures 10(a)–(c). From the optimal obMAX 9 T1 +
SUBJECT TO
2)
3)
4)
5)
6)
7)
8)
9)
10)
END
4 T2 + 16 T3
- 9 T1 - 5 T1 - 4 T1 W1 >=
W2 >=
T1 >=
T2 >=
T3 >=
5 W1 +
4 T2 - 16 T3 + 5 W1 + 14 W2 >=
7 T2 - 10 T3 + 8 W1 + 15 W2 >=
9 T2 - 13 T3 + 7 W1 + 12 W2 >=
0.0001
0.0001
0.0001
0.0001
0.0001
14 W2 =
1
LP OPTIMUM FOUND AT STEP
0
0
0
6
OBJECTIVE FUNCTION VALUE
1)
1.00000000
VARIABLE
T1
T2
T3
W1
W2
FIGURE
10(a)
Hospital 1 LP
ROW
2)
3)
4)
5)
6)
7)
8)
9)
10)
VALUE
.110889
.000100
.000100
.000100
.071393
SLACK OR SURPLUS
.000000
.515548
.411659
.000000
.071293
.110789
.000000
.000000
.000000
NO. ITERATIONS=
REDUCED COST
.000000
.000000
.000000
.000000
.000000
DUAL PRICES
-1.000000
.000000
.000000
.000000
.000000
.000000
.000000
.000000
1.000000
6
6 . 1 2 Data Envelopment Analysis
337
MAX
5 T1
SUBJECT TO
2)
3)
4)
5)
6)
7)
8)
9)
10)
END
+ 7 T2 + 10 T3
- 9 T1 - 5 T1 - 4 T1 8 W1 +
W1 >=
W2 >=
T1 >=
T2 >=
T3 >=
4 T2 - 16 T3 + 5 W1 + 14 W2 >=
7 T2 - 10 T3 + 8 W1 + 15 W2 >=
9 T2 - 13 T3 + 7 W1 + 12 W2 >=
15 W2 =
1
0.0001
0.0001
0.0001
0.0001
0.0001
LP OPTIMUM FOUND AT STEP
0
0
0
0
OBJECTIVE FUNCTION VALUE
1)
.773030000
VARIABLE
T1
T2
T3
W1
W2
FIGURE
10(b)
Hospital 2 LP
ROW
2)
3)
4)
5)
6)
7)
8)
9)
10)
VALUE
.079821
.053275
.000100
.000100
.066613
REDUCED COST
.000000
.000000
.000000
.000000
.000000
SLACK OR SURPLUS
.000000
.226970
.000000
.000000
.000000
.066513
.079721
.053175
.000000
NO. ITERATIONS=
DUAL PRICES
-.261538
.000000
-.661538
.773333
-.248206
.000000
.000000
.000000
-2.784615
0
jective function value to each LP we find that
Hospital 1 efficiency 1
Hospital 2 efficiency .773
Hospital 3 efficiency 1
Thus we find that hospital 2 is inefficient and hospitals 1 and 3 are efficient.
REMARK
1 An easy way to create the hospital 2 LP is to use LINDO to modify the objective function of
the hospital 1 LP and the constraint 5w1 14w2 1. Then it is easy to modify the hospital 2 LP
to create the hospital 3 LP.
Using LINGO to Run a DEA
DEA.lng
The following LINGO program (see file DEA.lng) will solve our hospital DEA problem.
When faced with another DEA problem, we begin by changing the numbers of inputs,
outputs, and units. Next we change the resource usage and outputs for each unit. Finally,
by changing number to (say) 1, we can evaluate the efficiency of unit 1. If the optimal objective function value for unit 1 is less than 1, then unit 1 is inefficient. Otherwise, unit 1
is efficient.
SETS:
INPUTS/1..2/:COSTS;
OUTPUTS/1..3/:PRICES;
338
CHAPTER
6 Sensitivity Analysis and Duality
MAX 4 TI + 9 + T2 + 13 T3
SUBJECT TO
2) - 9 T1 - 4 T2 - 16 T3 + 5 W1 + 14 W2 >= 0
3) - 5 T1 - 7 T2 - 10 T3 + 8 W1 + 15 W2 >= 0
4) - 4 T1 - 9 T2 - 13 T3 + 7 W1 + 12 W2 >= 0
5)
W1 >=
0.0001
6)
W2 >=
0.0001
7)
T1 >=
0.0001
8)
T2 >=
0.0001
9)
T3 >=
0.0001
10)
7 W1 + 12 W2 = 1
END
LP OPTIMUM FOUND AT STEP 7
OBJECTIVE FUNCTION VALUE
1)
1.00000000
VARIABLE
T1
T2
T3
W1
W2
FIGURE
10(c)
Hospital 3 LP
ROW
2)
3)
4)
5)
6)
7)
8)
9)
10)
VALUE
.099815
.066605
.000100
.000100
.083275
SLACK OR SURPLUS
.000000
.283620
.000000
.000000
.083175
.099715
.066505
.000000
.000000
NO. ITERATIONS=
REDUCED COST
.000000
.000000
.000000
.000000
.000000
DUAL PRICES
.000000
.000000
-1.000000
.000000
.000000
.000000
.000000
.000000
1.000000
7
UNITS/1..3/;
UNIN(UNITS,INPUTS):USED;
UNOUT(UNITS,OUTPUTS):PRODUCED;
ENDSETS
NUMBER=2;
@FOR(UNITS(J)|j#EQ#NUMBER:MAX=@SUM(OUTPUTS(I):PRICES(I)*PRODUCED(J,I)));
@FOR(UNITS(J)|J#EQ#NUMBER:@SUM(INPUTS(I):COSTS(I)*USED(J,I))=1);
@FOR(INPUTS(I):COSTS(I)>=.0001);
@FOR(OUTPUTS(I):PRICES(I)>=.0001);
@FOR(UNITS(I):@SUM(INPUTS(J):COSTS(J)*USED(I,J))>=@SUM(OUTPUTS(J):PRICES(J)*PRODUCED(I,J)
)
);
DATA:
USED=5,14,
USED=8,15,
USED=7,12;
PRODUCED=9,4,16,
PRODUCED=5,7,10,
PRODUCED=4,9,13;
ENDDATA
END
Dual Prices and DEA
The DUAL PRICES section of the LINDO output gives us great insight into Hospital 2’s
(or any organization’s found inefficient by DEA) inefficiency. Consider all hospitals whose
efficiency constraints have nonzero dual prices in the hospital 2 LP (Figure 10b). (In our
example, hospitals 1 and 3 have nonzero dual prices.) If we average the output vectors
and input vectors for these hospitals (using the absolute value of the dual price for each
6 . 1 2 Data Envelopment Analysis
339
hospital as the weight) we obtain the following:
Averaged Output Vector
9
4
5.785
.261538 64 .661538 9 7.785
16
13
12.785
Averaged Input Vector
.261538
14 .661538 12 11.600
5
7
15.938
Suppose we create a composite hospital by combining .261538 of hospital 1 with
.661538 of hospital 3. The averaged output vector tells us that the composite hospital produces the same amount of outputs 1 and 2 as hospital 2, but the composite hospital produces 12.785 10 2.785 more of output 3 (patient days for more than 65 patients).
From the averaged input vector for the composite hospital, we find that the composite hospital uses less of each input than does hospital 2. We now see exactly where hospital 2 is
inefficient!
By the way, the objective function value of .7730 for the hospital 2 LP implies that the
more efficient composite hospital produces its superior outputs by using at most 77.30%
as much of each input. Note that
Input 1 used by composite hospital
.7730 * (Input 1 used by hospital 2) 6.2186
and
Input 2 used by composite hospital .7730 * (Input 2 used by hospital 2) 11.6
An explanation of why the dual prices are needed to find a composite hospital that is superior to an inefficient hospital is given in Problems 5–7.
TA B L E
47
PROBLEMS
Inputs
School
Group A
1 The Salem Board of Education wants to evaluate the
efficiency of the town’s four elementary schools. The three
outputs of the schools are defined to be
Output 1 average reading score
Output 2 average mathematics score
Output 3 average self-esteem score
The three inputs to the schools are defined to be
Input 1 average educational level of mothers (defined
by highest grade completed—12 high
school graduate; 16 college graduate, and
so on).
Input 2 number of parent visits to school (per child)
Input 3 teacher to student ratio
The relevant information for the four schools is given in
340
CHAPTER
6 Sensitivity Analysis and Duality
1
2
3
4
Outputs
1
2
3
1
2
3
13
14
11
15
4
5
6
8
.05
.05
.06
.08
9
10
11
9
7
8
7
9
6
7
8
9
Table 47. Determine which (if any) schools are inefficient. For
any inefficient school, determine the nature of the inefficiency.
2 Pine Valley Bank has three branches. You have been
assigned to evaluate the efficiency of each. The following
inputs and outputs are to be used for the study.
Input 1 labor hours used (hundreds per month)
Input 2 space used (in hundreds of square feet)
Input 3 supplies used per month (in dollars)
TA B L E
48
Bank
1
2
3
Outputs
Inputs
1
2
3
1
2
3
15
14
16
20
23
19
50
51
51
200
220
210
15
18
17
35
45
20
Precinct
1
2
3
Output 1 loan applications per month
Output 2 deposits processed per month (in thousands)
Output 3 checks processed per month (in thousands)
The relevant information is given in Table 48. Use this data
to determine if any bank branches are inefficient. If any
bank branches are inefficient, determine the nature of the
inefficiency.
3 You have been assigned to evaluate the efficiency of the
Port Charles Police Department. Three precincts are to be
evaluated. The inputs and outputs for each precinct are as
follows:
Input 1 number of police officers
Input 2 number of vehicles used
Output 1 number of patrol units responding to service
requests (thousands per year)
Output 2 number of convictions obtained each year
(in hundreds)
You are given the data in Table 49. Use this information to
determine which precincts, if any, are inefficient. For any in-
TA B L E
49
TA B L E
Inputs
Outputs
1
2
1
2
200
300
400
160
190
120
16
18
10
18.5
19.5
11.5
efficient precincts, determine the nature of the inefficiency.
4 You have been assigned by Indiana University to evaluate
the relative efficiency of four degree-granting units: Business;
Education; Arts and Sciences; and Health, Physical
Education, and Recreation (HPER). You are given the
information in Table 50. Use DEA to find all inefficient
units. Comment on the nature of the inefficiencies you found.
Group B
5 Explain why the amount of each output produced by the
composite hospital obtained by averaging hospitals 1 and 3
(with the absolute value of the dual prices as weights) is at
least as large as the amount of the corresponding output
produced by hospital 2. (Hint: Price out variables t1, t2, and
t3, and use the fact that the coefficient of these variables in
row 0 of the optimal tableau must equal 0.)
6 Explain why the dual price for the 8w1 15w2 1
constraint must equal the optimal z-value for the hospital 2 LP.
7
a Explain why the amount of each input used by the
composite hospital is at most (efficiency of hospital 2) *
50
Business
Education
Arts and Sciences
HPER
Faculty
Support
Staff
Supply Budget
(in Millions)
Credit Hours
(in Thousands)
Research Publications
150
160
800
130
170
120
140
115
25
23
20
21
15.4
15.4
56.4
22.1
1225
1170
1,300
1140
SUMMARY
Graphical Sensitivity Analysis
To determine whether the current basis remains optimal after changing an objective function coefficient, note that the change affects the slope of the isoprofit line. The current basis remains optimal as long as the current optimal solution is the last point in the feasible region to make contact with isoprofit lines as we move in the direction of increasing
z (for a max problem). If the current basis remains optimal, then the values of the decision variables remain unchanged, but the optimal z-value may change.
To determine whether the current basis remains optimal after changing the right-hand
side of a constraint, find the constraints (possibly including sign restrictions) that are binding for the current optimal solution. As we change the right-hand side of a constraint, the
6 . 1 Summary
341
current basis remains optimal as long as the point where the constraints are binding remains feasible. Even if the current basis remains optimal, the values of the decision variables and the optimal z-value may change.
Shadow Prices
The shadow price of the ith constraint of a linear programming problem is the amount by
which the optimal z-value is improved if the right-hand side is increased by 1. The shadow
price of the ith constraint is the DUAL PRICE for row i 1 in the LINDO output.
Notation
BVi basic variable for ith constraint in the optimal tableau
cBV row vector whose ith element is the objective function coefficient for BVi in
the LP
aj column for variable xj in constraints of original LP
b right-hand side vector for original LP
cj coefficient of xj in row 0 of the optimal tableau
How to Compute Optimal Tableau from Initial LP
Column for xj in optimal tableau’s constraints B1aj
Right-hand side of optimal tableau’s constraints B1b
cj cBVB1aj cj
Coefficient of slack variable si in optimal row 0 ith element of cBVB1
Coefficient of excess variable ei in optimal row 0 (ith element of cBVB1)
Coefficient of artificial variable ai in optimal row 0 (ith element of cBVB1) M
Right-hand side of optimal row 0 cBVB1b
(5)
(6)
(10)
(10 )
(10)
(10)
(11)
Sensitivity Analysis
For a max problem, a tableau is optimal if and only if each variable has a nonnegative
coefficient in row 0 and each constraint has a nonnegative right-hand side. For a min
problem, a tableau is optimal if and only if each variable has a nonpositive coefficient in
row 0 and each constraint has a nonnegative right-hand side.
If the current basis remains optimal after changing the objective function coefficient
of a nonbasic variable, the values of the decision variables and the optimal z-value remain
unchanged. With a basic variable, the values of the decision variables remain unchanged,
but the optimal z-value may change. Both the values of the decision variables and the optimal z-value may change after changing a right-hand side. The new values of the decision variables may be found by computing B1 (new right-hand side vector). The new optimal z-value may be determined by using shadow prices or Equation (11).
342
CHAPTER
6 Sensitivity Analysis and Duality
Objective Function Coefficient Range
The OBJ COEFFICIENT RANGES section of the LINDO output gives the range of values for an objective function coefficient for which the current basis remains optimal.
Within this range, the values of the decision variables remain unchanged, but the optimal
z-value may or may not change.
Reduced Cost
For any nonbasic variable, the reduced cost for the variable is the amount by which its
objective function coefficient must be improved before that variable will be a basic variable in some optimal solution to the LP.
Right-Hand Side Range
If the right-hand side of a constraint remains within the RIGHTHAND SIDE RANGE of
the LINDO printout, the current basis remains optimal, and the LINDO listing for the
constraint’s dual price may be used to determine how the change affects the optimal
z-value. Even if the right-hand side of a constraint remains within the range, the values
of the decision variables will probably change.
Finding the Dual of an LP
For a normal (all constraints and all variables nonnegative) max problem or a normal
min (all constraints and all variables nonnegative) problem, we find the dual as follows:
If we read the primal across in Table 14, we read the dual down. If we read the primal
down in Table 14, we read the dual across. We use xi’s and z as variables for a maximization problem and yj’s and w as variables for a minimization problem.
To find the dual of a nonnormal max problem:
Step 1
Fill in Table 14 so that the primal can be read across.
After making the following changes, the dual can be read down in the usual fashion: (a) If the ith primal constraint is a constraint, the corresponding dual variable yi must
satisfy yi 0. (b) If the ith primal constraint is an equality, then the dual variable yi is now
urs. (c) If the ith primal variable is urs, then the ith dual constraint will be an equality.
Step 2
To find the dual of a nonnormal min problem:
Step 1
Write out the primal so it can be read down in Table 14.
Step 2 Except for the following changes, the dual can be read across the table: (a) If the
ith primal constraint is a constraint, then the corresponding dual variable xi must satisfy xi 0. (b) If the ith primal constraint is an equality, then the corresponding dual variable xi will be urs. (c) If the ith primal variable yi is urs, then the ith dual constraint is an
equality.
The Dual Theorem
Suppose BV is an optimal basis for the primal. Then cBVB1 is an optimal solution to the
dual. Also, z w
.
6 . 1 Summary
343
Finding the Optimal Solution to the Dual of an LP
If the primal is a max problem, then the optimal dual solution may be read from row 0
of the optimal tableau by using the following rules:
Optimal value of dual variable yi
coefficient of si in optimal row 0
(31)
if Constraint i is a constraint
Optimal value of dual variable yi
(coefficient of ei in optimal row 0)
(31 )
if Constraint i is a constraint
Optimal value of dual variable yi
if Constraint i is an equality
(coefficient of ai in optimal row 0) M (31)
constraint
If the primal is a min problem, then the optimal dual solution may be read from row
0 of the optimal tableau by using the following rules:
Optimal value of dual variable xi
coefficient of si in optimal row 0
if Constraint i is a constraint
Optimal value of dual variable xi
(coefficient of ei in optimal row 0)
if Constraint i is a constraint
Optimal value of dual variable xi
if Constraint i is an equality
(coefficient of ai in optimal row 0) M
constraint
Shadow Prices (Again)
For a maximization LP, the shadow price of the ith constraint is the value of the ith dual
variable in the optimal dual solution. For a minimization LP, the shadow price of the ith
constraint (ith dual variable in the optimal dual solution). The shadow price of the ith
constraint is found in row i 1 of the DUAL PRICES portion of the LINDO printout.
New optimal z-value (old optimal z-value)
(Constraint i shadow price) bi (max problem)
New optimal z-value (old optimal z-value)
(Constraint i shadow price) bi (min problem)
(37)
(37 )
A constraint will have a nonpositive shadow price; a constraint will have a nonnegative shadow price; and an equality constraint may have a positive, negative, or zero
shadow price.
Duality and Sensitivity Analysis
Our proof of the Dual Theorem showed that if a set of basic variables BV is feasible, then
BV is optimal (that is, each variable in row 0 has a nonnegative coefficient) if and only
if the associated dual solution, cBVB1, is dual feasible.
This result can be used to yield an alternative way of doing the following types of sensitivity analysis:
344
Change 1
Changing the objective function coefficient of a nonbasic variable
Change 4
Changing the column of a nonbasic variable
Change 5
Adding a new activity
CHAPTER
6 Sensitivity Analysis and Duality
In each case, simply determine whether a change in the original LP maintains dual feasibility. If dual feasibility is maintained, then the current basis remains optimal. If dual
feasibility is not maintained, then the current basis is no longer optimal.
Complementary Slackness
THEOREM 3
THEOREM
3
Let
x
x1
x2
xn
be a feasible primal solution and y [ y1 y2
ym] be a feasible dual solution.
Then x is primal optimal and y is dual optimal if and only if
siyi 0 (i 1, 2, . . . , m)
ejxj 0 ( j 1, 2, . . . , n)
(38)
(39)
The Dual Simplex Method
The dual simplex method can be applied (to a max problem) whenever there is a basic
solution in which each variable has a nonnegative coefficient in row 0. If we have found
such a basic solution, then the dual simplex method proceeds as follows:
Step 1 If the right-hand side of each constraint is nonnegative, then an optimal solution
has been found; if not, then at least one constraint has a negative right-hand side, and we
go to step 2.
Step 2 Choose the most negative basic variable as the variable to leave the basis. The
row in which this variable is basic will be the pivot row. To select the variable that enters
the basis, compute the following ratio for each variable xj that has a negative coefficient
in the pivot row:
Coefficient of xj in row 0
Choose the variable that has the smallest ratio (absolute value) as the entering variable.
Use EROs to make the entering variable a basic variation in the pivot row.
Step 3 If there is any constraint in which the right-hand side is negative and each variable has a nonnegative coefficient, then the LP has no feasible solution. Infeasibility
would be indicated by the presence (after possibly several pivots) of a constraint such as
x1 2x2 x3 5. If no constraint indicating infeasibility is found, return to step 1.
The dual simplex method is often used in the following situations:
1
Finding the new optimal solution after a constraint is added to an LP
2
Finding the new optimal solution after changing an LP’s right-hand side
3
Solving a normal min problem
6 . 1 Summary
345
REVIEW PROBLEMS
All problems from Sections 5.2 and 5.3 are relevant, along
with Chapter 5 Review Problems 1, 2, 6, and 7.
TA B L E
Group A
1 Consider the following LP and its optimal tableau
(Table 51):
max z 4x1 x2
s.t.
x1 2x2 6
s.t.
x1 x2 3
s.t.
2x1 x2 10
s.t.
2 2x1, x2 0
a Find the dual of this LP and its optimal solution.
b Find the range of values of b3 for which the current
basis remains optimal. If b3 11, what would be the
new optimal solution?
2 For the LP in Problem 1, graphically determine the
range of values on c1 for which the current basis remains
optimal. (Hint: The feasible region is a line segment.)
3 Consider the following LP and its optimal tableau
(Table 52):
max z 5x1 x2 2x3
s.t.
x1 x2 x3 6
s.t.
6x1 x2 x3 8
s.t.
6x1 x2 x3 2
s.t.
6 x1, x2, x3 0
a Find the dual to this LP and its optimal solution.
b Find the range of values of c1 for which the current
basis remains optimal.
c Find the range of values of c2 for which the current
basis remains optimal.
4 Carco manufactures cars and trucks. Each car
contributes $300 to profit and each truck, $400. The
TA B L E
z
x1
51
x2
e2
s3
7
3
13
2
3
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
TA B L E
z
M
1
2
3
a2
rhs
M
58
3
2
3
14
3
23
0
13
1
0
1
1
52
x1
x2
1
0
0
0
0
0
1
0
16
16
16
346
a1
1
x3
s1
s2
s3
rhs
0
0
1
0
1
0
0
7
6
56
16
9
0
5
6
16
16
CHAPTER
0
1
3
1
2
6 Sensitivity Analysis and Duality
53
Vehicle
Days on
Type 1
Machine
Days on
Type 2
Machine
Tons of
Steel
Car
Truck
0.8
1.8
0.6
0.7
2
3
resources required to manufacture a car and a truck are
shown in Table 53. Each day, Carco can rent up to 98 Type
1 machines at a cost of $50 per machine. The company now
has 73 Type 2 machines and 260 tons of steel available.
Marketing considerations dictate that at least 88 cars and at
least 26 trucks be produced. Let
X1 number of cars produced daily
X2 number of trucks produced daily
M1 type 1 machines rented daily
To maximize profit, Carco should solve the LP given in Figure 11. Use the LINDO output to answer the following
questions:
a If cars contributed $310 to profit, what would be the
new optimal solution to the problem?
b What is the most that Carco should be willing to pay
to rent an additional Type 1 machine for 1 day?
c What is the most that Carco should be willing to pay
for an extra ton of steel?
d If Carco were required to produce at least 86 cars,
what would Carco’s profit become?
e Carco is considering producing jeeps. A jeep contributes $600 to profit and requires 1.2 days on machine
1, 2 days on machine 2, and 4 tons of steel. Should
Carco produce any jeeps?
5 The following LP has the optimal tableau shown in
Table 54.
max z 4x1 x2
s.t.
3x1 x2 6
s.t.
2x1 x2 4
s.t.
x1 x2 3
s.t.
2 x1, x2 0
a Find the dual of this LP and its optimal solution.
b Find the range of values of the objective function coefficient of x2 for which the current basis remains optimal.
c Find the range of values of the objective function coefficient of x1 for which the current basis remains optimal.
6 Consider the following LP and its optimal tableau
(Table 55):
max z 3x1 x2 x3
s.t.
2x1 x2 x3 8
s.t.
4x1 x2 x3 10
s.t.
4 x1, x2, x3 0
11
FIGURE
LINDO Output for Carco (Problem 4)
MAX
SUBJECT TO
2)
3)
4)
5)
6)
7)
END
300 X1 + 400 X2 - 50 M1
0.8 X1 + X2 - M1 <=
M1 <= 98
0.6 X1 + 0.7 X2 <=
73
2 X1 + 3 X2 <=
260
X1 >=
88
X2 >=
26
LP OPTIMUM FOUND
AT STEP
0
1
OBJECTIVE FUNCTION VALUE
1)
32540.0000
VARIABLE
X1
X2
M1
VALUE
88.000000
27.599998
98.000000
ROW
REDUCED COST
0.000000
0.000000
0.000000
SLACK OR SURPLUS
0.000000
0.000000
0.879999
1.200003
0.000000
1.599999
2)
3)
4)
5)
6)
7)
NO. ITERATIONS=
DUAL PRICES
400.000000
350.000000
0.000000
0.000000
-20.000000
0.000000
1
RANGES IN WHICH THE BASIS IS UNCHANGED
VARIABLE
OBJ COEFFICIENT RANGES
ALLOWABLE
INCREASE
20.000000
INFINITY
INFINITY
ALLOWABLE
DECREASE
INFINITY
25.000000
350.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
0.400001
0.400001
INFINITY
INFINITY
1.999999
1.599999
ALLOWABLE
DECREASE
1.599999
1.599999
0.879999
1.200003
3.000008
INFINITY
CURRENT
COEF
300.000000
400.000000
-50.000000
X1
X2
M1
ROW
CURRENT
RHS
0.000000
98.000000
73.000000
260.000000
88.000000
26.000000
2
3
4
5
6
7
TA B L E
54
z
x1
x2
e1
e2
a1
a2
a3
rhs
1
0
0
0
0
1
0
0
3
1
2
1
0
0
1
0
0
0
0
1
M
0
1
0
M
0
0
1
M4
1
3
2
12
13
13
12
TA B L E
z
x1
55
x2
x3
s1
s2
rhs
1
0
0
1
1
2
1
2
0
0
1
3
2
1
9
6
0
1
0
1
12
1
2
1
a Find the dual of this LP and its optimal solution.
b Find the range of values of b2 for which the current
basis remains optimal. If b2 12, what is the new optimal solution?
7
Consider the following LP:
max z 3x1 4x2
s.t.
2x1 x2 8
s.t.
4x1 x2 10
s.t.
4 x1, x2 0
The optimal solution to this LP is z 32, x1 0, x2 8,
s1 0, s2 2. Graphically find the range of values of c1
for which the current basis remains optimal.
8 Wivco produces product 1 and product 2 by processing
raw material. As much as 90 lb of raw material may be
purchased at a cost of $10/lb. One pound of raw material
can be used to produce either 1 lb of product 1 or 0.33 lb
6 . 1 Review Problems
347
of product 2. Using a pound of raw material to produce a
pound of product 1 requires 2 hours of labor or 3 hours to
produce 0.33 lb of product 2. A total of 200 hours of labor
are available, and at most 40 pounds of product 2 can be
sold. Product 1 sells for $13/lb, and product 2 sells for
$40/lb. Let
RM pounds of raw material processed
P1 pounds of raw material used to produce product 1
P2 pounds of raw material used to produce product 2
To maximize profit, Wivco should solve the following LP:
max z 13P1 40(0.33)P2 10RM
s.t.
RM P1 P2
s.t.
RM 2P1 3P2 200
s.t.
RM 2P1 3P2 90
s.t.
RM
P1 0.33P2 40
s.t.
RM
P1, P2, RM 0
Use the LINDO output in Figure 12 to answer the following questions:
a If only 87 lb of raw material could be purchased,
what would be Wivco’s profits?
FIGURE
12
LINDO Output for Wivco (Problem 8)
b If product 2 sold for $39.50/lb, what would be the
new optimal solution?
c What is the most that Wivco should pay for another
pound of raw material?
d What is the most that Wivco should pay for another
hour of labor?
e Suppose that 1 lb of raw material could also be used
to produce 0.8 lb of product 3, which sells for $24/lb.
Processing 1 lb of raw material into 0.8 lb of product 3
requires 7 hours of labor. Should Wivco produce any of
product 3?
9 Consider the following LP and its optimal tableau
(Table 56):
max z 3x1 4x2 x3
s.t.
x1 x2 x3 50
s.t.
2x1 x2 x3 15
s.t.
2x1 x2 x3 10
s
.t.
2 x1, x2, x3 0
a Find the dual of this LP and its optimal solution.
b Find the range of values of the objective function coefficient of x1 for which the current basis remains optimal.
c Find the range of values of the objective function coefficient for x2 for which the current basis remains optimal.
MAX
13 P1 + 13.2 P2 - 10 RM
SUBJECT TO
2) - P1 - P2 + RM >= 0
3) 2 P1 + 3 P2 <=
200
4)
RM <=
90
5) 0.33 P2 <= 40
END
LP OPTIMUM FOUND
AT STEP
3
OBJECTIVE FUNCTION VALUE
1)
274.000000
VARIABLE
P1
P2
RM
ROW
2)
3)
4)
5)
VALUE
70.000000
20.000000
90.000000
REDUCED COST
0.000000
0.000000
0.000000
SLACK OR SURPLUS
0.000000
0.000000
0.000000
33.400002
NO. ITERATIONS=
DUAL PRICES
-12.600000
0.200000
2.600000
0.000000
3
RANGES IN WHICH THE BASIS IS UNCHANGED
VARIABLE
P1
P2
RM
ROW
2
3
4
5
348
OBJ COEFFICIENT RANGES
ALLOWABLE
INCREASE
0.200000
1.300000
INFINITY
ALLOWABLE
DECREASE
0.866667
0.200000
2.600000
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
23.333334
70.000000
10.000000
INFINITY
ALLOWABLE
DECREASE
10.000000
20.000000
23.333334
33.400002
CURRENT
COEF
13.000000
13.200000
-10.000000
CURRENT
RHS
0.000000
200.000000
90.000000
40.000000
CHAPTER
6 Sensitivity Analysis and Duality
TA B L E
56
z
x1
x2
x3
s1
e2
1
0
0
0
1
3
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
TA B L E
z
x1
1
0
0
0
0
1
a2
a3
M M3
1
2
0
2
0
1
rhs
80
15
40
10
57
x2
s1
s2
rhs
0
0
1
1
23
10
0
1
3
1
3
7
3
4
3
1
0
3
10 Consider the following LP and its optimal tableau
(Table 57):
max z 3x1 2x2
s.t.
2x1 5x2 8
s.t.
3x1 7x2 10
s.t.
2 7x1, x2 0
a Find the dual of this LP and its optimal solution.
b Find the range of values of b2 for which the current
basis remains optimal. Also find the new optimal solution if b2 5.
11
Consider the following LP:
max z 3x1 x2
s.t.
2x1 x2 8
s.t.
4x1 x2 10
s.t.
4 x1, x2 0
The optimal solution to this LP is z 9, x1 1, x2 6.
Graphically find the range of values of b2 for which the current basis remains optimal.
12 Farmer Leary grows wheat and corn on his 45-acre
farm. He can sell at most 140 bushels of wheat and 120
bushels of corn. Each planted acre yields either 5 bushels
of wheat or 4 bushels of corn. Wheat sells for $30 per
bushel, and corn sells for $50 per bushel. Six hours of labor
are needed to harvest an acre of wheat, and 10 hours are
needed to harvest an acre of corn. As many as 350 hours of
labor can be purchased at $10 per hour. Let
A1 acres planted with wheat
A2 acres planted with corn
L hours of labor that are purchased
To maximize profits, farmer Leary should solve the following LP:
max z 150A1 200A2 10L
s.t.
A1 A2 L 45
s.t.
6A1 10A2 L 0
s.t.
6A1 10A2 L 350
s.t.
5A1 10A2 L 140
s.t.
5A1 4A2 L 120
s
.t.
5 10 A1, A2, L 0
Use the LINDO output in Figure 13 to answer the following questions:
a What is the most that Leary should pay for an additional hour of labor?
b What is the most that Leary should pay for an additional acre of land?
c If only 40 acres of land were available, what would
be Leary’s profit?
d If the price of wheat dropped to $26, what would be
the new optimal solution?
e Farmer Leary is considering growing barley. Demand for barley is unlimited. An acre yields 4 bushels
of barley and requires 3 hours of labor. If barley sells
for $30 per bushel, should Leary produce any barley?
13 Consider the following LP and its optimal tableau
(Table 58):
max z 4x1 x2 2x3
s.t.
8x1 3x2 x3 2
s.t.
6x1 x2 x3 8
s.t.
6 3 x1, x2, x3 0
a Find the dual to this LP and its optimal solution.
b Find the range of values of the objective function coefficient of x3 for which the current basis remains optimal.
c Find the range of values of the objective function coefficient of x1 for which the current basis remains optimal.
14 Consider the following LP and its optimal tableau
(Table 59):
max z 3x1 x2
s.t.
2x1 x2 4
s.t.
3x1 2x2 6
s.t.
4x1 2x2 7
s.t.
x1 0, x2 0
a Find the dual to this LP and its optimal solution.
b Find the range of values of the right-hand side of the
third constraint for which the current basis remains optimal. Also find the new optimal solution if the righthand side of the third constraint were 125.
15
Consider the following LP:
max z 3x1 x2
s.t.
4x1 x2 7
s.t.
5x1 2x2 10
s.t.
5 2x1, x2 0
The optimal solution to this LP is z 137, x1 43, x2 53.
Use the graphical approach to determine the range of values
for the right-hand side of the second constraint for which
the current basis remains optimal.
16 Zales Jewelers uses rubies and sapphires to produce
two types of rings. A Type 1 ring requires 2 rubies, 3
sapphires, and 1 hour of jeweler’s labor. A Type 2 ring
requires 3 rubies, 2 sapphires, and 2 hours of jeweler’s labor.
Each Type 1 ring sells for $400, and each Type 2 ring sells
for $500. All rings produced by Zales can be sold. Zales
now has 100 rubies, 120 sapphires, and 70 hours of jeweler’s
6 . 1 Review Problems
349
FIGURE
13
LINDO Output for Wheat/Corn (Problem 12)
TA B L E
z
x1
x2
x3
s1
s2
rhs
1
0
0
8
2
6
1
2
1
0
0
1
0
1
0
2
1
1
16
14
18
TA B L E
z
x1
59
x2
s1
e2
a2
a3
1
0
0
0
1
M1
0
0
0
1
0
0
12
0
0
0
1
1
0
0
0
2
1
2
1
32
1
350
labor. Extra rubies can be purchased at a cost of $100 per
ruby. Market demand requires that the company produce at
least 20 Type 1 rings and at least 25 Type 2 rings. To
maximize profit, Zales should solve the following LP:
X1 Type 1 rings produced
X2 Type 2 rings produced
R number of rubies purchased
58
CHAPTER
M
rhs
3
2
9
2
1
2
3
2
1
6 Sensitivity Analysis and Duality
max z 400X1 500X2 100R
s.t.
2X1 3X2 R 100
s.t.
3X1 2X2 R 120
s.t.
X1 2X2 R 70
s.t.
X1 2X2 R 20
s.t.
2X1 2X2, X2 25
s.t.
X1, X2 0
Use the LINDO output in Figure 14 to answer the following questions:
a Suppose that instead of $100, each ruby costs $190.
Would Zales still purchase rubies? What would be the
new optimal solution to the problem?
FIGURE
14
LINDO Output for Jewelry (Problem 16)
MAX
400 X1 + 500 X2 - 100 R
SUBJECT TO
2)
2 X1 + 3 X2 - R <= 100
3)
3 X1 + 2 X2 <= 120
4)
X1 + 2 X2 <= 70
5)
X1 >=
20
6)
X2 >=
25
END
LP OPTIMUM FOUND
AT STEP
2
OBJECTIVE FUNCTION VALUE
1)
19000.0000
VARIABLE
X1
X2
R
ROW
2)
3)
4)
5)
6)
VALUE
20.000000
25.000000
15.000000
SLACK OR SURPLUS
0.000000
10.000000
0.000000
0.000000
0.000000
NO. ITERATIONS=
REDUCED COST
0.000000
0.000000
0.000000
DUAL PRICES
100.000000
0.000000
200.000000
0.000000
-200.000000
2
RANGES IN WHICH THE BASIS IS UNCHANGED
VARIABLE
X1
X2
R
ROW
2
3
4
5
6
OBJ COEFFICIENT RANGES
ALLOWABLE
INCREASE
INFINITY
200.000000
100.000000
ALLOWABLE
DECREASE
100.000000
INFINITY
100.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
15.000000
INFINITY
3.333333
0.000000
0.000000
ALLOWABLE
DECREASE
INFINITY
10.000000
0.000000
INFINITY
2.500000
CURRENT
COEF
400.000000
500.000000
-100.000000
CURRENT
RHS
100.000000
120.000000
70.000000
20.000000
25.000000
b Suppose that Zales were only required to produce at
least 23 Type 2 rings. What would Zales’ profit now be?
c What is the most that Zales would be willing to pay
for another hour of jeweler’s labor?
d What is the most that Zales would be willing to pay
for another sapphire?
e Zales is considering producing Type 3 rings. Each
Type 3 ring can be sold for $550 and requires 4 rubies,
2 sapphires, and 1 hour of jeweler’s labor. Should Zales
produce any Type 3 rings?
17 Use the dual simplex method to solve the following LP:
max z 2x1 x2
s.t.
x1 x2 5
s.t.
x1 2x2 8
s.t.
2x1, x2 0
18
Consider the following LP:
max z 4x1 x2
s.t.
4x1 3x2 6
s.t.
4x1 2x2 3
s.t.
3x1 x2 3
s.t.
3 2x1, x2 0
After subtracting an excess variable e1 from the first constraint,
adding a slack variable s2 to the second constraint, and adding
artificial variables a1 and a3 to the first and third constraints,
the optimal tableau for this LP is as shown in Table 60.
a Find the dual to this LP and its optimal solution.
b If we changed this LP to
max z 4x1 x2 x3
s.t.
4x1 3x2 x3 6
s.t.
x1 2x2 x3 3
s.t.
3x1 x2 x3 3
s
.t.
3 2 x1, x2, x3 0
would the current optimal solution remain optimal?
6 . 1 Review Problems
351
TA B L E
z
1
x1
0
60
x2
0
TA B L E
e1
s2
0
15
35
15
0
0
1
0
0
0
1
0
0
0
0
1
1
a1
a3
M
M
0
15
25
0
1
1
Radio 1
rhs
7
5
158
65
35
25
20 Use the Theorem of Complementary Slackness to find
the optimal solution to the following LP and its dual:
max z 3x1 4x2 x3 5x4
s.t.
x1 2x2 x3 2x4 5
s.t.
2x1 3x2 x3 3x4 8
s.t.
2 3 3x1, x2, x3, x4 0
21 z 8, x1 2, x2
following LP:
max z
s.t.
s.t.
0 is the optimal solution to the
4x1 x2
3x1 x2 6
5x1 3x2 15
x1, x2 0
Use the graphical approach to answer the following questions:
a Determine the range of values of c1 for which the
current basis remains optimal.
b Determine the range of values of c2 for which the
current basis remains optimal.
c Determine the range of values of b1 for which the
current basis remains optimal.
d Determine the range of values of b2 for which the
current basis remains optimal.
22 Radioco manufactures two types of radios. The only
scarce resource that is needed to produce radios is labor.
The company now has two laborers. Laborer 1 is willing to
work up to 40 hours per week and is paid $5 per hour.
Laborer 2 is willing to work up to 50 hours per week and is
paid $6 per hour. The price as well as the resources required
to build each type of radio are given in Table 61.
a Letting xi be the number of type i radios produced
each week, show that Radioco should solve the following LP (its optimal tableau is given in Table 62):
352
CHAPTER
6 Sensitivity Analysis and Duality
TA B L E
x1
Resource
Required
Price ($)
Laborer 1:
1 hour
Laborer 2:
2 hours
Raw material
cost: $5
19
z
Radio 2
Resource
Required
Price ($)
0
Consider the following LP:
max z 2x1 6x2
s.t.
x1 x2 2
s.t.
x1 x2 1
s.t.
x1, x2 0
This LP is unbounded. Use this fact to show that the following LP has no feasible solution:
min 2y1 y2
s.t.
0,y1 y2 2
s.t.
0,y1 y2 6
y1 0, y2 0
61
22
Laborer 1:
2 hours
Laborer 2:
2 hours
Raw material
cost: $4
62
x2
s1
s2
rhs
13
13
23
43
23
13
80
1
0
0
0
1
0
0
0
1
20
10
max z 3x1 2x2
s.t.
x1 2x2 40
s.t.
2x1 x2 50
s.t.
2 2x1, x2 0
b For what values of the price of a Type 1 radio would
the current basis remain optimal?
c For what values of the price of a Type 2 radio would
the current basis remain optimal?
d If laborer 1 were willing to work only 30 hours per
week, would the current basis remain optimal?
e If laborer 2 were willing to work as many as 60 hours
per week, would the current basis remain optimal?
f If laborer 1 were willing to work an additional hour,
what is the most that Radioco should pay?
g If laborer 2 were willing to work only 48 hours,
what would Radioco’s profits be? Verify your answer by
determining the number of radios of each type that
would be produced.
h A Type 3 radio is under consideration for production. The specifications of a Type 3 radio are as follows:
price, $30; 2 hours from laborer 1; 2 hours from laborer
2; cost of raw materials, $3. Should Radioco manufacture any Type 3 radios?
23 Beerco manufactures ale and beer from corn, hops,
and malt. Currently, 40 lb of corn, 30 lb of hops, and 40 lb
of malt are available. A barrel of ale sells for $40 and
requires 1 lb of corn, 1 lb of hops, and 2 lb of malt. A barrel
of beer sells for $50 and requires 2 lb of corn, 1 lb of hops,
and 1 lb of malt. Beerco can sell all ale and beer that is
produced. To maximize total sales revenue, Beerco should
solve the following LP:
max z 40ALE 50BEER
s.t.
ALE 2BEER 40
(Corn constraint)
s.t.
ALE BEER 30
(Hops constraint)
s.t.
2ALE BEER 40
(Malt constraint)
TA B L E
63
TA B L E
z
Ale
Beer
1
0
0
0
0
1
0
0
0
1
s1
s2
s3
rhs
20
23
0
0
10
13
1,200
0
13
1
13
0
13
0
23
40
3
10
3
4
0
3
s.t.
2 2ALE, BEER 0
ALE barrels of ale produced, and BEER barrels of
beer produced. An optimal tableau for this LP is shown in
Table 63.
a Write down the dual to Beerco’s LP and find its optimal solution.
b Find the range of values of the price of ale for which
the current basis remains optimal.
c Find the range of values of the price of beer for
which the current basis remains optimal.
d Find the range of values of the amount of available
corn for which the current basis remains optimal.
e Find the range of values of the amount of available
hops for which the current basis remains optimal.
f Find the range of values of the amount of available
malt for which the current basis remains optimal.
g Suppose Beerco is considering manufacturing malt
liquor. A barrel of malt liquor requires 0.5 lb of corn, 3
lb of hops, and 3 lb of malt and sells for $50. Should
Beerco manufacture any malt liquor?
h Suppose we express the Beerco constraints in ounces.
Write down the new LP and its dual.
i What is the optimal solution to the dual of the new
LP? (Hint: Think about what happens to cBVB1. Use
the idea of shadow prices to explain why the dual to the
original LP (pounds) and the dual to the new LP (ounces)
should have different optimal solutions.)
Group B
24
s
Consider the following LP:
max z 3x1 x2 2x3
s.t.
2x1 x2 2x3 3
s.t.
x1 3x2 3x3 1
s.t.
2x1 3x2 3x3 2
.t.
2 3 x1, x2, x3 0
a Find the dual to this LP and show that it has the
same feasible region as the original LP.
b Use weak duality to show that the optimal objective
function value for the LP (and its dual) must be 0.
25
Consider the following LP:
max z 2x1 x2 x3
s.t.
x1 x2 x3 1
s.t.
x1 x2 x3 2
s.t.
x1 x2 x3 3
s.t.
x1, x2, x3 0
It is given that
64
Product 1
$15
$10.75 hour
$11.5 hours
$12 units
Selling price
Labor required
Machine time required
Raw material required
1
1
0
Product 2
1
0
1
1
1
1
0
1
2
12
1
2
$8
$0.50 hour
$0.80 hour
$1 unit
12
1
2
1
2
1
2
1
2
12
a Show that the basic solution with basic variables x1,
x2, and x3 is optimal. Find the optimal solution.
b Write down the dual to this LP and find its optimal
solution.
c Show that if we multiply the right-hand side of each
constraint by a non-negative constant k, then
the new optimal solution is obtained simply by multiplying the value of each variable in the original optimal
solution by k.
26 Wivco produces two products: 1 and 2. The relevant data
are shown in Table 64. Each week, as many as 400 units of
raw material can be purchased at a cost of $1.50 per unit. The
company employs four workers, who work 40 hours per week
(their salaries are considered a fixed cost). Workers can be
asked to work overtime and are paid $6 per hour for overtime
work. Each week, 320 hours of machine time are available.
In the absence of advertising, 50 units of product 1 and 60
units of product 2 will be demanded each week. Advertising
can be used to stimulate demand for each product. Each dollar spent on advertising product 1 increases its demand by 10
units; each dollar spent for product 2 increases its demand by
15 units. At most $100 can be spent on advertising. Define
P1 number of units of product 1 produced each week
P2 number of units of product 2 produced each week
OT number of hours of overtime labor used each week
RM number of units of raw material purchased
each week
A1 dollars spent each week on advertising product 1
A2 dollars spent each week on advertising product 2
Then Wivco should solve the following LP:
max z 15P1 8P2 6(OT) 1.5RM
A1 A2
s.t.
0.75P1 10A1 50
(1)
s.t.
0.75P2 15A2 60
(2)
s.t.
0.75P1 0.5P2 160 (OT)
(3)
s.t.
0.70.52P1 P2 RM
(4)
RM 400
(5)
A1 A2 100
(6)
1.5P1 0.8P2 320
(7)
All variables non-negative
Use LINDO to solve this LP. Then use the computer output
6 . 1 Review Problems
353
to answer the following questions:
a If overtime were only $4 per hour, would Wivco use it?
b If each unit of product 1 sold for $15.50, would the
current basis remain optimal? What would be the new
optimal solution?
c What is the most that Wivco should be willing to pay
for another unit of raw material?
d How much would Wivco be willing to pay for another hour of machine time?
e If each worker were required (as part of the regular
workweek) to work 45 hours per week, what would the
company’s profits be?
f Explain why the shadow price of row (1) is 0.10.
(Hint: If the right-hand side of (1) were increased from
50 to 51, then in the absence of advertising for product
1, 51 units could now be sold each week.)
g Wivco is considering producing a new product (prod-
FIGURE
uct 3). Each unit sells for $17 and requires 2 hours of
labor, 1 unit of raw material, and 2 hours of machine
time. Should Wivco produce any of product 3?
h If each unit of product 2 sold for $10, would the current basis remain optimal?
27 The following question concerns the Rylon example
discussed in Section 3.9. After defining
RB ounces of Regular Brute produced annually
LB ounces of Luxury Brute produced annually
RC ounces of Regular Chanelle produced annually
LC ounces of Luxury Chanelle produced annually
RM pounds of raw material purchased annually
the LINDO output in Figure 15 was obtained for this problem. Use this output to answer the following questions:
a Interpret the shadow price of each constraint.
b If the price of RB were to increase by 50¢, what would
15
LINDO Output for Brute/Chanelle (Problem 27)
MAX
7 RB + 14 LB
SUBJECT TO
2)
RM <=
3)
3 LB + 2
4)
RM + LB
5)
RC + LC
END
+ 6 RC + 10 LC - 3 RM
LP OPTIMUM FOUND
4000
LC + RM <=
- 3 RM =
- 4 RM =
6000
0
0
AT STEP
6
OBJECTIVE FUNCTIONS VALUE
1)
172666.672
VARIABLE
RB
LB
RC
LC
RM
ROW
2)
3)
4)
5)
NO.
VALUE
11333.333008
666.666687
16000.000000
0.000000
4000.000000
REDUCED COST
0.000000
0.000000
0.000000
0.666667
0.000000
SLACK OR SURPLUS
0.000000
0.000000
0.000000
0.000000
ITERATIONS=
DUAL PRICES
39.666668
2.333333
7.000000
6.000000
6
RANGES IN WHICH THE BASIS IS UNCHANGED
VARIABLE
RB
LB
RC
LC
RM
ROW
2
3
4
5
354
OBJ COEFFICIENT RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
1.000000
11.900001
119.000000
1.000000
INFINITY
0.666667
0.666667
INFINITY
INFINITY
39.666668
CURRENT
COEF
7.000000
14.000000
6.000000
10.000000
-3.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
2000.000000
3400.000000
33999.996094
2000.000000
INFINITY
11333.333008
INFINITY
16000.000000
CURRENT
RHS
4000.000000
6000.000000
0.000000
0.000000
CHAPTER
6 Sensitivity Analysis and Duality
be the new optimal solution to the Rylon problem?
c If 8,000 laboratory hours were available each year,
but only 2,000 lb of raw material were available each
year, would Rylon’s profits increase or decrease? [Hint:
Use the 100% Rule to show that the current basis remains optimal. Then use reasoning analogous to
(34)–(37) to determine the new objective function value.]
d Rylon is considering expanding its laboratory capacity. Two options are under consideration:
Option 1 For a cost of $10,000 (incurred now), annual laboratory capacity can be increased by 1,000 hours.
Option 2 For a cost of $200,000 (incurred now), annual
laboratory capacity can be increased by 10,000 hours.
Suppose that all other aspects of the problem remain unchanged and that future profits are discounted, with the interest rate being 1119% per year. Which option, if any, should
Rylon choose?
e Rylon is considering purchasing a new type of raw
material. Unlimited quantities can be purchased at $8/lb.
It requires 3 laboratory hours to process a pound of the
new raw material. Each processed pound yields 2 oz of
RB and 1 oz of RC. Should Rylon purchase any of the
new material?
28
Consider the following two LPs:
max z c1x1 c2x2
s.t.
a11x1 a12x2 b1
s.t.
a21x1 a22x2 b2
s.t.
a21 a22x1, x2 0
(LP 1)
max z 100c1x1 100c2x2
s.t.
100a11x1 100a12x2 b1
(LP 2)
s.t.
100a21x1 100a22x2 b2
s.t.
100a21 a22x1, x2 0
Suppose that BV {x1, x2} is an optimal basis for both
LPs, and the optimal solution to LP 1 is x1 50, x2 500,
z 550. Also suppose that for LP 1, the shadow price of
100
. Find the optimal
both Constraint 1 and Constraint 2 3
solution to LP 2 and the optimal solution to the dual of LP
2. (Hint: If we multiply each number in a matrix by 100,
what happens to B1?)
29 The following questions pertain to the Star Oil capital
budgeting example of Section 3.6. The LINDO output for
this problem is shown in Figure 16.
a Find and interpret the shadow price for each constraint.
b If the NPV of investment 1 were $5 million, would
the optimal solution to the problem change?
c If the NPV of investment 2 and investment 4 were
each decreased by 25%, would the optimal solution to
the problem change? (This part requires knowledge of
the 100% Rule.)
d Suppose that Star Oil’s investment budget were
changed to $50 million at time 0 and $15 million at time
1. Would Star be better off? (This part requires knowledge of the 100% Rule.)
e Suppose a new investment (investment 6) is available. Investment 6 yields an NPV of $10 million and requires a cash outflow of $5 million at time 0 and $10
million at time 1. Should Star Oil invest any money in
investment 6?
30 The following questions pertain to the Finco investment
example of Section 3.11. The LINDO output for this problem
is shown in Figure 17.
a If Finco has $2,000 more on hand at time 0, by how
much would their time 3 cash increase?
b Observe that if Finco were given a dollar at time 1,
the cash available for investment at time 1 would now
be 0.5A 1.2C 1.08S0 1. Use this fact and the
shadow price of Constraint 2 to determine by how much
Finco’s time 3 cash position would increase if an extra
dollar were available at time 1.
c By how much would Finco’s time 3 cash on hand
change if Finco were given an extra dollar at time 2?
d If investment D yielded $1.80 at time 3, would the
current basis remain optimal?
e Suppose that a super money market fund yielded
25% for the period between time 0 and time 1. Should
Finco invest in this fund at time 0?
f Show that if the investment limitations of $75,000 on
investments A, B, C, and D were all eliminated, the current basis would remain optimal. (Knowledge of the
100% Rule is required for this part.) What would be the
new optimal z-value?
g A new investment (investment F) is under consideration. One dollar invested in investment F generates the
following cash flows: time 0, $1.00; time 1, $1.10;
time 2, $0.20; time 3, $0.10. Should Finco invest
in investment F?
31 In this problem, we discuss how shadow prices can be
interpreted for blending problems (see Section 3.8). To
illustrate the ideas, we discuss Problem 2 of Section 3.8. If
we define
x6J pounds of grade 6 oranges in juice
x9J pounds of grade 9 oranges in juice
x6B pounds of grade 6 oranges in bags
x9B pounds of grade 9 oranges in bags
then the appropriate formulation is
max z 0.45(x6J x9J) 0.30(x6B x9B)
(Grade 6
x6B x9B 120,000
s.t.
x6J
constraint)
(Grade 9
x9J x6B x9B 100,000
constraint)
(Orange
6x6J 9x9J
Juice
(1) x6B x9B 8
constraint)
(2)
6x6B 9x9B
7
(Bags
constraint)
x6J, x9J, x6B, x9B 0
Constraints (1) and (2) are examples of blending constraints,
because they specify the proportion of grade 6 and grade 9
oranges that must be blended to manufacture orange juice
and bags of oranges. It would be useful to determine how a
slight change in the standards for orange juice and bags of
oranges would affect profit. At the end of this problem, we
6 . 1 Review Problems
355
FIGURE
16
LINDO Output for Star Oil (Problem 29)
MAX
13 X1 + 16 X2 + 16 X3 + 14 X4 + 39 X5
SUBJECT TO
2)
11 X1 + 53 X2 + 5 X3 + 5 X4 + 29 X5 <= 40
3)
3 X1 + 6 X2 + 5 X3 + X4 + 34 X5 <= 20
4)
X1 <=
1
5)
X2 <=
1
6)
X3 <=
1
7)
X4 <=
1
8)
X5 <=
1
END
LP OPTIMUM FOUND
AT STEP
5
OBJECTIVE FUNCTION VALUE
1)
57.4490166
VARIABLE
X1
X2
X3
X4
X5
ROW
2)
3)
4)
5)
6)
7)
8)
VALUE
1.000000
0.200860
1.000000
1.000000
0.288084
REDUCED COST
0.000000
0.000000
0.000000
0.000000
0.000000
SLACK OR SURPLUS
0.000000
0.000000
0.000000
0.799140
0.000000
0.000000
0.711916
NO. ITERATIONS=
DUAL PRICES
0.190418
0.984644
7.951474
0.000000
10.124693
12.063268
0.000000
5
RANGES IN WHICH THE BASIS IS UNCHANGED
VARIABLE
OBJ COEFFICIENT RANGES
ALLOWABLE
INCREASE
INFINITY
45.104530
INFINITY
INFINITY
51.666668
ALLOWABLE
DECREASE
7.951474
9.117648
10.124693
12.063268
30.245283
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
38.264709
11.275863
1.139373
INFINITY
1.995745
2.319149
INFINITY
ALLOWABLE
DECREASE
9.617647
8.849057
1.000000
0.799140
1.000000
1.000000
0.711916
CURRENT
COEF
13.000000
16.000000
16.000000
14.000000
39.000000
X1
X2
X3
X4
X5
ROW
2
3
4
5
6
7
8
CURRENT
RHS
40.000000
20.000000
1.000000
1.000000
1.000000
1.000000
1.000000
explain how to use the shadow prices of Constraints (1) and
(2) to answer the following questions:
a Suppose that the average grade for orange juice is
increased to 8.1. Assuming the current basis remains optimal, by how much would profits change?
b Suppose the average grade requirement for bags of
oranges is decreased to 6.9. Assuming the current basis
remains optimal, by how much would profits change?
The shadow price for both (1) and (2) is 0.15. The optimal solution is x6J 26,666.67, x9J 53,333.33, x6B 93,333.33, x9B 46,666.67. To interpret the shadow prices
of blending Constraints (1) and (2), we assume that a slight
356
CHAPTER
6 Sensitivity Analysis and Duality
change in the quality standard for a product will not significantly change the quantity of the product that is produced.
Now note that (1) may be written as
6x6J 9x9J 8(x6J x9J),
or
2x6J x9J 0
If the quality standard for orange juice is changed to 8 , then (1) can be written as
6x6J 9x9J (8 ) (x6J x9J)
or
2x6J x9J (x6J x9J)
Because we are assuming that changing orange juice qual-
FIGURE
17
LINDO Output for Finco (Problem 30)
MAX
B + 1.9 D + 1.5 E + 1.08 S2
SUBJECT TO
2)
D + A + C + SO =
100000
3) - B + 0.5 A + 1.2 C + 1.08 SO - S1 =
4) 0.5 B - E- S2 + A + 1.08 S1 =
0
5)
A <= 75000
6)
B <= 75000
7)
C <= 75000
8)
D <= 75000
9)
E <= 75000
END
LP OPTIMUM FOUND
AT STEP
0
8
OBJECTIVE FUNCTION VALUE
1)
218500.000
VARIABLE
B
D
E
S2
A
C
S0
S1
ROW
2)
3)
4)
5)
6)
7)
8)
9)
VALUE
30000.000000
40000.000000
75000.000000
0.000000
60000.000000
0.000000
0.000000
0.000000
REDUCED COST
0.000000
0.000000
0.000000
0.040000
0.000000
0.028000
0.215200
0.350400
SLACK OR SURPLUS
0.000000
0.000000
0.000000
15000.000000
45000.000000
75000.000000
35000.000000
0.000000
DUAL PRICES
1.900000
-1.560000
-1.120000
0.000000
0.000000
0.000000
0.000000
0.380000
NO. ITERATIONS=
8
RANGES IN WHICH THE BASIS IS UNCHANGED
VARIABLE
B
D
E
S2
A
C
S0
S1
ROW
2
3
4
5
6
7
8
9
OBJ COEFFICIENT RANGES
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
0.029167
0.284416
0.475000
0.050000
INFINITY
0.380000
0.040000
INFINITY
0.050000
0.058333
0.028000
INFINITY
0.215200
INFINITY
0.350400
INFINITY
CURRENT
COEF
1.000000
1.900000
1.500000
1.080000
0.000000
0.000000
0.000000
0.000000
RIGHTHAND SIDE RANGES
ALLOWABLE
INCREASE
35000.000000
37500.000000
18750.000000
INFINITY
INFINITY
INFINITY
INFINITY
18750.000000
CURRENT
RHS
100000.000000
0.000000
0.000000
75000.000000
75000.000000
75000.000000
75000.000000
75000.000000
ALLOWABLE
DECREASE
40000.000000
56250.000000
43750.000000
15000.000000
45000.000000
75000.000000
35000.000000
43750.000000
ity from 8 to 8 does not change the amount produced,
x6J x9J will remain equal to 80,000, and (1) will become
2x6J x9J 80,000
Using the definition of shadow price, now answer parts (a)
and (b).
32 Ballco manufactures large softballs, regular softballs,
and hardballs. Each type of ball requires time in three
departments: cutting, sewing, and packaging, as shown in
Table 65 (in minutes). Because of marketing considerations,
at least 1,000 regular softballs must be produced. Each
6 . 1 Review Problems
357
TA B L E
s.t.
2x1 3x2 4
s.t.
2 3x1, x2 0
The optimal tableau for this LP is
zx1x2 s1 2s2 14
zx1x2 3s1 4s2 2
zx1x2 2s1 3s2 0
Without doing any pivots, determine c1 and c2.
65
Balls
Regular softballs
Large softballs
Hardballs
Cutting
Time
Sewing
Time
Packaging
Time
15
10
18
15
15
14
3
4
2
34 Consider the following LP and its partial optimal
tableau (Table 67):
max z 20x1 10x2
s.t.
x1 x2 150
s.t.
x1 x2 40
s.t.
x1 x2 20
s.t.
x1, x2 0
a Complete the optimal tableau.
b Find the dual to this LP and its optimal solution.
regular softball can be sold for $3, each large softball, for
$5; and each hardball, for $4. A total of 18,000 minutes of
cutting time, 18,000 minutes of sewing time, and 9,000
minutes of packaging time are available. Ballco wants to
maximize sales revenue. If we define
RS number of regular softballs produced
LS number of large softballs produced
HB number of hardballs produced
then the appropriate LP is
max z 3RS 5LS 4HB
(Cutting
s.t.
15RS 10LS 8HB 18,000
constraint)
(Sewing
s.t.
15RS 15LS 4HB 18,000
constraint)
(Packaging
s.t.
3RS 4LS 2HB 9,000
constraint)
(Demand
s.t.
RS 15LS 2HB 1,000
constraint)
RS, LS, HB 0
The optimal tableau for this LP is shown in Table 66.
a Find the dual of the Ballco problem and its optimal
solution.
b Show that the Ballco problem has an alternative optimal solution. Find it. How many minutes of sewing
time are used by the alternative optimal solution?
c By how much would an increase of 1 minute in the
amount of available sewing time increase Ballco’s revenue? How can this answer be reconciled with the fact
that the sewing constraint is binding? (Hint: Look at the
answer to part (b).)
d Assuming the current basis remains optimal, how
would an increase of 100 in the regular softball requirement affect Ballco’s revenue?
33
35 Consider the following LP and its optimal tableau
(Table 68):
max z c1x1 c2x2
s.t.
a11x1 a12x2 b1
s.t.
a21x1 a22x2 b2
x1, x2 0
Determine c1, c2, b1, b2, a11, a12, a21, and a22.
36 Consider an LP with three constraints. The righthand sides are 10, 15, and 20, respectively. In the optimal
tableau, s2 is a basic variable in the second constraint, which
has a right-hand side of 12. Determine the range of values
of b2 for which the current basis remains optimal. (Hint: If
rhs of Constraint 2 is 15 , this should help in finding
the rhs of the optimal tableau.)
37 Use LINDO to solve the Sailco problem of Section
3.10. Then use the output to answer the following questions:
a If month 1 demand decreased to 35 sailboats, what
would be the total cost of satisfying the demands during
the next four months?
b If the cost of producing a sailboat with regular-time
labor during month 1 were $420, what would be the new
optimal solution?
c Suppose a new customer is willing to pay $425 for
a sailboat. If his demand must be met during month 1,
should Sailco fill the order? How about if his demand
must be met during month 4?
Consider the following LP:
max z c1x1 c2x2
s.t.
3x1 4x2 6
TA B L E
66
z
RS
LS
HB
s1
s2
s3
e4
a4
rhs
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0.50
0.19
0.05
0.17
0.17
0.125
0.125
0.105
0.155
0.125
0
0
0
1
0
4.52
0.94
0.75
1.88
1.02
M 4.5
0.94
0.75
1.88
1.75
4,500.5
4,187.5
4,150.5
5,025.5
1,000.5
358
CHAPTER
6 Sensitivity Analysis and Duality
TA B L E
67
TA B L E
68
z
x1
x2
s2
e3
a1
a3
rhs
z
x1
x2
s1
s2
b
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1,900
90
40
110
1
0
0
2
3
1
0
1
0
0
1
1
0
1
3
1
2
1
5
2
5
2
1
REFERENCES
The following texts contain extensive discussions of
sensitivity analysis and duality:
Bazaraa, M., and J. Jarvis. Linear Programming and Network Flows. New York: Wiley, 1990.
Bersitmas, D., and Tsitsiklis, J. Introduction to Linear Optimization. Belmont, Mass.: Athena, 1997.
Bradley, S., A. Hax, and T. Magnanti. Applied Mathematical
Programming. Reading, Mass.: Addison-Wesley, 1977.
Dantzig, G. Linear Programming and Extensions. Princeton, N.J.: Princeton University Press, 1963.
Dantzig, G., and Thapa, N. Linear Programming. New York:
Springer-Verlag, 1997.
Gass, S. Linear Programming: Methods and Applications,
5th ed. New York: McGraw-Hill, 1985.
Luenberger, D. Linear and Nonlinear Programming, 2d ed.
Reading, Mass.: Addison-Wesley, 1984.
Murty, K. Linear Programming. New York: Wiley, 1983.
Nash, S., and Sofer, A. Linear and Nonlinear Programming.
New York: McGraw-Hill, 1995.
Nering, E., and Tucker, A. Linear Programs and Related
Problems. New York: Academic Press, 1993.
Simmons, D. Linear Programming for Operations Research.
Englewood Cliffs, N.J.: Prentice Hall, 1972.
Simonnard, M. Linear Programming. Englewood Cliffs,
N.J.: Prentice Hall, 1966.
Wu, N., and R. Coppins. Linear Programming and Extensions. New York: McGraw-Hill, 1981.
The following contains a lucid discussion of DEA:
Callen, J. “Data Envelopment Analysis: Practical Survey
and Managerial Accounting Applications,” Journal of
Management Accounting Research 3(1991):35–57.
6 . 1 References
359
7
Transportation, Assignment, and
Transshipment Problems
In this chapter, we discuss three special types of linear programming problems: transportation, assignment, and transshipment. Each of these can be solved by the simplex algorithm,
but specialized algorithms for each type of problem are much more efficient.
7.1
Formulating Transportation Problems
We begin our discussion of transportation problems by formulating a linear programming
model of the following situation.
EXAMPLE
1
Powerco Formulation
Powerco has three electric power plants that supply the needs of four cities.† Each power
plant can supply the following numbers of kilowatt-hours (kwh) of electricity: plant 1—
35 million; plant 2—50 million; plant 3—40 million (see Table 1). The peak power demands in these cities, which occur at the same time (2 P.M.), are as follows (in kwh): city
1—45 million; city 2—20 million; city 3—30 million; city 4—30 million. The costs of
sending 1 million kwh of electricity from plant to city depend on the distance the electricity must travel. Formulate an LP to minimize the cost of meeting each city’s peak
power demand.
Solution
To formulate Powerco’s problem as an LP, we begin by defining a variable for each decision that Powerco must make. Because Powerco must determine how much power is sent
from each plant to each city, we define (for i 1, 2, 3 and j 1, 2, 3, 4)
xij number of (million) kwh produced at plant i and sent to city j
In terms of these variables, the total cost of supplying the peak power demands to cities
1–4 may be written as
8x11 6x12 10x13 9x14
9x21 12x22 13x23 7x24
14x31 9x32 16x33 5x34
(Cost of shipping power from plant 1)
(Cost of shipping power from plant 2)
(Cost of shipping power from plant 3)
Powerco faces two types of constraints. First, the total power supplied by each plant
cannot exceed the plant’s capacity. For example, the total amount of power sent from plant
†
This example is based on Aarvik and Randolph (1975).
1
TA B L E
Shipping Costs, Supply, and Demand for Powerco
To
From
City 1
City 2
City 3
City 4
Plant 1
Plant 2
Plant 3
$8
$9
$14
45
$6
$12
$9
20
$10
$13
$16
30
$9
$7
$5
30
Demand
(million kwh)
Supply
(million kwh)
35
50
40
1 to the four cities cannot exceed 35 million kwh. Each variable with first subscript 1 represents a shipment of power from plant 1, so we may express this restriction by the LP
constraint
x11 x12 x13 x14 35
In a similar fashion, we can find constraints that reflect plant 2’s and plant 3’s capacities.
Because power is supplied by the power plants, each is a supply point. Analogously, a
constraint that ensures that the total quantity shipped from a plant does not exceed plant
capacity is a supply constraint. The LP formulation of Powerco’s problem contains the
following three supply constraints:
x11 x12 x13 x14 35
x21 x22 x23 x24 50
x31 x32 x33 x34 40
(Plant 1 supply constraint)
(Plant 2 supply constraint)
(Plant 3 supply constraint)
Second, we need constraints that ensure that each city will receive sufficient power to
meet its peak demand. Each city demands power, so each is a demand point. For example, city 1 must receive at least 45 million kwh. Each variable with second subscript 1
represents a shipment of power to city 1, so we obtain the following constraint:
x11 x21 x31 45
Similarly, we obtain a constraint for each of cities 2, 3, and 4. A constraint that ensures
that a location receives its demand is a demand constraint. Powerco must satisfy the following four demand constraints:
x11
x12
x13
x14
x21
x22
x23
x24
x31
x32
x33
x34
45
20
30
30
(City
(City
(City
(City
1
2
3
4
demand
demand
demand
demand
constraint)
constraint)
constraint)
constraint)
Because all the xij’s must be nonnegative, we add the sign restrictions xij 0 (i 1, 2,
3; j 1, 2, 3, 4).
Combining the objective function, supply constraints, demand constraints, and sign restrictions yields the following LP formulation of Powerco’s problem:
min z 8x11 6x12 10x13 9x14 9x21 12x22 13x23 7x24
14x31 9x32 16x33 5x34
s.t. x11 x12 x13 x14 35
(Supply constraints)
s.t. x21 x22 x23 x24 50
s.t. x31 x32 x33 x34 40
7. 1 Formulating Transportation Problems
361
Supply points
Demand points
City 1
d1 = 45
City 2
d2 = 20
City 3
d3 = 30
City 4
d4 = 30
x11 = 0
s1 = 35
x12 = 10
Plant 1
x13 = 25
x14 = 0
FIGURE
1
Graphical
Representation of
Powerco Problem and
Its Optimal Solution
x21 = 45
s1 = 50
x22 = 0
x23 = 5
Plant 2
x24 = 0
x31 = 0
s1 = 40
x32 = 10
x33 = 0
Plant 3
x34 = 30
s.t. x11
s.t. x12
s.t. x13
s.t. x14
x21
x22
x23
x24
x31
x32
x33
x34
x34
x34
x34
x34
xij
45
(Demand constraints)
20
30
30
0 (i 1, 2, 3; j 1, 2, 3, 4)
In Section 7.3, we will find that the optimal solution to this LP is z 1020, x12 10,
x13 25, x21 45, x23 5, x32 10, x34 30. Figure 1 is a graphical representation
of the Powerco problem and its optimal solution. The variable xij is represented by a line,
or arc, joining the ith supply point (plant i) and the jth demand point (city j).
General Description of a Transportation Problem
In general, a transportation problem is specified by the following information:
1 A set of m supply points from which a good is shipped. Supply point i can supply at
most si units. In the Powerco example, m 3, s1 35, s2 50, and s3 40.
A set of n demand points to which the good is shipped. Demand point j must receive
at least dj units of the shipped good. In the Powerco example, n 4, d1 45, d2 20,
d3 30, and d4 30.
2
3 Each unit produced at supply point i and shipped to demand point j incurs a variable
cost of cij. In the Powerco example, c12 6.
Let
xij number of units shipped from supply point i to demand point j
then the general formulation of a transportation problem is
im jn
min
cijxij
i1 j1
362
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
jn
xij si
s.t.
(i 1, 2, . . . , m)
(Supply constraints)
(1)
j1
im
xij dj
s.t.
( j 1, 2, . . . , n)
(Demand constraints)
i1
xij 0
(i 1, 2, . . . , m; j 1, 2, . . . , n)
If a problem has the constraints given in (1) and is a maximization problem, then it is still
a transportation problem (see Problem 7 at the end of this section). If
im
i1
jn
si dj
j1
then total supply equals total demand, and the problem is said to be a balanced transportation problem.
For the Powerco problem, total supply and total demand both equal 125, so this is a
balanced transportation problem. In a balanced transportation problem, all the constraints
must be binding. For example, in the Powerco problem, if any supply constraint were nonbinding, then the remaining available power would not be sufficient to meet the needs of
all four cities. For a balanced transportation problem, (1) may be written as
im jn
min
cijxij
i1 j1
jn
s.t.
xij si
(i 1, 2, . . . , m)
(Supply constraints)
(2)
j1
im
s.t.
xij dj
( j 1, 2, . . . , n)
(Demand constraints)
i1
xij 0
(i 1, 2, . . . , m; j 1, 2, . . . , n)
Later in this chapter, we will see that it is relatively simple to find a basic feasible solution for a balanced transportation problem. Also, simplex pivots for these problems do not
involve multiplication and reduce to additions and subtractions. For these reasons, it is desirable to formulate a transportation problem as a balanced transportation problem.
Balancing a Transportation Problem
If Total Supply Exceeds Total Demand
If total supply exceeds total demand, we can balance a transportation problem by creating a dummy demand point that has a demand equal to the amount of excess supply.
Because shipments to the dummy demand point are not real shipments, they are assigned
a cost of zero. Shipments to the dummy demand point indicate unused supply capacity.
To understand the use of a dummy demand point, suppose that in the Powerco problem,
the demand for city 1 were reduced to 40 million kwh. To balance the Powerco problem,
we would add a dummy demand point (point 5) with a demand of 125 120 5 million kwh. From each plant, the cost of shipping 1 million kwh to the dummy is 0. The optimal solution to this balanced transportation problem is z 975, x13 20, x12 15,
x21 40, x23 10, x32 5, x34 30, and x35 5. Because x35 5, 5 million kwh of
plant 3 capacity will be unused (see Figure 2).
A transportation problem is specified by the supply, the demand, and the shipping
costs, so the relevant data can be summarized in a transportation tableau (see Table 2).
The square, or cell, in row i and column j of a transportation tableau corresponds to the
7. 1 Formulating Transportation Problems
363
Supply points
Demand points
x11 = 0
City 1
d1 = 40
City 2
d2 = 20
City 3
d3 = 30
City 4
d4 = 30
Dummy
City 5
d5 = 5
x21 = 40
s1 = 35
FIGURE
Plant 1
x31 = 0
x12 = 15
2
Graphical
Representation of
Unbalanced Powerco
Problem and Its
Optimal Solution (with
Dummy Demand Point)
x22 = 0
x32 = 5
s2 = 50
Plant 2
x13 = 20
x23 = 10
x33 = 0
s3 = 40
x24 = 0
Plant 3
x14 = 0
x34 = 30
x25 = 0
x15 = 0
x35 = 5
TA B L E
2
c11
A Transportation Tableau
c12
Supply
c1n
s1
c21
c22
c2n
s2
cm1
cm2
cmn
sm
d1
d2
dn
Demand
TA B L E
3
Transportation Tableau
for Powerco
City 1
City 2
8
6
10
Plant 1
9
Plant 2
45
364
CHAPTER
45
Supply
9
10
35
13
7
50
5
9
16
10
Plant 3
City 4
25
12
14
Demand
City 3
20
5
30
30
7 Transportation, Assignment, and Transshipment Problems
30
40
variable xij. If xij is a basic variable, its value is placed in the lower left-hand corner of
the ijth cell of the tableau. For example, the balanced Powerco problem and its optimal
solution could be displayed as shown in Table 3. The tableau format implicitly expresses
the supply and demand constraints through the fact that the sum of the variables in row i
must equal si and the sum of the variables in column j must equal dj.
Balancing a Transportation Problem
If Total Supply Is Less Than Total Demand
If a transportation problem has a total supply that is strictly less than total demand, then
the problem has no feasible solution. For example, if plant 1 had only 30 million kwh of
capacity, then a total of only 120 million kwh would be available. This amount of power
would be insufficient to meet the total demand of 125 million kwh, and the Powerco problem would no longer have a feasible solution.
When total supply is less than total demand, it is sometimes desirable to allow the possibility of leaving some demand unmet. In such a situation, a penalty is often associated
with unmet demand. Example 2 illustrates how such a situation can yield a balanced transportation problem.
EXAMPLE
2
Handling Shortages
Two reservoirs are available to supply the water needs of three cities. Each reservoir can
supply up to 50 million gallons of water per day. Each city would like to receive 40 million gallons per day. For each million gallons per day of unmet demand, there is a penalty.
At city 1, the penalty is $20; at city 2, the penalty is $22; and at city 3, the penalty is $23.
The cost of transporting 1 million gallons of water from each reservoir to each city is
shown in Table 4. Formulate a balanced transportation problem that can be used to minimize the sum of shortage and transport costs.
Solution
In this problem,
Daily supply 50 50 100 million gallons per day
Daily demand 40 40 40 120 million gallons per day
To balance the problem, we add a dummy (or shortage) supply point having a supply of
120 100 20 million gallons per day. The cost of shipping 1 million gallons from the
dummy supply point to a city is just the shortage cost per million gallons for that city. Table
5 shows the balanced transportation problem and its optimal solution. Reservoir 1 should
send 20 million gallons per day to city 1 and 30 million gallons per day to city 2, whereas
reservoir 2 should send 10 million gallons per day to city 2 and 40 million gallons per day
to city 3. Twenty million gallons per day of city 1’s demand will be unsatisfied.
TA B L E
4
Shipping Costs for Reservoir
To
From
Reservoir 1
Reservoir 2
City 1
City 2
City 3
$7
$9
$8
$7
$10
$8
7. 1 Formulating Transportation Problems
365
TA B L E
5
Transportation Tableau
for Reservoir
City 1
City 2
7
8
9
10
50
7
10
Reservoir 2
20
Dummy (shortage)
8
50
40
22
23
20
20
40
Demand
Supply
30
20
Reservoir 1
City 3
40
40
Modeling Inventory Problems as Transportation Problems
Many inventory planning problems can be modeled as balanced transportation problems.
To illustrate, we formulate a balanced transportation model of the Sailco problem of Section 3.10.
EXAMPLE
3
Setting Up an Inventory Problem as a Transportation Problem
Sailco Corporation must determine how many sailboats should be produced during each
of the next four quarters (one quarter is three months). Demand is as follows: first quarter,
40 sailboats; second quarter, 60 sailboats; third quarter, 75 sailboats; fourth quarter, 25 sailboats. Sailco must meet demand on time. At the beginning of the first quarter, Sailco has
an inventory of 10 sailboats. At the beginning of each quarter, Sailco must decide how
many sailboats should be produced during the current quarter. For simplicity, we assume
that sailboats manufactured during a quarter can be used to meet demand for the current
quarter. During each quarter, Sailco can produce up to 40 sailboats at a cost of $400 per
sailboat. By having employees work overtime during a quarter, Sailco can produce additional sailboats at a cost of $450 per sailboat. At the end of each quarter (after production
has occurred and the current quarter’s demand has been satisfied), a carrying or holding
cost of $20 per sailboat is incurred. Formulate a balanced transportation problem to minimize the sum of production and inventory costs during the next four quarters.
Solution
We define supply and demand points as follows:
Supply
Supply
Supply
Supply
Supply
Supply
Supply
Supply
Supply
Points
Points
Points
Points
Points
Points
Points
Points
Points
Point
Point
Point
Point
Point
Point
Point
Point
Point
1
2
3
4
5
6
7
8
9
initial inventory
(s1 10)
quarter 1 regular-time (RT) production
(s2 40)
quarter 1 overtime (OT) production
(s3 150)
quarter 2 RT production
(s4 40)
quarter 2 OT production
(s5 150)
quarter 3 RT production
(s6 40)
quarter 3 OT production
(s7 150)
quarter 4 RT production
(s8 40)
quarter 4 OT production
(s9 150)
There is a supply point corresponding to each source from which demand for sailboats
can be met:
366
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
Demand
Demand
Demand
Demand
Demand
Points
Points
Points
Points
Points
Point
Point
Point
Point
Point
1
2
3
4
5
quarter 1 demand
(d1
quarter 2 demand
(d2
quarter 3 demand
(d3
quarter 4 demand
(d4
dummy demand point
40)
60)
75)
25)
(d5 770 200 570)
A shipment from, say, quarter 1 RT to quarter 3 demand means producing 1 unit on regular time during quarter 1 that is used to meet 1 unit of quarter 3’s demand. To determine,
say, c13, observe that producing 1 unit during quarter 1 RT and using that unit to meet quarter 3 demand incurs a cost equal to the cost of producing 1 unit on quarter 1 RT plus the
cost of holding a unit in inventory for 3 1 2 quarters. Thus, c13 400 2(20) 440.
Because there is no limit on the overtime production during any quarter, it is not clear
what value should be chosen for the supply at each overtime production point. Total demand 200, so at most 200 10 190 (10 is for initial inventory) units will be produced during any quarter. Because 40 units must be produced on regular time before any
units are produced on overtime, overtime production during any quarter will never exceed
190 40 150 units. Any unused overtime capacity will be “shipped” to the dummy
demand point. To ensure that no sailboats are used to meet demand during a quarter prior
to their production, a cost of M (M is a large positive number) is assigned to any cell that
corresponds to using production to meet demand for an earlier quarter.
TA B L E
6
Transportation Tableau
for Sailco
1
2
0
Initial
10
Qtr 1 RT
30
3
20
4
40
Dummy
60
0
10
400
420
440
460
0
10
450
40
470
490
510
Qtr 1 OT
0
150
M
Qtr 2 RT
400
420
440
150
0
40
M
Qtr 2 OT
40
450
470
490
10
M
0
140
M
Qtr 3 RT
400
420
150
0
40
M
M
Qtr 3 OT
40
450
470
35
M
M
M
400
25
M
M
0
115
Qtr 4 RT
M
0
450
60
75
25
7. 1 Formulating Transportation Problems
40
0
150
40
150
15
Qtr 4 OT
Demand
Supply
150
570
367
Total supply 770 and total demand 200, so we must add a dummy demand point
with a demand of 770 200 570 to balance the problem. The cost of shipping a unit
from any supply point to the dummy demand point is 0.
Combining these observations yields the balanced transportation problem and its optimal solution shown in Table 6. Thus, Sailco should meet quarter 1 demand with 10 units
of initial inventory and 30 units of quarter 1 RT production; quarter 2 demand with 10
units of quarter 1 RT, 40 units of quarter 2 RT, and 10 units of quarter 2 OT production;
quarter 3 demand with 40 units of quarter 3 RT and 35 units of quarter 3 OT production;
and finally, quarter 4 demand with 25 units of quarter 4 RT production.
In Problem 12 at the end of this section, we show how this formulation can be modified to incorporate other aspects of inventory problems (backlogged demand, perishable
inventory, and so on).
Solving Transportation Problems on the Computer
Trans.lng
To solve a transportation problem with LINDO, type in the objective function, supply constraints, and demand constraints. Other menu-driven programs are available that accept
the shipping costs, supply values, and demand values. From these values, the program can
generate the objective function and constraints.
LINGO can be used to easily solve any transportation problem. The following LINGO
model can be used to solve the Powerco example (file Trans.lng).
MODEL:
1]SETS:
2]PLANTS/P1,P2,P3/:CAP;
3]CITIES/C1,C2,C3,C4/:DEM;
4]LINKS(PLANTS,CITIES):COST,SHIP;
5]ENDSETS
6]MIN=@SUM(LINKS:COST*SHIP);
7]@FOR(CITIES(J):
8]@SUM(PLANTS(I):SHIP(I,J))>DEM(J));
9]@FOR(PLANTS(I):
10]@SUM(CITIES(J):SHIP(I,J))<CAP(I));
11]DATA:
12]CAP=35,50,40;
13]DEM=45,20,30,30;
14]COST=8,6,10,9,
15]9,12,13,7,
16]14,9,16,5;
17]ENDDATA
END
Lines 1–5 define the SETS needed to generate the objective function and constraints.
In line 2, we create the three power plants (the supply points) and specify that each has a
capacity (given in the DATA section). In line 3, we create the four cities (the demand
points) and specify that each has a demand (given in the DATA section). The LINK statement in line 4 creates a LINK(I,J) as I runs over all PLANTS and J runs over all CITIES.
Thus, objects LINK(1,1), LINK (1,2), LINK(1,3), LINK(1,4), LINK(2,1), LINK (2,2),
LINK(2,3), LINK(2,4), LINK(3,1), LINK (3,2), LINK(3,3), LINK(3,4) are created and
stored in this order. Attributes with multiple subscripts are stored so that the rightmost
subscripts advance most rapidly. Each LINK has two attributes: a per-unit shipping cost
[(COST), given in the DATA section] and the amount shipped (SHIP), for which LINGO
will solve.
Line 6 creates the objective function. We sum over all links the product of the unit
shipping cost and the amount shipped. Using the @FOR and @SUM operators, lines 7–8
368
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
generate all demand constraints. They ensure that for each city, the sum of the amount
shipped into the city will be at least as large as the city’s demand. Note that the extra
parenthesis after SHIP(I,J) in line 8 is to close the @SUM operator, and the extra parenthesis after DEM(J) is to close the @FOR operator. Using the @FOR and @SUM operators, lines 9–10 generate all supply constraints. They ensure that for each plant, the total shipped out of the plant will not exceed the plant’s capacity.
Lines 11–17 contain the data needed for the problem. Line 12 defines each plant’s capacity, and line 13 defines each city’s demand. Lines 14–16 contain the unit shipping cost
from each plant to each city. These costs correspond to the ordering of the links described
previously. ENDDATA ends the data section, and END ends the program. Typing GO will
solve the problem.
This program can be used to solve any transportation problem. If, for example, we
wanted to solve a problem with 15 supply points and 10 demand points, we would change
line 2 to create 15 supply points and line 3 to create 10 demand points. Moving to line
12, we would type in the 15 plant capacities. In line 13, we would type in the demands
for the 10 demand points. Then in line 14, we would type in the 150 shipping costs. Observe that the part of the program (lines 6–10) that generates the objective function and
constraints remains unchanged! Notice also that our LINGO formulation does not require
that the transportation problem be balanced.
Obtaining LINGO Data from an Excel Spreadsheet
Often it is easier to obtain data for a LINGO model from a spreadsheet. For example,
shipping costs for a transportation problem may be the end result of many computations.
As an example, suppose we have created the capacities, demands, and shipping costs for
the Powerco model in the file Powerco.xls (see Figure 3). We have created capacities in
the cell range F9:F11 and named the range Cap. As you probably know, you can name a
range of cells in Excel by selecting the range and clicking in the name box in the upper
left-hand corner of your spreadsheet. Then type the range name and hit the Enter key. In
a similar fashion, name the city demands (in cells B12:E12) with the name Demand and
the unit shipping costs (in cells B4:E6) with the name Costs.
Powerco.xls
3
FIGURE
A
1
2
3
4
5
6
7
8
B
C
OPTIMAL SOLUTION
COSTS
PLANT
1
2
3
SHIPMENTS
PLANT
9
10
11
12 RECEIVED
13
14 DEMANDS
D
FOR
CITY
1
8
9
14
E
F
POWERCO
2
6
12
9
3
10
13
16
4
9
7
5
2
10
0
10
20
>=
20
3
25
5
0
30
>=
30
4
0
0
30
30
>=
30
CITY
1
2
3
1
0
45
0
45
>=
45
G
H
COSTS
1020
SHIPPED
SUPPLIES
35
50
40
7. 1 Formulating Transportation Problems
<=
<=
<=
35
50
40
369
Transpspread.lng
Using an @OLE statement, LINGO can read from a spreadsheet the values of data
that are defined in the Sets portion of a program. The LINGO program (see file Transpspread.lng) needed to read our input data from the Powerco.xls file is shown below.
MODEL:
SETS:
PLANTS/P1,P2,P3/:CAP;
CITIES/C1,C2,C3,C4/:DEM;
LINKS(PLANTS,CITIES):COST,SHIP;
ENDSETS
MIN=@SUM(LINKS:COST*SHIP);
@FOR(CITIES(J):
@SUM(PLANTS(I):SHIP(I,J))>DEM(J));
@FOR(PLANTS(I);
@SUM(CITIES(J):SHIP(I,J))<CAP(I));
DATA:
CAP, DEM, COST=@OLE(‘C:\MPROG\POWERCO.XLS’,‘Cap’,‘Demand’,‘Costs’);
ENDDATA
END
The key statement is
CAP, DEM, COST=@OLE(‘C:\MPROG\POWERCO.XLS’,‘Cap’,‘Demand’,‘Costs’);.
This statement reads the defined data sets CAP, DEM, and COSTS from the Powerco.xls
spreadsheet. Note that the full path location of our Excel file (enclosed in single quotes)
must be given first followed by the spreadsheet range names that contain the needed data.
The range names are paired with the data sets in the order listed. Therefore, CAP values
are found in range Cap and so on. The @OLE statement is very powerful, because a
spreadsheet will usually greatly simplify the creation of data for a LINGO program.
Spreadsheet Solution of Transportation Problems
Powerco.xls
In the file Powerco.xls, we show how easy it is to use the Excel Solver to find the optimal solution to a transportation problem. After entering the plant capacities, city demands,
and unit shipping costs as shown, we enter trial values of the units shipped from each
plant to each city in the range B9:E11. Then we proceed as follows:
Compute the total amount shipped out of each city by copying from F9 to
F10:F11 the formula
Step 1
SUM(B9:E9)
Step 2
Compute the total received by each city by copying from B12 to C12:E12 the
formula
SUM(B9:B11)
Step 3
Compute the total shipping cost in cell F2 with the formula
SUMPRODUCT(B9:E11,Costs)
Note that the SUMPRODUCT function works on rectangles as well as rows or columns
of numbers. Also, we have named the range of unit shipping costs (B4:E6) as COSTS.
We now fill in the Solver window shown in Figure 4. We minimize total shipping
costs (F2) by changing units shipped from each plant to each city (B9:E11). We constrain
amount received by each city (B12:E12) to be at least each city’s demand (range name
Demand). We constrain the amount shipped out of each plant (F9:F11) to be at most each
plant’s capacity (range name Cap). After checking the Assume Nonnegative option and
Assume Linear Model option, we obtain the optimal solution shown in Figure 3. Note, of
course, that the objective function of the optimal solution found by Excel equals the ob-
Step 4
370
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
FIGURE
4
jective function value found by LINGO and our hand solution. If the problem had multiple optimal solutions, then it is possible that the values of the shipments found by LINGO,
Excel, and our hand solution might be different.
PROBLEMS
Group A
1 A company supplies goods to three customers, who each
require 30 units. The company has two warehouses.
Warehouse 1 has 40 units available, and warehouse 2 has 30
units available. The costs of shipping 1 unit from warehouse
to customer are shown in Table 7. There is a penalty for each
unmet customer unit of demand: With customer 1, a penalty
cost of $90 is incurred; with customer 2, $80; and with
customer 3, $110. Formulate a balanced transportation
problem to minimize the sum of shortage and shipping costs.
2 Referring to Problem 1, suppose that extra units could
be purchased and shipped to either warehouse for a total
cost of $100 per unit and that all customer demand must be
met. Formulate a balanced transportation problem to
minimize the sum of purchasing and shipping costs.
3 A shoe company forecasts the following demands during
the next six months: month 1—200; month 2—260; month
3—240; month 4—340; month 5—190; month 6—150. It
costs $7 to produce a pair of shoes with regular-time labor
(RT) and $11 with overtime labor (OT). During each month,
regular production is limited to 200 pairs of shoes, and
overtime production is limited to 100 pairs. It costs $1 per
month to hold a pair of shoes in inventory. Formulate a
balanced transportation problem to minimize the total cost
of meeting the next six months of demand on time.
4 Steelco manufactures three types of steel at different
plants. The time required to manufacture 1 ton of steel
(regardless of type) and the costs at each plant are shown in
Table 8. Each week, 100 tons of each type of steel (1, 2, and
3) must be produced. Each plant is open 40 hours per week.
a Formulate a balanced transportation problem to minimize the cost of meeting Steelco’s weekly requirements.
b Suppose the time required to produce 1 ton of steel
depends on the type of steel as well as on the plant at
which it is produced (see Table 9, page 372). Could a
transportation problem still be formulated?
5 A hospital needs to purchase 3 gallons of a perishable
medicine for use during the current month and 4 gallons for
use during the next month. Because the medicine is
TA B L E
TA B L E
Cost ($)
To
From
Warehouse 1
Warehouse 2
8
7
Plant
Customer 1
Customer 2
Customer 3
$15
$10
$35
$50
$25
$40
1
2
3
Steel 1
Steel 2
Steel 3
Time
(minutes)
60
50
43
40
30
20
28
30
20
20
16
15
7. 1 Formulating Transportation Problems
371
TA B L E
9
TA B L E
12
Time (minutes)
Plant
1
2
3
To ($)
Steel 1
Steel 2
Steel 3
From ($)
England
Japan
15
15
10
12
15
10
15
20
15
Field 1
Field 2
1
2
2
1
TA B L E
perishable, it can only be used during the month of purchase.
Two companies (Daisy and Laroach) sell the medicine. The
medicine is in short supply. Thus, during the next two
months, the hospital is limited to buying at most 5 gallons
from each company. The companies charge the prices shown
in Table 10. Formulate a balanced transportation model to
minimize the cost of purchasing the needed medicine.
6 A bank has two sites at which checks are processed. Site
1 can process 10,000 checks per day, and site 2 can process
6,000 checks per day. The bank processes three types of
checks: vendor, salary, and personal. The processing cost
per check depends on the site (see Table 11). Each day,
5,000 checks of each type must be processed. Formulate a
balanced transportation problem to minimize the daily cost
of processing checks.
7† The U.S. government is auctioning off oil leases at two
sites: 1 and 2. At each site, 100,000 acres of land are to be
auctioned. Cliff Ewing, Blake Barnes, and Alexis Pickens are
bidding for the oil. Government rules state that no bidder can
receive more than 40% of the land being auctioned. Cliff has
bid $1,000/acre for site 1 land and $2,000/acre for site 2 land.
Blake has bid $900/acre for site 1 land and $2,200/acre for site
2 land. Alexis has bid $1,100/acre for site 1 land and
$1,900/acre for site 2 land. Formulate a balanced transportation
model to maximize the government’s revenue.
TA B L E
10
Company
Current Month’s
Price per
Gallon ($)
Next Month’s
Price per
Gallon ($)
800
710
720
750
Daisy
Laroach
TA B L E
11
Site (¢)
Checks
1
2
Vendor
Salary
Personal
5
4
2
3
4
5
†
This problem is based on Jackson (1980).
372
CHAPTER
13
Project ($)
Auditor
1
2
3
1
2
3
120
140
160
150
130
140
190
120
150
8 The Ayatola Oil Company controls two oil fields. Field
1 can produce up to 40 million barrels of oil per day, and
field 2 can produce up to 50 million barrels of oil per day.
At field 1, it costs $3 to extract and refine a barrel of oil; at
field 2, the cost is $2. Ayatola sells oil to two countries:
England and Japan. The shipping cost per barrel is shown
in Table 12. Each day, England is willing to buy up to 40
million barrels (at $6 per barrel), and Japan is willing to
buy up to 30 million barrels (at $6.50 per barrel). Formulate
a balanced transportation problem to maximize Ayatola’s
profits.
9 For the examples and problems of this section, discuss
whether it is reasonable to assume that the proportionality
assumption holds for the objective function.
10 Touche Young has three auditors. Each can work as
many as 160 hours during the next month, during which
time three projects must be completed. Project 1 will take
130 hours; project 2, 140 hours; and project 3, 160 hours.
The amount per hour that can be billed for assigning each
auditor to each project is given in Table 13. Formulate a
balanced transportation problem to maximize total billings
during the next month.
Group B
11‡ Paperco recycles newsprint, uncoated paper, and
coated paper into recycled newsprint, recycled uncoated
paper, and recycled coated paper. Recycled newsprint can
be produced by processing newsprint or uncoated paper.
Recycled coated paper can be produced by recycling any
type of paper. Recycled uncoated paper can be produced by
processing uncoated paper or coated paper. The process
used to produce recycled newsprint removes 20% of the
input’s pulp, leaving 80% of the input’s pulp for recycled
paper. The process used to produce recycled coated paper
removes 10% of the input’s pulp. The process used to
produce recycled uncoated paper removes 15% of the input’s
pulp. The purchasing costs, processing costs, and availability
of each type of paper are shown in Table 14. To meet demand,
‡
This problem is based on Glassey and Gupta (1974).
7 Transportation, Assignment, and Transshipment Problems
TA B L E
14
Purchase
Cost per Ton
of Pulp ($)
Processing
Cost per Ton
of Input ($)
10
19
18
Newsprint
Coated paper
Uncoated paper
NP used for RNP
NP used for RCP
UCP used for RNP
UCP used for RUP
UCP used for RCP
CP used for RUP
CP used for RCP
Availability
500
300
200
3
4
4
1
6
5
3
7.2
Paperco must produce at least 250 tons of recycled newsprint
pulp, at least 300 tons of recycled uncoated paper pulp, and
at least 150 tons of recycled coated paper pulp. Formulate
a balanced transportation problem that can be used to
minimize the cost of meeting Paperco’s demands.
12 Explain how each of the following would modify the
formulation of the Sailco problem as a balanced transportation problem:
a Suppose demand could be backlogged at a cost of
$30/sailboat/month. (Hint: Now it is permissible to ship
from, say, month 2 production to month 1 demand.)
b If demand for a sailboat is not met on time, the sale
is lost and an opportunity cost of $450 is incurred.
c Sailboats can be held in inventory for a maximum of
two months.
d At a cost of $440/sailboat, Sailco can purchase up to
10 sailboats/month from a subcontractor.
Finding Basic Feasible Solutions for Transportation Problems
Consider a balanced transportation problem with m supply points and n demand points.
From (2), we see that such a problem contains m n equality constraints. From our experience with the Big M method and the two-phase simplex method, we know it is difficult to find a bfs if all of an LP’s constraints are equalities. Fortunately, the special structure of a balanced transportation problem makes it easy for us to find a bfs.
Before describing three methods commonly used to find a bfs to a balanced transportation problem, we need to make the following important observation. If a set of values for the xij’s satisfies all but one of the constraints of a balanced transportation problem, then the values for the xij’s will automatically satisfy the other constraint. For
example, in the Powerco problem, suppose a set of values for the xij’s is known to satisfy
all the constraints with the exception of the first supply constraint. Then this set of xij’s
must supply d1 d2 d3 d4 125 million kwh to cities 1–4 and supply s2 s3 125 s1 90 million kwh from plants 2 and 3. Thus, plant 1 must supply 125 (125 s1) 35 million kwh, so the xij’s must also satisfy the first supply constraint.
The preceding discussion shows that when we solve a balanced transportation problem, we may omit from consideration any one of the problem’s constraints and solve an
LP having m n 1 constraints. We (arbitrarily) assume that the first supply constraint
is omitted from consideration.
In trying to find a bfs to the remaining m n 1 constraints, you might think that
any collection of m n 1 variables would yield a basic solution. Unfortunately, this is
not the case. For example, consider (3), a balanced transportation problem. (We omit the
costs because they are not needed to find a bfs.)
4
(3)
5
3
2
4
7. 2 Finding Basic Feasible Solutions for Transportation Problems
373
In matrix form, the constraints for this balanced transportation problem may be written as
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
(3)
(3)
0
1
0
0
1
x11
4
x12
5
x13
3
x21
2
x22
4
x23
After dropping the first supply constraint, we obtain the following linear system:
x11
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
5
x12
3
x13
2
x21
4
x22
x23
A basic solution to (3) must have four basic variables. Suppose we try BV {x11, x12,
x21, x22}. Then
0
1
B
0
0
0
0
1
0
1
1
0
0
1
0
1
0
For {x11, x12, x21, x22} to yield a basic solution, it must be possible to use EROs to
transform B to I4. Because rank B 3 and EROs do not change the rank of a matrix,
there is no way that EROs can be used to transform B into I4. Thus, BV {x11, x12, x21,
x22} cannot yield a basic solution to (3). Fortunately, the simple concept of a loop may
be used to determine whether an arbitrary set of m n 1 variables yields a basic solution to a balanced transportation problem.
DEFINITION ■
An ordered sequence of at least four different cells is called a loop if
1
Any two consecutive cells lie in either the same row or same column
2
No three consecutive cells lie in the same row or column
The last cell in the sequence has a row or column in common with the first cell
in the sequence ■
3
In the definition of a loop, the first cell is considered to follow the last cell, so the loop
may be thought of as a closed path. Here are some examples of the preceding definition:
Figure 5 represents the loop (2, 1)–(2, 4)–(4, 4)–(4, 1). Figure 6 represents the loop
(1, 1)–(1, 2)–(2, 2)–(2, 3)–(4, 3)–(4, 5)–(3, 5)–(3, 1). In Figure 7, the path (1, 1)–(1, 2)–
(2, 3)–(2, 1) does not represent a loop, because (1, 2) and (2, 3) do not lie in the same
row or column. In Figure 8, the path (1, 2)–(1, 3)–(1, 4)–(2, 4)–(2, 2) does not represent
a loop, because (1, 2), (1, 3), and (1, 4) all lie in the same row.
Theorem 1 (which we state without proof ) shows why the concept of a loop is important.
374
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
FIGURE
5
FIGURE
6
FIGURE
7
FIGURE
8
THEOREM
1
In a balanced transportation problem with m supply points and n demand points, the
cells corresponding to a set of m n 1 variables contain no loop if and only if
the m n 1 variables yield a basic solution.
Theorem 1 follows from the fact that a set of m n 1 cells contains no loop if and
only if the m n 1 columns corresponding to these cells are linearly independent. Because (1, 1)–(1, 2)–(2, 2)–(2, 1) is a loop, Theorem 1 tells us that {x11, x12, x22, x21} cannot yield a basic solution for (3). On the other hand, no loop can be formed with the cells
(1, 1)–(1, 2)–(1, 3)–(2, 1), so {x11, x12, x13, x21} will yield a basic solution to (3).
We are now ready to discuss three methods that can be used to find a basic feasible solution for a balanced transportation problem:
1
northwest corner method
2
minimum-cost method
3
Vogel’s method
7. 2 Finding Basic Feasible Solutions for Transportation Problems
375
Northwest Corner Method for Finding
a Basic Feasible Solution
To find a bfs by the northwest corner method, we begin in the upper left (or northwest)
corner of the transportation tableau and set x11 as large as possible. Clearly, x11 can be no
larger than the smaller of s1 and d1. If x11 s1, cross out the first row of the transportation tableau; this indicates that no more basic variables will come from row 1. Also change
d1 to d1 s1. If x11 d1, cross out the first column of the transportation tableau; this indicates that no more basic variables will come from column 1. Also change s1 to s1 d1.
If x11 s1 d1, cross out either row 1 or column 1 (but not both). If you cross out row
1, change d1 to 0; if you cross out column 1, change s1 to 0.
Continue applying this procedure to the most northwest cell in the tableau that does
not lie in a crossed-out row or column. Eventually, you will come to a point where there
is only one cell that can be assigned a value. Assign this cell a value equal to its row or
column demand, and cross out both the cell’s row and column. A basic feasible solution
has now been obtained.
We illustrate the use of the northwest corner method by finding a bfs for the balanced
transportation problem in Table 15. (We do not list the costs because they are not needed
to apply the algorithm.) We indicate the crossing out of a row or column by placing an by the row’s supply or column’s demand.
To begin, we set x11 min{5, 2} 2. Then we cross out column 1 and change s1 to
5 2 3. This yields Table 16. The most northwest remaining variable is x12. We set
x12 min{3, 4} 3. Then we cross out row 1 and change d2 to 4 3 1. This yields
Table 17. The most northwest available variable is now x22. We set x22 min{1, 1} 1.
Because both the supply and demand corresponding to the cell are equal, we may cross
out either row 2 or column 2 (but not both). For no particular reason, we choose to cross
out row 2. Then d2 must be changed to 1 1 0. The resulting tableau is Table 18. At
the next step, this will lead to a degenerate bfs.
TA B L E
15
5
1
3
2
TA B L E
4
2
1
16
2
3
1
3
376
CHAPTER
4
2
7 Transportation, Assignment, and Transshipment Problems
1
TA B L E
17
2
3
1
3
TA B L E
1
2
3
1
2
1
18
3
0
2
1
The most northwest available cell is now x32, so we set x32 min{3, 0} 0. Then we
cross out column 2 and change s3 to 3 0 3. The resulting tableau is Table 19. We now
set x33 min{3, 2} 2. Then we cross out column 3 and reduce s3 to 3 2 1. The
resulting tableau is Table 20. The only available cell is x34. We set x34 min{1, 1} 1.
Then we cross out row 3 and column 4. No cells are available, so we are finished. We have
obtained the bfs x11 2, x12 3, x22 1, x32 0, x33 2, x34 1.
Why does the northwest corner method yield a bfs? The method ensures that no basic
variable will be assigned a negative value (because no right-hand side ever becomes nega-
TA B L E
19
2
TA B L E
3
1
0
3
2
3
1
2
1
20
0
2
1
1
7. 2 Finding Basic Feasible Solutions for Transportation Problems
377
tive) and also that each supply and demand constraint is satisfied (because every row and column is eventually crossed out). Thus, the northwest corner method yields a feasible solution.
To complete the northwest corner method, m n rows and columns must be crossed
out. The last variable assigned a value results in a row and column being crossed out, so
the northwest corner method will assign values to m n 1 variables. The variables
chosen by the northwest corner method cannot form a loop, so Theorem 1 implies that
the northwest corner method must yield a bfs.
Minimum-Cost Method for Finding a Basic Feasible Solution
The northwest corner method does not utilize shipping costs, so it can yield an initial bfs
that has a very high shipping cost. Then determining an optimal solution may require several pivots. The minimum-cost method uses the shipping costs in an effort to produce a
bfs that has a lower total cost. Hopefully, fewer pivots will then be required to find the
problem’s optimal solution.
To begin the minimum-cost method, find the variable with the smallest shipping cost (call
it xij). Then assign xij its largest possible value, min{si, dj}. As in the northwest
corner method, cross out row i or column j and reduce the supply or demand of the
noncrossed-out row or column by the value of xij. Then choose from the cells that do not lie
in a crossed-out row or column the cell with the minimum shipping cost and repeat the procedure. Continue until there is only one cell that can be chosen. In this case, cross out both
the cell’s row and column. Remember that (with the exception of the last variable) if a variable satisfies both a supply and demand constraint, only cross out a row or column, not both.
To illustrate the minimum cost method, we find a bfs for the balanced transportation problem in Table 21. The variable with the minimum shipping cost is x22. We set x22 min{10,
8} 8. Then we cross out column 2 and reduce s2 to 10 8 2 (Table 22). We could now
choose either x11 or x21 (both having shipping costs of 2). We arbitrarily choose x21 and set
x21 min{2, 12} 2. Then we cross out row 2 and change d1 to 12 2 10 (Table 23).
Now we set x11 min{5, 10} 5, cross out row 1, and change d1 to 10 5 5 (Table 24).
The minimum cost that does not lie in a crossed-out row or column is x31. We set x31 min{15, 5} 5, cross out column 1, and reduce s3 to 15 5 10 (Table 25). Now we set
x33 min{10, 4} 4, cross out column 3, and reduce s3 to 10 4 6 (Table 26). The only
cell that we can choose is x34. We set x34 min{6, 6} and cross out both row 3 and column
4. We have now obtained the bfs: x11 5, x21 2, x22 8, x31 5, x33 4, and x34 6.
Because the minimum-cost method chooses variables with small shipping costs to be
basic variables, you might think that this method would always yield a bfs with a relatively low total shipping cost. The following problem shows how the minimum-cost
method can be fooled into choosing a relatively high-cost bfs.
TA B L E
21
2
3
5
6
5
2
1
3
5
10
3
8
4
6
15
12
378
CHAPTER
8
4
7 Transportation, Assignment, and Transshipment Problems
6
TA B L E
22
2
3
5
6
5
2
1
3
5
2
8
3
8
4
6
15
12
TA B L E
23
2
4
3
6
5
6
5
2
2
1
3
5
8
3
8
4
6
15
10
TA B L E
24
2
4
3
6
5
6
5
2
2
1
3
5
8
3
8
4
6
15
5
TA B L E
25
2
4
3
6
5
6
5
2
2
1
3
5
8
3
8
4
6
5
10
4
6
7. 2 Finding Basic Feasible Solutions for Transportation Problems
379
TA B L E
26
2
3
5
6
5
2
2
1
5
8
3
8
5
4
6
4
TA B L E
3
27
6
6
7
6
8
10
15
80
78
15
15
5
5
If we apply the minimum-cost method to Table 27, we set x11 10 and cross out row
1. This forces us to make x22 and x23 basic variables, thereby incurring their high shipping costs. Thus, the minimum-cost method will yield a costly bfs. Vogel’s method for
finding a bfs usually avoids extremely high shipping costs.
Vogel’s Method for Finding a Basic Feasible Solution
Begin by computing for each row (and column) a “penalty” equal to the difference between the two smallest costs in the row (column). Next find the row or column with the
largest penalty. Choose as the first basic variable the variable in this row or column that
has the smallest shipping cost. As described in the northwest corner and minimum-cost
methods, make this variable as large as possible, cross out a row or column, and change
the supply or demand associated with the basic variable. Now recompute new penalties
(using only cells that do not lie in a crossed-out row or column), and repeat the procedure until only one uncrossed cell remains. Set this variable equal to the supply or demand associated with the variable, and cross out the variable’s row and column. A bfs has
now been obtained.
We illustrate Vogel’s method by finding a bfs to Table 28. Column 2 has the largest
penalty, so we set x12 min{10, 5} 5. Then we cross out column 2 and reduce s1 to
10 5 5. After recomputing the new penalties (observe that after a column is crossed
out, the column penalties will remain unchanged), we obtain Table 29. The largest penalty
now occurs in column 3, so we set x13 min{5, 5}. We may cross out either row 1 or
column 3. We arbitrarily choose to cross out column 3, and we reduce s1 to 5 5 0.
Because each row has only one cell that is not crossed out, there are no row penalties.
The resulting tableau is Table 30. Column 1 has the only (and, of course, the largest)
penalty. We set x11 min{0, 15} 0, cross out row 1, and change d1 to 15 0 15.
The result is Table 31. No penalties can be computed, and the only cell that is not in a
crossed-out row or column is x21. Therefore, we set x21 15 and cross out both column
1 and row 2. Our application of Vogel’s method is complete, and we have obtained the
bfs: x11 0, x12 5, x13 5, and x21 15 (see Table 32).
380
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
TA B L E
28
6
7
15
TA B L E
15
5
5
Column
Penalty
15 – 6 = 9
80 – 7 = 73
78 – 8 = 70
29
7
80
15
78 – 15 = 63
Supply
Row Penalty
5
8–6=2
15
78 – 15 = 63
78
Demand
15
5
Column
Penalty
9
–—
70
Supply
30
6
7
5
80
15
Column
Penalty
9
–—
–—
31
6
7
5
–—
15
–—
Supply
Row Penalty
–—
15
–—
8
5
15
0
78
Demand
0
Row Penalty
8
5
15
TA B L E
7–6=1
8
5
TA B L E
10
78
Demand
15
Row Penalty
8
80
6
Supply
80
78
Demand
15
Column
Penalty
–—
–—
–—
7. 2 Finding Basic Feasible Solutions for Transportation Problems
381
TA B L E
32
6
0
7
5
8
5
15
10
80
78
15
15
15
5
5
Observe that Vogel’s method avoids the costly shipments associated with x22 and x23.
This is because the high shipping costs resulted in large penalties that caused Vogel’s
method to choose other variables to satisfy the second and third demand constraints.
Of the three methods we have discussed for finding a bfs, the northwest corner method
requires the least effort, and Vogel’s method requires the most effort. Extensive research
[Glover et al. (1974)] has shown, however, that when Vogel’s method is used to find an
initial bfs, it usually takes substantially fewer pivots than if the other two methods had
been used. For this reason, the northwest corner and minimum-cost methods are rarely
used to find a basic feasible solution to a large transportation problem.
PROBLEMS
Group A
1 Use the northwest corner method to find a bfs for
Problems 1, 2, and 3 of Section 7.1.
3 Use Vogel’s method to find a bfs for Problems 5 and 6
of Section 7.1.
2 Use the minimum-cost method to find a bfs for Problems
4, 7, and 8 of Section 7.1. (Hint: For a maximization
problem, call the minimum-cost method the maximumprofit method or the maximum-revenue method.)
4 How should Vogel’s method be modified to solve a
maximization problem?
7.3
The Transportation Simplex Method
In this section, we show how the simplex algorithm simplifies when a transportation problem is solved. We begin by discussing the pivoting procedure for a transportation problem.
Recall that when the pivot row was used to eliminate the entering basic variable from
other constraints and row 0, many multiplications were usually required. In solving a
transportation problem, however, pivots require only additions and subtractions.
How to Pivot in a Transportation Problem
By using the following procedure, the pivots for a transportation problem may be performed within the confines of the transportation tableau:
Step 1 Determine (by a criterion to be developed shortly) the variable that should enter
the basis.
Step 2 Find the loop (it can be shown that there is only one loop) involving the entering
variable and some of the basic variables.
382
Step 3
Counting only cells in the loop, label those found in step 2 that are an even num-
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
ber (0, 2, 4, and so on) of cells away from the entering variable as even cells. Also label
those that are an odd number of cells away from the entering variable as odd cells.
Step 4 Find the odd cell whose variable assumes the smallest value. Call this value .
The variable corresponding to this odd cell will leave the basis. To perform the pivot, decrease the value of each odd cell by and increase the value of each even cell by . The
values of variables not in the loop remain unchanged. The pivot is now complete. If 0, then the entering variable will equal 0, and an odd variable that has a current value of
0 will leave the basis. In this case, a degenerate bfs existed before and will result after the
pivot. If more than one odd cell in the loop equals , you may arbitrarily choose one of
these odd cells to leave the basis; again, a degenerate bfs will result.
We illustrate the pivoting procedure on the Powerco example. When the northwest corner method is applied to the Powerco example, the bfs in Table 33 is found. For this bfs,
the basic variables are x11 35, x21 10, x22 20, x23 20, x33 10, and x34 30.
Suppose we want to find the bfs that would result if x14 were entered into the basis.
The loop involving x14 and some of the basic variables is
E
O
E
O
E
O
(1, 4)–(3, 4)–(3, 3)–(2, 3)–(2, 1)–(1, 1)
In this loop, (1, 4), (3, 3), and (2, 1) are the even cells, and (1, 1), (3, 4), and (2, 3) are
the odd cells. The odd cell with the smallest value is x23 20. Thus, after the pivot, x23
will have left the basis. We now add 20 to each of the even cells and subtract 20 from
each of the odd cells. The bfs in Table 34 results. Because each row and column has as
many 20s as 20s, the new solution will satisfy each supply and demand constraint.
By choosing the smallest odd variable (x23) to leave the basis, we have ensured that all
variables will remain nonnegative. Thus, the new solution is feasible. There is no loop
involving the cells (1, 1), (1, 4), (2, 1), (2, 2), (3, 3), and (3, 4), so the new solution is a
bfs. After the pivot, the new bfs is x11 15, x14 20, x21 30, x22 20, x33 30, and
x34 10, and all other variables equal 0.
TA B L E
33
Northwest Corner Basic
Feasible Solution for Powerco
10
45
TA B L E
35
35
20
20
20
50
10
30
30
30
40
34
New Basic Feasible Solution
After x14 Is Pivoted into Basis
0 + 20
35 – 20
10 + 20
45
20
20
20 – 20
(nonbasic)
35
50
10 + 20
30 – 20
30
30
40
7. 3 The Transportation Simplex Method
383
The preceding illustration of the pivoting procedure makes it clear that each pivot in a
transportation problem involves only additions and subtractions. Using this fact, we can
show that if all the supplies and demands for a transportation problem are integers, then
the transportation problem will have an optimal solution in which all the variables are
integers. Begin by observing that, by the northwest corner method, we can find a bfs in
which each variable is an integer. Each pivot involves only additions and subtractions, so
each bfs obtained by performing the simplex algorithm (including the optimal solution)
will assign all variables integer values. The fact that a transportation problem with integer supplies and demands has an optimal integer solution is useful, because it ensures that
we need not worry about whether the Divisibility Assumption is justified.
Pricing Out Nonbasic Variables (Based on Chapter 6)
To complete our discussion of the transportation simplex, we now show how to compute
row 0 for any bfs. From Section 6.2, we know that for a bfs in which the set of basic variables is BV, the coefficient of the variable xij (call it cij) in the tableau’s row 0 is given by
cij cBVB1aij cij
where cij is the objective function coefficient for xij and aij is the column for xij in the
original LP (we are assuming that the first supply constraint has been dropped).
Because we are solving a minimization problem, the current bfs will be optimal if all
the cij’s are nonpositive; otherwise, we enter into the basis the variable with the most positive cij.
After determining cBVB1, we can easily determine cij. Because the first constraint has
been dropped, cBVB1 will have m n 1 elements. We write
cBVB1 [u2 u3
um v1
v2
vn]
where u2, u3, . . . , um are the elements of cBVB1 corresponding to the m 1 supply constraints, and v1, v2, . . . , vn are the elements of cBVB1 corresponding to the n demand
constraints.
To determine cBVB1, we use the fact that in any tableau, each basic variable xij must
have cij 0. Thus, for each of the m n 1 variables in BV,
cBVB1aij cij 0
(4)
For a transportation problem, the equations in (4) are very easy to solve. To illustrate the
solution of (4), we find cBVB1 for (5), by applying the northwest corner method bfs to
the Powerco problem.
8
6
10
9
35
35
9
10
12
20
13
50
20
14
9
16
10
45
384
CHAPTER
7
20
5
30
30
7 Transportation, Assignment, and Transshipment Problems
40
30
(5)
For this bfs, BV {x11, x21, x22, x23, x33, x34}. Applying (4) we obtain
c11 [u2
u3
v1
v2
v3
v4]
c21 [u2
u3
v1 v2
v3
v4]
c22 [u2
u3
v1 v2
v3
v4]
c23 [u2
u3
v1 v2
v3
v4]
c33 [u2
u3
v1 v2
v3
v4]
c34 [u2
u3
v1 v2
v3
v4]
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
8 v1 8 0
9 u2 v1 9 0
12 u2 v2 12 0
13 u2 v3 13 0
16 u3 v3 16 0
5 u3 v4 5 0
For each basic variable xij (except those having i 1), we see that (4) reduces to ui vj cij. If we define u1 0, we see that (4) reduces to ui vj cij for all basic variables. Thus,
to solve for cBVB1, we must solve the following system of m n equations: u1 0, ui vj cij for all basic variables.
For (5), we find cBVB1 by solving
7. 3 The Transportation Simplex Method
385
u1 u1 0
u1 v1 8
u2 v1 9
u2 v2 12
u2 v3 13
u3 v3 16
u3 v4 5
(6)
(7)
(8)
(9)
(10)
(11)
(12)
From (7), v1 8. From (8), u2 1. Then (9) yields v2 11, and (10) yields v3 12.
From (11), u3 4. Finally, (12) yields v4 1. For each nonbasic variable, we now compute cij ui vj cij. We obtain
c12 0 11 6 5
c14 0 1 9 8
c31 4 8 14 2
c13 0 12 10 2
c24 1 1 7 5
c32 4 11 9 6
Because c32 is the most positive cij, we would next enter x32 into the basis. Each unit of
x32 that is entered into the basis will decrease Powerco’s cost by $6.
How to Determine the Entering Nonbasic Variable
(Based on Chapter 5)
For readers who have not covered Chapter 6, we now discuss how to determine whether a
bfs is optimal, and, if it is not, how to determine which nonbasic variable should enter the
basis. Let ui (i 1, 2, . . . , m) be the shadow price of the ith supply constraint, and let vj
( j 1, 2, . . . , n) be the shadow price of the jth demand constraint. We assume that the first
supply constraint has been dropped, so we may set u1 0. From the definition of shadow
price, if we were to increase the right-hand side of the ith supply and jth demand constraint
by 1, the optimal z-value would decrease by ui vj. Equivalently, if we were to decrease
the right-hand side of the ith supply and jth demand constraint by 1, the optimal z-value
would increase by ui vj. Now suppose xij is a nonbasic variable. Should we enter xij into
the basis? Observe that if we increase xij by 1, costs directly increase by cij. Also, increasing
xij by 1 means that one less unit will be shipped from supply point i and one less unit will
be shipped to demand point j. This is equivalent to reducing the right-hand sides of the ith
supply constraint and jth demand constraint by 1. This will increase z by ui vj. Thus, increasing xij by 1 will increase z by a total of cij ui vj. So if cij ui vj 0 (or ui vj cij 0) for all nonbasic variables, the current bfs will be optimal. If, however, a nonbasic variable xij has cij ui vj 0 (or ui vj cij 0), then z can be decreased by ui vj cij per unit of xij by entering xij into the basis. Thus, we may conclude that if ui vj cij 0 for all nonbasic variables, then the current bfs is optimal. Otherwise, the nonbasic
variable with the most positive value of ui vj cij should enter the basis. How do we find
the ui’s and vj’s? The coefficient of a nonbasic variable xij in row 0 of any tableau is the
amount by which a unit increase in xij will decrease z, so we can conclude that the coefficient
of any nonbasic variable (and, it turns out, any basic variable) in row 0 is ui vj cij. So
we may solve for the ui’s and vj’s by solving the following system of equations: u1 0 and
ui vj cij 0 for all basic variables.
To illustrate the previous discussion, consider the bfs for the Powerco problem shown
in (5).
386
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
8
6
10
9
35
35
9
10
12
20
13
14
50
9
16
10
45
5
30
30
20
(5)
7
20
40
30
W e
find the ui’s and vj’s by solving
u1 u1 0
u1 v1 8
u2 v1 9
u2 v2 12
u2 v3 13
u3 v3 16
u3 v4 5
(6)
(7)
(8)
(9)
(10)
(11)
(12)
From (7), v1 8. From (8), u2 1. Then (9) yields v2 11, and (10) yields v3 12.
From (11), u3 4. Finally, (12) yields v4 1. For each nonbasic variable, we now compute cij ui vj cij. We obtain
c12 0 11 6 5
c14 0 1 9 8
c31 4 8 14 2
c13 0 12 10 2
c24 1 1 7 5
c32 4 11 9 6
Because c32 is the most positive cij, we would next enter x32 into the basis. Each unit of
x32 that is entered into the basis will decrease Powerco’s cost by $6.
We can now summarize the procedure for using the transportation simplex to solve a
transportation (min) problem.
Summary and Illustration
of the Transportation Simplex Method
Step 1
If the problem is unbalanced, balance it.
Step 2
Use one of the methods described in Section 7.2 to find a bfs.
Step 3
Use the fact that u1 0 and ui vj cij for all basic variables to find the
. . . um v1 v2 . . . vn] for the current bfs.
[u1 u2
If ui vj cij 0 for all nonbasic variables, then the current bfs is optimal. If
this is not the case, then we enter the variable with the most positive ui vj cij into
the basis using the pivoting procedure. This yields a new bfs.
Step 4
Step 5
Using the new bfs, return to steps 3 and 4.
For a maximization problem, proceed as stated, but replace step 4 by step 4 .
Step 4 If ui vj cij 0 for all nonbasic variables, then the current bfs is optimal.
Otherwise, enter the variable with the most negative ui vj cij into the basis using the
pivoting procedure described earlier.
7. 3 The Transportation Simplex Method
387
We illustrate the procedure for solving a transportation problem by solving the Powerco problem. We begin with the bfs (5). We have already determined that x32 should enter the basis. As shown in Table 35, the loop involving x32 and some of the basic variables
is (3, 2)–(3, 3)–(2, 3)–(2, 2). The odd cells in this loop are (3, 3) and (2, 2). Because
x33 10 and x22 20, the pivot will decrease the value of x33 and x22 by 10 and increase
the value of x32 and x23 by 10. The resulting bfs is shown in Table 36. The ui’s and vj’s
for the new bfs were obtained by solving
u2 u1 0
u2 v2 12
u3 v4 5
u1 v1 82
u2 v3 13
u2 v1 9
u3 v2 9
u2 v1 9
In computing cij ui vj cij for each nonbasic variable, we find that c12 5,
c24 1, and c13 2 are the only positive cij’s. Thus, we next enter x12 into the basis. The
loop involving x12 and some of the basic variables is (1, 2)–(2, 2)–(2, 1)–(1, 1). The odd
cells are (2, 2) and (1, 1). Because x22 10 is the smallest entry in an odd cell, we decrease x22 and x11 by 10 and increase x12 and x21 by 10. The resulting bfs is shown in
Table 37. For this bfs, the ui’s and vj’s were determined by solving
u1 u1 0
u2 v1 9
u1 v1 8
u2 v3 13
u1 v2 6
u3 v2 9
u3 v4 5
u3 v4 5
In computing cij for each nonbasic variable, we find that the only positive cij is c13 2. Thus, x13 enters the basis. The loop involving x13 and some of the basic variables is
TA B L E
35
Loop Involving
Entering Variable x32
8
6
10
9
35
35
9
12
10
13
20
7
50
20
14
9
16
5
10
45
TA B L E
36
x32 Has Entered the Basis,
and x12 Enters Next
30
20
vvj j =
8
6
10
10
12
10
9
13
50
9
16
10
45
7
30
14
CHAPTER
77
35
–2
2
388
12
12
35
9
11
40
30
11
11
8
uuii =00
30
5
30
20
30
7 Transportation, Assignment, and Transshipment Problems
40
30
TA B L E
37
x12 Has Entered the Basis,
and x13 Enters Next
vvjj =
88
66
8
uuii =00
25
11
20
6
12
7
50
9
16
5
30
40
45
20
30
30
66
66
10
10
22
8
uuii =00
6
10
10
9
25
9
33
13
10
vvjj =
9
35
14
38
10
30
33
TA B L E
22
10
9
Optimal Tableau for Powerco
12
12
35
12
45
13
7
50
5
14
33
9
16
10
45
5
30
20
30
40
30
(1, 3)–(2, 3)–(2, 1)–(1, 1). The odd cells are x23 and x11. Because x11 25 is the smallest
entry in an odd cell, we decrease x23 and x11 by 25 and increase x13 and x21 by 25. The
resulting bfs is shown in Table 38. For this bfs, the ui’s and vj’s were obtained by solving
u2 u1 0
u2 v1 9
u3 v4 5
u1 v2 6
u2 v3 13
u1 v3 10
u3 v2 9
u3 v2 9
The reader should check that for this bfs, all cij 0, so an optimal solution has been obtained. Thus, the optimal solution to the Powerco problem is x12 10, x13 25, x21 45, x23 5, x32 10, x34 30, and
z 6(10) 10(25) 9(45) 13(5) 9(10) 5(30) $1,020
PROBLEMS
Group A
Use the transportation simplex to solve Problems 1–8 in
Section 7.1. Begin with the bfs found in Section 7.2.
7. 3 The Transportation Simplex Method
389
7.4
Sensitivity Analysis for Transportation Problems†
We have already seen that for a transportation problem, the determination of a bfs and of
row 0 for a given set of basic variables, as well as the pivoting procedure, all simplify. It
should therefore be no surprise that certain aspects of the sensitivity analysis discussed in
Section 6.3 can be simplified. In this section, we discuss the following three aspects of
sensitivity analysis for the transportation problem:
Change 1
Changing the objective function coefficient of a nonbasic variable.
Change 2
Changing the objective function coefficient of a basic variable.
Change 3
Increasing a single supply by and a single demand by .
We illustrate three changes using the Powerco problem. Recall from Section 7.3 that the
optimal solution for the Powerco problem was z $1,020; the optimal tableau is Table 39.
Changing the Objective Function Coefficient
of a Nonbasic Variable
As in Section 6.3, changing the objective function coefficient of a nonbasic variable xij
will leave the right-hand side of the optimal tableau unchanged. Thus, the current basis
will still be feasible. We are not changing cBVB1, so the ui’s and vj’s remain unchanged.
In row 0, only the coefficient of xij will change. Thus, as long as the coefficient of xij in
the optimal row 0 is nonpositive, the current basis remains optimal.
To illustrate the method, we answer the following question: For what range of values of
the cost of shipping 1 million kwh of electricity from plant 1 to city 1 will the current basis
remain optimal? Suppose we change c11 from 8 to 8 . For what values of will the current basis remain optimal? Now c11 u1 v1 c11 0 6 (8 ) 2 . Thus,
the current basis remains optimal for 2 0, or 2, and c11 8 2 6.
Changing the Objective Function Coefficient
of a Basic Variable
Because we are changing cBVB1, the coefficient of each nonbasic variable in row 0 may
change, and to determine whether the current basis remains optimal, we must find the new
ui’s and vj’s and use these values to price out all nonbasic variables. The current basis remains optimal as long as all nonbasic variables price out nonpositive. To illustrate the
idea, we determine for the Powerco problem the range of values of the cost of shipping 1
million kwh from plant 1 to city 3 for which the current basis remains optimal.
Suppose we change c13 from 10 to 10 . Then the equation c13 0 changes from
u1 v3 10 to u1 v3 10 . Thus, to find the ui’s and vj’s, we must solve the following equations:
u2 u1 0
u2 v1 9
u1 v2 6
u2 v3 13
u3 v2 90 u1 v3 10 u3 v4 50 u1 v3 10 †
This section covers topics that may be omitted with no loss of continuity.
390
CHAPTER
7 Transportation, Assignment, and Transshipment Problems
TA B L E
39
Optimal Tableau for Powerco
vj City 1
City 2
City 3
City 4
6
6
10
2
8
Plant 1
6
ui 0
10
3
Plant 3
3
9
25
9
Plant 2
10
35
12
45
13
7
50
5
14
9
16
5
10
45
Demand
Supply
30
20
30
40
30
Solving these equations, we obtain u1 0, v2 6, v3 10 , v1 6 , u2 3 , u3 3, and v4 2.
We now price out each nonbasic variable. The current basis will remain optimal as long
as each nonbasic variable has a nonpositive coefficient in row 0.
c11
c14
c22
c24
c31
c33
u1
u1
u2
u2
u3
u3
v1
v4
v2
v4
v1
v3
820
9 7
12 3 0
7 2 0
14 5 0
16 3 0
for 2
for
for
for
for
3
2
5
3
Thus, the current basis remains optimal for 2 2, or 8 10 2 c13 10 2 12.
Increasing Both Supply si and Demand dj by Observe that this change maintains a balanced transportation problem. Because the ui’s
and vj’s may be thought of as the negative of each constraint’s shadow prices, we know
from (37 ) of Chapter 6 that if the current basis remains optimal,
New z-value old z-value ui vj
For example, if we increase plant 1’s supply and city 2’s demand by 1 unit, then (new cost)
1,020 1(0) 1(6) $1,026.
We may also find the new values of the decision variables as follows:
1
If xij is a basic varia
Related documents
Download