HEkk

Edinburgh simplex kernel - high-performance LP solver core

Edinburgh simplex kernel - high-performance LP solver core

HEkk (Edinburgh Kernel) is the main simplex implementation in HiGHS, supporting both dual and primal simplex methods.

HEkk Class: Central simplex solver managing LP data, basis, and solve state:

Key Components:

Simplex Operations:

Transformations:

Parallelism:

Algorithm

Hyper-sparse Computation: Exploits sparsity in FTRAN/BTRAN when < 10% of elements nonzero. Uses specialized scatter/gather for cache efficiency.

Complexity: Per-iteration: $O(nnz(B^{-1}·v)$) for FTRAN/BTRAN Hyper-sparse: $O(nnz(result)$) when exploiting sparsity Parallelization: independent FTRAN/BTRAN across columns

References:

  • Huangfu, Q. and Hall, J.A.J. (2018). "Parallelizing the dual revised simplex method". Math. Prog. Computation 10:119-142.
  • Hall, J.A.J. and McKinnon, K.I.M. (2005). "Hyper-sparsity in the revised simplex method and how to exploit it". Comp. Opt. Appl. 32:259-283.

See Also

Source

Header file: `highs/simplex/HEkk.h`