CVXOPT
CVXOPT is a free software package for convex optimization based on the Python programming language. It can be used with the interactive Python interpreter, on the command line by executing Python scripts, or integrated in other software via Python extension modules. Its main purpose is to make the development of software for convex optimization applications straightforward by building on Python’s extensive standard library and on the strengths of Python as a high-level programming language. Efficient Python classes for dense and sparse matrices (real and complex), with Python indexing and slicing and overloaded operations for matrix arithmetic. Interfaces to the linear programming solver in GLPK, the semidefinite programming solver in DSDP5, and the linear, quadratic and second-order cone programming solvers in MOSEK.
Learn more
Artelys Knitro
Artelys Knitro is a leading solver for large-scale nonlinear optimization problems, offering a suite of advanced algorithms and features to address complex challenges across various industries. It provides four state-of-the-art algorithms: two interior-point/barrier methods and two active-set/sequential quadratic programming methods, enabling efficient and robust solutions for a wide range of optimization problems. Additionally, Knitro includes three algorithms specifically designed for mixed-integer nonlinear programming, incorporating heuristics, cutting planes, and branching rules to effectively handle discrete variables. Key features of Knitro encompass parallel multi-start capabilities for global optimization, automatic and parallel tuning of option settings, and smart initialization strategies for rapid infeasibility detection. The solver supports various interfaces, including object-oriented APIs for C++, C#, Java, and Python.
Learn more
Model Predictive Control Toolbox
Model Predictive Control Toolbox™ provides functions, an app, Simulink® blocks, and reference examples for developing model predictive control (MPC). For linear problems, the toolbox supports the design of implicit, explicit, adaptive, and gain-scheduled MPC. For nonlinear problems, you can implement single- and multi-stage nonlinear MPC. The toolbox provides deployable optimization solvers and also enables you to use a custom solver. You can evaluate controller performance in MATLAB® and Simulink by running closed-loop simulations. For automated driving, you can also use the provided MISRA C®- and ISO 26262-compliant blocks and examples to quickly get started with lane keep assist, path planning, path following, and adaptive cruise control applications. Design implicit, gain-scheduled, and adaptive MPC controllers that solve a quadratic programming (QP) problem. Generate an explicit MPC controller from an implicit design. Use discrete control set MPC for mixed-integer QP problems.
Learn more
AMPL
AMPL is a powerful and intuitive modeling language designed to represent and solve complex optimization problems. It enables users to formulate mathematical models in a syntax that closely mirrors algebraic notation, facilitating a clear and concise representation of variables, objectives, and constraints. AMPL supports a wide range of problem types, including linear programming, nonlinear programming, mixed-integer programming, and more. One of its key strengths is the ability to separate models and data, allowing for flexibility and scalability in handling large-scale problems. The platform offers seamless integration with numerous solvers, both commercial and open-source, providing users with the flexibility to choose the most appropriate solver for their specific needs. AMPL is available across multiple operating systems, including Windows, macOS, and Linux, and offers various licensing options.
Learn more