Release notes for GCG 3.6
GCG 3.6.0
New features:
- MSVC support
New/changed parameters:
- New parameter 'detection/scores/selected' to select the score that should be used to sort the decompositions
- Removed parameter 'detection/score/scoretype'
- Moved parameter 'detection/score/strong_detection/dualvalrandommethod' to 'detection/scores/strong/dualvalrandommethod'
- Moved parameter 'detection/score/strong_detection/coeffactororigvsrandom' to 'detection/scores/strong/coeffactororigvsrandom'
- Moved parameter 'detection/score/strong_detection/timelimit' to 'detection/scores/strong/timelimit'
New/modified API functions:
- New functions: 'GCGconshdlrDecompGetNConsClassifiers', 'GCGconshdlrDecompGetNVarClassifiers', 'GCGconshdlrDecompGetConsClassifiers', 'GCGconshdlrDecompGetVarClassifiers'
- Add parameter 'DEC_CONSCLASSIFIER* consclassifier' to 'DEC_DECL_CONSCLASSIFY'
- Add paramater 'DEC_VARCLASSIFIER* varclassifier' to 'DEC_DECL_VARCLASSIFY'
- Added function 'DECsetCurrentScore'
- Added function 'DECgetCurrentScoreShortname'
- Added function 'DECgetCurrentScore'
- Added function 'GCGincludeScore'
- Added function 'GCGfindScore'
- Added function 'GCGgetScores'
- Added function 'GCGgetNScores'
- Added function 'GCGscoreGetData'
- Added function 'GCGscoreSetData'
- Added function 'GCGscoreGetName'
- Added function 'GCGscoreGetShortname'
- Added function 'GCGscoreGetDesc'
- Added function 'GCGincludeScoreBender'
- Added function 'GCGincludeScoreBorder'
- Added function 'GCGincludeScoreClassic'
- Added function 'GCGincludeScoreFawh'
- Added function 'GCGincludeScoreForswh'
- Added function 'GCGincludeScoreMaxwhite'
- Added function 'GCGincludeScoreSpfawh'
- Added function 'GCGincludeScoreSpfwh'
- Added function 'GCGincludeScoreStrongDecomp'
Deleted API functions:
- Deleted function 'GCGconshdlrDecompGetScoretype'
- Deleted function 'GCGconshdlrDecompCalcBendersScore'
- Deleted function 'GCGconshdlrDecompCalcBorderAreaScore'
- Deleted function 'GCGconshdlrDecompCalcClassicScore'
- Deleted function 'GCGconshdlrDecompCalcMaxForeseeingWhiteAggScore'
- Deleted function 'GCGconshdlrDecompCalcMaxForseeingWhiteScore'
- Deleted function 'GCGconshdlrDecompCalcMaxWhiteScore'
- Deleted function 'GCGconshdlrDecompCalcSetPartForseeingWhiteScore'
- Deleted function 'GCGconshdlrDecompCalcSetPartForWhiteAggScore'
- Deleted function 'GCGconshdlrDecompCalcStrongDecompositionScore'
Code cleanup:
- Refactored scores
GCG 3.5.2
Bug fixes
- fix errors in symmetry detection
- fix segmentation faults
- add missing headers to CMake file
GCG 3.5.2
Bug fixes
- fix compile with new bliss version (0.77)
- fix Makefiles recompile if STATISTICS flag was changed
- fix minor bugs in the cmpres.awk script, updating it to the SCIP version
- fix memory allocation of name and description of constraint and variable classifiers
- fix handling of variables added after the problem was transformed
Build system
- Bliss is enabled by default and the version provided by SCIP is compiled (CMake and Makefile)
GCG 3.5.0
New features:
- New website documentation
- Added several strong branching based branching candidate selection heuristics: strong branching with column generation, strong branching without column generation, hybrid strong/pseudocost branching, reliability branching, hierarchical strong branching, hybrid hierarchical strong/pseudocost branching, hierarchical reliability branching (primarily for original variable branching and Ryan-Foster branching).
- New detector neighborhoodmaster: calculating cons-cons adjacency (if not already done), sorting according size of neighborhood. Searching two consecutive constraints with largest size difference (according neighborhood size) in sorted constraints. All constraints having a larger neighborhood than the second one are assigned to the master.
- On reading an incomplete decomposition, the program will not necessarily assign all open elements to the master problem but detect the rest of the structure.
- Use the user's default application to open pdf files
New/changed parameters:
- New parameters 'branching/orig/usestrong' and 'branching/ryanfoster/usestrong' to enable strong branching for original variable branching and Ryan-Foster branching
- New parameters 'branching/bpstrong/...' to alter strong branching behavior
- New parameter 'detection/enabled' for easier en-/disabling of the detection
- New Parameter 'detection/postprocess' enables the postprocessing of decompositions
- Removed paramaters 'detection/detectors/<name>/legacymode'
- Removed parameter 'detection/conssadjcalculated'
- Removed parameter 'detection/legacymode/onlylegacymode'
- Removed parameter 'detection/legacymode/enabled'
- Removed parameter 'detection/legacymode/stairlinkingheur'
- Removed parameter 'visual/report/showtype'
- Removed parameter 'constraints/decomp/createbasicdecomp'
- Removed parameters 'detection/detectors/<name>/origenabled'
- Moved parameters 'detection/consclassifier/<name>/enabled' to 'detection/classification/consclassifier/<name>/enabled'
- Removed parameters 'detection/consclassifier/<name>/origenabled'
- Moved parameters 'detection/varclassifier/<name>/enabled' to 'detection/classification/varclassifier/<name>/enabled'
- Removed parameters 'detection/varclassifier/<name>/origenabled'
- Moved parameter 'detection/allowclassifierduplicates/enabled' to 'detection/classification/allowduplicates'
- Moved parameter 'detection/maxnclassesfornblockcandidates' to 'detection/blocknrcandidates/maxnclasses'
- Moved parameter 'detection/addblocknr' to 'set/detection/blocknrcandidates/addblocknr'
- Moved parameter 'detection/maxnclassesperclassifier' to 'detection/classification/maxnclassesperpartition'
- Moved parameter 'detection/maxnclassesperclassifierforlargeprobs' to 'detection/classification/maxnclassesperpartitionforlargeprobs'
- Moved parameter 'detection/strong_detection/dualvalrandommethod' to 'detection/score/strong_detection/dualvalrandommethod'
- Moved parameter 'detection/strong_detection/coeffactororigvsrandom' to 'detection/score/strong_detection/coeffactororigvsrandom'
- Moved parameter 'detection/scoretype' to 'detection/score/scoretype'
New/changed menu commands:
- Removed 'toolbox' feature from 'explore' menu
- Removed command 'toolbox'
- Removed command 'write/miplib2017features'
- Removed command 'write/miplib2017plotsanddecs'
- Removed command 'write/miplib2017shortbasefeatures'
- Removed command 'write/miplib2017featurefilepath'
- Removed command 'write/miplib2017matrixfilepath'
- Removed command 'write/miplib2017decompfilepath'
- Removed command 'write alloriginaldecompositions'
- Removed command 'write allpresolveddecompositions'
- Renamed command 'write reportdecompositions' to 'write report'
- Renamed command 'write selecteddecompositions' to 'write selected'
Visualization and testing:
- check/compareversions.sh runs tests on several git versions, summarizes performace results
Code cleanup:
- Cleaned up 'explore' menu
- Refactored detection loop
- Removed legacymode, including detectors 'connected', 'staircase', 'random', 'cutpacking', 'colors', 'mcl'
- Renamed class Seeed to PARTIALDECOMP
- Renamed class Seeedpool to DETPROBDATA
- Renamed SEEED_WRAPPER to PARTIALDECOMP_WRAPPER
- Renamed {Index,Cons,Var}Classifier to {Index,Cons,Var}Partition
- Refactored dialog handler
- Moved GCG version define to 'def.h', moved 'GCGprintVersion' to 'gcg_general.h/c'
New/modified API functions:
- New functions: 'GCGtransformProb', 'GCGpresolve', 'GCGdetect', 'GCGsolve'
- Renamed 'GCGgetGap' to 'GCGgetVarGap' and 'GCGsetGap' to 'GCGsetVarGap'
- New functions: 'GCGgetDualbound', 'GCGgetPrimalbound', 'GCGgetGap'
Bug fixes
- Fixed function 'ObjPricerGcg::computeCurrentDegeneracy'
- Relaxator: Do not construct and flush the LP if it is already constructed