EPFL Verifier for Approximate Neural Networks and QPs
This repository provides the code accompanying the paper Stability Verification of Neural Network Controllers using Mixed-Integer Programming.
To get started with the code, clone this repo, and install the evanqp python package with
python setup.py install
Jupiter Notebooks with examples can be found in examples/
.
There are benchmarks available for two different examples available: the dc-dc converter example (examples/dc_dc_converter/
) and the lipschitz example (examples/lipschitz/
). To run the benchmarks change the parameters in run_benchmarks.sh
to match your hardware configuration and execute the benchmark with
bash run_benchmarks.sh
The results can then be analysed in the Jupiter Notebook benchmark_analysis.ipynb
.
To cite our work in other academic papers, please use the following BibTex entry:
@ARTICLE{schwan2023,
author={Schwan, Roland and Jones, Colin N. and Kuhn, Daniel},
journal={IEEE Transactions on Automatic Control},
title={Stability Verification of Neural Network Controllers Using Mixed-Integer Programming},
year={2023},
volume={68},
number={12},
pages={7514-7529},
doi={10.1109/TAC.2023.3283213}
}