YAO : Un logiciel pour les modèles



Documents pareils
LE PROBLEME DU PLUS COURT CHEMIN

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Compte-rendu de projet de Système de gestion de base de données

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Chapitre 1 : Introduction aux bases de données

(VM(t i ),Q(t i+j ),VM(t i+j ))

NOTATIONS PRÉLIMINAIRES

Pourquoi l apprentissage?

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Méthodes de développement. Analyse des exigences (spécification)

3 Approximation de solutions d équations

modélisation solide et dessin technique

La fonction exponentielle

CHAPITRE VIII : Les circuits avec résistances ohmiques

CHAPITRE I. Modélisation de processus et estimation des paramètres d un modèle

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Fonctions de plusieurs variables

Chapitre 1 Régime transitoire dans les systèmes physiques

MEGA ITSM Accelerator. Guide de Démarrage

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Algorithmes d'apprentissage

NOTIONS DE PROBABILITÉS

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

Qu'est-ce que le BPM?

Introduire un nouveau type de maille ou un nouvel élément de référence

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Rapport d'analyse des besoins

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée

Recherche dans un tableau

Université de Bangui. Modélisons en UML

Chapitre I : le langage UML et le processus unifié

CAPTEURS - CHAINES DE MESURES

Exercices de dénombrement

Propagation sur réseau statique et dynamique

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct (ajout de la section 3 et augmentation de la section 1)

Couples de variables aléatoires discrètes

Chapitre 2. Classes et objets

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Chapitre 2 Le problème de l unicité des solutions

Algorithmes de recherche

D'UN THÉORÈME NOUVEAU

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Résolution d équations non linéaires

Les mesures à l'inclinomètre

Systèmes de transport public guidés urbains de personnes

Conduite et Gestion de Projet - Cahier des charges

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

MEGA ITSM Accelerator. Guide de démarrage

CNAM UE MVA 210 Ph. Durand Algèbre et analyse tensorielle Cours 4: Calcul dierentiel 2

Conception d'un réseau de transport d'électricité

La correction des erreurs d'enregistrement et de traitement comptables

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Théories de la Business Intelligence

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

DYNAMIQUE DE FORMATION DES ÉTOILES

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Le chiffre est le signe, le nombre est la valeur.

TEXT MINING von 7

Les algorithmes de base du graphisme

Les diagrammes de modélisation

Télécom Nancy Année

CHAPITRE IX : Les appareils de mesures électriques

Evaluation de la variabilité d'un système de mesure

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

I. Introduction aux fonctions : les fonctions standards

LA SURVEILLANCE ET LE SUIVI DE L'ENVIRONNEMENT. Pierre Guimont Conseiller en environnement Unité Environnement Division Équipement, Hydro-Québec

Le module Supply Chain pour un fonctionnement en réseau

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Politique d exécution des ordres

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Année Universitaire 2009/2010 Session 2 de Printemps

- Le Diagramme de Gantt. - Le Diagramme de Pert - La Méthode QQCQCCP - La Méthode MOSI - Cahier des charges fonctionnel

Annexe : La Programmation Informatique

2. Activités et Modèles de développement en Génie Logiciel

L'évolution de VISUAL MESSAGE CENTER Architecture et intégration

MEDIAplus elearning. version 6.6

Cours Langage C/C++ Programmation modulaire

Degré de confiance pour les indicateurs de performance : degré de fiabilité du processus de production et écart significatif 1

CHAPITRE VI ALEAS. 6.1.Généralités.

Retournement Temporel

Axiomatique de N, construction de Z

Calcul différentiel sur R n Première partie

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ORACLE TUNING PACK 11G

Programmation Objet - Cours II

de calibration Master 2: Calibration de modèles: présentation et simulation d

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Cours de Mécanique du point matériel

Algorithmique avec Algobox

Transcription:

YAO : Un logiciel pour les modèles numériques et l'assimilation de données Sylvie Thiria, Fouad Badran, Charles Sorror Rapport de recherche (22 juin 2006) 1

Table des matières 1 Introduction 3 2 Principes Théoriques de l'assimilation Variationnelle 6 2.1 Introduction et notation................................ 6 2.2 Calcul de l'adjoint[27]................................. 8 2.3 Méthode incrémentale................................. 9 2.4 Quelques extensions.................................. 10 2.4.1 Transformation du vecteur d'état.................... 10 2.4.2 Prise en compte du bruit du modèle.................. 10 2.5 Fonctions de validation................................. 12 3 Graphe Modulaire 13 3.0.1 Concept de graphe modulaire...................... 13 3.0.2 Tangent linéaire d'un graphe modulaire................ 15 3.0.3 Adjoint d'un graphe modulaire...................... 16 3.0.4 Représentation d'une application par graphe modulaire..... 18 3.0.5 Mise au point d'expériences de simulation et/ou d'assimilation 22 4 YAO 24 4.1 Présentation générale.................................. 24 4.2 Concepts généraux, dénitions, vocabulaire..................... 25 4.3 Fichier de description................................. 26 4.4 Structuration d'une application sous YAO:..................... 28 4.5 Le chier d'instructions................................ 29 4.6 Schéma global d'agencement des calculs dans YAO................. 29 4.7 Exemple pratique d'application : LE SHALLOW-WATER (TP didactique)... 32 4.7.1 Discrétisation................................. 32 4.7.2 Modélisation Par graphe modulaire YAO............... 34 4.7.3 Etude de cas................................. 35 4.8 Implémentation dans YAO............................... 36 4.8.1 Fichier de description........................... 36 4.8.2 Programmation du hat et des modules................ 40 4.8.3 Fichier d'instructions........................... 48 4.8.4 Exemples supplémentaires........................ 52 4.8.5 Achage avec gnuplot............................. 52 5 Conclusion et Perspectives 54 6 Remerciements 55 7 Annexes 59 7.1 Démonstration de la formule de la procédure backward.............. 59 7.2 Simulation du modèle direct.............................. 60 7.3 Test de la fonction objective.............................. 60 7.4 Exécution d'une assimilation (cas 1)......................... 61 2

