SCIP Doxygen Documentation
Loading...
Searching...
No Matches

Detailed Description

functions for certified solving

Functions

SCIP_Bool SCIPisCertified (SCIP *scip)
SCIP_Bool SCIPshouldCertificateTrackBounds (SCIP *scip)
SCIP_RETCODE SCIPcertifyCons (SCIP *scip, SCIP_Bool isorigfile, const char *consname, const char sense, SCIP_RATIONAL *side, int len, int *ind, SCIP_RATIONAL **val)
SCIP_RETCODE SCIPcertifyActivityVarBound (SCIP *scip, const char *linename, SCIP_BOUNDTYPE boundtype, SCIP_Real newbound, SCIP_Bool ismaxactivity, SCIP_CONS *constraint, SCIP_VAR *variable, SCIP_ROWEXACT *row, SCIP_RATIONAL **vals, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, SCIP_VAR **vars, int nvars)
SCIP_RETCODE SCIPcertifyActivityVarBoundExact (SCIP *scip, const char *linename, SCIP_BOUNDTYPE boundtype, SCIP_RATIONAL *newbound, SCIP_Bool ismaxactivity, SCIP_CONS *constraint, SCIP_VAR *variable, SCIP_ROWEXACT *row, SCIP_RATIONAL **vals, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, SCIP_VAR **vars, int nvars)
SCIP_RETCODE SCIPcertifyActivityConflict (SCIP *scip, SCIP_CONS *cons, SCIP_ROWEXACT *row, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, int nvals, SCIP_RATIONAL **vals, SCIP_VAR **vars, SCIP_RATIONAL *diff, SCIP_Bool userhs)
SCIP_RETCODE SCIPaddCertificateAggrInfo (SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_ROW **aggrrows, SCIP_Real *weights, int naggrrows, SCIP_ROW **negslackrows, SCIP_Real *negslackweights, int nnegslackrows)
SCIP_RETCODE SCIPstoreCertificateActiveAggrInfo (SCIP *scip, SCIP_ROW *row)
SCIP_RETCODE SCIPfreeCertificateActiveAggrInfo (SCIP *scip)
SCIP_RETCODE SCIPaddCertificateMirInfo (SCIP *scip)
SCIP_RETCODE SCIPstoreCertificateActiveMirInfo (SCIP *scip, SCIP_ROW *row)
SCIP_RETCODE SCIPcertifyMirCut (SCIP *scip, SCIP_ROW *row)
SCIP_RETCODE SCIPfreeCertificateActiveMirInfo (SCIP *scip)

Function Documentation

◆ SCIPisCertified()

◆ SCIPshouldCertificateTrackBounds()

SCIP_Bool SCIPshouldCertificateTrackBounds ( SCIP * scip)

should the certificate track bound changes?

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 186 of file scip_certificate.c.

References SCIP_Bool, SCIP_STAGE_INITSOLVE, SCIPinProbing(), and SCIPisCertified().

Referenced by boundchgApplyExact(), SCIPboundchgApply(), SCIPboundchgUndo(), SCIPinferVarLbConsExact(), SCIPinferVarUbConsExact(), SCIPvarChgLbLocal(), SCIPvarChgLbLocalExact(), SCIPvarChgUbLocal(), SCIPvarChgUbLocalExact(), and tightenVarBounds().

◆ SCIPcertifyCons()

SCIP_RETCODE SCIPcertifyCons ( SCIP * scip,
SCIP_Bool isorigfile,
const char * consname,
const char sense,
SCIP_RATIONAL * side,
int len,
int * ind,
SCIP_RATIONAL ** val )

prints constraint to certificate

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipcertificate information
isorigfileshould the original solution be printed or in transformed space
consnamename of the constraint
sensesense of the constraint, i.e., G, L, or E
sideleft/right-hand side
lennumber of nonzeros
indindex array
valcoefficient array

Definition at line 203 of file scip_certificate.c.

