Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .lintr
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
linters: with_defaults(
linters: linters_with_defaults(
# lintr defaults: https://github.com/jimhester/lintr#available-linters
# the following setup changes/removes certain linters
assignment_linter = NULL, # do not force using <- for assignments
object_name_linter = object_name_linter(c("snake_case", "CamelCase")), # only allow snake case and camel case object names
cyclocomp_linter = NULL, # do not check function complexity
commented_code_linter = NULL, # allow code in comments
line_length_linter = NULL
line_length_linter = NULL,
indentation_linter = indentation_linter(indent = 2, hanging_indent_style = "never")
)
3 changes: 3 additions & 0 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ Suggests:
RhpcBLASctl,
rush (>= 0.2.0),
testthat (>= 3.0.0)
Remotes:
mlr-org/mlr3misc@common_baseclass,
mlr-org/mlr3@common_baseclass
Config/testthat/edition: 3
Config/testthat/parallel: false
Encoding: UTF-8
Expand Down
3 changes: 0 additions & 3 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,6 @@ import(mlr3misc)
import(paradox)
importFrom(R6,R6Class)
importFrom(methods,formalArgs)
importFrom(mlr3misc,clbk)
importFrom(mlr3misc,clbks)
importFrom(mlr3misc,mlr_callbacks)
importFrom(stats,setNames)
importFrom(utils,bibentry)
importFrom(utils,capture.output)
Expand Down
3 changes: 2 additions & 1 deletion R/ObjectiveRFunMany.R
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ ObjectiveRFunMany = R6Class("ObjectiveRFunMany",
properties = properties,
constants = constants,
check_values = check_values,
label = "Objective Custom R Function Eval List")
label = "Objective Custom R Function Eval List",
man = "bbotk::ObjectiveRFunMany")
},

#' @description
Expand Down
2 changes: 1 addition & 1 deletion R/OptimInstanceBatchSingleCrit.R
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ OptimInstanceBatchSingleCrit = R6Class("OptimInstanceBatchSingleCrit",
check_values = check_values,
callbacks = callbacks,
archive = archive,
label = "Batch Single Criterion",
label = "Batch Single Criterion Instance",
man = "bbotk::OptimInstanceBatchSingleCrit")
},

Expand Down
97 changes: 22 additions & 75 deletions R/Optimizer.R
Original file line number Diff line number Diff line change
Expand Up @@ -23,50 +23,46 @@
#'
#' @export
Optimizer = R6Class("Optimizer",
inherit = Mlr3Component,
public = list(

#' @template field_id
id = NULL,

#' @description
#' Creates a new instance of this [R6][R6::R6Class] class.
#'
#' @param id (`character(1)`)\cr
#' Dictionary entry of the optimizer.
#'
#' @param param_set ([paradox::ParamSet])\cr
#' Parameter set of the optimizer.
#'
#' @param param_classes (`character()`)\cr
#' Supported parameter classes that the optimizer can optimize, as given in the [`paradox::ParamSet`] `$class` field.
#'
#' @param properties (`character()`)\cr
#' Set of properties of the optimizer.
#' Must be a subset of [`bbotk_reflections$optimizer_properties`][bbotk_reflections].
#'
#' @param packages (`character()`)\cr
#' @param packages (`character()`)\cr
#' Set of required packages.
#' A warning is signaled by the constructor if at least one of the packages is not installed, but loaded (not attached) later on-demand via [requireNamespace()].
initialize = function(
id = "optimizer",
id,
param_set,
param_classes,
properties,
packages = character(),
label = NA_character_,
man = NA_character_
) {
self$id = assert_string(id, min.chars = 1L)
private$.param_set = assert_param_set(param_set)
packages = character(0),
label,
man
) {
if (!missing(label) || !missing(man)) {
mlr3component_deprecation_msg("label and man are deprecated for Optimizer construction and will be removed in the future.")
}

super$initialize(dict_entry = id, dict_shortaccess = "opt",
param_set = param_set, packages = packages, properties = properties
)
private$.param_classes = assert_subset(param_classes, c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct", "ParamUty"))
# has to have at least multi-crit or single-crit property
private$.properties = assert_subset(properties, bbotk_reflections$optimizer_properties, empty.ok = FALSE)
private$.packages = union("bbotk", assert_character(packages, any.missing = FALSE, min.chars = 1L))
private$.label = assert_string(label, na.ok = TRUE)
private$.man = assert_string(man, na.ok = TRUE)

check_packages_installed(self$packages, msg = sprintf("Package '%%s' required but not installed for Optimizer '%s'", format(self)))
},

#' @description
#' Helper for print outputs.
#' @param ... (ignored).
format = function(...) {
sprintf("<%s>", class(self)[1L])
assert_subset(properties, bbotk_reflections$optimizer_properties, empty.ok = FALSE)
},

#' @description
Expand All @@ -85,61 +81,17 @@ Optimizer = R6Class("Optimizer",
cli_li("Properties: {self$properties}")
cli_li("Packages: {.pkg {self$packages}}")
})
},

#' @description
#' Opens the corresponding help page referenced by field `$man`.
help = function() {
open_help(self$man)
}
),

