Exploratory Combinatorial Optimization with Reinforcement Learning

Thomas D. Barrett, William R. Clements, Jakob N. Foerster, A. I. Lvovsky
9/9/2019
cs.LGcs.AIstat.ML

Official code: tomdbar/eco-dqn (81 stars, MIT, PyTorch, last commit 2020-10-23).

Abstract

Many real-world problems can be reduced to combinatorial optimization on a graph, where the subset or ordering of vertices that maximize some objective function must be found. With such tasks often NP-hard and analytically intractable, reinforcement learning (RL) has shown promise as a framework with which efficient heuristic methods to tackle these problems can be learned. Previous works construct the solution subset incrementally, adding one element at a time, however, the irreversible nature of this approach prevents the agent from revising its earlier decisions, which may be necessary given the complexity of the optimization task. We instead propose that the agent should seek to continuously improve the solution by learning to explore at test time. Our approach of exploratory combinatorial optimization (ECO-DQN) is, in principle, applicable to any combinatorial problem that can be defined on a graph. Experimentally, we show our method to produce state-of-the-art RL performance on the Maximum Cut problem. Moreover, because ECO-DQN can start from any arbitrary configuration, it can be combined with other search methods to further improve performance, which we demonstrate using a simple random search.

View on arXivView PDF

Code Implementations(1)

tomdbar/eco-dqnOfficial100%
PyTorchMIT

Implementation of ECO-DQN as reported in "Exploratory Combinatorial Optimization with Reinforcement Learning".

8126PythonSep 2, 20195 years agoMIT
combinatorial-optimizationpublication-codepytorchreinforcement-learning

Similar Papers

Cite this paper

@article{barrett2019exploratory,
  title  = {Exploratory Combinatorial Optimization with Reinforcement Learning},
  author = {Thomas D. Barrett and William R. Clements and Jakob N. Foerster and A. I. Lvovsky},
  year   = {2019},
  eprint = {1909.04063},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1909.04063}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1909.04063.svg)](https://codeofpaper.com/paper/1909.04063)

Discussion