cons_decomp.cpp File Reference
#include "cons_decomp.h"
#include "reader_gp.h"
#include <assert.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <utility>
#include <regex>
#include <vector>
#include <scip/clock.h>
#include <scip/def.h>
#include <scip/pub_cons.h>
#include <scip/pub_dialog.h>
#include <scip/pub_message.h>
#include <scip/pub_misc.h>
#include <scip/type_clock.h>
#include <scip/type_cons.h>
#include <scip/type_dialog.h>
#include <scip/type_message.h>
#include <scip/type_misc.h>
#include <scip/type_paramset.h>
#include <scip/type_result.h>
#include <scip/type_retcode.h>
#include <scip/type_scip.h>
#include <scip/type_set.h>
#include "class_consclassifier.h"
#include "class_seeed.h"
#include "class_seeedpool.h"
#include "class_varclassifier.h"
#include "class_miscvisualization.h"
#include "pub_decomp.h"
#include "type_decomp.h"
#include "wrapper_seeed.h"
#include "reader_tex.h"
#include "scip_misc.h"
#include "relax_gcg.h"

Go to the source code of this file.

Macros

#define CONSHDLR_NAME   "decomp"
 
#define CONSHDLR_DESC   "constraint handler for structure detection"
 
#define CONSHDLR_ENFOPRIORITY   0
 
#define CONSHDLR_CHECKPRIORITY   0
 
#define CONSHDLR_EAGERFREQ   -1
 
#define CONSHDLR_NEEDSCONS   FALSE
 
#define MAXNDECOMPS   5000
 
#define DEFAULT_CREATEBASICDECOMP   FALSE
 
#define DEFAULT_DUALVALRANDOMMETHOD   1
 
#define DEFAULT_COEFFACTORORIGVSRANDOM   0.5
 
#define DEFAULT_ALLOWCLASSIFIERDUPLICATES   FALSE /** if false each new (conss- and vars-) classifer is checked for being a duplicate of an existing one, if so it is not added and NBOT statistically recognized*/
 
#define DEFAULT_MAXDETECTIONROUNDS   1
 
#define DEFAULT_MAXNCLASSESLARGEPROBS   5 /** maximum number of classes allowed for large (nvars+nconss > 50000) MIPs for detectors, classifier with more classes are reduced to the meximum number of classes */
 
#define DEFAULT_MAXNCLASSES   9 /** maximum number of classes allowed for detectors, classifier with more classes are reduced to the meximum number of classes */
 
#define DEFAULT_MAXNCLASSESFORNBLOCKCANDIDATES   18 /** maximum number of classes a classifier can have to be used for voting nblockcandidates */
 
#define DEFAULT_ENABLEORIGDETECTION   FALSE
 
#define DEFAULT_CONSSADJCALCULATED   TRUE
 
#define DEFAULT_ENABLEORIGCLASSIFICATION   FALSE
 
#define DEFAULT_CONSSCLASSNNONZENABLED   TRUE
 
#define DEFAULT_CONSSCLASSNNONZENABLEDORIG   TRUE
 
#define DEFAULT_CONSSCLASSSCIPCONSTYPEENABLED   TRUE
 
#define DEFAULT_CONSSCLASSSCIPCONSTYPEENABLEDORIG   TRUE
 
#define DEFAULT_AGGREGATIONLIMITNCONSSPERBLOCK   300
 
#define DEFAULT_AGGREGATIONLIMITNVARSPERBLOCK   300
 
#define DEFAULT_CONSSCLASSMIPLIBCONSTYPEENABLED   TRUE
 
#define DEFAULT_CONSSCLASSMIPLIBCONSTYPEENABLEDORIG   TRUE
 
#define DEFAULT_CONSSCLASSCONSNAMENONUMBERENABLED   FALSE
 
#define DEFAULT_CONSSCLASSCONSNAMENONUMBERENABLEDORIG   FALSE
 
#define DEFAULT_CONSSCLASSLEVENSHTEINENABLED   FALSE
 
#define DEFAULT_CONSSCLASSLEVENSHTEINENABLEDORIG   FALSE
 
#define DEFAULT_VARCLASSSCIPVARTYPESENABLED   TRUE
 
#define DEFAULT_VARCLASSSCIPVARTYPESENABLEDORIG   TRUE
 
#define DEFAULT_BENDERSONLYCONTSUBPR   FALSE
 
#define DEFAULT_BENDERSONLYBINMASTER   FALSE
 
#define DEFAULT_VARCLASSOBJVALSENABLED   TRUE
 
#define DEFAULT_VARCLASSOBJVALSENABLEDORIG   TRUE
 
#define DEFAULT_VARCLASSOBJVALSIGNSENABLED   TRUE
 
#define DEFAULT_VARCLASSOBJVALSIGNSENABLEDORIG   TRUE
 
#define DEFAULT_LEVENSHTEIN_MAXMATRIXHALFPERIMETER   10000
 
#define AGGRESSIVE_LEVENSHTEIN_MAXMATRIXHALFPERIMETER   80000
 
#define FAST_LEVENSHTEIN_MAXMATRIXHALFPERIMETER   2000
 
#define DEFAULT_ONLYLEGACYMODE   FALSE
 
#define DEFAULT_LEGACYMODE   FALSE
 
#define DEFAULT_STAIRLINKINGHEUR   FALSE
 
#define DEFAULT_WRITEMIPLIB2017FEATURES   FALSE
 
#define DEFAULT_WRITEMIPLIB2017PLOTSANDDECS   FALSE
 
#define DEFAULT_WRITEMIPLIB2017SHORTBASEFEATURES   TRUE
 
#define DEFAULT_WRITEMIPLIB2017FEATUREFILEPATH   "."
 
#define DEFAULT_WRITEMIPLIB2017MATRIXFILEPATH   "."
 
#define DEFAULT_WRITEMIPLIB2017DECOMPFILEPATH   "."
 
#define DEFAULT_DETECTBENDERS   FALSE
 

Typedefs

typedef gcg::SeeedSeeedPtr
 

Enumerations

enum  weightinggpresolvedoriginaldecomps { NO_MODIF = 0, FRACTION_OF_NNONZEROS, FRACTION_OF_NROWS, FAVOUR_PRESOLVED }
 

Functions

SCIP_Real calcLogarithm (SCIP_Real val)
 
SCIP_RETCODE SCIPconshdlrdataDecompUnselectAll (SCIP *scip)
 
SCORETYPE SCIPconshdlrdataGetScoretype (SCIP_CONSHDLRDATA *conshdlrdata)
 
char * SCIPconshdlrDecompGetScoretypeShortName (SCIP *scip, SCORETYPE sctype)
 
char * SCIPconshdlrDecompGetScoretypeDescription (SCIP *scip, SCORETYPE sctype)
 
SCIP_Bool unfinishedchildexists (std::vector< SCIP_Bool > const &childsfinished)
 
int getfirstunfinishedchild (std::vector< SCIP_Bool > const &childsfinished, std::vector< int > const &childs)
 
int getfirstunfinishedchildid (std::vector< SCIP_Bool > const &childsfinished, std::vector< int > const &childs)
 
SCIP_Bool finishnextchild (std::vector< int > &childs, std::vector< SCIP_Bool > &childsfinished, int child)
 
SCIP_RETCODE SCIPconshdlrDecompAddCompleteSeeedForUnpresolved (SCIP *scip, SeeedPtr seeed)
 
SCIP_RETCODE SCIPconshdlrDecompAddCompleteSeeedForPresolved (SCIP *scip, SeeedPtr seeed)
 
SCIP_RETCODE SCIPconshdlrDecompAddPartialSeeedForUnpresolved (SCIP *scip, SeeedPtr seeed)
 
SCIP_RETCODE SCIPconshdlrDecompAddPartialSeeedForPresolved (SCIP *scip, SeeedPtr seeed)
 
SCIP_RETCODE SCIPconshdlrDecompAddSeeed (SCIP *scip, SeeedPtr seeed)
 
SeeedPtr SCIPconshdlrDecompGetSeeedFromPresolved (SCIP *scip, int seeedid)
 
SeeedPtr SCIPconshdlrDecompGetSeeedFromUnpresolved (SCIP *scip, int seeedid)
 
SeeedPtr SCIPconshdlrDecompGetSeeed (SCIP *scip, int seeedid)
 
static SCIP_DECL_CONSINIT (consInitDecomp)
 
static SCIP_DECL_CONSEXIT (consExitDecomp)
 
static SCIP_DECL_CONSFREE (consFreeDecomp)
 
static SCIP_DECL_CONSENFORELAX (consEnforeDecomp)
 
static SCIP_DECL_CONSENFOLP (consEnfolpDecomp)
 
static SCIP_DECL_CONSENFOPS (consEnfopsDecomp)
 
static SCIP_DECL_CONSCHECK (consCheckDecomp)
 
static SCIP_DECL_CONSLOCK (consLockDecomp)
 
SCIP_RETCODE SCIPincludeConshdlrDecomp (SCIP *scip)
 creates the constraint handler for decomp and includes it in SCIP More...
 
SCIP_RETCODE SCIPconshdlrDecompShowListExtractHeader (SCIP *scip)
 
SCIP_RETCODE SCIPconshdlrDecompShowCurrUserSeeedInfo (SCIP *scip)
 
SCIP_RETCODE SCIPconshdlrDecompShowListExtract (SCIP *scip)
 
SCIP_RETCODE SCIPconshdlrDecompAddDecdecomp (SCIP *scip, DEC_DECOMP *decdecomp)
 sets (and adds) the decomposition structure More...
 
SCIP_RETCODE SCIPconshdlrDecompShowLegend (SCIP *scip)
 
SCIP_RETCODE SCIPconshdlrDecompShowToolboxInfo (SCIP *scip)
 
