Scippy

GCG

Branch-and-Price & Column Generation for Everyone

dec_neighborhoodmaster.cpp File Reference

Detailed Description

detector neighborhoodmaster (This detector calculates cons-cons adjacency (if not already done), sorts constraints according size of neighborhood. Searching two consecutive constraints with largest size difference (according neighborhood size) in sorted constraints. All constraints having a larger neighborhood than the second one are assigned to the master)

Author
Michael Bastubbe

Definition in file dec_neighborhoodmaster.cpp.

#include "dec_neighborhoodmaster.h"
#include "cons_decomp.h"
#include "class_partialdecomp.h"
#include "class_detprobdata.h"
#include "gcg.h"
#include "scip/cons_setppc.h"
#include "scip/scip.h"
#include "scip_misc.h"
#include "scip/clock.h"
#include <sstream>
#include <iostream>
#include <algorithm>

Go to the source code of this file.

Data Structures

struct  DEC_DetectorData
 
struct  sort_pred
 

Macros

#define DEC_DETECTORNAME   "neighborhoodmaster"
 
#define DEC_DESC   "detector neighborhoodmaster"
 
#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 */
 
#define DEC_MAXCALLROUND   0 /** last round the detector gets called */
 
#define DEC_MINCALLROUND   0 /** first round the detector gets called */
 
#define DEC_FREQCALLROUNDORIGINAL   1 /** frequency the detector gets called in detection loop while detecting the original problem */
 
#define DEC_MAXCALLROUNDORIGINAL   INT_MAX /** last round the detector gets called while detecting the original problem */
 
#define DEC_MINCALLROUNDORIGINAL   0 /** first round the detector gets called while detecting the original problem */
 
#define DEC_PRIORITY   0
 
#define DEC_DECCHAR   'n'
 
#define DEC_ENABLED   TRUE
 
#define DEC_ENABLEDFINISHING   FALSE
 
#define DEC_ENABLEDPOSTPROCESSING   FALSE
 
#define DEC_SKIP   FALSE
 
#define DEC_USEFULRECALL   FALSE
 
#define DEFAULT_MAXRATIO   0.2
 
#define exitNeighborhoodmaster   NULL
 
#define initNeighborhoodmaster   NULL
 
#define finishPartialdecNeighborhoodmaster   NULL
 
#define detectorPostprocessPartialdecNeighborhoodmaster   NULL
 

Functions

 DEC_DECL_FREEDETECTOR (freeNeighborhoodmaster)
 
static DEC_DECL_PROPAGATEPARTIALDEC (propagatePartialdecNeighborhoodmaster)
 
static DEC_DECL_SETPARAMAGGRESSIVE (setParamAggressiveNeighborhoodmaster)
 
static DEC_DECL_SETPARAMDEFAULT (setParamDefaultNeighborhoodmaster)
 
static DEC_DECL_SETPARAMFAST (setParamFastNeighborhoodmaster)
 
SCIP_RETCODE SCIPincludeDetectorNeighborhoodmaster (SCIP *scip)
 

Macro Definition Documentation

◆ DEC_DETECTORNAME

#define DEC_DETECTORNAME   "neighborhoodmaster"

This detector calculates cons-cons adjacency (if not already done), and sorts constraints according size of neighborhood. Searching two consecutive constraints with largest size difference (according neighborhood size) in sorted constraints. All constraints having a larger neighborhood than the second one are assigned to the master name of detector

Definition at line 56 of file dec_neighborhoodmaster.cpp.

◆ DEC_DESC

#define DEC_DESC   "detector neighborhoodmaster"

description of detector

Definition at line 57 of file dec_neighborhoodmaster.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 58 of file dec_neighborhoodmaster.cpp.

◆ DEC_MAXCALLROUND

#define DEC_MAXCALLROUND   0 /** last round the detector gets called */

Definition at line 59 of file dec_neighborhoodmaster.cpp.

