make_runner_function: Factory for objective functions.

Description Usage Arguments Value

View source: R/make_runner_function.R

Description

Given a set of n algorithms A (parameter A) with parameters θ_i, i \in A (parameter A.pars) the goal is to produce a function f = function(x, ...) that expects a problem instance x and optional arguments .... The function shall run each algorithm A_i \in A parameterized with θ_i on x. In case of stochastic/randomized algorithms each algorithm should be run multiple times (parameter repls) returning an aggregated value (parameter aggr.fun).

Usage

1
2
3
4
5
6
7
8
make_runner_function(
  A,
  A.pars,
  runner.fun,
  repls = 1L,
  aggr.fun = base::mean,
  named.result = TRUE
)

Arguments

A

[character]
Character vector of at least two algorithm names. Note that the names must be valid arguments for the “algorithm” parameter of parameter runner.fun.

A.pars

[list of lists]
A named list (names equal to A) where each sub-list should contain parameters for the respective algorithm.

runner.fun

[function(x, algorithm, ...)]
A function that expects an instance x, an algorithm name algorithm (see parameter A) and optional further parameters (see parameter A.pars).

repls

[integer]
How many independent runs should be conducted for each algorithm on an instance? Defaults to 1, but should be adjusted if the corresponding algorithm(s) is/are of stochastic nature. If a single value is passed it is used for all algorithms.

aggr.fun

[function(x, ...)]
Function used to aggregate results of multiple runs. Only applied if repls[i] is greater than one for algorithm A[i]. Defaults to mean.

named.result

[logical(1)]
Should the result vector be named with A? Default is TRUE.

Value

[function(x, ...)] Factorized function (see description).


jakobbossek/evoprob documentation built on Dec. 20, 2021, 9 p.m.