Simulation distribuée et continue
Simulation distribuée (Section 1.6; LAW & KELTON, 90) Des processeurs spécialisés s’acquittent de fonctions spécialisées. Décomposition du modèle en plusieurs sous-modèles lesquels sont assignés à des processeurs différents. Les processeurs communiquent entre eux à l’aide d’un système de messagerie. Cela permet de synchroniser l’ensemble des opérations du modèle. Une autre approche est telle que les processeurs sont autonomes ou encore, les sous-modèles sont indépendants (File d’attente M/M/s ou s files M/M/1). La réception d’un message par un sous-modèle où l’instant courant du récepteur > l’instant courant du transmetteur entraîne la reprise d’une partie de la simulation propre à ce sous-modèle. Simulation distribuée et simulation continue
Simulation distribuée et simulation continue Il s’agit de modéliser un système dont l’état change continûment en fonction du temps. Le modèle est représenté en général par un système d’équations différentielles à valeurs initiales. Elle est très utilisée dans tous les domaines : physique, chimie, biologie, génie, informatique, sociologie, économie, gestion, etc. Langages spécialisés en simulation continue: ACSL, CSSL-IV, DYNAMO, CSMP, DSL/VS, etc. Langages de simulation à événements discrets possédant des outils permettant la simulation continue : SIMAN, SIMSCRIPT II.5, SLAM II. Simulation distribuée et simulation continue
Résolution numérique d’équations différentielles à valeurs initiales On cherche une approximation à la solution y(t) du problème: y'(t) = dy/dt (t) = f(t, y(t)), a ≤ t ≤ b y (a) = y0 En général, y(t) = (y1(t), ..., yn(t)) est un vecteur qui désigne l’état du système. Note: - En pratique, on ne peut pas calculer y(t) pour tout t. - On choisit un maillage de points t0 < t1 < ... < tN sur [a, b]. - On calcule pour tout ti, une approximation Wi de y(ti). - Maillage régulier: h = (b - a)/N (le pas d’intégration) ti = a + i h Il existe plusieurs façons d’obtenir les Wi. Simulation distribuée et simulation continue
Résolution numérique d’équations différentielles à valeurs initiales La plus simple est: LA MÉTHODE D’EULER. - On suppose qu’on connaît y(ti) (approximé par Wi) et on veut approximer y(ti + 1). - On se base sur la formule de TAYLOR: y(ti + 1) = y(ti) + h y'(ti) + h2/2 y''(ti + qi h) (avec 0 < qi < 1) ERREUR @ y(ti) + h f(ti , y (ti)) car h est très petit. LOCALE ERREUR @ Wi + h f(ti, y(ti)) =Wi +1 GLOBALE \ On pose W0 := y0 et on évalue Wi + 1 := Wi + h f(ti, Wi) pour tout i = 1, 2, 3,... Simulation distribuée et simulation continue
Résolution numérique d’équations différentielles à valeurs initiales Simulation distribuée et simulation continue
Algorithme (méthode d ’EULER) Lire les paramètres a, b, N et y0; h = (b - a)/N; // h = pas d’intégration t = a; // t = instant courant w = y0; // w = approximation de y(t) Écrire la valeur de (t, w); for (i = 1; i <= N; i++) { w = w + h * f (t, w); t = a + i h; Écrire (t, w) } Note : - Si N est assez grand, on suppose que l’erreur est négligeable. - La méthode d’EULER est simple, mais faible numériquement. Simulation distribuée et simulation continue
Un système proie-prédateur exemple Il y a 2 types d’animaux : les proies sont la nourriture des prédateurs. x(t) : # proies au temps t y(t) : # prédateurs au temps t Le modèle est le suivant : x'(t) = taux de variation du nombre de proies = r x(t) - c x(t) y(t) y'(t) = taux de variation du # de prédateurs = - s y(t) + d x(t) y(t) Taux de mortalité dû à la prédation Taux de croissance naturel en l’absence de prédateurs Taux de croissance dû à la prédation Taux d’extinction naturel Simulation distribuée et simulation continue
Un système proie-prédateur exemple La population initiale est x(0) = x0 > 0 et y(0) = y0 > 0. Il s’agit d’un système (déterministe) discret approximé par un modèle continu. Il est possible de le résoudre analytiquement: toutes les solutions (x(t), y(t)) pour x0 0, y0 0 sont périodiques autour du point (x, y) (s/d, r/c). Note : Il existe plusieurs raffinements possibles: plusieurs espèces, perturbations aléatoires, etc. Paramètres d’entrée : r = 0.005 s = 0.01 c = 0.00001 d = 0.000005 x0 = 2000 y0 = 150 durée de la simulation = 5000 Simulation distribuée et simulation continue
Un système proie-prédateur exemple (N = 1000) Simulation distribuée et simulation continue
Un système proie-prédateur exemple (N = 1000) Simulation distribuée et simulation continue
Un système proie-prédateur exemple (N = 100 000) Simulation distribuée et simulation continue
Un système proie-prédateur exemple (N = 100 000) Simulation distribuée et simulation continue
Exemple : N = 100 000 (x0, y0) = (2000, 150) et (2000, 300) (2000, 500) Simulation distribuée et simulation continue
Résolution numérique d’équations différentielles à valeurs initiales La méthode d’Euler n’est pas très efficace. Il faut trouver mieux. La méthode d’Euler est basée sur la formule de Taylor en retenant 2 termes seulement. Une approche consisterait à utiliser n > 2 termes. MÉTHODE DE TAYLOR D’ORDRE n y(ti+1) y(ti) + h y'(ti) + h2/2 y''(ti) + … + hn/n! y(n)(ti) wi + h f(ti, wi) + h2/2 f'(ti, wi) + … + hn/n! f(n-1)(ti , wi) où y'(t) = dy/dt (t) = f(t, y(t)). Pour n > 2, nous avons en général une meilleure approximation qu’avec la méthode d’Euler, pourvu que la dérivée || f(n) || soit suffisamment petite en valeur absolue. Toutefois, il faut connaître les dérivées de f d’ordre 1 à n-1, ce qui n’est pas le cas en pratique. Les méthodes les plus utilisées n’exigent que des évaluations de f et non de sa dérivée. Simulation distribuée et simulation continue
Évaluation de fonctions On veut évaluer MÉTHODE SIMPLISTE [GORDON, p. 40] Tirer des couples (X, Y) dans ce rectangle où X : U[a, b], Y : U[0, c] Estimer I comme suit: \ I = p. c. (b - a) où E[I] = I un estimateur sans biais et Var [I] élevée. Simulation distribuée et simulation continue
Méthode suggérée par Law & Kelton Soient X : U[a, b], Z : g(X), 1˚) Générer X1, X2,..., Xn i.i.d. U(a, b) 2˚) Yi = (b - a) g(Xi ) et E[Y] = I et Intégrales simples: Il existe des méthodes numériques plus efficaces que la simulation. Intégrales multiples : LA SIMULATION (MONTE-CARLO) EST SOUVENT LE SEUL RECOURS. Simulation distribuée et simulation continue