Skip to content

Commit 3560582

Browse files
committed
Add some docs about NLP
1 parent bf07d31 commit 3560582

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,17 @@ It currently supports the following problem types:
5151
- Mixed-Integer Quadratically Constrained Quadratic Programming (MIQCQP)
5252
- Second-Order Cone Programming (SOCP)
5353
- Mixed-Integer Second-Order Cone Programming (MISOCP)
54-
- Exponential Cone Programming
54+
- Exponential Cone Programming (ECP)
55+
- Mixed-Integer Exponential Cone Programming (MIECP)
56+
- Nonlinear Programming (NLP)
5557

5658
## What optimizers does PyOptInterface support?
5759
It currently supports the following optimizers:
5860
- [COPT](https://shanshu.ai/copt) ( Commercial )
5961
- [Gurobi](https://www.gurobi.com/) ( Commercial )
60-
- [HiGHS](https://github.com/ERGO-Code) ( Open source )
62+
- [HiGHS](https://github.com/ERGO-Code/HiGHS) ( Open source )
6163
- [Mosek](https://www.mosek.com/) ( Commercial )
64+
- [Ipopt](https://github.com/coin-or/Ipopt) ( Open source )
6265

6366
## Short Example
6467
```python

docs/source/getting_started.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ pip install pyoptinterface[highs]
2828

2929
It will install a full-featured binary version of HiGHS optimizer via [highsbox](http://github.com/metab0t/highsbox), which can be used with PyOptInterface.
3030

31+
In order to use nonlinear programming solvers (currently we only support IPOPT), you should install extra dependencies like:
32+
33+
```
34+
pip install pyoptinterface[nlp]
35+
```
36+
37+
It will install the [`llvmlite`](https://github.com/numba/llvmlite) and [`tccbox`](https://github.com/metab0t/tccbox) package as the JIT compilers required by nonlinear programming.
38+
3139
We will introduce how to set up the optimizers to use with PyOptInterface in this page.
3240

3341
## Setup of optimizers
@@ -119,7 +127,7 @@ For Mosek, the automatic detection looks for the following things in order:
119127

120128
### HiGHS
121129

122-
The currently supported version is **1.7.x**. Other versions may work but are not tested.
130+
The currently supported version is **1.8.x**. Other versions may work but are not tested.
123131

124132
For HiGHS, the automatic detection looks for the following things in order:
125133
1. The environment variable `HiGHS_HOME` set by the user
@@ -128,6 +136,15 @@ For HiGHS, the automatic detection looks for the following things in order:
128136

129137
For HiGHS, we recommend installing the `highsbox` PyPI package, which provides a full-featured binary version of HiGHS optimizer for you.
130138

139+
### Ipopt
140+
141+
The currently supported version is **3.14.x**. Other versions may work but are not tested.
142+
143+
For Ipopt, the automatic detection looks for the following things in order:
144+
1. `ipopt.dll`/`libipopt.so`/`libipopt.dylib` in the system, we also look for `ipopt-3.dll`/`libipopt.dll`/`libipopt-3.dll` on Windows.
145+
146+
We recommend using the official binary from [GitHub](https://github.com/coin-or/Ipopt/releases) if you work on Windows, since compiling Ipopt on Windows from source is not an easy task.
147+
131148
## Manually specifying the path of the dynamic library of optimizer
132149

133150
If the automatic detection fails or you want to use the optimizer in a customized location, you can manually specify the path of the dynamic library of the optimizer.

0 commit comments

Comments
 (0)