Login / Register to comment

Black Box Optimization

December 14, 2010 by Ron Averill

Engineers and scientists like to know how things work. They seem to be born with an inner drive to understand the fundamental nature of things. So, naturally, they may have some reservations about using an algorithm if the way it functions is not clear.
Black box
When we can’t see the details about how something works, we often refer to it as a black box. Input goes in and output comes out, without any knowledge of its internal workings.

Black box sometimes has a negative connotation, because knowing how something works is usually a good thing. But if we evaluate the idea of a black box, we find that many common processes and tools – including the human brain – actually fall into this category.

For example, most users of the finite element method have some basic knowledge of its underlying mathematical theory. But many of the element types available in commercial software packages are based on advanced formulations that few users completely understand. These advanced formulations are necessary to overcome deficiencies in the element behavior, and users can apply them accurately without knowing all the mathematical formalities. There are many similar examples in computational mechanics.

If we use an algorithm without knowing all the details about how it works, then we are using it like a black box, whether the details are available to us or not. We must know at least enough about an algorithm to be able to use it properly and effectively, but knowing more than this is generally unnecessary.

To take this one step further, in mathematical optimization we often use a nested set of black box algorithms. At the center of the optimization process, the function evaluations have inputs (design variables) and outputs (objectives and constraints). We cannot easily view the complicated relationships, or the transfer functions, between these inputs and outputs, so we call these implicit, or black box, functions.

Wrapped around these implicit function evaluations is an optimization algorithm, which determines the design variable values to use as inputs during the next function evaluation. Sometimes we know exactly how the algorithm works, so it is not a surprise when the optimization process behaves in a certain way. However, classical optimization algorithms are often unable to solve the types of challenging design problems that we face today, so a new generation of search algorithms has been developed to address these issues.


With increasing frequency, these new algorithms are hybrid and adaptive, which allows them to achieve a superior level of efficiency and robustness compared to classical methods. But the behavior of these smarter algorithms is also more difficult for us to understand. They use multiple strategies simultaneously, and they behave differently on each new problem, as they adapt to the varying conditions during each stage of the search. Operationally, these search algorithms are like a black box.

For engineers who are uncomfortable using a black box optimization algorithm to solve challenging design problems, the classical algorithms can still occasionally be used successfully if the problem is first simplified, and then cast in the proper form. But this preparation often requires a great deal of expertise, experience and time, not to mention a lot of brain power. And, after all, using the human brain is just relying on a different kind of black box…isn’t it?