This is a personal fork of the Gravity project. I have made some changes to the code to make it compile on Windows and I want to use the ACOPF example.
Firstly, run the following commands to compile the project:
mkdir build
cd build
cmake .. -A x64
cmake --build . --config Release --parallel
You will get acopf.exe
in build/Release
directory. It is dynamically linked to the Ipopt library, so you need the download the binary release of Ipopt and add the bin
directory to the system path.
The original paper was presentend at the Machine Learning Open Source Software Workshop at NeurIPS 2018, a longer version of the paper can be downloaded here.
Bibtex ref:
@article{Gravity, title={Gravity: A Mathematical Modeling Language for Optimization and Machine Learning}, author={Hassan Hijazi and Guanglei Wang and Carleton Coffrin}, journal={Machine Learning Open Source Software Workshop at NeurIPS 2018}, year={2018}, note = {Available at \url{www.gravityopt.com}.}, publisher={The Thirty-second Annual Conference on Neural Information Processing Systems (NeurIPS)} }
First, you will need to install an IDE, I recommend to choose among the following:
Visual Studio | Clion | Xcode | Eclipse |
---|---|---|---|
Then, follow the instructions presented in INSTALL.md.
After building, the Gravity library can be found under Gravity/lib
, and the executables (from Gravity/examples
) can be found under Gravity/bin/Release
The model below was implemented in Xcode:
The first figure below is a performance profile illustrating percentage of instances solved as a function of time. The figure compares Gravity, JuMP and AMPL's NL interface (used by AMPL and Pyomo) on all standard instances found in the PGLIB benchmark library.
The figure below compares model build time between Gravity and JuMP on the PGLIB benchmarks.
Gravity is licensed under the BSD 3-Clause License. Please see the LICENSE file for details.
See the list of contributors here