The ArchiveBatch
stores all evaluated points and performance scores in a data.table::data.table()
.
as.data.table(archive)
ArchiveBatch -> data.table::data.table()
Returns a tabular view of all performed function calls of the Objective.
The x_domain
column is unnested to separate columns.
bbotk::Archive
-> ArchiveBatch
data
(data.table::data.table)
Contains all performed Objective function calls.
data_extra
(named list
)
Data created by specific Optimizer
s that does not relate to any individual function evaluation and can therefore not be held in $data
.
Every optimizer should create and refer to its own entry in this list, named by its class()
.
n_evals
(integer(1)
)
Number of evaluations stored in the archive.
n_batch
(integer(1)
)
Number of batches stored in the archive.
Inherited methods
new()
Creates a new instance of this R6 class.
ArchiveBatch$new(search_space, codomain, check_values = FALSE)
search_space
(paradox::ParamSet)
Specifies the search space for the Optimizer. The paradox::ParamSet
describes either a subset of the domain
of the Objective or it describes
a set of parameters together with a trafo
function that transforms values
from the search space to values of the domain. Depending on the context, this
value defaults to the domain of the objective.
codomain
(paradox::ParamSet)
Specifies codomain of function.
Most importantly the tags of each output "Parameter" define whether it should
be minimized or maximized. The default is to minimize each component.
check_values
(logical(1)
)
Should x-values that are added to the archive be checked for validity?
Search space that is logged into archive.
add_evals()
Adds function evaluations to the archive table.
ArchiveBatch$add_evals(xdt, xss_trafoed = NULL, ydt)
xdt
(data.table::data.table()
)
Set of untransformed points / points from the search space.
One point per row, e.g. data.table(x1 = c(1, 3), x2 = c(2, 4))
.
Column names have to match ids of the search_space
.
However, xdt
can contain additional columns.
xss_trafoed
(list()
)
Transformed point(s) in the domain space.
ydt
(data.table::data.table()
)
Optimal outcome.
best()
Returns the best scoring evaluation(s). For single-crit optimization, the solution that minimizes / maximizes the objective function. For multi-crit optimization, the Pareto set / front.
ArchiveBatch$best(batch = NULL, n_select = 1L, ties_method = "first")
batch
(integer()
)
The batch number(s) to limit the best results to.
Default is all batches.
n_select
(integer(1L)
)
Amount of points to select.
Ignored for multi-crit optimization.
ties_method
(character(1L)
)
Method to break ties when multiple points have the same score.
Either "first"
(default) or "random"
.
Ignored for multi-crit optimization.
If n_select > 1L
, the tie method is ignored and the first point is returned.
nds_selection()
Calculate best points w.r.t. non dominated sorting with hypervolume contribution.
ArchiveBatch$nds_selection(batch = NULL, n_select = 1, ref_point = NULL)
batch
(integer()
)
The batch number(s) to limit the best points to. Default is
all batches.
n_select
(integer(1L)
)
Amount of points to select.
ref_point
(numeric()
)
Reference point for hypervolume.
clear()
Clear all evaluation results from archive.
ArchiveBatch$clear()
clone()
The objects of this class are cloneable with this method.
ArchiveBatch$clone(deep = FALSE)
deep
Whether to make a deep clone.