diff --git a/R/OptimizerBatchChain.R b/R/OptimizerBatchChain.R index d45b10126..2b288a0a1 100644 --- a/R/OptimizerBatchChain.R +++ b/R/OptimizerBatchChain.R @@ -142,8 +142,8 @@ OptimizerBatchChain = R6Class("OptimizerBatchChain", inherit = OptimizerBatch, optimizer = private$.optimizers[[i]] optimizer$param_set$values = self$param_set$.__enclos_env__$private$.sets[[i]]$values optimizer$optimize(inner_inst) - inner_inst$archive$data$batch_nr = max(inst$archive$data$batch_nr, 0L) + inner_inst$archive$data$batch_nr - inner_inst$archive$data$optimizer = private$.ids[i] + set(inner_inst$archive$data, j = "batch_nr", value = max(inst$archive$data$batch_nr, 0L) + inner_inst$archive$data$batch_nr) + set(inner_inst$archive$data, j = ".optimizer_id", value = private$.ids[i]) inst$archive$data = rbind(inst$archive$data, inner_inst$archive$data, fill = TRUE) inner_inst$archive$data = data.table() if (terminator$is_terminated(inst$archive)) { diff --git a/man/Objective.Rd b/man/Objective.Rd index 0902467fd..c00d62437 100644 --- a/man/Objective.Rd +++ b/man/Objective.Rd @@ -35,9 +35,6 @@ stored and accessed here. Set constant values are passed to \verb{$.eval()} and \verb{$.eval_many()} as named arguments.} \item{\code{check_values}}{(\code{logical(1)})\cr} - -\item{\code{packages}}{(\code{character()})\cr -Additional packages that are required to evaluate the objective function.} } \if{html}{\out{}} } @@ -57,6 +54,9 @@ Dimension of domain.} \item{\code{ydim}}{(\code{integer(1)})\cr Dimension of codomain.} + +\item{\code{packages}}{(\code{character()})\cr +Set of required packages.} } \if{html}{\out{}} } diff --git a/tests/testthat/test_OptimizerChain.R b/tests/testthat/test_OptimizerChain.R index 3d51163f2..1664f2ce8 100644 --- a/tests/testthat/test_OptimizerChain.R +++ b/tests/testthat/test_OptimizerChain.R @@ -4,32 +4,32 @@ test_that("OptimizerBatchChain", { terminators = list(trm("evals", n_evals = 10L), trm("evals", n_evals = 10L))) expect_class(z$optimizer, "OptimizerBatchChain") expect_output(print(z$optimizer), "OptimizerBatchChain") - expect_identical(z$instance$archive$data[optimizer == "OptimizerBatchRandomSearch"]$batch_nr, 1:10) - expect_identical(z$instance$archive$data[optimizer == "OptimizerBatchGridSearch"]$batch_nr, 11:20) + expect_identical(z$instance$archive$data[.optimizer_id == "OptimizerBatchRandomSearch"]$batch_nr, 1:10) + expect_identical(z$instance$archive$data[.optimizer_id == "OptimizerBatchGridSearch"]$batch_nr, 11:20) z = test_optimizer_2d("chain", term_evals = 20L, optimizers = list(opt("random_search"), opt("grid_search")), terminators = list(trm("evals", n_evals = 10L), trm("evals", n_evals = 10L))) expect_class(z$optimizer, "OptimizerBatchChain") expect_output(print(z$optimizer), "OptimizerBatchChain") - expect_identical(z$instance$archive$data[optimizer == "OptimizerBatchRandomSearch"]$batch_nr, 1:10) - expect_identical(z$instance$archive$data[optimizer == "OptimizerBatchGridSearch"]$batch_nr, 11:20) + expect_identical(z$instance$archive$data[.optimizer_id == "OptimizerBatchRandomSearch"]$batch_nr, 1:10) + expect_identical(z$instance$archive$data[.optimizer_id == "OptimizerBatchGridSearch"]$batch_nr, 11:20) z = test_optimizer_2d("chain", term_evals = 20L, optimizers = list(opt("random_search", batch_size = 10L), opt("grid_search", batch_size = 10L)), terminators = list(trm("evals", n_evals = 10L), trm("evals", n_evals = 10L))) expect_class(z$optimizer, "OptimizerBatchChain") expect_output(print(z$optimizer), "OptimizerBatchChain") - expect_identical(unique(z$instance$archive$data[optimizer == "OptimizerBatchRandomSearch"]$batch_nr), 1L) - expect_identical(unique(z$instance$archive$data[optimizer == "OptimizerBatchGridSearch"]$batch_nr), 2L) + expect_identical(unique(z$instance$archive$data[.optimizer_id == "OptimizerBatchRandomSearch"]$batch_nr), 1L) + expect_identical(unique(z$instance$archive$data[.optimizer_id == "OptimizerBatchGridSearch"]$batch_nr), 2L) z = test_optimizer_dependencies("chain", term_evals = 20L, optimizers = list(opt("random_search"), opt("grid_search")), terminators = list(trm("evals", n_evals = 10L), trm("evals", n_evals = 10L))) expect_class(z$optimizer, "OptimizerBatchChain") expect_output(print(z$optimizer), "OptimizerBatchChain") - expect_identical(z$instance$archive$data[optimizer == "OptimizerBatchRandomSearch"]$batch_nr, 1:10) - expect_identical(z$instance$archive$data[optimizer == "OptimizerBatchGridSearch"]$batch_nr, 11:20) + expect_identical(z$instance$archive$data[.optimizer_id == "OptimizerBatchRandomSearch"]$batch_nr, 1:10) + expect_identical(z$instance$archive$data[.optimizer_id == "OptimizerBatchGridSearch"]$batch_nr, 11:20) # random restarts terminator = trm("none") @@ -45,7 +45,7 @@ test_that("OptimizerBatchChain", { terminators = list(trm("evals", n_evals = 10L), trm("evals", n_evals = 10L)), real_evals = 20L ) - expect_identical(unique(z$instance$archive$data$optimizer), c("OptimizerBatchGenSA", "OptimizerBatchGenSA_1")) + expect_identical(unique(z$instance$archive$data$.optimizer_id), c("OptimizerBatchGenSA", "OptimizerBatchGenSA_1")) # packages, properties, param_set, etc. optimizer = OptimizerBatchChain$new(optimizers = list(opt("random_search"), opt("gensa")))