Detailed Description
integer objective value separator
Definition in file sepa_intobj.c.
#include "scip/pub_event.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_sepa.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_cut.h"
#include "scip/scip_event.h"
#include "scip/scip_general.h"
#include "scip/scip_lp.h"
#include "scip/scip_message.h"
#include "scip/scip_mem.h"
#include "scip/scip_numerics.h"
#include "scip/scip_prob.h"
#include "scip/scip_sepa.h"
#include "scip/scip_sol.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_var.h"
#include "scip/sepa_intobj.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | SEPA_NAME "intobj" |
#define | SEPA_DESC "integer objective value separator" |
#define | SEPA_PRIORITY -100 |
#define | SEPA_FREQ -1 |
#define | SEPA_MAXBOUNDDIST 0.0 |
#define | SEPA_USESSUBSCIP FALSE |
#define | SEPA_DELAY FALSE |
#define | EVENTHDLR_NAME "intobj" |
#define | EVENTHDLR_DESC "objective change event handler for integer objective value separator" |
Functions | |
static SCIP_RETCODE | sepadataCreate (SCIP *scip, SCIP_SEPADATA **sepadata) |
static SCIP_RETCODE | sepadataFree (SCIP *scip, SCIP_SEPADATA **sepadata) |
static SCIP_RETCODE | createObjRow (SCIP *scip, SCIP_SEPA *sepa, SCIP_SEPADATA *sepadata) |
static SCIP_RETCODE | separateCuts (SCIP *scip, SCIP_SEPA *sepa, SCIP_SOL *sol, SCIP_RESULT *result) |
static | SCIP_DECL_SEPACOPY (sepaCopyIntobj) |
static | SCIP_DECL_SEPAFREE (sepaFreeIntobj) |
static | SCIP_DECL_SEPAEXITSOL (sepaExitsolIntobj) |
static | SCIP_DECL_SEPAEXECLP (sepaExeclpIntobj) |
static | SCIP_DECL_SEPAEXECSOL (sepaExecsolIntobj) |
static | SCIP_DECL_EVENTINIT (eventInitIntobj) |
static | SCIP_DECL_EVENTEXIT (eventExitIntobj) |
static | SCIP_DECL_EVENTEXEC (eventExecIntobj) |
SCIP_RETCODE | SCIPincludeSepaIntobj (SCIP *scip) |
Macro Definition Documentation
◆ SEPA_NAME
#define SEPA_NAME "intobj" |
Definition at line 55 of file sepa_intobj.c.
◆ SEPA_DESC
#define SEPA_DESC "integer objective value separator" |
Definition at line 56 of file sepa_intobj.c.
◆ SEPA_PRIORITY
#define SEPA_PRIORITY -100 |
Definition at line 57 of file sepa_intobj.c.
◆ SEPA_FREQ
#define SEPA_FREQ -1 |
Definition at line 58 of file sepa_intobj.c.
◆ SEPA_MAXBOUNDDIST
#define SEPA_MAXBOUNDDIST 0.0 |
Definition at line 59 of file sepa_intobj.c.
◆ SEPA_USESSUBSCIP
#define SEPA_USESSUBSCIP FALSE |
does the separator use a secondary SCIP instance?
Definition at line 60 of file sepa_intobj.c.
◆ SEPA_DELAY
#define SEPA_DELAY FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 61 of file sepa_intobj.c.
◆ EVENTHDLR_NAME
#define EVENTHDLR_NAME "intobj" |
Definition at line 63 of file sepa_intobj.c.
◆ EVENTHDLR_DESC
#define EVENTHDLR_DESC "objective change event handler for integer objective value separator" |
Definition at line 64 of file sepa_intobj.c.
Function Documentation
◆ sepadataCreate()
|
static |
creates separator data
- Parameters
-
scip SCIP data structure sepadata pointer to store separator data
Definition at line 86 of file sepa_intobj.c.
References NULL, SCIP_CALL, SCIP_OKAY, and SCIPallocBlockMemory.
Referenced by SCIPincludeSepaIntobj().
◆ sepadataFree()
|
static |
frees separator data
- Parameters
-
scip SCIP data structure sepadata pointer to separator data
Definition at line 103 of file sepa_intobj.c.
References NULL, SCIP_OKAY, and SCIPfreeBlockMemory.
Referenced by SCIP_DECL_SEPAFREE().
◆ createObjRow()
|
static |
creates the objective value inequality and the objective value variable, if not yet existing
- Parameters
-
scip SCIP data structure sepa separator sepadata separator data
Definition at line 120 of file sepa_intobj.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_IMPLINT, SCIPaddVar(), SCIPaddVarLocksType(), SCIPaddVarToRow(), SCIPallVarsInProb(), SCIPcacheRowExtensions(), SCIPceil(), SCIPcreateEmptyRowSepa(), SCIPcreateVar(), SCIPdebug, SCIPdebugMsg, SCIPflushRowExtensions(), SCIPgetLowerbound(), SCIPgetNVars(), SCIPgetVars(), SCIPinfinity(), SCIPisZero(), SCIPprintRow(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarMarkRelaxationOnly(), and TRUE.
Referenced by separateCuts().
◆ separateCuts()
|
static |
searches and adds integral objective cuts that separate the given primal solution
- Parameters
-
scip SCIP data structure sepa the intobj separator sol the solution that should be separated, or NULL for LP solution result pointer to store the result
Definition at line 184 of file sepa_intobj.c.
References createObjRow(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPaddRow(), SCIPceil(), SCIPdebugMsg, SCIPgetLPObjval(), SCIPgetSolTransObj(), SCIPisFeasIntegral(), SCIPisObjIntegral(), SCIProwIsInLP(), SCIPsepaGetData(), SCIPtightenVarLb(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetUbLocal().
Referenced by SCIP_DECL_SEPAEXECLP(), and SCIP_DECL_SEPAEXECSOL().
◆ SCIP_DECL_SEPACOPY()
|
static |
copy method for separator plugins (called when SCIP copies plugins)
Definition at line 253 of file sepa_intobj.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaIntobj(), SCIPsepaGetName(), and SEPA_NAME.
◆ SCIP_DECL_SEPAFREE()
|
static |
destructor of separator to free user data (called when SCIP is exiting)
Definition at line 267 of file sepa_intobj.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPsepaGetData(), SCIPsepaSetData(), and sepadataFree().
◆ SCIP_DECL_SEPAEXITSOL()
|
static |
solving process deinitialization method of separator (called before branch and bound process data is freed)
Definition at line 285 of file sepa_intobj.c.
References NULL, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIPaddVarLocksType(), SCIPreleaseRow(), SCIPreleaseVar(), and SCIPsepaGetData().
◆ SCIP_DECL_SEPAEXECLP()
|
static |
LP solution separation method of separator
Definition at line 312 of file sepa_intobj.c.
References NULL, SCIP_CALL, SCIP_DIDNOTRUN, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPgetLPSolstat(), SCIPgetNLPBranchCands(), SCIPisStopped(), and separateCuts().
◆ SCIP_DECL_SEPAEXECSOL()
|
static |
arbitrary primal solution separation method of separator
Definition at line 336 of file sepa_intobj.c.
References SCIP_CALL, SCIP_DIDNOTRUN, SCIP_OKAY, SCIPceil(), SCIPfloor(), SCIPgetLocalLowerbound(), SCIPgetSolTransObj(), SCIPisStopped(), and separateCuts().
◆ SCIP_DECL_EVENTINIT()
|
static |
initialization method of event handler (called after problem was transformed)
Definition at line 361 of file sepa_intobj.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_OBJCHANGED, SCIP_EVENTTYPE_VARADDED, SCIP_OKAY, and SCIPcatchEvent().
◆ SCIP_DECL_EVENTEXIT()
|
static |
deinitialization method of event handler (called before transformed problem is freed)
Definition at line 370 of file sepa_intobj.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_OBJCHANGED, SCIP_EVENTTYPE_VARADDED, SCIP_OKAY, and SCIPdropEvent().
◆ SCIP_DECL_EVENTEXEC()
|
static |
execution method of objective change event handler
Definition at line 380 of file sepa_intobj.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_OBJCHANGED, SCIP_EVENTTYPE_VARADDED, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPaddVarToRow(), SCIPdebugMsg, SCIPerrorMessage, SCIPeventGetNewobj(), SCIPeventGetOldobj(), SCIPeventGetType(), SCIPeventGetVar(), SCIPeventhdlrGetData(), SCIPisZero(), SCIPvarGetName(), and SCIPvarGetObj().