Optimization is all about finding the best possible solution given a stated goal (maximizing profits, for example) but subject to many constraints (say, plant capacities, resource prices, pollution limits, etc,). Optimization methods are taught in most MBA programs for three reasons. First, in many business sectors, optimizing methods have become a vital part of both operational and strategic policies. Second, the discipline of optimizing methods with goals, constraints, feasible solutions, and modeling behavior is vital to thinking about business problems in general. Finally, the tools have become so flexible and the hardware and software so inexpensive, that BIMO methods now are cropping up in an ever-wider range of business situations.
Optimization's basic methods are drawn from linear algebra, networks, and calculus. The number and size of problems (literally hundreds of thousands of variables and equations) that can be solved with linear programming are remarkable. Linear programming is the first and basic optimizing method. The difference between linear equations (2x + 3y – 4z) and non-linear equations (2x * 3log(y)/min(4z)) is that linear systems have simple boundaries. In contrast, non-linear solution spaces are just that -- so complex that identifying the global optima is quite tricky. The result is that linear-programming solvers are so fast and reliable compared to non-linear ones that BIMO developers have taken to using them to solve non-linear problems. The trade-off is the expanded size of the problem versus the speed and reliability of the linear methods.
Anyone who has specialized in math knows there are a whole range of problems when solutions are constrained to discrete or integer values. In linear programming programs, many solutions have fractional values: 1.3967 etc. But fractions like 1.3967 can lead to ambiguous results (do you round up or round down, etc.?). So when integer or discrete values are required, an entirely new mathematical space is opened, with correspondingly unique solution methods. Finally, complex constraints, many of them contingent on previous results, further add to the complexity of BIMO solvers. So it's no wonder there's a thriving community, mostly drawn from academia, exploring the latest in optimization methods. Again, it should be no surprise that developing solver engines is a craft on its own. So the market splits between creating solver engines, then embedding those engines in either general modeling tools or into customized, often industry-specific solution packages.
Jacques Surveyer is a consultant and trainer; see some of his tips and tutorials at theOpenSourcery.com