model_selection

Perform a recursion of admissible model subsets for a given model ensemble

Specification

  • Alias: None

  • Arguments: None

Description

For the weighted MLMC (search_model_graphs), MFMC (search_model_graphs and [PWG16]), ACV (approximate_control_variate and [GGEJ20]) and generalized ACV (search_model_graphs and [BLWL22]) methods, this option specifies an enumerative search over all model subsets for a given model ensemble.

All model selection cases forward to the generalized ACV solver, subject to certain selections and restrictions. In the weighted MLMC and MFMC cases, a hierarchical DAG is employed across the model approximations, where each approximation node points to the next approximation of higher fidelity, ending with the truth model at the root node. For these cases, model selection can be used with either a fixed (no_recursion) or variable (full_recursion) model ordering within the hierarchical DAG for a particular model subset. In the ACV case, a fixed peer DAG is employed, where each active approximation node points to the root node (reordering is irrelevant), and model selection enumerates the model subset included in the peer DAG. For generalized ACV, model selection may be combined with enumeration of admissible DAGs using different DAG recursion throttles.

The model subset (and DAG definition) with the best performance (lowest estimator variance for a prescribed budget or lowest cost for a prescribed accuracy) is selected for final post-processing.

Examples

Activating model selection for ACV and GenACV:

method,
    model_pointer = 'ENSEMBLE'
    approximate_control_variate acv_mf
      pilot_samples = 50 seed = 8674132
      search_model_graphs
        no_recursion                      # ACV case
#       kl_recursion                      # GenACV case 1 of 3
#       partial_recursion depth_limit = 2 # GenACV case 2 of 3
#       full_recursion                    # GenACV case 3 of 3
        model_selection                   # this option
      max_function_evaluations = 500

Activating model selection for weighted MLMC:

method,
    model_pointer = 'ENSEMBLE'
    multilevel_sampling weighted
      pilot_samples = 50 seed = 8674132
      search_model_graphs
        no_recursion              # fixed ordering in hierarchical DAG
#       full_recursion            # recur over orderings in hierarchical DAG
        model_selection           # this option
    max_function_evaluations = 500

Activating model selection for MFMC:

method,
    model_pointer = 'ENSEMBLE'
    multifidelity_sampling
      pilot_samples = 50 seed = 8674132
      search_model_graphs
        no_recursion              # fixed ordering in hierarchical DAG
#       full_recursion            # recur over orderings in hierarchical DAG
        model_selection           # this option
    max_function_evaluations = 500