Outputs#
Return value#
Every entry point returns a tuple whose first item is a results dictionary:
out, poll_step, search_step = mads.main(data)
out, poll_step = poll.main(data)
out, search_step = search.main(data)
Key |
Content |
|---|---|
|
Best point found. For |
|
Objective value(s) at |
|
Constraint violation \(h\) at |
|
Number of blackbox evaluations. |
|
Number of iterations. |
|
Number of successful poll and search steps. |
|
Final frame size, and frame size of the best frame centre (one value per variable). |
|
Final mesh size of the best frame centre. |
|
Hypervolume of the Pareto front for multi-objective runs, |
|
( |
Note
In this release poll.main reports nbb_evals = 1 and nb_success = 0 whatever
the run did. Use niterations or the <name>_all.out file to count evaluations.
The second and third items are the poll (Dirs2n) and search (EfficientExploration)
objects at the end of the run, for users who want to inspect the final mesh or sampler.
Files in post_dir#
post_dir/
├── OMADS.log # always: settings, per-iteration status, run summary
├── <name>_run/
│ ├── <name>_all.out # save_results=True: one row per evaluation
│ └── coords.json # save_coordinates=True (poll.main): poll points per iteration
└── <name>_ND/
└── <name>_Pareto.out # multi-objective runs
OMADS.log#
A plain-text log with one block per iteration (step, success status, best point so far) and
the termination reason. Set options["is_verbose"] for more detail, for example the
decisions of the active sampling search.
<name>_all.out#
A comma-separated file with right-aligned columns. Read it with pandas:
import pandas as pd
df = pd.read_csv("post/rosen_run/rosen_all.out", skipinitialspace=True)
df.columns = df.columns.str.strip()
Column |
Content |
|---|---|
|
Evaluation time. |
|
Iteration and evaluation counters. |
|
|
|
Smallest component of the frame size. |
|
|
|
Penalized objective used for comparisons. |
one column per |
Objective value(s). |
|
Barrier threshold at that time. |
|
Penalty parameter and largest multiplier. |
one column per |
The design variables. |
coords.json#
The poll points of every iteration, with the incumbent, for animations of the poll trajectory:
{
"1": {
"coord": [[-3.0, -3.0], [-3.0, -2.0]],
"iter": 1,
"x_incumbent": [-2.0, -2.0]
},
"2": {
"coord": [[-2.25, -2.25], [-2.25, -1.5], [-1.75, -2.5], [-1.75, -1.75]],
"iter": 2,
"x_incumbent": [-2.0, -2.0]
}
}
Note
save_coordinates works with poll.main. With mads.main it raises an
IndexError at the end of the run in this release.
Multi-objective files#
<name>_Pareto.out has the same columns as <name>_all.out. In this release it only
keeps the starting point, so extract the front from <name>_all.out instead; see
Multi-objective optimization.