Scippy

GCG

Branch-and-Price & Column Generation for Everyone

Release notes for GCG 1.0

GCG 1.0

features

  • include variable deletion code
  • add a block diagonal detector (cons_connected)
  • add a new default constraint based decomposition format with reader (dec)
  • added new heuristics gcgrins and xprins
  • decompositions from multiple detectors are compared in cons_decomp.h
  • added block diagonal detection code, GCG solves these more intelligently
  • added detection of standard problems to block detection code
  • add additional statistics
  • structure information can now contain presolving information
  • GCG works with SCIP version 3.0

plugins

  • reworked decdecomp structure handling
  • merge recent SCIP heuristic changes to their GCG counterparts

bug fixes

  • try to deal with the time limit of the master by looping until the original instance hits the time limit
  • try to avoid infeasible problems if the timelimit is hit during farkas pricing
  • fix bugs related to copying master solutions to the original problem
  • fix bugs where solutions are not correctly freed
  • fix bug: heuristics that use SCIPcopy really create a working copy
  • fix propagation bugs
  • fix issues with empty problems and problems solved in the root node
  • rewrite relaxcolsel heuristic
  • moved probing methods to relax_gcg.c and fixed heuristics to use them
  • fix a vardata creation bug
  • copy cuts in LNS heuristics correctly
  • fixed bugs related to presolving
  • fixed bugs related to linking variables
  • fixed bugs in Ryan-Foster branching
  • fix some memory issues

code cleanup

  • updated the documentation
  • cleaned up code (whitespace and code style changes)
  • removed all vardata accesses from all files
  • removed a lot of old code
  • remove dead code and give the code some love
  • refactored some parts to remove large methods
  • cleaned up detector interface
  • make sure code is clean with all our compilers and code checking tools

performance

  • adjusted default parameters
  • improve memory handling by switching to buffer memory in appropriate cases and away from buffer in others

interface

  • make githash look nicer
  • nicer decomposition output

Makefile and scripts

  • add lint directory for static code analysis
  • add SCIP target to makefile
  • fix scripts for RWTH Aachens high performing cluster
  • add possibility to create SCIP link automatically
  • add small testset to enable small functionality tests
  • add some modes to test script in order to create and collect decompositions
  • fix clean rule to a safer version