Skip to content

Alpine refactoring (v1.0 milestone) #216

@harshangrjn

Description

@harshangrjn

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
  • 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

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions