Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: DerivativeFreeOptimization
-.. index:: single: Global optimization
.. _section_ref_algorithm_DerivativeFreeOptimization:
Calculation algorithm "*DerivativeFreeOptimization*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: DifferentialEvolution
-.. index:: single: Global optimization
.. _section_ref_algorithm_DifferentialEvolution:
Calculation algorithm "*DifferentialEvolution*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: ParticleSwarmOptimization
-.. index:: single: Global optimization
+.. index:: single: Particle Swarm (Optimization)
.. _section_ref_algorithm_ParticleSwarmOptimization:
Calculation algorithm "*ParticleSwarmOptimization*"
---------------------------------------------------
+.. ------------------------------------ ..
+.. include:: snippets/Header2Algo00.rst
+
.. ------------------------------------ ..
.. include:: snippets/Header2Algo01.rst
- "OGCR" (Simple Particule Swarm Optimisation), simplified algorithm of particle swarm with no bounds on insects or velocities, not recommanded because less robust, but sometimes a lot more efficient,
- "SPSO-2011" (Standard Standard Particle Swarm Optimisation 2011, voir [ZambranoBigiarini13]_), 2011 reference algorithm of particule swarm, robust, efficient and defined as a reference for particle swarm algorithms.
-. ------------------------------------ ..
+The following are a few practical suggestions for the effective use of these
+algorithms:
+
+- The recommended variant of this algorithm is the "SPSO-2011" even if the
+ "CanonicalPSO" algorithm remains by default the more robust of the two.
+- The number of particles or insects usually recommended varies between 40 and
+ 100 depending on the algorithm, more or less independently of the dimension
+ of the state space.
+- The recommended number of generations for population evolution is often
+ around 50, but it can easily vary between 25 and 500.
+- The maximum number of evaluations of the simulation function should usually
+ be limited to between a few thousand and a few tens of thousands of times the
+ dimension of the state space.
+- The error functional usually decreases by levels (thus with a zero
+ progression of the value of the functional at each generation when we stay in
+ the level), making it not recommended to stop on the criterion of decrease of
+ the cost function. It is normally wiser to adapt the number of iterations or
+ generations to accelerate the convergence of the algorithms.
+- If the problem is constrained, it is necessary to define the bounds of the
+ variables (by the variable "*Bounds*"). If the problem is totally
+ unconstrained, it is essential to define increment bounds (by the variable
+ "*BoxBounds*") to delimit the optimal search in a useful way. Similarly, if
+ the problem is partially constrained, it is recommended (but not required) to
+ define increment bounds. In case these increment bounds are not defined, the
+ variable bounds will be used as increment bounds.
+
+These suggestions are to be used as experimental indications, not as
+requirements, because they are to be appreciated or adapted according to the
+physics of each problem that is treated.
+
+The count of the number of evaluations of the function to be simulated during
+this algorithm is deterministic, namely the "*number of iterations or
+generations*" multiplied by the "*number of individuals in the population*".
+With the default values, it takes between `40x50=2000` and `100*50=5000`
+evaluations. It is for this reason that this algorithm is usually interesting
+when the dimension of the state space is large, or when the non-linearities of
+the simulation make the evaluation of the gradient of the functional by
+numerical approximation complicated or invalid. But it is also necessary that
+the calculation of the function to be simulated is not too costly to avoid a
+prohibitive optimization time.
+
+.. ------------------------------------ ..
.. include:: snippets/Header2Algo02.rst
.. include:: snippets/Background.rst
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: TabuSearch
-.. index:: single: Global optimization
.. _section_ref_algorithm_TabuSearch:
Calculation algorithm "*TabuSearch*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: DerivativeFreeOptimization
-.. index:: single: Optimisation globale
-.. index:: single: Globale (optimisation)
.. _section_ref_algorithm_DerivativeFreeOptimization:
Algorithme de calcul "*DerivativeFreeOptimization*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: DifferentialEvolution
-.. index:: single: Optimisation globale
-.. index:: single: Globale (optimisation)
.. _section_ref_algorithm_DifferentialEvolution:
Algorithme de calcul "*DifferentialEvolution*"
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: ParticleSwarmOptimization
-.. index:: single: Optimisation globale
-.. index:: single: Globale (optimisation)
+.. index:: single: Essaim particulaire (Optimisation par)
.. _section_ref_algorithm_ParticleSwarmOptimization:
Algorithme de calcul "*ParticleSwarmOptimization*"
--------------------------------------------------
+.. ------------------------------------ ..
+.. include:: snippets/Header2Algo00.rst
+
.. ------------------------------------ ..
.. include:: snippets/Header2Algo01.rst
- "OGCR" (Simple Particule Swarm Optimisation), algorithme simplifié d'essaim particulaire sans bornes sur les insectes ou les vitesses, déconseillé car peu robuste, mais parfois beaucoup plus rapide,
- "SPSO-2011" (Standard Standard Particle Swarm Optimisation 2011, voir [ZambranoBigiarini13]_), algorithme de référence 2011 d'essaim particulaire, robuste, performant et défini comme une référence des algorithmes d'essaims particulaires.
+Voici quelques suggestions pratiques pour une utilisation efficace de ces
+algorithmes :
+
+- La variante recommandée de cet algorithme est le "SPSO-2011" même si
+ l'algorithme "CanonicalPSO" reste par défaut le plus robuste des deux.
+- Le nombre de particules ou d'insectes usuellement recommandé varie entre 40
+ et 100 selon l'algorithme, à peu près indépendamment de la dimension de
+ l'espace des états.
+- Le nombre recommandé de générations, lors de l'évolution de la population,
+ est souvent de l'ordre de 50, mais il peut facilement varier entre 25 et 500.
+- Le nombre maximal d'évaluation de la fonction de simulation doit usuellement
+ être limité entre quelques milliers et quelques dizaines de milliers de fois
+ la dimension de l'espace des états.
+- La fonctionnelle d'erreur décroît usuellement par pallier (donc avec une
+ progression nulle de la valeur de fonctionnelle à chaque génération lorsque
+ l'on reste dans le palier), rendant non recommandé un arrêt sur critère de
+ décroissance de la fonction-coût. Il est normalement plus judicieux d'adapter
+ le nombre d'itérations ou de générations pour accélérer la convergence des
+ algorithmes.
+- Si le problème est contraint, il faut définir les bornes des variables (par
+ la variable "*Bounds*"). Si le problème est totalement non contraint, il est
+ indispensable de définir des bornes d'incrément (par la variable
+ "*BoxBounds*") pour circonscrire la recherche optimale de manière utile. De
+ manière similaire, si le problème est partiellement contraint, il est
+ recommandé (mais pas indispensable) de définir des bornes d'incrément. Dans
+ le cas où ces bornes d'incréments ne sont pas définies, ce sont les bornes
+ des variables qui seront utilisées comme bornes d'incréments.
+
+Ces conseils sont à utiliser comme des indications expérimentales, et pas comme
+des prescriptions, car ils sont à apprécier ou à adapter selon la physique de
+chaque problème que l'on traite.
+
+Le décompte du nombre d'évaluations de la fonction à simuler lors de cet
+algorithme est déterministe, à savoir le "*nombre d'itérations ou de
+générations*" multiplié par le "*nombre d'individus de la population*". Avec
+les valeurs par défaut, il faut entre `40x50=2000` et `100*50=5000` évaluations
+par défaut. C'est pour cette raison que cet algorithme est usuellement
+intéressant lorsque la dimension de l'espace des états est grande, ou que les
+non-linéarités de la simulation rendent compliqué, ou invalide, l'évaluation du
+gradient de la fonctionnelle par approximation numérique. Mais il est aussi
+nécessaire que le calcul de la fonction à simuler ne soit pas trop coûteuse
+pour éviter une temps d'optimisation rédhibitoire.
+
.. ------------------------------------ ..
.. include:: snippets/Header2Algo02.rst
Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
.. index:: single: TabuSearch
-.. index:: single: Optimisation globale
-.. index:: single: Globale (optimisation)
.. _section_ref_algorithm_TabuSearch:
Algorithme de calcul "*TabuSearch*"