2 Copyright (C) 2008-2020 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: ParticleSwarmOptimization
25 .. _section_ref_algorithm_ParticleSwarmOptimization:
27 Algorithme de calcul "*ParticleSwarmOptimization*"
28 --------------------------------------------------
30 .. ------------------------------------ ..
31 .. include:: snippets/Header2Algo01.rst
33 Cet algorithme réalise une estimation de l'état d'un système par minimisation
34 d'une fonctionnelle d'écart :math:`J` en utilisant une méthode évolutionnaire
35 d'essaim particulaire. C'est une méthode qui n'utilise pas les dérivées de la
36 fonctionnelle d'écart. Elle entre dans la même catégorie que
37 l':ref:`section_ref_algorithm_DerivativeFreeOptimization`,
38 l':ref:`section_ref_algorithm_DifferentialEvolution` ou
39 l':ref:`section_ref_algorithm_TabuSearch`.
41 C'est une méthode d'optimisation permettant la recherche du minimum global d'une
42 fonctionnelle d'erreur :math:`J` quelconque de type :math:`L^1`, :math:`L^2` ou
43 :math:`L^{\infty}`, avec ou sans pondérations. La fonctionnelle d'erreur par
44 défaut est celle de moindres carrés pondérés augmentés, classiquement utilisée
45 en assimilation de données.
47 .. ------------------------------------ ..
48 .. include:: snippets/Header2Algo02.rst
50 .. include:: snippets/Background.rst
52 .. include:: snippets/BackgroundError.rst
54 .. include:: snippets/Observation.rst
56 .. include:: snippets/ObservationError.rst
58 .. include:: snippets/ObservationOperator.rst
60 .. ------------------------------------ ..
61 .. include:: snippets/Header2Algo03AdOp.rst
63 .. index:: single: NumberOfInsects
64 .. index:: single: SwarmVelocity
65 .. index:: single: GroupRecallRate
66 .. index:: single: QualityCriterion
67 .. index:: single: BoxBounds
69 .. include:: snippets/MaximumNumberOfSteps_50.rst
71 .. include:: snippets/MaximumNumberOfFunctionEvaluations.rst
73 .. include:: snippets/QualityCriterion.rst
76 Cette clé indique le nombre d'insectes ou de particules dans l'essaim. La
77 valeur par défaut est 100, qui est une valeur par défaut usuelle pour cet
81 ``{"NumberOfInsects":100}``
84 Cette clé indique la part de la vitesse d'insecte qui est imposée par
85 l'essaim. C'est une valeur réelle positive. Le défaut est de 1.
88 ``{"SwarmVelocity":1.}``
91 Cette clé indique le taux de rappel vers le meilleur insecte de l'essaim.
92 C'est une valeur réelle comprise entre 0 et 1. Le défaut est de 0.5.
95 ``{"GroupRecallRate":0.5}``
98 Cette clé permet de définir des bornes supérieure et inférieure pour chaque
99 incrément de variable d'état optimisée (et non pas chaque variable d'état
100 elle-même). Les bornes doivent être données par une liste de liste de paires
101 de bornes inférieure/supérieure pour chaque incrément de variable, avec une
102 valeur extrême chaque fois qu'il n'y a pas de borne (``None`` n'est pas une
103 valeur autorisée lorsqu'il n'y a pas de borne). Cette clé est requise et il
104 n'y a pas de valeurs par défaut.
107 ``{"BoxBounds":[[-0.5,0.5], [0.01,2.], [0.,1.e99], [-1.e99,1.e99]]}``
109 .. include:: snippets/SetSeed.rst
111 StoreSupplementaryCalculations
112 .. index:: single: StoreSupplementaryCalculations
114 Cette liste indique les noms des variables supplémentaires qui peuvent être
115 disponibles à la fin de l'algorithme, si elles sont initialement demandées par
116 l'utilisateur. Cela implique potentiellement des calculs ou du stockage
117 coûteux. La valeur par défaut est une liste vide, aucune de ces variables
118 n'étant calculée et stockée par défaut sauf les variables inconditionnelles.
119 Les noms possibles sont dans la liste suivante : [
129 "SimulatedObservationAtBackground",
130 "SimulatedObservationAtCurrentState",
131 "SimulatedObservationAtOptimum",
135 ``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
137 .. ------------------------------------ ..
138 .. include:: snippets/Header2Algo04.rst
140 .. include:: snippets/Analysis.rst
142 .. include:: snippets/CostFunctionJ.rst
144 .. include:: snippets/CostFunctionJb.rst
146 .. include:: snippets/CostFunctionJo.rst
148 .. ------------------------------------ ..
149 .. include:: snippets/Header2Algo05.rst
151 .. include:: snippets/Analysis.rst
153 .. include:: snippets/BMA.rst
155 .. include:: snippets/CurrentState.rst
157 .. include:: snippets/CostFunctionJ.rst
159 .. include:: snippets/CostFunctionJb.rst
161 .. include:: snippets/CostFunctionJo.rst
163 .. include:: snippets/Innovation.rst
165 .. include:: snippets/OMA.rst
167 .. include:: snippets/OMB.rst
169 .. include:: snippets/SimulatedObservationAtBackground.rst
171 .. include:: snippets/SimulatedObservationAtCurrentState.rst
173 .. include:: snippets/SimulatedObservationAtOptimum.rst
175 .. ------------------------------------ ..
176 .. include:: snippets/Header2Algo06.rst
178 - :ref:`section_ref_algorithm_DerivativeFreeOptimization`
179 - :ref:`section_ref_algorithm_DifferentialEvolution`
180 - :ref:`section_ref_algorithm_TabuSearch`
182 .. ------------------------------------ ..
183 .. include:: snippets/Header2Algo07.rst