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
+55Lines changed: 55 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -14,3 +14,58 @@ Extends MathOptInterface (MOI) to low-rank constraints.
14
14
See "Why you should stop using the monomial basis" at [JuMP-dev 2024](https://jump.dev/meetings/jumpdev2024/) : [slides](https://jump.dev/assets/jump-dev-workshops/2024/legat.html)[video](https://youtu.be/CGPHaHxCG2w)
15
15
16
16
Started as an [MOI issue](https://github.com/jump-dev/MathOptInterface.jl/issues/2197) and [MOI PR](https://github.com/jump-dev/MathOptInterface.jl/pull/2198).
17
+
18
+
## Use with JuMP
19
+
20
+
To use LowRankOpt with [JuMP](https://github.com/jump-dev/JuMP.jl), use
21
+
add its bridge to your model with:
22
+
```julia
23
+
model =Model()
24
+
LRO.add_all_bridges(model, Float64)
25
+
```
26
+
Then, either use the `LRO.SetDotProducts` or `LRO.LinearCombinationInSet`.
27
+
[Check with `print_active_bridges(model)`](https://jump.dev/JuMP.jl/stable/tutorials/conic/ellipse_approx/)
28
+
to see if the solver receives the low-rank constraint or if it is transformed to classical constraints.
29
+
The solvers that support `LRO.SetDotProducts` are:
If you use `LRO.LinearCombinationInSet` while the solvers supports `LRO.SetDotProducts` or vice versa, simply [use a `Dualization.jl` layer](https://jump.dev/JuMP.jl/stable/tutorials/conic/dualization/).
34
+
35
+
Note that `Hypatia.jl` only supports `LRO.SetDotProducts{LRO.WITHOUT_SET}` or `LRO.LinearCombinationInSet{LRO.WITHOUT_SET}` and not the `LRO.WITH_SET` version.
36
+
37
+
## Example
38
+
39
+
Below is [this example](https://github.com/jump-dev/SDPLR.jl?tab=readme-ov-file#example-modifying-the-rank-and-checking-optimality)
0 commit comments