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: ParticleSwarmOptimization
25 .. _section_ref_algorithm_ParticleSwarmOptimization:
27 Algorithme de calcul "*ParticleSwarmOptimization*"
28 --------------------------------------------------
33 Cet algorithme réalise une estimation de l'état d'un système dynamique par
34 minimisation d'une fonctionnelle d'écart :math:`J` en utilisant un essaim
35 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`.
39 C'est une méthode d'optimisation permettant la recherche du minimum global d'une
40 fonctionnelle d'erreur :math:`J` quelconque de type :math:`L^1`, :math:`L^2` ou
41 :math:`L^{\infty}`, avec ou sans pondérations. La fonctionnelle d'erreur par
42 défaut est celle de moindres carrés pondérés augmentés, classiquement utilisée
43 en assimilation de données.
45 Commandes requises et optionnelles
46 ++++++++++++++++++++++++++++++++++
48 Les commandes requises générales, disponibles dans l'interface en édition, sont
51 .. include:: snippets/Background.rst
53 .. include:: snippets/BackgroundError.rst
55 .. include:: snippets/Observation.rst
57 .. include:: snippets/ObservationError.rst
59 .. include:: snippets/ObservationOperator.rst
61 Les commandes optionnelles générales, disponibles dans l'interface en édition,
62 sont indiquées dans la :ref:`section_ref_assimilation_keywords`. De plus, les
63 paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les
64 options particulières, décrites ci-après, de l'algorithme. On se reportera à la
65 :ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
68 Les options de l'algorithme sont les suivantes:
69 .. index:: single: NumberOfInsects
70 .. index:: single: SwarmVelocity
71 .. index:: single: GroupRecallRate
72 .. index:: single: QualityCriterion
73 .. index:: single: BoxBounds
75 .. include:: snippets/MaximumNumberOfSteps_50.rst
77 .. include:: snippets/MaximumNumberOfFunctionEvaluations.rst
79 .. include:: snippets/QualityCriterion.rst
82 Cette clé indique le nombre d'insectes ou de particules dans l'essaim. La
83 valeur par défaut est 100, qui est une valeur par défaut usuelle pour cet
87 ``{"NumberOfInsects":100}``
90 Cette clé indique la part de la vitesse d'insecte qui est imposée par
91 l'essaim. C'est une valeur réelle positive. Le défaut est de 1.
94 ``{"SwarmVelocity":1.}``
97 Cette clé indique le taux de rappel vers le meilleur insecte de l'essaim.
98 C'est une valeur réelle comprise entre 0 et 1. Le défaut est de 0.5.
101 ``{"GroupRecallRate":0.5}``
104 Cette clé permet de définir des bornes supérieure et inférieure pour chaque
105 incrément de variable d'état optimisée (et non pas chaque variable d'état
106 elle-même). Les bornes doivent être données par une liste de liste de paires
107 de bornes inférieure/supérieure pour chaque incrément de variable, avec une
108 valeur extrême chaque fois qu'il n'y a pas de borne (``None`` n'est pas une
109 valeur autorisée lorsqu'il n'y a pas de borne). Cette clé est requise et il
110 n'y a pas de valeurs par défaut.
113 ``{"BoxBounds":[[-0.5,0.5], [0.01,2.], [0.,1.e99], [-1.e99,1.e99]]}``
115 .. include:: snippets/SetSeed.rst
117 StoreSupplementaryCalculations
118 .. index:: single: StoreSupplementaryCalculations
120 Cette liste indique les noms des variables supplémentaires qui peuvent être
121 disponibles à la fin de l'algorithme. Cela implique potentiellement des
122 calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
123 aucune de ces variables n'étant calculée et stockée par défaut. Les noms
124 possibles sont dans la liste suivante : ["BMA", "CostFunctionJ",
125 "CostFunctionJb", "CostFunctionJo", "CurrentState", "OMA", "OMB",
126 "Innovation", "SimulatedObservationAtBackground",
127 "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"].
130 ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
132 Informations et variables disponibles à la fin de l'algorithme
133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
135 En sortie, après exécution de l'algorithme, on dispose d'informations et de
136 variables issues du calcul. La description des
137 :ref:`section_ref_output_variables` indique la manière de les obtenir par la
138 méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
139 d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
140 l'écriture des procédures de post-processing, sont décrites dans
141 l':ref:`subsection_r_o_v_Inventaire`.
143 Les sorties non conditionnelles de l'algorithme sont les suivantes:
145 .. include:: snippets/Analysis.rst
147 .. include:: snippets/CostFunctionJ.rst
149 .. include:: snippets/CostFunctionJb.rst
151 .. include:: snippets/CostFunctionJo.rst
153 Les sorties conditionnelles de l'algorithme sont les suivantes:
155 .. include:: snippets/BMA.rst
157 .. include:: snippets/CurrentState.rst
159 .. include:: snippets/Innovation.rst
161 .. include:: snippets/OMA.rst
163 .. include:: snippets/OMB.rst
165 .. include:: snippets/SimulatedObservationAtBackground.rst
167 .. include:: snippets/SimulatedObservationAtCurrentState.rst
169 .. include:: snippets/SimulatedObservationAtOptimum.rst
174 Références vers d'autres sections :
175 - :ref:`section_ref_algorithm_DerivativeFreeOptimization`
177 Références bibliographiques :