Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods 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_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 FALSE, NULL, 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, SCIP_CALL, SCIP_OKAY, SCIPbuffer(), SCIPcertifyActivityVarBoundExact(), SCIPcheckStage, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetReal(), and TRUE.

    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_VarDataExact::aggregate, SCIP_Var::aggregate, SCIP_CertificateBound::boundtype, SCIP_CertificateBound::boundval, SCIP_CertificateBound::certificateindex, SCIP_AggregateExact::constant, SCIP_Var::data, SCIP_Var::exactdata, FALSE, getInequalitySense(), SCIP_Certificate::indexcounter, SCIP_CertificateBound::isbound, SCIP_CertificateBound::isglobal, SCIP_Certificate::lastinfo, SCIP_Var::negatedvar, NULL, 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, 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 SCIP_RowExact::cols, FALSE, SCIP_Certificate::indexcounter, NULL, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIPcertificateGetConsIndex(), SCIPcertificateGetRowIndex(), SCIPcertificatePrintProofMessage(), SCIPcertificatePrintProofRational(), SCIPcertificateUpdateParentData(), SCIPcheckStage, SCIPgetCertificate(), SCIPgetCurrentNode(), SCIPisCertified(), SCIPrationalIsPositive(), SCIPvarGetLbCertificateIndexLocal(), SCIPvarGetUbCertificateIndexLocal(), TRUE, and SCIP_ColExact::var.

    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 FALSE, NULL, SCIP_CALL, SCIP_OKAY, 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, 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, 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 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 FALSE, 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()

    SCIP_RETCODE SCIPfreeCertificateActiveMirInfo ( SCIP scip)