spires_opt_budget
Struct defining a single budget stage in the AGILE optimizer’s multi-fidelity search.
Definition
struct spires_opt_budget {
double data_fraction;
int num_seeds;
double time_limit_sec;
int _reserved_i0;
double _reserved_d0;
};Fields
| Field | Type | Description |
|---|---|---|
data_fraction | double | Fraction of the input/target series to use during this budget stage, in the range (0, 1]. A value of 0.25 means the optimizer trains and evaluates each candidate using the first 25% of the time series. Lower fractions make evaluation cheaper, enabling broader exploration. |
num_seeds | int | Number of independent random reservoir instantiations to evaluate per candidate configuration. Multiple seeds reduce the variance of the performance estimate. Must be at least 1. |
time_limit_sec | double | Wall-clock time limit in seconds for this budget stage. The optimizer will stop evaluating new candidates in this stage once the time limit is reached, even if not all planned evaluations have completed. Set to 0 or a negative value to disable the time limit. |
_reserved_i0 | int | Reserved for future use. Must be set to 0. |
_reserved_d0 | double | Reserved for future use. Must be set to 0. |
Example
/* Three-stage progressive refinement */
struct spires_opt_budget budgets[] = {
{ .data_fraction = 0.10, .num_seeds = 50, .time_limit_sec = 15.0 },
{ .data_fraction = 0.50, .num_seeds = 10, .time_limit_sec = 60.0 },
{ .data_fraction = 1.00, .num_seeds = 3, .time_limit_sec = 300.0 }
};Notes
- Stage ordering. Budget stages are processed in array order by
spires_optimize. It is conventional (but not required) to order stages from cheap (lowdata_fraction, highnum_seeds) to expensive (highdata_fraction, lownum_seeds). The optimizer eliminates low-performing candidates between stages. - Data fraction semantics. The optimizer uses the first
floor(data_fraction * series_length)timesteps. It does not perform random subsampling, ensuring that temporal ordering is preserved. - Reserved fields. The
_reserved_i0and_reserved_d0fields exist for ABI forward-compatibility. Always zero-initialize them. Using designated initializers (as in the example above) automatically zeroes unmentioned fields.
See Also
- spires_optimize — consumes an array of budget stages.
- spires_opt_score — scoring configuration.
- spires_opt_result — result struct.
- Budget Configuration — practical guidance on choosing budgets.
Last updated on