1 Introduction La modélisation numérique est de plus en plus utilisée comme complément à l'étude d'un phénomène physique se déroulant dans le temps, dans l'espace à une, deux ou trois dimensions (1D, 2D, 3D) ou bien tout à la fois dans le temps et l'espace. Dans une première étape le modèle numérique permet de choisir et d'adapter les équations permettant de reproduire les lois physiques qui sous tendent le phénomène. Une fois vérié le bon comportement de ces lois il est alors utilisé pour l'étude du phénomène lui même. Cependant, les modèles ainsi crées restent toujours imparfaits. La paramétrisation des phénomènes, les discrétisations, l'incertitude sur les conditions initiales et les conditions limites introduisent des approximations dont il faudra tenir compte au moment d'étudier le comportement du phénomène ou de prédire les évolutions de celui-ci. De nouvelles techniques qui utilisent à la fois la modélisation et la résolution de problème inverse ont vu le jour, elles se regroupent sous le nom d'assimilation des données. Celles-ci tentent de faire évoluer le modèle physique ou les paramètres qui le contraignent (conditions initiales,...) en introduisant un nouveau type d'information : les observations. Elles utilisent alors le modèle du phénomène ou modèle direct et se servent des observations pour contrôler les modications nécessaires. Il existe deux grandes familles de technique pour faire de l'assimilation de données : les méthodes séquentielles et les méthodes variationnelles ([6, 21, 23, 25, 26, 28]), les secondes étant plus adaptées si l'on veut prendre en compte d'une manière globale les variations du phénomène pendant une période de temps donnée. Toutes sont aujourd'hui de plus en plus utilisées car elles permettent de faire interagir l'ensemble des informations disponibles (connaissances théoriques sur le phénomène et observations de celui-ci) dans l'espace et dans le temps. L'ecacité de l'approche est visible si l'on considère leurs bonnes performances, on peut faire référence, parmi d'autres, à l'amélioration actuelle obtenue sur les prévisions météorologiques qui assimilent les observations satellitaires et in situ depuis une vingtaine d'années. La technique choisie par les centres de prévision météorologique est en général l'assimilation variationnelle dont le principe repose sur la minimisation d'une fonction de coût (objective). Il faut pour cela déterminer le gradient de la fonction par rapport aux variables à contrôler. Ce calcul nécessite la programmation du code adjoint du modèl direct (parfois aussi celui du linéaire tangent de ce même modèle pour certains algorithmes) qui permet de rétropropager le gradient de l'erreur sur les valeurs de sortie du modèle vers les variables d'entrée. Il faut donc décider d'investir dans la réalisation de ces développements, survient alors la diculté de programmer ces codes (code adjoint, tangent linéaire) qui ne relèvent pas d'un sens physique commun, mais plutôt d'une démarche purement mathématique. Jusqu'à présent, deux approches sont utilisées pour créer ces codes adjoints à partir du code du modèle direct :. 3

- Le code adjoint peut être généré à la main. Dans ce cas, il est souhaitable de choisir le nom des variables en suivant des règles précises qui facilitent la dérivation composée. Après cette première phase d'analyse et d'écriture qui est longue et délicate, le code doit être entièrement écrit.. - Le code adjoint peut être généré d'une manière automatique à partir du code de l'application directe [14, 15, 16, 17, 19, 18]. Cette approche répond à un besoin actuel qui consiste à exploiter de très gros code existant dont on est sur du bon fonctionnement. Le code adjoint généré de manière automatique est alors dépendant du langage de programmation dans lequel il est écrit. Il contient des instructions qui ne sont pas nécessaires et doit être nettoyé avant son utilisation. Cette opération doit d'autre part être recommencée si l'on fait évoluer le code direct et que l'on désire faire évoluer également son adjoint. Il est dicile de modier directement le code adjoint, son écriture n'étant pas obligatoirement très lisible.. D'autres méthodes existent actuellement qui permettent d'eectuer ces mêmes études (Krigeage, Filtrage de Kalman), les méthodes variationnelles sont cependant celles qui semblent devenir les plus populaires étant données leurs capacités à prendre en compte toute une trajectoire d'assimilation. Leur principale diculté est d'être longue à mettre en oeuvre, il faut écrire le modèle tangent, le modèle adjoint, gérer les observations qui peuvent intervenir en n'importe quel lieu et à n'importe quel temps, gérer aussi les diérentes fonctions de coût ainsi que les matrices de variance-covariance d'erreur qui interviennent dans le processus. Une méthode nouvelle d'écriture de codes de modèles numériques est développée au LOCEAN pour l'assimilation variationnelle de données. Elle est basée sur la représentation du modèle numérique du phénomène physique étudié sous forme de graphe modulaire. Ce formalisme nous a ammené à la conception d'un outil général : Le logiciel YAO qui va être présenté dans ce document. En déchargeant l'utilisateur de l'implémentation des diérents algorithmes nécessaires, YAO se propose d'être une aide à la réalisation d'inversion variationnelle et d'une manière plus générale à l'assimilation variationnelle. Il permet à l'utilisateur de réduire sa part de programmation et de ne se concentrer ainsi que sur la spécication de son problème, en particulier sur les dépendances physiques qui existent entre les diérentes variables qui constituent le phénomène physique. Tout code écrit à partir de YAO bénécie de façon quasi-automatique du code adjoint qui permet de calculer le gradient d'une fonction de coût. Un grand avantage de cette méthode est sa exibilité et la facilité avec laquelle il est possible de modier le modèle pour le faire évoluer. La méthodologie a été testée sur diérents exemples (modèle Météo ISBA, modèle traceur OPA) ; elle a montré sa capacité à produire facilement des modèles adjoints et à permettre l'assimilation des données en 4D-Var (prise en compte des observations à n'importe quel moment durant le temps d'assimilation). Le champ d'utilisation de YAO n'est cependant pas limité aux seules simulations physiques. Il peut être utilisé pour d'autres domaines d'application. YAO s'est donc avérer être une solution ecace pour surmonter plus aisément l'investissement nécessaire à la réalisation des modèles (direct, tangent et adjoint) dont il est reconnu qu'il s'agit habituellement d'un travail lourd et contraignant. Dans les paragraphes qui suivent nous rappelons tout d'abord les principes théo- 4

