Scippy

    SCIP

    Solving Constraint Integer Programs

    cons_samediff.c File Reference

    Detailed Description

    Constraint handler stores the local branching decision data.

    Author
    Timo Berthold
    Stefan Heinz

    This constraint handler is used to store the branching decision of the Ryan/Foster branching rule which is implemented in branch_ryanfoster.c.

    Definition in file cons_samediff.c.

    #include <assert.h>
    #include <string.h>
    #include "cons_samediff.h"
    #include "probdata_binpacking.h"
    #include "vardata_binpacking.h"

    Go to the source code of this file.

    Macros

    Constraint handler properties
    #define CONSHDLR_NAME   "samediff"
     
    #define CONSHDLR_DESC   "stores the local branching decisions"
     
    #define CONSHDLR_ENFOPRIORITY   0
     
    #define CONSHDLR_CHECKPRIORITY   -9999999
     
    #define CONSHDLR_PROPFREQ   1
     
    #define CONSHDLR_EAGERFREQ   1
     
    #define CONSHDLR_DELAYPROP   FALSE
     
    #define CONSHDLR_NEEDSCONS   TRUE
     
    #define CONSHDLR_PROP_TIMING   SCIP_PROPTIMING_BEFORELP
     

    Functions

    Local methods
    static SCIP_RETCODE consdataCreate (SCIP *scip, SCIP_CONSDATA **consdata, int itemid1, int itemid2, CONSTYPE type, SCIP_NODE *node)
     
    static void consdataPrint (SCIP *scip, SCIP_CONSDATA *consdata, FILE *file)
     
    static SCIP_RETCODE checkVariable (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_VAR *var, int *nfixedvars, SCIP_Bool *cutoff)
     
    static SCIP_RETCODE consdataFixVariables (SCIP *scip, SCIP_CONSDATA *consdata, SCIP_VAR **vars, int nvars, SCIP_RESULT *result)
     
    static SCIP_Bool consdataCheck (SCIP *scip, SCIP_PROBDATA *probdata, SCIP_CONSDATA *consdata, SCIP_Bool beforeprop)
     
    static SCIP_RETCODE consdataFree (SCIP *scip, SCIP_CONSDATA **consdata)
     
    Interface methods
    SCIP_RETCODE SCIPincludeConshdlrSamediff (SCIP *scip)
     
    SCIP_RETCODE SCIPcreateConsSamediff (SCIP *scip, SCIP_CONS **cons, const char *name, int itemid1, int itemid2, CONSTYPE type, SCIP_NODE *node, SCIP_Bool local)
     
    int SCIPgetItemid1Samediff (SCIP_CONS *cons)
     
    int SCIPgetItemid2Samediff (SCIP_CONS *cons)
     
    CONSTYPE SCIPgetTypeSamediff (SCIP_CONS *cons)
     

    Callback methods

    #define consEnfolpSamediff   NULL
     
    #define consEnfopsSamediff   NULL
     
    #define consCheckSamediff   NULL
     
    #define consLockSamediff   NULL
     
    static SCIP_DECL_CONSDELETE (consDeleteSamediff)
     
    static SCIP_DECL_CONSTRANS (consTransSamediff)
     
    static SCIP_DECL_CONSPROP (consPropSamediff)
     
    static SCIP_DECL_CONSACTIVE (consActiveSamediff)
     
    static SCIP_DECL_CONSDEACTIVE (consDeactiveSamediff)
     
    static SCIP_DECL_CONSPRINT (consPrintSamediff)
     

    Macro Definition Documentation

    ◆ CONSHDLR_NAME

    #define CONSHDLR_NAME   "samediff"

    Definition at line 49 of file cons_samediff.c.

    ◆ CONSHDLR_DESC

    #define CONSHDLR_DESC   "stores the local branching decisions"

    Definition at line 50 of file cons_samediff.c.

    ◆ CONSHDLR_ENFOPRIORITY

    #define CONSHDLR_ENFOPRIORITY   0

    priority of the constraint handler for constraint enforcing

    Definition at line 51 of file cons_samediff.c.

    ◆ CONSHDLR_CHECKPRIORITY

    #define CONSHDLR_CHECKPRIORITY   -9999999

    priority of the constraint handler for checking feasibility

    Definition at line 52 of file cons_samediff.c.

    ◆ CONSHDLR_PROPFREQ

    #define CONSHDLR_PROPFREQ   1

    frequency for propagating domains; zero means only preprocessing propagation

    Definition at line 53 of file cons_samediff.c.

    ◆ CONSHDLR_EAGERFREQ

    #define CONSHDLR_EAGERFREQ   1

    frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only

    Definition at line 55 of file cons_samediff.c.

    ◆ CONSHDLR_DELAYPROP

    #define CONSHDLR_DELAYPROP   FALSE

    should propagation method be delayed, if other propagators found reductions?

    Definition at line 56 of file cons_samediff.c.

    ◆ CONSHDLR_NEEDSCONS

    #define CONSHDLR_NEEDSCONS   TRUE

    should the constraint handler be skipped, if no constraints are available?

    Definition at line 57 of file cons_samediff.c.

    ◆ CONSHDLR_PROP_TIMING

    #define CONSHDLR_PROP_TIMING   SCIP_PROPTIMING_BEFORELP

    Definition at line 59 of file cons_samediff.c.

    ◆ consEnfolpSamediff

    #define consEnfolpSamediff   NULL

    constraint enforcing method of constraint handler for LP solutions

    Definition at line 365 of file cons_samediff.c.

    ◆ consEnfopsSamediff

    #define consEnfopsSamediff   NULL

    constraint enforcing method of constraint handler for pseudo solutions

    Definition at line 368 of file cons_samediff.c.

    ◆ consCheckSamediff

    #define consCheckSamediff   NULL

    feasibility check method of constraint handler for integral solutions

    Definition at line 371 of file cons_samediff.c.

    ◆ consLockSamediff

    #define consLockSamediff   NULL

    variable rounding lock method of constraint handler

    Definition at line 449 of file cons_samediff.c.

    Function Documentation

    ◆ consdataCreate()

    static SCIP_RETCODE consdataCreate ( SCIP scip,
    SCIP_CONSDATA **  consdata,
    int  itemid1,
    int  itemid2,
    CONSTYPE  type,
    SCIP_NODE node 
    )
    static

    create constraint data

    Parameters
    scipSCIP data structure
    consdatapointer to store the constraint data
    itemid1item id one
    itemid2item id two
    typestores whether the items have to be in the SAME or DIFFER packing
    nodethe node in the B&B-tree at which the cons is sticking

    Definition at line 88 of file cons_samediff.c.

    References DIFFER, FALSE, NULL, SAME, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.

    Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsSamediff().

    ◆ consdataPrint()

    static void consdataPrint ( SCIP scip,
    SCIP_CONSDATA consdata,
    FILE *  file 
    )
    static

    display constraints

    Parameters
    scipSCIP data structure
    consdataconstraint data
    filefile stream

    Definition at line 118 of file cons_samediff.c.

    References NULL, SAME, SCIP_LONGINT_FORMAT, SCIPgetProbData(), SCIPinfoMessage(), SCIPnodeGetNumber(), and SCIPprobdataGetIds().

    Referenced by consdataCheck(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSDEACTIVE(), SCIP_DECL_CONSPRINT(), SCIP_DECL_CONSPROP(), and SCIPcreateConsSamediff().

    ◆ checkVariable()

    static SCIP_RETCODE checkVariable ( SCIP scip,
    SCIP_CONSDATA consdata,
    SCIP_VAR var,
    int *  nfixedvars,
    SCIP_Bool cutoff 
    )
    static

    fixes a variable to zero if the corresponding packings are not valid for this constraint/node (due to branching)

    Parameters
    scipSCIP data structure
    consdataconstraint data
    varvariables to check
    nfixedvarspointer to store the number of fixed variables
    cutoffpointer to store if a cutoff was detected

    Definition at line 140 of file cons_samediff.c.

    References DIFFER, NULL, SAME, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMsg, SCIPfixVar(), SCIPsortedvecFindInt(), SCIPvardataGetConsids(), SCIPvardataGetNConsids(), SCIPvarGetData(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE.

    Referenced by consdataFixVariables().

    ◆ consdataFixVariables()

    static SCIP_RETCODE consdataFixVariables ( SCIP scip,
    SCIP_CONSDATA consdata,
    SCIP_VAR **  vars,
    int  nvars,
    SCIP_RESULT result 
    )
    static

    fixes variables to zero if the corresponding packings are not valid for this sonstraint/node (due to branching)

    Parameters
    scipSCIP data structure
    consdataconstraint data
    varsgenerated variables
    nvarsnumber of generated variables
    resultpointer to store the result of the fixing

    Definition at line 203 of file cons_samediff.c.

    References checkVariable(), FALSE, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_OKAY, SCIP_REDUCEDDOM, and SCIPdebugMsg.

    Referenced by SCIP_DECL_CONSPROP().

    ◆ consdataCheck()

    static SCIP_Bool consdataCheck ( SCIP scip,
    SCIP_PROBDATA probdata,
    SCIP_CONSDATA consdata,
    SCIP_Bool  beforeprop 
    )
    static

    check if all variables are valid for the given consdata

    Parameters
    scipSCIP data structure
    probdataproblem data
    consdataconstraint data
    beforepropis this check performed before propagation?

    Definition at line 239 of file cons_samediff.c.

    References consdataPrint(), DIFFER, FALSE, NULL, SAME, SCIP_Bool, SCIPdebug, SCIPprintVar(), SCIPprobdataGetNVars(), SCIPprobdataGetVars(), SCIPsortedvecFindInt(), SCIPvardataGetConsids(), SCIPvardataGetNConsids(), SCIPvardataPrint(), SCIPvarGetData(), SCIPvarGetUbLocal(), and TRUE.

    Referenced by SCIP_DECL_CONSPROP().

    ◆ consdataFree()

    static SCIP_RETCODE consdataFree ( SCIP scip,
    SCIP_CONSDATA **  consdata 
    )
    static

    frees samediff constraint data

    Parameters
    scipSCIP data structure
    consdatapointer to the constraint data

    Definition at line 298 of file cons_samediff.c.

    References NULL, SCIP_OKAY, and SCIPfreeBlockMemory.

    Referenced by SCIP_DECL_CONSDELETE().

    ◆ SCIP_DECL_CONSDELETE()

    static SCIP_DECL_CONSDELETE ( consDeleteSamediff  )
    static

    frees specific constraint data

    Definition at line 321 of file cons_samediff.c.

    References consdataFree(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, and SCIPconshdlrGetName().

    ◆ SCIP_DECL_CONSTRANS()

    ◆ SCIP_DECL_CONSPROP()

    static SCIP_DECL_CONSPROP ( consPropSamediff  )
    static

    ◆ SCIP_DECL_CONSACTIVE()

    static SCIP_DECL_CONSACTIVE ( consActiveSamediff  )
    static

    ◆ SCIP_DECL_CONSDEACTIVE()

    static SCIP_DECL_CONSDEACTIVE ( consDeactiveSamediff  )
    static

    ◆ SCIP_DECL_CONSPRINT()

    static SCIP_DECL_CONSPRINT ( consPrintSamediff  )
    static

    constraint display method of constraint handler

    Definition at line 513 of file cons_samediff.c.

    References consdataPrint(), NULL, SCIP_OKAY, and SCIPconsGetData().

    ◆ SCIPincludeConshdlrSamediff()

    ◆ SCIPcreateConsSamediff()

    SCIP_RETCODE SCIPcreateConsSamediff ( SCIP scip,
    SCIP_CONS **  cons,
    const char *  name,
    int  itemid1,
    int  itemid2,
    CONSTYPE  type,
    SCIP_NODE node,
    SCIP_Bool  local 
    )

    creates and captures a samediff constraint

    Parameters
    scipSCIP data structure
    conspointer to hold the created constraint
    namename of constraint
    itemid1item id one
    itemid2item id two
    typestores whether the items have to be in the SAME or DIFFER packing
    nodethe node in the B&B-tree at which the cons is sticking
    localis constraint only valid locally?

    Definition at line 559 of file cons_samediff.c.

    References consdataCreate(), consdataPrint(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPcreateCons(), SCIPdebug, SCIPdebugMsg, SCIPerrorMessage, SCIPfindConshdlr(), and TRUE.

    Referenced by SCIP_DECL_BRANCHEXECLP().

    ◆ SCIPgetItemid1Samediff()

    int SCIPgetItemid1Samediff ( SCIP_CONS cons)

    returns item id one

    Parameters
    conssamediff constraint

    Definition at line 595 of file cons_samediff.c.

    References NULL, and SCIPconsGetData().

    Referenced by addBranchingDecisionConss().

    ◆ SCIPgetItemid2Samediff()

    int SCIPgetItemid2Samediff ( SCIP_CONS cons)

    returns item id two

    Parameters
    conssamediff constraint

    Definition at line 610 of file cons_samediff.c.

    References NULL, and SCIPconsGetData().

    Referenced by addBranchingDecisionConss().

    ◆ SCIPgetTypeSamediff()

    CONSTYPE SCIPgetTypeSamediff ( SCIP_CONS cons)

    return constraint type SAME or DIFFER

    Parameters
    conssamediff constraint

    Definition at line 625 of file cons_samediff.c.

    References NULL, and SCIPconsGetData().

    Referenced by addBranchingDecisionConss().