| ArchiveAsyncFrozen | R Documentation |
Freezes the Redis data base of an ArchiveAsync to a data.table::data.table().
No further points can be added to the archive but the data can be accessed and analyzed.
Useful when the Redis data base is not permanently available.
Use the callback bbotk.async_freeze_archive to freeze the archive after the optimization has finished.
as.data.table(archive)
ArchiveAsync -> 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 -> bbotk::ArchiveAsync -> ArchiveAsyncFrozen
data(data.table::data.table)
Data table with all finished points.
queued_data(data.table::data.table)
Data table with all queued points.
running_data(data.table::data.table)
Data table with all running points.
finished_data(data.table::data.table)
Data table with all finished points.
failed_data(data.table::data.table)
Data table with all failed points.
n_queued(integer(1))
Number of queued points.
n_running(integer(1))
Number of running points.
n_finished(integer(1))
Number of finished points.
n_failed(integer(1))
Number of failed points.
n_evals(integer(1))
Number of evaluations stored in the archive.
new()Creates a new instance of this R6 class.
ArchiveAsyncFrozen$new(archive)
archive(ArchiveAsync)
The archive to freeze.
push_points()Push queued points to the archive.
ArchiveAsyncFrozen$push_points(xss)
xss(list of named list())
List of named lists of point values.
pop_point()Pop a point from the queue.
ArchiveAsyncFrozen$pop_point()
push_running_point()Push running point to the archive.
ArchiveAsyncFrozen$push_running_point(xs, extra = NULL)
xs(named list)
Named list of point values.
extra(list())
Named list of additional information.
push_result()Push result to the archive.
ArchiveAsyncFrozen$push_result(key, ys, x_domain, extra = NULL)
key(character())
Key of the point.
ys(list())
Named list of results.
x_domain(list())
Named list of transformed point values.
extra(list())
Named list of additional information.
push_failed_point()Push failed point to the archive.
ArchiveAsyncFrozen$push_failed_point(key, message)
key(character())
Key of the point.
message(character())
Error message.
data_with_state()Fetch points with a specific state.
ArchiveAsyncFrozen$data_with_state(
fields = c("xs", "ys", "xs_extra", "worker_extra", "ys_extra", "condition"),
states = c("queued", "running", "finished", "failed"),
reset_cache = FALSE
)fields(character())
Fields to fetch.
Defaults to c("xs", "ys", "xs_extra", "worker_extra", "ys_extra").
states(character())
States of the tasks to be fetched.
Defaults to c("queued", "running", "finished", "failed").
reset_cache(logical(1))
Whether to reset the cache of the finished points.
clear()Clear all evaluation results from archive.
ArchiveAsyncFrozen$clear()
clone()The objects of this class are cloneable with this method.
ArchiveAsyncFrozen$clone(deep = FALSE)
deepWhether to make a deep clone.
ArchiveAsync
# example only runs if a Redis server is available
if (mlr3misc::require_namespaces(c("rush", "redux", "mirai"), quietly = TRUE) &&
redux::redis_available()) {
# define the objective function
fun = function(xs) {
list(y = - (xs[[1]] - 2)^2 - (xs[[2]] + 3)^2 + 10)
}
# set domain
domain = ps(
x1 = p_dbl(-10, 10),
x2 = p_dbl(-5, 5)
)
# set codomain
codomain = ps(
y = p_dbl(tags = "maximize")
)
# create objective
objective = ObjectiveRFun$new(
fun = fun,
domain = domain,
codomain = codomain,
properties = "deterministic"
)
# start workers
rush::rush_plan(worker_type = "remote")
mirai::daemons(1)
# initialize instance
instance = oi_async(
objective = objective,
terminator = trm("evals", n_evals = 20),
callback = clbk("bbotk.async_freeze_archive")
)
# load optimizer
optimizer = opt("async_random_search")
# trigger optimization
optimizer$optimize(instance)
# frozen archive
instance$archive
# best performing configuration
instance$archive$best()
# covert to data.table
as.data.table(instance$archive)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.