riques et le cadre mathématique général de l'assimilation variationnelle, puis nous introduisons le formalisme de graphe modulaire. L'outil YAO et ses fonctionalités ferons ensuite l'objet d'une présentation qui sera appuyée par la réalisation d'un TP sur le shallow-water. Enn, des évolutions futures de YAO seront envisagées. Ÿ 5

2 Principes Théoriques de l'assimilation Variationnelle 2.1 Introduction et notation Ce paragraphe présente l'ensemble des notions mathématiques nécessaires à la mise en oeuvre des techniques d'assimilation variationnelles. Traditionellement on classe les assimilations en diérents types selon le nombre dimension que l'on considère : 3D-Var signie que l'on considère un phénomène physique décrit dans l'espace à trois dimension et 4D-Var que l'on considère son évolution dans le temps. L'assimilation variationnelle demande la connaissance d'un modèle numérique ou modèle direct M qui décrit, dans le temps, l'évolution du phénomène physique que l'on étudie. Si l'on prend par exemple un problème géophysique, le modèle direct permet de relier les variables géophysiques que l'on étudie aux observations. En faisant varier certaines des variables géophysiques (les variables de contrôle) l'assimilation cherche à inférer les variables physiques qui ont engendré les valeurs d'observations. Ces variables physiques peuvent être par exemple des conditions initiales ou des paramètres mal connus du modèle M. Les variations considérées se font à partir d'un ensemble de valeurs initiales données aux variables de contrôle et ne s'autorisent souvent qu'à explorer un domaine limité en introduisant des valeurs d'ébauche desquelles il ne faut pas trop s'écarter. D'une manière générale, il s'agit de déterminer le minimum d'une fonction de coût J qui mesure l'écart entre les observations et la valeur calculée par le modèle M. Le minimum recherché est toujours obtenu à partir de la méthode du gradient. Selon les algorithmes que l'on considère il faut alors utiliser des modèles qui se déduisent de M : le tangent linéaire et l'adjoint. Si le modèle est continu et dérivable ces deux modèles se déduisent aisément des équations du modèle M. Le tangent linéaire revient à étudier pour une valeur donnée des variables de contrôle (ou point de référence) la sensibilité du modèle M à de petites perturbations de ces variables. Il se calcule en ce point de référence en linéarisant le modèle M, calcul qui correspond à la valeur de la matrice Jacobienne en ce point. Le modèle adjoint revient, lui, à étudier les variations des variables de contrôle en réponse à une perturbation des valeurs de sortie calculées par le modèle M. Il faut donc dérouler en sens inverse les calculs du tangent linéaire, ce qui correspond à utiliser la transposée de la matrice Jacobienne. Lorsque des observations sont disponibles ces modèles permettent de faire de l'assimilation variationnelle de données en minimisant la fonction J et de retrouver les variables de contrôle. Nous présentons maintenant de manière formelle les notations mathématiques et les algorithmes les plus classiques utilisés actuellement. Dans cette présentation nous avons adopté le formalisme et les notations présentés dans l'article [20]. nous notons : M : le modèle direct décrivant l'évolution (en général non linéaire) entre 2 pas de temps de discrétisation t i,t i+1. x(t 0 ) : le vecteur d'état initial en entrée du modèle et qui est à contrôler. M i (x(t 0 )) ou M(t i, t 0 ) correspond à l'état du modèle au temps t i à partir de t 0. On notera x(t i ) = M i (x(t 0 )) M(t i, t i+1 ) : le tangent linéaire qui correspond à la jacobienne du modèle M calculé en x(t i ). On dénit le tangent linéaire du modèle M i calculé en t 0 : 6

M i (x(t 0 )) = 0 j=i 1 M(t j+1, t j ) L'adjoint du modèle M i est la tranposé du tangent linéaire : i 1 M i (x(t 0 )) T = M(t j+1, t j ) T j=0 x b : un vecteur d'ébauche qui correspond à une estimation à priori du vecteur x(t 0 ). y o : l'ensemble des observations sur diérents pas de temps. Le vecteur y o i correspond donc aux observations au temps t i, ce vecteur peut être vide s'il n'y a pas d'observation au pas de temps t i. Le modèle M permet d'estimer des quantités qui sont le plus souvent observées à partir d'un opérateur dit d'observation (H ). Dans le domaine de la géophysique cet opérateur permet, par exemple, de comparer les sorties du modèle M qui calcule la température à la surface de la mer à des observations enregistrées par un radiomètre qui se trouve à bord d'un satellite. On comprend également, que les observations ne peuvent pas être obtenu en tout point de l'espace étudié, ni à tout instant. Il est nécessaire de connaitre l'opérateur qui permet de transformer les valeurs de sortie de M en valeurs observables. C'est l'opérateur H qui permet donc de comparer, là ou les observations sont disponibles, les valeurs observées et celles calculées par la composition HoM. La fonction de coût J va donc s'appliquer dans le domaine des observations, comme mentionné précédemment il sera nécessaire d'exprimer le tangent linéaire et l'adjoint de l'opérateur H. On note donc : H : l'opérateur d'observation qui permet de calculer les variables d'observation y i au temps t i à partir du vecteur d'état x(t i ). On suppose par la suite que : y o i = H(M i (x(t 0 ))) + ε i (ε i étant une variable aléatoire de moyenne nulle). H i : la matrice du modèle tangent linéaire de l'opérateur H calculé en x(t i ). Enn, l'assimilation des données cherche à résoudre des problèmes qui sont le plus souvent sous contraint. Il faut pour obtenir des solutions réalistes apporter le plus possible d'information pour maintenir la cohérence existant au niveau des diérentes variables de contrôle retrouvées et des quantités estimées par le modèle M. Les variables physiques et les observations sont connues avec certaines erreurs qui sont le plus souvent fortement corréllées. Dans les méthodes d'assimilation ceci est pris en compte en introduisant au niveau de la fonction de coût des matrices de variance-covariance. La matrice de variance-covariance sur les erreurs d'observations permet de maintenir la cohérance entre les diérentes valeurs retrouvées en sortie de l'opérateur d'observation, celle sur l'écart à l'ébauche maintient la cohérence spatiale des diérentes variables de contrôle entre elles. Dans la suite on note : R : l'estimation de la matrice de covariance sur les erreurs d'observation ε i. B : l'estimation de la matrice de covariance sur les erreurs de l'ébauche x b. Avec ces notations, la fonction de coût J se présente en général sous la forme suivante : J(x(t 0 )) = 1 (y i y i ) T R 1 (y i y i ) + 1 2 2 (x(t 0) x b ) T B 1 (x(t 0 ) x b ) (1) i 7

