Salome HOME
Documentation update with features and review corrections
[modules/adao.git] / doc / en / ref_algorithm_TabuSearch.rst
1 ..
2    Copyright (C) 2008-2024 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: TabuSearch
25 .. _section_ref_algorithm_TabuSearch:
26
27 Calculation algorithm "*TabuSearch*"
28 ------------------------------------
29
30 .. ------------------------------------ ..
31 .. include:: snippets/Header2Algo01.rst
32
33 This algorithm realizes an estimation of the state of a system by minimization
34 without gradient of a cost function :math:`J`, using a Tabu list search method.
35 It is a method that does not use the derivatives of the cost function. It falls
36 in the same category than the
37 :ref:`section_ref_algorithm_DerivativeFreeOptimization`,
38 :ref:`section_ref_algorithm_DifferentialEvolution` or
39 :ref:`section_ref_algorithm_ParticleSwarmOptimization`.
40
41 This is a mono-objective optimization method allowing for global minimum search
42 of a general error function :math:`J` of type :math:`L^1`, :math:`L^2` or
43 :math:`L^{\infty}`, with or without weights. The default error function is the
44 augmented weighted least squares function, classically used in data
45 assimilation.
46
47 It works by iterative random exploration of the surroundings of the current
48 point, to choose the state that minimizes the error function. To avoid
49 returning to a point already explored, the algorithm's memory mechanism allows
50 to exclude (hence the name *tabu*) the return to the last explored states.
51 Positions already explored are kept in a list of finite length.
52
53 .. ------------------------------------ ..
54 .. include:: snippets/Header2Algo12.rst
55
56 .. include:: snippets/FeaturePropNonLocalOptimization.rst
57
58 .. include:: snippets/FeaturePropDerivativeFree.rst
59
60 .. ------------------------------------ ..
61 .. include:: snippets/Header2Algo02.rst
62
63 .. include:: snippets/Background.rst
64
65 .. include:: snippets/BackgroundError.rst
66
67 .. include:: snippets/Observation.rst
68
69 .. include:: snippets/ObservationError.rst
70
71 .. include:: snippets/ObservationOperator.rst
72
73 .. ------------------------------------ ..
74 .. include:: snippets/Header2Algo03AdOp.rst
75
76 .. include:: snippets/BoundsWithNone.rst
77
78 .. include:: snippets/LengthOfTabuList.rst
79
80 .. include:: snippets/MaximumNumberOfIterations_50.rst
81
82 .. include:: snippets/NoiseAddingProbability.rst
83
84 .. include:: snippets/NoiseDistribution.rst
85
86 .. include:: snippets/NoiseHalfRange.rst
87
88 .. include:: snippets/NumberOfElementaryPerturbations.rst
89
90 .. include:: snippets/QualityCriterion.rst
91
92 .. include:: snippets/SetSeed.rst
93
94 .. include:: snippets/StandardDeviation.rst
95
96 StoreSupplementaryCalculations
97   .. index:: single: StoreSupplementaryCalculations
98
99   *List of names*. This list indicates the names of the supplementary
100   variables, that can be available during or at the end of the algorithm, if
101   they are initially required by the user. Their availability involves,
102   potentially, costly calculations or memory consumptions. The default is then
103   a void list, none of these variables being calculated and stored by default
104   (excepted the unconditional variables). The possible names are in the
105   following list (the detailed description of each named variable is given in
106   the following part of this specific algorithmic documentation, in the
107   sub-section "*Information and variables available at the end of the
108   algorithm*"): [
109   "Analysis",
110   "BMA",
111   "CostFunctionJ",
112   "CostFunctionJb",
113   "CostFunctionJo",
114   "CurrentIterationNumber",
115   "CurrentState",
116   "Innovation",
117   "OMA",
118   "OMB",
119   "SimulatedObservationAtBackground",
120   "SimulatedObservationAtCurrentState",
121   "SimulatedObservationAtOptimum",
122   ].
123
124   Example :
125   ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
126
127 .. ------------------------------------ ..
128 .. include:: snippets/Header2Algo04.rst
129
130 .. include:: snippets/Analysis.rst
131
132 .. include:: snippets/CostFunctionJ.rst
133
134 .. include:: snippets/CostFunctionJb.rst
135
136 .. include:: snippets/CostFunctionJo.rst
137
138 .. ------------------------------------ ..
139 .. include:: snippets/Header2Algo05.rst
140
141 .. include:: snippets/Analysis.rst
142
143 .. include:: snippets/BMA.rst
144
145 .. include:: snippets/CostFunctionJ.rst
146
147 .. include:: snippets/CostFunctionJb.rst
148
149 .. include:: snippets/CostFunctionJo.rst
150
151 .. include:: snippets/CurrentIterationNumber.rst
152
153 .. include:: snippets/CurrentState.rst
154
155 .. include:: snippets/Innovation.rst
156
157 .. include:: snippets/OMA.rst
158
159 .. include:: snippets/OMB.rst
160
161 .. include:: snippets/SimulatedObservationAtBackground.rst
162
163 .. include:: snippets/SimulatedObservationAtCurrentState.rst
164
165 .. include:: snippets/SimulatedObservationAtOptimum.rst
166
167 .. ------------------------------------ ..
168 .. _section_ref_algorithm_TabuSearch_examples:
169
170 .. include:: snippets/Header2Algo06.rst
171
172 - :ref:`section_ref_algorithm_DerivativeFreeOptimization`
173 - :ref:`section_ref_algorithm_DifferentialEvolution`
174 - :ref:`section_ref_algorithm_ParticleSwarmOptimization`
175
176 .. ------------------------------------ ..
177 .. include:: snippets/Header2Algo07.rst
178
179 - [Glover89]_
180 - [Glover90]_
181 - [WikipediaTS]_