HomeOrderDownloadLinksLegalFeedbackThe latest news on OSL
Parallel Extensions | Stochastic Extensions | User's Guide | Download Product
 

Introduction to the
IBM Optimization Library

ã IBM Corp. 1995, 1997. All rights reserved.

Overview

The Library component of IBM Optimization Solutions and Library family of products is a suite of subroutines for manipulating the models and solving the resulting minimization problems of mathematical optimization. The Library comprises an extensive collection of software building blocks from which a knowledgeable practitioner can create a customized optimization application. These building blocks can be combined with other code to develop solutions to optimization problems (such as nonlinear problems) that are beyond the capabilities of the current Solutions components. The Parallel Extensions and Stochastic Extensions products are, as their names imply, add-ons to the Library that provide extensions to its capabilities. The Parallel Extensions product adds parallel processing capabilities, that can be used to develop new parallel applications or to parallelize (without modification) existing serial Optimization Library applications. The Stochastic Extensions product adds an entire suite of new modules that extend the capabilities of the Library to stochastic programming problems.
  
Brief Description

The modules of the Library, and of its extensions, are written primarily in portable C, with a few assembler language routines to enhance performance. Included are routines in the following categories:

  1. solvers for LP (via simplex and interior ** methods), QP (via a simplex based or an interior point  ** solver), Network, and MIP ** problems,
  2. transformation of general integer problems to 0/1 MIP problems,
  3. identification of special ordered sets for MIP problems,
  4. initialization, including presolve, scale, crash, and a decomposition crash ** for block structured problems
  5. data output and input (from a data stream in MPS or spreadsheet format, or from internal data structures)
  6. post solution analyses: infeasibility, sensitivity, and parametrics (LP and QP),
  7. control variable querying and setting,
  8. utility routines including: various matrix manipulations, adding or deleting rows or columns, selecting data for output, etc., and
  9. sample user exits, for customizing various aspects of execution.

   Parallel
Capabilities
 
  The Parallel Extensions product provides parallel versions of the interior point (LP and QP), MIP, and decomposition solver modules, marked above by a double asterisk. 

The Library's input/output modules can handle MPS and Lotus 1-2-3 files. Alternatively, you can input data in any format, or generate it as needed, and then pass it to library modules in internal arrays. It is even possible to use Library modules to combine input data from different sources. The Library and the Stochastic Extensions are available for numerous platforms, from PC's to mainframes, including UNIX based workstations from IBM, Hewlett Packard, SGI, and Sun. (On December 4, 1998, the Parallel Extensions will be available for AIX platforms. Availability for other platforms will follow.)

Library modules are competitive in speed with other commercial optimization software, and faster than most. However, their most noteworthy strong points are versatility and robustness. The solvers have special strategies for dealing with degeneracies and numerical instabilities. The MIP solver is capable of handling either a linear or quadratic objective function with linear constraints. The MIP solver can be instructed to use the primal or dual simplex (or simplex based) solver on the LP (or QP) relaxations. Over a hundred control variables and nine user exit subroutines are provided to make it easy to monitor and modify tactics as the solution progresses.
  
Control Variables

The user settable control variables enable comprehensive control of the execution of library modules. These multi-position switches permit setting, among many other things: the number of simplex iterations to be done with one pricing strategy before changing to another, the tolerances for detecting zero values and certain error conditions, the allowed amounts of primal and dual infeasibilities, the initial weight for the feasibility component of the composite objective function used by the simplex method solver, the rate at which the barrier parameter of the interior point solvers is reduced, the maximum number of steps of the simplex method to be done before the matrix of basis vectors is refactored, and the maximum number of nodes allowed in the branch and bound tree for the MIP solver. Additional information on control variables is presented throughout this document. You may consult the overview of control variables, Index Control Variables, Integer Control Variables, Character and Real Control Variables, or finally Appendix C. Control Variables.
  
User Exits

Embedded calls in each solver, and in the message handler, to user exit subroutines make possible extensive customization of applications. To take advantage of these requires writing one or more subroutines to replace stubs distributed with the Library, and compiling and loading them with the main program. At load time, the replacement routines will supersede the corresponding stubs, and at run time they will gain control in the midst of the execution of the subroutines. Users are thus empowered with the means to monitor and control execution of the modules while they are running. For example, one could simply write out intermediate information as the solution progressed, or change solution tactics in a major way in the midst of a computation. For additional information on user exits, see "Understanding User Exit Subroutines."
  
