makers with a set of solutions that will allow them to rely more on objective analysis and less on subjective judgments. The four programming models discussed here, linear, integer, dynamic, and heuristic, are all capable of doing that. Of these, linear programming is by far the most widely used. It is simple to understand, relatively easy to construct, and less complex to use than the rest of the models, perhaps with the exception of heuristic programming.
However, linear programming models are not without their weaknesses. For instance, the optimal solution produced by a linear programming model is useful insofar as the decision variables can be expressed in real numbers. This may not be a sufficiently stringent requirement, since for many real world problems it is necessary that the variables take on nonnegative integer values. Interger programming is uniquely suitable for dealing with such problems. It uses the same simplex algorithm as linear programming, but produces a much better solution for problems that require a discrete solution.
Dynamic programming, on the other hand, is considered just as versatile as linear programming. It can be used in almost any situation and relationship: linear, nonlinear, deterministic, stochastic, continuous, and discontinuous. There are certain advantages to using this type of model in that it allows a problem to be serially structured without any recycling or going back, which means that there are several optimal points from which a decision maker could make a choice. This apparent flexibility has an advantage over other programming models where the solution is restricted to a single optimal value.
Finally, heuristic programming serves as a useful decision tool in situations where it takes a prohibitive amount of time and cost to determine an optimal solution. By arriving at good enough solutions using rules of thumb or approximation, heuristic programming can offer viable solutions to complex problems where conventional programming models do not work.