Scippy

GCG

Branch-and-Price & Column Generation for Everyone

Release notes for GCG 3.5

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