fbpx
Wikipedia

HiGHS optimization solver

HiGHS is open-source software to solve linear programming (LP), mixed-integer programming (MIP), and convex quadratic programming (QP) models.[1]

HiGHS
Stable release
1.7.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
Staff
3
Websitewww.highs.dev

Written in C++ and published under an MIT license, HiGHS provides programming interfaces to C, Python, Julia, Rust, JavaScript, Fortran, and C#. It has no external dependencies. A convenient thin wrapper to Python is available via the highspy PyPI package.

Although generally single-threaded, some solver components can utilize multi-core architectures. HiGHS is designed to solve large-scale models and exploits problem sparsity. Its performance relative to commercial and other open-source software is reviewed periodically using industry-standard benchmarks.[2]

The term HiGHS 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 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. 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, the GenX and PyPSA open energy system modelling projects endorsed a funding application for the HiGHS solver in an effort to reduce their community reliance on proprietary libraries.[4] That appeal resulted in CAN$76000 in funding from Invenia Labs, Cambridge, United Kingdom in July 2022.[5]

Solvers edit

Simplex edit

HiGHS has implementations of the primal and dual revised 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 an interior 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 a preconditioned conjugate gradient method, rather than directly, via an LDL* 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 convex quadratic 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 by application software projects that provide support for numerical analysis. The SciPy scientific library, for instance, uses HiGHS as its LP solver [13] from release 1.6.0 [14] and the HiGHS MIP solver for discrete optimization from release 1.9.0.[15] As well as offering an interface to HiGHS, the JuMP modelling language for Julia[16] also describes the specific use of HiGHS in its user documentation.[17] The MIP solver in the NAG 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 one open energy system modeling environment. The web‑based version of the PyPSA 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

  • GitHub repository
  • Software documentation

References edit

  1. ^ Hall, Julian (21 September 2020). HiGHS: High-performance open-source software for linear optimization (PDF). Edinburgh, United Kingdom: University of Edinburgh. Retrieved 27 February 2022. Presentation.
  2. ^ "Benchmarks for optimization software". Decision tree for optimization software. March 2022. Retrieved 31 March 2022.
  3. ^ "Optimization and Operational Research: School of Mathematics". March 2022. Retrieved 31 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. Retrieved 3 April 2022. Eight page funding proposal which also offers a relatively detailed roadmap.  
  5. ^ "A $76k donation from Invenia Labs has been received to support HiGHS". School of Mathematics, Edinburgh University. Edinburgh, Scotland. 21 July 2022. Retrieved 21 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. Retrieved 1 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. Retrieved 31 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. Retrieved 27 February 2022.  
  9. ^ "Benchmark of Simplex LP solvers". Decision tree for optimization software. March 2022. Retrieved 31 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. Retrieved 31 March 2022.
  11. ^ "Benchmark of Barrier LP solvers". Decision tree for optimization software. March 2022. Retrieved 31 March 2022.
  12. ^ "The MIPLIB2017 Benchmark Instances". Decision tree for optimization software. March 2022. Retrieved 31 March 2022.
  13. ^ "SciPy — scipy.optimize.linprog". SciPy Optimization. March 2022. Retrieved 1 April 2022.
  14. ^ "SciPy — Release 1.6.0 Highlights". SciPy Optimization. March 2022. Retrieved 2 April 2022.
  15. ^ "SciPy — Release 1.9.0 Highlights". SciPy Optimization. May 2022. Retrieved 5 May 2022.
  16. ^ "JuMP". JuMP. March 2022. Retrieved 1 April 2022.
  17. ^ "JuMP — Models". JuMP. March 2022. Retrieved 1 April 2022.
  18. ^ "NAG Library Manual, Mark 29.3". NAG Optimization Modelling Suite. January 2024. Retrieved 25 March 2024.
  19. ^ "Optimization Toolbox Release Notes". Mathworks Optimization Toolbox. March 2024. Retrieved 22 March 2024.
  20. ^ Brown, Tom. "PyPSA-Eur-Sec optimization server". Retrieved 22 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. Retrieved 22 July 2022.
  22. ^ "GitHub commit: Added Highs for linux". GridCal project. 3 February 2022. Retrieved 24 July 2022.


