Detailed Description
implied bounds separator
Definition in file sepa_impliedbounds.c.
#include "blockmemshell/memory.h"
#include "scip/pub_implics.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_sepa.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_cut.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.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_impliedbounds.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | SEPA_NAME "impliedbounds" |
#define | SEPA_DESC "implied bounds separator" |
#define | SEPA_PRIORITY -50 |
#define | SEPA_FREQ 10 |
#define | SEPA_MAXBOUNDDIST 1.0 |
#define | SEPA_USESSUBSCIP FALSE |
#define | SEPA_DELAY FALSE |
#define | RELCUTCOEFMAXRANGE 1.0 |
#define | DEFAULT_USETWOSIZECLIQUES TRUE |
Functions | |
static SCIP_RETCODE | addCut (SCIP *scip, SCIP_SEPA *sepa, SCIP_Real val1, SCIP_VAR *var1, SCIP_Real solval1, SCIP_Real val2, SCIP_VAR *var2, SCIP_Real solval2, SCIP_Real rhs, SCIP_Bool *cutoff, int *ncuts) |
static SCIP_RETCODE | separateCuts (SCIP *scip, SCIP_SEPA *sepa, SCIP_SOL *sol, SCIP_Real *solvals, SCIP_VAR **fracvars, SCIP_Real *fracvals, int nfracs, SCIP_Bool *cutoff, int *ncuts) |
static | SCIP_DECL_SEPACOPY (sepaCopyImpliedbounds) |
static | SCIP_DECL_SEPAFREE (sepaFreeImpliedbounds) |
static | SCIP_DECL_SEPAEXECLP (sepaExeclpImpliedbounds) |
static | SCIP_DECL_SEPAEXECSOL (sepaExecsolImpliedbounds) |
SCIP_RETCODE | SCIPincludeSepaImpliedbounds (SCIP *scip) |
Macro Definition Documentation
◆ SEPA_NAME
#define SEPA_NAME "impliedbounds" |
Definition at line 57 of file sepa_impliedbounds.c.
Referenced by SCIP_DECL_SEPACOPY(), SCIP_DECL_SEPAFREE(), and SCIPincludeSepaImpliedbounds().
◆ SEPA_DESC
#define SEPA_DESC "implied bounds separator" |
Definition at line 58 of file sepa_impliedbounds.c.
Referenced by SCIPincludeSepaImpliedbounds().
◆ SEPA_PRIORITY
#define SEPA_PRIORITY -50 |
Definition at line 59 of file sepa_impliedbounds.c.
Referenced by SCIPincludeSepaImpliedbounds().
◆ SEPA_FREQ
#define SEPA_FREQ 10 |
Definition at line 60 of file sepa_impliedbounds.c.
Referenced by SCIPincludeSepaImpliedbounds().
◆ SEPA_MAXBOUNDDIST
#define SEPA_MAXBOUNDDIST 1.0 |
Definition at line 61 of file sepa_impliedbounds.c.
Referenced by SCIPincludeSepaImpliedbounds().
◆ SEPA_USESSUBSCIP
#define SEPA_USESSUBSCIP FALSE |
does the separator use a secondary SCIP instance?
Definition at line 62 of file sepa_impliedbounds.c.
Referenced by SCIPincludeSepaImpliedbounds().
◆ SEPA_DELAY
#define SEPA_DELAY FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 63 of file sepa_impliedbounds.c.
Referenced by SCIPincludeSepaImpliedbounds().
◆ RELCUTCOEFMAXRANGE
#define RELCUTCOEFMAXRANGE 1.0 |
maximal allowed range of cut coefficients, relative to 1/feastol
Definition at line 65 of file sepa_impliedbounds.c.
Referenced by separateCuts().
◆ DEFAULT_USETWOSIZECLIQUES
#define DEFAULT_USETWOSIZECLIQUES TRUE |
should violated inequalities for cliques with 2 variables be separated?
Definition at line 66 of file sepa_impliedbounds.c.
Referenced by SCIPincludeSepaImpliedbounds().
Function Documentation
◆ addCut()
|
static |
adds given cut with two variables, if it is violated
- Parameters
-
scip SCIP data structure sepa separator val1 given coefficient of first variable var1 given first variable solval1 current LP solution value of first variable val2 given coefficient of second variable var2 given second variable solval2 current LP solution value of second variable rhs given right hand side of the cut to add cutoff whether a cutoff has been detected ncuts pointer to update number of cuts added
Definition at line 80 of file sepa_impliedbounds.c.
References FALSE, NULL, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddPoolCut(), SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPcreateEmptyRowSepa(), SCIPdebugMsg, SCIPflushRowExtensions(), SCIPgetNLPs(), SCIPinfinity(), SCIPisEfficacious(), SCIPprintRow(), SCIPreleaseRow(), SCIProwChgRank(), SCIPsnprintf(), and TRUE.
Referenced by separateCuts().
◆ separateCuts()
|
static |
searches and adds implied bound cuts that are violated by the given solution value array
- Parameters
-
scip SCIP data structure sepa separator sol the solution that should be separated, or NULL for LP solution solvals array with solution values of all problem variables fracvars array of fractional variables fracvals solution values of fractional variables nfracs number of fractional variables cutoff whether a cutoff has been detected ncuts pointer to store the number of generated cuts
Definition at line 138 of file sepa_impliedbounds.c.
References addCut(), FALSE, NULL, RELCUTCOEFMAXRANGE, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPcleanupCliques(), SCIPcliqueGetNVars(), SCIPcliqueGetValues(), SCIPcliqueGetVars(), SCIPcliqueIsEquation(), SCIPdebugMsg, SCIPfeastol(), SCIPgetCliques(), SCIPgetNCliques(), SCIPgetSolVal(), SCIPisGE(), SCIPisLE(), SCIPsepaGetData(), SCIPvarGetImplBounds(), SCIPvarGetImplTypes(), SCIPvarGetImplVars(), SCIPvarGetLbGlobal(), SCIPvarGetNImpls(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), and TRUE.
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 377 of file sepa_impliedbounds.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaImpliedbounds(), SCIPsepaGetName(), and SEPA_NAME.
◆ SCIP_DECL_SEPAFREE()
|
static |
destructor of separator to free user data (called when SCIP is exiting)
Definition at line 391 of file sepa_impliedbounds.c.
References NULL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPsepaGetData(), SCIPsepaGetName(), SCIPsepaSetData(), and SEPA_NAME.
◆ SCIP_DECL_SEPAEXECLP()
|
static |
LP solution separation method of separator
Definition at line 413 of file sepa_impliedbounds.c.
References NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetLPBranchCands(), SCIPgetVarsData(), SCIPgetVarSols(), and separateCuts().
◆ SCIP_DECL_SEPAEXECSOL()
|
static |
arbitrary primal solution separation method of separator
Definition at line 465 of file sepa_impliedbounds.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetSolVals(), SCIPgetVarsData(), SCIPisFeasIntegral(), and separateCuts().