{ } Raw JSON

bundles / scipy 1.17.1 / scipy / optimize / _linprog_ip / _get_delta

function

scipy.optimize._linprog_ip:_get_delta

source: /scipy/optimize/_linprog_ip.py :147

Signature

def   _get_delta ( A b c x y z tau kappa gamma eta sparse = False lstsq = False sym_pos = True cholesky = True pc = True ip = False permc_spec = MMD_AT_PLUS_A )

Summary

Given standard form problem defined by A, b, and c; current variable estimates x, y, z, tau, and kappa; algorithmic parameters gamma and ``eta; and options ``sparse, lstsq, sym_pos, cholesky, pc (predictor-corrector), and ip (initial point improvement), get the search direction for increments to the variable estimates.

Parameters

As defined in [4], except:
sparse : bool

True if the system to be solved is sparse. This is typically set True when the original A_ub and A_eq arrays are sparse.

lstsq : bool

True if the system is ill-conditioned and/or (nearly) singular and thus a more robust least-squares solver is desired. This is sometimes needed as the solution is approached.

sym_pos : bool

True if the system matrix is symmetric positive definite Sometimes this needs to be set false as the solution is approached, even when the system should be symmetric positive definite, due to numerical difficulties.

cholesky : bool

True if the system is to be solved by Cholesky, rather than LU, decomposition. This is typically faster unless the problem is very small or prone to numerical difficulties.

pc : bool

True if the predictor-corrector method of Mehrota is to be used. This is almost always (if not always) beneficial. Even though it requires the solution of an additional linear system, the factorization is typically (implicitly) reused so solution is efficient, and the number of algorithm iterations is typically reduced.

ip : bool

True if the improved initial point suggestion due to [4] section 4.3 is desired. It's unclear whether this is beneficial.

permc_spec : str (default = 'MMD_AT_PLUS_A')

(Has effect only with sparse = True, lstsq = False, sym_pos = True.) A matrix is factorized in each iteration of the algorithm. This option specifies how to permute the columns of the matrix for sparsity preservation. Acceptable values are:

  • NATURAL: natural ordering.

  • MMD_ATA: minimum degree ordering on the structure of A^T A.

  • MMD_AT_PLUS_A: minimum degree ordering on the structure of A^T+A.

  • COLAMD: approximate minimum degree column ordering.

This option can impact the convergence of the interior point algorithm; test different values to determine which performs best for your problem. For more information, refer to scipy.sparse.linalg.splu.

Returns

: Search directions as defined in [4]

Aliases

  • scipy.optimize._linprog_ip._get_delta