HEURISTIC PROGRAMMING
4.12 HEURISTIC PROGRAMMING
The determination of optimal solutions to some complex decision problems could involve a prohibitive amount of time and cost or may even be impossible.
Alternatively, the simulation approach (Section 4.13) may be lengthy, complex, inap- propriate, and even inaccurate. Under these conditions it is sometimes possible to
obtain satisfactory solutions more quickly and less expensively by using heuristics.
Heuristics (from the Greek word for discovery) are decision rules governing how a problem should be solved. Usually, heuristics are developed on the basis of a solid, rig- orous analysis of the problem, sometimes involving carefully designed experimenta- tion. In contrast, guidelines are usually developed as a result of a trial-and-error expe-
rience. Some heuristics are derived from guidelines. Heuristic searches (or programming) are step-by-step procedures (like algorithms) that are repeated until a satisfactory solution is found (unlike algorithms). In practice, such a search is much faster and cheaper than a blind search, and the solutions can be very close to the best
ones. In fact, problems that theoretically can be solved to optimality (but with a very long solution time) are in practice sometimes solved by heuristics, which can guarantee
P A R T II DECISION SUPPORT SYSTEMS
TABLE 4 . 6 Examples of Heuristics Sequence jobs through a machine
Do the jobs that require the least time first. Purchase stocks
If a price-to-earnings ratio exceeds 10, do not
buy the stock.
Travel Do not use the freeway between 8 and 9 a.m. Capital investment in high-tech projects
Consider only projects with estimated payback periods of less than 2 years.
Purchase of a house Buy only in a good neighborhood, but buy only in the lower price range.
a solution within a few percent of the optimal objective value. For details and advances, see Glover and Kochenberger (2001). Examples of heuristics are given in Table 4.6.
Decision-makers use heuristics or rules of thumb for many reasons, some more reasonable than others. For example, decision-makers may use a heuristic if they do not know the best way to solve a problem or if optimization techniques have not yet been developed. A decision-maker might not be able to obtain all the information nec- essary, or the cost of obtaining the information or developing a complex model may be too high. This was done in the Cameron and Barkley Company's Web-based DSS for reducing inventories and improving overall service performance, described in DSS in Action 3.2; see Cohen, Kelly, and Medagli (2001).
The heuristic process can be described as developing rules to help solve complex problems (or intermediate subproblems to discover how to set up subproblems for final solution by finding the most promising paths in the search for solutions), finding ways to retrieve and interpret information on the fly, and then developing methods that lead to a computational algorithm or general solution.
Although heuristics are employed primarily for solving ill-structured problems, they can also be used to provide satisfactory solutions to certain complex, well- structured problems much more quickly and cheaply than optimization algorithms (e.g., large-scale combinatorial problems with many potential solutions to explore) (Sun et al., 1998). The main difficulty in using heuristics is that they are not as general as algorithms. Therefore, they can normally be used only for the specific situation for which they were intended. Another problem with heuristics is that they may produce a poor solution. Heuristics are often stated like algorithms. They can be step-by-step pro- cedures for solving a problem, but there is no guarantee that an optimal solution will
be found. It is critical to realize that heuristics provide time-pressured managers and
other professionals with a simple way of dealing with a complex world, pro- ducing correct or partially correct judgments more often than not. In addi- tion, it may be inevitable that humans will adopt some way of simplifying decisions. The only drawback is that individuals frequently a d o p t . . . heuris- tics without being aware of them. (Bazerman, 2001)
Heuristic programming is the approach of using heuristics to arrive at feasible and "good enough" solutions to some complex problems. Good enough is usually in
the range of 90-99.9 percent of the objective value of an optimal solution. Heuristics can be quantitative, and so can play a major role in the DSS model base, where heuristics were used to solve a complex integer programming problem. They can also be qualitative, and then can play a major role in providing knowledge to
C H A P T E R 4 MODELING AND ANALYSIS