Preface | p. xvii |
Preliminaries | |
The Linear Programming Problem | p. 3 |
Standard form | p. 3 |
General form | p. 4 |
Computational form #1 | p. 5 |
Computational form #2 | p. 13 |
Concluding remarks | p. 17 |
Translation of bounds | p. 17 |
Yet another formulation | p. 17 |
The Simplex Method | p. 19 |
Theoretical background | p. 20 |
Basis and solution | p. 21 |
The geometry of constraints | p. 23 |
Neighboring bases | p. 26 |
The primal simplex method | p. 28 |
Optimality conditions | p. 28 |
Improving a nonoptimal basic feasible solution | p. 29 |
Algorithmic description of the simplex method | p. 33 |
Finding a basic feasible solution | p. 34 |
The two-phase simplex method | p. 37 |
Duality | p. 38 |
The dual simplex method | p. 40 |
Dual feasibility | p. 40 |
Improving a dual feasible solution | p. 41 |
Algorithmic steps of the dual | p. 43 |
Further properties of the primal-dual relationship | p. 46 |
Concluding remarks | p. 47 |
Large Scale LP Problems | p. 49 |
Sparisty | p. 49 |
Instances of large problems | p. 51 |
Structure | p. 52 |
Fill-in | p. 53 |
Numerical difficulties | p. 55 |
Computational Techniques | |
Design Principles of LP Systems | p. 59 |
Requirements of LP software | p. 60 |
Computer hardware | p. 62 |
The software side of implementing LP solvers | p. 65 |
Data Structures and Basic Operations | p. 69 |
Storing sparse vectors | p. 70 |
Operations involving sparse vectors | p. 71 |
Addition and accumulation of sparse vectors | p. 71 |
Dot product of sparse vectors | p. 74 |
Storing sparse matrices | p. 74 |
Linked lists | p. 76 |
Implementation of forward/backward linking | p. 80 |
Concluding remarks | p. 84 |
Problem Definition | p. 87 |
The MPS format | p. 87 |
Processing the MPS format | p. 93 |
LP Preprocessing | p. 97 |
Presolve | p. 97 |
Contradicting individual bounds | p. 100 |
Empty rows | p. 100 |
Empty columns | p. 100 |
Singleton rows | p. 100 |
Removing fixed variables | p. 101 |
Redundant and forcing constraints | p. 102 |
Tightening individual bounds | p. 102 |
Implied free variables | p. 104 |
Singleton columns | p. 105 |
Dominated variables | p. 105 |
Reducing the sparsity of A | p. 107 |
The algorithm | p. 108 |
Implementation | p. 109 |
Scaling | p. 110 |
Postsolve | p. 116 |
Unscaling | p. 117 |
Undo presolve | p. 118 |
Undo reformulation | p. 119 |
Basis Inverse, Factorization | p. 121 |
Product form of the inverse | p. 122 |
General form | p. 123 |
Sparsity exploiting form | p. 124 |
Implementing the PFI | p. 129 |
Operations with the PFI | p. 131 |
LU factorization | p. 134 |
Determining a sparse LU form | p. 136 |
Implementing the LU factorization | p. 143 |
Maintaining triangularity during iterations | p. 149 |
Operations with the LU form | p. 155 |
Concluding remarks | p. 158 |
The Primal Algorithm | p. 161 |
Solution, feasibility, infeasibility | p. 162 |
Optimality conditions | p. 164 |
Improving a BFS | p. 167 |
The logic of the ratio test | p. 173 |
Extensions to the ratio test | p. 175 |
Algorithmic description of PSM-G | p. 176 |
Computational considerations | p. 178 |
Determining the reduced costs | p. 181 |
Computing d[subscript j] | p. 182 |
Updating [pi] | p. 182 |
Updating d[subscript j] | p. 183 |
Selecting an incoming (improving) variable | p. 184 |
Dantzig pricing | p. 187 |
Partial pricing | p. 187 |
Sectional pricing | p. 188 |
Normalized pricing | p. 189 |
A general pricing framework | p. 198 |
Improving an infeasible basic solution | p. 203 |
Analysis of w(t) | p. 208 |
The logic of the ratio test | p. 217 |
Extensions to the ratio test | p. 217 |
Computational considerations | p. 224 |
Adaptive composite pricing in phase-1 | p. 227 |
Handling degeneracy | p. 230 |
Anti-degeneracy column selection | p. 232 |
Wolfe's 'ad hoc' method | p. 234 |
Expanding tolerance | p. 237 |
Perturbation, shifting | p. 241 |
Starting bases | p. 244 |
Logical basis | p. 244 |
Crash bases | p. 246 |
CPLEX basis | p. 253 |
A tearing algorithm | p. 255 |
Partial basis | p. 259 |
The Dual Algorithm | p. 261 |
Dual feasibility, infeasibility | p. 261 |
Improving a dual feasible solution | p. 262 |
Dual algorithm with type-1 and type-2 variables | p. 263 |
Dual algorithm with all types of variables | p. 266 |
Bound flip in dual | p. 267 |
Extended General Dual algorithm | p. 270 |
Improving a dual infeasible solution | p. 277 |
Analysis of the dual infeasibility function | p. 281 |
Dual phase-1 iteration with all types of variables | p. 284 |
Row selection (dual pricing) | p. 292 |
Dantzig pricing | p. 293 |
Steepest edge | p. 293 |
Devex | p. 296 |
Pricing in dual phase-1 | p. 297 |
Computing the pivot row | p. 297 |
Degeneracy in the dual | p. 298 |
Various Issues | p. 301 |
Run parameters | p. 301 |
Parameter file | p. 302 |
String parameters | p. 302 |
Algorithmic parameters | p. 303 |
Numerical parameters | p. 303 |
Performance evaluation, profiling | p. 303 |
Some alternative techniques | p. 306 |
Superbasic variables | p. 306 |
Row basis | p. 307 |
Modeling systems | p. 310 |
A prototype simplex solver | p. 311 |
Index | p. 321 |
Table of Contents provided by Syndetics. All Rights Reserved. |