◆ DEC_MINCALLROUND

#define DEC_MINCALLROUND   0 /** first round the detector gets called */

Definition at line 60 of file dec_neighborhoodmaster.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_neighborhoodmaster.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_neighborhoodmaster.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_neighborhoodmaster.cpp.

◆ DEC_PRIORITY

#define DEC_PRIORITY   0

priority of the constraint handler for separation

Definition at line 64 of file dec_neighborhoodmaster.cpp.

◆ DEC_DECCHAR

#define DEC_DECCHAR   'n'

display character of detector

Definition at line 65 of file dec_neighborhoodmaster.cpp.

◆ DEC_ENABLED

#define DEC_ENABLED   TRUE

should the detection be enabled

Definition at line 66 of file dec_neighborhoodmaster.cpp.

◆ DEC_ENABLEDFINISHING

#define DEC_ENABLEDFINISHING   FALSE

should the detection be enabled

Definition at line 67 of file dec_neighborhoodmaster.cpp.

◆ DEC_ENABLEDPOSTPROCESSING

#define DEC_ENABLEDPOSTPROCESSING   FALSE

should the postprocessing be enabled

Definition at line 68 of file dec_neighborhoodmaster.cpp.

◆ DEC_SKIP

#define DEC_SKIP   FALSE

should detector be skipped if other detectors found decompositions

Definition at line 69 of file dec_neighborhoodmaster.cpp.

◆ DEC_USEFULRECALL

#define DEC_USEFULRECALL   FALSE

is it useful to call this detector on a descendant of the propagated partialdec

Definition at line 70 of file dec_neighborhoodmaster.cpp.

◆ DEFAULT_MAXRATIO

#define DEFAULT_MAXRATIO   0.2

Definition at line 72 of file dec_neighborhoodmaster.cpp.

◆ exitNeighborhoodmaster

#define exitNeighborhoodmaster   NULL

destructor of detector to free detector data (called before the solving process begins)

Definition at line 120 of file dec_neighborhoodmaster.cpp.

◆ initNeighborhoodmaster

#define initNeighborhoodmaster   NULL

detection initialization function of detector (called before solving is about to begin)

Definition at line 123 of file dec_neighborhoodmaster.cpp.

◆ finishPartialdecNeighborhoodmaster

#define finishPartialdecNeighborhoodmaster   NULL

Definition at line 125 of file dec_neighborhoodmaster.cpp.

◆ detectorPostprocessPartialdecNeighborhoodmaster

#define detectorPostprocessPartialdecNeighborhoodmaster   NULL

Definition at line 201 of file dec_neighborhoodmaster.cpp.

Function Documentation

◆ DEC_DECL_FREEDETECTOR()

DEC_DECL_FREEDETECTOR ( freeNeighborhoodmaster  )

destructor of detector to free user data (called when GCG is exiting)

Definition at line 101 of file dec_neighborhoodmaster.cpp.

References DEC_DETECTORNAME, DECdetectorGetData(), and DECdetectorGetName().

◆ DEC_DECL_PROPAGATEPARTIALDEC()

◆ DEC_DECL_SETPARAMAGGRESSIVE()

static DEC_DECL_SETPARAMAGGRESSIVE ( setParamAggressiveNeighborhoodmaster  )
static

Definition at line 204 of file dec_neighborhoodmaster.cpp.

References DECdetectorGetName().

◆ DEC_DECL_SETPARAMDEFAULT()

static DEC_DECL_SETPARAMDEFAULT ( setParamDefaultNeighborhoodmaster  )
static

◆ DEC_DECL_SETPARAMFAST()

static DEC_DECL_SETPARAMFAST ( setParamFastNeighborhoodmaster  )
static

Definition at line 235 of file dec_neighborhoodmaster.cpp.

References DECdetectorGetName().

◆ SCIPincludeDetectorNeighborhoodmaster()