DGL-TreeSearch and the Gurobi-MWIS interface

Overview

Independent Set Benchmarking Suite

This repository contains the code for our maximum independent set benchmarking suite as well as our implementations of the DGL-TreeSearch and the Gurobi-MWIS interface. In solvers, you can find the wrappers for the currently supported solvers (Gurobi, KaMIS, Intel-TreeSearch, DGL-Treesearch). In data_generation, you find the code required for generating random and real-world graphs.

For using this suite, conda is required. You can the setup_bm_env.sh script which will setup the conda environment with all required dependencies. You can find out more about the usage using python main.py -h. The main.py file is the main interface you will call for data generation, solving, and training.

In the helper_scripts folder, you find some scripts that could be helpful when doing analyses with this suite.

There are (of course) some improvements that can be made. For example, the argument parsing requires a major refactoring, and the output formats are currently not fully harmonized. We are open for pull requests, if you want to contribute. Thank you very much!

If you use this in your work, please cite us (and the papers of the solvers that you might use).

@inproceedings{boether_dltreesearch_2022,
  author = {Böther, Maximilian and Kißig, Otto and Taraz, Martin and Cohen, Sarel and Seidel, Karen and Friedrich, Tobias},
  title = {What{\textquoteright}s Wrong with Deep Learning in Tree Search for Combinatorial Optimization},
  booktitle = {Proceedings of the International Conference on Learning Representations ({ICLR})},
  year = {2022}
}
You might also like...
This is a GUI interface which can process forest fire detection, smoke detection and fire segmentation
This is a GUI interface which can process forest fire detection, smoke detection and fire segmentation

This is a GUI interface which can process forest fire detection, smoke detection and fire segmentation. Yolov5 is used to detect fire and smoke and unet is used to segment fire.

Neon-erc20-example - Example of creating SPL token and wrapping it with ERC20 interface in Neon EVM

Example of wrapping SPL token by ERC2-20 interface in Neon Requirements Install

A Neural Net Training Interface on TensorFlow, with focus on speed + flexibility
A Neural Net Training Interface on TensorFlow, with focus on speed + flexibility

Tensorpack is a neural network training interface based on TensorFlow. Features: It's Yet Another TF high-level API, with speed, and flexibility built

Elegy is a framework-agnostic Trainer interface for the Jax ecosystem.

Elegy Elegy is a framework-agnostic Trainer interface for the Jax ecosystem. Main Features Easy-to-use: Elegy provides a Keras-like high-level API tha

A Neural Net Training Interface on TensorFlow, with focus on speed + flexibility
A Neural Net Training Interface on TensorFlow, with focus on speed + flexibility

Tensorpack is a neural network training interface based on TensorFlow. Features: It's Yet Another TF high-level API, with speed, and flexibility built

PyStan, a Python interface to Stan, a platform for statistical modeling. Documentation: https://pystan.readthedocs.io

PyStan NOTE: This documentation describes a BETA release of PyStan 3. PyStan is a Python interface to Stan, a package for Bayesian inference. Stan® is

Sequential model-based optimization with a  `scipy.optimize` interface
Sequential model-based optimization with a `scipy.optimize` interface

Scikit-Optimize Scikit-Optimize, or skopt, is a simple and efficient library to minimize (very) expensive and noisy black-box functions. It implements

Python interface for SmartRF Sniffer 2 Firmware

#TI SmartRF Packet Sniffer 2 Python Interface TI Makes available a nice packet sniffer firmware, which interfaces to Wireshark. You can see this proje

Python interface for the DIGIT tactile sensor

DIGIT-INTERFACE Python interface for the DIGIT tactile sensor. For updates and discussions please join the #DIGIT channel at the www.touch-sensing.org

Comments
  • Error on KaMIS

    Error on KaMIS

    I was running python main.py solve kamis './' './', but got this error:

    [Errno 2] No such file or directory: PosixPath('/mis-benchmark-framework/solvers/kamis/KaMIS/deploy/redumis')

    Do you know how this can be solved? Thank you.

    opened by sagebei 4
  • Could you provide a link to download the training set?

    Could you provide a link to download the training set?

    The training data generation procedure would take a lot of time if they have to be labeled from scratch by Gurobi. So could you provide a training set download link for followers to get a quick start?

    opened by yangco-le 3
  • About the problem of self generating datasets

    About the problem of self generating datasets

    Hello, last time I used the dataset provided by the code, the effect was good. But I want to construct a dataset of SAT problem graph by myself, using the intel_ treesearch method training requires the use of a dataset composed of mat files, while I only downloaded cnf files from the official website of SAT instances. How do you convert cnf files into mat files or how are those mat files generated?

    opened by zxpekko 2
Owner
Maximilian Böther
Student at Hasso Plattner Institute, Potsdam
Maximilian Böther
Official DGL implementation of "Rethinking High-order Graph Convolutional Networks"

SE Aggregation This is the implementation for Rethinking High-order Graph Convolutional Networks. Here we show the codes for citation networks as an e

Tianqi Zhang (张天启) 32 Jul 19, 2022
ROS-UGV-Control-Interface - Control interface which can be used in any UGV

ROS-UGV-Control-Interface Cam Closed: Cam Opened:

Ahmet Fatih Akcan 1 Nov 4, 2022
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 3k Jan 3, 2023
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 2.8k Feb 12, 2021
Unified Interface for Constructing and Managing Workflows on different workflow engines, such as Argo Workflows, Tekton Pipelines, and Apache Airflow.

Couler What is Couler? Couler aims to provide a unified interface for constructing and managing workflows on different workflow engines, such as Argo

Couler Project 781 Jan 3, 2023
This package proposes simplified exporting pytorch models to ONNX and TensorRT, and also gives some base interface for model inference.

PyTorch Infer Utils This package proposes simplified exporting pytorch models to ONNX and TensorRT, and also gives some base interface for model infer

Alex Gorodnitskiy 11 Mar 20, 2022
Web-interface + rest API for classification and regression (https://jeff1evesque.github.io/machine-learning.docs)

Machine Learning This project provides a web-interface, as well as a programmatic-api for various machine learning algorithms. Supported algorithms: S

Jeff Levesque 252 Dec 11, 2022
Selene is a Python library and command line interface for training deep neural networks from biological sequence data such as genomes.

Selene is a Python library and command line interface for training deep neural networks from biological sequence data such as genomes.

Troyanskaya Laboratory 323 Jan 1, 2023
Python package for covariance matrices manipulation and Biosignal classification with application in Brain Computer interface

pyRiemann pyRiemann is a python package for covariance matrices manipulation and classification through Riemannian geometry. The primary target is cla

null 447 Jan 5, 2023