SCIP_RETCODE SCIPconshdlrDecompModifyNVisualized (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompSelectVisualize (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompSelectCalcStrongDecompositionScore (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompSelectInspect (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompSelectVisualizeCurrentUserSeeed (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompToolboxChoose (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompExploreSelect (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompShowHelp (SCIP *scip)
 
SCIP_Bool SCIPconshdlrDecompDetectBenders (SCIP *scip)
 returns whether More...
 
SCIP_Bool SCIPconshdlrDecompIsBestCandidateUnpresolved (SCIP *scip)
 
SCIP_RETCODE SCIPconshdlrDecompExecSelect (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 method too handle user input for "explore" command More...
 
SCIP_RETCODE SCIPconshdlrDecompToolboxModifyConss (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompToolboxModifyFinish (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompToolboxModifyVars (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompToolboxActOnSeeed (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, toolboxtype action)
 
SCIP_RETCODE SCIPconshdlrDecompToolboxFinishSeeed (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompToolboxPropagateSeeed (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompToolboxPostprocessSeeed (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 
SCIP_RETCODE SCIPconshdlrDecompExecToolboxModify (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 method to handle and moderate user input for modifying decompositions More...
 
SCIP_RETCODE SCIPconshdlrDecompExecToolboxCreate (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 method to handle and moderate user input for creating new decompositions by the user More...
 
SCIP_RETCODE SCIPconshdlrDecompExecToolbox (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
 method to handle and moderate user input for creating new decompositions and modifying existing decompositions by the user More...
 
DEC_DECOMP ** SCIPconshdlrDecompGetDecdecomps (SCIP *scip)
 
int SCIPconshdlrDecompGetNDecdecomps (SCIP *scip)
 
DEC_DETECTORDATADECdetectorGetData (DEC_DETECTOR *detector)
 returns the data of the provided detector More...
 
int SCIPconshdlrDecompGetNFormerDetectionConssForID (SCIP *scip, int id)
 returns the number of constraints that were active while detecting the decomposition originating from the seeed with the given id, this method is used to decide if the problem has changed since detection, if so the aggregation information needs to be recalculated More...
 
gcg::SeeedpoolSCIPconshdlrDecompGetSeeedpool (SCIP *scip)
 
gcg::SeeedpoolSCIPconshdlrDecompGetSeeedpoolUnpresolved (SCIP *scip)
 
SCIP_RETCODE SCIPconshdlrDecompCreateSeeedpool (SCIP *scip)
 creates the seeedpool for the presolved problem More...
 
SCIP_RETCODE SCIPconshdlrDecompCreateSeeedpoolUnpresolved (SCIP *scip)
 creates the seeedpool for the unpresolved problem More...
 
SEEEDPOOL_WRAPPERSCIPconshdlrDecompGetSeeedpoolUnpresolvedExtern (SCIP *scip)
 help method to access seeedpool for unpresolved problem : consider deleting this method will be deleted if the corresponidng wrapper classes are introduced More...
 
SEEEDPOOL_WRAPPERSCIPconshdlrDecompGetSeeedpoolExtern (SCIP *scip)
 help method to access seeedpool for transformed problem : consider deleting this method will be deleted if the corresponidng wrapper classes are introduced More...
 
int SCIPconshdlrDecompIncreaseAndGetNCallsCreateDecomp (SCIP *scip)
 counts up the counter for created decompositions and returns it More...
 
int SCIPconshdlrDecompDecreaseAndGetNCallsCreateDecomp (SCIP *scip)
 decreases the counter for created decompositions and returns it More...
 
const char * DECdetectorGetName (DEC_DETECTOR *detector)
 returns the name of the provided detector More...
 
DEC_DETECTORDECfindDetector (SCIP *scip, const char *name)
 searches for the detector with the given name and returns it or NULL if detector is not found More...
 
SCIP_RETCODE DECincludeDetector (SCIP *scip, const char *name, const char decchar, const char *description, int freqCallRound, int maxCallRound, int minCallRound, int freqCallRoundOriginal, int maxCallRoundOriginal, int minCallRoundOriginal, int priority, SCIP_Bool enabled, SCIP_Bool enabledOriginal, SCIP_Bool enabledFinishing, SCIP_Bool enabledPostprocessing, SCIP_Bool skip, SCIP_Bool usefulRecall, SCIP_Bool legacymode, DEC_DETECTORDATA *detectordata, DEC_DECL_DETECTSTRUCTURE((*detectStructure)), DEC_DECL_FREEDETECTOR((*freeDetector)), DEC_DECL_INITDETECTOR((*initDetector)), DEC_DECL_EXITDETECTOR((*exitDetector)), DEC_DECL_PROPAGATESEEED((*propagateSeeedDetector)), DEC_DECL_PROPAGATEFROMTOOLBOX((*propagateFromToolboxDetector)), DEC_DECL_FINISHFROMTOOLBOX((*finishFromToolboxDetector)), DEC_DECL_FINISHSEEED((*finishSeeedDetector)), DEC_DECL_POSTPROCESSSEEED((*postprocessSeeedDetector)), DEC_DECL_SETPARAMAGGRESSIVE((*setParamAggressiveDetector)), DEC_DECL_SETPARAMDEFAULT((*setParamDefaultDetector)),)
 includes one detector More...
 
SCIP_Real DECgetRemainingTime (SCIP *scip)
 returns the remaining time of scip that the decomposition may use More...
 
SCIP_RETCODE SCIPconshdlrDecompArePricingprobsIdenticalForSeeedid (SCIP *scip, int seeedid, int probnr1, int probnr2, SCIP_Bool *identical)
 
SCIP_RETCODE SCIPconshdlrDecompCreateVarmapForSeeedId (SCIP *scip, SCIP_HASHMAP **hashorig2pricingvar, int seeedid, int probnr1, int probnr2, SCIP *scip1, SCIP *scip2, SCIP_HASHMAP *varmap)
 for two identical pricing problems a corresponding varmap is created More...
 
SCIP_RETCODE SCIPconshdlrDecompCreateUserSeeed (SCIP *scip, SCIP_Bool presolved, SCIP_Bool markedincomplete)
 creates a user seeed for the problem More...
 
SCIP_Bool SCIPconshdlrDecompUnpresolvedUserSeeedAdded (SCIP *scip)
 returns whether or not an unpresolved (untransformed) decompositions was given by the user More...
 
SCIP_Bool SCIPconshdlrDecompUnpresolvedSeeedExists (SCIP *scip)
 returns whether or not an unpresolved (untransformed) decompositions exists in the data structures More...
 
SCIP_RETCODE SCIPconshdlrDecompPopulateSelected (SCIP *scip)
 populate datastructures with incomplete decompositions (e.g. that were given by the user) to complete them during detection loop More...
 
SCIP_RETCODE SCIPconshdlrDecompgetNSeeeds (SCIP *scip, int *nseeeds)
 
SCIP_RETCODE SCIPconshdlrDecompUpdateSeeedlist (SCIP *scip)
 method to update the list of incomplete decompositions in "explore" submenue ( this list changes due to new decompositions, modified, decompositions or changes of the score More...
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetnumberOfBlocks (SCIP *scip, int nblocks)
 set the number of blocks in the current user seeed (which is used for user input (read or modify) ) More...
 
SCIP_Bool SCIPconshdlrDecompUserSeeedIsActive (SCIP *scip)
 returns whether there is an user seeed that is currently worked on More...
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetConsDefaultMaster (SCIP *scip, SCIP_Bool consdefaulttomaster)
 set the user given information of the current user seeed according consdefaultmaster (if TRUE all open constraints are set to master ) More...
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetConsToBlock (SCIP *scip, const char *consname, int blockid)
 sets a constraint by name to a block in the current user seeed More...
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetConsToMaster (SCIP *scip, const char *consname)
 sets a constraint by name to master in the current user seeed More...
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetVarToBlock (SCIP *scip, const char *varname, int blockid)
 sets a variable by name to a block in the current user seeed More...
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetVarToMaster (SCIP *scip, const char *varname)
 sets a variable by name to the master in the current user seeed More...
 
SCIP_RETCODE SCIPconshdlrDecompAddBlockNumberCandidate (SCIP *scip, int blockNumberCandidate)
 add block number user candidate (user candidates are prioritized over found ones) More...
 
int SCIPconshdlrDecompGetNBlockNumberCandidates (SCIP *scip)
 returns the number of block candidates given by the user More...
 
int SCIPconshdlrDecompGetBlockNumberCandidate (SCIP *scip, int index)
 returns block number user candidate with given index More...
 
SCIP_Real SCIPconshdlrDecompGetCompleteDetectionTime (SCIP *scip)
 returns the total detection time More...
 
SCIP_RETCODE SCIPconshdlrDecompBlockNumberCandidateToSeeedpool (SCIP *scip, SCIP_Bool transformed)
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetVarToLinking (SCIP *scip, const char *varname)
 sets a variable by name to the linking variables in the current user seeed More...
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedFlush (SCIP *scip)
 finalizes and flushes the current user seeed, i.e. consider implicits, calc hashvalue, construct decdecomp if complete etc More...
 
SCIP_RETCODE SCIPconshdlrDecompUserSeeedReject (SCIP *scip)
 rejects and deletes the current user seeed More...
 
SCIP_RETCODE SCIPconshdlrDecompTranslateAndAddCompleteUnpresolvedSeeeds (SCIP *scip, SCIP_Bool *success)
 translates unpresolved seeed to a complete presolved one More...
 
SCIP_Real SCIPconshdlrDecompAdaptScore (SCIP *scip, SCIP_Real oldscore)
 
SCIP_Bool SCIPconshdlrDecompHasDecomp (SCIP *scip)
 returns whether or not there exists at least one (com[plete or incomplete) decomposition More...
 
SCIP_Bool SCIPconshdlrDecompHasCompleteDecomp (SCIP *scip)
 
SCIP_Bool SCIPconshdlrDecompExistsSelected (SCIP *scip)
 returns if there is a decomposition that is currently selected by the user (done in explore menue) More...
 
SCIP_RETCODE SCIPconshdlrDecompChooseCandidatesFromSelected (SCIP *scip, SCIP_Bool updatelist)
 initilizes the candidates data structures with selected seeeds (or all if there are no selected seeeds) and sort them according to the current scoretype More...
 
SCIP_RETCODE SCIPconshdlrDecompAddLegacymodeDecompositions (SCIP *scip, SCIP_RESULT *result)
 
SCIP_Bool SCIPconshdlrDecompCheckConsistency (SCIP *scip)
 
int SCIPconshdlrDecompGetNextSeeedID (SCIP *scip)
 
SCIP_RETCODE DECconshdlrDecompSortDecompositionsByScore (SCIP *scip)
 sort the finished decompositions according to the currently chosen score in the according datastructures for the presolved and original problem More...
 
SCIP_RETCODE DECdetectStructure (SCIP *scip, SCIP_RESULT *result)
 
SCIP_RETCODE DECwriteAllDecomps (SCIP *scip, char *directory, char *extension, SCIP_Bool original, SCIP_Bool presolved)
 
SCIP_Bool GCGdetectionTookPlace (SCIP *scip)
 
int SCIPconshdlrDecompGetNDetectors (SCIP *scip)
 
DEC_DETECTOR ** SCIPconshdlrDecompGetDetectors (SCIP *scip)
 
const char * SCIPconshdlrDecompGetPdfReader (SCIP *scip)
 returns string name of the chosen pdf reader More...
 
SCIP_RETCODE SCIPconshdlrDecompNotifyNonFinalFreeTransform (SCIP *scip)
 used before calling SCIPfreeTransform(),, if called to revoke presolving (e.g. if unpresolved decomposition is used, and transformation is not successful), this seems mandatory to decide during consExitDecomp if the original detection information should be freed More...
 
SCIP_RETCODE SCIPconshdlrDecompNotifyFinishedNonFinalFreeTransform (SCIP *scip)
 used after calling SCIPfreeTransform() if called to revoke presolving (e.g. if unpresolved decomposition is used, and transformation is not successful), this seems mandatory to decide during consExitDecomp if the original detection information should be freed More...
 
SCIP_RETCODE SCIPconshdlrDecompGetAllRelevantSeeeds (SCIP *scip, SEEED_WRAPPER **seeedswr, int *nseeeds)
 
SCIP_RETCODE DECwriteFamilyTree (SCIP *scip, const char *filename, const char *workfolder, int ndecompositions, SCIP_Bool draft)
 
SCIP_RETCODE SCIPconshdlrDecompWriteDec (SCIP *scip, FILE *file, SCIP_Bool transformed, SCIP_RESULT *result)
 
DEC_DECOMPDECgetBestDecomp (SCIP *scip)
 
SCIP_RETCODE DECgetSeeedToWrite (SCIP *scip, SCIP_Bool transformed, SEEED_WRAPPER *seeedwrapper)
 
void DECprintListOfDetectors (SCIP *scip)
 
scoretype SCIPconshdlrDecompGetCurrScoretype (SCIP *scip)
 
SCIP_Bool DEChasDetectionRun (SCIP *scip)
 
char DECdetectorGetChar (DEC_DETECTOR *detector)
 
DEC_DECOMP ** SCIPconshdlrDecompGetFinishedDecomps (SCIP *scip)
 
int SCIPconshdlrDecompGetNFinishedDecomps (SCIP *scip)
 
int SCIPconshdlrDecompGetNSeeeds (SCIP *scip)
 
SCIP_RETCODE GCGprintDetectorStatistics (SCIP *scip, FILE *file)
 
static SCIP_RETCODE setDetectionDefault (SCIP *scip, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_Bool quiet)
 
static SCIP_RETCODE setDetectionAggressive (SCIP *scip, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_Bool quiet)
 
static SCIP_RETCODE setDetectionOff (SCIP *scip, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_Bool quiet)
 
static SCIP_RETCODE setDetectionFast (SCIP *scip, SCIP_CONSHDLRDATA *conshdlrdata, SCIP_Bool quiet)
 
SCIP_RETCODE GCGsetDetection (SCIP *scip, SCIP_PARAMSETTING paramsetting, SCIP_Bool quiet)
 
SCIP_RETCODE GCGgetSeeedFromID (SCIP *scip, int *seeedid, SEEED_WRAPPER *seeedwr)
 
SCIP_RETCODE GCGgetCurrentSeeedpools (SCIP *scip, SEEED_WRAPPER *seeedpoolwr, SEEED_WRAPPER *seeedpoolunpresolvedwr)
 
SCIP_RETCODE GCGprintBlockcandidateInformation (SCIP *scip, FILE *file)
 
SCIP_RETCODE GCGprintCompleteDetectionTime (SCIP *givenscip, FILE *file)
 
SCIP_RETCODE GCGprintClassifierInformation (SCIP *scip, FILE *file)
 
SCIP_RETCODE SCIPconshdlrDecompGetSelectedSeeeds (SCIP *scip, int **output, int *outputsize)
 
SCIP_RETCODE GCGprintDecompInformation (SCIP *scip, FILE *file)
 
SCIP_RETCODE GCGprintMiplibBaseInformation (SCIP *scip, FILE *file)
 
SCIP_RETCODE GCGprintMiplibBaseInformationHeader (SCIP *scip, FILE *file)
 
SCIP_RETCODE GCGprintMiplibConnectedInformation (SCIP *scip, FILE *file)
 
SCIP_RETCODE GCGprintMiplibDecompInformation (SCIP *scip, FILE *file)
 
SCIP_RETCODE GCGprintOptionalOutput (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr)
 

Macro Definition Documentation

#define AGGRESSIVE_LEVENSHTEIN_MAXMATRIXHALFPERIMETER   80000

deactivate levenshtein constraint classifier if nrows + ncols exceeds this value for emphasis aggressive

Definition at line 149 of file cons_decomp.cpp.

Referenced by setDetectionAggressive().

#define CONSHDLR_CHECKPRIORITY   0

priority of the constraint handler for checking feasibility

Definition at line 98 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define CONSHDLR_DESC   "constraint handler for structure detection"

Definition at line 96 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define CONSHDLR_EAGERFREQ   -1

frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only

Definition at line 99 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define CONSHDLR_ENFOPRIORITY   0

priority of the constraint handler for constraint enforcing

Definition at line 97 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define CONSHDLR_NAME   "decomp"

Definition at line 95 of file cons_decomp.cpp.

Referenced by DECconshdlrDecompSortDecompositionsByScore(), DECdetectStructure(), DECfindDetector(), DECgetBestDecomp(), DECgetSeeedToWrite(), DEChasDetectionRun(), DECincludeDetector(), DECprintListOfDetectors(), DECwriteAllDecomps(), DECwriteFamilyTree(), GCGdetectionTookPlace(), GCGprintBlockcandidateInformation(), GCGprintClassifierInformation(), GCGprintDecompInformation(), GCGprintDetectorStatistics(), GCGprintMiplibBaseInformation(), GCGprintMiplibConnectedInformation(), GCGprintMiplibDecompInformation(), GCGsetDetection(), SCIPconshdlrdataDecompUnselectAll(), SCIPconshdlrDecompAdaptScore(), SCIPconshdlrDecompAddBlockNumberCandidate(), SCIPconshdlrDecompAddCompleteSeeedForPresolved(), SCIPconshdlrDecompAddCompleteSeeedForUnpresolved(), SCIPconshdlrDecompAddDecdecomp(), SCIPconshdlrDecompAddLegacymodeDecompositions(), SCIPconshdlrDecompAddPartialSeeedForPresolved(), SCIPconshdlrDecompAddPartialSeeedForUnpresolved(), SCIPconshdlrDecompArePricingprobsIdenticalForSeeedid(), SCIPconshdlrDecompBlockNumberCandidateToSeeedpool(), SCIPconshdlrDecompCheckConsistency(), SCIPconshdlrDecompChooseCandidatesFromSelected(), SCIPconshdlrDecompCreateSeeedpool(), SCIPconshdlrDecompCreateSeeedpoolUnpresolved(), SCIPconshdlrDecompCreateUserSeeed(), SCIPconshdlrDecompCreateVarmapForSeeedId(), SCIPconshdlrDecompDecreaseAndGetNCallsCreateDecomp(), SCIPconshdlrDecompExecSelect(), SCIPconshdlrDecompExecToolbox(), SCIPconshdlrDecompExecToolboxCreate(), SCIPconshdlrDecompExecToolboxModify(), SCIPconshdlrDecompExistsSelected(), SCIPconshdlrDecompExploreSelect(), SCIPconshdlrDecompGetAllRelevantSeeeds(), SCIPconshdlrDecompGetBlockNumberCandidate(), SCIPconshdlrDecompGetCompleteDetectionTime(), SCIPconshdlrDecompGetCurrScoretype(), SCIPconshdlrDecompGetDecdecomps(), SCIPconshdlrDecompGetDetectors(), SCIPconshdlrDecompGetFinishedDecomps(), SCIPconshdlrDecompGetNBlockNumberCandidates(), SCIPconshdlrDecompGetNDecdecomps(), SCIPconshdlrDecompGetNDetectors(), SCIPconshdlrDecompGetNextSeeedID(), SCIPconshdlrDecompGetNFinishedDecomps(), SCIPconshdlrDecompGetNFormerDetectionConssForID(), SCIPconshdlrDecompGetNSeeeds(), SCIPconshdlrDecompGetSeeedFromPresolved(), SCIPconshdlrDecompGetSeeedFromUnpresolved(), SCIPconshdlrDecompGetSeeedpool(), SCIPconshdlrDecompGetSeeedpoolExtern(), SCIPconshdlrDecompGetSeeedpoolUnpresolved(), SCIPconshdlrDecompGetSeeedpoolUnpresolvedExtern(), SCIPconshdlrDecompGetSelectedSeeeds(), SCIPconshdlrDecompHasCompleteDecomp(), SCIPconshdlrDecompHasDecomp(), SCIPconshdlrDecompIncreaseAndGetNCallsCreateDecomp(), SCIPconshdlrDecompIsBestCandidateUnpresolved(), SCIPconshdlrDecompModifyNVisualized(), SCIPconshdlrDecompNotifyFinishedNonFinalFreeTransform(), SCIPconshdlrDecompNotifyNonFinalFreeTransform(), SCIPconshdlrDecompPopulateSelected(), SCIPconshdlrDecompSelectCalcStrongDecompositionScore(), SCIPconshdlrDecompSelectInspect(), SCIPconshdlrDecompSelectVisualize(), SCIPconshdlrDecompSelectVisualizeCurrentUserSeeed(), SCIPconshdlrDecompShowCurrUserSeeedInfo(), SCIPconshdlrDecompShowLegend(), SCIPconshdlrDecompShowListExtract(), SCIPconshdlrDecompShowListExtractHeader(), SCIPconshdlrDecompToolboxActOnSeeed(), SCIPconshdlrDecompToolboxChoose(), SCIPconshdlrDecompToolboxModifyConss(), SCIPconshdlrDecompToolboxModifyFinish(), SCIPconshdlrDecompToolboxModifyVars(), SCIPconshdlrDecompTranslateAndAddCompleteUnpresolvedSeeeds(), SCIPconshdlrDecompUnpresolvedSeeedExists(), SCIPconshdlrDecompUnpresolvedUserSeeedAdded(), SCIPconshdlrDecompUpdateSeeedlist(), SCIPconshdlrDecompUserSeeedFlush(), SCIPconshdlrDecompUserSeeedIsActive(), SCIPconshdlrDecompUserSeeedReject(), SCIPconshdlrDecompUserSeeedSetConsDefaultMaster(), SCIPconshdlrDecompUserSeeedSetConsToBlock(), SCIPconshdlrDecompUserSeeedSetConsToMaster(), SCIPconshdlrDecompUserSeeedSetnumberOfBlocks(), SCIPconshdlrDecompUserSeeedSetVarToBlock(), SCIPconshdlrDecompUserSeeedSetVarToLinking(), SCIPconshdlrDecompUserSeeedSetVarToMaster(), SCIPconshdlrDecompWriteDec(), and SCIPincludeConshdlrDecomp().

#define CONSHDLR_NEEDSCONS   FALSE

should the constraint handler be skipped, if no constraints are available?

Definition at line 102 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_AGGREGATIONLIMITNCONSSPERBLOCK   300

if this limit on the number of constraints of a block is exceeded the aggregation information for this block is not calculated

Definition at line 124 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_AGGREGATIONLIMITNVARSPERBLOCK   300

if this limit on the number of variables of a block is exceeded the aggregation information for this block is not calculated

Definition at line 125 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_ALLOWCLASSIFIERDUPLICATES   FALSE /** if false each new (conss- and vars-) classifer is checked for being a duplicate of an existing one, if so it is not added and NBOT statistically recognized*/

Definition at line 110 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_BENDERSONLYBINMASTER   FALSE

indicates whether only decomposition with only binary variables in the master should be searched

Definition at line 140 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_BENDERSONLYCONTSUBPR   FALSE

indicates whether only decomposition with only continiuous variables in the subproblems should be searched

Definition at line 139 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_COEFFACTORORIGVSRANDOM   0.5

default value for convex coefficient for orig dual val (1-this coef is facor for random dual value)

Definition at line 108 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSADJCALCULATED   TRUE

indicates whether conss adjacency datastructures should be calculated, this might slow down initlization, but accelareting refinement methods

Definition at line 116 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSCONSNAMENONUMBERENABLED   FALSE

indicates whether constraint classifier for constraint names (remove digits; check for identity) is enabled

Definition at line 131 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSCONSNAMENONUMBERENABLEDORIG   FALSE

indicates whether constraint classifier for constraint names (remove digits; check for identity) is enabled for the original problem

Definition at line 132 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSLEVENSHTEINENABLED   FALSE

indicates whether constraint classifier for constraint names (according to levenshtein distance graph) is enabled

Definition at line 134 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSLEVENSHTEINENABLEDORIG   FALSE

indicates whether constraint classifier for constraint names (according to levenshtein distance graph) is enabled for the original problem

Definition at line 135 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSMIPLIBCONSTYPEENABLED   TRUE

indicates whether constraint classifier for miplib consstype is enabled

Definition at line 128 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSMIPLIBCONSTYPEENABLEDORIG   TRUE

indicates whether constraint classifier for miplib consstype is enabled for the original problem

Definition at line 129 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSNNONZENABLED   TRUE

indicates whether constraint classifier for nonzero entries is enabled

Definition at line 118 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSNNONZENABLEDORIG   TRUE

indicates whether constraint classifier for nonzero entries is enabled for the original problem

Definition at line 119 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSSCIPCONSTYPEENABLED   TRUE

indicates whether constraint classifier for scipconstype is enabled

Definition at line 121 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CONSSCLASSSCIPCONSTYPEENABLEDORIG   TRUE

indicates whether constraint classifier for scipconsstype is enabled for the original problem

Definition at line 122 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_CREATEBASICDECOMP   FALSE

indicates whether to create a decomposition with all constraints in the master if no other specified

Definition at line 106 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_DETECTBENDERS   FALSE

indicates whether benders detection mode is enabled

Definition at line 166 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_DUALVALRANDOMMETHOD   1

default value for method to dual initilization of dual values for strong decomposition: 1) naive, 2) expected equal, 3) expected overestimation

Definition at line 107 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_ENABLEORIGCLASSIFICATION   FALSE

indicates whether to start detection for the original problem

Definition at line 117 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_ENABLEORIGDETECTION   FALSE

indicates whether to start detection for the original problem

Definition at line 115 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_LEGACYMODE   FALSE

indicates whether detection should consist of legacy mode detection

Definition at line 153 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_LEVENSHTEIN_MAXMATRIXHALFPERIMETER   10000

deactivate levenshtein constraint classifier if nrows + ncols exceeds this value for emphasis default

Definition at line 148 of file cons_decomp.cpp.

Referenced by setDetectionDefault().

#define DEFAULT_MAXDETECTIONROUNDS   1

maximal number of detection rounds

Definition at line 111 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_MAXNCLASSES   9 /** maximum number of classes allowed for detectors, classifier with more classes are reduced to the meximum number of classes */

Definition at line 113 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_MAXNCLASSESFORNBLOCKCANDIDATES   18 /** maximum number of classes a classifier can have to be used for voting nblockcandidates */

Definition at line 114 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_MAXNCLASSESLARGEPROBS   5 /** maximum number of classes allowed for large (nvars+nconss > 50000) MIPs for detectors, classifier with more classes are reduced to the meximum number of classes */

Definition at line 112 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_ONLYLEGACYMODE   FALSE

indicates whether detection should only consist of legacy mode detection

Definition at line 152 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_STAIRLINKINGHEUR   FALSE

indicates whether heuristic to reassign linking vars to stairlinking in legacy mode should be activated

Definition at line 154 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_VARCLASSOBJVALSENABLED   TRUE

indicates whether variable classifier for objective function values is enabled

Definition at line 142 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_VARCLASSOBJVALSENABLEDORIG   TRUE

indicates whether variable classifier for objective function values is enabled for the original problem

Definition at line 143 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_VARCLASSOBJVALSIGNSENABLED   TRUE

indicates whether variable classifier for objective function value signs is enabled

Definition at line 145 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_VARCLASSOBJVALSIGNSENABLEDORIG   TRUE

indicates whether variable classifier for objective function value signs is enabled for the original problem

Definition at line 146 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_VARCLASSSCIPVARTYPESENABLED   TRUE

indicates whether variable classifier for scipvartypes is enabled

Definition at line 137 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_VARCLASSSCIPVARTYPESENABLEDORIG   TRUE

indicates whether variable classifier for scipvartypes is enabled for the original problem

Definition at line 138 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_WRITEMIPLIB2017DECOMPFILEPATH   "."

indicates where the miplib feature output should be written to

Definition at line 163 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_WRITEMIPLIB2017FEATUREFILEPATH   "."

indicates where the miplib feature output should be written to

Definition at line 159 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_WRITEMIPLIB2017FEATURES   FALSE

indicates whether miplib2017 features should be written

Definition at line 156 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_WRITEMIPLIB2017MATRIXFILEPATH   "."

indicates where the miplib feature output should be written to

Definition at line 161 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_WRITEMIPLIB2017PLOTSANDDECS   FALSE

indicates whether miplib2017 gp and dec files should be written

Definition at line 157 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define DEFAULT_WRITEMIPLIB2017SHORTBASEFEATURES   TRUE

indicates whether miplib2017 base features should be shortened

Definition at line 158 of file cons_decomp.cpp.

Referenced by SCIPincludeConshdlrDecomp().

#define FAST_LEVENSHTEIN_MAXMATRIXHALFPERIMETER   2000

deactivate levenshtein constraint classifier if nrows + ncols exceeds this value for emphasis fast

Definition at line 150 of file cons_decomp.cpp.

Referenced by setDetectionFast().

#define MAXNDECOMPS   5000

indicates whether to create a decomposition with all constraints in the master if no other specified

Definition at line 104 of file cons_decomp.cpp.

Typedef Documentation

typedef gcg::Seeed* SeeedPtr

Definition at line 91 of file cons_decomp.cpp.

Enumeration Type Documentation

Enumerator
NO_MODIF 

parameter how to modify scores when comparing decompositions for original and presolved problem (which might differ in size)

FRACTION_OF_NNONZEROS 

no modification

FRACTION_OF_NROWS 

scores are weighted according to ratio of number nonzeros, the more the worse

FAVOUR_PRESOLVED 

scores are weighted according to ratio of number nonzeros, the more the worse decompositions for presolved problems are always favoured over decompositions of original problem

Definition at line 278 of file cons_decomp.cpp.

Function Documentation

SCIP_Real calcLogarithm ( SCIP_Real  val)

method to calcualte the log with base of 2

Definition at line 292 of file cons_decomp.cpp.

References SCIPconshdlrdataDecompUnselectAll().

Referenced by GCGprintMiplibBaseInformation().

SCIP_RETCODE DECconshdlrDecompSortDecompositionsByScore ( SCIP *  scip)

sort the finished decompositions according to the currently chosen score in the according datastructures for the presolved and original problem

Parameters
scipdata stucture
Returns
scip return code

Definition at line 5661 of file cons_decomp.cpp.

References CONSHDLR_NAME, and DECdetectStructure().

Referenced by SCIPconshdlrDecompGetNextSeeedID(), and SCIPconshdlrDecompUpdateSeeedlist().

char DECdetectorGetChar ( DEC_DETECTOR detector)

returns the character of the detector

Parameters
detectorpointer to detector

Definition at line 6643 of file cons_decomp.cpp.

References SCIPconshdlrDecompGetFinishedDecomps().

Referenced by gcg::Seeed::buildDecChainString(), DEChasDetectionRun(), and SCIPconshdlrDecompShowLegend().

DEC_DETECTORDATA* DECdetectorGetData ( DEC_DETECTOR detector)

returns the data of the provided detector

returns the data of the provided detector

Parameters
detectordetector data structure

Definition at line 3550 of file cons_decomp.cpp.

References SCIPconshdlrDecompGetNFormerDetectionConssForID().

Referenced by DEC_DECL_EXITDETECTOR(), DEC_DECL_FINISHSEEED(), DEC_DECL_FREEDETECTOR(), DEC_DECL_INITDETECTOR(), DEC_DECL_PROPAGATESEEED(), fromToolbox(), and SCIPconshdlrDecompGetNDecdecomps().

SCIP_RETCODE DECdetectStructure ( SCIP *  scip,
SCIP_RESULT *  result 
)

interface method to detect the structure including presolving

< collection of different variable class distributions

< collection of different constraint class distributions

< collection of different variable class distributions

< stores the corresponding scip constraints pointer

< seeeds that were found for the unpresolved problem

indicate wether only for the unpresolved problem the detection shpuld take place

get data of the seeedpool with original vars and conss

scip is not presolved yet => only detect for original problem

< seeedpool with original variables and constraints

get block number candidates and conslcassifier for original problem

detection for original problem

get the cons and var classifier for translating them later

detection for presolved problem

presolving removed all constraints or variables

start detection clocks

get block number candidates and translate orig classification and found seeeds (if any) to presolved problem

Parameters
scipSCIP data structure
resultResult pointer to indicate whether some structure was found

Definition at line 5693 of file cons_decomp.cpp.

References SCIP_ConshdlrData::candidatesNBlocks, CONSHDLR_NAME, DEC_DECMODE_ORIGINAL, DECwriteAllDecomps(), GCGgetDecompositionMode(), SCIP_ConshdlrData::onlylegacymode, SCIPconshdlrDecompAddLegacymodeDecompositions(), SCIPconshdlrDecompChooseCandidatesFromSelected(), and SCIPconshdlrDecompDetectBenders().

Referenced by DECconshdlrDecompSortDecompositionsByScore(), fromCommandLine(), and SCIP_DECL_DIALOGEXEC().

DEC_DETECTOR* DECfindDetector ( SCIP *  scip,
const char *  name 
)

searches for the detector with the given name and returns it or NULL if detector is not found

searches for the detector and returns it or returns NULL if detector is not found

Parameters
scipSCIP data structure
namename of the detector

Definition at line 3765 of file cons_decomp.cpp.

References CONSHDLR_NAME, and DECincludeDetector().

Referenced by DECdetectorGetName(), and DECincludeDetector().

SCIP_Real DECgetRemainingTime ( SCIP *  scip)

returns the remaining time of scip that the decomposition may use

returns the remaining time of scip that the decomposition may use

Parameters
scipSCIP data structure

Definition at line 3976 of file cons_decomp.cpp.

References SCIPconshdlrDecompArePricingprobsIdenticalForSeeedid().

Referenced by callMetis(), and DECincludeDetector().

SCIP_RETCODE DECgetSeeedToWrite ( SCIP *  scip,
SCIP_Bool  transformed,
SEEED_WRAPPER seeedwrapper 
)

returns the Seeed ID of the best Seeed if available and -1 otherwise

Parameters
scipSCIP data structure
seeedwrapperseeed wrapper to output

Definition at line 6518 of file cons_decomp.cpp.

References CONSHDLR_NAME, DECprintListOfDetectors(), SCIPconshdlrDecompChooseCandidatesFromSelected(), Seeed_Wrapper::seeed, and gcg::transformed.

Referenced by DECgetBestDecomp(), and SCIP_DECL_READERWRITE().

SCIP_Bool DEChasDetectionRun ( SCIP *  scip)

returns whether the detection has been performed

Parameters
scipSCIP data structure

Definition at line 6624 of file cons_decomp.cpp.

References CONSHDLR_NAME, and DECdetectorGetChar().

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPconshdlrDecompGetCurrScoretype().

SCIP_RETCODE DECincludeDetector ( SCIP *  scip,
const char *  name,
const char  decchar,
const char *  description,
int  freqCallRound,
int  maxCallRound,
int  minCallRound,
int  freqCallRoundOriginal,
int  maxCallRoundOriginal,
int  minCallRoundOriginal,
int  priority,
SCIP_Bool  enabled,
SCIP_Bool  enabledOriginal,
SCIP_Bool  enabledFinishing,
SCIP_Bool  enabledPostprocessing,
SCIP_Bool  skip,
SCIP_Bool  usefulRecall,
SCIP_Bool  legacymode,
DEC_DETECTORDATA detectordata,
DEC_DECL_DETECTSTRUCTURE((*detectStructure))  ,
DEC_DECL_FREEDETECTOR((*freeDetector))  ,
DEC_DECL_INITDETECTOR((*initDetector))  ,
DEC_DECL_EXITDETECTOR((*exitDetector))  ,
DEC_DECL_PROPAGATESEEED((*propagateSeeedDetector))  ,
DEC_DECL_PROPAGATEFROMTOOLBOX((*propagateFromToolboxDetector))  ,
DEC_DECL_FINISHFROMTOOLBOX((*finishFromToolboxDetector))  ,
DEC_DECL_FINISHSEEED((*finishSeeedDetector))  ,
DEC_DECL_POSTPROCESSSEEED((*postprocessSeeedDetector))  ,
DEC_DECL_SETPARAMAGGRESSIVE((*setParamAggressiveDetector))  ,
DEC_DECL_SETPARAMDEFAULT((*setParamDefaultDetector))   
)

includes one detector

includes the detector

Parameters
scipSCIP data structure
namename of the detector
decchardisplay character of the detector
descriptiondescription of the detector
maxCallRoundfrequency 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
minCallRoundlast round the detector gets called
freqCallRoundOriginalfirst round the detector gets called (offset in detection loop)
maxCallRoundOriginalfrequency the detector gets called in detection loop while detecting of the original problem
minCallRoundOriginallast round the detector gets called while detecting of the original problem
priorityfirst round the detector gets called (offset in detection loop) while detecting of the original problem priority of the detector
enabledwhether the detector should be enabled by default
enabledOriginalwhether the detector should be enabled by default for detecting the original problem
enabledFinishingwhether the finishing should be enabled
enabledPostprocessingwheteher the postprocessing should be enabled
skipwhether the detector should be skipped if others found structure
legacymodeis it useful to call this detector on a descendant of the propagated seeed whether (old) DETECTSTRUCTURE method should also be used for detection
detectordatathe associated detector data (or NULL)

Definition at line 3796 of file cons_decomp.cpp.

References CONSHDLR_NAME, DECfindDetector(), and DECgetRemainingTime().

Referenced by DECfindDetector(), SCIPincludeDetectorColors(), SCIPincludeDetectorCompgreedily(), SCIPincludeDetectorConnected(), SCIPincludeDetectorConnected_noNewLinkingVars(), SCIPincludeDetectorConnectedbase(), SCIPincludeDetectorConsclass(), SCIPincludeDetectorConsname(), SCIPincludeDetectorConstype(), SCIPincludeDetectorCutpacking(), SCIPincludeDetectorDBSCAN(), SCIPincludeDetectorDensemasterconss(), SCIPincludeDetectorGeneralmastersetcover(), SCIPincludeDetectorGeneralmastersetpack(), SCIPincludeDetectorGeneralmastersetpart(), SCIPincludeDetectorIsomorphism(), SCIPincludeDetectorMastersetcover(), SCIPincludeDetectorMastersetpack(), SCIPincludeDetectorMastersetpart(), SCIPincludeDetectorMCL(), SCIPincludeDetectorMST(), SCIPincludeDetectorPostprocess(), SCIPincludeDetectorRandom(), SCIPincludeDetectorStaircase(), SCIPincludeDetectorStaircaseLsp(), SCIPincludeDetectorStairheur(), and SCIPincludeDetectorVarclass().

void DECprintListOfDetectors ( SCIP *  scip)

writes out a list of all detectors

Parameters
scipSCIP data structure

Definition at line 6569 of file cons_decomp.cpp.

References CONSHDLR_NAME, SCIP_ConshdlrData::ndetectors, and SCIPconshdlrDecompGetCurrScoretype().

Referenced by DECgetSeeedToWrite(), and SCIP_DECL_DIALOGEXEC().

SCIP_RETCODE DECwriteAllDecomps ( SCIP *  scip,
char *  directory,
char *  extension,
SCIP_Bool  original,
SCIP_Bool  presolved 
)

interface method to detect the structure writes all finished decompositions

write presolved decomps

write orig decomps

Parameters
scipSCIP data structure
directorydirectory for decompositions
extensionextension for decompositions
originalshould decomps for original problem be written
presolvedshould decomps for preoslved problem be written

Definition at line 5996 of file cons_decomp.cpp.

References CONSHDLR_NAME, GCGdetectionTookPlace(), MiscVisualization::GCGgetVisualizationFilename(), gcg::Seeedpool::getFinishedSeeed(), and gcg::original.

Referenced by DECdetectStructure(), and writeAllDecompositions().

SCIP_RETCODE DECwriteFamilyTree ( SCIP *  scip,
const char *  filename,
const char *  workfolder,
int  ndecompositions,
SCIP_Bool  draft 
)

write family tree

Parameters
scipSCIP data structure
filenamefilename the output should be written to (including directory)
workfolderdirectory in which should be worked
ndecompositionsthe number of (complete) decompositions in order of a certain measure (atm: max white)
draftdraft mode will not visualize non-zeros but is faster and takes less memory

Definition at line 6333 of file cons_decomp.cpp.

References CONSHDLR_NAME, GCGwriteTexFamilyTree(), SCIP_ConshdlrData::listall, SCIPconshdlrDecompExistsSelected(), SCIPconshdlrDecompUpdateSeeedlist(), SCIPconshdlrDecompWriteDec(), Seeed_Wrapper::seeed, and SCIP_ConshdlrData::selected.

Referenced by SCIPconshdlrDecompGetAllRelevantSeeeds(), and writeFamilyTree().

SCIP_Bool finishnextchild ( std::vector< int > &  childs,
std::vector< SCIP_Bool > &  childsfinished,
int  child 
)
Returns
is nextchild the last unfinished child

Definition at line 498 of file cons_decomp.cpp.

References SCIPconshdlrDecompAddCompleteSeeedForUnpresolved().

Referenced by getfirstunfinishedchildid().

SCIP_Bool GCGdetectionTookPlace ( SCIP *  scip)
SCIP_RETCODE GCGgetCurrentSeeedpools ( SCIP *  scip,
SEEED_WRAPPER seeedpoolwr,
SEEED_WRAPPER seeedpoolunpresolvedwr 
)

returns wrapped Seeedpools

Parameters
scipSCIP data structure
seeedpoolwrwrapper for presolved output Seeedpool (or NULL)
seeedpoolunpresolvedwrwrapper for unpresolved output Seeedpool (or NULL)

Definition at line 7147 of file cons_decomp.cpp.

References GCGprintBlockcandidateInformation(), and Seeed_Wrapper::seeedpool.

Referenced by GCGgetSeeedFromID(), and MiscVisualization::GCGgetSeeedpoolForSeeed().

SCIP_RETCODE GCGgetSeeedFromID ( SCIP *  scip,
int *  seeedid,
SEEED_WRAPPER seeedwr 
)

returns wrapped Seeed with given id

Parameters
scipSCIP data structure
seeedidid of Seeed
seeedwrwrapper for output Seeed

Definition at line 7131 of file cons_decomp.cpp.

References GCGgetCurrentSeeedpools(), SCIPconshdlrDecompGetSeeed(), and Seeed_Wrapper::seeed.

Referenced by GCGsetDetection(), GCGwriteGpVisualization(), GCGwriteTexReport(), and GCGwriteTexVisualization().

SCIP_RETCODE GCGprintBlockcandidateInformation ( SCIP *  scip,
FILE *  file 
)

prints blockcandiateinformation in following format: NCANDIDATES CANDIDATE : NVOTES for each candidate

Parameters
scipSCIP data structure
fileoutput file or NULL for standard output

Definition at line 7180 of file cons_decomp.cpp.

References CONSHDLR_NAME, GCGprintCompleteDetectionTime(), gcg::Seeedpool::printBlockcandidateInformation(), and SCIP_ConshdlrData::seeedpool.

Referenced by GCGgetCurrentSeeedpools(), GCGprintCompleteDetectionStatistics(), and SCIP_DECL_DIALOGEXEC().

SCIP_RETCODE GCGprintClassifierInformation ( SCIP *  scip,
FILE *  file 
)

prints classifier information in following format: NCLASSIFIER CLASSIFIERNAME for each classifier NCLASSES CLASSNAME for each class NMEMBERS

Parameters
scipSCIP data structure
fileoutput file or NULL for standard output

Definition at line 7225 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::printClassifierInformation(), SCIPconshdlrDecompGetSelectedSeeeds(), and SCIP_ConshdlrData::seeedpool.

Referenced by GCGprintCompleteDetectionStatistics(), and GCGprintCompleteDetectionTime().

SCIP_RETCODE GCGprintCompleteDetectionTime ( SCIP *  givenscip,
FILE *  file 
)
Parameters
givenscipSCIP data structure
fileoutput file or NULL for standard output

Definition at line 7204 of file cons_decomp.cpp.

References GCGprintClassifierInformation(), and SCIPconshdlrDecompGetCompleteDetectionTime().

Referenced by GCGprintBlockcandidateInformation(), and GCGprintCompleteDetectionStatistics().

SCIP_RETCODE GCGprintDecompInformation ( SCIP *  scip,
FILE *  file 
)

prints blockcandiateinformation in following format: NDECOMPS NBLOCKS for each decomp NCONSS for each block NVARS endfor each block NMASTERCONSS NLINKINGVARS NMASTERVARS NSTAIRLINKINGVARS MAXWHITESCORE CLASSICALSCORE HASSETPARTITIONINGMASTER NDETECTORS DETECTORNAME for each detector NCONSCLASSIFIERS CONSCLASSIFIERNAME for each consclassifier nCLASSESMASTER CLASSNAME for each class NVARCLASSIFIERS VARCLASSIFIERNAME for each varclassifier nCLASSESMASTER CLASSNAME for each class

Parameters
scipSCIP data structure
fileoutput file or NULL for standard output

Definition at line 7302 of file cons_decomp.cpp.

References CLASSIC, CONSHDLR_NAME, DECdetectorGetName(), GCGprintMiplibBaseInformation(), gcg::Seeed::getDetectorchainVector(), gcg::Seeed::getMaxWhiteScore(), gcg::Seeed::getNBlocks(), gcg::Seeed::getNConssForBlock(), gcg::Seeed::getNLinkingvars(), gcg::Seeed::getNMasterconss(), gcg::Seeed::getNMastervars(), gcg::Seeed::getNTotalStairlinkingvars(), gcg::Seeed::getNVarsForBlock(), gcg::Seeed::getScore(), gcg::Seeed::hasSetppccardMaster(), MAX_FORESSEEING_WHITE, gcg::Seeed::printClassifierInformation(), and SCIPconshdlrDecompUpdateSeeedlist().

Referenced by GCGprintCompleteDetectionStatistics(), and SCIPconshdlrDecompGetSelectedSeeeds().

SCIP_RETCODE GCGprintDetectorStatistics ( SCIP *  scip,
FILE *  file 
)

display statistics about detectors

Parameters
scipSCIP data structure
fileoutput file or NULL for standard output

Definition at line 6772 of file cons_decomp.cpp.

References CONSHDLR_NAME, DECdecompGetNBlocks(), and setDetectionDefault().

Referenced by GCGprintStatistics(), and SCIPconshdlrDecompGetNSeeeds().

SCIP_RETCODE GCGprintMiplibBaseInformation ( SCIP *  scip,
FILE *  file 
)

write base information

log nconss

log nvars

log nnonzeros

log ratio conss vs vars

density of matrix

density of objective

density of lower bound

density of upper bound

density of rhs

percentage of Binary, Integer, Continuous Variables

ratio becomes difference according logarithm rules

Definition at line 7366 of file cons_decomp.cpp.

References calcLogarithm(), CONSHDLR_NAME, GCGconsGetLhs(), GCGconsGetNVars(), GCGconsGetRhs(), GCGconsGetVals(), GCGgetFilename(), GCGgetMasterprob(), GCGprintMiplibBaseInformationHeader(), gcg::Seeedpool::getNTotalConss(), gcg::Seeedpool::getNTotalNonzeros(), gcg::Seeedpool::getNVars(), and SCIP_ConshdlrData::seeedpool.

Referenced by GCGprintDecompInformation(), and GCGprintMiplibStructureInformation().

SCIP_RETCODE GCGprintMiplibBaseInformationHeader ( SCIP *  scip,
FILE *  file 
)

write base information header

Definition at line 7598 of file cons_decomp.cpp.

References GCGgetMasterprob(), and GCGprintMiplibConnectedInformation().

Referenced by GCGprintMiplibBaseInformation(), and GCGprintMiplibStructureInformation().

SCIP_RETCODE GCGprintOptionalOutput ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr 
)

check setting for optional output

Parameters
dialoghdlrdialog handler

Definition at line 7884 of file cons_decomp.cpp.

References GCGprintMiplibStructureInformation().

Referenced by GCGprintMiplibDecompInformation(), and SCIP_DECL_DIALOGEXEC().

SCIP_RETCODE GCGsetDetection ( SCIP *  scip,
SCIP_PARAMSETTING  paramsetting,
SCIP_Bool  quiet 
)

sets detector parameters values to

  • SCIP_PARAMSETTING_DEFAULT which are the default values of all detector parameters
  • SCIP_PARAMSETTING_FAST such that the time spend for detection is decreased
  • SCIP_PARAMSETTING_AGGRESSIVE such that the detectors produce more decompositions
  • SCIP_PARAMSETTING_OFF which turns off all detection
Parameters
scipSCIP data structure
paramsettingparameter settings
quietshould the parameter be set quiet (no output)

Definition at line 7089 of file cons_decomp.cpp.

References CONSHDLR_NAME, GCGgetSeeedFromID(), setDetectionAggressive(), setDetectionDefault(), setDetectionFast(), and setDetectionOff().

Referenced by SCIP_DECL_DIALOGEXEC(), and setDetectionFast().

int getfirstunfinishedchild ( std::vector< SCIP_Bool > const &  childsfinished,
std::vector< int > const &  childs 
)

help method for writing family trees

Returns
first unfinished child of given childs

Definition at line 466 of file cons_decomp.cpp.

References getfirstunfinishedchildid().

Referenced by unfinishedchildexists().

int getfirstunfinishedchildid ( std::vector< SCIP_Bool > const &  childsfinished,
std::vector< int > const &  childs 
)

help method for writing family trees

Definition at line 484 of file cons_decomp.cpp.

References finishnextchild().

Referenced by getfirstunfinishedchild().

static SCIP_DECL_CONSCHECK ( consCheckDecomp  )
static

feasibility check method of constraint handler for integral solutions

Definition at line 989 of file cons_decomp.cpp.

References SCIP_DECL_CONSLOCK().

Referenced by SCIP_DECL_CONSENFOPS().

static SCIP_DECL_CONSENFOLP ( consEnfolpDecomp  )
static

constraint enforcing method of constraint handler for LP solutions

Definition at line 973 of file cons_decomp.cpp.

References SCIP_DECL_CONSENFOPS().

Referenced by SCIP_DECL_CONSENFORELAX().

static SCIP_DECL_CONSENFOPS ( consEnfopsDecomp  )
static

constraint enforcing method of constraint handler for pseudo solutions

Definition at line 981 of file cons_decomp.cpp.

References SCIP_DECL_CONSCHECK().

Referenced by SCIP_DECL_CONSENFOLP().

static SCIP_DECL_CONSENFORELAX ( consEnforeDecomp  )
static

constraint enforcing method of constraint handler for LP solutions

Definition at line 964 of file cons_decomp.cpp.

References SCIP_DECL_CONSENFOLP().

Referenced by SCIP_DECL_CONSFREE().

static SCIP_DECL_CONSEXIT ( consExitDecomp  )
static

deinitialization method of constraint handler (called before transformed problem is freed)

Definition at line 849 of file cons_decomp.cpp.

References DECdecompFree(), SCIP_DECL_CONSFREE(), and SCIPconshdlrdataDecompUnselectAll().

Referenced by SCIP_DECL_CONSINIT().

static SCIP_DECL_CONSFREE ( consFreeDecomp  )
static

destructor of constraint handler to free constraint handler data (called when SCIP is exiting)

Definition at line 914 of file cons_decomp.cpp.

References DECdecompFree(), and SCIP_DECL_CONSENFORELAX().

Referenced by SCIP_DECL_CONSEXIT().

static SCIP_DECL_CONSINIT ( consInitDecomp  )
static

initialization method of constraint handler (called after problem was transformed)

Definition at line 818 of file cons_decomp.cpp.

References SCIP_DECL_CONSEXIT().

Referenced by sort_pred::operator()().

static SCIP_DECL_CONSLOCK ( consLockDecomp  )
static

variable rounding lock method of constraint handler

Definition at line 998 of file cons_decomp.cpp.

References SCIPincludeConshdlrDecomp().

Referenced by SCIP_DECL_CONSCHECK().

SCIP_RETCODE SCIPconshdlrdataDecompUnselectAll ( SCIP *  scip)

method to unselect all decompositions, called in consexit, and when the seeedlist is updated (especially if new (partial) are added )

Definition at line 302 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrdataGetScoretype().

Referenced by calcLogarithm(), SCIP_DECL_CONSEXIT(), and SCIPconshdlrDecompUpdateSeeedlist().

SCORETYPE SCIPconshdlrdataGetScoretype ( SCIP_CONSHDLRDATA *  conshdlrdata)
SCIP_Real SCIPconshdlrDecompAdaptScore ( SCIP *  scip,
SCIP_Real  oldscore 
)
SCIP_RETCODE SCIPconshdlrDecompAddBlockNumberCandidate ( SCIP *  scip,
int  blockNumberCandidate 
)

add block number user candidate (user candidates are prioritized over found ones)

Parameters
scipSCIP data structure
blockNumberCandidategiven block number candidate
Returns
SCIP return code
Parameters
scipSCIP data structure
blockNumberCandidatename of the variable

Definition at line 4677 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompGetNBlockNumberCandidates().

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPconshdlrDecompUserSeeedSetVarToMaster().

SCIP_RETCODE SCIPconshdlrDecompAddCompleteSeeedForPresolved ( SCIP *  scip,
SeeedPtr  seeed 
)
SCIP_RETCODE SCIPconshdlrDecompAddCompleteSeeedForUnpresolved ( SCIP *  scip,
SeeedPtr  seeed 
)

local method to handle store a seeed in the correct seeedpool

Definition at line 514 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeed::isComplete(), gcg::Seeed::isFromUnpresolved(), and SCIPconshdlrDecompAddCompleteSeeedForPresolved().

Referenced by finishnextchild(), and SCIPconshdlrDecompAddSeeed().

SCIP_RETCODE SCIPconshdlrDecompAddDecdecomp ( SCIP *  scip,
DEC_DECOMP decdecomp 
)

sets (and adds) the decomposition structure

sets (and adds) the decomposition structure; this method should only be called if there is no seeed for this decomposition

Parameters
scipSCIP data structure
decdecompDEC_DECOMP data structure

Definition at line 1315 of file cons_decomp.cpp.

References CONSHDLR_NAME, DECdecompFree(), DECdecompSetPresolved(), SCIPconshdlrDecompAddSeeed(), SCIPconshdlrDecompCreateSeeedpool(), and SCIPconshdlrDecompShowLegend().

Referenced by gcg::DialogReadGraphs< T, G >::DialogReadGraphs(), initRelaxator(), sort_pred::operator()(), SCIPconshdlrDecompShowListExtract(), and SCIPreadRef().

SCIP_RETCODE SCIPconshdlrDecompAddPartialSeeedForPresolved ( SCIP *  scip,
SeeedPtr  seeed 
)
SCIP_RETCODE SCIPconshdlrDecompAddPartialSeeedForUnpresolved ( SCIP *  scip,
SeeedPtr  seeed 
)
SCIP_RETCODE SCIPconshdlrDecompArePricingprobsIdenticalForSeeedid ( SCIP *  scip,
int  seeedid,
int  probnr1,
int  probnr2,
SCIP_Bool *  identical 
)

checks if two pricing problems are identical based on information from detection

Parameters
scipscip scip datta structure
seeedidseeedid id of the partial decompostion for which the pricing problems are checked for identity
probnr1index of first block to check
probnr2index of second block to check
identicalbool pointer to score the result of the check

Definition at line 3989 of file cons_decomp.cpp.

References gcg::Seeed::calcAggregationInformation(), CONSHDLR_NAME, gcg::Seeedpool::findFinishedSeeedByID(), gcg::Seeed::getNReps(), gcg::Seeed::getRepForBlock(), and SCIPconshdlrDecompCreateVarmapForSeeedId().

Referenced by DECgetRemainingTime(), and pricingprobsAreIdenticalFromDetectionInfo().

SCIP_RETCODE SCIPconshdlrDecompBlockNumberCandidateToSeeedpool ( SCIP *  scip,
SCIP_Bool  transformed 
)
Parameters
scipSCIP data structure

Definition at line 4774 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompUserSeeedSetVarToLinking().

Referenced by SCIPconshdlrDecompGetCompleteDetectionTime().

SCIP_Bool SCIPconshdlrDecompCheckConsistency ( SCIP *  scip)

1) the predecessors of all finished seeeds in both seeedpools can be found 2) selected list is syncron with selected information in seeeds 3) selected exists is syncronized with seleced list

this is a vector of seeed ids that should be living (living: there is no complete seeed having )

1) the predecessors of all finished seeeds in both seeedpools can be found

6) selected list is syncronized with selected information in seeeds

7) selected exists is syncronized with seleced list

Definition at line 5525 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeed::getAncestorID(), gcg::Seeedpool::getFinishedSeeed(), gcg::Seeed::getID(), gcg::Seeed::getNAncestors(), gcg::Seeed::isSelected(), SCIPconshdlrDecompGetNextSeeedID(), and SCIPconshdlrDecompGetSeeed().

Referenced by SCIP_DECL_DIALOGEXEC(), SCIPconshdlrDecompAddLegacymodeDecompositions(), SCIPconshdlrDecompPopulateSelected(), and SCIPconshdlrDecompUpdateSeeedlist().

SCIP_RETCODE SCIPconshdlrDecompChooseCandidatesFromSelected ( SCIP *  scip,
SCIP_Bool  updatelist 
)

initilizes the candidates data structures with selected seeeds (or all if there are no selected seeeds) and sort them according to the current scoretype

Parameters
scipSCIP data structure
updatelistwhether or not the seeed list should be updated
Returns
SCIP return code

if there are selected decomps, check if some of them needs to be finished and do so

get decomp candidates and calculate corresponding score (possibly weighted for unpresolved)

Definition at line 5228 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeed::getScore(), gcg::Seeed::isComplete(), gcg::Seeed::isFromUnpresolved(), SCIPconshdlrdataGetScoretype(), SCIPconshdlrDecompAdaptScore(), SCIPconshdlrDecompAddLegacymodeDecompositions(), and SCIPconshdlrDecompUpdateSeeedlist().

Referenced by DECdetectStructure(), DECgetBestDecomp(), DECgetSeeedToWrite(), GCGprintMiplibDecompInformation(), initRelaxator(), SCIP_DECL_DIALOGEXEC(), SCIPconshdlrDecompExecSelect(), SCIPconshdlrDecompExistsSelected(), and SCIPconshdlrDecompWriteDec().

SCIP_RETCODE SCIPconshdlrDecompCreateSeeedpoolUnpresolved ( SCIP *  scip)

creates the seeedpool for the unpresolved problem

creates the seeedpool

Parameters
scipSCIP data structure

Definition at line 3653 of file cons_decomp.cpp.

References CONSHDLR_NAME, SCIPconshdlrDecompDetectBenders(), and SCIPconshdlrDecompGetSeeedpoolUnpresolvedExtern().

Referenced by GCGwriteCls(), readBLKFile(), readDECFile(), SCIPconshdlrDecompCreateSeeedpool(), and SCIPconshdlrDecompPopulateSelected().

SCIP_RETCODE SCIPconshdlrDecompCreateUserSeeed ( SCIP *  scip,
SCIP_Bool  presolved,
SCIP_Bool  markedincomplete 
)

creates a user seeed for the problem

creates a user seeed for the presolved problem

Parameters
scipSCIP data structure
presolvedshould the user seeed be created for the presolved problem
markedincompleteboolean to notify that the created user decomposition is partial and should not be completed by assigning open constraints to the master

Definition at line 4164 of file cons_decomp.cpp.

References gcg::COMPLETED_CONSTOMASTER, CONSHDLR_NAME, gcg::Seeedpool::getNewIdForSeeed(), gcg::PARTIAL, SCIPconshdlrDecompUnpresolvedUserSeeedAdded(), SCIPconshdlrDecompUserSeeedFlush(), and gcg::Seeed::setIsFromUnpresolved().

Referenced by readBLKFile(), readDECFile(), and SCIPconshdlrDecompCreateVarmapForSeeedId().

SCIP_RETCODE SCIPconshdlrDecompCreateVarmapForSeeedId ( SCIP *  scip,
SCIP_HASHMAP **  hashorig2pricingvar,
int  seeedid,
int  probnr1,
int  probnr2,
SCIP *  scip1,
SCIP *  scip2,
SCIP_HASHMAP *  varmap 
)

for two identical pricing problems a corresponding varmap is created

for two identical pricing problems a corresponding varmap is created

find index in representatives

blockid1 should be the representative

Parameters
hashorig2pricingvarmapping from orig to pricingvar

Definition at line 4040 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::findFinishedSeeedByID(), GCGpricingVarGetOriginalVar(), gcg::Seeed::getBlocksForRep(), gcg::Seeedpool::getIndexForVar(), gcg::Seeed::getRepForBlock(), gcg::Seeed::getRepVarmap(), gcg::Seeedpool::getVarForIndex(), gcg::Seeed::getVarProbindexForBlock(), gcg::Seeed::getVarsForBlock(), and SCIPconshdlrDecompCreateUserSeeed().

Referenced by pricingprobsAreIdenticalFromDetectionInfo(), and SCIPconshdlrDecompArePricingprobsIdenticalForSeeedid().

int SCIPconshdlrDecompDecreaseAndGetNCallsCreateDecomp ( SCIP *  scip)

decreases the counter for created decompositions and returns it

debug method

Parameters
scipSCIP data structure

Definition at line 3735 of file cons_decomp.cpp.

References CONSHDLR_NAME, and DECdetectorGetName().

Referenced by DECdecompFree(), and SCIPconshdlrDecompIncreaseAndGetNCallsCreateDecomp().

SCIP_RETCODE SCIPconshdlrDecompExecSelect ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompExecToolbox ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)

method to handle and moderate user input for creating new decompositions and modifying existing decompositions by the user

Parameters
scipSCIP data structure
dialoghdlrdialog handler to handle user input
dialogdialog to handle user input
Returns
SCIP return code

Do user want to modify existing or create a new partial decomposition ?

case distinction:

1) update list of interesting seeeds

2) while user has not aborted: show current list extract

case distinction:

case distinction:

curruserseeed is ready to modify

case distinction:

Definition at line 3119 of file cons_decomp.cpp.

References gcg::Seeedpool::addSeeedToFinished(), gcg::Seeedpool::addSeeedToIncomplete(), CONSHDLR_NAME, SCIPconshdlrDecompCreateSeeedpool(), SCIPconshdlrDecompDetectBenders(), SCIPconshdlrDecompGetDecdecomps(), SCIPconshdlrDecompGetNextSeeedID(), SCIPconshdlrDecompModifyNVisualized(), SCIPconshdlrDecompSelectVisualize(), SCIPconshdlrDecompSelectVisualizeCurrentUserSeeed(), SCIPconshdlrDecompShowCurrUserSeeedInfo(), SCIPconshdlrDecompShowHelp(), SCIPconshdlrDecompShowListExtract(), SCIPconshdlrDecompShowListExtractHeader(), SCIPconshdlrDecompShowToolboxInfo(), SCIPconshdlrDecompToolboxChoose(), SCIPconshdlrDecompToolboxFinishSeeed(), SCIPconshdlrDecompToolboxModifyConss(), SCIPconshdlrDecompToolboxModifyVars(), SCIPconshdlrDecompToolboxPostprocessSeeed(), SCIPconshdlrDecompToolboxPropagateSeeed(), SCIPconshdlrDecompUpdateSeeedlist(), and SCIP_ConshdlrData::seeedpool.

Referenced by SCIP_DECL_DIALOGEXEC(), SCIPconshdlrDecompExecSelect(), and SCIPconshdlrDecompExecToolboxCreate().

SCIP_RETCODE SCIPconshdlrDecompExecToolboxCreate ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_Bool SCIPconshdlrDecompExistsSelected ( SCIP *  scip)

returns if there is a decomposition that is currently selected by the user (done in explore menue)

Parameters
scipSCIP data structure
Returns
TRUE if there is a decomposition that is currently selected by the user (done in explore menue)

Definition at line 5208 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompChooseCandidatesFromSelected().

Referenced by DECwriteFamilyTree(), SCIP_DECL_DIALOGEXEC(), SCIPconshdlrDecompHasCompleteDecomp(), and SCIPconshdlrDecompPopulateSelected().

SCIP_RETCODE SCIPconshdlrDecompExploreSelect ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompGetAllRelevantSeeeds ( SCIP *  scip,
SEEED_WRAPPER **  seeedswr,
int *  nseeeds 
)

gets an array of all seeeds that are currently considered relevant seeedswr output of the relevant seeeds (don't forget to free the individual wrappers after use) nseeeds amount of seeeds that are put in the array

Parameters
scipSCIP data structure
seeedswrseeed wrapper array for output
nseeedsnumber of seeeds in output

Definition at line 6232 of file cons_decomp.cpp.

References CONSHDLR_NAME, DECwriteFamilyTree(), gcg::Seeedpool::getAncestorSeeed(), gcg::Seeedpool::getFinishedSeeed(), Seeed_Wrapper::seeed, and Seeed_Wrapper::seeedpool.

Referenced by GCGwriteTexFamilyTree(), and SCIPconshdlrDecompNotifyFinishedNonFinalFreeTransform().

int SCIPconshdlrDecompGetBlockNumberCandidate ( SCIP *  scip,
int  index 
)

returns block number user candidate with given index

Parameters
scipSCIP data structure
indexindex of block number user candidate that should be returned
Returns
block number user candidate with given index
Parameters
scipSCIP data structure

Definition at line 4730 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompGetCompleteDetectionTime().

Referenced by SCIPconshdlrDecompGetNBlockNumberCandidates(), and gcg::Seeedpool::Seeedpool().

SCIP_Real SCIPconshdlrDecompGetCompleteDetectionTime ( SCIP *  scip)

returns the total detection time

Parameters
scipSCIP data structure
Returns
total detection time

Definition at line 4752 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompBlockNumberCandidateToSeeedpool().

Referenced by GCGprintCompleteDetectionTime(), and SCIPconshdlrDecompGetBlockNumberCandidate().

DEC_DECOMP** SCIPconshdlrDecompGetDecdecomps ( SCIP *  scip)

returns the decomposition structure

Parameters
scipSCIP data structure

Definition at line 3471 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::createDecompFromSeeed(), DECdecompFree(), gcg::Seeedpool::getFinishedSeeed(), and SCIPconshdlrDecompGetNDecdecomps().

Referenced by SCIPconshdlrDecompExecToolbox().

DEC_DETECTOR** SCIPconshdlrDecompGetDetectors ( SCIP *  scip)
DEC_DECOMP** SCIPconshdlrDecompGetFinishedDecomps ( SCIP *  scip)

gets all currently finished decomps Note: the array is allocated and needs to be freed after use!

atm presolved decomposition are allowed (for visualization, by family tree, write all decomps etc)

Definition at line 6656 of file cons_decomp.cpp.

References CONSHDLR_NAME, SCIP_ConshdlrData::ndecomps, and SCIPconshdlrDecompGetNFinishedDecomps().

Referenced by DECdetectorGetChar(), and reportAllDecompositions().

int SCIPconshdlrDecompGetNBlockNumberCandidates ( SCIP *  scip)

returns the number of block candidates given by the user

Parameters
scipSCIP data structures
Returns
number of block candidates given by the user
Parameters
scipSCIP data structure

Definition at line 4709 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompGetBlockNumberCandidate().

Referenced by SCIPconshdlrDecompAddBlockNumberCandidate(), and gcg::Seeedpool::Seeedpool().

int SCIPconshdlrDecompGetNDecdecomps ( SCIP *  scip)

returns the decomposition structure

Parameters
scipSCIP data structure

Definition at line 3521 of file cons_decomp.cpp.

References CONSHDLR_NAME, DECdetectorGetData(), and SCIP_ConshdlrData::ndecomps.

Referenced by SCIPconshdlrDecompGetDecdecomps().

int SCIPconshdlrDecompGetNDetectors ( SCIP *  scip)
int SCIPconshdlrDecompGetNextSeeedID ( SCIP *  scip)
int SCIPconshdlrDecompGetNFinishedDecomps ( SCIP *  scip)
int SCIPconshdlrDecompGetNFormerDetectionConssForID ( SCIP *  scip,
int  id 
)

returns the number of constraints that were active while detecting the decomposition originating from the seeed with the given id, this method is used to decide if the problem has changed since detection, if so the aggregation information needs to be recalculated

returns the number of conss that were active while detecting decomp originating from seeed with given id

seeed is not found hence we should not trust the isomorph information from detection

Parameters
scipSCIP data structure
idid of the seeed

Definition at line 3561 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::findFinishedSeeedByID(), gcg::Seeedpool::getNConss(), and SCIPconshdlrDecompGetSeeedpool().

Referenced by checkIdenticalBlocks(), and DECdetectorGetData().

SCIP_RETCODE SCIPconshdlrDecompgetNSeeeds ( SCIP *  scip,
int *  nseeeds 
)

Definition at line 4340 of file cons_decomp.cpp.

References SCIPconshdlrDecompUpdateSeeedlist().

Referenced by SCIPconshdlrDecompPopulateSelected().

int SCIPconshdlrDecompGetNSeeeds ( SCIP *  scip)
const char* SCIPconshdlrDecompGetPdfReader ( SCIP *  scip)

returns string name of the chosen pdf reader

see parameter visual/pdfreader

Parameters
scipscip data structure
Returns
returns string name of the chosen pdf reader

Definition at line 6166 of file cons_decomp.cpp.

References SCIPconshdlrDecompNotifyNonFinalFreeTransform().

Referenced by SCIPconshdlrDecompGetDetectors().

char* SCIPconshdlrDecompGetScoretypeDescription ( SCIP *  scip,
SCORETYPE  sctype 
)

returns the description of the given scoretype

@ param

Returns
description of the scoretype

set detector chain info string

Definition at line 401 of file cons_decomp.cpp.

References BENDERS, BORDER_AREA, CLASSIC, MAX_FORESEEING_AGG_WHITE, MAX_FORESSEEING_WHITE, MAX_WHITE, SETPART_AGG_FWHITE, SETPART_FWHITE, and unfinishedchildexists().

Referenced by SCIPconshdlrDecompGetScoretypeShortName(), and SCIPconshdlrDecompShowLegend().

char* SCIPconshdlrDecompGetScoretypeShortName ( SCIP *  scip,
SCORETYPE  sctype 
)
SeeedPtr SCIPconshdlrDecompGetSeeed ( SCIP *  scip,
int  seeedid 
)

local method to find a seeed for a given id or NULL if no seeed with such id is found

Definition at line 746 of file cons_decomp.cpp.

References SCIPconshdlrDecompGetSeeedFromPresolved(), and SCIPconshdlrDecompGetSeeedFromUnpresolved().

Referenced by GCGgetSeeedFromID(), SCIPconshdlrDecompCheckConsistency(), and SCIPconshdlrDecompGetSeeedFromUnpresolved().

SeeedPtr SCIPconshdlrDecompGetSeeedFromPresolved ( SCIP *  scip,
int  seeedid 
)

local method to find a seeed for a given id or NULL if no seeed with such id is found

Definition at line 659 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompGetSeeedFromUnpresolved().

Referenced by SCIPconshdlrDecompAddSeeed(), and SCIPconshdlrDecompGetSeeed().

SeeedPtr SCIPconshdlrDecompGetSeeedFromUnpresolved ( SCIP *  scip,
int  seeedid 
)

local method to find a seeed for a given id or NULL if no seeed with such id is found

Definition at line 704 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompGetSeeed().

Referenced by SCIPconshdlrDecompGetSeeed(), and SCIPconshdlrDecompGetSeeedFromPresolved().

gcg::Seeedpool* SCIPconshdlrDecompGetSeeedpool ( SCIP *  scip)

returns the seeedpool

Parameters
scipSCIP data structure

Definition at line 3598 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompGetSeeedpoolUnpresolved().

Referenced by SCIPconshdlrDecompGetNFormerDetectionConssForID().

SEEEDPOOL_WRAPPER* SCIPconshdlrDecompGetSeeedpoolExtern ( SCIP *  scip)

help method to access seeedpool for transformed problem : consider deleting this method will be deleted if the corresponidng wrapper classes are introduced

: IMPORTANT this method will be deleted if the corresponidng wrapper classes are introduced

Parameters
scipSCIP data structure

Definition at line 3693 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompIncreaseAndGetNCallsCreateDecomp().

Referenced by cmpGraphPairNewdetection(), GCGwriteCls(), and SCIPconshdlrDecompGetSeeedpoolUnpresolvedExtern().

gcg::Seeedpool* SCIPconshdlrDecompGetSeeedpoolUnpresolved ( SCIP *  scip)

returns the seeedpool for the unpresolved problem

Parameters
scipSCIP data structure

Definition at line 3615 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompCreateSeeedpool().

Referenced by SCIPconshdlrDecompGetSeeedpool().

SEEEDPOOL_WRAPPER* SCIPconshdlrDecompGetSeeedpoolUnpresolvedExtern ( SCIP *  scip)

help method to access seeedpool for unpresolved problem : consider deleting this method will be deleted if the corresponidng wrapper classes are introduced

: IMPORTANT this method will be deleted if the corresponidng wrapper classes are introduced

Parameters
scipSCIP data structure

Definition at line 3673 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompGetSeeedpoolExtern().

Referenced by cmpGraphPairNewdetection(), GCGwriteCls(), and SCIPconshdlrDecompCreateSeeedpoolUnpresolved().

SCIP_RETCODE SCIPconshdlrDecompGetSelectedSeeeds ( SCIP *  scip,
int **  output,
int *  outputsize 
)

gets the ids of all selected seeeds

Parameters
scipSCIP data structure
outputarray to put ids into
outputsizesize of output

Definition at line 7247 of file cons_decomp.cpp.

References CONSHDLR_NAME, and GCGprintDecompInformation().

Referenced by GCGprintClassifierInformation().

SCIP_Bool SCIPconshdlrDecompHasCompleteDecomp ( SCIP *  scip)

returns TRUE iff there is at least one full decompositions

Definition at line 5187 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompExistsSelected().

Referenced by SCIPconshdlrDecompHasDecomp().

SCIP_Bool SCIPconshdlrDecompHasDecomp ( SCIP *  scip)

returns whether or not there exists at least one (com[plete or incomplete) decomposition

Parameters
scipSCIP data structure
Returns
TRUE if there exists at least one (com[plete or incomplete) decomposition

Definition at line 5163 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompHasCompleteDecomp().

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPconshdlrDecompAdaptScore().

int SCIPconshdlrDecompIncreaseAndGetNCallsCreateDecomp ( SCIP *  scip)

counts up the counter for created decompositions and returns it

debug method

Parameters
scipSCIP data structure

Definition at line 3716 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompDecreaseAndGetNCallsCreateDecomp().

Referenced by DECdecompCreate(), and SCIPconshdlrDecompGetSeeedpoolExtern().

SCIP_Bool SCIPconshdlrDecompIsBestCandidateUnpresolved ( SCIP *  scip)
SCIP_RETCODE SCIPconshdlrDecompModifyNVisualized ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompNotifyFinishedNonFinalFreeTransform ( SCIP *  scip)

used after calling SCIPfreeTransform() if called to revoke presolving (e.g. if unpresolved decomposition is used, and transformation is not successful), this seems mandatory to decide during consExitDecomp if the original detection information should be freed

Parameters
scipdata structure
Returns
scip return code

Definition at line 6205 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompGetAllRelevantSeeeds().

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPconshdlrDecompNotifyNonFinalFreeTransform().

SCIP_RETCODE SCIPconshdlrDecompNotifyNonFinalFreeTransform ( SCIP *  scip)

used before calling SCIPfreeTransform(),, if called to revoke presolving (e.g. if unpresolved decomposition is used, and transformation is not successful), this seems mandatory to decide during consExitDecomp if the original detection information should be freed

Parameters
scipdata structure
Returns
scip return code

Definition at line 6185 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompNotifyFinishedNonFinalFreeTransform().

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPconshdlrDecompGetPdfReader().

SCIP_RETCODE SCIPconshdlrDecompPopulateSelected ( SCIP *  scip)

populate datastructures with incomplete decompositions (e.g. that were given by the user) to complete them during detection loop

Parameters
scipSCIP data structure
Returns
SCIP return code

check existence of seeedpools

get unfinished unpresolved

enable orig detection if there are unpresolved decompostions

get unfinished presolved

clear old seeds

populate unpresolved

populate presolved

Definition at line 4256 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::getIncompleteSeeed(), gcg::Seeed::getUsergiven(), gcg::Seeed::isComplete(), gcg::Seeed::isSelected(), gcg::NOT, SCIPconshdlrDecompCheckConsistency(), SCIPconshdlrDecompCreateSeeedpool(), SCIPconshdlrDecompCreateSeeedpoolUnpresolved(), SCIPconshdlrDecompExistsSelected(), SCIPconshdlrDecompgetNSeeeds(), SCIP_ConshdlrData::selectedexists, and gcg::Seeed::setIsFromUnpresolved().

Referenced by SCIPconshdlrDecompUnpresolvedSeeedExists().

SCIP_RETCODE SCIPconshdlrDecompSelectCalcStrongDecompositionScore ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)

Calculates and displays the strong decomposition score for this decomposition in a dialog.

Definition at line 1563 of file cons_decomp.cpp.

References gcg::Seeedpool::calcStrongDecompositionScore(), CONSHDLR_NAME, SCIPconshdlrDecompSelectInspect(), and SCIP_ConshdlrData::seeedpool.

Referenced by SCIPconshdlrDecompExecSelect(), and SCIPconshdlrDecompSelectVisualize().

SCIP_RETCODE SCIPconshdlrDecompSelectInspect ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)

Displays information about a seeed that is chosen by the user in a dialog.

Definition at line 1622 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompSelectVisualizeCurrentUserSeeed().

Referenced by SCIPconshdlrDecompExecSelect(), and SCIPconshdlrDecompSelectCalcStrongDecompositionScore().

SCIP_RETCODE SCIPconshdlrDecompSelectVisualize ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompSelectVisualizeCurrentUserSeeed ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompShowCurrUserSeeedInfo ( SCIP *  scip)
SCIP_RETCODE SCIPconshdlrDecompShowHelp ( SCIP *  scip)
SCIP_RETCODE SCIPconshdlrDecompShowToolboxInfo ( SCIP *  scip)
SCIP_RETCODE SCIPconshdlrDecompToolboxChoose ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompToolboxFinishSeeed ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompToolboxModifyConss ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompToolboxModifyFinish ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompToolboxModifyVars ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompToolboxPostprocessSeeed ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompToolboxPropagateSeeed ( SCIP *  scip,
SCIP_DIALOGHDLR *  dialoghdlr,
SCIP_DIALOG *  dialog 
)
SCIP_RETCODE SCIPconshdlrDecompTranslateAndAddCompleteUnpresolvedSeeeds ( SCIP *  scip,
SCIP_Bool *  success 
)

translates unpresolved seeed to a complete presolved one

Parameters
scipSCIP data structure
successat least one unpresolved seeed could not be translated in a complete presolved one
Returns
SCIP return code
Parameters
scipSCIP data structure
successat least one unpresolved seeed coud be tranlsate in a complete presolved one

Definition at line 5027 of file cons_decomp.cpp.

References gcg::Seeed::checkConsistency(), CONSHDLR_NAME, gcg::Seeedpool::getFinishedSeeed(), gcg::Seeedpool::getNFinishedSeeeds(), gcg::Seeed::isComplete(), gcg::Seeedpool::prepareSeeed(), SCIPconshdlrDecompAdaptScore(), SCIPconshdlrDecompAddCompleteSeeedForPresolved(), SCIPconshdlrDecompAddPartialSeeedForPresolved(), SCIPconshdlrDecompCreateSeeedpool(), SCIP_ConshdlrData::seeedpool, SCIP_ConshdlrData::seeedpoolunpresolved, and gcg::Seeedpool::translateSeeeds().

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPconshdlrDecompUserSeeedReject().

SCIP_Bool SCIPconshdlrDecompUnpresolvedSeeedExists ( SCIP *  scip)

returns whether or not an unpresolved (untransformed) decompositions exists in the data structures

Parameters
scipSCIP data structure
Returns
SCIP return code
Parameters
scipSCIP data structure

Definition at line 4228 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompPopulateSelected().

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPconshdlrDecompUnpresolvedUserSeeedAdded().

SCIP_Bool SCIPconshdlrDecompUnpresolvedUserSeeedAdded ( SCIP *  scip)

returns whether or not an unpresolved (untransformed) decompositions was given by the user

Parameters
scipSCIP data structure
Returns
true iff an unpresolved (untransformed) decompositions was given by the user
Parameters
scipSCIP data structure

Definition at line 4208 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompUnpresolvedSeeedExists().

Referenced by SCIPconshdlrDecompCreateUserSeeed().

SCIP_RETCODE SCIPconshdlrDecompUpdateSeeedlist ( SCIP *  scip)

method to update the list of incomplete decompositions in "explore" submenue ( this list changes due to new decompositions, modified, decompositions or changes of the score

Parameters
scipSCIP data structure
Returns
SCIP return code

sort decomposition and finished seeeds according to max white score

add seeeds to list

1) add presolved finished

2) add presolved unfinished

3) add unpresolved finished

4) add unpresolved partial

Definition at line 4349 of file cons_decomp.cpp.

References CONSHDLR_NAME, DECconshdlrDecompSortDecompositionsByScore(), gcg::Seeedpool::getFinishedSeeed(), gcg::Seeedpool::getIncompleteSeeed(), SCIPconshdlrdataDecompUnselectAll(), SCIPconshdlrDecompCheckConsistency(), SCIPconshdlrDecompUserSeeedSetnumberOfBlocks(), and gcg::Seeed::setIsFromUnpresolved().

Referenced by DECwriteFamilyTree(), GCGprintDecompInformation(), SCIPconshdlrDecompChooseCandidatesFromSelected(), SCIPconshdlrDecompExecSelect(), SCIPconshdlrDecompExecToolbox(), SCIPconshdlrDecompExecToolboxModify(), and SCIPconshdlrDecompgetNSeeeds().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedFlush ( SCIP *  scip)

finalizes and flushes the current user seeed, i.e. consider implicits, calc hashvalue, construct decdecomp if complete etc

finalizes and flushes the current user seeed, i.e. consider implicits, calc hashvalue, construct decdecomp if complete etc

stems from presolved problem?

stems from unpresolved problem

set statistics

Parameters
scipSCIP data structure

Definition at line 4844 of file cons_decomp.cpp.

References gcg::Seeed::bookAsMasterCons(), gcg::Seeed::buildDecChainString(), gcg::Seeed::checkConsistency(), gcg::COMPLETE, gcg::COMPLETED_CONSTOMASTER, CONSHDLR_NAME, gcg::Seeed::considerImplicits(), gcg::Seeed::flushBooked(), gcg::Seeed::getNOpenconss(), gcg::Seeed::getOpenconss(), gcg::Seeed::isFromUnpresolved(), MAX_WHITE, gcg::PARTIAL, gcg::Seeedpool::prepareSeeed(), SCIPconshdlrDecompAddCompleteSeeedForPresolved(), SCIPconshdlrDecompAddPartialSeeedForPresolved(), SCIPconshdlrDecompUserSeeedReject(), gcg::Seeed::setSeeedpool(), and gcg::Seeed::shouldCompletedByConsToMaster().

Referenced by fillDecompStruct(), readDECFile(), SCIPconshdlrDecompCreateUserSeeed(), SCIPconshdlrDecompToolboxActOnSeeed(), and SCIPconshdlrDecompUserSeeedSetVarToLinking().

SCIP_Bool SCIPconshdlrDecompUserSeeedIsActive ( SCIP *  scip)

returns whether there is an user seeed that is currently worked on

returns whether there is an user seeed

Parameters
scipSCIP data structure

Definition at line 4459 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompUserSeeedSetConsDefaultMaster().

Referenced by SCIPconshdlrDecompUserSeeedSetnumberOfBlocks().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedReject ( SCIP *  scip)

rejects and deletes the current user seeed

deletes the current user seer

Parameters
scipSCIP data structure

Definition at line 4993 of file cons_decomp.cpp.

References CONSHDLR_NAME, and SCIPconshdlrDecompTranslateAndAddCompleteUnpresolvedSeeeds().

Referenced by readDECFile(), and SCIPconshdlrDecompUserSeeedFlush().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetConsDefaultMaster ( SCIP *  scip,
SCIP_Bool  consdefaulttomaster 
)

set the user given information of the current user seeed according consdefaultmaster (if TRUE all open constraints are set to master )

sets the number of blocks

Parameters
scipSCIP data structure
consdefaulttomasterare not specified constraints set to master for default

Definition at line 4481 of file cons_decomp.cpp.

References gcg::COMPLETED_CONSTOMASTER, CONSHDLR_NAME, SCIPconshdlrDecompUserSeeedSetConsToBlock(), and gcg::Seeed::setUsergiven().

Referenced by SCIPconshdlrDecompUserSeeedIsActive().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetConsToBlock ( SCIP *  scip,
const char *  consname,
int  blockid 
)

sets a constraint by name to a block in the current user seeed

sets a constraint by name to a block in the current user seeed

Parameters
scipSCIP data structure
consnamename of the constraint
blockidblock index ( counting from 0)

Definition at line 4517 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::getIndexForCons(), and SCIPconshdlrDecompUserSeeedSetConsToMaster().

Referenced by fillDecompStruct(), readBlockconss(), and SCIPconshdlrDecompUserSeeedSetConsDefaultMaster().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetConsToMaster ( SCIP *  scip,
const char *  consname 
)

sets a constraint by name to master in the current user seeed

sets a constraint by name to the master in the current user seeed

Parameters
scipSCIP data structure

Definition at line 4560 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::getIndexForCons(), and SCIPconshdlrDecompUserSeeedSetVarToBlock().

Referenced by fillDecompStruct(), readMasterconss(), and SCIPconshdlrDecompUserSeeedSetConsToBlock().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetnumberOfBlocks ( SCIP *  scip,
int  nblocks 
)

set the number of blocks in the current user seeed (which is used for user input (read or modify) )

sets the number of blocks

Parameters
scipSCIP data structure
nblocksnumber of blocks

Definition at line 4427 of file cons_decomp.cpp.

References CONSHDLR_NAME, SCIPconshdlrDecompUserSeeedIsActive(), and gcg::Seeed::setNBlocks().

Referenced by readNBlocks(), and SCIPconshdlrDecompUpdateSeeedlist().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetVarToBlock ( SCIP *  scip,
const char *  varname,
int  blockid 
)

sets a variable by name to a block in the current user seeed

sets a variable by name to a block in the current user seeed

Parameters
scipSCIP data structure
varnamename of the variable
blockidblock index ( counting from 0)

Definition at line 4601 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::getIndexForVar(), and SCIPconshdlrDecompUserSeeedSetVarToMaster().

Referenced by readBlock(), readBlockvars(), and SCIPconshdlrDecompUserSeeedSetConsToMaster().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetVarToLinking ( SCIP *  scip,
const char *  varname 
)

sets a variable by name to the linking variables in the current user seeed

sets a variable by name to the linking variables in the current user seeed

Parameters
scipSCIP data structure
varnamename of the variable

Definition at line 4807 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::getIndexForVar(), and SCIPconshdlrDecompUserSeeedFlush().

Referenced by readBlock(), readLinkingvars(), and SCIPconshdlrDecompBlockNumberCandidateToSeeedpool().

SCIP_RETCODE SCIPconshdlrDecompUserSeeedSetVarToMaster ( SCIP *  scip,
const char *  varname 
)

sets a variable by name to the master in the current user seeed

sets a variable by name to the master in the current user seeed

Parameters
scipSCIP data structure
varnamename of the variable

Definition at line 4641 of file cons_decomp.cpp.

References CONSHDLR_NAME, gcg::Seeedpool::getIndexForVar(), and SCIPconshdlrDecompAddBlockNumberCandidate().

Referenced by fillDecompStruct(), readMastervars(), and SCIPconshdlrDecompUserSeeedSetVarToBlock().

SCIP_RETCODE SCIPconshdlrDecompWriteDec ( SCIP *  scip,
FILE *  file,
SCIP_Bool  transformed,
SCIP_RESULT *  result 
)
SCIP_RETCODE SCIPincludeConshdlrDecomp ( SCIP *  scip)

creates the constraint handler for decomp and includes it in SCIP

creates the handler for decomp constraints and includes it in SCIP

Parameters
scipSCIP data structure

Definition at line 1008 of file cons_decomp.cpp.

References CONSHDLR_CHECKPRIORITY, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, DEFAULT_AGGREGATIONLIMITNCONSSPERBLOCK, DEFAULT_AGGREGATIONLIMITNVARSPERBLOCK, DEFAULT_ALLOWCLASSIFIERDUPLICATES, DEFAULT_BENDERSONLYBINMASTER, DEFAULT_BENDERSONLYCONTSUBPR, DEFAULT_COEFFACTORORIGVSRANDOM, DEFAULT_CONSSADJCALCULATED, DEFAULT_CONSSCLASSCONSNAMENONUMBERENABLED, DEFAULT_CONSSCLASSCONSNAMENONUMBERENABLEDORIG, DEFAULT_CONSSCLASSLEVENSHTEINENABLED, DEFAULT_CONSSCLASSLEVENSHTEINENABLEDORIG, DEFAULT_CONSSCLASSMIPLIBCONSTYPEENABLED, DEFAULT_CONSSCLASSMIPLIBCONSTYPEENABLEDORIG, DEFAULT_CONSSCLASSNNONZENABLED, DEFAULT_CONSSCLASSNNONZENABLEDORIG, DEFAULT_CONSSCLASSSCIPCONSTYPEENABLED, DEFAULT_CONSSCLASSSCIPCONSTYPEENABLEDORIG, DEFAULT_CREATEBASICDECOMP, DEFAULT_DETECTBENDERS, DEFAULT_DUALVALRANDOMMETHOD, DEFAULT_ENABLEORIGCLASSIFICATION, DEFAULT_ENABLEORIGDETECTION, DEFAULT_LEGACYMODE, DEFAULT_MAXDETECTIONROUNDS, DEFAULT_MAXNCLASSES, DEFAULT_MAXNCLASSESFORNBLOCKCANDIDATES, DEFAULT_MAXNCLASSESLARGEPROBS, DEFAULT_ONLYLEGACYMODE, DEFAULT_STAIRLINKINGHEUR, DEFAULT_VARCLASSOBJVALSENABLED, DEFAULT_VARCLASSOBJVALSENABLEDORIG, DEFAULT_VARCLASSOBJVALSIGNSENABLED, DEFAULT_VARCLASSOBJVALSIGNSENABLEDORIG, DEFAULT_VARCLASSSCIPVARTYPESENABLED, DEFAULT_VARCLASSSCIPVARTYPESENABLEDORIG, DEFAULT_WRITEMIPLIB2017DECOMPFILEPATH, DEFAULT_WRITEMIPLIB2017FEATUREFILEPATH, DEFAULT_WRITEMIPLIB2017FEATURES, DEFAULT_WRITEMIPLIB2017MATRIXFILEPATH, DEFAULT_WRITEMIPLIB2017PLOTSANDDECS, DEFAULT_WRITEMIPLIB2017SHORTBASEFEATURES, MAX_WHITE, NO_MODIF, SCIPconshdlrDecompShowListExtractHeader(), and SETPART_FWHITE.

Referenced by SCIP_DECL_CONSLOCK(), and SCIPincludeGcgPlugins().

static SCIP_RETCODE setDetectionAggressive ( SCIP *  scip,
SCIP_CONSHDLRDATA *  conshdlrdata,
SCIP_Bool  quiet 
)
static

sets the parameters to aggressive values

Parameters
scipSCIP data structure
conshdlrdataconstraint handler data structure
quietshould the parameter be set quiet (no output)

Definition at line 6880 of file cons_decomp.cpp.

References AGGRESSIVE_LEVENSHTEIN_MAXMATRIXHALFPERIMETER, and setDetectionOff().

Referenced by GCGsetDetection(), and setDetectionDefault().

static SCIP_RETCODE setDetectionDefault ( SCIP *  scip,
SCIP_CONSHDLRDATA *  conshdlrdata,
SCIP_Bool  quiet 
)
static

resets the parameters to their default value

Parameters
scipSCIP data structure
conshdlrdataconstraint handler data structure
quietshould the parameter be set quiet (no output)

Definition at line 6805 of file cons_decomp.cpp.

References DEFAULT_LEVENSHTEIN_MAXMATRIXHALFPERIMETER, and setDetectionAggressive().

Referenced by GCGprintDetectorStatistics(), and GCGsetDetection().

static SCIP_RETCODE setDetectionFast ( SCIP *  scip,
SCIP_CONSHDLRDATA *  conshdlrdata,
SCIP_Bool  quiet 
)
static

sets the parameters to fast values

Parameters
scipSCIP data structure
conshdlrdataconstraint handler data structure
quietshould the parameter be set quiet (no output)

Definition at line 7006 of file cons_decomp.cpp.

References FAST_LEVENSHTEIN_MAXMATRIXHALFPERIMETER, and GCGsetDetection().

Referenced by GCGsetDetection(), and setDetectionOff().

static SCIP_RETCODE setDetectionOff ( SCIP *  scip,
SCIP_CONSHDLRDATA *  conshdlrdata,
SCIP_Bool  quiet 
)
static

disables detectors

Parameters
scipSCIP data structure
conshdlrdataconstraint handler data structure
quietshould the parameter be set quiet (no output)

Definition at line 6955 of file cons_decomp.cpp.

References setDetectionFast().

Referenced by GCGsetDetection(), and setDetectionAggressive().

SCIP_Bool unfinishedchildexists ( std::vector< SCIP_Bool > const &  childsfinished)

help method for writing family trees

Definition at line 449 of file cons_decomp.cpp.

References getfirstunfinishedchild().

Referenced by SCIPconshdlrDecompGetScoretypeDescription().