Constraint handler stores the local branching decision data.
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 |
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) |
#define CONSHDLR_NAME "samediff" |
Definition at line 40 of file cons_samediff.c.
Referenced by SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSDEACTIVE(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSTRANS(), SCIPcreateConsSamediff(), and SCIPincludeConshdlrSamediff().
#define CONSHDLR_DESC "stores the local branching decisions" |
Definition at line 41 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define CONSHDLR_ENFOPRIORITY 0 |
priority of the constraint handler for constraint enforcing
Definition at line 42 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define CONSHDLR_CHECKPRIORITY 9999999 |
priority of the constraint handler for checking feasibility
Definition at line 43 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define CONSHDLR_PROPFREQ 1 |
frequency for propagating domains; zero means only preprocessing propagation
Definition at line 44 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#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 45 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define CONSHDLR_DELAYPROP FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 48 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 49 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define CONSHDLR_PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 51 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define consEnfolpSamediff NULL |
constraint enforcing method of constraint handler for LP solutions
Definition at line 358 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define consEnfopsSamediff NULL |
constraint enforcing method of constraint handler for pseudo solutions
Definition at line 361 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define consCheckSamediff NULL |
feasibility check method of constraint handler for integral solutions
Definition at line 364 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
#define consLockSamediff NULL |
variable rounding lock method of constraint handler
Definition at line 439 of file cons_samediff.c.
Referenced by SCIPincludeConshdlrSamediff().
|
static |
create constraint data
scip | SCIP data structure |
consdata | pointer to store the constraint data |
itemid1 | item id one |
itemid2 | item id two |
type | stores whether the items have to be in the SAME or DIFFER packing |
node | the node in the B&B-tree at which the cons is sticking |
Definition at line 80 of file cons_samediff.c.
References consdataPrint(), DIFFER, FALSE, NULL, SAME, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.
Referenced by SCIP_DECL_CONSTRANS(), and SCIPcreateConsSamediff().
|
static |
display constraints
scip | SCIP data structure |
consdata | constraint data |
file | file stream |
Definition at line 110 of file cons_samediff.c.
References checkVariable(), NULL, SAME, SCIPgetProbData(), SCIPinfoMessage(), SCIPnodeGetNumber(), and SCIPprobdataGetIds().
Referenced by consdataCheck(), consdataCreate(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSDEACTIVE(), SCIP_DECL_CONSPRINT(), SCIP_DECL_CONSPROP(), and SCIPcreateConsSamediff().
|
static |
fixes a variable to zero if the corresponding packings are not valid for this constraint/node (due to branching)
scip | SCIP data structure |
consdata | constraint data |
var | variables to check |
nfixedvars | pointer to store the number of fixed variables |
cutoff | pointer to store if a cutoff was detected |
Definition at line 132 of file cons_samediff.c.
References consdataFixVariables(), DIFFER, NULL, SAME, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMsg, SCIPfixVar(), SCIPsortedvecFindInt(), SCIPvardataGetConsids(), SCIPvardataGetNConsids(), SCIPvarGetData(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE.
Referenced by consdataFixVariables(), and consdataPrint().
|
static |
fixes variables to zero if the corresponding packings are not valid for this sonstraint/node (due to branching)
scip | SCIP data structure |
consdata | constraint data |
vars | generated variables |
nvars | number of generated variables |
result | pointer to store the result of the fixing |
Definition at line 195 of file cons_samediff.c.
References checkVariable(), consdataCheck(), FALSE, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_OKAY, SCIP_REDUCEDDOM, and SCIPdebugMsg.
Referenced by checkVariable(), and SCIP_DECL_CONSPROP().
|
static |
check if all variables are valid for the given consdata
scip | SCIP data structure |
probdata | problem data |
consdata | constraint data |
beforeprop | is this check performed before propagation? |
Definition at line 231 of file cons_samediff.c.
References consdataFree(), consdataPrint(), DIFFER, FALSE, NULL, SAME, SCIP_Bool, SCIPdebug, SCIPprintVar(), SCIPprobdataGetNVars(), SCIPprobdataGetVars(), SCIPsortedvecFindInt(), SCIPvardataGetConsids(), SCIPvardataGetNConsids(), SCIPvardataPrint(), SCIPvarGetData(), SCIPvarGetLbLocal(), and TRUE.
Referenced by consdataFixVariables(), SCIP_DECL_CONSACTIVE(), and SCIP_DECL_CONSPROP().
|
static |
frees samediff constraint data
scip | SCIP data structure |
consdata | pointer to the constraint data |
Definition at line 291 of file cons_samediff.c.
References NULL, SCIP_DECL_CONSDELETE(), SCIP_OKAY, and SCIPfreeBlockMemory.
Referenced by consdataCheck(), and SCIP_DECL_CONSDELETE().
|
static |
frees specific constraint data
Definition at line 314 of file cons_samediff.c.
References consdataFree(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, and SCIPconshdlrGetName().
Referenced by consdataFree().
|
static |
transforms constraint data into data belonging to the transformed problem
Definition at line 329 of file cons_samediff.c.
References consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), and SCIPgetStage().
Referenced by SCIP_DECL_CONSDELETE().
|
static |
domain propagation method of constraint handler
Definition at line 368 of file cons_samediff.c.
References consdataCheck(), consdataFixVariables(), consdataPrint(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebug, SCIPdebugMsg, SCIPgetProbData(), SCIPprobdataGetNVars(), SCIPprobdataGetVars(), and TRUE.
|
static |
constraint activation notification method of constraint handler
Definition at line 443 of file cons_samediff.c.
References consdataCheck(), consdataPrint(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_DECL_CONSDEACTIVE(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebug, SCIPdebugMsg, SCIPgetProbData(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPprobdataGetNVars(), SCIPrepropagateNode(), and TRUE.
|
static |
constraint deactivation notification method of constraint handler
Definition at line 478 of file cons_samediff.c.
References consdataPrint(), CONSHDLR_NAME, NULL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebug, SCIPdebugMsg, SCIPgetNChildren(), SCIPgetProbData(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), and SCIPprobdataGetNVars().
Referenced by SCIP_DECL_CONSACTIVE().
|
static |
constraint display method of constraint handler
Definition at line 506 of file cons_samediff.c.
References consdataPrint(), NULL, SCIP_OKAY, SCIPconsGetData(), and SCIPincludeConshdlrSamediff().
Referenced by SCIP_DECL_CONSDEACTIVE().
SCIP_RETCODE SCIPincludeConshdlrSamediff | ( | SCIP * | scip | ) |
creates the handler for samediff constraints and includes it in SCIP
scip | SCIP data structure |
Definition at line 526 of file cons_samediff.c.
References consCheckSamediff, consEnfolpSamediff, consEnfopsSamediff, CONSHDLR_CHECKPRIORITY, CONSHDLR_DELAYPROP, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, CONSHDLR_PROP_TIMING, CONSHDLR_PROPFREQ, consLockSamediff, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateConsSamediff(), SCIPincludeConshdlrBasic(), SCIPsetConshdlrActive(), SCIPsetConshdlrDeactive(), SCIPsetConshdlrDelete(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), and SCIPsetConshdlrTrans().
Referenced by runShell(), and SCIP_DECL_CONSPRINT().
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
scip | SCIP data structure |
cons | pointer to hold the created constraint |
name | name of constraint |
itemid1 | item id one |
itemid2 | item id two |
type | stores whether the items have to be in the SAME or DIFFER packing |
node | the node in the B&B-tree at which the cons is sticking |
local | is constraint only valid locally? |
Definition at line 552 of file cons_samediff.c.
References consdataCreate(), consdataPrint(), CONSHDLR_NAME, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPcreateCons(), SCIPdebug, SCIPdebugMsg, SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetItemid1Samediff(), and TRUE.
Referenced by SCIP_DECL_BRANCHEXECLP(), and SCIPincludeConshdlrSamediff().
returns item id one
scip | SCIP data structure |
cons | samediff constraint |
Definition at line 588 of file cons_samediff.c.
References NULL, SCIPconsGetData(), and SCIPgetItemid2Samediff().
Referenced by addBranchingDecisionConss(), and SCIPcreateConsSamediff().
returns item id two
scip | SCIP data structure |
cons | samediff constraint |
Definition at line 604 of file cons_samediff.c.
References NULL, SCIPconsGetData(), and SCIPgetTypeSamediff().
Referenced by addBranchingDecisionConss(), and SCIPgetItemid1Samediff().
return constraint type SAME or DIFFER
scip | SCIP data structure |
cons | samediff constraint |
Definition at line 620 of file cons_samediff.c.
References NULL, and SCIPconsGetData().
Referenced by addBranchingDecisionConss(), and SCIPgetItemid2Samediff().