December 12, 2023 in Software Survey
Optimization Software Survey
Seventeenth in a series of biennial software surveys dating back to 1990 spotlights recent trends
SHARE: PRINT ARTICLE:
https://doi.org/10.1287/orms.2023.04.09
This is the 17th edition of a survey that OR/MS Today has been publishing, mostly every other year, since 1990. Beginning with the previous edition in 2021, it has been called the Optimization Software Survey to reflect the increasingly broad range of optimization models and methods addressed by readily available software (it formerly focused on linear programming).
As in the case of earlier surveys, information has been gathered by means of a questionnaire sent to software vendors and developers by OR/MS Today. Results and contact information are summarized by product in tables at https://pubsonline.informs.org/magazine/orms-today/2023-optimization-software-survey. The ordering of topics below is roughly parallel to the organization of the survey, and terms in bold correspond to particular sections or entries.
Additional responses are welcome and will be added to the online listings. To learn more, contact Kara Tucker at [email protected], or go directly to the survey questionnaire at https://tinyurl.com/yckv2e68.
Products
This year’s survey focuses on software that can address a broad variety of large-scale optimization problems, corresponding to general mathematical forms that arise in numerous and diverse applications. Characteristic features are the ability to define large numbers of decision variables of multiple kinds, describe a function of the variables to be minimized or maximized, and express both large numbers and varied kinds of restrictions (constraints) on the variables. Typically, an analyst trained in operations research (O.R.) or another technical field uses this software to build an application customized to a particular situation. Some applications evolve into independent products, but specialized optimization products or packages are beyond the scope of this survey.
Successful optimization projects involve aspects of mathematical modeling, large-scale computation and application development. General-purpose optimization software may focus on any or all of these. To give a specific idea of the scope of each offering, the survey indicates which of the following Product Components are included:
- Modeling environments read optimization problems described in mathematical forms familiar to people and generate problem instances in formats that are required by solvers. Most also assist in preparing data, exploring solutions and building iterative schemes.
- Solvers take an instance of an optimization model as input, apply a combination of algorithmic methods designed to find solutions that are optimal (or acceptably close to optimal) and return the results.
- Data interfaces provide connections to data management software, such as spreadsheets and relational database systems, and support reading and writing of popular data formats.
- Integrated development environments provide support for model and application development by integrating utilities for tasks such as editing files, viewing results and managing projects.
- Deployment platforms support users who are not optimization experts by providing tools for embedding models, solvers and data interfaces into specialized, self-contained application packages.
- Application programming interfaces (APIs) support integration of modeling and solving within broader application systems by allowing the facilities of optimization software to be accessed through function and class libraries for general-purpose programming languages.
A developer may build all of these components into one integrated product, but it is also a common strategy to rely on certain components developed by others. Thus, a solver product may work with many independently developed modeling environments, or a modeling product may support many independently developed solvers. Reflecting this common arrangement, the survey’s Product Components listing is divided into Vendor’s software and Supported 3rd-party software.
Availability
Most optimization software is made available under a written license governing use, modification and distribution. A variety of free software licenses grant liberal rights of use, subject to restrictions on such matters as identification of origin, commercial use and compatibility with other licenses; access to source code is generally included. Proprietary licenses require payment in return for limited rights to run the software on particular user accounts or computing platforms, possibly for a limited period of time; such licenses are often granted freely, however, for limited purposes (such as evaluation) or special classes of users (such as students). Licensing details vary considerably, so consult product websites for more information.
Local installations remain a widespread mode of optimization software use, but network/cloud availability is increasingly the norm. Many of the modeling systems and solvers in this survey are available for testing through the free online NEOS Server, which averages thousands of submissions each day, with peaks over 100,000. Proprietary licenses support a range of virtual machines in clouds, clusters and containers, managed by online optimization services that may be remotely hosted by vendors or locally by customers.
Features
General-purpose optimization software is designed for application to broad categories of mathematical optimization problems, but products differ somewhat in the problem types that they are designed to accept. A few common types are distinguished explicitly in the survey:
- Decision variables may be continuous (potentially taking fractional values), restricted to integer or binary (zero-one) values, or a combination of both.
- Constraints and objectives may be linear, quadratic, conic or more generally nonlinear, with various requirements for convexity and smoothness.
There are many more distinctions and generalizations, so the survey also provides space for each entry to summarize supported problem types under other variable types and other constraint types.
Where the software incorporates a modeling environment, it provides a modeling language of some kind for describing optimization data, indexing sets, variables, objectives and constraints. As indicated under Main language for modeling, this may be a standalone language specialized to the needs of optimization (usually with APIs for one or more general-purpose languages). Alternatively, the modeling language may be built upon a general-purpose programming language, effectively merging the functions of modeling language and API.
Where the software incorporates a solver, it provides a variety of algorithmic components that are combined in various ways to implement a solution method, or even several alternative methods. Some algorithmic components are able to be implemented on several processors running at the same time, reducing the total elapsed solve time. Most often, this is done by means of a shared memory model that uses multiple processing cores of a single computer; indeed, the automatic use of available cores has become the default for many purposes. Support for distributed memory, using multiple independent computers connected by a network, is now also fairly common, though it requires greater effort to set up.
Solvers are also distinguished by the kind of optimal solution they are designed to find (at least if they are run long enough). Naturally, many solvers seek a global optimum that is the best overall admissible solutions. However, some nonlinear solvers gain speed and generality by instead identifying a local optimum that is at least the best among all nearby solutions. Even greater speed can be gained by seeking a heuristic solution that is likely to be of high quality but that comes with no optimality guarantees. Indeed, even global solvers are often used effectively in a heuristic way by stopping them when some criterion is met and taking the best solution found to that point.
Summary
Each optimization software system has distinctive features that cannot be captured by general survey questions. Thus, three Summary areas at the end of the survey have been expanded to allow for a few sentences about each product’s modeling features and solver features.
A final summary area lists new features added since the last survey 2 years ago. Performance enhancements are widespread, and a trend toward more general conic and global optimization can be seen. One reference to machine learning appears. But will artificial intelligence (AI) be turning natural language problem descriptions into mathematical optimization models? Will optimization engines be replaced (after suitable training) by neural networks? The current AI boom is still at an early stage, but the answers are likely to become apparent in time for the survey’s next edition.
Robert Fourer is president of AMPL Optimization Inc. and professor emeritus of Industrial Engineering and Management Sciences at Northwestern University.
([email protected])
