partition-separator. Searches for two partitions of size 2 and 3 (extension of triangle-inequalities).
Definition in file sepa_partition.c.
#include <assert.h>
#include <string.h>
#include "sepa_partition.h"
#include "probdata_cyc.h"
#include "scip/cons_linear.h"
#include "scip/cutsel_hybrid.h"
Go to the source code of this file.
Macros | |
#define | SEPA_NAME "partition" |
#define | SEPA_DESC "separator to separate partition-inequalities in cycle-clustering application" |
#define | SEPA_PRIORITY 1500 |
#define | SEPA_FREQ 5 |
#define | SEPA_MAXBOUNDDIST 0.0 |
#define | SEPA_USESSUBSCIP FALSE |
#define | SEPA_DELAY FALSE |
#define | MAXCUTS 2000 |
#define | MAXCUTSCREATED 10000 |
#define | MAXROUNDS 20 |
#define | MAXTRIANGLEDISTANCE -0.2 |
Functions | |
static SCIP_RETCODE | createPartitionCut (SCIP *scip, SCIP_SEPA *sepa, SCIP_ROW ***cuts, int *cutsize, int *ncutscreated, int *firstpart, int *secondpart, int nfirst, int nsecond, SCIP_Real **violations, SCIP_Real violation) |
static | SCIP_DECL_SEPACOPY (sepaCopyPartition) |
static | SCIP_DECL_SEPAEXECLP (sepaExeclpPartition) |
SCIP_RETCODE | SCIPincludeSepaPartition (SCIP *scip) |
#define SEPA_NAME "partition" |
Definition at line 40 of file sepa_partition.c.
#define SEPA_DESC "separator to separate partition-inequalities in cycle-clustering application" |
Definition at line 41 of file sepa_partition.c.
#define SEPA_PRIORITY 1500 |
Definition at line 42 of file sepa_partition.c.
#define SEPA_FREQ 5 |
Definition at line 43 of file sepa_partition.c.
#define SEPA_MAXBOUNDDIST 0.0 |
Definition at line 44 of file sepa_partition.c.
#define SEPA_USESSUBSCIP FALSE |
does the separator use a secondary SCIP instance?
Definition at line 45 of file sepa_partition.c.
#define SEPA_DELAY FALSE |
should separation method be delayed, if other separators found cuts?
Definition at line 46 of file sepa_partition.c.
#define MAXCUTS 2000 |
maximal number of cuts that can be added to cut pool
Definition at line 47 of file sepa_partition.c.
#define MAXCUTSCREATED 10000 |
maximal number of cuts to select from
Definition at line 48 of file sepa_partition.c.
#define MAXROUNDS 20 |
maximal number of separation rounds per node
Definition at line 49 of file sepa_partition.c.
#define MAXTRIANGLEDISTANCE -0.2 |
maximal negative violation of triangle-inequality to construct cut from
Definition at line 50 of file sepa_partition.c.
Referenced by SCIP_DECL_SEPAEXECLP().
|
static |
Given two partitions S, T creates the corresponding cut and adds it do SCIP
scip | SCIP data structure |
sepa | separator |
cuts | array to store generated cut |
cutsize | size of the cut array |
ncutscreated | number of created cuts |
firstpart | the first partition |
secondpart | the second partition |
nfirst | number of states in first partition |
nsecond | number of states in second partition |
violations | array to stor the violation of each cut |
violation | violation of the cut that should be created |
Definition at line 55 of file sepa_partition.c.
References assert(), CONSECUTIVE_CLUSTER, FALSE, getEdgevar(), i, INCLUSTER, MAX, MIN, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddVarToRow(), SCIPcacheRowExtensions(), SCIPcreateEmptyRowSepa(), SCIPcycGetEdgevars(), SCIPdebug, SCIPflushRowExtensions(), SCIPinfinity(), SCIPprintRow(), SCIPreallocBufferArray, SCIPsnprintf(), and TRUE.
Referenced by SCIP_DECL_SEPAEXECLP().
|
static |
copy method for separator plugins (called when SCIP copies plugins)
Definition at line 135 of file sepa_partition.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaPartition(), SCIPsepaGetName(), and SEPA_NAME.
|
static |
LP solution separation method of separator
Definition at line 149 of file sepa_partition.c.
References assert(), CONSECUTIVE_CLUSTER, createPartitionCut(), edgesExist(), getEdgevar(), i, INCLUSTER, MAX, MAXCUTS, MAXCUTSCREATED, MAXROUNDS, MAXTRIANGLEDISTANCE, MIN, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_SEPARATED, SCIPaddPoolCut(), SCIPallocBlockMemoryArray, SCIPallocBufferArray, SCIPcycGetEdgeGraph(), SCIPcycGetEdgevars(), SCIPcycGetNBins(), SCIPcycGetNCluster(), SCIPdigraphGetNSuccessors(), SCIPdigraphGetSuccessors(), SCIPfreeBlockMemoryArray, SCIPfreeBufferArray, SCIPgetBoolParam(), SCIPgetRealParam(), SCIPinfinity(), SCIPisGE(), SCIPisPositive(), SCIPreleaseRow(), SCIPselectCutsHybrid(), SCIPsepaGetNCallsAtNode(), SCIPsortDownRealInt(), SCIPsortDownRealPtr(), and SCIPvarGetLPSol().
SCIP_RETCODE SCIPincludeSepaPartition | ( | SCIP * | scip | ) |
creates the Partition separator and includes it in SCIP
scip | SCIP data structure |
Definition at line 476 of file sepa_partition.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeSepaBasic(), SCIPsetSepaCopy(), SEPA_DELAY, SEPA_DESC, SEPA_FREQ, SEPA_MAXBOUNDDIST, SEPA_NAME, SEPA_PRIORITY, and SEPA_USESSUBSCIP.
Referenced by SCIP_DECL_SEPACOPY(), and SCIPincludeCycPlugins().