matbesancon / MathOptSetDistances.jl

Distances to sets for MathOptInterface
MIT License
24 stars 4 forks source link

norm ball and simplex projection #46

Closed matbesancon closed 3 years ago

matbesancon commented 3 years ago

with the recent work on FranWolfe.jl, I realized MOI has formulated many sets as cones, but not balls. Of course formulations as balls are a special case with the epigraph variable being fixed to a scalar, but they offer many advantages (projections, linear minimization oracles, etc).

Also adds simplex sets. Things still missing include tests, differentiation.

Future work: implementing the SOTA projection onto L1 and simplex from https://link.springer.com/article/10.1007/s10107-015-0946-6

matbesancon commented 3 years ago

ping @blegat not sure if you had cases where you needed norm balls rather than cones

codecov[bot] commented 3 years ago

Codecov Report

Merging #46 (dc2b269) into master (12e8702) will decrease coverage by 5.82%. The diff coverage is 46.47%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   90.21%   84.38%   -5.83%     
==========================================
  Files           5        6       +1     
  Lines         470      538      +68     
==========================================
+ Hits          424      454      +30     
- Misses         46       84      +38     
Impacted Files Coverage Δ
src/projections.jl 84.71% <46.15%> (-14.18%) :arrow_down:
src/sets.jl 50.00% <50.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 12e8702...dc2b269. Read the comment docs.

matbesancon commented 3 years ago

currently blocked by https://github.com/JuliaDiff/FiniteDifferences.jl/issues/177