2 Copyright (C) 2008-2018 EDF R&D
4 This file is part of SALOME ADAO module.
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
24 .. index:: single: DifferentialEvolution
25 .. _section_ref_algorithm_DifferentialEvolution:
27 Calculation algorithm "*DifferentialEvolution*"
28 ----------------------------------------------------
32 in its present version, this algorithm is experimental, and so changes can be
33 required in forthcoming versions.
38 This algorithm realizes an estimation of the state of a system by minimization
39 of a cost function :math:`J` by using an evolutionary strategy of differential
40 evolution. It is a method that does not use the derivatives of the cost
41 function. It falls in the same category than the
42 :ref:`section_ref_algorithm_DerivativeFreeOptimization` or the
43 :ref:`section_ref_algorithm_ParticleSwarmOptimization`.
45 This is an optimization method allowing for global minimum search of a general
46 error function :math:`J` of type :math:`L^1`, :math:`L^2` or :math:`L^{\infty}`,
47 with or without weights. The default error function is the augmented weighted
48 least squares function, classically used in data assimilation.
50 Optional and required commands
51 ++++++++++++++++++++++++++++++
53 The general required commands, available in the editing user interface, are the
56 .. include:: snippets/Background.rst
58 .. include:: snippets/BackgroundError.rst
60 .. include:: snippets/Observation.rst
62 .. include:: snippets/ObservationError.rst
64 .. include:: snippets/ObservationOperator.rst
66 The general optional commands, available in the editing user interface, are
67 indicated in :ref:`section_ref_assimilation_keywords`. Moreover, the parameters
68 of the command "*AlgorithmParameters*" allows to choose the specific options,
69 described hereafter, of the algorithm. See
70 :ref:`section_ref_options_Algorithm_Parameters` for the good use of this
73 The options of the algorithm are the following:
75 .. include:: snippets/Minimizer_DE.rst
77 .. include:: snippets/BoundsWithExtremes.rst
79 .. include:: snippets/CrossOverProbability_CR.rst
81 .. include:: snippets/MaximumNumberOfSteps.rst
83 .. include:: snippets/MaximumNumberOfFunctionEvaluations.rst
85 .. include:: snippets/MutationDifferentialWeight_F.rst
87 .. include:: snippets/PopulationSize.rst
89 .. include:: snippets/QualityCriterion.rst
91 .. include:: snippets/SetSeed.rst
93 StoreSupplementaryCalculations
94 .. index:: single: StoreSupplementaryCalculations
96 This list indicates the names of the supplementary variables that can be
97 available at the end of the algorithm. It involves potentially costly
98 calculations or memory consumptions. The default is a void list, none of
99 these variables being calculated and stored by default. The possible names
100 are in the following list: ["BMA", "CostFunctionJ",
101 "CostFunctionJAtCurrentOptimum", "CostFunctionJb",
102 "CostFunctionJbAtCurrentOptimum", "CostFunctionJo",
103 "CostFunctionJoAtCurrentOptimum", "CurrentOptimum", "CurrentState",
104 "IndexOfOptimum", "Innovation", "InnovationAtCurrentState", "OMA", "OMB",
105 "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentOptimum",
106 "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"].
109 ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
111 Information and variables available at the end of the algorithm
112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
114 At the output, after executing the algorithm, there are variables and
115 information originating from the calculation. The description of
116 :ref:`section_ref_output_variables` show the way to obtain them by the method
117 named ``get`` of the variable "*ADD*" of the post-processing. The input
118 variables, available to the user at the output in order to facilitate the
119 writing of post-processing procedures, are described in the
120 :ref:`subsection_r_o_v_Inventaire`.
122 The unconditional outputs of the algorithm are the following:
124 .. include:: snippets/Analysis.rst
126 .. include:: snippets/CostFunctionJ.rst
128 .. include:: snippets/CostFunctionJb.rst
130 .. include:: snippets/CostFunctionJo.rst
132 .. include:: snippets/CurrentState.rst
134 The conditional outputs of the algorithm are the following:
136 .. include:: snippets/BMA.rst
138 .. include:: snippets/CostFunctionJAtCurrentOptimum.rst
140 .. include:: snippets/CostFunctionJbAtCurrentOptimum.rst
142 .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
144 .. include:: snippets/CurrentOptimum.rst
146 .. include:: snippets/IndexOfOptimum.rst
148 .. include:: snippets/Innovation.rst
150 .. include:: snippets/InnovationAtCurrentState.rst
152 .. include:: snippets/OMA.rst
154 .. include:: snippets/OMB.rst
156 .. include:: snippets/SimulatedObservationAtBackground.rst
158 .. include:: snippets/SimulatedObservationAtCurrentOptimum.rst
160 .. include:: snippets/SimulatedObservationAtCurrentState.rst
162 .. include:: snippets/SimulatedObservationAtOptimum.rst
167 References to other sections:
168 - :ref:`section_ref_algorithm_DerivativeFreeOptimization`
169 - :ref:`section_ref_algorithm_ParticleSwarmOptimization`
171 Bibliographical references: