Linearly rescale a matrix. Specifically, the values in the matrix are rescaled so that the maximum value in the matrix is equal to a new user-specified maximum value.
Arguments
- x
matrix,array,Matrix::Matrixobject.- max
numericnew maximum value in matrix. Defaults to 1000.
Value
A matrix, array, or Matrix::Matrix object.
The returned object is the is the same class as the argument to x.
Details
This function is particularly useful for rescaling data prior to
optimization to avoid numerical issues.
For example, boundary length (e.g., generated using boundary_matrix()) or
connectivity data (e.g., generated using connectivity_matrix()) can
contain very large values (e.g., values greater than 1,000,000)
and such large values can, in turn, degrade the performance of
exact algorithm solvers (see Details section in presolve_check() for
more information on numerical issues).
By using this function to rescale boundary length or connectivity
data prior to optimization (e.g., before using add_boundary_penalties() or
add_connectivity_penalties(), this can help avoid numerical issues
during optimization.
See also
See boundary_matrix() and connectivity_matrix() for details on
creating boundary length and connectivity data.
Also, see presolve_check() for information on numerical issues.
