-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Milestone
Description
This issue is to keep track of the planned major refactoring for Alpine.jl. To complete this refactor, the following things need to be taken care of. This can be tagged as milestone for v1.0 of Alpine.jl
Relaxations and Algorithms
- Implement/migrate all univariate piecewise relaxations and LP relaxations within Alpine (w/o additional package dependencies), based on this paper: https://doi.org/10.1007/s11081-021-09609-z
- Clean-up of multilinear term (SOS-2 based) relaxations
- Add linking constraints across higher-order multilinear terms based on this paper: http://www.optimization-online.org/DB_HTML/2022/07/8974.html
- Make each of the continuous and piecewise relaxations independently invokable from other JuMP-based packages
- Partition Refinement Schemes
- Clean-up adaptive/non-uniform (two) points around the LB solutions with a degree of freedom to choose the size of the added partition
- Implement single point at the LB solution
- Implement/clean-up of bisection of largest partition when active partition cannot be further refined
- Add unit tests for all the above
Presolve methods
- Parsing: Clean up and fix open issues on parsing to isolate non-linear terms, create auxiliary variables and perform book-keeping
- Implement convexity detection of constraints and objective function and pre-filter them from partitioning
- Special structure detection for bound propagation based on this paper: https://link.springer.com/article/10.1007/s11590-019-01396-y
- Multi warm-start for local Ipopt solver (only at the presolve level but not during bounding as it can be slow).
- Add unit tests for all the above
Documentation
- Document all relaxations and update all function API references
- Update based on discussion here (Quadratic Constraints and Functions are passed to MILP solvers. #220)
Metadata
Metadata
Assignees
Labels
No labels