Skip to content

A Nomad plugin for ropt

The ropt-nomad package extends the ropt module by providing a plugin that integrates the MADS optimization algorithm from the Nomad toolkit. ropt itself is a robust optimization framework designed for both continuous and discrete optimization workflows and is extensible through its plugin architecture. Installing ropt-nomad makes MADS directly available within ropt.

Usage

An optimization by ropt using the plugin works mostly as any other optimization run. However, there are a few things to consider:

  1. Gradients are not used, any specifications relating to gradient calculations in ropt are ignored.
  2. The tolerance optimization parameter, which can be specified in the optimization section is ignored.
  3. Only inequality constraints are supported by NOMAD.
  4. Linear and non-linear constraints are both supported. Linear constraints are not supported directly, but are internally converted to non-linear constraints.
  5. Some additional Nomad options can be passed as a list of strings via the options field in the optimizer configuration. Refer to the documentation of the NomadOptimizer class for supported options.

Reference

ropt_nomad.nomad.NomadOptimizer

Bases: Optimizer

Nomad optimization backend for ropt.

This class provides an interface to the MADS optimization algorithm from Nomad, enabling their its within ropt.

To select the MADS optimizer, set the method field within the optimizer section of the EnOptConfig configuration object to mads. Most general options defined in the EnOptConfig object are supported. For algorithm-specific options, use the options dictionary within the optimizer section.

The table below lists the MADS-specific options that are supported. Click on the method name to consult the Nomad keyword documentation:

Method Method Options
mads BB_OUTPUT_TYPE, BB_MAX_BLOCK_SIZE, MAX_BB_EVAL, MAX_EVAL, SEED, LH_SEARCH, DISPLAY_ALL_EVAL, DISPLAY_DEGREE, DISPLAY_STATS