setMBOControlTermination {mlrMBO} | R Documentation |
Set termination options.
Description
Extends an MBO control object with infill criteria and infill optimizer options.
Usage
setMBOControlTermination(
control,
iters = NULL,
time.budget = NULL,
exec.time.budget = NULL,
target.fun.value = NULL,
max.evals = NULL,
more.termination.conds = list(),
use.for.adaptive.infill = NULL
)
Arguments
control |
[MBOControl ]
Control object for mbo.
|
iters |
[integer(1) ]
Number of sequential optimization steps.
|
time.budget |
[numeric(1) | NULL]
Running time budget in seconds. Note that the actual mbo run can take more time since
the condition is checked after each iteration.
The default NULL means: There is no time budget.
|
exec.time.budget |
[numeric(1) | NULL]
Execution time (time spent executing the function passed to mbo )
budget in seconds. Note that the actual mbo run can take more time since
the condition is checked after each iteration.
The default NULL means: There is no execution time budget.
|
target.fun.value |
[numeric(1) ] | NULL]
Termination criterion for single-objective optimization: Stop if a function evaluation
is better than this given target.value.
The default NULL means: The function value won't be taken into account for termination.
|
max.evals |
[integer(1) | NULL ]
Maximal number of function evaluations.
The default NULL means: The total number of evaluations won't be taken into account for termination.
|
more.termination.conds |
[list ]
Optional list of termination conditions. Each condition needs to be a function
of a single argument opt.state of type OptState and should
return a list with the following elements:
- term [
logical(1) ] Logical value indicating whether the
termination condition is met.
- message [
character(1) ] Termination message. At the moment we just allow term.custom .
|
use.for.adaptive.infill |
[character(1) |NULL]
Which termination criterion should determine the progress that is used for adaptive infill criteria like [makeMBOInfillCritAdaCB ].
The default is NULL which means, that the first supplied argument is taken, following the order of the function signature.
Other values can be "iters" , "time.budget" , etc.
If you want to to use it together with a criterion you supplied in more.termination.conds , more.termination.conds has to be a named list and the function further has to return a list element progress with values between 0 and 1.
|
Value
[MBOControl
].
See Also
Other MBOControl:
makeMBOControl()
,
setMBOControlInfill()
,
setMBOControlMultiObj()
,
setMBOControlMultiPoint()
Examples
fn = smoof::makeSphereFunction(1L)
ctrl = makeMBOControl()
# custom termination condition (stop if target function value reached)
# We neglect the optimization direction (min/max) in this example.
yTargetValueTerminator = function(y.val) {
force(y.val)
function(opt.state) {
opt.path = opt.state$opt.path
current.best = getOptPathEl(opt.path, getOptPathBestIndex((opt.path)))$y
term = (current.best <= y.val)
message = if (!term) NA_character_ else sprintf("Target function value %f reached.", y.val)
return(list(term = term, message = message))
}
}
# assign custom termination condition
ctrl = setMBOControlTermination(ctrl, more.termination.conds = list(yTargetValueTerminator(0.05)))
res = mbo(fn, control = ctrl)
print(res)
[Package
mlrMBO version 1.1.5.1
Index]