Skip to contents

Runs trial ensembles across a parameter grid. All scalar and function-valued parameters used in model construction or trial dynamics are included in metadata for transparency.

Usage

run_trials(
  model_generator,
  n_trials_per_param = 10,
  stop = 10,
  .progress = TRUE,
  syncfile = NULL,
  overwrite = FALSE,
  ...
)

Arguments

model_generator

Function that returns a new AgentBasedModel instance according to model_parameters, a named list of parameter label-value pairs.

n_trials_per_param

Number of trials per parameter combination.

stop

Stopping condition (number or function).

.progress

Whether to show progressbar when running the trials.

...

List of parameter label-value pairs; vector or singleton values.

Value

A list of Trial objects

Examples

agents = c(Agent$new(1), Agent$new(2))
mod_gen <- function(mparam_list) { 
  return (
    make_abm(
      make_model_parameters(
        # The first three positional ModelParameters fields go first.
        success_biased_learning_strategy, graph,
        # Then any auxiliary label-value pairs may be flexibly added here.
        adaptive_fitness = mparam_list$adaptive_fitness
      ), 
      agents = agents
    )
  )
}
# Run 2 trials per parameter setting, stopping after 10 time steps. 
trials <- run_trials(mod_gen, n_trials_per_param = 2, stop = 10,
  learning_strategy = success_bias_learning_strategy,
  adaptive_fitness = c(0.8, 1.0, 1.2)
)  # With this we'll have six total trials, two for each adaptive_fitness.
#> Error in tidyr::crossing(!!!model_parameters): `..1` must be a vector, not a <LearningStrategy/R6> object.