Optimization is the process of finding the best solution from among the set of all feasible solutions to a problem. The page Types of Optimization Problems provides some guidance to help you classify your optimization model. Choose software appropriate for the type of optimization problem that you are solving. For an alphabetical listing of all of the optimization problem types, see Optimization Problem Types: Alphabetical Listing. A modeling system takes as input a description of an optimization problem in a symbolic form and allows the solution output to be viewed in similar terms.
Most modeling systems support a variety of solvers, while the more popular solvers can be used with many different modeling systems. Commercial solvers are developed with considerable effort and, while usually more robust and reliable, often are quite expensive. Some commercial systems are available for free under reasonable conditions for educational purposes and academic research.