# Software¶

## NOMAD¶

Blackbox optimization typically arises when the functions defining the objective and constraints of an optimization problem are computed through a computer simulation. The blackbox is expensive to compute, can have limited precision and be contaminated with numerical noise. It may also fail to return a valid output, even when the input appears acceptable. Launching twice the simulation from the same input may produce different outputs. These unreliable properties are frequently encountered when dealing with real optimization problems. The term blackbox is used to indicate that the internal structure of the target problem, such as derivatives or their approximations, cannot be exploited as it may be unknown, hidden, unreliable or inexistent. There are situations where some structure such as bounds or linear constraints may be exploited and in some cases, a surrogate of the problem is supplied or a model may be constructed and trusted.

The NOMAD software is designed to solve such problems. It is coded in C++ and freely available under the LGPL license.

## OPAL¶

OPAL is a Python modeling language for algorithmic optimization. Most algorithms depend on parameters. Although changing the values of those parameters doesn’t affect the correctness of the algorithm, it typically affects its performance, where performance is understood broadly. How can we best choose those parameter values so as to maximize a certain measure of performance?