Avec y i = H(x(t i )) 2.2 Calcul de l'adjoint[27] D'une manière générale, soit un scalaire J mesurant la distance entre un modèle G et ses observations et dépendant de y. Pour minimiser J, on est amené à calculer le gradient de J par rapport à des variables x du modèle tel que y = G(x). La perturbation δj est donnée par : δj =< y J, δy > (2) <> désignant le produit scalaire. On a : δy = G(x)δx (3) G(x) est le jacobien de G (opérateur linéaire au point x), que l'on note également G x. On rappelle que : soit u Au un opérateur linéaire continu d'un espace de Hilbert L dans un espace de Hilbert F. Il existe un opérateur linéaire continu A de F dans L, et un seul, tel que l'égalité suivante entre produits scalaires soit vériée pour tout vecteur u de L et tout vecteur v de F < Au, v >=< u, A v > A est l'adjoint de A. Lorsque L et F sont de dimensions nies, les matrices qui représentent A et A dans des bases orthonormées sont transposées l'une de l'autre (ou transconjuguées dans le cas de composantes complexes). On en tire que : En portant (3) dans (2) on a : on en déduit : < v, Au >=< A T v, u > δj =< y J, G x δx >=< G T x y J, δx >=< x J, δx > x (J) = G T x y (J) ce qui permet le calcul de x connaissant y en prenant l'adjoint G T x qui est la transposée de G x. de G(x) L'assimilation de données variationnelle consiste à minimiser la fonction J par rapport à l'état initial x(t 0 ). Le gradient x0 J est égal à : x0 J = M T i (x(t 0 )H T i [R 1 (y i yi o )] + B 1 (x(t 0 ) x b ) (4) i=i..n la procédure de minimisation est réalisée en choisissant un algorithme d'optimisation parmi l'ensemble de ceux proposés par les techniques d'optimisation. Dans le domaine de la géophysique un des plus utilisé pour l'assimilation variationnelle est le minimiseur m1qn3[16, 17], développé par l'inria. On peut également, de manière à favoriser pour certains problèmes la convergence, utiliser une méthode approchée de descente de gradient, appelée algorithme incrémental [29, 11] qui est plus rapide. Procéder de la sorte revient à modier la fonction J. La présentation de cette variante fait l'objet du paragraphe suivant. 8