References assert(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPcertificatePrintCons(), SCIPcheckStage, and TRUE.

Referenced by SCIPcertifyConsOrigExactLinear().

◆ SCIPcertifyActivityVarBound()

SCIP_RETCODE SCIPcertifyActivityVarBound ( SCIP * scip,
const char * linename,
SCIP_BOUNDTYPE boundtype,
SCIP_Real newbound,
SCIP_Bool ismaxactivity,
SCIP_CONS * constraint,
SCIP_VAR * variable,
SCIP_ROWEXACT * row,
SCIP_RATIONAL ** vals,
SCIP_RATIONAL * lhs,
SCIP_RATIONAL * rhs,
SCIP_VAR ** vars,
int nvars )

prints activity bound to proof section

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
linenamename of the unsplitting line
boundtypetype of bound (upper/lower)
newboundpointer to lower bound on the objective, NULL indicating infeasibility
ismaxactivityTRUE for maxactivity, FALSE for minactivity
constraintthe constraint
variablethe variable
rowthe corresponding row, or NULL if constraint has no row representation
valsvalue array
lhslhs of the constraint
rhsrhs of the constraint
varsvariable array
nvarsnumber of values

Definition at line 235 of file scip_certificate.c.

References FALSE, nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPbuffer(), SCIPcertifyActivityVarBoundExact(), SCIPcheckStage, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetReal(), TRUE, and vars.

Referenced by tightenVarBounds().

◆ SCIPcertifyActivityVarBoundExact()

SCIP_RETCODE SCIPcertifyActivityVarBoundExact ( SCIP * scip,
const char * linename,
SCIP_BOUNDTYPE boundtype,
SCIP_RATIONAL * newbound,
SCIP_Bool ismaxactivity,
SCIP_CONS * constraint,
SCIP_VAR * variable,
SCIP_ROWEXACT * row,
SCIP_RATIONAL ** vals,
SCIP_RATIONAL * lhs,
SCIP_RATIONAL * rhs,
SCIP_VAR ** vars,
int nvars )

prints activity bound to proof section

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
linenamename of the unsplitting line
boundtypetype of bound (upper/lower)
newboundpointer to lower bound on the objective, NULL indicating infeasibility
ismaxactivityTRUE for maxactivity, FALSE for minactivity
constraintthe constraint
variablethe variable
rowthe corresponding row, or NULL if constraint has no row representation
valsvalue array
lhslhs of the constraint
rhsrhs of the constraint
varsvariable array
nvarsnumber of values

Definition at line 277 of file scip_certificate.c.

References SCIP_Var::aggregate, SCIP_VarDataExact::aggregate, assert(), SCIP_CertificateBound::boundtype, SCIP_CertificateBound::boundval, SCIP_CertificateBound::certificateindex, SCIP_AggregateExact::constant, SCIP_Var::data, SCIP_Var::exactdata, FALSE, getInequalitySense(), i, SCIP_Certificate::indexcounter, SCIP_CertificateBound::isbound, SCIP_CertificateBound::isglobal, SCIP_Certificate::lastinfo, SCIP_Var::negatedvar, NULL, nvars, SCIP_AggregateExact::scalar, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_CALL_ABORT, SCIP_ERROR, SCIP_Longint, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIP_R_ROUND_UPWARDS, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_NEGATED, SCIP_VARSTATUS_ORIGINAL, SCIP_VARTYPE_CONTINUOUS, SCIPABORT, SCIPcertificateGetConsIndex(), SCIPcertificateGetRowIndex(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPcertificateSetLastBoundIndex(), SCIPcertifyActivityVarBoundExact(), SCIPcheckStage, SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPrationalAddProdReal(), SCIPrationalAddReal(), SCIPrationalDiv(), SCIPrationalInvert(), SCIPrationalIsAbsInfinity(), SCIPrationalIsIntegral(), SCIPrationalIsPositive(), SCIPrationalMult(), SCIPrationalMultReal(), SCIPrationalNegate(), SCIPrationalRoundInteger(), SCIPrationalSetRational(), SCIPvarGetCertificateIndex(), SCIPvarGetLbCertificateIndexLocal(), SCIPvarGetNegationConstant(), SCIPvarGetType(), SCIPvarGetUbCertificateIndexLocal(), SCIP_Certificate::transfile, TRUE, SCIP_Aggregate::var, SCIP_CertificateBound::varindex, vars, and SCIP_Var::varstatus.

Referenced by SCIPcertifyActivityVarBound(), SCIPcertifyActivityVarBoundExact(), and tightenVarBounds().

◆ SCIPcertifyActivityConflict()

SCIP_RETCODE SCIPcertifyActivityConflict ( SCIP * scip,
SCIP_CONS * cons,
SCIP_ROWEXACT * row,
SCIP_RATIONAL * lhs,
SCIP_RATIONAL * rhs,
int nvals,
SCIP_RATIONAL ** vals,
SCIP_VAR ** vars,
SCIP_RATIONAL * diff,
SCIP_Bool userhs )

prints activity conflict to certificate file

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
consconstraint
rowcorresponding row, or NULL if constraint does not have representation as row
lhslhs of the constraint
rhsrhs of the constraint
nvalsnumber of values
valsvalue array
varsvariable array
diffdifference between min/max activity as lhs/rhs
userhsis rhs or lhs used

Definition at line 471 of file scip_certificate.c.

References assert(), SCIP_RowExact::cols, FALSE, i, SCIP_Certificate::indexcounter, NULL, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIPcertificateGetConsIndex(), SCIPcertificateGetRowIndex(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPcertificateUpdateParentData(), SCIPcheckStage, SCIPgetCertificate(), SCIPgetCurrentNode(), SCIPisCertified(), SCIPrationalIsPositive(), SCIPvarGetLbCertificateIndexLocal(), SCIPvarGetUbCertificateIndexLocal(), TRUE, SCIP_ColExact::var, var, and vars.

Referenced by printActivityConflictToCertificate().

◆ SCIPaddCertificateAggrInfo()

SCIP_RETCODE SCIPaddCertificateAggrInfo ( SCIP * scip,
SCIP_AGGRROW * aggrrow,
SCIP_ROW ** aggrrows,
SCIP_Real * weights,
int naggrrows,
SCIP_ROW ** negslackrows,
SCIP_Real * negslackweights,
int nnegslackrows )

adds aggregation information to certificate for one row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
aggrrowagrrrow that results from the aggregation
aggrrowsarray of rows used fo the aggregation
weightsarray of weights
naggrrowslength of the arrays
negslackrowsarray of rows that are added implicitly with negative slack
negslackweightsarray of negative slack weights
nnegslackrowslength of the negative slack array

Definition at line 534 of file scip_certificate.c.

References assert(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcertificateNewAggrInfo(), SCIPcheckStage, and TRUE.

Referenced by SCIPaggrRowSumRows().

◆ SCIPstoreCertificateActiveAggrInfo()

SCIP_RETCODE SCIPstoreCertificateActiveAggrInfo ( SCIP * scip,
SCIP_ROW * row )

stores the active aggregation information in the certificate data structures for a row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
rowrow that aggregation-info is stored for

Definition at line 565 of file scip_certificate.c.

References SCIP_Certificate::aggrinfo, SCIP_Certificate::aggrinfohash, assert(), FALSE, SCIP_Certificate::naggrinfos, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, SCIPgetCertificate(), SCIPhashmapSetImage(), SCIPisCertified(), SCIPisExact(), TRUE, and SCIP_Certificate::workingaggrinfo.

Referenced by addCut().

◆ SCIPfreeCertificateActiveAggrInfo()

SCIP_RETCODE SCIPfreeCertificateActiveAggrInfo ( SCIP * scip)

frees the active aggregation information

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 603 of file scip_certificate.c.

References SCIP_Certificate::aggrinfo, assert(), FALSE, SCIP_Certificate::naggrinfos, NULL, SCIP_CALL, SCIP_OKAY, SCIPcertificateFreeAggrInfo(), SCIPcheckStage, SCIPgetCertificate(), SCIPisCertified(), SCIPisExact(), TRUE, and SCIP_Certificate::workingaggrinfo.

Referenced by SCIP_DECL_SEPAEXECLP().

◆ SCIPaddCertificateMirInfo()

SCIP_RETCODE SCIPaddCertificateMirInfo ( SCIP * scip)

adds mir information (split, etc) to certificate for one row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

adds aggregation information to certificate for one row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 644 of file scip_certificate.c.

References assert(), FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPcertificateNewMirInfo(), SCIPcheckStage, and TRUE.

Referenced by calcMIRSafely().

◆ SCIPstoreCertificateActiveMirInfo()

SCIP_RETCODE SCIPstoreCertificateActiveMirInfo ( SCIP * scip,
SCIP_ROW * row )

stores the active mir information in the certificate data structures for a row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
rowrow that mirinfo is stored for

Definition at line 668 of file scip_certificate.c.

References assert(), FALSE, i, SCIP_MirInfo::localbdused, SCIP_Certificate::mirinfo, SCIP_Certificate::mirinfohash, SCIP_Certificate::nmirinfos, SCIP_MirInfo::nslacks, SCIP_MirInfo::nsplitvars, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPcheckStage, SCIPgetCertificate(), SCIPgetNVars(), SCIPhashmapSetImage(), SCIPisCertified(), SCIPisExact(), SCIPreallocBlockMemoryArray, SCIP_MirInfo::slackcoefficients, SCIP_MirInfo::slackroundeddown, SCIP_MirInfo::slackrows, SCIP_MirInfo::slackscale, SCIP_MirInfo::slacksign, SCIP_MirInfo::slackusedcoef, SCIP_MirInfo::slackweight, SCIP_MirInfo::splitcoefficients, TRUE, SCIP_MirInfo::upperused, SCIP_MirInfo::varinds, and SCIP_Certificate::workingmirinfo.

Referenced by addCut().

◆ SCIPcertifyMirCut()

SCIP_RETCODE SCIPcertifyMirCut ( SCIP * scip,
SCIP_ROW * row )

print MIR cut to certificate file

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
rowrow that needs to be certified

Definition at line 742 of file scip_certificate.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcertificatePrintMirCut(), SCIPcheckStage, SCIPgetCertificate(), SCIPisCertified(), SCIPisExact(), and TRUE.

Referenced by addCut().

◆ SCIPfreeCertificateActiveMirInfo()