From: Jean-Philippe ARGAUD Date: Fri, 4 Feb 2022 15:44:17 +0000 (+0100) Subject: Minor documentation and code review corrections (17) X-Git-Tag: V9_9_0a2~22 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=5e4af07df42caac3770f189fbb6f32f47a3ffadc;p=modules%2Fadao.git Minor documentation and code review corrections (17) --- diff --git a/doc/en/snippets/InnovationAtCurrentAnalysis.rst b/doc/en/snippets/InnovationAtCurrentAnalysis.rst index 60249a5..652b366 100644 --- a/doc/en/snippets/InnovationAtCurrentAnalysis.rst +++ b/doc/en/snippets/InnovationAtCurrentAnalysis.rst @@ -2,7 +2,7 @@ InnovationAtCurrentAnalysis *List of vectors*. Each element is an innovation vector at current analysis. - This quantity is identical to the innovation vector at current state in the + This quantity is identical to the innovation vector at analysed state in the case of a single-state assimilation. Example: diff --git a/doc/en/snippets/InnovationAtCurrentState.rst b/doc/en/snippets/InnovationAtCurrentState.rst index 00c82e2..8b32751 100644 --- a/doc/en/snippets/InnovationAtCurrentState.rst +++ b/doc/en/snippets/InnovationAtCurrentState.rst @@ -1,7 +1,8 @@ .. index:: single: InnovationAtCurrentState InnovationAtCurrentState - *List of vectors*. Each element is an innovation vector at current state. + *List of vectors*. Each element is an innovation vector at current state + before analysis. Example: ``ds = ADD.get("InnovationAtCurrentState")[-1]`` diff --git a/doc/en/snippets/SetSeed.rst b/doc/en/snippets/SetSeed.rst index d1f0d2a..186fce0 100644 --- a/doc/en/snippets/SetSeed.rst +++ b/doc/en/snippets/SetSeed.rst @@ -2,11 +2,12 @@ SetSeed *Integer value*. This key allow to give an integer in order to fix the seed - of the random generator used in the algorithm. A simple convenient value is - for example 1000. By default, the seed is left uninitialized, and so use the - default initialization from the computer, which then change at each study. To - ensure the reproducibility of results involving random samples, it is - strongly advised to initialize the seed. + of the random generator used in the algorithm. By default, the seed is left + uninitialized, and so use the default initialization from the computer, which + then change at each study. To ensure the reproducibility of results involving + random samples, it is strongly advised to initialize the seed. A simple + convenient value is for example 123456789. It is recommended to put an integer + with more than 6 or 7 digits to properly initialize the random generator. Example: - ``{"SetSeed":1000}`` + ``{"SetSeed":123456789}`` diff --git a/doc/en/theory.rst b/doc/en/theory.rst index c92e87f..bdb5c53 100644 --- a/doc/en/theory.rst +++ b/doc/en/theory.rst @@ -69,7 +69,7 @@ methodological framework`_ in a next section, these two types of applications are briefly described. At the end, some detailed information allow `Going further in the data assimilation framework`_ and `Going further in the state estimation by optimization methods`_, as well as `Going further in data -assimilation for dynamics`_ and having an `Overview of reduction methods and +assimilation for dynamics`_ and having `An overview of reduction methods and of reduced optimization`_. Fields reconstruction or measures interpolation @@ -323,9 +323,11 @@ inspired by [Asch16]_ (Figure 1.5). It is deliberately simple to remain readable, the dashed lines showing some of the simplifications or extensions. For example, it does not specifically -mention the methods with reductions, some of which were variations of the basic -methods shown here, nor does it mention the more detailed extensions. It also -omits the test methods available in ADAO and useful for the study. +mention the methods with reductions (of which it is given hereafter `An +overview of reduction methods and of reduced optimization`_), some of which +were variations of the basic methods shown here, nor does it mention the more +detailed extensions. It also omits the test methods available in ADAO and +useful for the study. Each method mentioned in this diagram is the subject of a specific descriptive section in the chapter on :ref:`section_reference_assimilation`. The acronyms @@ -348,6 +350,107 @@ links: - Tabu: :ref:`section_ref_algorithm_TabuSearch`, - UKF: :ref:`section_ref_algorithm_UnscentedKalmanFilter`. +An overview of reduction methods and of reduced optimization +------------------------------------------------------------ + +.. index:: single: reduction +.. index:: single: reduction methods +.. index:: single: reduced methods +.. index:: single: reduced space +.. index:: single: neutral sub-space +.. index:: single: SVD +.. index:: single: POD +.. index:: single: PCA +.. index:: single: Kahrunen-Loeve +.. index:: single: RBM +.. index:: single: EIM +.. index:: single: Fourier +.. index:: single: wavelets +.. index:: single: EOF +.. index:: single: sparse + +Data assimilation and optimization approaches always imply a certain amount of +reiteration of a unitary numerical simulation representing the physics that is +to be treated. In order to handle this physics as well as possible, this +elementary numerical simulation is often of large size, even huge, and leads to +an extremely high computational cost when it is repeated. The complete physical +simulation is often called "*high fidelity simulation*" (or "*full scale +simulation*"). + +To avoid this practical challenge, **different strategies to reduce the cost of +the optimization calculation exist, and some of them also allow to control the +numerical error implied by this reduction**. These strategies are seamlessly +integrated into some of the ADAO methods or are the purpose of special +algorithms. + +To establish such an approach, one seeks to reduce at least one of the +ingredients that make up the data assimilation or optimization problem. One can +thus classify the reduction methods according to the ingredient on which they +operate, knowing that some methods deal with several of them. A rough +classification is provided here, which the reader can complete by reading +general mathematical books or articles, or those specialized in his physics. + +Reduction of data assimilation or optimization algorithms: + the optimization algorithms themselves can generate significant + computational costs to process numerical information. Various methods can + be used to reduce their algorithmic cost, for example by working in the + most suitable reduced space for optimization, or by using multi-level + optimization techniques. ADAO has such techniques that are included in + variants of classical algorithms, leading to exact or approximate but + numerically more efficient resolutions. By default, the algorithmic options + chosen in ADAO are always the most efficient when they do not impact the + quality of the optimization. + +Reduction of the representation of covariances: + in data assimilation algorithms, covariances are the most expensive + quantities to handle or to store, often becoming the limiting quantities + from the point of view of the computational cost. Many methods try to use a + reduced representation of these matrices (leading sometimes but not + necessarily to reduce the dimension of the optimization space). + Classically, factorization, decomposition (spectral, Fourier, wavelets...) + or ensemble estimation (EOF...) techniques, or combinations, are used to + reduce the numerical load of these covariances in the computations. ADAO + uses some of these techniques, in combination with sparse computation + techniques, to make the handling of covariance matrices more efficient. + +Reduction of the physical model: + the simplest way to reduce the cost of the unit calculation consists in + reducing the simulation model itself, by representing it in a more economic + way. Numerous methods allow this reduction of models by ensuring a more or + less rigorous control of the approximation error generated by the + reduction. The use of simplified models of the physics allows a reduction + but without always producing an error control. On the contrary, all + decomposition methods (Fourier, wavelets, SVD, POD, PCA, Kahrunen-Loeve, + RBM, EIM, etc.) aim at a reduction of the representation space with an + explicit error control. Although they are very frequently used, they must + nevertheless be completed by a fine analysis of the interaction with the + optimization algorithm in which the reduced computation is inserted, in + order to avoid instabilities, discrepancies or inconsistencies that are + notoriously harmful. ADAO fully supports the use of this type of reduction + method, even if it is often necessary to establish this generic independent + reduction prior to the optimization. + +Reduction of the data assimilation or optimization space: + the size of the optimization space depends greatly on the type of problem + treated (estimation of states or parameters) but also on the number of + observations available to conduct the data assimilation. It is therefore + sometimes possible to conduct the optimization in the smallest space by + adapting the internal formulation of the optimization algorithms. When it + is possible and judicious, ADAO integrates this kind of reduced formulation + to improve the numerical performance without reducing the quality of the + optimization. + +Combining multiple reductions: + many advanced algorithms seek to combine multiple reduction techniques + simultaneously. However, it is difficult to have both generic and robust + methods, and to use several very efficient reduction techniques at the same + time. ADAO integrates some of the most robust methods, but this aspect is + still largely the subject of research and development. + +One can end this quick overview of reduction methods highlighting that their +use is ubiquitous in real applications and in numerical tools, and that ADAO +allows to use proven methods without even knowing it. + Going further in the data assimilation framework ------------------------------------------------ @@ -689,102 +792,3 @@ representation is as follows: **Timeline of steps for data assimilation operators in dynamics** The concepts described in this diagram can be directly and simply used in ADAO. - -Overview of reduction methods and of reduced optimization ---------------------------------------------------------- - -.. index:: single: reduction -.. index:: single: reduction methods -.. index:: single: reduced methods -.. index:: single: reduced space -.. index:: single: neutral sub-space -.. index:: single: SVD -.. index:: single: POD -.. index:: single: PCA -.. index:: single: Kahrunen-Loeve -.. index:: single: RBM -.. index:: single: EIM -.. index:: single: Fourier -.. index:: single: wavelets -.. index:: single: EOF -.. index:: single: sparse - -Data assimilation and optimization approaches always imply a certain amount of -reiteration of a unitary numerical simulation representing the physics that is -to be treated. In order to handle this physics as well as possible, this -elementary numerical simulation is often of large size, even huge, and leads to -an extremely high computational cost when it is repeated. The complete physical -simulation is often called "*high fidelity simulation*" (or "*full scale -simulation*"). - -In a generic way, **different strategies to reduce the cost of the optimization -calculation exist, and some of them also allow to control the numerical error -implied by this reduction**. - -To establish this, one seeks to reduce at least one of the ingredients that -make up the data assimilation or optimization problem. One can thus classify -the reduction methods according to the ingredient on which they operate, -knowing that some methods deal with several of them. A rough classification is -provided here, which the reader can complete by reading general mathematical -books or articles, or those specialized in his physics. - -Reduction of data assimilation or optimization algorithms: - the optimization algorithms themselves can generate significant - computational costs to process numerical information. Various methods can - be used to reduce their algorithmic cost, for example by working in the - most suitable reduced space for optimization, or by using multi-level - optimization techniques. ADAO has such techniques that are included in - variants of classical algorithms, leading to exact or approximate but - numerically more efficient resolutions. By default, the algorithmic options - chosen in ADAO are always the most efficient when they do not impact the - quality of the optimization. - -Reduction of the representation of covariances: - in data assimilation algorithms, covariances are the most expensive - quantities to handle or to store, often becoming the limiting quantities - from the point of view of the computational cost. Many methods try to use a - reduced representation of these matrices (leading sometimes but not - necessarily to reduce the dimension of the optimization space). - Classically, factorization, decomposition (spectral, Fourier, wavelets...) - or ensemble estimation (EOF...) techniques, or combinations, are used to - reduce the numerical load of these covariances in the computations. ADAO - uses some of these techniques, in combination with sparse computation - techniques, to make the handling of covariance matrices more efficient. - -Reduction of the physical model: - the simplest way to reduce the cost of the unit calculation consists in - reducing the simulation model itself, by representing it in a more economic - way. Numerous methods allow this reduction of models by ensuring a more or - less rigorous control of the approximation error generated by the - reduction. The use of simplified models of the physics allows a reduction - but without always producing an error control. On the contrary, all - decomposition methods (Fourier, wavelets, SVD, POD, PCA, Kahrunen-Loeve, - RBM, EIM, etc.) aim at a reduction of the representation space with an - explicit error control. Although they are very frequently used, they must - nevertheless be completed by a fine analysis of the interaction with the - optimization algorithm in which the reduced computation is inserted, in - order to avoid instabilities, discrepancies or inconsistencies that are - notoriously harmful. ADAO fully supports the use of this type of reduction - method, even if it is often necessary to establish this generic independent - reduction prior to the optimization. - -Reduction of the data assimilation or optimization space: - the size of the optimization space depends greatly on the type of problem - treated (estimation of states or parameters) but also on the number of - observations available to conduct the data assimilation. It is therefore - sometimes possible to conduct the optimization in the smallest space by - adapting the internal formulation of the optimization algorithms. When it - is possible and judicious, ADAO integrates this kind of reduced formulation - to improve the numerical performance without reducing the quality of the - optimization. - -Combining multiple reductions: - many advanced algorithms seek to combine multiple reduction techniques - simultaneously. However, it is difficult to have both generic and robust - methods, and to use several very efficient reduction techniques at the same - time. ADAO integrates some of the most robust methods, but this aspect is - still largely the subject of research and development. - -One can end this quick overview of reduction methods highlighting that their -use is ubiquitous in real applications and in numerical tools, and that ADAO -allows to use proven methods without even knowing it. diff --git a/doc/fr/index.rst b/doc/fr/index.rst index 50d1186..f469adf 100644 --- a/doc/fr/index.rst +++ b/doc/fr/index.rst @@ -74,7 +74,6 @@ et qui décrivent les commandes et des options d'algorithmes. Un Enfin, pour respecter les exigences de licence du module, n'oubliez pas de lire la partie :ref:`section_license`. - .. toctree:: :caption: Table des matières :name: mastertoc diff --git a/doc/fr/snippets/InnovationAtCurrentAnalysis.rst b/doc/fr/snippets/InnovationAtCurrentAnalysis.rst index 95ed07d..f8e319c 100644 --- a/doc/fr/snippets/InnovationAtCurrentAnalysis.rst +++ b/doc/fr/snippets/InnovationAtCurrentAnalysis.rst @@ -3,7 +3,7 @@ InnovationAtCurrentAnalysis *Liste de vecteurs*. Chaque élément est un vecteur d'innovation à l'état analysé courant. Cette quantité est identique au vecteur d'innovation à - l'état courant dans le cas d'une assimilation mono-état. + l'état analysé dans le cas d'une assimilation mono-état. Exemple : ``ds = ADD.get("InnovationAtCurrentAnalysis")[-1]`` diff --git a/doc/fr/snippets/InnovationAtCurrentState.rst b/doc/fr/snippets/InnovationAtCurrentState.rst index 392bcfb..0f4c2ac 100644 --- a/doc/fr/snippets/InnovationAtCurrentState.rst +++ b/doc/fr/snippets/InnovationAtCurrentState.rst @@ -2,7 +2,7 @@ InnovationAtCurrentState *Liste de vecteurs*. Chaque élément est un vecteur d'innovation à l'état - courant. + courant avant analyse. Exemple : ``ds = ADD.get("InnovationAtCurrentState")[-1]`` diff --git a/doc/fr/snippets/SetSeed.rst b/doc/fr/snippets/SetSeed.rst index f4392c2..6041c68 100644 --- a/doc/fr/snippets/SetSeed.rst +++ b/doc/fr/snippets/SetSeed.rst @@ -2,11 +2,13 @@ SetSeed *Valeur entière*. Cette clé permet de donner un nombre entier pour fixer la - graine du générateur aléatoire utilisé dans l'algorithme. Une valeur simple - est par exemple 1000. Par défaut, la graine est laissée non initialisée, et - elle utilise ainsi l'initialisation par défaut de l'ordinateur, qui varie - donc à chaque étude. Pour assurer la reproductibilité de résultats impliquant - des tirages aléatoires, il est fortement conseiller d'initialiser la graine. + graine du générateur aléatoire utilisé dans l'algorithme. Par défaut, la + graine est laissée non initialisée, et elle utilise ainsi l'initialisation + par défaut de l'ordinateur, qui varie donc à chaque étude. Pour assurer la + reproductibilité de résultats impliquant des tirages aléatoires, il est + fortement conseiller d'initialiser la graine. Une valeur simple est par + exemple 123456789. Il est conseillé de mettre un entier à plus de 6 ou 7 + chiffres pour bien initialiser le générateur aléatoire. Exemple : - ``{"SetSeed":1000}`` + ``{"SetSeed":123456789}`` diff --git a/doc/fr/theory.rst b/doc/fr/theory.rst index e9222b8..186608a 100644 --- a/doc/fr/theory.rst +++ b/doc/fr/theory.rst @@ -76,7 +76,7 @@ ces deux types d'applications. A la fin de ce chapitre, quelques informations permettent d'aller plus loin pour `Approfondir le cadre méthodologique de l'assimilation de données`_ et `Approfondir l'estimation d'état par des méthodes d'optimisation`_, ainsi que pour `Approfondir l'assimilation de -données pour la dynamique`_ et avoir un `Aperçu des méthodes de réduction et de +données pour la dynamique`_ et avoir `Un aperçu des méthodes de réduction et de l'optimisation réduite`_. Reconstruction de champs ou interpolation de données @@ -343,10 +343,11 @@ librement inspiré de [Asch16]_ (Figure 1.5). Il est volontairement simple pour rester lisible, les lignes tiretées montrant certaines des simplifications ou extensions. Ce schéma omet par exemple de -citer spécifiquement les méthodes avec réductions, dont une partie sont des -variantes de méthodes de base indiquées ici, ou de citer les extensions les -plus détaillées. Il omet de même les méthodes de tests disponibles dans ADAO et -utiles pour la mise en étude. +citer spécifiquement les méthodes avec réductions (dont il est donné ci-après +`Un aperçu des méthodes de réduction et de l'optimisation réduite`_), dont une +partie sont des variantes de méthodes de base indiquées ici, ou de citer les +extensions les plus détaillées. Il omet de même les méthodes de tests +disponibles dans ADAO et utiles pour la mise en étude. Chaque méthode citée dans ce schéma fait l'objet d'une partie descriptive spécifique dans le chapitre des :ref:`section_reference_assimilation`. Les @@ -369,6 +370,114 @@ associés : - Tabu : :ref:`section_ref_algorithm_TabuSearch`, - UKF : :ref:`section_ref_algorithm_UnscentedKalmanFilter`. +Un aperçu des méthodes de réduction et de l'optimisation réduite +---------------------------------------------------------------- + +.. index:: single: réduction +.. index:: single: méthodes de réduction +.. index:: single: méthodes réduites +.. index:: single: espace réduit +.. index:: single: sous-espace neutre +.. index:: single: SVD +.. index:: single: POD +.. index:: single: PCA +.. index:: single: Kahrunen-Loeve +.. index:: single: RBM +.. index:: single: EIM +.. index:: single: Fourier +.. index:: single: ondelettes +.. index:: single: EOF +.. index:: single: sparse + +Les démarches d'assimilation de données et d'optimisation impliquent toujours +une certaine réitération d'une simulation numérique unitaire représentant la +physique que l'on veut traiter. Pour traiter au mieux cette physique, cette +simulation numérique unitaire est souvent de taille importante voire imposante, +et conduit à un coût calcul extrêmement important dès lors qu'il est répété. La +simulation physique complète est souvent appelée "*simulation haute fidélité*" +(ou "*full scale simulation*"). + +Pour éviter cette difficulté pratique, **différentes stratégies de réduction du +coût du calcul d'optimisation existent, et certaines permettent également de +contrôler au mieux l'erreur numérique impliquée par cette réduction**. Ces +stratégies sont intégrées de manière transparente à certaines des méthodes +d'ADAO ou font l'objet d'algorithmes particuliers. + +Pour établir une telle démarche, on cherche à réduire au moins l'un des +ingrédients qui composent le problème d'assimilation de données ou +d'optimisation. On peut ainsi classer les méthodes de réduction selon +l'ingrédient sur lequel elles opèrent, en sachant que certaines méthodes +portent sur plusieurs d'entre eux. On indique ici une classification grossière, +que le lecteur peut compléter par la lecture d'ouvrages ou d'articles généraux +en mathématiques ou spécialisés pour sa physique. + +Réduction des algorithmes d'assimilation de données ou d'optimisation : + les algorithmes d'optimisation eux-mêmes peuvent engendrer des coûts de + calculs importants pour traiter les informations numériques. Diverses + méthodes permettent de réduire leur coût algorithmique, par exemple en + travaillant dans l'espace réduit le plus adéquat pour l'optimisation, ou en + utilisant des techniques d'optimisation multi-niveaux. ADAO dispose de + telles techniques qui sont incluses dans les variantes d'algorithmes + classiques, conduisant à des résolutions exactes ou approximées mais + numériquement plus efficaces. Par défaut, les options algorithmiques + choisies par défaut dans ADAO sont toujours les plus performantes + lorsqu'elles n'impactent pas la qualité de l'optimisation. + +Réduction de la représentation des covariances : + dans les algorithmes d'assimilation de données, ce sont les covariances qui + sont les grandeurs les plus coûteuses à manipuler ou à stocker, devenant + souvent les quantités limitantes du point de vue du coût de calcul. De + nombreuses méthodes cherchent donc à utiliser une représentation réduite de + ces matrices (conduisant parfois mais pas obligatoirement à réduire aussi + la dimension l'espace d'optimisation). On utilise classiquement des + techniques de factorisation, de décomposition (spectrale, Fourier, + ondelettes...) ou d'estimation d'ensemble (EOF...), ou des combinaisons, + pour réduire la charge numérique de ces covariances dans les calculs. ADAO + utilise certaines de ces techniques, en combinaison avec des techniques de + calcul creux ("*sparse*"), pour rendre plus efficace la manipulation des + matrices de covariance. + +Réduction du modèle physique : + la manière la plus simple de réduire le coût du calcul unitaire consiste à + réduire le modèle de simulation lui-même, en le représentant de manière + numériquement plus économique. De nombreuses méthodes permettent cette + réduction de modèles en assurant un contrôle plus ou moins strict de + l'erreur d'approximation engendrée par la réduction. L'usage de modèles + simplifiés de la physique permet une réduction mais sans toujours produire + un contrôle d'erreur. Au contraire, toutes les méthodes de décomposition + (Fourier, ondelettes, SVD, POD, PCA, Kahrunen-Loeve, RBM, EIM, etc.) visent + ainsi une réduction de l'espace de représentation avec un contrôle d'erreur + explicite. Très fréquemment utilisées, elles doivent néanmoins être + complétées par une analyse fine de l'interaction avec l'algorithme + d'optimisation dans lequel le calcul réduit est inséré, pour éviter des + instabilités, incohérences ou inconsistances notoirement préjudiciables. + ADAO supporte complètement l'usage de ce type de méthode de réduction, même + s'il est souvent nécessaire d'établir cette réduction indépendante + générique préalablement à l'optimisation. + +Réduction de l'espace d'assimilation de données ou d'optimisation : + la taille de l'espace d'optimisation dépend grandement du type de problème + traité (estimation d'états ou de paramètres) mais aussi du nombre + d'observations dont on dispose pour conduire l'assimilation de données. Il + est donc parfois possible de conduire l'optimisation dans l'espace le plus + petit par une adaptation de la formulation interne des algorithmes + d'optimisation. Lorsque c'est possible et judicieux, ADAO intègre ce genre + de formulation réduite pour améliorer la performance numérique sans + amoindrir la qualité de l'optimisation. + +Combinaison de plusieurs réductions : + de nombreux algorithmes avancés cherchent à combiner simultanément + plusieurs techniques de réduction. Néanmoins, il est difficile de disposer + à la fois de méthodes génériques et robustes, et d'utiliser en même temps + de plusieurs techniques très performantes de réduction. ADAO intègre + certaines méthodes parmi les plus robustes, mais cet aspect fait toujours + largement l'objet de recherches et d'évolutions. + +On peut terminer ce rapide tour d'horizon des méthodes de réduction en +soulignant que leur usage est omni-présent dans les applications réelles et +dans les outils numériques, et qu'ADAO permet d'utiliser des méthodes éprouvées +sans même le savoir. + Approfondir le cadre méthodologique de l'assimilation de données ---------------------------------------------------------------- @@ -729,109 +838,3 @@ discrète. Une représentation possible est la suivante : Les concepts décrits dans ce schéma peuvent directement et simplement être utilisés dans ADAO. - -Aperçu des méthodes de réduction et de l'optimisation réduite -------------------------------------------------------------- - -.. index:: single: réduction -.. index:: single: méthodes de réduction -.. index:: single: méthodes réduites -.. index:: single: espace réduit -.. index:: single: sous-espace neutre -.. index:: single: SVD -.. index:: single: POD -.. index:: single: PCA -.. index:: single: Kahrunen-Loeve -.. index:: single: RBM -.. index:: single: EIM -.. index:: single: Fourier -.. index:: single: ondelettes -.. index:: single: EOF -.. index:: single: sparse - -Les démarches d'assimilation de données et d'optimisation impliquent toujours -une certaine réitération d'une simulation numérique unitaire représentant la -physique que l'on veut traiter. Pour traiter au mieux cette physique, cette -simulation numérique unitaire est souvent de taille importante voire imposante, -et conduit à un coût calcul extrêmement important dès lors qu'il est répété. La -simulation physique complète est souvent appelée "*simulation haute fidélité*" -(ou "*full scale simulation*"). - -De manière générale, **différentes stratégies de réduction du coût du calcul -d'optimisation existent, et certaines permettent également de contrôler au -mieux l'erreur numérique impliquée par cette réduction**. - -Pour établir cela, on cherche à réduire au moins l'un des ingrédients qui -composent le problème d'assimilation de données ou d'optimisation. On peut -ainsi classer les méthodes de réduction selon l'ingrédient sur lequel elles -opèrent, en sachant que certaines méthodes portent sur plusieurs d'entre eux. -On indique ici une classification grossière, que le lecteur peut compléter par -la lecture d'ouvrages ou d'articles généraux en mathématiques ou spécialisés -pour sa physique. - -Réduction des algorithmes d'assimilation de données ou d'optimisation : - les algorithmes d'optimisation eux-mêmes peuvent engendrer des coûts de - calculs importants pour traiter les informations numériques. Diverses - méthodes permettent de réduire leur coût algorithmique, par exemple en - travaillant dans l'espace réduit le plus adéquat pour l'optimisation, ou en - utilisant des techniques d'optimisation multi-niveaux. ADAO dispose de - telles techniques qui sont incluses dans les variantes d'algorithmes - classiques, conduisant à des résolutions exactes ou approximées mais - numériquement plus efficaces. Par défaut, les options algorithmiques - choisies par défaut dans ADAO sont toujours les plus performantes - lorsqu'elles n'impactent pas la qualité de l'optimisation. - -Réduction de la représentation des covariances : - dans les algorithmes d'assimilation de données, ce sont les covariances qui - sont les grandeurs les plus coûteuses à manipuler ou à stocker, devenant - souvent les quantités limitantes du point de vue du coût de calcul. De - nombreuses méthodes cherchent donc à utiliser une représentation réduite de - ces matrices (conduisant parfois mais pas obligatoirement à réduire aussi - la dimension l'espace d'optimisation). On utilise classiquement des - techniques de factorisation, de décomposition (spectrale, Fourier, - ondelettes...) ou d'estimation d'ensemble (EOF...), ou des combinaisons, - pour réduire la charge numérique de ces covariances dans les calculs. ADAO - utilise certaines de ces techniques, en combinaison avec des techniques de - calcul creux ("*sparse*"), pour rendre plus efficace la manipulation des - matrices de covariance. - -Réduction du modèle physique : - la manière la plus simple de réduire le coût du calcul unitaire consiste à - réduire le modèle de simulation lui-même, en le représentant de manière - numériquement plus économique. De nombreuses méthodes permettent cette - réduction de modèles en assurant un contrôle plus ou moins strict de - l'erreur d'approximation engendrée par la réduction. L'usage de modèles - simplifiés de la physique permet une réduction mais sans toujours produire - un contrôle d'erreur. Au contraire, toutes les méthodes de décomposition - (Fourier, ondelettes, SVD, POD, PCA, Kahrunen-Loeve, RBM, EIM, etc.) visent - ainsi une réduction de l'espace de représentation avec un contrôle d'erreur - explicite. Très fréquemment utilisées, elles doivent néanmoins être - complétées par une analyse fine de l'interaction avec l'algorithme - d'optimisation dans lequel le calcul réduit est inséré, pour éviter des - instabilités, incohérences ou inconsistances notoirement préjudiciables. - ADAO supporte complètement l'usage de ce type de méthode de réduction, même - s'il est souvent nécessaire d'établir cette réduction indépendante - générique préalablement à l'optimisation. - -Réduction de l'espace d'assimilation de données ou d'optimisation : - la taille de l'espace d'optimisation dépend grandement du type de problème - traité (estimation d'états ou de paramètres) mais aussi du nombre - d'observations dont on dispose pour conduire l'assimilation de données. Il - est donc parfois possible de conduire l'optimisation dans l'espace le plus - petit par une adaptation de la formulation interne des algorithmes - d'optimisation. Lorsque c'est possible et judicieux, ADAO intègre ce genre - de formulation réduite pour améliorer la performance numérique sans - amoindrir la qualité de l'optimisation. - -Combinaison de plusieurs réductions : - de nombreux algorithmes avancés cherchent à combiner simultanément - plusieurs techniques de réduction. Néanmoins, il est difficile de disposer - à la fois de méthodes génériques et robustes, et d'utiliser en même temps - de plusieurs techniques très performantes de réduction. ADAO intègre - certaines méthodes parmi les plus robustes, mais cet aspect fait toujours - largement l'objet de recherches et d'évolutions. - -On peut terminer ce rapide tour d'horizon des méthodes de réduction en -soulignant que leur usage est omni-présent dans les applications réelles et -dans les outils numériques, et qu'ADAO permet d'utiliser des méthodes éprouvées -sans même le savoir.