Giter Club home page Giter Club logo

kernel-mis's Introduction

kernel-mis: Computing exact maximum independent sets through kernelization

license

The intent of this software is to provide all necessary code and scripts to reproduce the results from the following publication:

On the Power of Simple Reductions for the Maximum Independent Set Problem,
Darren Strash,
Proceedings of COCOON 2016. LNCS 9797, pp. 345-356, 2016.
doi:10.1007/978-3-319-42634-1_28
arxiv:1608.00724

##This package includes:

  • C++ code for implementations of maximum independent set reduction algorithms, including:
  • A small collection of test instances (sample.data.tar.gz)
  • A test script to build and run algorithms on sample data sets, and generate LaTeX tables as output (./test.sh)

Please feel free to contact me with any questions!

Version

1.0

Building

$ git clone https://github.com/darrenstrash/kernel-mis.git
$ cd kernel-mis
$ make

Running

$ ./bin/kernel-mis --input-file=<input graph> --experiment=<kernel-size-simple|kernel-size-critical-set|kernel-size-maximum-critical-set|simple-mcs>

or

$ ./test.sh

to run all algorithms on all included data sets. The test script will take anywhere from 10 to 30 minutes, depending on your system. Note: this bash script calls both python and pdflatex from the command line. Please make sure you have them installed and configured.

Graph Format

Currently, the unweighted METIS format is expected:

<# vertices> <# edges> 1

followed by <#vertices> lines, where the i-th line contains a list of space-separated neighbors of i. All vertices range from 1 to <# vertices>

Data

sample.data.tar.gz contains a sampling of data sets used in experiments in the paper.

More data is available on request; however, be warned that the full data set is more than 30GB. If there's enough demand, I'll consider making scripts to automatically download/generate all data sets in the expected format.

What's missing from this package?

Right now, I only include the code that I wrote, and a few data sets. Here's what is missing, and may be added in the future:

  • Advanced reductions: these were generated by the implementation by Akiba and Iwata (2016). Their code is available here, and must be modified to output the kernel size.
  • Full data sets: They're just too big. Contact me if you need them.

Copyright

Copyright (c) 2016 Darren Strash.

License

This code is released under the GNU Public License (GPL) 3.0.

To read the GPL 3.0, read the file COPYING in this directory.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Contact

Darren Strash (first name DOT last name AT gmail DOT com)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.