All Projects → matbesancon → MathOptSetDistances.jl

matbesancon / MathOptSetDistances.jl

Licence: MIT license
Distances to sets for MathOptInterface

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to MathOptSetDistances.jl

Open-L2O
Open-L2O: A Comprehensive and Reproducible Benchmark for Learning to Optimize Algorithms
Stars: ✭ 108 (+350%)
Mutual labels:  convex-optimization
czmod
🚀 Native Module Written in C to Boost z.lua !!
Stars: ✭ 35 (+45.83%)
Mutual labels:  jump
convex-optimization-for-all.github.io
모두를 위한 컨백스 최적화
Stars: ✭ 89 (+270.83%)
Mutual labels:  convex-optimization
osqp
The Operator Splitting QP Solver
Stars: ✭ 929 (+3770.83%)
Mutual labels:  convex-optimization
jumpfs
Jumpfs is a cross-shell bookmarking system for files. folders, urls and shell-comands. It works in PowerShell, Bash, and Cmd.
Stars: ✭ 30 (+25%)
Mutual labels:  jump
Enhancd
🚀 A next-generation cd command with your interactive filter
Stars: ✭ 2,049 (+8437.5%)
Mutual labels:  jump
awesome-nn-optimization
Awesome list for Neural Network Optimization methods.
Stars: ✭ 39 (+62.5%)
Mutual labels:  convex-optimization
z.vim
Help jumping to the most used directories in vim.
Stars: ✭ 19 (-20.83%)
Mutual labels:  jump
gams.jl
A MathOptInterface Optimizer to solve JuMP models using GAMS
Stars: ✭ 27 (+12.5%)
Mutual labels:  jump
PiecewiseDeterministicMarkovProcesses.jl
Piecewise Deterministic Markov Processes in Julia
Stars: ✭ 20 (-16.67%)
Mutual labels:  jump
Deep-Learning-Optimization-Algorithms
Visualization of various deep learning optimization algorithms using PyTorch automatic differentiation and optimizers.
Stars: ✭ 47 (+95.83%)
Mutual labels:  convex-optimization
JumpJump
微信小游戏 跳一跳 kotlin PC破解
Stars: ✭ 70 (+191.67%)
Mutual labels:  jump
Z.lua
⚡ A new cd command that helps you navigate faster by learning your habits.
Stars: ✭ 2,164 (+8916.67%)
Mutual labels:  jump
bio ik
MoveIt kinematics_base plugin based on particle optimization & GA
Stars: ✭ 104 (+333.33%)
Mutual labels:  convex-optimization
convex-optimization-class
APPM 5630 at CU Boulder
Stars: ✭ 30 (+25%)
Mutual labels:  convex-optimization
gibbous
Convex optimization for java and scala, built on Apache Commons Math
Stars: ✭ 17 (-29.17%)
Mutual labels:  convex-optimization
vscode-jump
🏃‍♂️ Jump/Select to the Start/End of a word in VSCode
Stars: ✭ 67 (+179.17%)
Mutual labels:  jump
optaplanner-quickstarts
OptaPlanner quick starts for AI optimization: many use cases shown in many different technologies.
Stars: ✭ 226 (+841.67%)
Mutual labels:  mathematical-optimization
kn
Alternative to cd. Navigate by typing abbreviations of paths.
Stars: ✭ 68 (+183.33%)
Mutual labels:  jump
Zoxide
A smarter cd command. Supports all major shells.
Stars: ✭ 4,422 (+18325%)
Mutual labels:  jump

MathOptSetDistances

Build Status Coverage DOI

Set of functions to compute distances and projections to sets defined in MathOptInterface.jl.

Distance to set

set_distance(d::D, v::V, s::S) defines the distance of a point v to a set s. The distance is always 0 if v ∈ s. S is a MOI.AbstractSet, v is a scalar or vector value and d a type of distance that is a subtype of AbstractDistance.

New sets should implement at least set_distance(::DefaultDistance, v::V, s::MySet).

Projection on set

projection_on_set(d::D, v, s::S) returns the point on S that is closest to v with respect to the distance d. projection_gradient_on_set returns the gradient of this projection, i.e. the transpose of the Jacobian.

Gradients as ChainRules

Gradients projection_gradient_on_set eagerly computes the full derivative matrix. This is often simpler to test and implement, but leads to unnecessary allocations and expensive operations. They are also implemented using ChainRulesCore.jl methods rrule and frule. Both methods should be implemented for each derivative and tested against projection_gradient_on_set and FiniteDifferences.jl.

Special matrix types

When some gradients or projections have structural zeros (sparsity patterns), they can and should return non-standard matrices including FillArrays Zeros, Eyes, Ones, Fill, sparse arrays and LinearAlgebra.Diagonal.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].