This repository is an implementation of the NeurIPS 2024 paper: IPM-LSTM: A Learning-Based Interior Point Method for Solving Nonlinear Programs.
Constrained Nonlinear Programs (NLPs) represent a category of mathematical optimization problems in which the objective function, constraints, or both, exhibit nonlinearity. The versatility of NLPs allows for their application across a wide array of domains, including power systems, robotics, and wireless communication networks. Our work focus on solving the following NLP:
where the functions
where
python=3.10
pytorch=1.13.1
cyipopt=1.3.0You can use the following command to generate a Convex Quadratic Programming (QP) dataset (RHS):
python generate_data.py --config ./configs/Generate_Data.yaml --prob_type Convex_QP_RHSFor training phase, you can run following command:
python main.py --config ./configs/QP.yaml --prob_type QP_RHSOur model will be stored at ./results/lstm/params/QP_RHS_100_50_50_100_50.pth. During the testing phase, you can run the following command to obtain our experimental results:
python main.py --config ./configs/QP.yaml --prob_type QP_RHS --test --solver ipopt --save_solYou can use the following command to plot the figures in our paper.
python plot.py --config ./configs/QP.yaml --prob_type QP_RHS --plot_type Objective_valuesIf you would like to utilize IPM-LSTM in your research, we kindly request that you cite our paper as follows:
@article{gao2024ipm,
title={IPM-LSTM: A Learning-Based Interior Point Method for Solving Nonlinear Programs},
author={Gao, Xi and Xiong, Jinxin and Wang, Akang and Xue, Jiang and Shi, Qingjiang and others},
journal={Advances in Neural Information Processing Systems},
volume={37},
pages={122891--122916},
year={2024}
}