The Numerical Algorithms Group (NAG) Library uses a decision tree in software to select optimization routines for engineering tasks. The software’s step-by-step instructions help researchers, for example, solve turbine design problems or find new photovoltaic materials. Many software devices use these routines as building blocks of their applications. They rely on the knowledge base in the software to “future-proof” their application-development investments. The decision tree feature is especially helpful for new and experienced users, because they can select an appropriate routine in a matter of minutes.

The decision trees lead the user through simple yes/no questions that categorize the problem and suggests the most suitable routines to use. This one included in the chapter on Partial Differential Equations.
NAG principal technical consultant David Sayers, says selecting optimization algorithms can be complex. “For maximum efficiency, different algorithms should be used for a different problem types,” he says. “Often these are characterized by the type of objective function – looking for a minimized or maximized value – and by the types of constraints applied.” He explains that objective functions might be linear, quadratic (positive-definite or indefinite), or nonlinear. They may have a special form such as a sum of squares, be sparse, dense, smooth, or discontinuous. “Combine these with constraint options — none, simple bound, linear, or genuine nonlinear — and you see that a comprehensive chapter of optimization routines can be very large. Therefore, decision trees are invaluable to the user to choosing the right routine.”
NAG, a UK-based, non-profit numerical software developer, works to advance methods for solving optimization problems and similar computational challenges. The company’s decision trees are part of tested and documented sets of optimization routines, as well as other mathematical and statistical algorithms in the library. Researchers can use the software in environments such as C++, Fortran, MATLAB, and R.
Numerical Algorithms Group
Filed Under: Software