Skip to content

A fast Vertex Cover solver and Algorithm Engineering testbench written in C++

License

Notifications You must be signed in to change notification settings

redpandamonium/algorithm-engineering

Repository files navigation

Algorithm Engineering WiSe 18/19

This is a solver for the vertex cover problem (wiki). It is also a test bench to quickly implement new data reductions and solver optimizations from the literature. It also includes a benchmarking testbench. This software is experimental and should not be used in anything serious.

Credit: Carsten Gregor Michael Schubert, Fynn Constantin Lohren, Leon Suchy

Build & Run

To build you need CMake 3.10 or higher. Don't forget to recursively init the project's submodules. There is a vcpkg manifest shipped with the project for dependencies. Sadly this was written before vcpkg split boost into components, so it is a hefty download. Use cmake -B cmake-build-<debug/release> -S . -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake to generate the cmake build files. After that you can build the main solver with cmake --build cmake-build-debug --target VertexCover and run it from there, or use the --run option. You can run the solver with --help to see its other options.

Examples

The solver needs two configuration files to run. The pre-config is the preprocessing config before the actual solver starts. The regular config is for the main solver phase. Here are two examples from our test repository:

  • ./cmake-build-debug/vertex_cover/VertexCover --config vertex_cover/res/config_fast.json --pre-config vertex_cover/res/pre_config_fast.json --no-solution-dump --file vertex_cover/test/res/ninja_star.input
  • ./cmake-build-debug/vertex_cover/VertexCover --config vertex_cover/res/config_fast.json --pre-config vertex_cover/res/pre_config_fast.json --no-solution-dump --file vertex_cover/test/res/adjnoun.graph.input

Release builds

To build the release use cmake -DCMAKE_BUILD_TYPE=Release [...] and replace cmake-build-debug with cmake-build-release.

Papers

Useful links

About

A fast Vertex Cover solver and Algorithm Engineering testbench written in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published