HiGHS optimization solver: Difference between revisions

Content deleted Content added
Soyjbm (talk | contribs)
No edit summary
Mixed integer programming: Added a link to the branch and cut method
Tags: Mobile edit Mobile web edit
 
(8 intermediate revisions by 2 users not shown)
Line 3:
{{use British English|date=March 2022}}
{{use dmy dates|date=March 2022}}
 
{{infobox software
| title = HiGHS
| repo = {{url|https://github.com/ERGO-Code/HiGHS}}
| website = {{url|https://ergo-code.github.io/HiGHS}}
| programming language = [[C++]]
| license = [[MIT License|MIT]]
| genre = Optimization solver suite
| latest_release_version = 1.9.0
}}
 
{{infobox organization
Line 32 ⟶ 22:
* Ivet Galabova
}}
| num_staff = 56
| budget =
| website = {{url|https://www.highs.dev}}
}}
 
{{infobox software
| title = HiGHS
| repo = {{url|https://github.com/ERGO-Code/HiGHS}}
| website = {{url|https://ergo-code.github.io/HiGHS}}
| programming language = [[C++]]
| license = [[MIT License|MIT]]
| genre = Optimization solver suite
| latest_release_version = 1.910.0
}}
 
'''HiGHS''' is open-source software to solve [[linear programming]] (LP), [[Integer programming|mixed-integer programming]] (MIP), and convex [[quadratic programming]] (QP) models.<ref name="hall-2020"/>
 
Written in [[C++]] and published under an [[MIT License|MIT]] license, HiGHS provides programming interfaces to [[C (programming language)|C]], [[Python (programming language)|Python]], [[Julia (programming language)|Julia]], [[Rust (programming language)|Rust]], [[R (programming language)|R]], [[JavaScript]], [[Fortran]], and [[C Sharp (programming language)|C#]]. It has no external dependencies. A{{nbsp}}convenient thin wrapper to Python is available via the {{url|https://pypi.org/project/highspy/|highspy}} [[Python Package Index|PyPI]] package. HiGHS is also callable via [[NuGet]].<ref name="nuget-repo">
{{cite web
| title = Highs.Native
| url = https://nuget.org/packages/Highs.Native/
| access-date = 2025-05-13
}}
</ref>
 
Although generally single-threaded, some solver components can utilize multi-core architectures and, from {{URL|https://github.com/ERGO-Code/HiGHS/releases/tag/v1.10.0|Version 1.10.0}}, can run its first order LP solver on NVIDIA GPUs. HiGHS is designed to solve large-scale models and exploits [[sparse matrix|problem sparsity]]. Its performance relative to commercial and other open-source software is reviewed periodically using industry-standard [[Benchmark (computing)|benchmarks]].<ref name="mittelmann-benchmarks"/>
 
The term '''HiGHS''' may also refer to both the underlying project and the small team leading the software development.
Line 47 ⟶ 53:
== History ==
 
HiGHS is based on solvers written by PhD students from the Optimization and Operational Research Group{{nnbsp}}<ref name="uoe-som-oor"/> in the School of Mathematics at the [[University of Edinburgh]]. Its origins can be traced back to late 2016, when Ivet Galabova combined her LP presolve with Julian Hall's simplex crash procedure and Huangfu Qi's dual simplex solver to solve a class of industrial LP problems faster than the best open-source solvers at that time.<ref Since then, a C++name="galabova-2022">
{{nbsp}}[[applicationcite programming interfacethesis
|API]] andlast1 other= languageGalabova interfaces have been developed, and modelling utilities and other categories of solver| havefirst1 been= added.Ivet
| title = Presolve, crash and software engineering for HiGHS
| type = PhD
| date = 2022
| publisher = The University of Edinburgh
| ___location = Edinburgh, United Kingdom
| url = https://era.ed.ac.uk/bitstream/handle/1842/39725/GalabovaI_2022.pdf
| access-date = 2025-05-13
}}
</ref> Since then, a C++{{nbsp}}[[application programming interface|API]] and other language interfaces have been developed, and modelling utilities and other categories of solver have been added.
 
In early{{nbhyph}}2022, the [[open energy system models#GenX|GenX]] and [[open energy system models#PyPSA|PyPSA]] open energy system modelling projects endorsed a funding application for the HiGHS solver in an effort to reduce their [[Open Energy Modelling Initiative|community]] reliance on proprietary libraries.<ref name="parzen-etal-2022"/> That appeal resulted in {{valcurrency|amount=76000|pcode=CAD|fmt=CAN$gaps}} in funding from Invenia Labs, Cambridge, United Kingdom in July{{nbsp}}2022.<ref name="invenia-donation"/>
 
== Solvers ==
Line 63 ⟶ 80:
=== Mixed integer programming ===
 
HiGHS has a [[branch and cut|branch-and-cut]] solver for MIP problems. Its performance relative to commercial and other open-source software is regularly reported using industry-standard benchmarks.<ref name="mittelmann-mip"/>
 
=== Quadratic programming ===