求解器介绍
1.Eigen求解器学习和介绍
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. It supports all matrix sizes, from small fixed-size matrices to arbitrarily large dense matrices, and even sparse matrices.
It supports all standard numeric types, including std::complex, integers, and is easily extensible to custom numeric types.
It supports various matrix decompositions and geometry features.
Its ecosystem of unsupported modules provides many specialized features such as non-linear optimization, matrix functions, a polynomial solver, FFT, and much more.
Eigen仓库:https://gitlab.com/libeigen/eigen/
https://en.wikipedia.org/wiki/Eigen_(C%2B%2B_library)
https://gitcode.com/yantuguiguziPGJ/TestEigenAXEqualB/overview?utm_source=csdn_user_project_gitcode&null
2.osqp求解器学习和介绍
The linear system solver is a core part of the OSQP algorithm. Depending on the problem instance, different linear system solvers can greatly speedup or reduce the computation time of OSQP.
osqp仓库:https://osqp.org/docs/get_started/linear_system_solvers.html
https://github.com/osqp/osqp
3.Ceres求解器学习和介绍
Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It can be used to solve Non-linear Least Squares problems with bounds constraints and general unconstrained optimization problems. It is a mature, feature rich, and performant library that has been used in production at Google since 2010.
Ceres仓库:https://github.com/ceres-solver/ceres-solver
4.gurobi求解器学习和介绍
With our powerful algorithms, you can add complexity to your model to better represent the real world, and still solve your model within the available time.
The performance gap grows as model size and difficulty increase.
Gurobi has a history of making continual improvements across a range of problem types, with a more than 75x speedup on MILP since version 1.1.
Gurobi is tuned to optimize performance over a wide range of instances.
Gurobi is tested thoroughly for numerical stability and correctness using an internal library of over 10,000 models from industry and academia.
gurobi仓库:https://www.gurobi.com/
5.MKL求解器学习和介绍
Intel® Math Kernel Library (Intel® MKL) is a highly optimized, extensively threaded, and thread-safe library of mathematical functions for engineering, scientific, and financial applications that require maximum performance. Intel MKL 11.3 Update 3 packages are now ready for download. Intel MKL is available as part of the Intel® Parallel Studio XE and Intel® System Studio .
MKL仓库:https://github.com/oneapi-src/oneMKL
https://www.intel.cn/content/www/cn/zh/developer/articles/guide/intel-math-kernel-library-intel-mkl-2019-getting-started.html
6.suitesparse求解器学习和介绍
SuiteSparse is a suite of sparse matrix algorithms, including:
•GraphBLAS: graph algorithms in the language of linear algebra
•Mongoose: graph partitioning
•ssget: MATLAB and Java interface to the SuiteSparse Matrix Collection
•UMFPACK: multifrontal LU factorization. Appears as LU and x=A\b in MATLAB.
•CHOLMOD: supernodal Cholesky. Appears as CHOL and x=A\b in MATLAB. Now with CUDA acceleration, in collaboration with NVIDIA.
•SPQR: multifrontal QR. Appears as QR and x=A\b in MATLAB, with CUDA acceleration.
•KLU and BTF: sparse LU factorization, well-suited for circuit simulation.
•Ordering methods (AMD, CAMD, COLAMD, and CCOLAMD). AMD and COLAMD appear in MATLAB.
•CSparse and CXSparse: a concise sparse Cholesky factorization package for my SIAM book.
•spqr_rank: a MATLAB package for reliable sparse rank detection, null set bases, pseudoinverse solutions, and basic solutions.
•Factorize: an object-oriented solver for MATLAB (a reusable backslash).
•SSMULT and SFMULT: sparse matrix multiplication. Appears as the built-in C=A*B operator in MATLAB.
•... and many other packages.
suitesparse仓库:https://github.com/DrTimothyAldenDavis/SuiteSparse
https://people.engr.tamu.edu/davis/suitesparse.html
7.Spectra求解器学习和介绍
Spectra stands for Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK. It is a C++ library for large scale eigenvalue problems, built on top of Eigen, an open source linear algebra library.
Spectra is implemented as a header-only C++ library, whose only dependency, Eigen, is also header-only. Hence Spectra can be easily embedded in C++ projects that require calculating eigenvalues of large matrices.
Spectra仓库:https://github.com/yixuan/spectra/
8.COPT求解器学习和介绍
COPT (Cardinal Optimizer) is a mathematical optimization solver for large-scale optimization problems. It is independently developed by Cardinal Operations, and it includes high-performance solvers for LP, MIP, SDP, (MI)SOCP, convex (MI)QP, convex (MI)QCP and exponential cone programming. The optimizer supports all major operating systems (64-bit), including Windows, Linux, and MacOS. It also supports ARM64 and Apple Silicon platforms. COPT supports interfaces to Python, PuLP, Pyomo, CVXPY, Linopy, C, C++, C#, Julia, Java, AIMMS, AMPL and GAMS. COPT has also been integrated into RSOME, PyEPO, PyPSA and PyOptInterface by optimization community.
COPT仓库:https://shanshu.ai/solver
9.scs求解器学习和介绍
SCS (splitting conic solver) is a numerical optimization package for solving large-scale convex cone problems. The current version is 3.2.7.
scs仓库:https://github.com/cvxgrp/scs
10.CppAD求解器学习和介绍
We refer to the automatic creation of an algorithm that computes derivative values from an algorithm that computes function values as Algorithmic Differentiation , also referred to as Automatic Differentiation or just AD. A brief introduction to AD can be found in wikipedia. The web site autodiff.org is dedicated to research about, and promoting the use of, AD.
CppAD仓库:https://github.com/coin-or/CppAD
11.clarbel求解器学习和介绍
Clarabel.rs is a Rust implementation of an interior point numerical solver for convex optimization problems using a novel homogeneous embedding.
clarbel仓库:https://github.com/oxfordcontrol/Clarabel.rs
12.COPT7.2介绍
COPT (Cardinal Optimizer) is a mathematical optimization solver for large-scale optimization problems. It is independently developed by Cardinal Operations, and it includes high-performance solvers for LP, MIP, SDP, (MI)SOCP, convex (MI)QP, convex (MI)QCP and exponential cone programming. The optimizer supports all major operating systems (64-bit), including Windows, Linux, and MacOS. It also supports ARM64 and Apple Silicon platforms. COPT supports interfaces to Python, PuLP, Pyomo, CVXPY, Linopy, C, C++, C#, Julia, Java, AIMMS, AMPL and GAMS. COPT has also been integrated into RSOME, PyEPO, PyPSA and PyOptInterface by optimization community.
COPT仓库:https://shanshu.ai/solver
13.Ipopt求解器学习和介绍
Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale nonlinear optimization.
Ipopt仓库:https://github.com/coin-or/Ipopt
https://coin-or.github.io/Ipopt/
14.MOSEK 求解器学习和介绍
Our solver is the answer for all your LPs, QPs, SOCPs, SDPs, and MIPs. Includes interfaces to C, C++, Java, MATLAB, .NET, Python, Julia, Rust and R.
MOSEK 仓库:https://www.mosek.com/downloads/
https://www.mosek.com/
15.G2o求解器学习和介绍
g2o is an open-source C++ framework for optimizing graph-based nonlinear error functions. g2o has been designed to be easily extensible to a wide range of problems and a new problem typically can be specified in a few lines of code. The current implementation provides solutions to several variants of SLAM and BA.
G2o仓库:https://github.com/RainerKuemmerle/g2o
16.CVXPY求解器学习和介绍
CVXPY is an open source Python-embedded modeling language for convex optimization problems. It lets you express your problem in a natural way that follows the math, rather than in the restrictive standard form required by solvers.
CVXPY仓库:https://github.com/cvxpy/cvxpy/
https://www.cvxpy.org/
17.ifopt求解器学习和介绍
A modern, light-weight, Eigen-based C++ interface to Nonlinear Programming solvers, such as Ipopt and Snopt.
ifopt仓库: https://github.com/ethz-adrl/ifopt
18.CppNumericalSolvers求解器学习和介绍
a lightweight header-only C++17 library of numerical optimization methods for nonlinear functions based on Eigen
CppNumericalSolvers仓库:https://github.com/PatWie/CppNumericalSolvers
19.CPLEX求解器学习和介绍
CPLEX is a high-performance mathematical programming solver for linear programming, mixed integer programming, and quadratic programming
CPLEX仓库:https://ibmdecisionoptimization.github.io/docplex-doc/mp.html
https://www.ibm.com/products/ilog-cplex-optimization-studio/cplex-optimizer
20.xpress求解器学习和介绍
Enable business users to solve complex problems in minutes, processing millions of variables at great speed and scalability.
xpress仓库:https://pypi.org/project/xpress/
https://www.fico.com/en/products/fico-xpress-optimization
21.Mindopt求解器学习和介绍
Enable business users to solve complex problems in minutes, processing millions of variables at great speed and scalability.
Mindopt仓库:https://github.com/aliyun/mindoptj
https://opt.aliyun.com/portal
22.OptVerse求解器学习和介绍
支持常见的数学规划问题LP和MIP及特定价值场景应用的QP/QCP
支持多数主流编程接口等SDK方式及云服务API调用等多种集成方式,用户可以快速适配开发,满足自身的开发需求
提供丰富的模型库和接口,已适配诸如生产排程、切割、路径规划等多种工业引擎,满足不同行业场景诉求,为企业提供多种决策优化解决方案
OptVerse仓库:https://github.com/VMaia77/optverse
https://www.huaweicloud.com/intl/en-us/cases/tjg.html
23.LeOPT求解器学习和介绍
LeOPT, also known as Lenovo Optimization Solver, is an optimization software that currently supports solving linear programming and mixed-integer linear programming problems. It has been proven efficient in Lenovo's supply chain scenarios.
LeOPT仓库:http://www.leopt.cn/
24.Coin-OR求解器学习和介绍
A Package for Automatic Differentiation of Algorithms Written in C/C++
Coin-OR仓库:https://github.com/coin-or/ADOL-C
https://en.wikipedia.org/wiki/COIN-OR
https://www.coin-or.org/projects/
25.Baron求解器学习和介绍
BARON is a global optimization solver that uses a branch-and-reduce algorithm to solve MINLP problems. Our worldwide developers have, on average, doubled MINLP performance with each major BARON release over the last 20 years. BARON is recognized as the best global optimization software available and is a key product used by Fortune 500 companies, national research labs, universities, and more. Learn more about BARON in our Company Brochure.
Baron仓库:https://github.com/jump-dev/BARON.jl
https://minlp.com/baron-solver
26.GLOP求解器学习和介绍
GLOP (the Google Linear Optimization Package) is Google's open source linear programming solver, created by Google's Operations Research Team. It is written in C++ and was released to the public as part of Google's OR-Tools software suite in 2014.
GLOP仓库:https://github.com/google/or-tools/tree/stable/ortools/glop
https://en.wikipedia.org/wiki/GLOP
27.Cbc求解器学习和介绍
Cbc (Coin-or branch and cut) is an open-source mixed integer linear programming solver written in C++. It can be used as a callable library or using a stand-alone executable. It can be used in a wide variety of ways through various modeling systems, packages, etc.
Cbc仓库:https://github.com/coin-or/Cbc
28.HiGHS求解器学习和介绍
HiGHS is high performance serial and parallel software for solving large-scale sparse linear programming (LP), mixed-integer programming (MIP) and quadratic programming (QP) models, developed in C++11, with interfaces to C, C#, FORTRAN, Julia and Python.
HiGHS仓库: https://github.com/ERGO-Code/HiGHS.git
https://highs.dev/
29.GLPK 求解器学习和介绍
The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the form of a callable library.
GLPK supports the GNU MathProg modeling language, which is a subset of the AMPL language.
GLPK 仓库:http://ftp.gnu.org/gnu/glpk/
https://winglpk.sourceforge.net/
30.scip求解器学习和介绍
Welcome to what is currently one of the fastest academically developed solvers for mixed integer programming (MIP) and mixed integer nonlinear programming (MINLP). In addition, SCIP provides a highly flexible framework for constraint integer programming and branch-cut-and-price. It allows for total control of the solution process and the access of detailed information down to the guts of the solver.
scip仓库:https://github.com/scipopt/scip
31.SoPlex求解器学习和介绍
SoPlex is an optimization package for solving linear programming problems (LPs) based on an advanced implementation of the primal and dual revised simplex algorithm. It provides special support for the exact solution of LPs with rational input data. It can be used as a standalone solver reading MPS or LP format files via a command line interface as well as embedded into other programs via a C++ class library.
SoPlex仓库:https://github.com/scipopt/soplex
https://soplex.zib.de/
32.CMIP求解器学习和介绍
CMIP整数规划求解器采用了一种广义系数缩紧割平面(GCSC)的技术。该割平面技术由CMIP团队自主提出,对于一般的整数规划问题具有一定的改善效果,尤其对于网络设计问题效果显著。通过MIPLIB2010国际公认标准整数规划测试库的测试对比,CMIP求解器的性能已经超过传统的求解器GLPK(俄国2000,Google Optimization Tools中的整数规划求解器)以及LPSOLVE(芬兰2004,GAMS高级建模系统调用其解决整数规划问题)。
CMIP仓库:https://lsec.cc.ac.cn/~dyh/software.html
https://zhuanlan.zhihu.com/p/35354471
33.LEAVES求解器学习和介绍
LEAVES is an open-source platform that provide mathematical programming solvers, machine learning tools(LEMO), and the access to a bunch of commercial applications (LAOR). So far, its mathematical solvers support the solution of Linear Programming, Semi-Definite Programming, Geometric Programming, Linearly Constrained Convex Programming, etc.
LEAVES仓库:https://github.com/leavesgrp/ABIP
https://guide.coap.online/solvers/list/LEAVES.html
https://www.36kr.com/p/1721925189633
git clone https://github.com/ceres-solver/ceres-solver --recursive
git clone https://github.com/coin-or/CppAD.git --recursive
git clone https://github.com/osqp/osqp --recursive
git clone https://github.com/oneapi-src/oneMKL --recursive
git clone https://github.com/DrTimothyAldenDavis/SuiteSparse --recursive
git clone https://github.com/yixuan/spectra/ --recursive
git clone https://github.com/cvxgrp/scs --recursive
git clone https://github.com/oxfordcontrol/Clarabel.rs --recursive
git clone https://github.com/cvxpy/cvxpy/ --recursive
git clone https://github.com/ethz-adrl/ifopt --recursive
git clone https://github.com/PatWie/CppNumericalSolvers --recursive
git clone https://github.com/RainerKuemmerle/g2o --recursive
git clone https://gitlab.com/libeigen/eigen.git --recursive
git clone https://github.com/google/or-tools.git --recursive
git clone https://github.com/aliyun/mindoptj --recursive
git clone https://github.com/VMaia77/optverse --recursive
git clone https://github.com/coin-or/ADOL-C --recursive
git clone https://github.com/jump-dev/BARON.jl --recursive
git clone https://github.com/coin-or/Cbc --recursive
git clone https://github.com/ERGO-Code/HiGHS.git --recursive
git clone https://github.com/scipopt/scipt --recursive
git clone https://github.com/scipopt/soplex --recursive
git clone https://github.com/leavesgrp/ABIP --recursive
git clone https://github.com/coin-or/Ipopt --recursive