Scippy

SCIP

Solving Constraint Integer Programs

pub_matrix.h File Reference

Detailed Description

public methods for matrix

Author
Dieter Weninger

Definition in file pub_matrix.h.

#include "scip/def.h"
#include "scip/type_var.h"
#include "scip/type_cons.h"
#include "scip/type_matrix.h"

Go to the source code of this file.

Functions

SCIP_EXPORT SCIP_RealSCIPmatrixGetColValPtr (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int * SCIPmatrixGetColIdxPtr (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int SCIPmatrixGetColNNonzs (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int SCIPmatrixGetNColumns (SCIP_MATRIX *matrix)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetColUb (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetColLb (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int SCIPmatrixGetColNUplocks (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT int SCIPmatrixGetColNDownlocks (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_VARSCIPmatrixGetVar (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT const char * SCIPmatrixGetColName (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_RealSCIPmatrixGetRowValPtr (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int * SCIPmatrixGetRowIdxPtr (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNNonzs (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT const char * SCIPmatrixGetRowName (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetNRows (SCIP_MATRIX *matrix)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetRowLhs (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetRowRhs (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_Bool SCIPmatrixIsRowRhsInfinity (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetNNonzs (SCIP_MATRIX *matrix)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetRowMinActivity (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_Real SCIPmatrixGetRowMaxActivity (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNMinActNegInf (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNMinActPosInf (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNMaxActNegInf (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT int SCIPmatrixGetRowNMaxActPosInf (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_CONSSCIPmatrixGetCons (SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_Bool SCIPmatrixUplockConflict (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_Bool SCIPmatrixDownlockConflict (SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_RETCODE SCIPmatrixCreate (SCIP *scip, SCIP_MATRIX **matrixptr, SCIP_Bool onlyifcomplete, SCIP_Bool *initialized, SCIP_Bool *complete, SCIP_Bool *infeasible, int *naddconss, int *ndelconss, int *nchgcoefs, int *nchgbds, int *nfixedvars)
 
SCIP_EXPORT void SCIPmatrixFree (SCIP *scip, SCIP_MATRIX **matrix)
 
SCIP_EXPORT void SCIPmatrixPrintRow (SCIP *scip, SCIP_MATRIX *matrix, int row)
 
SCIP_EXPORT SCIP_RETCODE SCIPmatrixGetParallelRows (SCIP *scip, SCIP_MATRIX *matrix, SCIP_Real *scale, int *pclass)
 
SCIP_EXPORT void SCIPmatrixRemoveColumnBounds (SCIP *scip, SCIP_MATRIX *matrix, int col)
 
SCIP_EXPORT SCIP_RETCODE SCIPmatrixGetParallelCols (SCIP *scip, SCIP_MATRIX *matrix, SCIP_Real *scale, int *pclass, SCIP_Bool *varineq)
 

Function Documentation

◆ SCIPmatrixGetColValPtr()

SCIP_EXPORT SCIP_Real* SCIPmatrixGetColValPtr ( SCIP_MATRIX matrix,
int  col 
)

◆ SCIPmatrixGetColIdxPtr()

SCIP_EXPORT int* SCIPmatrixGetColIdxPtr ( SCIP_MATRIX matrix,
int  col 
)

◆ SCIPmatrixGetColNNonzs()

SCIP_EXPORT int SCIPmatrixGetColNNonzs ( SCIP_MATRIX matrix,
int  col 
)

◆ SCIPmatrixGetNColumns()

◆ SCIPmatrixGetColUb()

SCIP_EXPORT SCIP_Real SCIPmatrixGetColUb ( SCIP_MATRIX matrix,
int  col 
)

◆ SCIPmatrixGetColLb()

SCIP_EXPORT SCIP_Real SCIPmatrixGetColLb ( SCIP_MATRIX matrix,
int  col 
)

◆ SCIPmatrixGetColNUplocks()

SCIP_EXPORT int SCIPmatrixGetColNUplocks ( SCIP_MATRIX matrix,
int  col 
)

get number of uplocks of column

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1596 of file matrix.c.

References NULL, and SCIP_Matrix::nuplocks.

Referenced by cancelCol(), cancelRow(), compensateVarLock(), detectDominatingVlbs(), detectDominatingVubs(), findUplockAggregations(), getUplockRowIdx(), SCIP_DECL_PRESOLEXEC(), and singletonColumnStuffing().

◆ SCIPmatrixGetColNDownlocks()

SCIP_EXPORT int SCIPmatrixGetColNDownlocks ( SCIP_MATRIX matrix,
int  col 
)

get number of downlocks of column

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1608 of file matrix.c.

References SCIP_Matrix::ndownlocks, and NULL.

Referenced by cancelCol(), cancelRow(), compensateVarLock(), detectDominatingVlbs(), detectDominatingVubs(), findDownlockAggregations(), getDownlockRowIdx(), SCIP_DECL_PRESOLEXEC(), and singletonColumnStuffing().

◆ SCIPmatrixGetVar()

◆ SCIPmatrixGetColName()

SCIP_EXPORT const char* SCIPmatrixGetColName ( SCIP_MATRIX matrix,
int  col 
)

get name of column/variable

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1632 of file matrix.c.

References NULL, SCIPvarGetName(), and SCIP_Matrix::vars.

Referenced by transformAndSolve().

◆ SCIPmatrixGetRowValPtr()

◆ SCIPmatrixGetRowIdxPtr()

◆ SCIPmatrixGetRowNNonzs()

◆ SCIPmatrixGetRowName()

SCIP_EXPORT const char* SCIPmatrixGetRowName ( SCIP_MATRIX matrix,
int  row 
)

get name of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1680 of file matrix.c.

References SCIP_Matrix::cons, NULL, and SCIPconsGetName().

Referenced by applyLPboundTightening(), and cancelRow().

◆ SCIPmatrixGetNRows()

◆ SCIPmatrixGetRowLhs()

◆ SCIPmatrixGetRowRhs()

SCIP_EXPORT SCIP_Real SCIPmatrixGetRowRhs ( SCIP_MATRIX matrix,
int  row 
)

◆ SCIPmatrixIsRowRhsInfinity()

SCIP_EXPORT SCIP_Bool SCIPmatrixIsRowRhsInfinity ( SCIP_MATRIX matrix,
int  row 
)

flag indicating if right-hand-side of row is infinity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1726 of file matrix.c.

References SCIP_Matrix::isrhsinfinite, and NULL.

Referenced by calcVarBoundsDominated(), calcVarBoundsDominating(), detectParallelCols(), dualBoundStrengthening(), findDominancePairs(), getDownlockRowIdx(), getUplockRowIdx(), infinityCountUpdate(), isVlb(), isVub(), SCIP_DECL_PRESOLEXEC(), and singletonColumnStuffing().

◆ SCIPmatrixGetNNonzs()

SCIP_EXPORT int SCIPmatrixGetNNonzs ( SCIP_MATRIX matrix)

get number of non-zeros of matrix

Parameters
matrixmatrix instance

Definition at line 1738 of file matrix.c.

References SCIP_Matrix::nnonzs, and NULL.

Referenced by SCIP_DECL_PRESOLEXEC(), and SCIPincludePresolMILP().

◆ SCIPmatrixGetRowMinActivity()

SCIP_EXPORT SCIP_Real SCIPmatrixGetRowMinActivity ( SCIP_MATRIX matrix,
int  row 
)

get minimal activity of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1748 of file matrix.c.

References SCIP_Matrix::minactivity, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), getBinVarIdxInDownlockRow(), getBinVarIdxInUplockRow(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowMaxActivity()

SCIP_EXPORT SCIP_Real SCIPmatrixGetRowMaxActivity ( SCIP_MATRIX matrix,
int  row 
)

get maximal activity of row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1760 of file matrix.c.

References SCIP_Matrix::maxactivity, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), getBinVarIdxInDownlockRow(), getBinVarIdxInUplockRow(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowNMinActNegInf()

SCIP_EXPORT int SCIPmatrixGetRowNMinActNegInf ( SCIP_MATRIX matrix,
int  row 
)

get number of negative infinities present within minimal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1772 of file matrix.c.

References SCIP_Matrix::minactivityneginf, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowNMinActPosInf()

SCIP_EXPORT int SCIPmatrixGetRowNMinActPosInf ( SCIP_MATRIX matrix,
int  row 
)

get number of positive infinities present within minimal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1784 of file matrix.c.

References SCIP_Matrix::minactivityposinf, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowNMaxActNegInf()

SCIP_EXPORT int SCIPmatrixGetRowNMaxActNegInf ( SCIP_MATRIX matrix,
int  row 
)

get number of negative infinities present within maximal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1796 of file matrix.c.

References SCIP_Matrix::maxactivityneginf, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetRowNMaxActPosInf()

SCIP_EXPORT int SCIPmatrixGetRowNMaxActPosInf ( SCIP_MATRIX matrix,
int  row 
)

get number of positive infinities present within maximal activity

Parameters
matrixmatrix instance
rowrow index

Definition at line 1808 of file matrix.c.

References SCIP_Matrix::maxactivityposinf, and NULL.

Referenced by findDominancePairs(), getActivityResidualsLowerBound(), getActivityResidualsUpperBound(), and getMinMaxActivityResiduals().

◆ SCIPmatrixGetCons()

SCIP_EXPORT SCIP_CONS* SCIPmatrixGetCons ( SCIP_MATRIX matrix,
int  row 
)

get constraint pointer for constraint representing row

Parameters
matrixmatrix instance
rowrow index

Definition at line 1820 of file matrix.c.

References SCIP_Matrix::cons, and NULL.

Referenced by cancelRow(), detectDominatingVlbs(), detectDominatingVubs(), SCIP_DECL_PRESOLEXEC(), and SCIPincludePresolMILP().

◆ SCIPmatrixUplockConflict()

SCIP_EXPORT SCIP_Bool SCIPmatrixUplockConflict ( SCIP_MATRIX matrix,
int  col 
)

get if conflicting uplocks of variable present

get if conflicting uplocks of a specific variable present

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1832 of file matrix.c.

References NULL, SCIP_Matrix::nuplocks, SCIP_LOCKTYPE_MODEL, SCIPvarGetNLocksUpType(), and SCIP_Matrix::vars.

Referenced by dualBoundStrengthening(), SCIP_DECL_PRESOLEXEC(), and SCIPmatrixCreate().

◆ SCIPmatrixDownlockConflict()

SCIP_EXPORT SCIP_Bool SCIPmatrixDownlockConflict ( SCIP_MATRIX matrix,
int  col 
)

get if conflicting downlocks of variable present

get if conflicting downlocks of a specific variable present

Parameters
matrixmatrix instance
colcolumn index

Definition at line 1844 of file matrix.c.

References SCIP_Matrix::ndownlocks, NULL, SCIP_LOCKTYPE_MODEL, SCIPvarGetNLocksDownType(), and SCIP_Matrix::vars.

Referenced by dualBoundStrengthening(), SCIP_DECL_PRESOLEXEC(), and SCIPmatrixCreate().

◆ SCIPmatrixCreate()

SCIP_EXPORT SCIP_RETCODE SCIPmatrixCreate ( SCIP scip,
SCIP_MATRIX **  matrixptr,
SCIP_Bool  onlyifcomplete,
SCIP_Bool initialized,
SCIP_Bool complete,
SCIP_Bool infeasible,
int *  naddconss,
int *  ndelconss,
int *  nchgcoefs,
int *  nchgbds,
int *  nfixedvars 
)

initialize matrix by copying all check constraints

Note
Completeness is checked by testing whether all check constraints are from a list of linear constraint handlers that can be represented.
Parameters
scipcurrent scip instance
matrixptrpointer to constraint matrix object to be initialized
onlyifcompleteshould matrix creation be skipped if matrix will not be complete?
initializedwas the initialization successful?
completeare all constraint represented within the matrix?
infeasiblepointer to return whether problem was detected to be infeasible during matrix creation
naddconsspointer to count number of added (linear) constraints during matrix creation
ndelconsspointer to count number of deleted specialized linear constraints during matrix creation
nchgcoefspointer to count number of changed coefficients during matrix creation
nchgbdspointer to count number of changed bounds during matrix creation
nfixedvarspointer to count number of fixed variables during matrix creation

Definition at line 445 of file matrix.c.

References addConstraint(), BMSclearMemoryArray, calcActivityBounds(), SCIP_Matrix::colmatbeg, SCIP_Matrix::colmatcnt, SCIP_Matrix::colmatind, SCIP_Matrix::colmatval, SCIP_Matrix::cons, FALSE, SCIP_Matrix::isrhsinfinite, SCIP_Matrix::lb, SCIP_Matrix::lhs, SCIP_Matrix::maxactivity, SCIP_Matrix::maxactivityneginf, SCIP_Matrix::maxactivityposinf, SCIP_Matrix::minactivity, SCIP_Matrix::minactivityneginf, SCIP_Matrix::minactivityposinf, SCIP_Matrix::ncols, SCIP_Matrix::ndownlocks, SCIP_Matrix::nnonzs, SCIP_Matrix::nrows, NULL, SCIP_Matrix::nuplocks, SCIP_Matrix::rhs, SCIP_Matrix::rowmatbeg, SCIP_Matrix::rowmatcnt, SCIP_Matrix::rowmatind, SCIP_Matrix::rowmatval, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_LOCKTYPE_MODEL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIPallocBuffer, SCIPallocBufferArray, SCIPallocClearMemoryArray, SCIPcleanupConssKnapsack(), SCIPcleanupConssLinear(), SCIPcleanupConssLogicor(), SCIPcleanupConssSetppc(), SCIPcleanupConssVarbound(), SCIPconshdlrGetCheckConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNCheckConss(), SCIPconsIsModifiable(), SCIPconsIsTransformed(), SCIPdebugMsg, SCIPduplicateBufferArray, SCIPfreeBuffer, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPfreeMemoryArray, SCIPgetBinvarsLinking(), SCIPgetCapacityKnapsack(), SCIPgetConshdlrs(), SCIPgetLhsLinear(), SCIPgetLhsVarbound(), SCIPgetNActivePricers(), SCIPgetNConshdlrs(), SCIPgetNConss(), SCIPgetNVars(), SCIPgetNVarsKnapsack(), SCIPgetNVarsLinear(), SCIPgetNVarsLogicor(), SCIPgetNVarsSetppc(), SCIPgetRhsLinear(), SCIPgetRhsVarbound(), SCIPgetTypeSetppc(), SCIPgetValsLinear(), SCIPgetValsLinking(), SCIPgetVars(), SCIPgetVarsKnapsack(), SCIPgetVarsLinear(), SCIPgetVarsLogicor(), SCIPgetVarsSetppc(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), SCIPgetWeightsKnapsack(), SCIPinfinity(), SCIPisStopped(), SCIPmatrixDownlockConflict(), SCIPmatrixUplockConflict(), SCIPreallocBufferArray, SCIPvarGetLbGlobal(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetUbGlobal(), setColumnMajorFormat(), TRUE, SCIP_Matrix::ub, and SCIP_Matrix::vars.

Referenced by SCIP_DECL_PRESOLEXEC(), and SCIPincludePresolMILP().

◆ SCIPmatrixFree()

SCIP_EXPORT void SCIPmatrixFree ( SCIP scip,
SCIP_MATRIX **  matrix 
)

frees the constraint matrix

Parameters
scipcurrent SCIP instance
matrixconstraint matrix object

Definition at line 1032 of file matrix.c.

References NULL, SCIPfreeBuffer, SCIPfreeBufferArray, SCIPfreeBufferArrayNull, and SCIPfreeMemoryArray.

Referenced by SCIP_DECL_PRESOLEXEC(), and SCIPincludePresolMILP().

◆ SCIPmatrixPrintRow()

SCIP_EXPORT void SCIPmatrixPrintRow ( SCIP scip,
SCIP_MATRIX matrix,
int  row 
)

print one row of the MIP matrix

print one row of the matrix

Parameters
scipcurrent SCIP instance
matrixconstraint matrix object
rowrow index

Definition at line 1095 of file matrix.c.

References SCIP_Matrix::cons, SCIP_Matrix::lhs, SCIP_Matrix::rhs, SCIP_Matrix::rowmatbeg, SCIP_Matrix::rowmatcnt, SCIP_Matrix::rowmatind, SCIP_Matrix::rowmatval, SCIP_Real, SCIP_UNUSED, SCIPconsGetName(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetUbGlobal(), and SCIP_Matrix::vars.

Referenced by cancelRow(), and compensateVarLock().

◆ SCIPmatrixGetParallelRows()

SCIP_EXPORT SCIP_RETCODE SCIPmatrixGetParallelRows ( SCIP scip,
SCIP_MATRIX matrix,
SCIP_Real scale,
int *  pclass 
)

detect parallel rows, rhs/lhs are ignored

detect parallel rows of matrix. rhs/lhs are ignored.

Parameters
scipSCIP instance
matrixmatrix containing the constraints
scalescale factors of rows
pclassparallel row classes

Definition at line 1174 of file matrix.c.

References BMSclearMemoryArray, SCIP_Matrix::colmatbeg, SCIP_Matrix::colmatcnt, SCIP_Matrix::colmatind, SCIP_Matrix::colmatval, SCIP_Matrix::ncols, SCIP_Matrix::nrows, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), SCIPsortIntIntReal(), SCIPsortRealInt(), and TRUE.

◆ SCIPmatrixRemoveColumnBounds()

SCIP_EXPORT void SCIPmatrixRemoveColumnBounds ( SCIP scip,
SCIP_MATRIX matrix,
int  col 
)

removes the bounds of a column and updates the activities accordingly

Parameters
scipcurrent scip instance
matrixconstraint matrix
colcolumn variable to remove bounds from

Definition at line 1129 of file matrix.c.

References SCIP_Matrix::colmatbeg, SCIP_Matrix::colmatcnt, SCIP_Matrix::colmatind, SCIP_Matrix::colmatval, SCIP_Matrix::lb, SCIP_Matrix::maxactivity, SCIP_Matrix::maxactivityneginf, SCIP_Matrix::maxactivityposinf, SCIP_Matrix::minactivity, SCIP_Matrix::minactivityneginf, SCIP_Matrix::minactivityposinf, SCIP_Real, SCIPinfinity(), SCIPisInfinity(), and SCIP_Matrix::ub.

Referenced by aggregation().

◆ SCIPmatrixGetParallelCols()

SCIP_EXPORT SCIP_RETCODE SCIPmatrixGetParallelCols ( SCIP scip,
SCIP_MATRIX matrix,
SCIP_Real scale,
int *  pclass,
SCIP_Bool varineq 
)

detect parallel columns, obj ignored

detect parallel rows of matrix. obj coefficients are ignored.

Parameters
scipSCIP instance
matrixmatrix containing the constraints
scalescale factors of cols
pclassparallel column classes
varineqindicating if variable is within an equation

Definition at line 1330 of file matrix.c.

References BMSclearMemoryArray, SCIP_Matrix::isrhsinfinite, SCIP_Matrix::ncols, SCIP_Matrix::nrows, NULL, r, SCIP_Matrix::rowmatbeg, SCIP_Matrix::rowmatcnt, SCIP_Matrix::rowmatind, SCIP_Matrix::rowmatval, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPisEQ(), SCIPsortIntIntReal(), SCIPsortRealInt(), and TRUE.