Software Open Access

TheoryInPractice/structural-rounding: Structural Rounding v2.0

Brian Lavallee; Cole Perschon

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 (41.7 kB)
Name Size
TheoryInPractice/structural-rounding-2.0.zip
md5:0211947b34f70caa3fd143c150e89f69
41.7 kB
225
16
views