Published April 6, 2020 | Version 2.0
Software Open

TheoryInPractice/structural-rounding: Structural Rounding v2.0

Description

The updated version has two major feature additions:

  • C++ back-end. Every algorithm in the library is now implemented in C++. Python wrappers have also been provided to continue support for python scripting. The switch to C++ improves overall runtimes by ~10x.
  • Library reorganization. The library has been reorganized to support the addition of algorithms for new problems. See below for a complete list of changes.

We have also added two new algorithms in this version.

  • sr_apx.vc.apx.heuristic_apx: implements a greedy heuristic for vertex cover which always adds the vertex covering the most new edges.
  • sr_apx.vc.kernel.lp_kernel: computes an LP-based kernel of size at most twice the minimum vertex cover using network flow.

A few minor conveniences have also been added to main.py. The new main.cpp roughly replicates the features of main.py, but does not write results to file.

List of name changes:

  • src.graphsr_apx.graph
  • src.octset.prescribed_octsetsr_apx.bipartite.prescribed_octset
  • src.octset.verify_bipsr_apx.bipartite.verify_bipartite
  • src.octset.find_octsetsr_apx.bipartite.vertex_delete
  • src.vc_apxsr_apx.vc.apx
  • src.vc_exactsr_apx.vc.exact
  • src.vc_liftsr_apx.vc.lift
  • src.vc_lift.oct_first_liftsr_apx.vc.lift.oct_lift
  • src.vc_lift.bip_first_liftsr_apx.vc.lift.bip_lift

Files

TheoryInPractice/structural-rounding-2.0.zip

Files (41.7 kB)

Name Size Download all
md5:0211947b34f70caa3fd143c150e89f69
41.7 kB Preview Download

Additional details