Principled Data Augmentation for Learning to Solve Quadratic Programming Problems

Chendi Qian, Christopher Morris
6/2/2025
cs.LGcs.AI

No official code found. Best implementation: chendiqian/Data-Augmentation-for-Learning-to-Optimize (1 star, last commit 2025-07-29).

Abstract

Linear and quadratic optimization are crucial in numerous real-world applications, ranging from training machine learning models to solving integer linear programs. Recently, learning-to-optimize methods (L2O) for linear (LPs) or quadratic programs (QPs) using message-passing graph neural networks (MPNNs) have gained traction, promising lightweight, data-driven proxies for solving such optimization problems. For example, they replace the costly computation of strong branching scores in branch-and-bound solvers, thereby reducing the need to solve many such optimization problems. However, robust L2O MPNNs remain challenging in data-scarce settings, especially when addressing complex optimization problems such as QPs. This work introduces a principled approach to data augmentation tailored for QPs via MPNNs. Our method leverages theoretically justified data augmentation techniques to generate diverse yet optimality-preserving instances. Furthermore, we integrate these augmentations into a self-supervised contrastive learning framework, thereby pretraining MPNNs for improved performance on L2O tasks. Extensive experiments demonstrate that our approach improves generalization in supervised scenarios and facilitates effective transfer learning to related optimization problems.

View on arXivView PDF

Code Implementations(1)

Principled data augmentation for learning to solve quadratic programming problems, NeurIPS 2025 Spotlight.

10Python, Jupyter NotebookFeb 8, 20251 years ago

Similar Papers

Cite this paper

@article{qian2025principled,
  title  = {Principled Data Augmentation for Learning to Solve Quadratic Programming Problems},
  author = {Chendi Qian and Christopher Morris},
  year   = {2025},
  eprint = {2506.01728},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2506.01728v2}
}

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

Discussion