MartaVanin / PolyhedralRelaxations.jl

LP and MILP relaxation sequences for univariate functions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status codecov

PolyhedralRelaxations.jl

PolyhedralRelaxations.jl is a Julia package to construct mixed-integer linear programming and linear programming (MILP and LP) relaxations for (i) univariate, continuous, and differentiable functions whose domain is also bounded (ii) bilinear terms with partitions on one of the variables.

Usage

  • Clone the repository.
  • Open a terminal in the repo folder and run julia --project=..
  • Hit ] to open the project environment and run test to run unit tests. If you see an error because of missing packages, run resolve.

Check the "examples" folder on how to use this package.

Bug reports and support

Please report any issues via the Github issue tracker. All types of issues are welcome and encouraged; this includes bug reports, documentation typos, feature requests, etc.

Citation

If you find PolyhedralRelaxations.jl useful in your work, we kindly request that you cite the following paper (arxiv link):

@article{SundarSanjeeviNagarajan2021,
  title={Sequence of polyhedral relaxations for nonlinear univariate functions},
  author={Sundar, Kaarthik and Sanjeevi, Sujeevraja and Nagarajan, Harsha},
  journal={Optimization and Engineering},
  pages={1--18},
  year={2021},
  publisher={Springer},
  doi = {10.1007/s11081-021-09609-z},
}

The MILP relaxations for the bilinear term is not documented any where, but is an extension of the formulation proposed for the univariate MILP relaxation in the above paper. The MILP relaxation for nonlinear, univariate functions is a disjunction of a chain of triangles. For a bilinear term, they can be thought of as a disjunction of a chain of tetrahedrons that share edges (see the documentation for a visualization).

About

LP and MILP relaxation sequences for univariate functions

License:MIT License


Languages

Language:Julia 100.0%