.. _method-approximate_control_variate-search_model_graphs-model_selection:

"""""""""""""""
model_selection
"""""""""""""""


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



.. toctree::
   :hidden:
   :maxdepth: 1



**Specification**

- *Alias:* None

- *Arguments:* None


**Description**


For the ACV (:cite:p:`GORODETSKY2020109257`) and generalized ACV
(:cite:p:`Bomarito2022`) methods, this option specifies an enumerative
search over all model subsets for a given model ensemble.  In the ACV
case, each model subset employs a single DAG definition (a "peer" DAG
where each active approximation node points to the root node); thus
this keyword is only used to search over possible subsets given this
fixed ACV 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**



.. code-block::
    
    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