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().