1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! Lightweight metadata about an algorithm — its canonical short
//! name, an academic long name, and the seed driving the current
//! run.
//!
//! `AlgorithmInfo` is separate from [`Optimizer<P>`](super::Optimizer)
//! so multi-fidelity algorithms (which use `PartialProblem` instead
//! of `Problem`) can implement it uniformly. Every built-in
//! algorithm in `heuropt` implements `AlgorithmInfo`; the explorer
//! JSON export reads these methods to populate the `algorithm` and
//! `algorithm_full_name` fields in the exported run metadata.
/// Algorithm metadata used by tooling such as the explorer JSON
/// export.
///
/// Implementors return:
/// - **`name`** — the canonical short display name as it appears
/// in the literature: `"NSGA-II"`, `"MOEA/D"`, `"ε-MOEA"`,
/// `"CMA-ES"`. *Not* the Rust type name.
/// - **`full_name`** — the academic long form, e.g.
/// `"Non-dominated Sorting Genetic Algorithm II"`. Defaults to
/// `name()` when not overridden, which is the right answer for
/// algorithms whose short name *is* their full name (Random
/// Search, Hill Climber, Tabu Search, …).
/// - **`seed`** — the deterministic seed driving this run, when
/// the algorithm uses one. Defaults to `None`.