2.3 Méthode incrémentale. La minimisation de la fonction J par rapport à x(t 0 ) suppose que l'on positionne l'algorithme de minimisation à un état initial x g (t 0 ), ainsi on a x(t 0 ) = x g (t 0 ) + δx(t 0 ). On utilise l'approximation par le tangent linéaire : y i = H(M i (x(t 0 ))) H(M i (x g (t 0 ))) + H i (M i (x g (t 0 ))δx(t 0 ) (5) En posant en plus d i = y o i H(M i (x g (t 0 ))) on peut exprimer J par : J[δx(t 0 )] = 1 2 [δx(t 0) (x b (t 0 ) x g (t 0 ))]B 1 [δx(t 0 ) (x b (t 0 ) x g (t 0 ))] (6) + 1 2 n [H i M i (x g (t 0 ))δx(t 0 ) d i ] T R 1 [H i M i (x g (t 0 ))δx(t 0 ) d i ] i=1 Cette nouvelle formulation de J représente une expression quadratique en δx et correspond à une approximation de J(x(t 0 )) autour de x g (t 0 ). Le problème est de minimiser J(δx(t 0 )) par rapport à la seule variable δx(t 0 ), les autres termes étant constants. Cette phase de minimisation sera dite la boucle interne. Elle correspond à quelques itérations de la méthode du gradient. A chaque itération de la boucle interne, il faut donc calculer le gradient δx J : δx J = B 1 [ δx(t 0 ) (x b (t 0 ) x g (t 0 )) ] + n M T i H T i R 1 [H i M i (x g (t 0 ))δx(t 0 ) d i ] (7) Au cours des itérations de la boucle interne, l'approximation par la formule 5, risque de devenir trop grossière. Pour cette raison on fait un nombre limité d'itérations, puis on recalcule la vraie valeur de y i = H(M i (x(t 0 ))). La phase de préparation de la boucle interne est appelé boucle externe. La boucle interne est donc imbriquée dans la boucle externe. Nous pouvons résumer les calculs à chaque itération de chacune de ces bloucles de la façon suivante : boucle externe : - remplacer x g (t 0 ) par x g (t 0 )+δx. Il est à noter qu'à la toute première itération x g (t 0 ) doit être initialisée, (en général égale à l'ébauche). - calculer les y i = H(M i (x g (t 0 ))) et les d i pour la nouvelle expression de J[δx(t 0 )]. - initialiser δx(t 0 ) (généralement, on prend δx(t 0 ) = 0). - boucle interne : - calculer δx J et J[δx(t 0 )] selon les formules 4 et 5. - corriger δx(t 0 ) avec une méthode de minimisation adéquate. La gure 1 illustre l'algorithme incrémental en montrant comment progresse la minimisation par l'imbrication de ces deux boucles. i=1 9

Fig. 1 La courbe en trait plein correspond à la fonction de coût J(x(t 0 )). Chacune des paraboles en pointillé correspond à la fonction J[δx(t 0 )] initialisée à chaque itération k de la boucle externe. La boucle interne réalise une descente de gradient sur la parabole correspondant à l'approximation. La boucle externe, quand à elle, permet d'avancer en se repositionnant sur la fonction J(x(t 0 )) (courbe pleine) et de faire une nouvelle approximation correspondant à la parabole suivante dans la minimisation. 2.4 Quelques extensions 2.4.1 Transformation du vecteur d'état en prenant v = B 1 x = U 1 x, l'expression 1 2 (x(t 0) x b ) T B 1 (x(t 0 ) x b ) de la fonction de coût devient (v(t 0 ) v b )(v(t 0 ) v b ). Dans cette formulation, le vecteur de contrôle admet la matrice unité comme matrice de variance-covariance. Cette formulation présente plusieurs avantages notamment en ce qui concerne la convergence de l'algorithme de minimisation de la boucle interne. Certaines méthodes [29] propose de dénir directement U 1, par exemple en dénissant U 1 = F 1 D 1 K 1 où : - K 1 produit un ensemble de variables 2 à 2 non corrélées par exemple en retirant toute relation dynamique physique. - D 1 correspond à une matrice de normalisation. - F 1 est l'inverse d'un opérateur de lissage spécial qui agit séparément sur chacune des variables (non corrélées). L'implication de cette formulation et la méthode incrémentale qui lui est associée suppose une estimation de x l à la n de la lième itération de la boucle externe par : x l = x l 1 + δx l avec δx l = Uδv l où U correspond au tangent linéaire de l'opérateur U. La boucle interne aura comme objectif l'optimistaion de la fonction coût par rapport à δv. 2.4.2 Prise en compte du bruit du modèle Le modèle n'étant pas une reproduction parfaite de la réalité il est donc entaché d'erreur. Ainsi, Si on note par x t le vecteur qui correspond à la situation réelle 10

et on note par x f le vecteur prévu par le modèle, en posant x t (t0) = x(t0) on a alors : et x f (t i ) = M(x t (t i 1 )) x t (t i ) = x f (t i ) + η i On suppose que le vecteur η i correspond au bruit du modèle au temps t i, et qu'il admet une matrice de variance covariance Q. On suppose en plus que pour tout i et j les variables η i et η j sont indépendants. Il s'agit alors d'estimer, en plus des variables de contrôle, les diérents vecteurs η i. Ainsi, la nouvelle fonction J s'écrit : J(x(t 0 ), η 1, η 2,..., η n ) = 1 2 (x(t 0) x b ) T B 1 (x(t 0 ) x b ) + 1 2 n (H(x(t i )) y i ) T R 1 (H(x(t i )) y i ) i=1 (8) + 1 2 n ηi T Q 1 η i i=1 Avec x(t i ) = M(x(t i 1 ) + η i 1 ) En procédant à des approximations successives de l'expression (8) et en dénissant les variables i 1 z i = H i M i 1...M 0 δx + H i M i 1...M k η k 1 + H i η i 1 k=1 Où M i est la matrice du tangent linéaire du modèle M calculé au vecteur x i = M(t i, t 0 ) (état du modèle au temps t i à partir de t 0 ). En posant d i = y 0 i H(x i ) (cette fois les lettes sont bonnes) et δx = x(t 0 ) x b, la fonction coût devient alors : J(δx 0, η, z) = 1 2 δxt 0 B 1 δx 0 + 1 2 n (z i d i ) T R 1 (z i d i ) + 1 2 i=1 Il faut alors minimiser J sous la contrainte : n ηi T Q 1 η i i=1 i 1 z i = H i M i 1...M 0 δx 0 + H i M i 1...M k η k 1 + H i η i 1 k=1 L'introduction des coecients de Lagrange (m i ) permet de passer au problème dual qui se formule alors sous la forme d'une minimisation d'une fonction coût quadratique G(m) sans contrainte. Des formules de passage permettent alors le calcul de la solution du problème initial à partir de la solution du problème dual. 11

L'algorithme de gradient qui permet l'optimisation de la fonction duale G(m) introduit un calcul qui peut se faire par rétropogation à travers le graphe modulaire. L'algorithme dual n'est pas encore implémenté dans YAO, mais la conception de graphe modulaire, sous-jacent à YAO, permettrait de l'intégrer par la suite. 2.5 Fonctions de validation Lorsqu'on veut pratiquer des expériences d'assimilation variationnelles, il est important de pouvoir s'assurer de la validité des codes employés. Les diérents tests ci-dessous sont couramment employés à cette n. Test de la fonction objective : il consiste à vérier le développement de Taylor de la fonction de coût J: à l'ordre 1 : J(x(t 0 )+α.dx) J(x(t 0 )) < x(t0 ) J, α.dx> 1, α 0 où <,> désigne le produit scalaire à l'ordre 2 : ( 1 J(x(t0 )+α.dx) J(x(t 0 )) α 2 < x(t0 ) J, α.dx> 1 ) K, α 0 où α est un coecient, K est une constante proportionnelle au hessien. Test du tangent linéaire. De façon similaire, on vérie le développement de Taylor sur le modèle M lui-même : à l'ordre 1 : à l'ordre 2 : 1 α M(x(t 0 )+α.dx) M(x(t 0 )) M(x(t 0 )), α.dx 1, α 0 ( M(x(t0 )+α.dx) M(x(t 0 )) M(x(t 0 )), α.dx 1 ) K, α 0 où α est un coecient, K est une constante proportionnelle au hessien. Test de l'adjoint : il s'agit de vérier l'égalité du produit scalaire suivant : < M(x(t 0 )).dx, dy >=< dx, M T (x(t 0 )).dy > dx, dy avec une tolérance sur la précision machine à apprécier selon l'erreur relative ainsi calculée : <M(x(t 0 )).dx, dy> <dx, M T (x(t 0 )).dy> <M(x(t 0 )).dx, dy> Ce test n'apporte aucune indication sur la validité de la programation des dérivées, il indique simplement la cohérence entre le modèle tangent, et sa transposition (i.e. l'adjoint). Ÿ 12

