Welcome Guest. | Log In| Register | Membership Benefits
News

June 5, 2000

Printer ready
Printer ready

Tools Of The Operations Research Trade

By Alexandra Barrett

A sk an operations research professional--those folks who bring you commercial software optimization applications--what exactly it is they do, and you might get an answer like this: find the best solution to a complex business problem, where best can mean cheapest, fastest, smallest, or any number of other superlatives.

To the uninitiated, therefore, operations research may sound like a simple enough pursuit. Delve a little and you'll find extensively trained academics wielding some of the finest, most precise tools available to mathematicians.

These include linear programming and its relatives, linear integer programming, integer programming, and multi-integer programming. Together, these mathematical techniques make up the brunt of traditional operations research techniques.

Linear programming was developed during World War II as a mathematical model. But the word programming in this context had nothing to do with the contemporary coding sense of the word. Instead, the term was derived from military vocabulary, where a program denoted a scheduled military conflict. In other words, mathematicians developed linear programming so they could determine how best to deploy troops and weapons.

Linear programming has come a long way since those early, precomputer days, both in terms of the sophistication of its algorithms and in performance. "We're a million times faster today--not just because of hardware, but also because of algorithmic improvements," says Irv Lustig, optimization product manager at Ilog Inc. As such, linear programming is the core technology in a lion's share of optimization software packages.

These days, the operations research field is being infused with new blood: techniques stemming from the artificial-intelligence community. The most popular of these techniques is called constraint programming, which was developed in the mid-1980s. Contrary to linear, constraint programming has everything to do with the word in its contemporary sense. It attempts to find an optimal solution that meets a set of user-defined criteria, or constraints, and is usually associated with object-oriented programming languages such as C++ and Java.

Until recently, operations research professionals tended to have strong allegiances to one of these two schools of optimization thought, with Americans tending to favor linear programming and Europeans, the artificial-intelligence techniques. The debate over linear programming vs. constraint programming can sometimes escalate into near "religious wars," says Bob Daniels, director of Dash Associates, a developer of optimization engines.

Increasingly, however, players on the two sides of the philosophical divide are beginning to recognize that linear programming and constraint programming each have a place within the optimization spectrum.

"We don't believe in this touchy-feely constraint programming stuff, and all it's heuristics," says Daniels. But he's the first to concede that constraint programming works exceedingly well in scheduling problems, for example, where "you want a feasible solution that isn't obviously silly." Use linear programming to solve that same scheduling problem and you'll ultimately find the best solution--but you'll probably take much longer getting it. --Alexandra Barrett

Return to main story, "Optimize The Enterprise."

Back to This Week's Issue
Send Us Your Feedback
Top of the Page