Scippy

GCG

Branch-and-Price & Column Generation for Everyone

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