Skip to content

MOSSLab-MIT/FSNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FSNet: Feasibility-Seeking Neural Network for Constrained Optimization with Guarantees

This repository is by Hoang T. Nguyen and Priya L. Donti and contains source code to reproduce the experiments in our paper "FSNet: Feasibility-Seeking Neural Network for Constrained Optimization with Guarantees".

Abstract

Efficiently solving constrained optimization problems is crucial for numerous real-world applications, yet traditional solvers are often computationally prohibitive for real-time use. Machine learning-based approaches have emerged as a promising alternative to provide approximate solutions at faster speeds, but they struggle to strictly enforce constraints, leading to infeasible solutions in practice. To address this, we propose the Feasibility-Seeking-Integrated Neural Network (FSNet), which integrates a feasibility-seeking step directly into its solution procedure to ensure constraint satisfaction. This feasibility-seeking step solves an unconstrained optimization problem that minimizes constraint violations in a differentiable manner, enabling end-to-end training and providing guarantees on feasibility and convergence. Our experiments across a range of different optimization problems, including both smooth/nonsmooth and convex/nonconvex problems, demonstrate that FSNet can provide feasible solutions with solution quality comparable to (or in some cases better than) traditional solvers, at significantly faster speeds.

FSNet Diagram

If you find this repository helpful in your publications, please consider citing our paper.

@article{nguyen2025fsnet,
    title={FSNet: Feasibility-Seeking Neural Network for Constrained Optimization with Guarantees}, 
    author={Hoang T. Nguyen and Priya L. Donti},
    year={2025},
    journal={arXiv preprint arXiv:2506.00362},
}

🚀 Installation

Install dependencies:

pip install -r requirements.txt

🎓 Usage

Training and Test

python main.py \
  --method <FSNet|penalty|adaptive_penalty|DC3|projection> \
  --prob_type <convex|nonconvex|nonsmooth_nonconvex> \
  --prob_name <qp|qcqp|socp>
  • --method

    • FSNet (Feasibility-Seeking Neural Network)
    • penalty (Penalty method)
    • adaptive_penalty (Adaptive Penalty method)
    • DC3 (Deep Constraint Completion and Correction)
    • projection (Projection-based method; supported for QP only)
  • --prob_type

    • convex
    • nonconvex
    • nonsmooth_nonconvex
  • --prob_name

    • qp (Quadratic Program)
    • qcqp (Quadratically Constrained Quadratic Program)
    • socp (Second-Order Cone Program)
  • And see main.py for more relevant flags.

Example:

python main.py --method FSNet --prob_type convex --prob_name qp
python main.py --method FSNet --prob_type nonconvex --prob_name socp --dropout 0.1

About

FSNet: Feasibility-Seeking Neural Network for Constrained Optimization with Guarantees

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published