methods and datastructures for separators
Definition in file sepa.c.
#include <assert.h>
#include <string.h>
#include "scip/def.h"
#include "scip/set.h"
#include "scip/stat.h"
#include "scip/clock.h"
#include "scip/paramset.h"
#include "scip/sepastore.h"
#include "scip/scip.h"
#include "scip/sepa.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/struct_sepa.h"
Go to the source code of this file.
|
static |
method to call, when the priority of a separator was changed
Definition at line 55 of file sepa.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPparamGetData(), SCIPparamGetInt(), and SCIPsetSepaPriority().
SCIP_RETCODE SCIPsepaCopyInclude | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
copies the given separator to a new scip
sepa | separator |
set | SCIP_SET of SCIP to copy to |
Definition at line 69 of file sepa.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPsepaGetName(), and SCIPsetDebugMsg.
Referenced by SCIPsetCopyPlugins().
SCIP_RETCODE SCIPsepaCreate | ( | SCIP_SEPA ** | sepa, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem, | ||
const char * | name, | ||
const char * | desc, | ||
int | priority, | ||
int | freq, | ||
SCIP_Real | maxbounddist, | ||
SCIP_Bool | usessubscip, | ||
SCIP_Bool | delay, | ||
SCIP_DECL_SEPACOPY((*sepacopy)) | , | ||
SCIP_DECL_SEPAFREE((*sepafree)) | , | ||
SCIP_DECL_SEPAINIT((*sepainit)) | , | ||
SCIP_DECL_SEPAEXIT((*sepaexit)) | , | ||
SCIP_DECL_SEPAINITSOL((*sepainitsol)) | , | ||
SCIP_DECL_SEPAEXITSOL((*sepaexitsol)) | , | ||
SCIP_DECL_SEPAEXECLP((*sepaexeclp)) | , | ||
SCIP_DECL_SEPAEXECSOL((*sepaexecsol)) | , | ||
SCIP_SEPADATA * | sepadata | ||
) |
creates a separator
sepa | pointer to separator data structure |
set | global SCIP settings |
messagehdlr | message handler |
blkmem | block memory for parameter settings |
name | name of separator |
desc | description of separator |
priority | priority of separator (>= 0: before, < 0: after constraint handlers) |
freq | frequency for calling separator |
maxbounddist | maximal relative distance from current node's dual bound to primal bound compared to best node's dual bound for applying separation |
usessubscip | does the separator use a secondary SCIP instance? |
delay | should separator be delayed, if other separators found cuts? |
sepadata | separator data |
Definition at line 87 of file sepa.c.
References BMSallocMemory, BMSduplicateMemoryArray, FALSE, NULL, paramname, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_MAXSTRLEN, SCIP_MAXTREEDEPTH, SCIP_OKAY, SCIPclockCreate(), SCIPsetAddBoolParam(), SCIPsetAddIntParam(), SCIPsetAddRealParam(), SCIPsnprintf(), and TRUE.
Referenced by SCIPincludeSepa(), and SCIPincludeSepaBasic().
SCIP_RETCODE SCIPsepaFree | ( | SCIP_SEPA ** | sepa, |
SCIP_SET * | set | ||
) |
calls destructor and frees memory of separator
sepa | pointer to separator data structure |
set | global SCIP settings |
Definition at line 179 of file sepa.c.
References BMSfreeMemory, BMSfreeMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
SCIP_RETCODE SCIPsepaInit | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
initializes separator
sepa | separator |
set | global SCIP settings |
Definition at line 205 of file sepa.c.
References FALSE, SCIP_Sepa::initialized, SCIP_Sepa::lastsepanode, SCIP_Sepa::lpwasdelayed, SCIP_Sepa::name, SCIP_Sepa::ncalls, SCIP_Sepa::ncallsatnode, SCIP_Sepa::nconssfound, SCIP_Sepa::ncutoffs, SCIP_Sepa::ncutsapplied, SCIP_Sepa::ncutsfound, SCIP_Sepa::ncutsfoundatnode, SCIP_Sepa::ndomredsfound, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Sepa::sepaclock, SCIP_Sepa::setuptime, SCIP_Sepa::solwasdelayed, and TRUE.
Referenced by SCIPsetIncludeExternalCode().
SCIP_RETCODE SCIPsepaExit | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
calls exit method of separator
sepa | separator |
set | global SCIP settings |
Definition at line 253 of file sepa.c.
References FALSE, SCIP_Sepa::initialized, SCIP_Sepa::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Sepa::setuptime.
SCIP_RETCODE SCIPsepaInitsol | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
informs separator that the branch and bound process is being started
sepa | separator |
set | global SCIP settings |
Definition at line 283 of file sepa.c.
References FALSE, SCIP_Sepa::lpwasdelayed, NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIP_Sepa::setuptime, and SCIP_Sepa::solwasdelayed.
SCIP_RETCODE SCIPsepaExitsol | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set | ||
) |
informs separator that the branch and bound process data is being freed
sepa | separator |
set | global SCIP settings |
Definition at line 310 of file sepa.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Sepa::setuptime.
SCIP_RETCODE SCIPsepaExecLP | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SEPASTORE * | sepastore, | ||
int | depth, | ||
SCIP_Real | bounddist, | ||
SCIP_Bool | execdelayed, | ||
SCIP_RESULT * | result | ||
) |
calls LP separation method of separator
sepa | separator |
set | global SCIP settings |
stat | dynamic problem statistics |
sepastore | separation storage |
depth | depth of current node |
bounddist | current relative distance of local dual bound to global dual bound |
execdelayed | execute separator even if it is marked to be delayed |
result | pointer to store the result of the callback method |
Definition at line 334 of file sepa.c.
References SCIP_Sepa::delay, SCIP_Sepa::freq, SCIP_Sepa::lastsepanode, SCIP_Sepa::lpwasdelayed, MAX, SCIP_Sepa::maxbounddist, SCIP_Stat::nactiveconss, SCIP_Sepa::name, SCIP_Stat::nboundchgs, SCIP_Sepa::ncalls, SCIP_Sepa::ncallsatnode, SCIP_Sepa::nconssfound, SCIP_Sepa::ncutoffs, SCIP_Sepa::ncutsfound, SCIP_Sepa::ncutsfoundatnode, SCIP_Sepa::ndomredsfound, SCIP_Stat::nholechgs, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, SCIP_Stat::ntotalnodes, NULL, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_NEWROUND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPsepastoreGetNCuts(), SCIPsetDebugMsg, SCIPsetIsLE(), and SCIP_Sepa::sepaclock.
Referenced by separationRoundLP().
SCIP_RETCODE SCIPsepaExecSol | ( | SCIP_SEPA * | sepa, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_SEPASTORE * | sepastore, | ||
SCIP_SOL * | sol, | ||
int | depth, | ||
SCIP_Bool | execdelayed, | ||
SCIP_RESULT * | result | ||
) |
calls primal solution separation method of separator
sepa | separator |
set | global SCIP settings |
stat | dynamic problem statistics |
sepastore | separation storage |
sol | primal solution that should be separated |
depth | depth of current node |
execdelayed | execute separator even if it is marked to be delayed |
result | pointer to store the result of the callback method |
Definition at line 440 of file sepa.c.
References SCIP_Sepa::delay, SCIP_Sepa::freq, SCIP_Sepa::lastsepanode, MAX, SCIP_Stat::nactiveconss, SCIP_Sepa::name, SCIP_Stat::nboundchgs, SCIP_Sepa::ncalls, SCIP_Sepa::ncallsatnode, SCIP_Sepa::nconssfound, SCIP_Sepa::ncutoffs, SCIP_Sepa::ncutsfound, SCIP_Sepa::ncutsfoundatnode, SCIP_Sepa::ndomredsfound, SCIP_Stat::nholechgs, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, SCIP_Stat::ntotalnodes, NULL, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_NEWROUND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPsepastoreGetNCuts(), SCIPsetDebugMsg, SCIP_Sepa::sepaclock, and SCIP_Sepa::solwasdelayed.
Referenced by separationRoundSol().
void SCIPsepaSetCopy | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPACOPY((*sepacopy)) | |||
) |
sets copy method of separator
sepa | separator |
Definition at line 566 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaCopy().
void SCIPsepaSetFree | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAFREE((*sepafree)) | |||
) |
sets destructor method of separator
sepa | separator |
Definition at line 577 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaFree().
void SCIPsepaSetInit | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAINIT((*sepainit)) | |||
) |
sets initialization method of separator
sepa | separator |
Definition at line 588 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaInit().
void SCIPsepaSetExit | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAEXIT((*sepaexit)) | |||
) |
sets deinitialization method of separator
sepa | separator |
Definition at line 599 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaExit().
void SCIPsepaSetInitsol | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAINITSOL((*sepainitsol)) | |||
) |
sets solving process initialization method of separator
sepa | separator |
Definition at line 610 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaInitsol().
void SCIPsepaSetExitsol | ( | SCIP_SEPA * | sepa, |
SCIP_DECL_SEPAEXITSOL((*sepaexitsol)) | |||
) |
sets solving process deinitialization method of separator
sepa | separator |
Definition at line 621 of file sepa.c.
References NULL.
Referenced by SCIPsetSepaExitsol().
sets priority of separator
sepa | separator |
set | global SCIP settings |
priority | new priority of the separator |
Definition at line 662 of file sepa.c.
References FALSE, NULL, and SCIP_Sepa::priority.
Referenced by SCIPsetSepaPriority().
enables or disables all clocks of sepa
, depending on the value of the flag
sepa | the separator for which all clocks should be enabled or disabled |
enable | should the clocks of the separator be enabled? |
Definition at line 717 of file sepa.c.
References NULL, SCIPclockEnableOrDisable(), SCIP_Sepa::sepaclock, and SCIP_Sepa::setuptime.
void SCIPsepaIncNAppliedCuts | ( | SCIP_SEPA * | sepa | ) |
increase count of applied cuts
sepa | separator |
Definition at line 799 of file sepa.c.
References SCIP_Sepa::ncutsapplied, and NULL.
Referenced by sepastoreApplyCut().
void SCIPsepaIncNCutsFound | ( | SCIP_SEPA * | sepa | ) |
increase count of found cuts
sepa | separator |
Definition at line 809 of file sepa.c.
References SCIP_Sepa::ncutsfound, and NULL.
Referenced by SCIPcutpoolSeparate().
void SCIPsepaIncNCutsFoundAtNode | ( | SCIP_SEPA * | sepa | ) |
increase count of found cuts at current node
sepa | separator |
Definition at line 819 of file sepa.c.
References SCIP_Sepa::ncutsfoundatnode, and NULL.
Referenced by SCIPcutpoolSeparate().