An optimize step generates optimized configurations according to the defined optimization strategy. During this step, the Akamas AI is used to generate such optimized configurations.
The optimize step has the following structure:
Field | Type | Value restrictions | Is required | Default value | Description |
---|---|---|---|---|---|
The optimizer
field allows selecting the desired optimizer:
AKAMAS
identifies the standard AI optimizer used by Akamas
SOBOL
identifies an optimizer that generates configurations using Sobol sequences
RANDOM
identifies an optimization that generates configurations using random numbers
Notice that SOBOL and RANDOM optimizers do not perform initialization experiments, hence the field numberOfInitExperiments
is ignored.
Refer to the page Optimizer Options for more configuration options for the optimizer
The optimize step is fault-tolerant and tries to relaunch experiments on failure. Nevertheless, the step limits the number of failed experiments: if too many experiments fail, then the entire step fails too. By default, at most 30 experiments can fail while Akamas is optimizing systems. An experiment is considered failed when it fails to run (i.e., there is an error in the workflow) or violates some constraint.
The optimize step launches some initialization experiments (by default 10) that do not apply the AI optimizer and are used to find good configurations. By default, the step performs 10 initialization experiments.
Initialization experiments take into account bootstrapped experiments, experiments executed in preset steps, and baseline experiments.
The following snippet shows an optimization step that runs 50 experiments using the SOBOL optimizer:
type
string
optimize
yes
The type of the step, in this case, optimize
name
string
yes
The name of the step
runOnFailure
boolean
true
false
no
false
Step execution policy:
false
: don't run if the previous step failed
true
: run even if the previous step failed
numberOfExperiments
integer
numberOfExperiments
> 0 and
numberOfExperiments
>= numberOfInitExperiments
yes
The number of experiments to execute - see below
numberOfTrials
integer
numberOfTrials
> 0
no
1
The number of trials to execute for each experiment
numberOfInitExperiments
integer
numberOfInitExperiments
< numberOfExperiments
no
10
The number of initialization experiment to execute - see below.
maxFailedExperiments
integer
maxFailedExperiments
> 1
no
30
The number of experiment failures (as either workflow errors or constraint violations) to accept before the step is marked as failed
optimizer
string
AKAMAS
SOBOL
RANDOM
no
AKAMAS
The type of optimizer to use to generate the configuration of the experiments - see below
doNotRenderParameters
string
no
Parameters not to be rendered. - see Parameter rending
renderParameters
string
no
Parameters to be rendered. - see Parameter rending