.. _method-hybrid-sequential: """""""""" sequential """""""""" Methods are run one at a time, in sequence .. toctree:: :hidden: :maxdepth: 1 method-hybrid-sequential-method_name_list method-hybrid-sequential-method_pointer_list method-hybrid-sequential-iterator_servers method-hybrid-sequential-iterator_scheduling method-hybrid-sequential-processors_per_iterator **Specification** - *Alias:* uncoupled - *Arguments:* None **Child Keywords:** +-------------------------+--------------------+-----------------------------+---------------------------------------------+ | Required/Optional | Description of | Dakota Keyword | Dakota Keyword Description | | | Group | | | +=========================+====================+=============================+=============================================+ | Required (Choose One) | Sub-method | `method_name_list`__ | List of Dakota methods to sequentially or | | | Selection | | collaboratively run | | | +-----------------------------+---------------------------------------------+ | | | `method_pointer_list`__ | Pointers to methods to execute sequantially | | | | | or collaboratively | +-------------------------+--------------------+-----------------------------+---------------------------------------------+ | Optional | `iterator_servers`__ | Specify the number of iterator servers when | | | | Dakota is run in parallel | +----------------------------------------------+-----------------------------+---------------------------------------------+ | Optional | `iterator_scheduling`__ | Specify the scheduling of concurrent | | | | iterators when Dakota is run in parallel | +----------------------------------------------+-----------------------------+---------------------------------------------+ | Optional | `processors_per_iterator`__ | Specify the number of processors per | | | | iterator server when Dakota is run in | | | | parallel | +----------------------------------------------+-----------------------------+---------------------------------------------+ .. __: method-hybrid-sequential-method_name_list.html __ method-hybrid-sequential-method_pointer_list.html __ method-hybrid-sequential-iterator_servers.html __ method-hybrid-sequential-iterator_scheduling.html __ method-hybrid-sequential-processors_per_iterator.html **Description** In the ``sequential`` approach, methods are run one at a time, in sequence. The best solutions from one method are used to initialize the next method. The sequence of methods (i.e. iterators) to run are specified using either a ``method_pointer_list`` or a ``method_name_list`` (with optional ``model_pointer_list``). Any number of iterators may be specified. Method switching is managed through the separate convergence controls of each method. The number of solutions transferred between methods is specified by the particular method through its :dakkw:`method-final_solutions` method control. For example, if one sets up a two-level study with a first method that generates multiple solutions such as a genetic algorithm, followed by a second method that is initialized only at a single point such as a gradient-based algorithm, it is possible to take the multiple solutions generated by the first method and create several instances of the second method, each one with a different initial starting point. The logic governing the transfer of multiple solutions between methods is as follows: - if one solution is returned from method A, then one solution is transferred to method B. - If multiple solutions are returned from method A, and method B can accept multiple solutions as input (for example, as a genetic algorithm population), then one instance of method B is initialized with multiple solutions. - If multiple solutions are returned from method A but method B only can accept one initial starting point, then method B is run several times, each one with a separate starting point from the results of method A.