highs, optimization, solver, highs, open, source, software, solve, linear, programming, mixed, integer, programming, convex, quadratic, programming, models, highsstable, release1, 0repositorygithub, ergo, code, highswritten, typeoptimization, solver, suitelice. HiGHS is open source software to solve linear programming LP mixed integer programming MIP and convex quadratic programming QP models 1 HiGHSStable release1 7 0Repositorygithub wbr com wbr ERGO Code wbr HiGHSWritten inC TypeOptimization solver suiteLicenseMITWebsiteergo code wbr github wbr io wbr HiGHSHiGHSHeadquartersEdinburghLocationUnited KingdomDirectorJulian HallKey peopleIvet GalabovaStaff3Websitewww wbr highs wbr devWritten in C and published under an MIT license HiGHS provides programming interfaces to C Python Julia Rust JavaScript Fortran and C It has no external dependencies A convenient thin wrapper to Python is available via the highspy PyPI package Although generally single threaded some solver components can utilize multi core architectures HiGHS is designed to solve large scale models and exploits problem sparsity Its performance relative to commercial and other open source software is reviewed periodically using industry standard benchmarks 2 The term HiGHS may also refer to both the underlying project and the small team leading the software development Contents 1 History 2 Solvers 2 1 Simplex 2 2 Interior point 2 3 Mixed integer programming 2 4 Quadratic programming 3 Applications using HiGHS 3 1 Numerical computing support 3 2 Open energy system models 4 See also 5 External links 6 ReferencesHistory editHiGHS is based on solvers written by PhD students from the Optimization and Operational Research Group 3 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 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 the GenX and PyPSA open energy system modelling projects endorsed a funding application for the HiGHS solver in an effort to reduce their community reliance on proprietary libraries 4 That appeal resulted in CAN 76000 in funding from Invenia Labs Cambridge United Kingdom in July 2022 5 Solvers editSimplex edit HiGHS has implementations of the primal and dual revised 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 an interior 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 a preconditioned conjugate gradient method rather than directly via an LDL 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 convex quadratic programming QP problems Applications using HiGHS editHiGHS 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 by application software projects that provide support for numerical analysis The SciPy scientific library for instance uses HiGHS as its LP solver 13 from release 1 6 0 14 and the HiGHS MIP solver for discrete optimization from release 1 9 0 15 As well as offering an interface to HiGHS the JuMP modelling language for Julia 16 also describes the specific use of HiGHS in its user documentation 17 The MIP solver in the NAG 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 one open energy system modeling environment The web based version of the PyPSA 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 editList of optimization software Mathematical optimization Numerical benchmarking Simplex methodExternal links editGitHub repository Software documentationReferences edit Hall Julian 21 September 2020 HiGHS High performance open source software for linear optimization PDF Edinburgh United Kingdom University of Edinburgh Retrieved 27 February 2022 Presentation Benchmarks for optimization software Decision tree for optimization software March 2022 Retrieved 31 March 2022 Optimization and Operational Research School of Mathematics March 2022 Retrieved 31 March 2022 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 Retrieved 3 April 2022 Eight page funding proposal which also offers a relatively detailed roadmap nbsp A 76k donation from Invenia Labs has been received to support HiGHS School of Mathematics Edinburgh University Edinburgh Scotland 21 July 2022 Retrieved 21 July 2022 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 Retrieved 1 April 2022 Linked PDF is an early preprint 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 Retrieved 31 March 2022 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 Retrieved 27 February 2022 nbsp Benchmark of Simplex LP solvers Decision tree for optimization software March 2022 Retrieved 31 March 2022 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 Retrieved 31 March 2022 Benchmark of Barrier LP solvers Decision tree for optimization software March 2022 Retrieved 31 March 2022 The MIPLIB2017 Benchmark Instances Decision tree for optimization software March 2022 Retrieved 31 March 2022 SciPy scipy optimize linprog SciPy Optimization March 2022 Retrieved 1 April 2022 SciPy Release 1 6 0 Highlights SciPy Optimization March 2022 Retrieved 2 April 2022 SciPy Release 1 9 0 Highlights SciPy Optimization May 2022 Retrieved 5 May 2022 JuMP JuMP March 2022 Retrieved 1 April 2022 JuMP Models JuMP March 2022 Retrieved 1 April 2022 NAG Library Manual Mark 29 3 NAG Optimization Modelling Suite January 2024 Retrieved 25 March 2024 Optimization Toolbox Release Notes Mathworks Optimization Toolbox March 2024 Retrieved 22 March 2024 Brown Tom PyPSA Eur Sec optimization server Retrieved 22 July 2022 A web interface to PyPsa Eur Sec model GitHub commit Switch solver from Gurobi to HiGHS PyPSA server project 3 February 2022 Retrieved 22 July 2022 GitHub commit Added Highs for linux GridCal project 3 February 2022 Retrieved 24 July 2022 Retrieved from https en wikipedia org w index php title HiGHS optimization solver amp oldid 1215662514, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.