active = list(

param_set = function(rhs) {
if (!missing(rhs) && !identical(rhs, private$.param_set)) {
stop("$param_set is read-only.")
}
private$.param_set
},

#' @field param_classes (`character()`)\cr
#' Supported parameter classes that the optimizer can optimize, as given in the [`paradox::ParamSet`] `$class` field.
param_classes = function(rhs) {
if (!missing(rhs) && !identical(rhs, private$.param_classes)) {
stop("$param_classes is read-only.")
}
private$.param_classes
},

#' @field properties (`character()`)\cr
#' Set of properties of the optimizer.
#' Must be a subset of [`bbotk_reflections$optimizer_properties`][bbotk_reflections].
properties = function(rhs) {
if (!missing(rhs) && !identical(rhs, private$.properties)) {
stop("$properties is read-only.")
}
private$.properties
},

#' @field packages (`character()`)\cr
#' Set of required packages.
#' A warning is signaled by the constructor if at least one of the packages is not installed, but loaded (not attached) later on-demand via [requireNamespace()].
packages = function(rhs) {
if (!missing(rhs) && !identical(rhs, private$.packages)) {
stop("$packages is read-only.")
}
private$.packages
},

label = function(rhs) {
assert_ro_binding(rhs)
private$.label
},

man = function(rhs) {
assert_ro_binding(rhs)
private$.man
}
),

Expand All @@ -150,12 +102,7 @@ Optimizer = R6Class("Optimizer",
assign_result_default(inst)
},

