Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simon-lc/mehrotra.jl
Solver for complemetarity-based dynamics.
https://github.com/simon-lc/mehrotra.jl
Last synced: about 1 month ago
JSON representation
Solver for complemetarity-based dynamics.
- Host: GitHub
- URL: https://github.com/simon-lc/mehrotra.jl
- Owner: simon-lc
- License: mit
- Created: 2022-05-01T03:50:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-17T10:30:57.000Z (about 2 years ago)
- Last Synced: 2024-11-09T21:58:33.168Z (about 2 months ago)
- Language: Julia
- Size: 944 KB
- Stars: 7
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![CI](https://github.com/simon-lc/Mehrotra.jl/actions/workflows/CI.yml/badge.svg)](https://github.com/simon-lc/Mehrotra.jl/actions/workflows/CI.yml)
[![codecov](https://codecov.io/gh/simon-lc/Mehrotra.jl/branch/main/graph/badge.svg?token=XTJdkIODOX)](https://codecov.io/gh/simon-lc/Mehrotra.jl)
[![](https://img.shields.io/badge/docs-dev-blue.svg)](https://simon-lc.github.io/Mehrotra.jl/dev)# Mehrotra.jl
A solver for cone-constrained feasibility problems. The main application for this solver is implicit integration of contact dynamics.## Standard form
Problems of the following form:
```
find x = [y, z, s]subject to f(y,z,s; p) = 0,
z ∘ s = κ
z, s in K = R+ x Q^1 x ... x Q^k
```
can be optimized for- x = [y, z, s]: decision variables
- y: primal variables
- z: dual variables
- s: slack variables
- p: problem parameters
- κ: central-path parameter
- ∘: cone product
- K: Cartesian product of convex cones; nonnegative orthant R+ and second-order cones Q are currently implemented## Solution gradients
The solver is differentiable, and gradients of the solution (including internal solver variables) with respect to the problem parameters are efficiently computed.## Quick start
```julia
using Mehrotra
```## Remaining tasks
- [ ] @turbo loop vectorization
- [ ] in-place addition to a vector using symbolics
- [ ] sparse allocation-free linear solve
- [ ] warm-starting strategy (add user-provided slacks initialization method s = F(z) in general)
- [x] consistency logic for efficient dynamics query
- [ ] exploit structure of the symmetric problems
- [x] allocation-free implementation
- [ ] experiment with different relaxation scheduling strategies
- [ ] add documentation
- [ ] register package