  Some popular functions used to test global optimization algorithms have
multiple local optima, all with the same value. That is all local optima are
also global optima. This paper suggests that such functions are easily
fortified by adding a localized bump at the location of one of the optima,
making the functions more difficult to optimize due to the multiple competing
local optima. This process is illustrated here for the Branin-Hoo function,
which has three global optima. We use the popular Python SciPy differential
evolution (DE) optimizer for the illustration. DE also allows the use of the
gradient-based BFGS local optimizer for final convergence. By making a large
number of replicate runs we establish the probability of reaching a global
optimum with the original and fortified Branin-Hoo. With the original function
we find 100% probability of success with a moderate number of function
evaluations. With the fortified version, the probability of getting trapped in
a non-global optimum could be made small only with a much larger number of
function evaluations. However, since the probability of ending up at the global
optimum is usually 1/3 or more, it may be beneficial to perform multiple
inexpensive optimizations rather than one expensive optimization. Then the
probability of one of them hitting the global optimum can be made high. We
found that for the most challenging global optimum, multiple runs reduced
substantially the extra cost for the fortified function compared to the
original Branin-Hoo.
