Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

HiGHS optimization solver

From Wikipedia, the free encyclopedia
Numerical software

HiGHS
Stable release
1.10.0
Repositorygithub.com/ERGO-Code/HiGHS
Written inC++
TypeOptimization solver suite
LicenseMIT
Websiteergo-code.github.io/HiGHS
HiGHS
HeadquartersEdinburgh
Location
  • United Kingdom
Director
Julian Hall
Key people
  • Ivet Galabova
Staff5
Websitewww.highs.dev

HiGHS is open-source software to solvelinear programming (LP),mixed-integer programming (MIP), and convexquadratic programming (QP) models.[1]

Written inC++ and published under anMIT license, HiGHS provides programming interfaces toC,Python,Julia,Rust,R,JavaScript,Fortran, andC#. It has no external dependencies. A convenient thin wrapper to Python is available via thehighspyPyPI package. HiGHS is also callable vianuget.

Although generally single-threaded, some solver components can utilize multi-core architectures and, fromVersion 1.10.0, can run its first order LP solver on NVIDIA GPUs. HiGHS is designed to solve large-scale models and exploitsproblem sparsity. Its performance relative to commercial and other open-source software is reviewed periodically using industry-standardbenchmarks.[2]

The termHiGHS may also refer to both the underlying project and the small team leading the software development.

History

[edit]

HiGHS is based on solvers written by PhD students from the Optimization and Operational Research Group [3] in the School of Mathematics at theUniversity 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. Since then, a C++ API and other language interfaces have been developed, and modelling utilities and other categories of solver have been added.

In early‑2022, theGenX andPyPSA open energy system modelling projects endorsed a funding application for the HiGHS solver in an effort to reduce theircommunity reliance on proprietary libraries.[4] That appeal resulted inCAN$76000 in funding from Invenia Labs, Cambridge, United Kingdom in July 2022.[5]

Solvers

[edit]

Simplex

[edit]

HiGHS has implementations of the primal and dualrevised simplex method for solving LP problems, based on techniques described by Hall and McKinnon (2005),[6] and Huangfu and Hall (2015, 2018).[7][8] These include the exploitation of hyper-sparsity when solving linear systems in the simplex implementations and, for the dual simplex solver, exploitation of multi-threading. The simplex solver's performance relative to commercial and other open-source software is regularly reported using industry-standard benchmarks.[9]

Interior point

[edit]

HiGHS has aninterior point method implementation for solving LP problems, based on techniques described by Schork and Gondzio (2020).[10] It is notable for solving the Newton system iteratively by apreconditioned conjugate gradient method, rather than directly, via anLDL* decomposition. The interior point solver's performance relative to commercial and other open-source software is regularly reported using industry-standard benchmarks.[11]

Mixed integer programming

[edit]

HiGHS has a branch-and-cut solver for MIP problems. Its performance relative to commercial and other open-source software is regularly reported using industry-standard benchmarks.[12]

Quadratic programming

[edit]

HiGHS has an active set solver for convexquadratic programming (QP) problems.

Applications using HiGHS

[edit]

HiGHS can be used as a stand‑alone solver library in bespoke applications, but numerical computing environments, optimization programming packages, and domain‑specific numerical analysis projects are starting to incorporate the software into their systems also.

Numerical computing support

[edit]

As powerful open‑source software under active development, HiGHS is increasingly being adopted byapplication software projects that provide support fornumerical analysis. TheSciPy scientific library, for instance, uses HiGHS as its LP solver [13] from release 1.6.0 [14] and the HiGHS MIP solver fordiscrete optimization from release 1.9.0.[15] As well as offering an interface to HiGHS, theJuMP modelling language forJulia[16] also describes the specific use of HiGHS in its user documentation.[17] The MIP solver in theNAG library is based on HiGHS ,[18] and HiGHS is the default LP and MIP solver in the MathWorks Optimization Toolbox .[19]

Open energy system models

[edit]

HiGHS is now also used by some domain‑specific applications, including oneopen energy system modeling environment. The web‑based version of thePyPSA European multi‑sector model deploys the HiGHS solver by default from February 2022.[20][21] The GridCal project developing research‑oriented power systems software added optional support for HiGHS in February 2022.[22]

See also

[edit]

External links

[edit]

References