Related Information

A collection of rudimentary sample application programs, in both C and FORTRAN, is distributed with the Library, so that application development need not necessarily "start from scratch." A source of information on model building and problem solving using Library modules is the book "Optimization with IBM OSL," by Hung, Rom, and Waren (ISBN 0-89426-244-0), published by Scientific Press, which is now a subsidiary of Duxbury Press. URLs for sources of additional information on OSL and on optimization in general can be found in Links.
  
Descriptions of the solver modules

For LP problems, the Library includes both primal and dual versions of the justly famous simplex method developed by George Dantzig, of Stanford University. The simplex algorithm performs an efficient, systematic search for an optimal solution among the vertices on the boundary of the feasible region. The simplex method is the most commonly used method for solving linear programming problems. In the variants implemented in the Library, the work is not divided into two phases. A composite objective function is used throughout, so that variables are simultaneously moved toward an optimum as feasibility is approached. As previously mentioned, the simplex solvers have a special strategy for circumventing degeneracies, and they permit adjusting the pricing strategy to enhance performance.
  
An interior-point solver searches for an optimal solution in the interior of the feasible region while working toward the boundary. The interior point LP/QP solver included in the Library uses a logarithmic barrier method in which a sequence of functions, each a linear objective function augmented by a sum of logarithmic terms multiplied by a barrier parameter, is minimized. The algorithm used is a primal/dual method with a predictor corrector scheme. This algorithm can be used to solve regularized LP, or QP, problems in which a small quadratic perturbation has been added to the objective. For LP problems, the Library interior point solver provides an option to switch over to a simplex solver, at (or near) completion of the interior point iterations, to obtain a basic feasible solution.
  
Network programming problems are linear programming problems that optimize the transmission of resources through a network of possible routes. The pure network solver implemented in the Library uses a variant of the simplex method that has been modified to take advantage of the graphical nature of the problems and the simple form of the constraint matrices. This solver runs up to fifty times as fast as an unmodified simplex solver for pure network problems. The solver recognizes shortest path and maximum flow problems, and solves these with a special algorithm. A composite objective function is used, and thus problem variables move toward optimal values as feasibility is approached. As before, the pricing strategy may be adjusted to improve performance.
  
The Library includes two QP solvers capable of minimizing a convex quadratic objective function subject to linear constraints. One solver uses a two-stage simplex based algorithm, and the other uses an interior point algorithm applied to a regularized form of the problem. Since the optimum may occur in the interior of the feasible region, the simplex method alone cannot be used to solve QP problems. In its first stage, the simplex based algorithm solves a sequence of approximating LP problems and related very simple QP problems until successive approximations are "close enough" together. In its second stage, this solver analyzes the QP problem directly, using an extension of the simplex method that permits a quadratic objective function and converges very rapidly when given a good starting value.
 
Mixed-integer programming (MIP) problems are problems in which some of the variables are constrained to take on only integer values. Decision variables, whose values determine which of two alternatives is to be implemented (such as whether to build a plant or to produce a particular product), are often modeled as 0/1 integer variables. For MIP problems, the Library includes a branch and bound solver that can handle either a linear or quadratic objective function with linear constraints. Low level control of the branching strategy is provided via user exits. The (primal or dual) simplex LP solver may be used on LP relaxations, and the (primal or dual) simplex based QP solver may be used on QP relaxations. For linear MIP problems, an optional preprocessor can probe on 0/1 variables, successively fixing variable values first to zero and then to one, and then investigating the logical consequences of these assignments. The result is similar to branching, but the analysis does not require solving the LP subproblems. The preprocessor builds implication lists for use throughout the solution process. The preprocessor may detect infeasibility, fix variables, modify or add constraints, or even identify an optimum. Other MIP processing modules can transform general integer problems into binary integer problems (and back), and can identify special ordered sets in input data.
 
Downloadable documentation

If you would like to have the html files that contain the Library User's Guide, click here to download the zipped HTML files (756 KB). If you prefer to have a hard copy of the documentation, click here to download either a postscript (HUGE - 8928KB) or zipped postscript (BIG - 1753KB) version.
 
  Notes:  
  1. Viewing these postcript files is problematical. An inability to view them satisfactorily does not necessarily mean that they will not print correctly.
  2. There are no hypertext links in the postcript files, and so the cross references are undetectable.

[ Top of Page | Previous Page | User's Guide ]

IBM homeOrderPrivacyLegalContact IBM