3 Graphe Modulaire 3.0.1 Concept de graphe modulaire Dénitions : module : Un module F est une entité de calcul, il reçoit un vecteur en entrée et calcule un vecteur en sortie. Un graphe Γ est formé de plusieurs modules, un module reçoit ses entrées d'autres modules ou du contexte extérieur au graphe et transmet ses données en sortie à d'autres modules ou au contexte extérieur. connexion de base : On schématise les transmissions des données entre modules par des connexions qui seront appelées par la suite les connexions de base. Une connexion de base qui lie la ième sortie d'un module F p à la jème entrée d'un module F q indique que la ième valeur calculée par F p sera transmise à la jème entrée de F q. Les transmissions des données vers l'extérieur (respectivement à l'intérieur) du graphe seront représentées par des connexions de base partant de sorties de certains modules (respectivement aboutissant à des entrées de certains modules). graphe modulaire : Un graphe modulaire est un ensemble de modules interconnectés. Les modules représentent les sommets du graphe et un arc (orienté) du module F p vers le module F q signie que F p transmet une partie de ses sorties à F q. Un modèle physique M peut être représenté par un graphe modulaire Γ. La gure 2-a ci-dessous représente un sous ensemble de modules d'un modèle. Ainsi, le module F p transmet sa sortie y p1 à l'entrée x q1 de F q et sa sortie y p2 à l'entrée x q2 de F q, cette même sortie y p2 sera aussi transmise à l'entrée x l1 de F l. La gure 2-a représente donc les connexions de base décrivant la transmission des données, elle montre qu'une seule connexion de base peut aboutir à une entrée donnée, mais que plusieurs connexions de bases peuvent être issues d'une même sortie. La gure 2-b montre deux arcs du graphe modulaire associé, en général un arc du graphe modulaire représente plusieurs connexions de bases. Figure 2: (a) connexions de base entre entrées et sorties de modules. (b) arcs du graphe entre modules. Le graphe modulaire décrit donc l'ordonnancement du calcul dans un modèle (voir gure 3). Un arc de F p vers F q indique que le module F q ne peut déclencher son calcul qu'après celui de F p. Par contre, les connexions de base seront utilisées an de transmettre les données. 13

Figure 3: graphe d'ordonnancement. Le graphe modulaire est un graphe sans circuit, il existe donc au moins un sommet d'entrée (sans prédécesseurs) et au moins un sommet de sortie (sans successeurs), on distingue donc trois types de modules : - Les modules d' entrée du graphe (sans prédécesseurs) reçoivent leurs données uniquement du contexte extérieur du graphe et transmettent leur sorties à d'autres modules ou au contexte extérieur. - Les modules de sortie du graphe (sans successeurs dans le graphe) transmettent leurs sorties uniquement au contexte extérieur du graphe et reçoivent des données d'autres modules ou du contexte extérieur. - Les modules internes du graphe recoivent nécessairement des entrées des modules prédécésseurs et éventuellement du contexte extérieur et transmettent les résultats aux modules successeurs et éventuellement au contexte extérieur. Le graphe modulaire étant sans circuit, il est alors possible de numéroter les modules suivant un ordre appelé ordre topologique. Ainsi, relativement à cet ordre, l'existence d'un arc de F p à F q (F p F q ) implique nécessairement que p < q. L'ensemble des entrées d'un module F p constitue un vecteur noté x p, l'ensemble de ses sorties constitue un vecteur noté y p (y p = F p (x p )). De ce qui précède, un module donné F q ne peut être activé que s'il dispose de son vecteur d'entrée x q, ce qui implique que tous ses modules prédécésseurs F p aient préalablement été activés. Les entrées correspondant à des connexions de base entrant de l'extérieur sont initialisées par le contexte extérieur. L'ordre topologique indique un enchaînement possible du calcul dans le modèle. La propagation du calcul dans le graphe modulaire se fait d'une manière naturelle, selon la procédure forward suivante : 14

Algorithm 1 forward 1) Parcourir les modules du graphe modulaire en passe avant, dans le sens de l'ordre croissant topologique. Pour chaque module rencontré : - S'il s'agit d'un module d' entrée, initialiser ses entrées par les données correspondantes du contexte extérieur. - Pour les autres cas ( module de sortie ou interne), si le module prend une partie de ses entrées du contexte extérieur alors initialiser ces entrées par les données correspondantes du contexte extérieur, initialiser les autres entrées par les sorties correspondantes des modules prédécesseurs. - Déclancher les calculs du module pour en obtenir le résultats sur ses valeurs de sortie (y p = F p (x p )). 2) Récupération du résultat sous la forme d'un vecteur y, constitué par les données transmises au contexte extérieur par les diérents modules. Globalement, un graphe modulaire reçoit une partie de ses données sur les entrées de ses modules d' entrée, il propage le calcul dans ce graphe en récupérant éventuellement d'autres données du contexte extérieur. L'ensemble des données qui seront transmises au contexte extérieur constitue un vecteur y, ce vecteur correspond aux résultats à restituer au contexte extérieur du graphe modulaire. Ainsi, un graphe modulaire peut être considéré lui-même comme un module F (y = M(x)). La représentation par graphe modulaire s'applique donc à diérents niveaux d'intégration, ce qui permet de former des modèles de plus en plus complexes. La suite du paragraphe montre comment, grâce à la notion de graphe modulaire, on calcule le tangent linéaire et l'adjoint d'un modèle. Les calculs nécessaires demandent d'obtenir le résultat de multiplication matricielles faisant intervenir les matrices jacobiennes de chaque module. Dans ce qui suit, pour faciliter la présentation et la compréhension, nous utilisons les notations matricielles, les résultats des calculs peuvent être obtenus sans exprimer explicitement les matrices jacobiennes (par exemple en utilisant des générateurs automatiques). 3.0.2 Tangent linéaire d'un graphe modulaire. On suppose que dans le cadre d'un graphe modulaire Γ d'un modéle M on sait calculer le tangent linéaire de chaque module F q, celui-ci se calcule pour une perturbation dx q (en un point x q ). On note par F q la matrice correspondante au tangent linéaire, qui est égale à la matrice jacobienne de F q calculée en x q, la perturbation correspondante en sortie du module est égale à dy q = F q dx q. De la même façon que le vecteur d'entrée x q, le vecteur dx q provient des perturbations dy p en sorties des modules prédécesseurs de F q ou des perturbations transmises par le contexte extérieur. Le tangent linéaire du modèle global représenté par un graphe Γ peut se calculer par une propagation avant dans le graphe de façon similaire à la procédure forward (algorithme 2). Un exemple de ce calcul est donné gure 4. 15