.param_set = NULL,
.param_classes = NULL,
.properties = NULL,
.packages = NULL,
.label = NULL,
.man = NULL
.param_classes = NULL
)
)

Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerAsyncDesignPoints.R
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,7 @@ OptimizerAsyncDesignPoints = R6Class("OptimizerAsyncDesignPoints",
param_set = param_set,
param_classes = c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct", "ParamUty"),
properties = c("dependencies", "single-crit", "multi-crit", "async"),
packages = "rush",
label = "Asynchronous Design Points",
man = "bbotk::mlr_optimizers_async_design_points"
packages = "rush"
)
},

Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerAsyncGridSearch.R
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ OptimizerAsyncGridSearch = R6Class("OptimizerAsyncGridSearch",
param_set = param_set,
param_classes = c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct"),
properties = c("dependencies", "single-crit", "multi-crit", "async"),
packages = "rush",
label = "Asynchronous Grid Search",
man = "bbotk::mlr_optimizers_async_grid_search"
packages = "rush"
)
},

Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerAsyncRandomSearch.R
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ OptimizerAsyncRandomSearch = R6Class("OptimizerAsyncRandomSearch",
param_set = ps(),
param_classes = c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct"),
properties = c("dependencies", "single-crit", "multi-crit", "async"),
packages = "rush",
label = "Asynchronous Random Search",
man = "bbotk::mlr_optimizers_random_search"
packages = "rush"
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchChain.R
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,7 @@ OptimizerBatchChain = R6Class("OptimizerBatchChain", inherit = OptimizerBatch,
param_set = ParamSetCollection$new(param_sets),
param_classes = Reduce(intersect, mlr3misc::map(optimizers, "param_classes")),
properties = Reduce(intersect, mlr3misc::map(optimizers, "properties")),
packages = unique(unlist(mlr3misc::map(optimizers, "packages"))),
label = "Chain Multiple Optimizers Sequentially",
man = "bbotk::mlr_optimizers_chain"
packages = unique(unlist(mlr3misc::map(optimizers, "packages")))
)
private$.optimizers = optimizers
private$.terminators = terminators
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchCmaes.R
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,7 @@ OptimizerBatchCmaes = R6Class("OptimizerBatchCmaes",
param_set = param_set,
param_classes = "ParamDbl",
properties = "single-crit",
packages = "adagio",
label = "Covariance Matrix Adaptation Evolution Strategy",
man = "bbotk::mlr_optimizers_cmaes"
packages = "adagio"
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchDesignPoints.R
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,7 @@ OptimizerBatchDesignPoints = R6Class("OptimizerBatchDesignPoints", inherit = Opt
id = "design_points",
param_set = param_set,
param_classes = c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct", "ParamUty"),
properties = c("dependencies", "single-crit", "multi-crit"),
label = "Design Points",
man = "bbotk::mlr_optimizers_design_points"
properties = c("dependencies", "single-crit", "multi-crit")
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchFocusSearch.R
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,7 @@ OptimizerBatchFocusSearch = R6Class("OptimizerBatchFocusSearch",
id = "focus_search",
param_set = param_set,
param_classes = c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct"),
properties = c("dependencies", "single-crit"), # NOTE: think about multi-crit variant
label = "Focus Search",
man = "bbotk::mlr_optimizers_focus_search"
properties = c("dependencies", "single-crit") # NOTE: think about multi-crit variant
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchGenSA.R
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,7 @@ OptimizerBatchGenSA = R6Class("OptimizerBatchGenSA", inherit = OptimizerBatch,
param_set = param_set,
param_classes = "ParamDbl",
properties = "single-crit",
packages = "GenSA",
label = "Generalized Simulated Annealing",
man = "bbotk::mlr_optimizers_gensa"
packages = "GenSA"
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchGridSearch.R
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,7 @@ OptimizerBatchGridSearch = R6Class("OptimizerBatchGridSearch", inherit = Optimiz
id = "grid_search",
param_set = param_set,
param_classes = c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct"),
properties = c("dependencies", "single-crit", "multi-crit"),
label = "Grid Search",
man = "bbotk::mlr_optimizers_grid_search"
properties = c("dependencies", "single-crit", "multi-crit")
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchIrace.R
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,7 @@ OptimizerBatchIrace = R6Class("OptimizerBatchIrace",
param_set = param_set,
param_classes = c("ParamDbl", "ParamInt", "ParamFct", "ParamLgl"),
properties = c("dependencies", "single-crit"),
packages = "irace",
label = "Iterated Racing",
man = "bbotk::mlr_optimizers_irace"
packages = "irace"
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchLocalSearch.R
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,7 @@ OptimizerBatchLocalSearch = R6Class("OptimizerBatchLocalSearch",
id = "local_search",
param_set = param_set,
param_classes = c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct"),
properties = c("dependencies", "single-crit"), # NOTE: think about multi-crit version
label = "Local Search",
man = "bbotk::mlr_optimizers_local_search"
properties = c("dependencies", "single-crit") # NOTE: think about multi-crit version
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchNLoptr.R
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,7 @@ OptimizerBatchNLoptr = R6Class("OptimizerBatchNLoptr", inherit = OptimizerBatch,
param_set = param_set,
param_classes = "ParamDbl",
properties = "single-crit",
packages = "nloptr",
label = "Non-linear Optimization",
man = "bbotk::mlr_optimizers_nloptr"
packages = "nloptr"
)
}
),
Expand Down
4 changes: 1 addition & 3 deletions R/OptimizerBatchRandomSearch.R
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@ OptimizerBatchRandomSearch = R6Class("OptimizerBatchRandomSearch",
id = "random_search",
param_set = param_set,
param_classes = c("ParamLgl", "ParamInt", "ParamDbl", "ParamFct"),
properties = c("dependencies", "single-crit", "multi-crit"),
label = "Random Search",
man = "bbotk::mlr_optimizers_random_search"
properties = c("dependencies", "single-crit", "multi-crit")
)
}
),
Expand Down
Loading