]> SALOME platform Git repositories - modules/adao.git/blob - doc/en/ref_algorithm_DifferentialEvolution.rst
Salome HOME
Documentation minor correction
[modules/adao.git] / doc / en / ref_algorithm_DifferentialEvolution.rst
1 ..
2    Copyright (C) 2008-2018 EDF R&D
3
4    This file is part of SALOME ADAO module.
5
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.
10
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.
15
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
19
20    See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
22    Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
23
24 .. index:: single: DifferentialEvolution
25 .. _section_ref_algorithm_DifferentialEvolution:
26
27 Calculation algorithm "*DifferentialEvolution*"
28 ----------------------------------------------------
29
30 .. warning::
31
32   in its present version, this algorithm is experimental, and so changes can be
33   required in forthcoming versions.
34
35 Description
36 +++++++++++
37
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`.
44
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.
49
50 Optional and required commands
51 ++++++++++++++++++++++++++++++
52
53 The general required commands, available in the editing user interface, are the
54 following:
55
56   .. include:: snippets/Background.rst
57
58   .. include:: snippets/BackgroundError.rst
59
60   .. include:: snippets/Observation.rst
61
62   .. include:: snippets/ObservationError.rst
63
64   .. include:: snippets/ObservationOperator.rst
65
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
71 command.
72
73 The options of the algorithm are the following:
74
75   .. include:: snippets/Minimizer_DE.rst
76
77   .. include:: snippets/BoundsWithExtremes.rst
78
79   .. include:: snippets/CrossOverProbability_CR.rst
80
81   .. include:: snippets/MaximumNumberOfSteps.rst
82
83   .. include:: snippets/MaximumNumberOfFunctionEvaluations.rst
84
85   .. include:: snippets/MutationDifferentialWeight_F.rst
86
87   .. include:: snippets/PopulationSize.rst
88
89   .. include:: snippets/QualityCriterion.rst
90
91   .. include:: snippets/SetSeed.rst
92
93   StoreSupplementaryCalculations
94     .. index:: single: StoreSupplementaryCalculations
95
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"].
107
108     Example :
109     ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
110
111 Information and variables available at the end of the algorithm
112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
113
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`.
121
122 The unconditional outputs of the algorithm are the following:
123
124   .. include:: snippets/Analysis.rst
125
126   .. include:: snippets/CostFunctionJ.rst
127
128   .. include:: snippets/CostFunctionJb.rst
129
130   .. include:: snippets/CostFunctionJo.rst
131
132   .. include:: snippets/CurrentState.rst
133
134 The conditional outputs of the algorithm are the following:
135
136   .. include:: snippets/BMA.rst
137
138   .. include:: snippets/CostFunctionJAtCurrentOptimum.rst
139
140   .. include:: snippets/CostFunctionJbAtCurrentOptimum.rst
141
142   .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
143
144   .. include:: snippets/CurrentOptimum.rst
145
146   .. include:: snippets/IndexOfOptimum.rst
147
148   .. include:: snippets/Innovation.rst
149
150   .. include:: snippets/InnovationAtCurrentState.rst
151
152   .. include:: snippets/OMA.rst
153
154   .. include:: snippets/OMB.rst
155
156   .. include:: snippets/SimulatedObservationAtBackground.rst
157
158   .. include:: snippets/SimulatedObservationAtCurrentOptimum.rst
159
160   .. include:: snippets/SimulatedObservationAtCurrentState.rst
161
162   .. include:: snippets/SimulatedObservationAtOptimum.rst
163
164 See also
165 ++++++++
166
167 References to other sections:
168   - :ref:`section_ref_algorithm_DerivativeFreeOptimization`
169   - :ref:`section_ref_algorithm_ParticleSwarmOptimization`
170
171 Bibliographical references:
172   - [Chakraborty08]_
173   - [Price05]_
174   - [Storn97]_