algorithm <- Algorithm(
name = "good for inst1",
parameters = irace::readParameters(text = 'betterIfA "" c (A,B)')
)
problemSpace <- ProblemSpace(
problems = list(
Problem(
name = "inst1",
instances = list("inst1")
),
Problem(
name = "inst2",
instances = list("inst2")
)
)
)
solve_function <- function(algorithm, config, instance, problem, seed, ...) {
list(
cost = 4
- (algorithm@name == "good for inst1" && problem@name == "inst1")
- (algorithm@name == "good for inst1" && config$betterIfA == "A"),
time = 0
)
}
scenario <- irace::defaultScenario(list(
maxExperiments = 42,
seed = 654687
))
test_that("parameters are tunned", {
results <- train_best_solver(
problemSpace,
algorithm,
solve_function,
irace_scenario = scenario,
quiet = T
)
betterAParams <- results %>%
pull(betterIfA)
expect_true(all(betterAParams == "A"))
})
test_that("parameters are tunned in parallel", {
plan(multisession)
on.exit(plan(sequential))
results <- train_best_solver(
problemSpace,
algorithm,
solve_function,
irace_scenario = scenario,
quiet = T,
parallel = 2
)
betterAParams <- results %>%
pull(betterIfA)
expect_true(all(betterAParams == "A"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.