Salome HOME
Updating copyright date information and version
[modules/adao.git] / doc / fr / ref_algorithm_ParticleSwarmOptimization.rst
1 ..
2    Copyright (C) 2008-2015 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: ParticleSwarmOptimization
25 .. _section_ref_algorithm_ParticleSwarmOptimization:
26
27 Algorithme de calcul "*ParticleSwarmOptimization*"
28 --------------------------------------------------
29
30 Description
31 +++++++++++
32
33 Cet algorithme réalise une estimation de l'état d'un système dynamique par un
34 essaim particulaire.
35
36 C'est une méthode d'optimisation permettant la recherche du minimum global d'une
37 fonctionnelle d'erreur :math:`J` quelconque de type :math:`L^1`, :math:`L^2` ou
38 :math:`L^{\infty}`, avec ou sans pondérations. La fonctionnelle d'erreur par
39 défaut est celle de moindres carrés pondérés augmentés, classiquement utilisée
40 en assimilation de données.
41
42 Commandes requises et optionnelles
43 ++++++++++++++++++++++++++++++++++
44
45 .. index:: single: Background
46 .. index:: single: BackgroundError
47 .. index:: single: Observation
48 .. index:: single: ObservationError
49 .. index:: single: ObservationOperator
50 .. index:: single: MaximumNumberOfSteps
51 .. index:: single: NumberOfInsects
52 .. index:: single: SwarmVelocity
53 .. index:: single: GroupRecallRate
54 .. index:: single: QualityCriterion
55 .. index:: single: BoxBounds
56 .. index:: single: SetSeed
57 .. index:: single: StoreInternalVariables
58 .. index:: single: StoreSupplementaryCalculations
59
60 Les commandes requises générales, disponibles dans l'interface en édition, sont
61 les suivantes:
62
63   Background
64     *Commande obligatoire*. Elle définit le vecteur d'ébauche ou
65     d'initialisation, noté précédemment :math:`\mathbf{x}^b`. Sa valeur est
66     définie comme un objet de type "*Vector*" ou de type "*VectorSerie*".
67
68   BackgroundError
69     *Commande obligatoire*. Elle définit la matrice de covariance des erreurs
70     d'ébauche, notée précédemment :math:`\mathbf{B}`. Sa valeur est définie
71     comme un objet de type "*Matrix*", de type "*ScalarSparseMatrix*", ou de
72     type "*DiagonalSparseMatrix*".
73
74   Observation
75     *Commande obligatoire*. Elle définit le vecteur d'observation utilisé en
76     assimilation de données ou en optimisation, et noté précédemment
77     :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de type "*Vector*"
78     ou de type "*VectorSerie*".
79
80   ObservationError
81     *Commande obligatoire*. Elle définit la matrice de covariance des erreurs
82     d'ébauche, notée précédemment :math:`\mathbf{R}`. Sa valeur est définie
83     comme un objet de type "*Matrix*", de type "*ScalarSparseMatrix*", ou de
84     type "*DiagonalSparseMatrix*".
85
86   ObservationOperator
87     *Commande obligatoire*. Elle indique l'opérateur d'observation, noté
88     précédemment :math:`H`, qui transforme les paramètres d'entrée
89     :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux
90     observations :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de
91     type "*Function*" ou de type "*Matrix*". Dans le cas du type "*Function*",
92     différentes formes fonctionnelles peuvent être utilisées, comme décrit dans
93     la section :ref:`section_ref_operator_requirements`. Si un contrôle
94     :math:`U` est inclus dans le modèle d'observation, l'opérateur doit être
95     appliqué à une paire :math:`(X,U)`.
96
97 Les commandes optionnelles générales, disponibles dans l'interface en édition,
98 sont indiquées dans la :ref:`section_ref_assimilation_keywords`. En particulier,
99 la commande optionnelle "*AlgorithmParameters*" permet d'indiquer les options
100 particulières, décrites ci-après, de l'algorithme. On se reportera à la
101 :ref:`section_ref_options_AlgorithmParameters` pour le bon usage de cette
102 commande.
103
104 Les options de l'algorithme sont les suivantes:
105
106   MaximumNumberOfSteps
107     Cette clé indique le nombre maximum d'itérations possibles en optimisation
108     itérative. Le défaut est 50, qui est une limite arbitraire. Il est ainsi
109     recommandé d'adapter ce paramètre aux besoins pour des problèmes réels.
110
111     Exemple : ``{"MaximumNumberOfSteps":100}``
112
113   NumberOfInsects
114     Cette clé indique le nombre d'insectes ou de particules dans l'essaim. La
115     valeur par défaut est 100, qui est une valeur par défaut usuelle pour cet
116     algorithme.
117
118     Exemple : ``{"NumberOfInsects":100}``
119
120   SwarmVelocity
121     Cette clé indique la part de la vitesse d'insecte qui est imposée par
122     l'essaim. C'est une valeur réelle positive. Le défaut est de 1.
123
124     Exemple : ``{"SwarmVelocity":1.}``
125
126   GroupRecallRate
127     Cette clé indique le taux de rappel vers le meilleur insecte de l'essaim.
128     C'est une valeur réelle comprise entre 0 et 1. Le défaut est de 0.5.
129
130     Exemple : ``{"GroupRecallRate":0.5}``
131
132   QualityCriterion
133     Cette clé indique le critère de qualité, qui est minimisé pour trouver
134     l'estimation optimale de l'état. Le défaut est le critère usuel de
135     l'assimilation de données nommé "DA", qui est le critère de moindres carrés
136     pondérés augmentés. Les critères possibles sont dans la liste suivante, dans
137     laquelle les noms équivalents sont indiqués par un signe "=" :
138     ["AugmentedWeightedLeastSquares"="AWLS"="DA", "WeightedLeastSquares"="WLS",
139     "LeastSquares"="LS"="L2", "AbsoluteValue"="L1",  "MaximumError"="ME"].
140
141     Exemple : ``{"QualityCriterion":"DA"}``
142
143   BoxBounds
144     Cette clé permet de définir des bornes supérieure et inférieure pour chaque
145     incrément de  variable d'état optimisée (et non pas chaque variable d'état
146     elle-même). Les bornes doivent être données par une liste de liste de paires
147     de bornes inférieure/supérieure pour chaque incrément de variable, avec une
148     valeur extrême chaque fois qu'il n'y a pas de borne (``None`` n'est pas une
149     valeur autorisée lorsqu'il n'y a pas de borne). Cette clé est requise et il
150     n'y a pas de valeurs par défaut.
151
152     Exemple : ``{"BoxBounds":[[-0.5,0.5],[0.01,2.],[0.,1.e99],[-1.e99,1.e99]]}``
153
154   SetSeed
155     Cette clé permet de donner un nombre entier pour fixer la graine du
156     générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est
157     par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle
158     utilise ainsi l'initialisation par défaut de l'ordinateur.
159
160     Exemple : ``{"SetSeed":1000}``
161
162   StoreInternalVariables
163     Cette clé booléenne permet de stocker les variables internes par défaut,
164     principalement l'état courant lors d'un processus itératif. Attention, cela
165     peut être un choix numériquement coûteux dans certains cas de calculs. La
166     valeur par défaut est "False".
167
168     Exemple : ``{"StoreInternalVariables":True}``
169
170   StoreSupplementaryCalculations
171     Cette liste indique les noms des variables supplémentaires qui peuvent être
172     disponibles à la fin de l'algorithme. Cela implique potentiellement des
173     calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
174     aucune de ces variables n'étant calculée et stockée par défaut. Les noms
175     possibles sont dans la liste suivante : ["BMA", "OMA", "OMB", "Innovation"].
176
177     Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
178
179 Voir aussi
180 ++++++++++
181
182 Références bibliographiques :
183   - [WikipediaPSO]_