[edit]
  1. ^Hall, Julian (21 September 2020).HiGHS: High-performance open-source software for linear optimization(PDF). Edinburgh, United Kingdom: University of Edinburgh. Retrieved27 February 2022. Presentation.
  2. ^"Benchmarks for optimization software".Decision tree for optimization software. March 2022. Retrieved31 March 2022.
  3. ^"Optimization and Operational Research: School of Mathematics". March 2022. Retrieved31 March 2022.
  4. ^Parzen, Maximilian; Hall, Julian; Jenkins, Jesse; Brown, Tom (31 March 2022).Optimization solvers: the missing link for a fully open-source energy system modelling ecosystem(PDF).doi:10.5281/zenodo.6409432. Retrieved3 April 2022. Eight page funding proposal which also offers a relatively detailed roadmap.Open access icon
  5. ^"A $76k donation from Invenia Labs has been received to support HiGHS".School of Mathematics, Edinburgh University. Edinburgh, Scotland. 21 July 2022. Retrieved21 July 2022.
  6. ^Hall, JAJ; McKinnon, KIM (1 December 2005)."Hyper-sparsity in the revised Simplex method and how to exploit it"(PDF).Computational Optimization and Applications.32 (3):259–283.doi:10.1007/s10589-005-4802-0.ISSN 1573-2894.S2CID 15967632. Retrieved1 April 2022. Linked PDF is an early preprint.
  7. ^Huangfu, Q; Hall, JAJ (April 2015)."Novel update techniques for the revised simplex method"(PDF).Computational Optimization and Applications.60 (3):587–608.doi:10.1007/s10589-014-9689-1.ISSN 0926-6003.S2CID 254416722. Retrieved31 March 2022.
  8. ^Huangfu, Q; Hall, JAJ (1 March 2018)."Parallelizing the dual revised simplex method"(PDF).Mathematical Programming Computation.10 (1):119–142.doi:10.1007/s12532-017-0130-5.ISSN 1867-2957.S2CID 4641325. Retrieved27 February 2022.Open access icon
  9. ^"Benchmark of Simplex LP solvers".Decision tree for optimization software. March 2022. Archived fromthe original on 11 November 2021. Retrieved31 March 2022.
  10. ^Schork, Lukas; Gondzio, Jacek (December 2020)."Implementation of an interior point method with basis preconditioning"(PDF).Mathematical Programming Computation.12 (4):603–635.doi:10.1007/s12532-020-00181-8.hdl:20.500.11820/00a692a1-3372-41f6-8baf-f45396efcc0e.ISSN 1867-2949.S2CID 53444331. Retrieved31 March 2022.
  11. ^"Benchmark of Barrier LP solvers".Decision tree for optimization software. March 2022. Retrieved31 March 2022.
  12. ^"The MIPLIB2017 Benchmark Instances".Decision tree for optimization software. March 2022. Retrieved31 March 2022.
  13. ^"SciPy — scipy.optimize.linprog".SciPy Optimization. March 2022. Retrieved1 April 2022.
  14. ^"SciPy — Release 1.6.0 Highlights".SciPy Optimization. March 2022. Retrieved2 April 2022.
  15. ^"SciPy — Release 1.9.0 Highlights".SciPy Optimization. May 2022. Retrieved5 May 2022.
  16. ^"JuMP".JuMP. March 2022. Retrieved1 April 2022.
  17. ^"JuMP — Models".JuMP. March 2022. Retrieved1 April 2022.
  18. ^"NAG Library Manual, Mark 29.3".NAG Optimization Modelling Suite. January 2024. Retrieved25 March 2024.
  19. ^"Optimization Toolbox Release Notes".Mathworks Optimization Toolbox. March 2024. Retrieved22 March 2024.
  20. ^Brown, Tom."PyPSA-Eur-Sec optimization server". Retrieved22 July 2022. A web interface to PyPsa‑Eur‑Sec model.
  21. ^"GitHub commit: Switch solver from Gurobi to HiGHS".PyPSA server project. 3 February 2022. Retrieved22 July 2022.
  22. ^"GitHub commit: Added Highs for linux".GridCal project. 3 February 2022. Retrieved24 July 2022.


Data formats
Modeling tools
Solvers
LP,MILP
QP, MIQP
QCP, MIQCP
SOCP, MISOCP
SDP, MISDP
NLP, MINLP
GO
CP
Biological
Environmental
Sustainability
Social
Related topics
Retrieved from "https://en.wikipedia.org/w/index.php?title=HiGHS_optimization_solver&oldid=1281475118"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp