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::Matrix
object.- max
numeric
new 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.