Sparse Matrix Storage
Sparse matrix storage methods take advantage of sparsity
in large models, where subsets of the constraints typically
depend on only a small subset of the variables. For example, the Jacobian
matrix (the matrix of partial derivatives of the objective and
constraints with respect to the variables) for a problem with 2,000
variables and 2,000 constraints would take about 32 megabytes for
matrix storage using dense storage methods, but if this problem has
the sparsity typical of larger models, it would take as little as 1
to 1.5 megabytes using the sparse storage methods in the Large-Scale
GRG Solver.
Improved Methods for Numerical Stability
Large nonlinear models require hundreds of
thousands to millions of floating-point arithmetic calculations.
Because of the finite precision inherent in computer arithmetic, small
numerical errors occur in these calculations. Nonlinear models
are particularly susceptible to the cumulative effect of these
errors, which can lead to a numerically unstable or ill-conditioned
matrix representation of the problem.
The Large-Scale GRG Solver uses several advanced
methods to deal with numerical stability, including methods for
estimating the conditioning of the Jacobian and Hessian
matrix, special methods for dealing with degeneracy, and
advanced methods for selecting changes in the basis (which
represents the currently binding constraints in the problem). Thanks
to these methods, the Large-Scale GRG Solver can find very good or
optimal solutions to problems that could not be solved at all with
more primitive nonlinear optimizers.
Options for Mixed-Integer Nonlinear Problems