SHOT

Supporting Hyperplane Optimization Toolkit for convex MINLP

Layer 4

SHOT

The Supporting Hyperplane Optimization Toolkit - a solver for convex mixed-integer nonlinear programming (MINLP) problems. Developed at Åbo Akademi University.

Layer 4 | 573 files | 26 with algorithm annotations

Core Algorithms

Extended Supporting Hyperplane (ESH)

The signature algorithm of SHOT. Given a nonlinear constraint $g(x) \leq 0$:

  1. Find interior point $x°$ where $g(x°) < 0$
  2. Rootsearch: Find boundary point $x^*$ on line between $x°$ and infeasible $\hat{x}$
  3. Generate cut: Supporting hyperplane $\nabla g(x^) \cdot (x - x^) \leq 0$

ESH cuts are tighter than traditional Extended Cutting Plane (ECP) cuts because they're generated at the boundary rather than at infeasible points.

Outer Approximation Framework

Cut Generation

Primal Heuristics

Annotated Components

ComponentDescription
DualSolver.hMIP-based dual bound computation
Tasks/TaskSelectHyperplanePointsESH.hESH cut generation
Tasks/TaskSelectHyperplanePointsECP.hECP cut generation
Tasks/TaskFindInteriorPoint.hInterior point via slack maximization
Tasks/TaskAddIntegerCuts.hNo-good cuts (Balas-Jeroslow)
Tasks/TaskPerformBoundTightening.hOBBT (optimization-based)
Tasks/TaskReformulateProblem.hMcCormick envelopes, auxiliary variables
RootsearchMethod/Bisection for boundary points
NLPSolver/Ipopt integration, minimax solver

Mathematical Foundation

Outer approximation of convex set ${x : g(x) \leq 0}$:

$$\bigcap_{k=1}^{K} {x : \nabla g(x^k) \cdot (x - x^k) \leq 0}$$

where $x^k$ are points on the boundary of the feasible region.

References

Classes