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, 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(), 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, 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, 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 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, 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, 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, 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, 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, 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(), 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, 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, 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 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 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 SCIPconsGetData().
Referenced by addBranchingDecisionConss(), and SCIPgetItemid2Samediff().