.. [Chakraborty08] Chakraborty U.K., *Advances in differential evolution*, Studies in computational intelligence, Vol.143, Springer, 2008
+.. [Cohn98] Cohn S. E., Da Silva A., Guo J., Sienkiewicz M., Lamich D., *Assessing the effects of data selection with the DAO Physical-space Statistical Analysis System*, Monthly Weather Review, 126, pp.2913–2926, 1998
+
+.. [Courtier94] Courtier P., Thépaut J.-N., Hollingsworth A., *A strategy for operational implementation of 4D-Var, using an incremental approach*, Quarterly Journal of the Royal Meteorological Society, 120, pp.1367–1387, 1994
+
.. [Das11] Das S., Suganthan P. N., *Differential Evolution: A Survey of the State-of-the-art*, IEEE Transactions on Evolutionary Computation, 15(1), pp.4-31, 2011
.. [Das16] Das S., Mullick S. S., Suganthan P. N., *Recent Advances in Differential Evolution - An Updated Survey*, Swarm and Evolutionary Computation, 27, pp.1-30, 2016
.. [Koenker01] Koenker R., Hallock K. F., *Quantile Regression*, Journal of Economic Perspectives, 15(4), pp.143-156, 2001
+.. [LeDimet86] Le Dimet F.-X., Talagrand 0., *Variational algorithms for analysis and assimilation of meteorological observations*, Tellus, 38A, pp.97-110, 1986
+
+.. [Lorenc86] Lorenc A. C., *Analysis methods for numerical weather prediction*, Quarterly Journal of the Royal Meteorological Society, 112, pp.1177-1194, 1986
+
+.. [Lorenc88] Lorenc A. C., *Optimal nonlinear objective analysis*, Quarterly Journal of the Royal Meteorological Society, 114, pp.205–240, 1988
+
.. [Morales11] Morales J. L., Nocedal J., *L-BFGS-B: Remark on Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization*, ACM Transactions on Mathematical Software, 38(1), 2011
.. [Nelder65] Nelder J. A., Mead R., *A simplex method for function minimization*, The Computer Journal, 7, pp.308-313, 1965
Example :
``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
+.. include:: snippets/Variant_3DVAR.rst
+
.. ------------------------------------ ..
.. include:: snippets/Header2Algo04.rst
.. include:: snippets/Header2Algo07.rst
- [Byrd95]_
+- [Cohn98]_
+- [Courtier94]_
+- [LeDimet86]_
+- [Lorenc86]_
+- [Lorenc88]_
- [Morales11]_
- [Talagrand97]_
- [Zhu97]_
.. include:: snippets/Header2Algo01.rst
This algorithm realizes an estimation of the state of a dynamic system by a
-Ensemble Kalman Filter (EnKF), avoiding to have to perform the tangent and
+Ensemble Kalman Filter (EnKF), avoiding to have to perform the tangent or
adjoint operators for the observation and evolution operators, as in the simple
-or extended Kalman filter.
+or extended Kalman filters.
It applies to non-linear observation and incremental evolution (process)
operators with excellent robustness and performance qualities. It can be
to evaluate on small systems. One can verify the linearity of the operators
with the help of the :ref:`section_ref_algorithm_LinearityTest`.
+There exists a lot of variants of this algorithm. Stable and robust ones are proposed here:
+
+- "EnKF" (Ensemble Kalman Filter), original stochastic algorithm, allowing consistent treatment of non-linear evolution operator,
+- "ETKF" (Ensemble-Transform Kalman Filter), deterministic EnKF algorithm, allowing treatment of non-linear evolution operator with a lot less members (one recommends to use a number of members on the order of 10 or even sometimes less),
+- "ETKF-N" (Ensemble-Transform Kalman Filter of finite size N), ETKF algorithm of "finite size N", yhat doesn't need inflation that is often required with the other algorithms,
+- "MLEF" (Maximum Likelihood Kalman Filter), deterministic EnKF scheme, allowing in addition the consistent treament of non-linear observation operator,
+- "IEnKF" (Iterative_EnKF), deterministic EnKF scheme, improving treament of operators non-linearities.
+
+Without being a universal recommandation, one recommend to use EnKF as a reference algorithm, and the other algorithms (in this order) as means to obtain less costly data assimilation with hopefully the same quality.
+
.. ------------------------------------ ..
.. include:: snippets/Header2Algo02.rst
Example :
``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
+.. include:: snippets/Variant_EnKF.rst
+
.. ------------------------------------ ..
.. include:: snippets/Header2Algo04.rst
-.. index:: single: Minimizer
+.. index::
+ single: Minimizer
+ pair: Minimizer ; BEST1BIN",
+ pair: Minimizer ; BEST1EXP",
+ pair: Minimizer ; RAND1EXP",
+ pair: Minimizer ; RANDTOBEST1EXP
+ pair: Minimizer ; BEST2EXP
+ pair: Minimizer ; RAND2EXP
+ pair: Minimizer ; RANDTOBEST1BIN
+ pair: Minimizer ; BEST2BIN
+ pair: Minimizer ; RAND2BIN
+ pair: Minimizer ; RAND1BIN
Minimizer
*Predefined name*. This key allows to choose the optimization strategy for
the multiples crossover and mutation strategies, are
"BEST1BIN",
"BEST1EXP",
- "RAND1EXP",
- "RANDTOBEST1EXP",
+ "BEST2BIN",
"BEST2EXP",
+ "RAND1BIN",
+ "RAND1EXP",
+ "RAND2BIN",
"RAND2EXP",
"RANDTOBEST1BIN",
- "BEST2BIN",
- "RAND2BIN",
- "RAND1BIN".
- It is greatly recommanded to keep the default value.
+ "RANDTOBEST1EXP".
+ It is highly recommended to keep the default value.
Example:
``{"Minimizer":"BEST1BIN"}``
-.. index:: single: Minimizer
+.. index::
+ single: Minimizer
+ pair: Minimizer ; BOBYQA
+ pair: Minimizer ; COBYLA
+ pair: Minimizer ; NEWUOA
+ pair: Minimizer ; POWELL
+ pair: Minimizer ; SIMPLEX
+ pair: Minimizer ; SUBPLEX
Minimizer
*Predefined name*. This key allows to choose the optimization minimizer. The
default choice is "BOBYQA", and the possible ones are
- "BOBYQA" (minimization with or without constraints by quadratic approximation [Powell09]_),
- "COBYLA" (minimization with or without constraints by linear approximation [Powell94]_ [Powell98]_).
- "NEWUOA" (minimization with or without constraints by iterative quadratic approximation [Powell04]_),
- "POWELL" (minimization unconstrained using conjugate directions [Powell64]_),
- "SIMPLEX" (minimization with or without constraints using Nelder-Mead simplex algorithm [Nelder65]_),
- "SUBPLEX" (minimization with or without constraints using Nelder-Mead on a sequence of subspaces [Rowan90]_).
+ "BOBYQA" (minimization with or without constraints by quadratic approximation, see [Powell09]_),
+ "COBYLA" (minimization with or without constraints by linear approximation, see [Powell94]_ [Powell98]_).
+ "NEWUOA" (minimization with or without constraints by iterative quadratic approximation, see [Powell04]_),
+ "POWELL" (minimization unconstrained using conjugate directions, see [Powell64]_),
+ "SIMPLEX" (minimization with or without constraints using Nelder-Mead simplex algorithm, see [Nelder65]_),
+ "SUBPLEX" (minimization with or without constraints using Nelder-Mead on a sequence of subspaces, see [Rowan90]_).
Remark: the "POWELL" method perform a dual outer/inner loops optimization,
leading then to less control on the cost function evaluation number because
it is the outer loop limit than is controlled. If precise control on the
- .. index:: single: Minimizer
+.. index::
+ single: Minimizer
+ pair: Minimizer ; LBFGSB
+ pair: Minimizer ; TNC
+ pair: Minimizer ; CG
+ pair: Minimizer ; BFGS
+ pair: Minimizer ; NCG
Minimizer
*Predefined name*. This key allows to choose the optimization minimizer. The
default choice is "LBFGSB", and the possible ones are
- "LBFGSB" (nonlinear constrained minimizer, see [Byrd95]_, [Morales11]_ and [Zhu97]_),
+ "LBFGSB" (nonlinear constrained minimizer, see [Byrd95]_, [Morales11]_, [Zhu97]_),
"TNC" (nonlinear constrained minimizer),
"CG" (nonlinear unconstrained minimizer),
"BFGS" (nonlinear unconstrained minimizer),
Example :
``{"Minimizer":"LBFGSB"}``
-
--- /dev/null
+.. index::
+ single: Variant
+ pair: Variant ; 3DVAR
+ pair: Variant ; 3DVAR-VAN
+ pair: Variant ; 3DVAR-Incr
+ pair: Variant ; 3DVAR-PSAS
+
+Variant
+ *Predifined name*. This key allows to choose one of the possible variants
+ for the main algorithm. The default variant is the original "3DVAR", and the
+ possible ones are
+ "3DVAR" (3D Variational analysis, see [Lorenc86]_, [LeDimet86]_, [Talagrand97]_),
+ "3DVAR-VAN" (3D Variational Analysis with No inversion of B, see [Lorenc88]_),
+ "3DVAR-Incr" (Incremental 3DVAR, see [Courtier94]_),
+ "3DVAR-PSAS" (Physical-space Statistical Analysis Scheme for 3DVAR, see [Cohn98]_),
+ It is highly recommended to keep the default value.
+
+ Exemple :
+ ``{"Variant":"3DVAR"}``
--- /dev/null
+.. index::
+ single: Variant
+ pair: Variant ; EnKF
+ pair: Variant ; ETKF
+ pair: Variant ; ETKF-N
+ pair: Variant ; MLEF
+ pair: Variant ; IEnKF
+
+Variant
+ *Predifined name*. This key allows to choose one of the possible variants
+ for the main algorithm. The default variant is the original "EnKF", and the
+ possible ones are
+ "EnKF" (Ensemble Kalman Filter),
+ "ETKF" (Ensemble-Transform Kalman Filter),
+ "ETKF-N" (Ensemble-Transform Kalman Filter),
+ "MLEF" (Maximum Likelihood Kalman Filter),
+ "IEnKF" (Iterative_EnKF).
+ One recommends to try the "ETKF-N" or "IEnKF" variants, and to reduce the
+ number of members to about 10 or less for all variants other then the
+ original "EnKF".
+
+ Example :
+ ``{"Variant":"EnKF"}``
.. [Chakraborty08] Chakraborty U.K., *Advances in differential evolution*, Studies in computational intelligence, Vol.143, Springer, 2008
+.. [Cohn98] Cohn S. E., Da Silva A., Guo J., Sienkiewicz M., Lamich D., *Assessing the effects of data selection with the DAO Physical-space Statistical Analysis System*, Monthly Weather Review, 126, pp.2913–2926, 1998
+
+.. [Courtier94] Courtier P., Thépaut J.-N., Hollingsworth A., *A strategy for operational implementation of 4D-Var, using an incremental approach*, Quarterly Journal of the Royal Meteorological Society, 120, pp.1367–1387, 1994
+
.. [Das11] Das S., Suganthan P. N., *Differential Evolution: A Survey of the State-of-the-art*, IEEE Transactions on Evolutionary Computation, 15(1), pp.4-31, 2011
.. [Das16] Das S., Mullick S. S., Suganthan P. N., *Recent Advances in Differential Evolution - An Updated Survey*, Swarm and Evolutionary Computation, 27, pp.1-30, 2016
.. [Koenker01] Koenker R., Hallock K. F., *Quantile Regression*, Journal of Economic Perspectives, 15(4), pp.143-156, 2001
+.. [LeDimet86] Le Dimet F.-X., Talagrand 0., *Variational algorithms for analysis and assimilation of meteorological observations*, Tellus, 38A, pp.97-110, 1986
+
+.. [Lorenc86] Lorenc A. C., *Analysis methods for numerical weather prediction*, Quarterly Journal of the Royal Meteorological Society, 112, pp.1177-1194, 1986
+
+.. [Lorenc88] Lorenc A. C., *Optimal nonlinear objective analysis*, Quarterly Journal of the Royal Meteorological Society, 114, pp.205–240, 1988
+
.. [Morales11] Morales J. L., Nocedal J., *L-BFGS-B: Remark on Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization*, ACM Transactions on Mathematical Software, 38(1), 2011
.. [Nelder65] Nelder J. A., Mead R., *A simplex method for function minimization*, The Computer Journal, 7, pp.308-313, 1965
Exemple :
``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
+.. include:: snippets/Variant_3DVAR.rst
+
.. ------------------------------------ ..
.. include:: snippets/Header2Algo04.rst
.. include:: snippets/Header2Algo07.rst
- [Byrd95]_
+- [Cohn98]_
+- [Courtier94]_
+- [LeDimet86]_
+- [Lorenc86]_
+- [Lorenc88]_
- [Morales11]_
- [Talagrand97]_
- [Zhu97]_
coûteux en évaluations sur de petits systèmes. On peut vérifier la linéarité
des opérateurs à l'aide de l':ref:`section_ref_algorithm_LinearityTest`.
-Les variantes de cette algorithme sont nombreuses, et on propose ici les versions stables et robustes suivantes :
-- "EnKF" (Ensemble Kalman Filter), algorithme stochastique, permettant de traiter de manière consistante un opérateur d'évolution non-linéaire,
-- "ETKF" (Ensemble-Transform Kalman Filter), algorithme déterministe d'EnKF, permettant de traiter un opérateur d'évolution non-linéaire avec beaucoup moins de membres,
-- "ETKF-N" (Ensemble-Transform Kalman Filter of finite size N), algorithme d'ETKF dit de "taille finie N", évitant de recourir l'inflation
-- "MLEF" (Maximum Likelihood Kalman Filter), schéma déterministe d'EnKF permettant en plus de traiter de manière consistante un opérateur d'observation non-linéaire),
-- "IEnKF" (Iterative_EnKF),
+Il existe de nombreuses variantes de cet algorithme. On propose ici des formes stables et robustes suivantes :
+
+- "EnKF" (Ensemble Kalman Filter), algorithme stochastique original, permettant de traiter de manière consistante un opérateur d'évolution non-linéaire,
+- "ETKF" (Ensemble-Transform Kalman Filter), algorithme déterministe d'EnKF, permettant de traiter un opérateur d'évolution non-linéaire avec beaucoup moins de membres (on recommande d'utiliser un nombre de membres de l'ordre de 10 ou même parfois moins),
+- "ETKF-N" (Ensemble-Transform Kalman Filter of finite size N), algorithme d'ETKF dit de "taille finie N", évitant de recourir à une inflation souvent nécessaire avec les autres algorithms
+- "MLEF" (Maximum Likelihood Kalman Filter), schéma déterministe d'EnKF, permettant en plus de traiter de manière consistante un opérateur d'observation non-linéaire),
+- "IEnKF" (Iterative_EnKF), schéma déterministe d'EnKF, améliorant le traitement des non-linéarités des opérateurs.
+
+Sans pouvoir prétendre à l'universalité, on recommande d'utiliser l'EnKF comme référence, et les autres algorithmes (dans l'ordre) comme des moyens pour obtenir une assimilation de données plus économique et de qualité éventuellement similaire.
.. ------------------------------------ ..
.. include:: snippets/Header2Algo02.rst
Exemple :
``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
+.. include:: snippets/Variant_EnKF.rst
+
.. ------------------------------------ ..
.. include:: snippets/Header2Algo04.rst
-.. index:: single: Minimizer
+.. index::
+ single: Minimizer
+ pair: Minimizer ; BEST1BIN",
+ pair: Minimizer ; BEST1EXP",
+ pair: Minimizer ; RAND1EXP",
+ pair: Minimizer ; RANDTOBEST1EXP
+ pair: Minimizer ; BEST2EXP
+ pair: Minimizer ; RAND2EXP
+ pair: Minimizer ; RANDTOBEST1BIN
+ pair: Minimizer ; BEST2BIN
+ pair: Minimizer ; RAND2BIN
+ pair: Minimizer ; RAND1BIN
Minimizer
*Nom prédéfini*. Cette clé permet de changer la stratégie de minimisation
décrites par les clés
"BEST1BIN",
"BEST1EXP",
- "RAND1EXP",
- "RANDTOBEST1EXP",
+ "BEST2BIN",
"BEST2EXP",
+ "RAND1BIN",
+ "RAND1EXP",
+ "RAND2BIN",
"RAND2EXP",
"RANDTOBEST1BIN",
- "BEST2BIN",
- "RAND2BIN",
- "RAND1BIN".
+ "RANDTOBEST1EXP".
Il est fortement conseillé de conserver la valeur par défaut.
Exemple :
-.. index:: single: Minimizer
+.. index::
+ single: Minimizer
+ pair: Minimizer ; BOBYQA
+ pair: Minimizer ; COBYLA
+ pair: Minimizer ; NEWUOA
+ pair: Minimizer ; POWELL
+ pair: Minimizer ; SIMPLEX
+ pair: Minimizer ; SUBPLEX
Minimizer
*Nom prédéfini*. Cette clé permet de changer le minimiseur pour l'optimiseur.
Le choix par défaut est "BOBYQA", et les choix possibles sont
- "BOBYQA" (minimisation avec ou sans contraintes par approximation quadratique [Powell09]_),
- "COBYLA" (minimisation avec ou sans contraintes par approximation linéaire [Powell94]_ [Powell98]_).
- "NEWUOA" (minimisation avec ou sans contraintes par approximation quadratique itérative [Powell04]_),
- "POWELL" (minimisation sans contraintes de type directions conjuguées [Powell64]_),
+ "BOBYQA" (minimisation avec ou sans contraintes par approximation quadratique, voir [Powell09]_),
+ "COBYLA" (minimisation avec ou sans contraintes par approximation linéaire, voir [Powell94]_ [Powell98]_).
+ "NEWUOA" (minimisation avec ou sans contraintes par approximation quadratique itérative, voir [Powell04]_),
+ "POWELL" (minimisation sans contraintes de type directions conjuguées, voir [Powell64]_),
"SIMPLEX" (minimisation avec ou sans contraintes de type simplexe ou Nelder-Mead, voir [Nelder65]_),
- "SUBPLEX" (minimisation avec ou sans contraintes de type simplexe sur une suite de sous-espaces [Rowan90]_).
+ "SUBPLEX" (minimisation avec ou sans contraintes de type simplexe sur une suite de sous-espaces, voir [Rowan90]_).
Remarque : la méthode "POWELL" effectue une optimisation par boucles
imbriquées interne/externe, conduisant ainsi à un contrôle relaché du nombre
d'évaluations de la fonctionnelle à optimiser. Si un contrôle précis du
-.. index:: single: Minimizer
+.. index::
+ single: Minimizer
+ pair: Minimizer ; LBFGSB
+ pair: Minimizer ; TNC
+ pair: Minimizer ; CG
+ pair: Minimizer ; BFGS
+ pair: Minimizer ; NCG
Minimizer
*Nom prédéfini*. Cette clé permet de changer le minimiseur pour l'optimiseur.
Le choix par défaut est "LBFGSB", et les choix possibles sont
- "LBFGSB" (minimisation non linéaire sous contraintes, voir [Byrd95]_, [Morales11]_ et [Zhu97]_),
+ "LBFGSB" (minimisation non linéaire sous contraintes, voir [Byrd95]_, [Morales11]_, [Zhu97]_),
"TNC" (minimisation non linéaire sous contraintes),
"CG" (minimisation non linéaire sans contraintes),
"BFGS" (minimisation non linéaire sans contraintes),
--- /dev/null
+.. index::
+ single: Variant
+ pair: Variant ; 3DVAR
+ pair: Variant ; 3DVAR-VAN
+ pair: Variant ; 3DVAR-Incr
+ pair: Variant ; 3DVAR-PSAS
+
+Variant
+ *Nom prédéfini*. Cette clé permet de choisir l'une des variantes possibles
+ pour l'algorithme principal. La variante par défaut est le "3DVAR" d'origine,
+ et les choix possibles sont
+ "3DVAR" (3D Variational analysis, voir [Lorenc86]_, [LeDimet86]_, [Talagrand97]_),
+ "3DVAR-VAN" (3D Variational Analysis with No inversion of B, voir [Lorenc88]_),
+ "3DVAR-Incr" (Incremental 3DVAR, voir [Courtier94]_),
+ "3DVAR-PSAS" (Physical-space Statistical Analysis Scheme for 3DVAR, voir [Cohn98]_),
+ Il est fortement conseillé de conserver la valeur par défaut.
+
+ Exemple :
+ ``{"Variant":"3DVAR"}``
--- /dev/null
+.. index::
+ single: Variant
+ pair: Variant ; EnKF
+ pair: Variant ; ETKF
+ pair: Variant ; ETKF-N
+ pair: Variant ; MLEF
+ pair: Variant ; IEnKF
+
+Variant
+ *Nom prédéfini*. Cette clé permet de choisir l'une des variantes possibles
+ pour l'algorithme principal. La variante par défaut est l'"EnKF" d'origine,
+ et les choix possibles sont
+ "EnKF" (Ensemble Kalman Filter),
+ "ETKF" (Ensemble-Transform Kalman Filter),
+ "ETKF-N" (Ensemble-Transform Kalman Filter),
+ "MLEF" (Maximum Likelihood Kalman Filter),
+ "IEnKF" (Iterative_EnKF).
+ Il est conseillé d'essayer les variantes "ETKF-N" ou "IEnKF", et de réduire
+ le nombre de membres à une dizaine ou moins pour toutes les variantes autres
+ que l'"EnKF" original.
+
+ Exemple :
+ ``{"Variant":"EnKF"}``