CombOptNet: Fit the Right NP-Hard Problem by Learning Integer
  Programming Constraints
  Bridging logical and algorithmic reasoning with modern machine learning
techniques is a fundamental challenge with potentially transformative impact.
On the algorithmic side, many NP-hard problems can be expressed as integer
programs, in which the constraints play the role of their "combinatorial
specification." In this work, we aim to integrate integer programming solvers
into neural network architectures as layers capable of learning both the cost
terms and the constraints. The resulting end-to-end trainable architectures
jointly extract features from raw data and solve a suitable (learned)
combinatorial problem with state-of-the-art integer programming solvers. We
demonstrate the potential of such layers with an extensive performance analysis
on synthetic data and with a demonstration on a competitive computer vision
keypoint matching benchmark.