Algorithm 2 lin_forward Cet algorithme s'applique après que toutes les entrées x q de tous les modules aient été calculées (pour cela, il aura sut d'appliquer une fois l'algorithme forward pour un vecteur d'entrée x déni dans le contexte extérieur du graphe Γ ). 1) Initialiser la perturbation dx du vecteur d'entrée x du graphe Γ (ceci correspond à toutes les connexions de bases recevant des données du contexte extérieur). 2) Parcourir les module dans le sens de l'ordre topologique. Calculer, d'une manière similaire à la procédure forward, leur tangent linéaire dy q = F q dx q au point x q. 3) Récupérer le résultat sous la forme d'un vecteur dy constitué des pérturbations transmises au contexte extérieur. Figure 4: calcul du linéaire tangent dans un graphe modulaire. soit un module F q pour lequel le vecteur x q (de composante x q,i ) a déjà été calculé, et une perturbation dx q (de composante dx q,i ). On calcule dy q = F q dx q ce qui correspond au calcul du tangent linéaire du module F q. Les composantes dy q,j peuvent à leur tour être utilisés par les modules successeurs pour former leur propres composantes dx q,i. 3.0.3 Adjoint d'un graphe modulaire. Comme pour le modèle tangent linéaire, on suppose qu'on sait calculer le modèle adjoint de chaque module. Ainsi, pour un module F p, ayant en entrée un vecteur x p, s'il reçoit un vecteur dy p de même dimension que son vecteur de sortie, son modèle adjoint calculé en x p est alors dx p = F T p dy p, qui a la même dimension que le vecteur d'entrée de F p. La matrice F T p est la transposée de la matrice jacobienne du module F p calculée au point x p. On démontre alors (voir annexe 7.1), qu'on peut calculer le modèle ajoint du modèle global M (représenté par son graphe Γ ) pour chaque vecteur dy ayant la même dimension que son vecteur de sortie (dx = Γ T dy). On a besoin pour faire ce calcul de parcourir le graphe dans 16

l'ordre topologique inverse, ce qui correspond à utiliser les arcs en sens opposé, il s'agit du parcours en passe arrière, ou rétropropagation, du graphe modulaire (backward). Le parcours en passe arrière présente une diculté par rapport au parcours en passe avant. En eet, la transmission des données se fait toujours par l'intermédiaire des connexions de base. Comme l'illustrait la gure 2-a, lors du parcours en passe avant, une et une seule donnée est transmise à une entrée particulière. Par contre, lors du parcours en passe arrière, plusieurs données peuvent être transmises à une sortie particulière d'un module F p (exemple de y p2 de la gure 2-a). Dans le cas de l'adjoint, un calcul intermédiaire s'impose, il consiste à préparer le vecteur dy p en sortie du module F p avant de faire le calcul dx p = F T p dy p. On démontre (voir annexe 7.1) que la jème composante de dy p doit être calculée en faisant la somme de toutes les données du type dx q,i qui lui seront transmises, par retropropagation le long de toutes les connexions de bases prenant leur entrée en y pj. Ainsi, dans le cas de la gure 2-a, on doit calculer dy p2 = dx q2 + dx l1. Les diérentes données dx p,i retropropagées sont, soit issues d'un calcul par un module successeur de F p du graphe modulaire, soit calculées (ou initialisées) par le contexte extérieur du graphe modulaire. Finalement, le résultat du calcul de l'adjoint dx du modèle global (dx = M T dy) est constitué par les composantes des vecteurs dx p qui correspondent à des entrées prenant leur valeur du contexte extérieur du graphe du modèle. Ces opérations sont résumées par algorithme 3. La gure 5 montre un exemple des calculs à eectuer. Algorithm 3 backward Cet algorithme s'applique après que toutes les entrées x p de tous les modules aient été calculées une fois avec l'algorithme forward pour un vecteur d'entrée x. 1) Initialiser le vecteur dy des sorties du graphe Γ du modèle M (ceci correspond à toutes les connexions de bases transmettant des données vers le contexte extérieur ). 2) Visiter les modules dans l'ordre inverse à l'ordre topologique (parcours en passe arrière du graphe). Pour chaque module F p rencontré, eectuer le calcul de dy p (comme indiqué dans ce paragraphe) et calculer l'adjoint dx p = F T p dy p, cet adjoint étant calculé au point x p (on suppose par hypothèse que ce calcul est possible). 3) Recupérer le résultat du calcul de l'adjoint dx. Ce vecteur est constitué par les composantes des vecteurs dx p qui correspondent à des connexions de bases prenant leurs entrées du contexte extérieur au modéle. 17

