Skip to contents

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.

Usage

rescale_matrix(x, max = 1000)

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.

Examples

# TODO