Detailed Description
detector DBSCAN
- Note
- requires package to be installed: GSL library, requires flag to be set:
GSL=true
This detector performs DBSCAN clustering.
Definition in file dec_dbscan.cpp.
#include <time.h>#include <string>#include "dec_dbscan.h"#include "cons_decomp.h"#include "graph/matrixgraph.h"#include "graph/rowgraph_weighted.h"#include "graph/graph_gcg.h"#include "scip/clock.h"#include "iostream"Go to the source code of this file.
Data Structures | |
| struct | DEC_DetectorData |
Macros | |
| #define | DEC_DETECTORNAME "dbscan" |
| #define | DEC_DESC "detector based on DBSCAN clustering" |
| #define | DEC_PRIORITY 901 |
| #define | DEC_FREQCALLROUND 1 |
| #define | DEC_MAXCALLROUND INT_MAX |
| #define | DEC_MINCALLROUND 0 |
| #define | DEC_FREQCALLROUNDORIGINAL 1 |
| #define | DEC_MAXCALLROUNDORIGINAL INT_MAX |
| #define | DEC_MINCALLROUNDORIGINAL 0 |
| #define | DEC_DECCHAR 'D' |
| #define | DEC_ENABLED FALSE |
| #define | DEC_ENABLEDFINISHING FALSE |
| #define | DEC_ENABLEDPOSTPROCESSING FALSE |
| #define | DEC_SKIP FALSE |
| #define | DEC_USEFULRECALL FALSE |
| #define | DEFAULT_N_ITERATIONS 51 |
| #define | DEFAULT_JOHNSON_ENABLE true |
| #define | DEFAULT_INTERSECTION_ENABLE false |
| #define | DEFAULT_JACCARD_ENABLE false |
| #define | DEFAULT_COSINE_ENABLE false |
| #define | DEFAULT_SIMPSON_ENABLE false |
| #define | DEFAULT_POSTPROC_ENABLE true |
| #define | MAX_N_BLOCKS 100 |
| #define | finishPartialdecDBSCAN NULL |
| #define | detectorPostprocessPartialdecDBSCAN NULL |
Functions | |
| static std::vector< double > | getEpsList (int length, double mid, bool isintersection) |
| static | DEC_DECL_FREEDETECTOR (freeDBSCAN) |
| static | DEC_DECL_EXITDETECTOR (exitDBSCAN) |
| static | DEC_DECL_INITDETECTOR (initDBSCAN) |
| static bool | graphCompletible (gcg::DETPROBDATA *detprobdata, gcg::PARTIALDECOMP *partialdec) |
| static | DEC_DECL_PROPAGATEPARTIALDEC (propagatePartialdecDBSCAN) |
| static | DEC_DECL_SETPARAMAGGRESSIVE (setParamAggressiveDBSCAN) |
| static | DEC_DECL_SETPARAMDEFAULT (setParamDefaultDBSCAN) |
| static | DEC_DECL_SETPARAMFAST (setParamFastDBSCAN) |
| SCIP_RETCODE | SCIPincludeDetectorDBSCAN (SCIP *scip) |
Macro Definition Documentation
◆ DEC_DETECTORNAME
| #define DEC_DETECTORNAME "dbscan" |
name of detector
Definition at line 55 of file dec_dbscan.cpp.
◆ DEC_DESC
| #define DEC_DESC "detector based on DBSCAN clustering" |
description of detector
Definition at line 56 of file dec_dbscan.cpp.
◆ DEC_PRIORITY
| #define DEC_PRIORITY 901 |
priority of the constraint handler for separation
Definition at line 57 of file dec_dbscan.cpp.
◆ DEC_FREQCALLROUND
| #define DEC_FREQCALLROUND 1 |
frequency the detector gets called in detection loop, i.e. it is called in round r if and only if minCallRound <= r <= maxCallRound AND (r - minCallRound) mod freqCallRound == 0
Definition at line 58 of file dec_dbscan.cpp.
◆ DEC_MAXCALLROUND
| #define DEC_MAXCALLROUND INT_MAX |
last round the detector gets called
Definition at line 59 of file dec_dbscan.cpp.
◆ DEC_MINCALLROUND
| #define DEC_MINCALLROUND 0 |
first round the detector gets called
Definition at line 60 of file dec_dbscan.cpp.
◆ DEC_FREQCALLROUNDORIGINAL
| #define DEC_FREQCALLROUNDORIGINAL 1 |
frequency the detector gets called in detection loop while detecting the original problem
Definition at line 61 of file dec_dbscan.cpp.
◆ DEC_MAXCALLROUNDORIGINAL
| #define DEC_MAXCALLROUNDORIGINAL INT_MAX |
last round the detector gets called while detecting the original problem
Definition at line 62 of file dec_dbscan.cpp.
◆ DEC_MINCALLROUNDORIGINAL
| #define DEC_MINCALLROUNDORIGINAL 0 |
first round the detector gets called while detecting the original problem
Definition at line 63 of file dec_dbscan.cpp.
◆ DEC_DECCHAR
| #define DEC_DECCHAR 'D' |
display character of detector
Definition at line 64 of file dec_dbscan.cpp.
◆ DEC_ENABLED
| #define DEC_ENABLED FALSE |
should the detection be enabled
Definition at line 65 of file dec_dbscan.cpp.
◆ DEC_ENABLEDFINISHING
| #define DEC_ENABLEDFINISHING FALSE |
should the finishing be enabled
Definition at line 66 of file dec_dbscan.cpp.
◆ DEC_ENABLEDPOSTPROCESSING
| #define DEC_ENABLEDPOSTPROCESSING FALSE |
should the postprocessing be enabled
Definition at line 67 of file dec_dbscan.cpp.
◆ DEC_SKIP
| #define DEC_SKIP FALSE |
should detector be skipped if other detectors found decompositions
Definition at line 68 of file dec_dbscan.cpp.
◆ DEC_USEFULRECALL
| #define DEC_USEFULRECALL FALSE |
is it useful to call this detector on a descendant of the propagated partialdec
Definition at line 69 of file dec_dbscan.cpp.
◆ DEFAULT_N_ITERATIONS
| #define DEFAULT_N_ITERATIONS 51 |
Definition at line 73 of file dec_dbscan.cpp.
◆ DEFAULT_JOHNSON_ENABLE
| #define DEFAULT_JOHNSON_ENABLE true |
Definition at line 74 of file dec_dbscan.cpp.
◆ DEFAULT_INTERSECTION_ENABLE
| #define DEFAULT_INTERSECTION_ENABLE false |
Definition at line 75 of file dec_dbscan.cpp.
◆ DEFAULT_JACCARD_ENABLE
| #define DEFAULT_JACCARD_ENABLE false |
Definition at line 76 of file dec_dbscan.cpp.
◆ DEFAULT_COSINE_ENABLE
| #define DEFAULT_COSINE_ENABLE false |
Definition at line 77 of file dec_dbscan.cpp.
◆ DEFAULT_SIMPSON_ENABLE
| #define DEFAULT_SIMPSON_ENABLE false |
Definition at line 78 of file dec_dbscan.cpp.
◆ DEFAULT_POSTPROC_ENABLE
| #define DEFAULT_POSTPROC_ENABLE true |
Definition at line 79 of file dec_dbscan.cpp.
◆ MAX_N_BLOCKS
| #define MAX_N_BLOCKS 100 |
Definition at line 80 of file dec_dbscan.cpp.
◆ finishPartialdecDBSCAN
| #define finishPartialdecDBSCAN NULL |
Definition at line 478 of file dec_dbscan.cpp.
◆ detectorPostprocessPartialdecDBSCAN
| #define detectorPostprocessPartialdecDBSCAN NULL |
Definition at line 479 of file dec_dbscan.cpp.
Function Documentation
◆ getEpsList()
|
static |
Definition at line 106 of file dec_dbscan.cpp.
Referenced by DEC_DECL_PROPAGATEPARTIALDEC().
◆ DEC_DECL_FREEDETECTOR()
|
static |
destructor of detector to free user data (called when GCG is exiting)
Definition at line 154 of file dec_dbscan.cpp.
References DEC_DETECTORNAME, DECdetectorGetData(), and DECdetectorGetName().
◆ DEC_DECL_EXITDETECTOR()
|
static |
destructor of detector to free detector data (called before the solving process begins)
Definition at line 171 of file dec_dbscan.cpp.
◆ DEC_DECL_INITDETECTOR()
|
static |
detection initialization function of detector (called before solving is about to begin)
Definition at line 179 of file dec_dbscan.cpp.
References DEC_DETECTORNAME, DECdetectorGetData(), DECdetectorGetName(), DEC_DetectorData::found, and DEC_DetectorData::n_similarities.
◆ graphCompletible()
|
static |
are there conss and vars to be included by the graph and have the conss common vars included by the graph
Definition at line 197 of file dec_dbscan.cpp.
References gcg::PARTIALDECOMP::getNOpenconss(), gcg::PARTIALDECOMP::getNOpenvars(), gcg::DETPROBDATA::getNVarsForCons(), gcg::PARTIALDECOMP::getOpenconss(), gcg::PARTIALDECOMP::getOpenvars(), gcg::DETPROBDATA::getVarsForCons(), and gcg::PARTIALDECOMP::isVarOpenvar().
Referenced by DEC_DECL_PROPAGATEPARTIALDEC().
◆ DEC_DECL_PROPAGATEPARTIALDEC()
|
static |
Definition at line 249 of file dec_dbscan.cpp.
References gcg::RowGraphWeighted< T >::computePartitionDBSCANForPartialGraph(), gcg::COSINE, DEC_DetectorData::cosineenable, gcg::RowGraphWeighted< T >::createFromPartialMatrix(), gcg::RowGraph< T >::createPartialdecFromPartition(), DECdetectorGetData(), gcg::DIST, DEC_DetectorData::found, getEpsList(), gcg::RowGraphWeighted< T >::getNBlocks(), graphCompletible(), gcg::INTERSECTION, DEC_DetectorData::intersectionenable, gcg::JACCARD, DEC_DetectorData::jaccardenable, gcg::JOHNSON, DEC_DetectorData::johnsonenable, MAX_N_BLOCKS, DEC_DetectorData::n_iterations, DEC_DetectorData::n_similarities, gcg::RowGraphWeighted< T >::nonClustered(), DEC_DetectorData::postprocenable, gcg::PARTIALDECOMP::refineToBlocks(), gcg::SIMPSON, and DEC_DetectorData::simpsonenable.
◆ DEC_DECL_SETPARAMAGGRESSIVE()
|
static |
Definition at line 482 of file dec_dbscan.cpp.
References DECdetectorGetName().
◆ DEC_DECL_SETPARAMDEFAULT()
|
static |
Definition at line 498 of file dec_dbscan.cpp.
References DEC_ENABLED, DEC_ENABLEDFINISHING, and DECdetectorGetName().
◆ DEC_DECL_SETPARAMFAST()
|
static |
Definition at line 514 of file dec_dbscan.cpp.
References DECdetectorGetName().
◆ SCIPincludeDetectorDBSCAN()
| SCIP_RETCODE SCIPincludeDetectorDBSCAN | ( | SCIP * | scip | ) |
creates the handler for xyz detector and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 537 of file dec_dbscan.cpp.
References DEC_DetectorData::cosineenable, DEC_DECCHAR, DEC_DESC, DEC_DETECTORNAME, DEC_ENABLED, DEC_ENABLEDFINISHING, DEC_ENABLEDPOSTPROCESSING, DEC_FREQCALLROUND, DEC_FREQCALLROUNDORIGINAL, DEC_MAXCALLROUND, DEC_MAXCALLROUNDORIGINAL, DEC_MINCALLROUND, DEC_MINCALLROUNDORIGINAL, DEC_PRIORITY, DEC_SKIP, DEC_USEFULRECALL, DECincludeDetector(), DEFAULT_COSINE_ENABLE, DEFAULT_INTERSECTION_ENABLE, DEFAULT_JACCARD_ENABLE, DEFAULT_JOHNSON_ENABLE, DEFAULT_N_ITERATIONS, DEFAULT_POSTPROC_ENABLE, DEFAULT_SIMPSON_ENABLE, detectorPostprocessPartialdecDBSCAN, finishPartialdecDBSCAN, DEC_DetectorData::found, DEC_DetectorData::intersectionenable, DEC_DetectorData::jaccardenable, DEC_DetectorData::johnsonenable, DEC_DetectorData::n_iterations, DEC_DetectorData::postprocenable, and DEC_DetectorData::simpsonenable.
Referenced by SCIPincludeGcgPlugins().