Figure 5: calcul du l'adjoint dans un graphe modulaire. Il s'agit du même graphe que celui de la gure 4. Les notations sont équivalentes à ceci près que l'indice en p remplace celui en q. Les èches en pointillé représentent le parcours en passe arrière pendant lequel le calcul adjoint est eectué. Pour ce calcul, on rappelle cependant que chaque compsante dy p,j d'un module est constitué de la sommes des dx q,i de ces modules successeurs. Cette opération est représentée par le symbole Σ sur le graphe. Remarque Les deux algorithmes (2, 3), supposent que l'on sait faire le calcul du tangent linéaire et de l'adjoint pour chaque module F p. Les modules peuvent avoir des complexités très diérentes. Dans un cas simple, où le module est une fonction analytique, on peut calculer explicitement la matrice jacobienne F p et faire le produit F p dx p et F T p dy p. Concernant les modules plus complexes, on peut faire appel à des programmes qui font ces calculs (par exemple programme obtenus après utilisation d'un générateur automatique, voire même, par un autre graphe modulaire). Ainsi le formalisme de graphe modulaire permet de combiner diérentes méthodes pour construire des modèles de calcul complexes. Les algorithmes (2, 3) permettent, grâce au parcours avant et arrière du graphe, de calculer directement les résultats du tangent linéaire et de l'adjoint pour des modèles complexes. 3.0.4 Représentation d'une application par graphe modulaire Réaliser une étude de sensibilité ou une assimilation de données variationnelle suppose que l'on est capable de prendre en compte des graphes de grande complexité et que l'on gére les échanges (entrées, sorties) avec l'extérieur du graphe. On peut repérer plusieurs partie du graphe présentant des comportements différents. On distingue en particuilier le graphe qui correspond au modèle M = M t (M t 1 (...M 0 )) et celui qui représente l'opérateur H qui apparaissent dans les formules présentées au chapître précédent. Nous noterons par Γ M, Γ M t,γ H les graphes de calcul correspondant. Le graphe représentant le problème physique 18

dans son entier sera noté ΓΨ. Il correspond à l'organisation globale de l'ensemble des opérations liant les diérents graphes Γ. Comme précédemment, le graphe ΓΨ est déni par des échanges avec l'extérieur qui prend en charge, par exemple, l'ensemble des problèmes liés à la fonction de coût (matrice de variance covariance, expression moindre carré...). Nous expliquons dans la suite du paragraphe cette organisation. Réaliser une simulation ou une assimiltion de données dans un modèle géophysique M = M t (M t 1 (...M 1 )) opérationnel suppose que l'on est capable de dénir le graphe modulaire représentant l'ensemble des calculs qui vont s'eectuer dans la fenêtre de travail. Cet ensemble de calculs présente la plupart du temps une certaine répétitivité due au fait qu'un même phénomène physique se répète lorsque l'on se déplace dans l'espace ou dans le temps. L'ensemble de ces opérations caractérise ce que l'on appelle en géophysique une maille, endroit ou physiquement les grandeurs géophysiques sont estimées. De la même manière, le graphe modulaire Γ M va prendre en compte cette notion de répétitivité et permettre les échanges spatio-temporels. Ainsi, le graphe modulaire de Γ M intègre 3 niveaux d'abstraction (voir gures 6 et 7) : 1) On détermine d'abord un sous graphe modulaire dit de base Γ g qui décrit l'ensemble des opérations intervenant à un point de grille (gure 6.a). 2) La dénition d'un modèle (1D-2D,3D) à un instant t donné est donc un graphe modulaire dont les noeuds sont les sous graphes modulaires Γ g, les arcs décrivant les échanges spatiaux entre points de grilles. Cela dénit le graphe (Γ M t ) entre mailles. On utilise comme auparavant, des connexions de bases entre modules de points de grille diérents pour décrire les calculs à eectuer (gure 6.b). Figure 6: deux niveaux d'abstraction de graphe: Au niveau le plus bas, on construit le graphe de maille Γ g (a). Au niveau spatiale (b) le même graphe Γ g est répliqué pour chaque maille formant ainsi le graphe de l'espace Γ M t (en 2D dans cet exemple). Les connexions spatiales entre graphe Γ g correspondent aux connexions de base entre modules. 3) La prise en compte du temps demande que l'on le déplie dans le temps le graphe Γ M t. On procède de la même manière pour avoir enn le modèle complet Γ M recherché. Γ M sera représenté par un graphe linéaire dont les noeuds 19

sont représentés par les graphes modulaires Γ M t, les arcs ou connexions de base décrivent les échanges d'un pas de temps à l'autre. Comme cela a été déni précédemment, on retrouve les mêmes notions d'entrée et de sortie pour chacun des graphes Γ g, Γ M t et Γ M. Les connexions de base entrantes venant de l'extérieur de Γ M peuvent provenir par exemple de l'initialisation, de conditions limites. Les connexions de base sortantes allant vers l'extérieur vont communiquer leurs valeurs pour calculer par exemple une fonction de coût. Bien entendu les graphes Γ M t et Γ M ne se construisent pas explicitement. Il n'est nécessaire que de décrire le graphe de base Γ g, sachant que ses connexions de bases entrantes et sortantes permettent d'établir automatiquement l'ordonnancement des deux autres graphes. L'exemple qui suit, montre sur un exemple 1D (illustré par la gure 7) le dépliment temporel qui permet de comprendre l'éboration de Γ M. On considère un modèle, dont l'évolution de l'espace des états entre deux temps consécutifs est régie par un modèle d'évolution numérique discrétisé M. Prenons, pour simplier, un modèle en colonne de coordonnée z. avec 4 variables d'état u, v, w et h. La discrétisation, numérique conduit à exprimer pour chaque variable sa dépendance fonctionnelle par rapport aux autres variables qui peuvent se situer sur des points de coordonnées quelconques. Supposons que la dicrétisation nous donne, par exemple, les équations suivantes (Il s'agit ici d'un cas entièrement ctif qui n'a aucun sens physique ou autre) : u z (t) = u z (t 1) + h z 1 (t) FO v z (t) = K (u z (t)) 2 F1 w z (t) = u z (t) + v z (t) F2 h z (t) = v z (t) + w z (t) F3 Ce système d'équations, lorsqu'il est appliqué, en chaque point de maille, pour passer d'un temps t 1 au temps t, correspond au modèle M. Si, par exemple, la variable u est celle que nous voulons contrôler, l'ensemble des composantes u z (0) correspondrait à ce que nous avions noté x(t 0 ) au chapitre 2, c'est le vecteur d'état initial en entrée du modèle et à contrôler. Nous associons respectivement à chacune des ces variables u, v, w et h, un module F0, F1, F2 et F3. Ces équations se traduisent donc par un enchaînement de modules qui correspond à un graphe modulaire simple. F0 calculera u z (t) en fonction de u z (t 1) et de h z 1 (t), c'est à dire avec la sortie de F0 au même point de maille, mais au temps précédent et celle de F3 au point de maille z 1, (etc pour F1, F2 et F3). Sur la gure 7 le graphe en une maille représente cette situation. En chaque maille, le module d' entrée du graphe modulaire correspond aux entrées de F0 et son module de sortie correspond aux sorties de F3 (F1 et F2 sont des modules interne). Dans ce type de schéma, on est évidemment confronté à la phase d'initialisation et à la gestion des conditions limites. Sur notre gure, la prise en charge de ces éléments est représentée par ce que nous avons appelé l'extérieur du graphe. Ce 1er graphe modulaire simple constitue notre graphe de base générique Γ g. A partir de ce 1er niveaux d'abstraction, la gure 7 illustre les niveaux d'abstraction suivants Γ M t et Γ M. 20