API Reference

gurobi_modelanalyzer.kappa_explain(model, data=None, KappaExact=-1, prmfile=None, relobjtype='LP', expltype='ROWS', method='DEFAULT', smalltol=1e-13, submatrix=False)

Computes an explanation of ill conditioning for the basis matrix associated with the LP model in the first argument. Writes the explanation to an LP or MPS file and returns a Gurobi model object to the subset of the basis matrix in the explanation. Basis statuses associated with the model will be used without additional iterations; otherwise it will solve the LP to completion and use the resulting basis for the explanation computation.

Parameters:
  • model – Required Gurobi model object containing an LP.

  • data – Do not provide. Only for use by Gurobi routines.

  • KappaExact – Optional for console display of condition number information. Set to 1 to obtain exact condition number information (which can require computation time on the order of 1/3 of the simplex iterations needed to solve the LP). Set to 0 to avoid this computation and use a less computationally expensive estimate. The default of -1 allows the explainer to decide based on problem size.

  • prmfile – Optional name of parameter file for the subproblem solved to derive the ill conditioning certificate.

  • relobjtype – Optional type of subproblem to create for the calculating the ill conditioning certificate. “LP” is the default, but “QP” specifies a quadratic objective.

  • expltype – Optional parameter to request an explanation by rows or columns. The explanation consists of either a collection of rows or columns that are close to linearly dependent. Specify “ROWS” (the default) or “COLS”. One type of explanation is often much smaller than the other.

  • method

    Optional method used for explainer computation. Non default settings may help generate smaller explanation.

    ”DEFAULT”: No regularization of subproblem objective

    ”ANGLES”: Perform simpler calculation based on inner products. This can be potentially faster, but it only finds explanations of two rows or columns.

    ”LASSO”: One norm regularization of subproblem objective.

    ”RLS”: Two norm regularization of subproblem objective.

  • smalltol – Optional tolerance below which ill conditioning certificate values are all treated as zero, i.e., the row or column associated with the value is filtered out of the explanation. If left at the default of 1e-13, row or column norms and machine precision will be incorporated into the filtering decision.

  • submatrix – Optional flag to try to postprocess the explanation down to a smaller submatrix. Default is False.

Returns:

A Gurobi model object containing the basis matrix rows or columns in the explanation that was written to an LP or MPS file.

gurobi_modelanalyzer.angle_explain(model, howmany=1, partol=1e-6)

Searches for ill conditioning explanations consisting of pairs of near parallel rows and near parallel columns of the basis matrix. Basis statuses associated with the model will be used without additional iterations; otherwise it will solve the LP to completion and use the resulting basis for the explanation computation.

Parameters:
  • model – Required Gurobi model object containing an LP.

  • howmany – Optional number of near parallel row and near parallel columns to search for.

  • partol – Tolerance below which two row or column vectors are considered parallel. Used as a relative tolerance when comparing the inner product of two vectors with the product of their L1 norms. The default setting is 1e-6.

Returns:

A list of tuples of almost parallel rows and almost parallel columns, and the model associated with the basis matrix from which the list was derived.

gurobi_modelanalyzer.matrix_bitmap(model)

Utility routine to facilitate examination of explainer output by printing a bit map of the nonzero structure. This can be used to examine the nonzero structure of the LP or MPS file containing the explanation, or it can be used to obtain bit maps for matrices of arbitrary models rather than the explainer model. The matplotlib package must be installed; otherwise this function will return immediately.

Parameters:

model – Required Gurobi model object containing an LP.

Returns:

Nothing. The bit map appears on the screen and can be saved to a file.

gurobi_modelanalyzer.converttofractions(vals)

Utility routine to convert decimals into the nearest rational approximation. This is particularly useful for converting truncated or rounded repeating decimals that appear in an LP or MPS file generated by the kappa_explain function.

Parameters:

vals – Required array of decimal values to convert.

Returns:

Nothing. Results are printed to the screen.