Detailed Description
checks if there are master constraints that can be assigned to one block (without any other changes)
Definition in file dec_postprocess.cpp.
#include "dec_postprocess.h"
#include "cons_decomp.h"
#include "gcg.h"
#include "class_partialdecomp.h"
#include "class_detprobdata.h"
#include "scip/scip.h"
#include "scip_misc.h"
#include "scip/clock.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
Go to the source code of this file.
Data Structures | |
struct | DEC_DetectorData |
Macros | |
#define | DEC_DETECTORNAME "postprocess" |
#define | DEC_DESC "detector postprocess" |
#define | DEC_FREQCALLROUND 1 |
#define | DEC_MAXCALLROUND INT_MAX |
#define | DEC_MINCALLROUND 0 |
#define | DEC_PRIORITY 1000000 |
#define | DEC_FREQCALLROUNDORIGINAL 1 |
#define | DEC_MAXCALLROUNDORIGINAL INT_MAX |
#define | DEC_MINCALLROUNDORIGINAL 0 |
#define | DEC_DECCHAR 'p' |
#define | DEC_ENABLED FALSE |
#define | DEC_ENABLEDFINISHING FALSE |
#define | DEC_ENABLEDPOSTPROCESSING TRUE |
#define | DEC_SKIP FALSE |
#define | DEC_USEFULRECALL FALSE |
#define | DEFAULT_USECONSSADJ TRUE |
#define | exitPostprocess NULL |
#define | initPostprocess NULL |
#define | propagatePartialdecPostprocess NULL |
#define | finishPartialdecPostprocess NULL |
Functions | |
static | DEC_DECL_FREEDETECTOR (freePostprocess) |
static | DEC_DECL_POSTPROCESSPARTIALDEC (postprocessPartialdecPostprocess) |
static | DEC_DECL_SETPARAMAGGRESSIVE (setParamAggressivePostprocess) |
static | DEC_DECL_SETPARAMDEFAULT (setParamDefaultPostprocess) |
static | DEC_DECL_SETPARAMFAST (setParamFastPostprocess) |
SCIP_RETCODE | SCIPincludeDetectorPostprocess (SCIP *scip) |
Macro Definition Documentation
◆ DEC_DETECTORNAME
#define DEC_DETECTORNAME "postprocess" |
name of detector
Definition at line 50 of file dec_postprocess.cpp.
◆ DEC_DESC
#define DEC_DESC "detector postprocess" |
description of detector
Definition at line 51 of file dec_postprocess.cpp.
◆ DEC_FREQCALLROUND
#define DEC_FREQCALLROUND 1 |
frequency the detector gets called in detection loop ,ie it is called in round r if and only if minCallRound <= r <= maxCallRound AND (r - minCallRound) mod freqCallRound == 0
Definition at line 52 of file dec_postprocess.cpp.
◆ DEC_MAXCALLROUND
#define DEC_MAXCALLROUND INT_MAX |
last round the detector gets called
Definition at line 53 of file dec_postprocess.cpp.
◆ DEC_MINCALLROUND
#define DEC_MINCALLROUND 0 |
first round the detector gets called
Definition at line 54 of file dec_postprocess.cpp.
◆ DEC_PRIORITY
#define DEC_PRIORITY 1000000 |
priority of the constraint handler for separation
Definition at line 55 of file dec_postprocess.cpp.
◆ DEC_FREQCALLROUNDORIGINAL
#define DEC_FREQCALLROUNDORIGINAL 1 |
frequency the detector gets called in detection loop while detecting the original problem
Definition at line 56 of file dec_postprocess.cpp.
◆ DEC_MAXCALLROUNDORIGINAL
#define DEC_MAXCALLROUNDORIGINAL INT_MAX |
last round the detector gets called while detecting the original problem
Definition at line 57 of file dec_postprocess.cpp.
◆ DEC_MINCALLROUNDORIGINAL
#define DEC_MINCALLROUNDORIGINAL 0 |
first round the detector gets called while detecting the original problem
Definition at line 58 of file dec_postprocess.cpp.
◆ DEC_DECCHAR
#define DEC_DECCHAR 'p' |
display character of detector
Definition at line 59 of file dec_postprocess.cpp.
◆ DEC_ENABLED
#define DEC_ENABLED FALSE |
should the detection be enabled
Definition at line 60 of file dec_postprocess.cpp.
◆ DEC_ENABLEDFINISHING
#define DEC_ENABLEDFINISHING FALSE |
should the finishing be enabled
Definition at line 61 of file dec_postprocess.cpp.
◆ DEC_ENABLEDPOSTPROCESSING
#define DEC_ENABLEDPOSTPROCESSING TRUE |
should the postprocessing be enabled
Definition at line 62 of file dec_postprocess.cpp.
◆ DEC_SKIP
#define DEC_SKIP FALSE |
should detector be skipped if other detectors found decompositions
Definition at line 63 of file dec_postprocess.cpp.
◆ DEC_USEFULRECALL
#define DEC_USEFULRECALL FALSE |
is it useful to call this detector on a descendant of the propagated partialdec
Definition at line 64 of file dec_postprocess.cpp.
◆ DEFAULT_USECONSSADJ
#define DEFAULT_USECONSSADJ TRUE |
Definition at line 65 of file dec_postprocess.cpp.
◆ exitPostprocess
#define exitPostprocess NULL |
destructor of detector to free detector data (called before the solving process begins)
Definition at line 114 of file dec_postprocess.cpp.
◆ initPostprocess
#define initPostprocess NULL |
detection initialization function of detector (called before solving is about to begin)
Definition at line 117 of file dec_postprocess.cpp.
◆ propagatePartialdecPostprocess
#define propagatePartialdecPostprocess NULL |
Definition at line 119 of file dec_postprocess.cpp.
◆ finishPartialdecPostprocess
#define finishPartialdecPostprocess NULL |
Definition at line 120 of file dec_postprocess.cpp.
Function Documentation
◆ DEC_DECL_FREEDETECTOR()
|
static |
destructor of detector to free user data (called when GCG is exiting) destructor of detector to free detector data (called when SCIP is exiting)
Definition at line 93 of file dec_postprocess.cpp.
References DEC_DETECTORNAME, DECdetectorGetData(), and DECdetectorGetName().
◆ DEC_DECL_POSTPROCESSPARTIALDEC()
|
static |
Definition at line 123 of file dec_postprocess.cpp.
References gcg::PARTIALDECOMP::addDetectorChainInfo(), gcg::DETPROBDATA::createConssAdjacency(), gcg::PARTIALDECOMP::getMasterconss(), gcg::PARTIALDECOMP::getNBlocks(), gcg::PARTIALDECOMP::getNMasterconss(), gcg::PARTIALDECOMP::getNVars(), gcg::PARTIALDECOMP::getNVarsForBlock(), gcg::DETPROBDATA::getNVarsForCons(), gcg::PARTIALDECOMP::getVarsForBlock(), gcg::DETPROBDATA::getVarsForCons(), gcg::DETPROBDATA::isConssAdjInitialized(), gcg::PARTIALDECOMP::isVarMastervar(), gcg::PARTIALDECOMP::prepare(), gcg::PARTIALDECOMP::removeMastercons(), gcg::PARTIALDECOMP::setConsToBlock(), and gcg::PARTIALDECOMP::sort().
◆ DEC_DECL_SETPARAMAGGRESSIVE()
|
static |
Definition at line 243 of file dec_postprocess.cpp.
References DECdetectorGetName().
◆ DEC_DECL_SETPARAMDEFAULT()
|
static |
Definition at line 265 of file dec_postprocess.cpp.
References DEC_ENABLED, DEC_ENABLEDFINISHING, DEC_ENABLEDPOSTPROCESSING, and DECdetectorGetName().
◆ DEC_DECL_SETPARAMFAST()
|
static |
Definition at line 286 of file dec_postprocess.cpp.
References DECdetectorGetName().
◆ SCIPincludeDetectorPostprocess()
SCIP_RETCODE SCIPincludeDetectorPostprocess | ( | SCIP * | scip | ) |
creates the handler for postprocess detector and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 313 of file dec_postprocess.cpp.
References 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_USECONSSADJ, exitPostprocess, finishPartialdecPostprocess, initPostprocess, propagatePartialdecPostprocess, and DEC_DetectorData::useconssadj.
Referenced by SCIPincludeGcgPlugins().