Controlling Continuous Relaxation for Combinatorial Optimization

Yuma Ichikawa
2/12/2026

No official code found. Best implementation: Yuma-Ichikawa/CRA4CO (9 stars, BSD-3-Clause-Clear, last commit 2026-04-18).

Abstract

Unsupervised learning (UL)-based solvers for combinatorial optimization (CO) train a neural network that generates a soft solution by directly optimizing the CO objective using a continuous relaxation strategy. These solvers offer several advantages over traditional methods and other learning-based methods, particularly for large-scale CO problems. However, UL-based solvers face two practical issues: (I) an optimization issue, where UL-based solvers are easily trapped at local optima, and (II) a rounding issue, where UL-based solvers require artificial post-learning rounding from the continuous space back to the original discrete space, undermining the robustness of the results. This study proposes a Continuous Relaxation Annealing (CRA) strategy, an effective rounding-free learning method for UL-based solvers. CRA introduces a penalty term that dynamically shifts from prioritizing continuous solutions, effectively smoothing the non-convexity of the objective function, to enforcing discreteness, eliminating artificial rounding. Experimental results demonstrate that CRA significantly enhances the performance of UL-based solvers, outperforming existing UL-based solvers and greedy algorithms in complex CO problems. Additionally, CRA effectively eliminates artificial rounding and accelerates the learning process.

View on arXivView PDF

Code Implementations(1)

BSD-3-Clause-Clear

A PyTorch implementation: Controlling Continuous Relaxation for Combinatorial Optimization

91Python, Jupyter NotebookFeb 29, 20246 months agoBSD-3-Clause-Clear
combinatorial-optimizationmachine-learningneurips-2024optimization

Similar Papers

Cite this paper

@article{ichikawa2026controlling,
  title  = {Controlling Continuous Relaxation for Combinatorial Optimization},
  author = {Yuma Ichikawa},
  year   = {2026},
  eprint = {2309.16965},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/pdf/2309.16965},
  journal = {NEURIPS 2023 2023}
}

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/2309.16965.svg)](https://codeofpaper.com/paper/2309.16965)

Discussion