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 46 of file sepa_intobj.c.
Referenced by SCIP_DECL_SEPACOPY(), and SCIPincludeSepaIntobj().
◆ SEPA_DESC
#define SEPA_DESC "integer objective value separator" |
Definition at line 47 of file sepa_intobj.c.
Referenced by SCIPincludeSepaIntobj().
◆ SEPA_PRIORITY
#define SEPA_PRIORITY -100 |
Definition at line 48 of file sepa_intobj.c.
Referenced by SCIPincludeSepaIntobj().
◆ SEPA_FREQ
#define SEPA_FREQ -1 |
Definition at line 49 of file sepa_intobj.c.
Referenced by SCIPincludeSepaIntobj().
◆ SEPA_MAXBOUNDDIST
#define SEPA_MAXBOUNDDIST 0.0 |
Definition at line 50 of file sepa_intobj.c.
Referenced by SCIPincludeSepaIntobj().
◆ SEPA_USESSUBSCIP
#define SEPA_USESSUBSCIP FALSE |
does the separator use a secondary SCIP instance?
Definition at line 51 of file sepa_intobj.c.
Referenced by SCIPincludeSepaIntobj().
◆ SEPA_DELAY
#define SEPA_DELAY FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 52 of file sepa_intobj.c.
Referenced by SCIPincludeSepaIntobj().
◆ EVENTHDLR_NAME
#define EVENTHDLR_NAME "intobj" |
Definition at line 54 of file sepa_intobj.c.
Referenced by SCIPincludeSepaIntobj().
◆ EVENTHDLR_DESC
#define EVENTHDLR_DESC "objective change event handler for integer objective value separator" |
Definition at line 55 of file sepa_intobj.c.
Referenced by SCIPincludeSepaIntobj().
Function Documentation
◆ sepadataCreate()
|
static |
creates separator data
- Parameters
-
scip SCIP data structure sepadata pointer to store separator data
Definition at line 77 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 94 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 111 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 175 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 244 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 258 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 276 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 303 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 327 of file sepa_intobj.c.
References SCIP_CALL, SCIP_DIDNOTRUN, SCIP_OKAY, and separateCuts().
◆ SCIP_DECL_EVENTINIT()
|
static |
initialization method of event handler (called after problem was transformed)
Definition at line 344 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 353 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 363 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().