swh:1:snp:0f920b1e114986636ba2e45b5c1a83473fb6cf12
Tip revision: d2854b77f74f8ee2cb0f4916e5d5a940f035fc6e authored by Lars Kotthoff on 07 January 2021, 17:10:26 UTC
version 0.32
version 0.32
Tip revision: d2854b7
search.exhaustive.R
exhaustive.search <- function(attributes, eval.fun) {
len = length(attributes)
if(len == 0)
stop("Attributes not specified")
eval.fun = match.fun(eval.fun)
best = list(
result = -Inf,
attrs = rep(0, len)
)
# main loop
# for each subset size
for(size in 1:len) {
child_comb = combn(1:len, size)
# for each child
for(i in 1:dim(child_comb)[2]) {
subset = rep(0, len)
subset[child_comb[, i]] = 1
result = eval.fun(attributes[as.logical(subset)])
if(result > best$result) {
best$result = result
best$attrs = subset
}
}
}
return(attributes[as.logical(best$attrs)])
}