]> SALOME platform Git repositories - modules/adao.git/blob - doc/fr/ref_algorithm_ParticleSwarmOptimization.rst
Salome HOME
Documentation and code update for PSO
[modules/adao.git] / doc / fr / ref_algorithm_ParticleSwarmOptimization.rst
1 ..
2    Copyright (C) 2008-2023 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 .. index:: single: Optimisation globale
26 .. index:: single: Globale (optimisation)
27 .. _section_ref_algorithm_ParticleSwarmOptimization:
28
29 Algorithme de calcul "*ParticleSwarmOptimization*"
30 --------------------------------------------------
31
32 .. ------------------------------------ ..
33 .. include:: snippets/Header2Algo01.rst
34
35 Cet algorithme réalise une estimation de l'état d'un système par minimisation
36 d'une fonctionnelle d'écart :math:`J` en utilisant une méthode évolutionnaire
37 d'essaim particulaire. C'est une méthode qui n'utilise pas les dérivées de la
38 fonctionnelle d'écart. Elle est basée sur l'évolution d'une population (appelée
39 "essaim") d'états (chaque individu étant appelé une "particule" ou un insecte).
40 Elle entre dans la même catégorie que les
41 :ref:`section_ref_algorithm_DerivativeFreeOptimization`,
42 :ref:`section_ref_algorithm_DifferentialEvolution` ou
43 :ref:`section_ref_algorithm_TabuSearch`.
44
45 C'est une méthode d'optimisation permettant la recherche du minimum global
46 d'une fonctionnelle d'erreur :math:`J` quelconque de type :math:`L^1`,
47 :math:`L^2` ou :math:`L^{\infty}`, avec ou sans pondérations, comme décrit dans
48 la section pour :ref:`section_theory_optimization`. La fonctionnelle d'erreur
49 par défaut est celle de moindres carrés pondérés augmentés, classiquement
50 utilisée en assimilation de données.
51
52 Il existe diverses variantes de cet algorithme. On propose ici les formulations
53 stables et robustes suivantes :
54
55 .. index::
56     pair: Variant ; PSO
57     pair: Variant ; CanonicalPSO
58     pair: Variant ; OGCR
59
60 - "PSO" (Canonical PSO, voir [ZambranoBigiarini13]_), algorithme canonique d'essaim particulaire, robuste et défini comme la référence des algorithmes d'essaims particulaires,
61 - "OGCR" (Simple PSO sans bornes sur les insectes ou les vitesses), algorithme simplifié d'essaim particulaire, déconseillé car peu robuste, mais parfois beaucoup plus rapide.
62
63 .. ------------------------------------ ..
64 .. include:: snippets/Header2Algo02.rst
65
66 .. include:: snippets/Background.rst
67
68 .. include:: snippets/BackgroundError.rst
69
70 .. include:: snippets/Observation.rst
71
72 .. include:: snippets/ObservationError.rst
73
74 .. include:: snippets/ObservationOperator.rst
75
76 .. ------------------------------------ ..
77 .. include:: snippets/Header2Algo03AdOp.rst
78
79 .. include:: snippets/BoundsWithNone.rst
80
81 .. include:: snippets/BoxBounds.rst
82
83 .. include:: snippets/CognitiveAcceleration.rst
84
85 .. include:: snippets/InertiaWeight.rst
86
87 .. include:: snippets/InitializationPoint.rst
88
89 .. include:: snippets/MaximumNumberOfFunctionEvaluations.rst
90
91 .. include:: snippets/MaximumNumberOfIterations_50.rst
92
93 .. include:: snippets/NumberOfInsects.rst
94
95 .. include:: snippets/QualityCriterion.rst
96
97 .. include:: snippets/SetSeed.rst
98
99 .. include:: snippets/SocialAcceleration.rst
100
101 StoreSupplementaryCalculations
102   .. index:: single: StoreSupplementaryCalculations
103
104   *Liste de noms*. Cette liste indique les noms des variables supplémentaires,
105   qui peuvent être disponibles au cours du déroulement ou à la fin de
106   l'algorithme, si elles sont initialement demandées par l'utilisateur. Leur
107   disponibilité implique, potentiellement, des calculs ou du stockage coûteux.
108   La valeur par défaut est donc une liste vide, aucune de ces variables n'étant
109   calculée et stockée par défaut (sauf les variables inconditionnelles). Les
110   noms possibles pour les variables supplémentaires sont dans la liste suivante
111   (la description détaillée de chaque variable nommée est donnée dans la suite
112   de cette documentation par algorithme spécifique, dans la sous-partie
113   "*Informations et variables disponibles à la fin de l'algorithme*") : [
114   "Analysis",
115   "BMA",
116   "CostFunctionJ",
117   "CostFunctionJb",
118   "CostFunctionJo",
119   "CurrentIterationNumber",
120   "CurrentState",
121   "Innovation",
122   "OMA",
123   "OMB",
124   "SimulatedObservationAtBackground",
125   "SimulatedObservationAtCurrentState",
126   "SimulatedObservationAtOptimum",
127   ].
128
129   Exemple :
130   ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
131
132 .. include:: snippets/VelocityClampingFactor.rst
133
134 .. ------------------------------------ ..
135 .. include:: snippets/Header2Algo04.rst
136
137 .. include:: snippets/Analysis.rst
138
139 .. include:: snippets/CostFunctionJ.rst
140
141 .. include:: snippets/CostFunctionJb.rst
142
143 .. include:: snippets/CostFunctionJo.rst
144
145 .. ------------------------------------ ..
146 .. include:: snippets/Header2Algo05.rst
147
148 .. include:: snippets/Analysis.rst
149
150 .. include:: snippets/BMA.rst
151
152 .. include:: snippets/CostFunctionJ.rst
153
154 .. include:: snippets/CostFunctionJb.rst
155
156 .. include:: snippets/CostFunctionJo.rst
157
158 .. include:: snippets/CurrentIterationNumber.rst
159
160 .. include:: snippets/CurrentState.rst
161
162 .. include:: snippets/Innovation.rst
163
164 .. include:: snippets/OMA.rst
165
166 .. include:: snippets/OMB.rst
167
168 .. include:: snippets/SimulatedObservationAtBackground.rst
169
170 .. include:: snippets/SimulatedObservationAtCurrentState.rst
171
172 .. include:: snippets/SimulatedObservationAtOptimum.rst
173
174 .. ------------------------------------ ..
175 .. _section_ref_algorithm_ParticleSwarmOptimization_examples:
176
177 .. include:: snippets/Header2Algo06.rst
178
179 - :ref:`section_ref_algorithm_DerivativeFreeOptimization`
180 - :ref:`section_ref_algorithm_DifferentialEvolution`
181 - :ref:`section_ref_algorithm_TabuSearch`
182
183 .. ------------------------------------ ..
184 .. include:: snippets/Header2Algo07.rst
185
186 - [WikipediaPSO]_
187 - [ZambranoBigiarini13]_