You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+14-6Lines changed: 14 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,6 @@
1
1
# PEPit.jl
2
2
3
-
Hello world!
4
-
5
-
`PEPit.jl` is a native Julia implementation of the Performance Estimation Programming (PEP) methodology [1,2,3] and the Python package `PEPit`[4] for worst-case analysis of first-order optimization algorithms. The core idea in PEP is to model the design and analysis of first-order optimization algorithms themselves as higher level optimization problems called performance estimation problems (PEPs) that are semidefinite programming programs (SDPs). We then solve such SDPs numerically to obtain tight worst-case bounds for known algorithms and also to discover new algorithms under suitable conditions.
3
+
`PEPit.jl` is a native Julia implementation of the Performance Estimation Programming (PEP) methodology [1,2,3] and the Python package `PEPit`[4] for worst-case analysis of first-order optimization algorithms. The core idea in PEP is to model the design and analysis of first-order optimization algorithms as higher-level optimization problems called performance estimation problems (PEPs), which are semidefinite programs (SDPs). We then solve these SDPs numerically to obtain tight worst-case bounds for known algorithms and also to discover new algorithms under suitable conditions.
6
4
7
5
The intent of this Julia package is to be functionally equivalent to existing packages such as `PESTO`[5] and `PEPit` while providing a clean, Julia-native API along with a broader support of commercial and open-source solvers under the `JuMP` ecosystem [6].
8
6
@@ -14,7 +12,7 @@ You can install the package by typing the following in the Julia REPL:
14
12
] add PEPit
15
13
```
16
14
17
-
To install directly from the github repo, type the following in the Julia REPL:
15
+
To install directly from the GitHub repo, type the following in the Julia REPL:
From this link, you can either download the `Pluto` notebook file and run it locally with `Pluto`, or run the notebook with [`Binder`](https://plutojl.org/en/docs/binder/) directly in your browser!
33
+
28
34
## Minimal example
29
35
30
36
Below is a condensed example following the style of the examples in `examples/`; for other examples please take a look in the `examples/` folder. It computes a worst-case bound for accelerated gradient method for smooth strongly convex minimization (please also see the `Step-by-Step tutorial` for more details):
@@ -94,7 +100,9 @@ We also have many examples in the `examples` folder of the package, please take
94
100
95
101
## Solvers
96
102
97
-
`PEPit.jl` uses `JuMP` and builds an SDP internally. Currently we support: `Clarabel` and `Mosek`, but we plan to add more solvers in the future. Note: using `Mosek` requires a valid license to use (free for academic use), where `Clarabel` is open-source.
103
+
`PEPit.jl` uses `JuMP` and builds an SDP internally. The default backend in `solve!` is `Mosek.Optimizer`, and you can pass another JuMP-compatible SDP solver through the `solver` keyword (for example, `Clarabel.Optimizer` if you `using Clarabel`).
104
+
105
+
Currently documented/used solvers in this repository are `Mosek` and `Clarabel`. Note: using `Mosek` requires a valid license (free for academic use), while `Clarabel` is open-source.
98
106
99
107
## Repository layout
100
108
@@ -135,4 +143,4 @@ Please report any issues via the `Github Issue Tracker`. All types of issues are
135
143
136
144
[5] A. Taylor, J. Hendrickx, F. Glineur (2017). [Performance Estimation Toolbox (PESTO): automated worst-case analysis of first-order optimization methods](https://adrientaylor.github.io/share/PESTO_CDC_2017.pdf). In 56th IEEE Conference on Decision and Control (CDC).
137
145
138
-
[6] M. Lubin, O. Dowson, J.D. Garcia, J. Huchette, B. Legat, J.P. Vielma . [JuMP 1.0: Recent improvements to a modeling language for mathematical optimization.](https://arxiv.org/pdf/2206.03866). Mathematical Programming Computation. 2023 Sep;15(3):581-9.
146
+
[6] M. Lubin, O. Dowson, J.D. Garcia, J. Huchette, B. Legat, J.P. Vielma . [JuMP 1.0: Recent improvements to a modeling language for mathematical optimization.](https://arxiv.org/pdf/2206.03866). Mathematical Programming Computation. 2023 Sep;15(3):581-9.
0 commit comments