Modélisation Quantitative de la Fiabilité
Transcription
Modélisation Quantitative de la Fiabilité
Modélisation Quantitative de la Fiabilité J.M. Fourneau Laboratoire PRiSM, CNRS UMR 8144 Université de Versailles St-Quentin M2 ASS-ACSIS 2008, Université de Versailles St Quentin [1/324] Fiabilité • Hypothèses : Les pannes se produisent. . . • On peut essayer de les rendre moins fréquente : améliorer les équipements, les logiciels, les méthodes de test. • On peut aussi en limiter les conséquences. • Construire un système plus fiable que ses composants élémentaires. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [2/324] Comment ? • Dupliquer les composants • Vérifier si il est possible de récuperer une faute • Avoir un composant de secours • Dupliquer le calcul et choisir le résultat • Tout ceci a un coût lié à la redondance. . . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [3/324] Problématique • Caractériser la fiabilité des composants : taux de panne, processus de panne, processus des réparations. • Evaluer la fiabilité d’un systême avec ou sans redondance • Pour choisir la configuration la moins coûteuse répondant aux contraintes de fiabilité imposées. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [4/324] Plan • Un peu de vocabulaire • Un premier rappel de probabilités • Modèles statiques : RBB et Fault Trees • Un second rappel de probabilités • Modèles dynamiques Markoviens • Un troisième rappel de probabilités • Les modèles non Markoviens et la simulation M2 ASS-ACSIS 2008, Université de Versailles St Quentin [5/324] Fiabilité • Reliability • Définie par ITU (International Telecommunications Unions) recommendation E.800: • Définition 1 (Reliability;Fiabilité) The ability of an item to perform a required function under given conditions for a given time interval. • Donc prendre en compte un intervalle de temps • et le système doit être opérationnel pendant toute la période M2 ASS-ACSIS 2008, Université de Versailles St Quentin [6/324] Disponibilité • Availability • Egalement définie par une recommendation ITU • Définition 2 (Availability;Disponibilité) The ability of an item to be in a state to perform a required function at a given instant of time assuming that the external resources, if needed, are provided. • Donc prendre en compte une date • et le système doit être opérationnel à cette date. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [7/324] Dependability • Pour eviter la confusion entre la notion mathématique bien définie et le mot usuel (Fiabilité), • Proposée par IFIP WG 10.4 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [8/324] Dependabillity Umbrella M2 ASS-ACSIS 2008, Université de Versailles St Quentin [9/324] Systèmes Fiables • Applications Critiques (6nines): aviation, espace, industrie nucléaire. • Applications à Haute Disponibilité (5nines): E-commerce, finance, télécommunications, réservation avion. • Applications à Disponobilité usuelle (4nines): mobile M2 ASS-ACSIS 2008, Université de Versailles St Quentin [10/324] Un premier rappel de Proba • Probabilités, Aximatique • Probabilités Conditionnelles, Formules de Bayes • Théorème du conditionnement • Variable Aléatoire, • MTTF, MTTR M2 ASS-ACSIS 2008, Université de Versailles St Quentin [11/324] Construire un modèle • Espace d’état S: l’espace de tous les états possiblement observables d’un système aléatoire • Espace des Evenements E : tous les événements possibles utiles pour le modèle • Une mesure de probabilités µ sur les événements. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [12/324] Espace d’Etats • Tous les résultats possibles d’un système aléatoire. • Fini (nombre de roues opérationnelles sur un véhicule) • Dénombrable (nombre de clients dans une file) • Continu (temps résiduel de service avant absence de client) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [13/324] Axiomes des Probabilités • Pour tout événement A, la probabilité de A vérifie : • O ≤ µ(A) ≤ 1 • µ(E) = 1 • µ(A ∪ B) = µ(A) + µ(B) − µ(A ∩ B) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [14/324] Conséquences • µ(∅) = 0 • µ(Ē) = 1 − µ(E) • A et B sont exclusifs si A ∩ B = ∅ • µ(A ∪ B) = µ(A) + µ(B) si A et B sont exclusifs. ! • µ(∪i Ai ) = i µ(Ai ) si les Ai sont deux à deux exclusifs. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [15/324] Probabilités Conditionnelles • P r(A|B) : probabilité que A se produise sachant que B s’est déjà produit. • Si µ(B) > 0), P r(A|B) = µ(A∩B) µ(B) • On peut généraliser (en supposant que toutes les probabilités soient positives) : µ(∩ni=1 Ai ) = µ(A1 )P r(A2 |A1 )P r(A3 |A1 ∩A2 ) . . . P r(An |A1 ∩A2 ∩. . . An−1 ) • Exemple : D’un lot de 10 pièces dont ma moitié est défectueuse, on préleve sans remise un échantillon de taille 3, quelle est la probabilité que l’échantillon ne comprenne aucune pièce défectueuse ? P (A1 ∩ A2 ∩ A3 ) = 5 43 10 9 8 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [16/324] Indépendance • A et B sont mutuellement indépendants ssi P r(A|B) = µ(A). • Donc, µ(A ∩ B) = P r(B|A)µ(A) = µ(B)µ(A) • La probabilité de l’union de deux événements indépendants est leur somme. • Et la probabilité de l’intersection de deux événements indépendants est leur produit. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [17/324] Théorème de Conditionnement • Théorème 1 Soit B1 , B2 , . . . Bn une partition des événements (deux à deux mutuellement exclusifs et recouvrant l’ensemble des événements), pour tout A on a : ! µ(A) = ni=1 P r(A|Bi )µ(Bi ) • Theorem of Total Probability en Anglais. • Exemple : D’un lot de 10 pièces dont ma moitié est défectueuse, on préleve sans remise un échantillon de taille 3, quelle est la probabilité que la seconde pièce soit bonne ? µ(A2 ) = P r(A2 |A1 )µ(A1 ) + P r(A2 |Ā1 )µ(Ā1 ) = 5 4 5 5 + 10 9 10 9 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [18/324] Formule de Bayes • Théorème 2 (Formule de Bayes) P r(A|B) = P r(B|A) µ(A) µ(B) • Preuve: Par définition, µ(A ∩ B) = P r(B|A)µ(A) Et µ(A ∩ B) = µ(B ∩ A) Donc P r(B|A)µ(A) = P r(A|B)µ(B) • Utilisé en Inférence Statistique (les opinions a-priori doivent être modifiées à la lumière des expériences) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [19/324] Exemple Bayes • Vous utilisez trois types de disques (notés T1, T2 et T3) avec les proportions (0.6, 0.3 et 0.1). Sur la durée d’une mission les probabilités de panne sont respectivement de 0.9, 0.8 et 0.5. Quelle est la probabilité qu’un disque tombé en panne soit de type T1 ? • On note B = { un disque au hasard tombe en panne } et Ak = {un disque au hasard est de type Tk }. • On a P r(A1 |B) = P r(B|A1 ) µ(A1 ) µ(B) et µ(B) = 3 " P r(B|Ai )µ(Ai ) i=1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [20/324] Variable Aléatoire • Une variable aléatoire est une fonction de l’espace des états vers l’espace des réels. • La fonction affecte un réel à chaque état • Si l’image de E est finie ou dénombreble, la variable aléatoire est discrète. On utilise les entiers plutôt que les réels. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [21/324] Fiabilité • Fiabilité R(t) • Soit X la date de la panne du système. • R(t) = P r(X > t) • R(t) est décroissante. • F (t) = 1 − R(t) est la distribution de la v.a. du temps de vie du système. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [22/324] MTTF • Mean Time To Failure: temps moyen avant panne. • M T T F = E[X] • Donc, M T T F = vie du système. # +∞ 0 tf (t)dt où f (t) est la densité de la v.a. temps de • f (t) est la dérivée de F (t). # +∞ • M T T F = 0 R(t)dt M2 ASS-ACSIS 2008, Université de Versailles St Quentin [23/324] Disponibilité Ponctuelle • A(t) = P r(Le système est opérationnel à la date t). • Deux parties : – Pas de panne entre 0 et t. – Une date à la date x (entre 0 et t et une réparation avant t. #t • A(t) = R(t) + 0 A(t − x)dH(x) où H est la convolée de F (distribution du temsp de vie du système) et G (distribution du temps de réparation). • Et donc A(t) ≥ R(t). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [24/324] MTTR • Mean Time To Repair: temps moyen de réparation. • Y : temps de réparation. #t • M T T R = E[Y ] = 0 tg(t)dt où g(t) est la densité de la v.a. Y • g(t) est la dérivée de G. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [25/324] Disponilité Stationnaire • Astst = limt→∞ A(t). • Astst = MT T F M T T F +M T T R • Downtime = (1 − Astst ) ∗ 60 ∗ 24 ∗ 365 en minutes par an. • On parle d’état UP (opérationnels) et DOWN (non opérationnels) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [26/324] Comment évaluer la fiabilité • Mesures – Plus précis, plus cher – Méthodes Statistiques – Faire attention au délai, au coût, et si c’est vraiment possible. • Modèles – Plus complexes, moins chers, moins fiables – Méthodes Combinatoires ou Probabilistes ou Statistiques M2 ASS-ACSIS 2008, Université de Versailles St Quentin [27/324] Modèles • Simulation : Monte Carlo ou événements discret ou horloge • Analytique : Processus Stochastique et en particulier analyse Markovienne des modèles avec représentation explicite des états. • Méthodes statiques ne reposant pas sur l’espace des états : RBD et Arbres de Fautes. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [28/324] RBD: Reliability Block Diagramm • Une représentation graphique du système et de la fiabilité. • Chaque composant est représenté par un bloc. • Sert à déterminer si le système est UP ou DOWN en fonction des états des composants. • Idée intuitive : un bloc peut être vu comme un switch qui est fermé quand le composant est UP et ouvert quand le composant est DOWN. • Il y a une entrée dans le diagramme S et une sortie T . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [29/324] RBD-2 • C’est un modèle reposant sur la logique et non pas sur les états. • Modèle Statique : pas de représentation du temps ni de l’ordre entre des événements successifs. • Hypothèse d’Indépendence des pannes des différents composants. • Pas de pannes arrivant conjointement ou de pannes provoquées par la panne d’un autre composant. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [30/324] RBD-3 • Le système est UP si il y a au moins un chemin passant par des éléments UP et reliant S à T . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [31/324] Logique • Le comportement du système par rapport à la panne est modélisé par les connexions entre blocs. • Si tous les composants sont nécéssaires, les modéliser en série • Si un seul des composants est nécéssaire, les modéliser en parallèle. • Si il en faut au moins K parmi N , utiliser la structure ”K out of N” M2 ASS-ACSIS 2008, Université de Versailles St Quentin [32/324] Blocs en Série • n composants indépendants en série. • Ei le composant i fonctionne. • Rs = µ(E1 ∩ E2 ∩ . . . ∩ En ) • A cause de l’indépendance : µ(E1 ∩ E2 ∩ . . . ∩ En ) = n $ µ(Ei ) i=1 • En notant Ri = µ(Ei ), on obtient : Rs = n $ Ri i=1 • On remarque que Rs < min(Ri ). Le système est moins fiable que sa composante la moins fiable. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [33/324] Blocs en Parallèle • n composants indépendants en prallèle. • Ei le composant i fonctionne. • Rs = µ(E1 ∪ E2 ∪ . . . ∪ En ) • Le système est en panne si tous les composants sont en panne: 1 − Rp = n $ (1 − Ri ) i=1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [34/324] Systèmes Série-Parallèles • Décomposition récursive : un système série-parallèle (SP) est soit : – un bloc isolé – plusieurs sous-systèmes SP en série – plusieurs sous-systèmes SP en parallèle • Utilise la décomposition récursive de la construction pour obtenir la fiabilité. • Exemple simple : n étages en série, chaque étage composé de m composants en parallèle tous identiques: Rsp = (1 − (1 − R)m )n M2 ASS-ACSIS 2008, Université de Versailles St Quentin [35/324] Example : Station de Travail/Serveur de Fichiers • Un serveur de fichiers, • Deux stations de Travail identiques • Un réseau pour les connecter. On suppose que le réseau est fiable. • Le système est opérationnel si le serveur de fichiers est opérationnel et au moins une des deux stations de travail est opérationnelle. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [36/324] Représentation de l’exemple M2 ASS-ACSIS 2008, Université de Versailles St Quentin [37/324] Etude de la fiabilité de l’exemple • Rw fiabilité d’une station de travail • Rf fiabilité du serveur de fichiers • Rf sw fiabilité du système Rf sw = (1 − (1 − Rw )2 )Rw M2 ASS-ACSIS 2008, Université de Versailles St Quentin [38/324] Systèmes NON Série-Parallèles • Théorème 3 Un graphe est SP ssi il ne contient ni structure N ni structure W. • Si on ne peut plus utiliser la décomposition SP, on peut enumérer et construire la table Booléenne. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [39/324] Exemple non SP: réseau avec bridge M2 ASS-ACSIS 2008, Université de Versailles St Quentin [40/324] Utilisation de la table Booléenne • Examiner tous les cas UP et DOWN pour toutes les composantes • Dans chaque cas, évaluer si le système est UP ou DOWN • Calculer les probabilités de chaque cas (facile, c’est le produit des probas élémentaires à cause de l’hypothèse d’indépendance). • Exemple : Si E1 = E2 = E4 = 1 et E3 = E5 = 0 le système est UP et la probabilité de cette configuration est R1 R2 R4 (1 − R3 )(1 − R5 ). • Sommer les probabilités que le système soit UP M2 ASS-ACSIS 2008, Université de Versailles St Quentin [41/324] Première partie de la table de l’exemple M2 ASS-ACSIS 2008, Université de Versailles St Quentin [42/324] Seconde partie de la table de l’exemple M2 ASS-ACSIS 2008, Université de Versailles St Quentin [43/324] Résultat pour l’exemple • En agrégeant la table précédente et en factorisant on trouve que: Rbridge = R1 R2 + R1 (1 − R2 )(R4 R5 + R3 (1 − R4 )R5 ) + (1 − R1 )R4 (R5 + (1 − R5 )R2 R3 ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [44/324] Conditionnement et Factorisation • Mais il faut considérer les 2n configurations si il y a n objets. • On conditionne sur le l’état d’un composant (ou de plusieurs composantes) pour se ramener à des structures déjà étudiées ou faciles (SP) • Sur l’exemple du bridge, on conditionne sur l’état du bloc 3. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [45/324] Conditionnement sur 3 UP M2 ASS-ACSIS 2008, Université de Versailles St Quentin [46/324] Conditionnement sur 3 DOWN M2 ASS-ACSIS 2008, Université de Versailles St Quentin [47/324] Conditionnement • Si le composant 3 est DOWN, on obtient un modèle SP • Si le composant 3 est UP, on obtient également un modèle SP • On applique le théorème de conditionnement et les formules pour les modèles série-parallèles. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [48/324] Conditionnement • R3down = 1 − (1 − R1 R2 )(1 − R4 R5 ) • R3up = (1 − (1 − R1 )(1 − R2 ))(1 − (1 − R4 )(1 − R5 )) • On applique le théorème de conditionnement Rbridge = R3 R3up + (1 − R3 )R3down M2 ASS-ACSIS 2008, Université de Versailles St Quentin [49/324] Composant K parmi N • Système consistant en N composants indépendants. • Le système est UP quand K ou plus de ces composants sont UP. • Cas Identique : tous les composants ont le même taux de panne et de réparation. • Cas Non Identique : Les composants ont des taux de panne et de réparation distincts par composant. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [50/324] Avec sous-composants identiques • Soit R la fiabilité d’un composant. • On aditionne les probabilités de toutes les configurations avec au moins K composantes opérationnelles. R(K, N ) = N " Rj (1 − R)N −j j=K N! j!(N − j)! • Somme partielle d’une distribution binomiale. • Algorithme classique (attention aux approximations numériques) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [51/324] Récurrence dans le cas général • Système dont les composants sont distincts. La fiabilité de la composante i est Ri . • 3 remarques simples : – Un système avec K = 0 (sans contraintes) est toujours UP. R(0, N ) = 1 – Un système trop contraint est toujours DOWN. R(j, N ) = 0 si j > N – En conditionnant sur l’état de la composante N : R(i, N ) = (1 − RN )R(i, N − 1) + RN R(i − 1, N − 1) • Algorithme récursif. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [52/324] Arbres de Fautes • Une représentation graphique de la combinaison d’événements qui peut provoquer l’occurence d’une panne. • Modèle combinatoire (i.e. ne representant ni le temps, ni les états) • Objets élémentaires: feuilles, noeud interne d’un arbre, racine. • Feuille : composant du système • Noeud interne : porte logique • racine : un boolean qui porte l’état du système. Il passe à TRUE quand le système est en PANNE. . . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [53/324] Arbres de Fautes -2 • Portes: – OR : pour connecter des sous-systèmes en série – AND : pour connecter des sous-systèmes en parallèle – Porte (N − K + 1) of N : pour connecter des composants qui sont dans un système K parmi N • La panne d’un composant met à TRUE l’entrée de la porte où il est connecté. • Dans les autres cas, elle est à FALSE. • Evaluation de l’arbre. . . • Si la racine de l’arbre est à TRUE, le système est en panne. • Fiabilité : Probabilité que la racine soit FALSE. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [54/324] Arbres de Fautes -3 • On peut ajouter de nombreuses autres portes : NOT, XOR, Priority AND, des dépendances fonctionnelles. • Deux types de Fault Trees: avec ou sans événements répétés. • La complexité de la résolution est fonction de la (non) répétition des événements. • Répétition : formellement ce n’est plus un arbre si on regroupe et ce n’est plus indépendent si on sépare. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [55/324] Exemple sans répétition: alternate routing • Un réseau avec 5 noeuds : A, B, C, D, E et 10 liens. • Le système est UP lorsque A est connecté à B et C est connecté à D par une route directe : AB, et CD ou une route supplémentaire : CED, ACB, ADB, AEB. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [56/324] Arbre de Faute pour le routage • Panne de liens. Routeurs Fiables. • Feuilles : liens du réseau. • Portes : de type OR ou AND. • Pas de répétition à cause des chemins considérés. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [57/324] Arbre de Faute pour le routage M2 ASS-ACSIS 2008, Université de Versailles St Quentin [58/324] Analyse des portes simples • Panne sur une porte AND à deux entrées a et b : (1 − Rs ) = (1 − Ra )(1 − Rb ) • Porte sur une porte OR à deux entrées a et b : (1 − Rs ) = (1 − Ra ) + (1 − Rb ) − (1 − Ra )(1 − Rb ) • Car il faut ne pas compter deux fois le cas ou les composants a et b sont en panne. • Cette équation est équivalente à Rs = Ra Rb . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [59/324] Analyse de l’arbre de Faute pour le routage • Ce qui donne pour le modèle du routage : R = R1 R2 où R1 = 1 − (1 − Rab )(1 − Rac Rcb )(1 − Rad Rdb )(1 − Rae Reb ) et R2 = 1 − (1 − Rcd )(1 − Rce Red ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [60/324] Arbre de Fautes avec répétition • Des feuilles sont dupliquées. • Exemple : 2 processeurs p1 et p2, deux mémoires locales lm1 et lm2 et une mémoire globale gm. • Le système est UP si il existe au moins un processeur UP connecté à une mémoire (locale ou globale) UP. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [61/324] Arbre de Fautes avec répétition M2 ASS-ACSIS 2008, Université de Versailles St Quentin [62/324] Analyse Exemple • On conditionne sur l’état de gm et le théorème de conditionnement. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [63/324] Formule Logique • On peut aussi écrire la panne comme une formule logique à partir de l’arbre de fautes. • Dans l’exemple précédent, on note P 1 la proposition ”le processeur p1 fonctionne”, (notations identiques pour les autres propositions) • On obtient : ¯ 1GM ¯ )(P¯2 + LM ¯ 2GM ¯ ) P anne = (P¯1 + LM • après développement : ¯ 1GM ¯ + P¯1LM ¯ 2GM ¯ + LM ¯ 1LM ¯ 2GM ¯ P anne = P¯1P¯2 + P¯2LM M2 ASS-ACSIS 2008, Université de Versailles St Quentin [64/324] Travail sur la formule • On a une union de termes (ie la somme) • Mais les termes obtenus ne sont pas disjoints. • Avec des termes disjoints, on pourra faire la somme des probabilités. Si A et B disjoints : µ(A ∪ B) = µ(A) + µ(B) • Transformer la formule pour obtenir des termes disjoints. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [65/324] Algorithmes SDP • Sum of Disjoint Products • Transforme une formule pour obtenir une somme de termes disjoints. • Dans l’exemple précédent on obtient : ¯ 2GM ¯ +P 1P¯2LM ¯ 1GM ¯ +P 1P 2LM ¯ 1LM ¯ 2GM ¯ P anne = P¯1P¯2+P¯1P 2LM A partir de ¯ 1GM ¯ + P¯1LM ¯ 2GM ¯ + LM ¯ 1LM ¯ 2GM ¯ P anne = P¯1P¯2 + P¯2LM • Pas d’algorithme optimal • Plusieurs heuristiques reposant sur des coupes minimales. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [66/324] Analyse des Arbres de Fautes • Si il n’y a pas de répétition dans l’arbre, on peut le transformer en un RBD. • Et employer les algorithmes du RBD pour calculer la fiabilité • Si il y a répétition dans l’arbre : – Factorisation – Algorithme SDP (sum of disjoint products) – Structure de données BDD pour gérer l’explosion combinatoire M2 ASS-ACSIS 2008, Université de Versailles St Quentin [67/324] Binary Decision Diagram (BDD-1) • un BDD est une structure de données pour coder une fonction Booléenne, ou en plus abstrait, un ensemble. • Une fonction est représentée par un graphe orienté acyclique avec une racine. Ce graphe contient des noeuds de décision et deux feuilles étiquetées 0 et 1. • Chaque noeud de décision a deux fils (haut associé 1 et bas 0). • Un chemin de la racine la feuille 1 représente une affectation partielle ds variables pour que la fonction soit vraie. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [68/324] Exemple BDD ¯ X2 ¯ X3 ¯ + X1X2 + X2X3 Fonction f (X1, X2, X3) = X1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [69/324] BDD-2 • Un BDD est ordonné (ordered) ssi les variables sont dans le même ordre sur tous les chemins • Un BDD est réduit (reduced) ssi – Tous les sous graphes isomorphes ont été fusionnés – Tous les noeuds dont les deux fils sont isomorphes ont été supprimés. • En général, BDD signifie Reduced Ordered Binary Decision Diagram. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [70/324] BDD-3 • La transformation d’une formule en BDD est simple et elle ne nécessite pas la construction de l’arbre de Shannon (l’arbre complet) • On peut construire de façon compositionnelle • La taille du BDD est très sensible à l’ordre des n variables • La même formule peut être codée par un BDD linéaire en n ou exponentiel en n selon l’ordre des variables retenu. • L’optimisation de la taille en jouant sur l’ordre est un pb dur mais il y a des heuristiques • Le AND ou le OR de 2 BDD a une complexité de l’ordre du produit des tailles. • Le NOT d’un BDD a une complexité en la taille. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [71/324] BDD-4 • Algorithmes récursifs • NOT – N OT (0) = BDD(1) – N OT (1) = BDD(0) – N OT (x.F1 + −x.F0 ) = BDD(x, N OT (F1 ), N OT (F0 )) • OP (OR ou AND) – (x.F1 + −x.F0 )OP (x.G1 + −x.G0 ) = (x.(F1 OP G1 ) + −x.(F0 OP G0 )) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [72/324] Exemple OR BDD - Récursion M2 ASS-ACSIS 2008, Université de Versailles St Quentin [73/324] M2 ASS-ACSIS 2008, Université de Versailles St Quentin [74/324] Complexité de l’Analyse • Arbre de Fautes sans répétition : résolution en temps linéaire. • Arbre de Fautes avec répétition : résolution en temps exponentiel. • En pratique : avec BDD et Factorisation, les outils logiciels peuvent résoudre des problèmes avec des centaines de composants. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [75/324] Un Second Rappel de Probabilités • Prendre en compte le temps. • Processus Stochastique. • Nature du temps, de l’espace. • Bernoulli, Géométrique, Loi de Poisson • Processus de Poisson, Loi exponentielle • Markov M2 ASS-ACSIS 2008, Université de Versailles St Quentin [76/324] Prendre en compte le temps • pour prendre en compte l’ordre des événements • Exemple : voiture + roue de secours + téléphone portable. • Panne Grave : roue en panne + roue de secours en panne et téléphone en panne avant que les roues ne soient en panne (sinon on appelle le dépanneur). • pour prendre en compte les dépendances temporelles (taux de panne variant avec le temps). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [77/324] Bathtub Curve • DFR : decreasing failure rate, composant en début de vie (pb de test) • CFR : constant failure rate, composant à l’état stationnaire • IFR : increasing failure rate, composant veillissant M2 ASS-ACSIS 2008, Université de Versailles St Quentin [78/324] DFR • Causée par la non détection de défauts hardware ou software. • Ne pas utiliser des modèles avec taux de panne constant car on trouverait des résultats peu significatifs. • Utiliser loi ayant la propriété DFR (par exemple Weibull). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [79/324] CFR • Taux de panne constant (ou presque) • Pannes provenant de l’environnement exterieur • Processus de Poisson pour arrivées de panne, et loi exponentielle pour délai entre pannes successives. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [80/324] IFR • Effet de veillissement sur des pièces mécaniques • pb thermiques pour l’électronique • On peut aussi employer la loi de Weibull pour modéliser un phénomène IFR. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [81/324] Processus Stochastique • Evolution d’une variable aléatoire avec le temps • Espace : – discret (fini ou infini) : une population – continu : des coordonnées • Temps: – discret : horloge – continu : temps physique – événement discret : M2 ASS-ACSIS 2008, Université de Versailles St Quentin [82/324] Exemples • Temps discret, Espace discret : la fortune d’un joueur • Temps discret, Espace continu : une hauteur d’eau à un barrage, chaque jour • Temps continu, Espace discret : le nombre de particules au cours d’une réaction • Temps continu, Espace continu : les positions de corps dans une intéraction gravitationnelle • Evénement discret, Espace discret : le nombre de paquet dans un routeur • Evénement discret, Espace continu : prix d’une action. • M2 ASS-ACSIS 2008, Université de Versailles St Quentin [83/324] Trajectoire Temps Discret Espace Discret M2 ASS-ACSIS 2008, Université de Versailles St Quentin [84/324] Trajectoire Temps Discret Espace Continu M2 ASS-ACSIS 2008, Université de Versailles St Quentin [85/324] Trajectoire Evenement Discret Espace Discret M2 ASS-ACSIS 2008, Université de Versailles St Quentin [86/324] Trajectoire Evenement Discret Espace Continu M2 ASS-ACSIS 2008, Université de Versailles St Quentin [87/324] Limitations • Temps Discret, Evénement discret (bcp) • Quelques processus simples en temps continu (pour générer des événements) • Espace Discret M2 ASS-ACSIS 2008, Université de Versailles St Quentin [88/324] Temps Discret - Bernoulli • Bloc de base pour la construction des v.a. discretes et des processus. • 2 résultats possibles : 0 ou 1 • µ(1) = p • µ(0) = 1 − p M2 ASS-ACSIS 2008, Université de Versailles St Quentin [89/324] Loi Binomiale • B(n, p) : La somme de n v.a. indéprendantes Bernoulli de paramètres p. • Distribution de Probabilités : µ(k) = pk (1 − p)n−k n! k!(n − k)! • Pour modéliser des systèmes avec n composants indépendants ou n essais pour effectuer une tâche. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [90/324] Aspects Calculatoires • L’algorithme naif est numériquement instable • Si n est petit on peut employer une formule de récurence µ(k) = µ(k − 1) p n−k+1 1−p k • Si n est grand, on peut approximer par une loi Normale. • La distribution de probabilité a trois formes M2 ASS-ACSIS 2008, Université de Versailles St Quentin [91/324] Distribution d’une Binomiale 8 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [92/324] Distribution Géométrique • Le nombre d’essais (incluant le dernier) avant une réussite • L’espace des états est infini dénombrable • Soit p la probabilité de succès, la distribution est : µ(n) = p(1 − p)n−1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [93/324] Distribution Géométrique et Propriété Sans Mémoire • La distribution géométrique a la propriété Sans Mémoire. • Ce qui signifie que le futur est indépdendent du passé. • Précisement, après n échecs, le nombre d’essais avant réusssite a la même distribution que la loi initiale. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [94/324] Preuve • X date du premier succès, q = 1 − p, j = n + i. • n premiers essais: echecs. P r(X = j > n|X > n) = P r(X = n + i|X > n) = P r(X = n + i ∩ X > n)/µ(X > n) = P r(X = n + i)/µ(X > n) = pq n+i−1 /(1 − (1 − q n )) = pq i−1 = µ(Z = i) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [95/324] Loi de Poisson • La v.a. représente le nombre d’événements (par exemple des pannes) qui se produisent dans l’intervalle [0, t[. • Un seul paramètre : le taux des arrivées, λ. • Distribution limite d’une binomiale renormalisée lorsque le temps tend vers 0 • Distribution : −λt (λt) µ(k) = e k k! M2 ASS-ACSIS 2008, Université de Versailles St Quentin [96/324] Variables aléatoires continues • Pour représenter le temps ou les états. • Délai entre deux pannes ou délai pour réparer une panne. • Distribution exponentielle (propriété sans mémoire, processus de Poisson) • Distribution de Weibull et propriétés IFR, CFR, DFR. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [97/324] Rappels • On utilise la notion de distribution FX (t) = µ(X ≤ t). • Si FX (t) est continue, alors X est une v.a. continue. • Si FX (t) est en escalier, alors X est une v.a. discrete. • 0 ≤ FX (t) ≤ 1 • FX (t) est croissant. • FX (−∞) = 0 et FX (∞) = 1. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [98/324] Loi Exponentielle • Une variable aléatoire positive avedc la propriété sans mémoire. • Liée au processus de Poisson, la loi de Poisson et aux chaines de Markov. • F (t) = 1 − exp(−λt) et h(t) = λ. • A cause de la propriété sans mémoire, elle modélise : – un délai avant panne, un délai de réparation – des durées entre appels, sessions, – des temps de service (mais les tailles de paquets ne sont jamais aléatoires). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [99/324] Attention • C’est une hypotèse. . . • Il faudrait faire des mesures pour vérifier. • Et chercher des distributions plus réalistes en les paramétrant par plus d’un moment (un seul parametre pour exponentiel, deux pour Weibull). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [100/324] Fiabilité et Propriété Sans Mémoire • Cela signifie que la distribution du temps résideul de vie ne dépent pas du temps où le composant est en opération. • Fiabilité: le composant tombe en panne après une panne extérieure soudaine et non à la suite d’une détérioration graduelle. • M2 ASS-ACSIS 2008, Université de Versailles St Quentin [101/324] Taux de Panne et Exponentielle • h(t) est le taux de panne instantané (le nombre de pannes par unité de temps) • h(t) = f (t) R(t) • L’exponentielle est la seule v.a. continue de type CFR. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [102/324] Loi de Weibull • Peut modéliser des phénomènes CFR = 1, IFR > 1et DFR < 1 selon les paramètres. • est le parametre de forme (shape) et est celui d’echelle (scale). • F (t) = 1 − exp(−λtα ), h(t) = λαtα−1 . • Fiabilité : R(t) = exp(−λtα ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [103/324] Quelques exemples • Cold Spare • Warm Spare • Hot Spare • Système triple avec vote M2 ASS-ACSIS 2008, Université de Versailles St Quentin [104/324] Cold Spare • Un seul composant est actif • L’autre (le spare) est inactif • Le spare ne tombe pas en panne quand il est inactif • La durée de vie est exponentielle de λ • Détection de panne et changement pour le spare : immédiat • La durée de vie totale est la somme de deux exponentielles de même taux: Erlang 2 R(t) = 1 + λt)exp(−λt) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [105/324] Warm Spare • Un composant est actif • L’autre (le spare) est en attente • Le spare peut tomber en panne quand il est en attente • La durée de vie est exponentielle de λ pour un composant actif • La durée de vie est exponentielle de α pour un composant en attente • Détection de panne et changement pour le spare : immédiat M2 ASS-ACSIS 2008, Université de Versailles St Quentin [106/324] Warm Spare Analysis • Durée de vie totale : la somme de deux exponentielles mais qui ne sont pas de même taux. • Le premier événement est la panne du composant principal ou du spare • La durée avant cet événement est le minimum de l’exponentielle de λ et de l’exponentielle de taux α, ce qui est une exponentielle de taux λ + α. • La durée de vie pour le composant survivant est une exponentielle de taux λ (propriété sans mémoire). • Durée de vie totale : la somme de exponentielle de taux λ + α et de l’exponentielle de taux λ. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [107/324] Hot Spare • Les deux composants sont actifs. • La durée de vie est exponentielle de λ pour un composant actif • Détection de panne et changement pour le spare : immédiat • Durée de vie totale : la somme de deux exponentielles mais qui ne sont pas de même taux. • Le premier événement est la panne du composant principal ou du spare • La durée avant cet événement est le minimum de l’exponentielle de λ et de l’exponentielle de taux λ, ce qui est une exponentielle de taux 2λ. • La durée de vie pour le composant survivant est une exponentielle de taux λ (propriété sans mémoire). • Durée de vie totale : la somme de exponentielle de taux 2λ et de l’exponentielle de taux λ. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [108/324] Système triple avec voteur: TMR • 3 composants et un voteur • Le voteur ne tombe pas en panne et ne fait pas d’erreurs. • C’est un système 2 parmi 3. • Soit RT M R sa fiabilité et R la fiabilité d’un composant. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [109/324] Analyse • On obtient d’abord que : RT M R = 3R2 (t) − 2R3 (t) • Si on suppose que la fiabilité d’un composant est exponentielle de taux λ, Rt = exp(−λt) • Finalement, RT M R (t) = 3exp(−2λt) − 2exp(−3λt) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [110/324] Espérance-MTTF • Rappel : E[X] = #∞ O tfX (t)dt. • L’espérance peut ne pas exister (voir les lois puissances) • L’espérance est linéaire E[X + Y ] = E[X] + E[Y ] • Mais pour le produit il faut l’indépendance. Si X et Y sont indépendants, alors : E[X ∗ Y ] = E[X] ∗ E[Y ] M2 ASS-ACSIS 2008, Université de Versailles St Quentin [111/324] Quelques résultats sur le MTTF • Le MTTF est l’intégrale de la fiabilité • Le MTTF d’un composant dont la durée de vie est exponentielle de taux λ est 1/λ. • Si le composant a une durée de vie hypoexponentielle de taux λ1 , λ2 ,. . . λn , le MTTF est la somme des 1/λi . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [112/324] MTTF du Système triple avec vote • On suppose que les composants ont une durée de vie exponentielle. % ∞ % ∞ M T T FT M R = RT M R (t)dt = 3exp(−2λt) − 2exp(−3λt)dt 0 0 Donc, M T T FT M R = • On remqrque que M T T FT M R < 1 λ 3 2 5 − = 2λ 3λ 6λ qui est le MTTF d’un composant. • Donc le MTTF du TMR est 16% plus petit que le MTTF d’un composant mais sa fiabilité est supérieure pour une mission de courte durée. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [113/324] MTTF des autres exemples • En utilisant la linéarité de l’espérance et l’espérance d’une exponentielle, • Cold Spare M T T FColdSpare = 2 λ • Warm Spare M T T FW armSpare = 1 1 + λ λ+α • Hot Spare M T T FHotSpare = 3 2λ M2 ASS-ACSIS 2008, Université de Versailles St Quentin [114/324] Processus de Poisson • Un processus ponctuel tel que le nombre d’événements entre 0 et t suit une loi de Poisson. • La différence entre deux point successifs suit une loi exponenetielle de même taux. • Pour représenter – apparition de pannes – arrivées de paquets (réseau) – arrivées de sessions (serveur Web) – arrivées de jobs (OS) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [115/324] Propriétés du processus de Poisson • La superposition de deux processus de Poisson indépendents est un processus de Poisson. Le taux global est la somme des taux. • Le splitting d’un processus de Poisson (de taux λ) selon un processus de Bernoulli indépdendent (de taux p) crèe deux processus de Poisson indépendents de taux λp et λ(1 − p). • PASTA: Poisson Arrivals See Time Average. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [116/324] Chaı̂nes de Markov en temps discret • On travaille sur un processus à valeur dans un espace d’états dénombrable. • Définition 3 (Markov) Un processus Xt est Markovien si et seulement si P r(Xt+1 = j|xt = it , xt−1 = it−1 . . . , x0 = i0 ) = P r(Xt+1 = j|Xt = it ) (1) • On note P r(Xt+1 = j|Xt = it ) = Pi,j (t). • Définition 4 (Chaı̂ne homogène) Une chaine de Markov est homogène si et seulement si Pi,j (t) est indépendant de la date t. Cette probalilité, noté Pi,j , est la probabilité de transition de i vers j. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [117/324] DTMC, Matrice Stochastique Par construction, la matrice P vérifie les propriétés suivantes : • tous les éléments de P sont positifs ou nuls ! • pour tout i, j Pi,j = 1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [118/324] Trajectoire • Supposons qu’à l’instant 0, le processus soit connu ( valeur de la probabilité à l’instant 0 P r(X0 = i) ∀i) • Appliquons le théorème de conditionnement P r(X1 = j) = " " Pi,j P r(X0 = i) (2) π(k) = π(0)P k (3) P r(X1 = j|X0 = i)P r(X0 = i) = i i • Soit π(t) le vecteur des probabilités P r(Xt = i). π(1) = π(0)P et Ce qui donne un algorithme simple de calcul de la distribution à la date k. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [119/324] Problèmes d’absorbtion, de transitoires et de stationnaire • Existence d’une limite au vecteur π(t) lorsque le temps t temps vers l’infini ? • Que vaut π(t) à une date quelconque ? • La chaı̂ne est elle absorbée ? • La chaı̂ne revient elle toujours dans certains états ? • Etablir une classification des états et des chaı̂nes. • Tenir compte de la taille M2 ASS-ACSIS 2008, Université de Versailles St Quentin [120/324] Premier Exemple : probabilités limites 0.1 0.4 0.5 0 0 0.2 0.3 0.5 0.3 0.1 0.2 0.4 0.1 0 0 0.9 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [121/324] Convergence des puissances M2 ASS-ACSIS 2008, Université de Versailles St Quentin [122/324] Deuxième exemple: être absorbé en 4 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [123/324] Classification des Etats On définit pour chaque état quatre quantités liées aux dates de retour à cet état. • fjn est la probabilité de l’événement ”(le premier retour en j à lieu en n transitions)”. !∞ • fj est la probabilité de retour en j : fj = n=1 fjn !∞ • Mj est le temps moyen de retour en j : Mj = n=1 n × fjn • γ est le pgcd des valeurs de n telles que fjn est non nulle. γ est la période de retour. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [124/324] Transience ou Récurence • Si fj < 1 l’état est transitoire. • Si fj = 1 l’état est récurent : – si Mj = ∞, l’état est recurent nul. – si Mj < ∞, l’état est recurent non nul. De plus, – si γ > 1, l’état est périodique de période γ. – si γ = 1, l’état est apériodique. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [125/324] Classification des chaines • Nécessaire d’examiner leur structure. • Définition 5 Un sous ensemble A d’états est fermé si et seulement si il n’y a pas de transition entre cet ensemble et son complémentaire. ! ! i∈A j∈A Pi,j = 0 • Définition 6 (Etat absorbant) un état absorbant est un sous ensemble fermé ne comprenant qu’un seul élément. • Définition 7 Une chaine est irréductible si et seulement si le graphe orienté de la chaine est fortement connexe. C’est à dire si il existe un suite de transitions menant de i à j pour tous les états i et j. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [126/324] • Pour analyser une chaine réductible, il faut la décomposer en composantes fortement connexes. • Théorème 4 Soit une chaine de Markov irréductible, tous les états sont: – tous transitoires – ou tous récurents non nuls – ou tous récurents nuls De plus, si un état est périodique, alors tous les états le sont avec la même période. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [127/324] Existence d’une limite Théorème 5 Soit une chaine de Markov, irréductible et apériodique, alors la distribution limite π = limt→∞ π(t) existe et est indépendante de la distribution initiale π(0) (on dit qu’elle est ergodique). De plus, • soit tous les états sont transitoires ou récurents nuls et dans ce cas π(j) = 0, pour tout j. • soit tous les états sont récurents non nuls et π est solution unique des deux équations : π = πP (4) πe = 1 où e est un vecteur colonne dont tous les éléments sont 1. De plus, on a π(j) = 1/Mj M2 ASS-ACSIS 2008, Université de Versailles St Quentin [128/324] Chaı̂ne Finie • Plus simple: pas de récurrence nulle. • Théorème 6 Toute chaine finie,irréductible et apériodique est ergodique. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [129/324] Résoudre le stationnaire • Analytiquement (voir plus loin) • Numériquement (pourquoi pas ?) • Simulation (en faisant très attention) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [130/324] Résoudre états absorbants • Probabilité d’être absorbée sachant que l’on commence en i • Temps moyen avant d’être absorbée sachant que l’on commence en i • Hypothèse : il y a plusieurs points absorbants et pas de classes récurentes (pretraitement pour fusionner chaque classe récurente en un sommet). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [131/324] Pb des points absorbants • On suppose que l’espace des états est partitionné: les états absorbants sont en tête. Id 0 • La matrice P peut être décomposée en bloc R Q Id 0 • On peut prouver que P 2 = 2 R + QR Q Id 0 • Et que, pour tout n, P n = !n−1 ( j=0 Qj )R Qn M2 ASS-ACSIS 2008, Université de Versailles St Quentin [132/324] Matrice Fondamentale • P n est la matrice de transition pour n sauts successifs. • limn→∞ P n [i, j] est la probabilité d’être en j à l’infini sachant que l’on a débuté en i. • La matrice M = (Id − Q)−1 existe si Q ne contient pas de classe ! j récurrente et elle vaut ∞ j=0 Q . • Et donc, limn→∞ P n = Id MR • M est la matrice fondamentale. 0 0 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [133/324] Probabilités d’être absorbé • L’entrée [i, j] de la matrice produit M ∗ R donne la probabilité d’être absorbé en j sachant que le point initial est i (point non absorbant). • Si πO est la distribution initiale la probabilité d’être absorbé en j s’obtient par conditionnement sur l’état initial µ(absorbe en j) = " (M R)[i, j]π0 (i) i • Si il y a un seul point, la proba est 1 (inutile de faire des calculs). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [134/324] Temps Moyen avant d’être absorbé • Soit Xi,j le nombre de visite achant que l’on a débuté en i avant d’être absorbé. • On calcule dans un premier temps E[Xi,j ]. • Le temps moyen avant d’être absorbé sachant que l’on a débuté en i ! est alors : j E[Xi,j ]. • Le temps moyen avant d’être absorbé sachant la distribution initiale π0 ! ! est alors : i j π0 (i)E[Xi,j ]. • On regoupe tous les points d’absorbtion en un seul (de numéro 1). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [135/324] E[Xi,j ] • Théorème 7 E[Xi,j ] = M (i, j) • On retouve la matrice fondamentale. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [136/324] Preuve • Posons δi,j le symbole de Kronecker, • En conditionnant sur la première étape on a δ avec proba P (i, 1) i,j Xi,j = Xk,j + δi,j avec proba P (i, k) • En passant aux espérances: E[Xi,j ] = δi,j P (i, 1) + " (E[Xk,j ] + δi,j )P (i, k) k>1 • Apres regroupement: E[Xi,j ] = δi,j + " E[Xk,j ]P (i, k) k>1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [137/324] Preuve - suite et fin • Posons E[Xi,j ] = Z[i, j]. • En passant à une formulation matricielle : Z = I + QZ • Et donc, Z = (I − Q)−1 = M M2 ASS-ACSIS 2008, Université de Versailles St Quentin [138/324] Temps Continu - CTMC • On construit et on analyse de façon similaire des processus de Markov en temps continu. • Les délais entre transition sont des exponentielles, les différentes transitions sont rassemblées dans une matrice génératuer Q • On peut se ramener à la chaine des sauts pour étudier les propriétés d’existence. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [139/324] Propriétés Par construction, la matrice du générateur Q vérifie les propriétés suivantes : • tous les éléments de Q, sauf ceux de la diagonale, sont positifs ou nuls ! • pour tout i, j Qi,j = 0 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [140/324] Equilibre Stationnaire • La distribution d’équilibre est solution de πQ = 0 et πe = 1 • e est un vecteur plein de 1 (notation classique) • On n’étudiera pas les distributions transitoires (équations différentielles) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [141/324] Flux Stationnaire • Considérons l’équation d’équilibre sous forme matricielle: πQ = 0 • En développant pour un i quelconque, on a: " π(j)Q(j, i) = 0 j • Séparons la somme: " π(j)Q(j, i) = −π(i)Q(i, i) j&=i • Mais: Q(i, i) = − " Q(i, k) k&=i M2 ASS-ACSIS 2008, Université de Versailles St Quentin [142/324] • Donc: " j&=i π(j)Q(j, i) = " π(i)Q(i, k) k&=i • Interprétation en terme de flux: tout ce qui permet de sortir de i (partie droite) est égal à tout ce qui permet de rentrer en i. • Interprétation simple et plus facile à utiliser M2 ASS-ACSIS 2008, Université de Versailles St Quentin [143/324] Analyse • Pour le problème stationnaire on doit résoudre πQ = 0. • Pour le problème stationnaire on doit résoudre π(t)Q = π(0). ∂π ∂t connaissant • pour les temps avant absorption on doit résoudre : M2 ASS-ACSIS 2008, Université de Versailles St Quentin [144/324] Modèle de Disponibilité à deux états • Q(up, down) = α, Q(up, up) = −α, Q(down, down) = −β, Q(down, up) = β, • α est le taux de panne, β le taux de réparation. • Stationnaire : résoudre πQ = 0 • 2 inconnues, 2 équations, mais une seule indépendante. • On rajoute π(up) + π(down) = 1. M2 ASS-ACSIS 2008, Université de Versailles St Quentin • Donc π(up) = [145/324] β α+β • Et la fiabilité assymptotique vaut π(up). • On a aussi π(down) = α α+β M2 ASS-ACSIS 2008, Université de Versailles St Quentin [146/324] Transitoire • On doit maintenant résoudre π(t)Q = • ∂πU P ∂t ∂π ∂t sachant πU P (0) = 1. = βπDOW N (t) − απU P (t) • Mais on a pour tout t, πDOW N (t) = 1 − πU P (t). • Ce qui donne l’équation (solution connue) : ∂πU P = β − (α + β)πU P (t) ∂t • Et donc, πU P (t) = β exp(−(α + β)t) − α+β α+β M2 ASS-ACSIS 2008, Université de Versailles St Quentin [147/324] Système à deux composants • On suppose maintenant que l’on a ajouté un second composant redondant. • Les pannes sont exponentielles (taux α) et indépdendantes. • Les réparations sont exponentielles et indépendentes. Il y a un réparateur et le taux de réparation est β. • Le systme est DOWN quand tous les composants sont DOWN. • On ne peut réparer qu’un seul composant à la fois. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [148/324] Modèle • Etats : nombre de composants en activité: 0, 1, 2. • Transitions : – 2 vers 1 : taux 2α – 1 vers 0 : taux α – 0 vers 1 : taux β – 1 vers 2 : taux β M2 ASS-ACSIS 2008, Université de Versailles St Quentin [149/324] Equation Stationnaire 2απ(2) = βπ(1) (α + β)π(1) = 2απ(2) + βπ(0) απ(1) = βπ(0) 1 = π(0) + π(1) + π(2) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [150/324] Résolution • Apres substitution on a : π(1) = β π(0) α π(2) = β π(1) 2α • Donc π(0)(1 + β β2 + 2) = 1 α 2α • Et la disponibilité stationnaire vaut 1 − π(0). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [151/324] Processus de Naissance et de Mort • Définition 8 Une chaı̂ne de Markov est un processus de Naissance et de Mort si et seulement si, pour tout état n, les seules transitions possibles amènent aux états n − 1 et n + 1, si ces états existent. • La transition de l’état n à l’état n + 1 est une Naissance. • La transition de l’état n à l’état n − 1 est une Mort. • λn (resp. µn ) est le taux de Naissance (resp. de Mort) à l’état n. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [152/324] Equilibre Stationnaire • Ecrivons l’équation d’équilibre stationnaire pour Xt : π(n)[µn 1{n>0} + λn ] = π(n − 1)λn−1 1{n>0} + π(n + 1)µn+1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin (5) [153/324] Résolution • Pour résoudre, considérons l’équation à l’état 0 pour obtenir π(1) en fonction de π(0). π(0)λ0 = π(1)µ1 (6) • Examinons maintenant l’équation à l’état 1. π(1)[µ1 + λ1 ] = π(0)λ0 + π(2)µ2 (7) • Après simplification : π(1)λ1 = π(2)µ2 • Par récurence sur n : π(n)λn = π(n + 1)µn+1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin (8) [154/324] • Soit: • Si on peut normaliser: 1n−1 λi π(n) = π(0) 1i=0 n i=1 µi ∞ 1n−1 " λi 1i=0 <∞ n µ i i=1 n=1 • alors, 3−1 ∞ 1n−1 " λ i 1i=0 π(0) = 1 + n µ i=1 i n=1 2 M2 ASS-ACSIS 2008, Université de Versailles St Quentin (9) (10) (11) [155/324] Processus de Naissance et de Mort simple • Description par une file d’attente (capacité = stockage dans la file, nombre de serveurs = puissance du service). • Capacité Infinie, 1 serveur • Capacité Infinie, m serveurs • Capacité Finie, 1 serveur • Capacité Finie, m serveurs • Capacité Infinie, Inifinité de serveurs M2 ASS-ACSIS 2008, Université de Versailles St Quentin [156/324] La file M/M/1 • Arrivées Poisson, Service iid Exponentiel, 1 Serveur, Capacité infinie pour garder les clients. • On note µ le taux de service et λ le taux d’arrivées. • C’est un processus de Naissance e tde Mort avec les taux de transition: λ =λ ∀ i i (12) µi = µ ∀i • Posons ρ = λ/µ. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [157/324] • Equation d’équilibre global : π(x)[µ1{x>0} + λ] = π(x − 1)λ1{x>0} + π(x + 1)µ (13) • Condition d’ergodicité: – la chaine est ergodique si et seulement si (ρ < 1). Dans ce cas la solution stationnaire est π(x = k) = (1 − ρ)ρk . – Lorsque ρ = 1 le processus est récurent nul. – Si ρ > 1 le processus est transitoire. • Par la suite on suppose que le processus est ergodique M2 ASS-ACSIS 2008, Université de Versailles St Quentin [158/324] Statistiques Simples • La moyenne du nombre de clients E(N ) dans la file: E(N ) = ∞ " iπ(x = i) = i=1 ρ 1−ρ (14) • La probabilité que la file soit vide est (1 − ρ) • le taux d’utilisation de la file U vaut donc ρ. • Variance V (N ) du nombre de clients dans la file: 2 2 V (N ) = E(N )−(E(N )) = ∞ " i2 π(x = i)−(E(N ))2 = i=1 ρ (15) (1 − ρ)2 • Probabilité qu’il y ait au moins n clients dans la file: ρn . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [159/324] Caractéristiques temporelles • Théorème 8 La fonction de répartition F (r) du temps de réponse a une distribution exponentielle: F (r) = 1 − e−r(µ−λ) • En appliquant la formule de Little, on trouve plus simplement le temps moyen de séjour dans la file E(r) = T = 1/(µ − λ). • Par inversion de la fonction de répartition les quantiles de la distribution du temps de réponse. Par exemple, borne sq du temps de réponse de q pourcent du nombre de clients. sq = 1 100 ln( ) µ−λ 100 − q M2 ASS-ACSIS 2008, Université de Versailles St Quentin [160/324] Figure 1: Attente, Séjour et Service en fonction de ρ M2 ASS-ACSIS 2008, Université de Versailles St Quentin [161/324] Quelques chiffres • Percentile du temps de séjour – 90 pourcent : 2.3 Temps Moyen de Séjour – 95 pourcent : 3 Temps Moyen de Séjour • Le temps moyen de séjour est fortement non linéaire: • Idem pour le temps moyen d’attente M2 ASS-ACSIS 2008, Université de Versailles St Quentin [162/324] Non Linéarité • On considère une file dont la durée de service moyenne est 2mn et 24s (144s) • Le taux d’arrivée est 10 clients/h • Que vaut le temps moyen de réponse ? • Réponse : le temps moyen de service est 0.04h • Donc la charge vaut 0.4 (10*0.4) • Et le temps de réponse vaut en seconde 144/(1 − 0.4) = 240 • Le taux d’arrivées augmente de 2 clients/h • La charge passe à 0.48 et le délai passe à 277s. • Augmenter les arrivées de 20 pourcent augmente le délai de 17 pourcent M2 ASS-ACSIS 2008, Université de Versailles St Quentin [163/324] • Le taux d’arrivée est maintenant de 20 clients/h • Donc la charge vaut 0.8 • Et le temps de réponse vaut en seconde 720s • Le taux d’arrivées augmente de 2 clients/h • La charge passe à 0.88 • Le délai passe à 1200s. • Augmenter les arrivées de 10 pourcent augmente le délai de 67 pourcent M2 ASS-ACSIS 2008, Université de Versailles St Quentin [164/324] Caractéristiques temporelles • Distribution du temps d’attente: F (w) = 1 − ρe−w(µ−λ) . • Exponentielle tronquée. • wq la borne du temps d’attente de q pourcent des clients: wq = max(0, 1 100ρ ln( )) µ−λ 100 − q • Si q est inférieur à 100(1 − ρ), le temps d’attente est nul. Ce pourcentage correspond aux clients entrant dans une file vide. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [165/324] Figure 2: Distribution de l’attente M2 ASS-ACSIS 2008, Université de Versailles St Quentin [166/324] Figure 3: distribution du percentile de l’attente divisé par l’attente moyenne en fonction de la charge pour les percentiles 90, 95 et 98 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [167/324] Compromis Usager/Opérateur • Un opérateur souhaite que son système soit utilisé le plus possible • donc ρ doit être grand • Mais lorsque ρ s’approche de 1, le temps d’attente des usagers est non borné • Demandes antagonistes : compromis.... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [168/324] Effet d’échelle • Un système avec beaucoup de clients est plus efficace qu’un système avec peu de clients. • Sur un exemple: • Arrivées : 5 clients/h. Service moyen de 6mn. • Donc la charge est 0.5 et le temps moyen de réponse est de 12mn. • Mais si on double le taux d’arrivées tout en divisant par deux le temps de service (les clients sont plus petits mais plus nombreux, ou le serveur est plus rapide) • La charge reste 0.5 mais le temps moyen de réponse devient 6mn. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [169/324] Effet d’échelle • A combien peut-on faire monter le taux d’arrivées tout en gardant le délai initial de 12mn 1 12 = µ−λ λ = 15 clients/h • Un serveur rapide peut fournir des performances supérieures en tmps moyen avec un effet plus que linéraire.... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [170/324] Capacité et Dimensionnement • Choisir le taux de service pour assurer un temps moyen de service pour un taux d’arrivée donné. • Soit R le temps de réponse, • La capacité C est le débit nominal du serveur = µ R= 1 C−λ • Donc, C = λ + 1/R • C ≥ λ assure la stabilité du système, le terme 1/R est le cout pour obtenir les performances demandées sur un système aléatoire simple. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [171/324] Figure 4: Capacité et Effet d’échelle, C/λ en fonction de λ M2 ASS-ACSIS 2008, Université de Versailles St Quentin [172/324] Analyse M/M/m • C’est un processus de Naissance et de Mort caractérisé par: ∀i λi = λ µi = iµ si i ≤ m µi = mµ si i > m (16) • La probabilité qu’il y ait au moins m clients dans le système est une quantité importante notée γ • C’est donc aussi la probabilité qu’un client entrant soit contraint d’attendre avant de commencer son service γ= (mρ)m π0 m!(1 − ρ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin (17) [173/324] Figure 5: Probabilité de ne pas attendre en fonction de ρ pour m = 1, 2, 3 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [174/324] La file M/M/m Caractéristiques Spatiales Charge ρ = λ/(mµ) Probabilité système vide π0 = 1 + Probabilité d’avoir k clients 5 si k¡m π0 (mρ)m m!(1−ρ) (mρ)k + !m−1 Nombre moyen de clients k! mm ρk sinon π0 m! (mρ)m γ = m!(1−ρ) π0 ργ E(n) = mρ + 1−ρ Variance du nombre de clients V (n) = mρ + ργ(m + Probabilité d’attente i=1 (mρ)i i! 6−1 1+ρ−ργ ) (1−ρ)2 Nombre moyen de clients en attente E(n) = ργ (1−ρ) V (n) = ργ(1+ρ−ργ) (1−ρ)2 Variance du nombre de clients en attente M2 ASS-ACSIS 2008, Université de Versailles St Quentin [175/324] La file M/M/m Caractéristiques Temporelles Répartition du temps de réponse si ρ "= (m − 1)/m F (r) = sinon F (r) = 1 − (1 + γµr)e−rµ γ 1 (1 + m(1−ρ) ) µ 1 (1 + mγ(2−γ) 2 (1−ρ)2 ) µ2 −wµm(1−ρ) Temps de réponse Moyen E(r) = Variance du temps de réponse V (r) = Répartition du temps d’attente F (w) = 1 − γe Temps d’attente moyen E(w) = Variance du temps d’attente q-percentile du temps d’attente γ mµ(1−ρ) V (w) = m2γ(2−γ) µ2 (1−ρ)2 E(w) 100γ max(0, γ ln( 100−q ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [176/324] La file M/M/m/B • Il y a B places et m serveurs. Donc B > m. • Le processus du nombre de clients est encore un processus de naissance et de mort dont les taux sont : λi = λ λ =0 B µi = iµ µ = mµ i ∀i<B si i ≤ m (18) si m < i ≤ B • Puisque la chaı̂ne a un nombre fini d’états, le système est toujours stable. M2 ASS-ACSIS 2008, Université de Versailles St Quentin • Les probabilités stationnaires sont obtenues simplement : π 0 λn ∀n<m n! µn πn = n π0 λ ∀n≥m n−m n m! m [177/324] (19) µ • et π0 est obtenu par normalisation. • Toutes les arrivées qui se produisent pendant que le buffer est dans l’état B sont perdues. • Le taux d’arrivée réel est donc λ(1 − πB ) • le taux de perte est λπB . • La formule de Little donne le temps moyen de séjour et le temps moyen d’attente. E(r) = E(n) E(q) et E(w) = λ(1 − πB ) λ(1 − πB ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [178/324] La file M/M/m/B Caractéristiques Spatiales Charge ρ = λ/(mµ) 5 π0 Probabilité 1+ (mρ)m (1−ρB+1−m m!(1−ρ) si k ≤ m d’avoir k clients Nombre moyen de clients π0 (mρ)k k! mm ρk sinon π0 m! B E(n) = i=1 iπi + !m−1 i=1 (mρ)i i! 6−1 ! Nombre moyen de clients !B en attente E(q) = Taux d’arrivée réel λ(1 − πB ) i=m+1 (i − m)πi Utilisation moyenne d’un serveur ρ(1 − πB ) Taux de perte λπB M2 ASS-ACSIS 2008, Université de Versailles St Quentin [179/324] La file M/M/m/B Caractéristiques Temporelles Temps de réponse moyen E(r) = Temps d’attente moyen E(w) = E(n) λ(1−πB ) E(q) λ(1−πB ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [180/324] Quelques exemples d’application • Gateway • Centre de calcul • Bases de Données M2 ASS-ACSIS 2008, Université de Versailles St Quentin [181/324] Perte et Gateway par M/M/1 • Des paquets arrivent avec un taux de 125 paquets par seconde dans un gateway • Celui ci doit utiliser 2ms pour expédier un paquet. • En utilisant un modèle M/M/1, analyser l’élément • en particulier, trouver la probabilité de perte si le buffer est de taille 12 • et la taille pour que la probabilité soit inférieure à 10−6 . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [182/324] • λ = 125pps • µ= 1 0.002 = 500pps • ρ = 0.25 • Proba n paquets = (1 − ρ)ρn • Nombre moyen de paquets dans le gateway = • Temps moyean de réponse = 1/µ 1−ρ ρ 1−ρ = 0.333 = 2.66ms • On fait mainteant une approximation (buffer fini par buffer infini) • Probabilité d’overflow = ρ13 = 1.510−8 • Taille : ρn ≤ 10−6 et donc n > 6log(0.1)/log(0.25) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [183/324] Perte et Gateway par M/M/1/B • On suppose maintenant qu’il n’y a que deux buffers • π1 = 0.25π0 et π2 = 0.25 ∗ 0.25π0 • Donc, π0 = 1 1+0.25+0.0625 = 0.76 et π1 = 0.19 et π2 = 0.0476 • Donc le nombre moyen vaut: 0.19 + 2 ∗ 0.0476 = 0.29 • le taux d’arrivée effectif est : 125 ∗ (1 − π(2)) = 119pps • et le taux de perte est de 6 pps... • le temps moyen de réponse est de 2.4ms. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [184/324] Quelques Leçons • Augmenter la taille des buffers diminue les pertes • Augmenter la taille des buffers augmente les délais • Augmenter la taille des buffers augmente la gigue (la variation du délai) • Augmenter la taille des buffers augmente la latence (le premier délai) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [185/324] Centre de Calcul • Les étudiants se rendent au centre de calcul selon un processus de Poisson avec un taux de 10 personnes par heure • Chaque étudiant travaille 20mn en moyenne. La distribution du temps de travail est exponentielle. • Il y a 5 terminaux. • Les étudiants disent qu’ils attendent trop..... • Et que le centre de calcul est trop loin... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [186/324] Analyse du centre par une M/M/5 • λ = 1/6 etudiant/minute • µ = 1/20 • ρ = 0.666 • Utilisation moyenne d’un terminal = 0.6666 • la probabilité d’attente = probabilité que tous les terminaux soient (m∗ρ)m occupés = γ = π0 m!(1−ρ) = 0.33 • Nombre moyen d’étudiants dans le centre = mρ + ργ 1−ρ = 4.0 M2 ASS-ACSIS 2008, Université de Versailles St Quentin • Nombre moyen d’étudiants en attente = ργ 1−ρ [187/324] = 0.65 • Temps moyen de séjour dans le centre = 1/µ(1 + γ m(1−ρ) ) = 24mn • Qui se décomposent en 20 minutes de travail et 4 minutes d’attente... • Mais 90-Percentile du temps d’attente = 14 minutes...(10 pourcents des étudiants doivent attendre plus de 14 minutes). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [188/324] Comment répondre • Augmenter le nombre de terminaux • Distribuer les terminaux (sans en augmenter le nombre) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [189/324] Augmenter le nombre de terminaux • Combien de terminaux pour que le temps d’attente soit plus petit que 2 minutes en moyenne et plus petit que 5 minutes dans 90 pourcents des cas ? • On augmente de 1 terminal. (m=6) • ρ devient 0.556, γ = 0.15, • Temps moyen d’attente = 1.1 minute • 90 percentile = 3 minutes M2 ASS-ACSIS 2008, Université de Versailles St Quentin [190/324] Répartition • On distribue les 5 terminaux en 5 places distinctes, avec 5 files d’attente séparées et pas d’informations globales pour choisir. • On a donc 5 M/M/1 • Le taux de service reste identique • Le taux d’arrivées est divisée par 5 (répartition équiprobable) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [191/324] • La charge ρ reste la même • Le temps moyen de séjour est 1/µ 1−ρ = 60mn • La variance du temps de séjour est maintenant de 3600 (elle était de 479 dans le système centralisé). • Très mauvaise solution : le temps moyen de séjour augmente considérablement (moyenne comme variance). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [192/324] Autre Leçon • En première analyse, un système centralisé est plus efficace pour l’utilisation des ressources et le temps d’attente • La différence provient des états où certaiens files sont vides alors que des clients attendent dans d’autres • Mais d’autres points peuvent modifier cette analyse. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [193/324] Requêtes dans un SGBD • Arrivées selon un processus de Poisson de taux 30 req par seconde. • Chaque requête prend 0.02 seconde de traitement • Donc le taux de service est de 1/0.02 = 50 requetes par seconde • Analyse par une M/M/1 • La charge est de 0.6 • Le serveur est vide pendant 40 pourcent du temps • Le nombre moyen de requêtes est 1.5 • Donc le temps moyen de réponse est 0.05 seconde M2 ASS-ACSIS 2008, Université de Versailles St Quentin [194/324] Changeons la vitesse du serveur • La vitesse du serveur double • La charge devient 0.3 • Le serveur est vide 70 pourcent du temps • Mais le temps moyen de réponse passe à 0.014 (il a été divisé par plus de 3) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [195/324] Résolution Numérique DTMC, Pb Stationnaire Chaı̂nes finies Calcul de la distribution stationnaire π Solution de : ΠQ = 0 Πe = 1 En Temps Continu (20) ΠP = Π Πe = 1 En Temps Discret (21) On suppose que la solution existe M2 ASS-ACSIS 2008, Université de Versailles St Quentin [196/324] Plan • Méthodes directes • Méthodes itératives • Méthodes récursives • Méthodes par décomposition • Lumpabilité M2 ASS-ACSIS 2008, Université de Versailles St Quentin [197/324] Uniformisation On peut transformer les matrices pour passer d’un problème en temps continu en un problème en temps discret. • Soit Q un générateur • Posons δ = maxi=1..n (|Q(i, i)|) • Soit ) ≥ 0 • Définissons P( = Id + Q(δ + ))−1 • Propriété 1 P( est une matrice stochastique qui a la même mesure invariante que Q. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [198/324] Preuve : 1. P( admet Π comme mesure invariante ΠP( = ΠId + ΠQ(δ + ))−1 = Π (22) 2. Tous les éléments hors diagonaux de P( sont positifs car ils sont la somme d’éléments positifs. 3. Tous les éléments diagonaux de P( sont positifs : en effet, −1 ≤ 4. Pour tout i : " P( (i, j) = j Q(j, j) ≤0 ) + maxi |Q(i, i)| (23) " 1 " Q(i, j) + Id(i, j) = 0 + 1 = 1 )+δ j j M2 ASS-ACSIS 2008, Université de Versailles St Quentin [199/324] Choix de ! • Une valeur strictement positive de ) implique que P( a des éléments diagonaux non nuls; elle est donc apériodique. • ) permet de changer le spectre de la matrice P( . Attention aux méthodes itératives • Lorsque ) tend vers l’infini, toutes les valeurs propres de P( tendent vers 1 en module • Prendre ) petit, heuristique de Wallace (solveur RQA) ) = δ/100. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [200/324] Méthodes directes • Résolution d’un problème linéaire • Variante de l’élimination de Gauss • Choisir la variante la plus précise, la complexité est toujours cubique pour des matrices pleines • L’élimination a pour conséquence de remplir la matrice si elle était initialement creuse • algorithme GTH : beaucoup plus stable numériquement car il n’y a ni nombres négatifs ni soustractions M2 ASS-ACSIS 2008, Université de Versailles St Quentin [201/324] GTH • Du nom des ses auteurs : Grassman, Taksar et Heyman • Idée : oter les sommets depuis le dernier • Equilibre en n : Πn ( n−1 " P (n, i)) = i=1 n−1 " P (j, n)Πj (24) j=1 • Equation d’équilibre d’un sommet a successeur de n dans la chaine de Markov Πa ( n " P (a, i)) = i=1 n−1 " P (j, a)Πj + P (n, a)Πn (25) j=1 • Remplaçons Πn par sa valeur. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [202/324] Πa ( n " i=1 P (a, i)) = n−1 " P (j, a)Πj + j=1 !n−1 P (j,n)P (n,a) • Posons R(j, a) = P (j, a) + ! . n−1 i=1 P (j, n)P (n, a)Πj !n−1 i=1 P (n, i) j=1 (26) P (n,i) • R est une matrice stochastique de taille n − 1 • Il est possible que P (j, a) soit nul et que R(j, a) ne le soit pas. Il suffit qu’il y ait, dans la chaı̂ne de Markov, une transition de j à n et une autre de n à a. • R est moins dense que la matrice P et on doit modifier la structure des éléments non nuls de P pour construire R. • Le choix du sommet à éliminer est important pour minimiser le remplissage de la matrice M2 ASS-ACSIS 2008, Université de Versailles St Quentin [203/324] Code de GTH program gth(input,output); begin for n:=nr downto 1 do begin S:=0; for j:=0 to n-1 do S:=S+P[n,j]; for i:=0 to n-1 do P[i,n]:=P[i,n]/S; for i:=0 to n-1 do for j:=0 to n-1 do P[i,j]:=P[i,j]+P[i,n]*P[n,j]; if S<=0.0 then writeln(’erreur’, n) else writeln(n); end; Tot:=1; pi[0]:=1; for j:=1 to nr do begin pi[j]:=P[0,j]; for k:=1 to j-1 do pi[j]:=pi[j]+pi[k]*P[k,j]; Tot:=Tot+pi[j]; end; for j:=0 to nr do pi[j]:=pi[j]/Tot; end gth. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [204/324] Comparaison GTH-QR • En simple précision... • Le résultat ”exact” est fourni par un algorithme en double précision • On calcule les erreurs absolues sur GTH et les erreurs absolues min et max pour QR (ça dépend de la colonne enlevée) M2 ASS-ACSIS 2008, Université de Versailles St Quentin Exemple : matrice petite, probabilités fortes P = [205/324] 0.2 0 0 0.6 0 0 0 0 0 0.2 0 0.1 0 0 0.6 0 0.3 0 0 0 0.1 0 0 0 0 0 0.8 0 0 0 0.6 0 0.3 0 0 0 0 0 0.5 0 0 0.5 0 0 0 0 0 0.5 0 0 0.2 0 0 0 0.3 0 0 0 0 0 0.7 0 0.2 0 0 0.1 0.1 0 0.9 0 0 0 0 0 0 0 0 0.1 0 0 0 0.8 0 0 0 0.1 0 0.4 0 0 0 0.4 0 0 0 0.2 0 0.1 0.1 0 erreur-GTH erreur-min-QR erreur-max-QR 4.510−8 6.910−8 3.710−6 M2 ASS-ACSIS 2008, Université de Versailles St Quentin (27) [206/324] Autre exemple : petite matrice mais probabilités assez faibles... 1 − 10−6 0.4 P = 5 10−7 5 10−7 2 10−7 10−7 2 10−7 3 10−7 4 10−7 0.3 0 0 0.3 0 1 − 10−6 0 5 10−7 0 0 1 − 10−6 5 10−7 3 10−7 10−7 4 10−7 1 − 10−6 erreur-GTH erreur-min-QR erreur-max-QR 3.1 10−8 6.12 10−3 3.89 10−2 M2 ASS-ACSIS 2008, Université de Versailles St Quentin (28) [207/324] Conclusions-méthodesdirectes • Avantages – Complexité fixe indépendante des données – Stabilité numérique (GTH) – Facile à implémenter • Inconvénients – Complexité cubique en temps, quadratique en espace pour les matrices pleines – Peu adaptées aux structures creuses • Pour des matrices de taille inférieure à 1000 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [208/324] Méthodes itératives • Résolution d’un problème de vecteur propre • Variantes de la méthode des puissances x(k+1) = 1 (k) x A λ1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin (29) [209/324] Méthode des Puissances • Soit (λ1 , λ2 , ..., λn ) les vecteurs propres à gauche de la matrice A, ordonnées par ordre décroissant en module • Supposons |λ1 | > |λ2 | • Les vecteurs propres (y1 , ..yn ) forment une base; exprimons x(0) dans cette base. (0) x = n " αi yi (30) i=1 On suppose que α1 += 0. • puisque λi est valeur propre associée à yi , on a : (1) x n n 1 (0) 1 " 1 " αi yi A = αi λi yi x A= = λ1 λ1 i=1 λ1 i=1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin (31) [210/324] Plus généralement : n (k+1) x " 1 λi = ( )k x(0) Ak = αi ( )k yi λ1 λ1 i=1 (32) On sépare le premier terme : (k+1) x n " λi = α1 y1 + ( αi ( )k yi λ1 i=2 (33) • Puisque toutes les valeurs propres à partir de la seconde sont strictement inférieures à λ1 , tous les termes de la somme tendent vers 0. • L’itération a pour limite un vecteur propre de A associé à λ1 . • Mais la vitesse de convergence dépend des autres valeurs propres et surtout de la seconde. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [211/324] Application aux chaı̂nes de Markov • Itérer : Π(n+1) = Π(n) P (34) • Inutile de normaliser car λ1 = 1 • temps de convergence trop long : améliorations nécéssaires M2 ASS-ACSIS 2008, Université de Versailles St Quentin [212/324] Améliorer • pour résoudre xA = b par des itérations successives, • si on peut trouver une décomposition de A en M − N où M est facilement inversible, alors xM = xN + b (35) et grâce à l’inversibilité de M , x = xN M −1 + bM −1 (36) • Ce qui conduit au schéma itératif simple : x(n+1) = x(n) N M −1 + bM −1 • La matrice H = N M −1 est la matrice de l’itération. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [213/324] • Pour la suite, on cherche à résoudre le problème transposé et en temps continu, c’est à dire : Qt Πt = 0 (37) • On suppose que le générateur Qt est décomposé en une matrice diagonale D, une matrice triangulaire inférieure L et une matrice triangulaire supérieure U . Qt = D − (L + U ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin (38) [214/324] Jacobi • M = D et N = L + U • H = D −1 (L + U ) • Sous forme scalaire: (n+1) xi = 1 " (n) { (li,j + ui,j )xj } di,i (39) j&=i M2 ASS-ACSIS 2008, Université de Versailles St Quentin [215/324] Gauss-Seidel (n+1) • Les valeurs de la nouvelle itération xj pour j < i peuvent être (n+1) utilisés à la place des valeurs de l’itération (n), pour calculer xi . • Opérateur H = (D − L)−1 U • Iteration (n+1) xi = " 1 " (n+1) (n) { li,j xj + ui,j xj } di,i j<i j>i (40) • Gauss Seidel ascendante (ci-dessus) ou descendante (H vaut (D − U )−1 L) • La vitesse de convergence peut dépendre de l’ordre des variables. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [216/324] S.O.R. • La méthode de relaxation (SOR) consiste à effectuer, pour l’itération (n + 1), une moyenne pondérée entre le résultat de l’itération (n) et l’application de l’itération de Gauss Seidel • Itération : (n+1) xi " " 1 (n) (n+1) (n) = (1 − ω)xi + ω { li,j xj + ui,j xj } di,i j<i j>i (41) • Opérateur : Hw = (D − ωL)−1 ((1 − ω)D + ωU ) • Choisir une valeur correcte de ω est un problème difficile. • ω peut modifier la valeur propre dominante de l’opérateur Hw M2 ASS-ACSIS 2008, Université de Versailles St Quentin [217/324] program GaussSeidel(input,output); type element = record ori : integer; prob : real; end; var nz,n,i,c,j, degre,iter : integer; diff,som,y : real; p,op : array[0..nodemax] of real; debut : array[0..nodemax] of integer; arc : array[0..arcmax] of element; begin readln(nz); readln(n); c:=0; for i:=0 to n-1 do begin read(degre); debut[i]:=degre; for j:=1 to degre do begin read(arc[c].prob); read(arc[c].ori); c:=c+1; end; readln; op[i]:=1; end; iter:=0; som:=0.0; for i:=0 to n-1 do som:=som+op[i]; for i:=0 to n-1 do op[i]:=op[i]/som; repeat iter:=iter+1; c:=0; for i:=0 to n-1 do begin som:=0.0; for j:=c to c+debut[i]-1 do begin if arc[j].ori > i then y:= op[arc[j].ori] else y:= p[arc[j].ori]; som:=som+op[arc[j].ori]*arc[j].prob; end; p[i]:=som; c:=c+debut[i]; end; som:=0.0; for i:=0 to n-1 do som:=som+p[i]; for i:=0 to n-1 do p[i]:=p[i]/som; diff:=0.0; for i:=0 to n-1 do diff:=diff+abs(p[i]-op[i]); op:=p; until (iter=maxiter) or (diff<maxdiff); for i:=0 to n-1 do writeln(p[i]); end. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [218/324] Comparaisons • le coût d’une iteration est à peu près le même • le nombre d’itérations dépend du spectre de H mais on ne sait pas comment il a été changé. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [219/324] Exemple 1 : Pb de Courtois P = 5 10−5 5 10−5 0 0 0 9 10−4 3 10−4 0 0 0 0.7 0.2995 0 10−4 10−4 4 10−4 0.39 0.6 5 10−5 10−4 0 0 0.6 0.2499 0.15 0 0.1 0.65 0.249 0.1 0.8 4 10−4 0.0996 0 5 10−5 0 0 3 10−5 0 4 10−5 5 10−5 0 0 0 5 10−4 0 3 10−5 0 0.149 9 10−4 0.85 0 5 10−5 5 10−5 0 0 0 0.1 0.8 0.0999 5 10−5 0.1999 0.25 0.55 Méthode Itérations pour 10−6 Puissance 69000 Jacobi 23000 Gauss Seidel 11000 SOR opt 3500 C’est un problème NCD... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [220/324] Exemple 2 2 classes de composantes avec 2 composantes par classe. Les composantes de type 1 (resp. 2) tombent en panne avec le taux λ1 (resp. λ2 ), et sont réparées avec le taux µ1 (resp. µ2 ). Etats (X, Y ) classés par ordre lexicographique où X (resp. Y ) est le nombre de composantes de type 1 (resp. type 2) en activité. ∗ 2λ2 2λ1 µ2 Q = ∗ 2µ2 2λ1 λ2 ∗ µ1 2λ1 ∗ µ1 µ2 2λ2 ∗ λ1 λ2 ∗ 2µ2 µ1 2µ1 λ1 λ1 ∗ 2µ1 µ2 2µ1 2λ2 ∗ λ2 ∗ 2µ2 (42) Indépendence entre les deux composantes; Calcul analytique exact de la solution; comparaison des solutions M2 ASS-ACSIS 2008, Université de Versailles St Quentin [221/324] λ1 = 0.2, λ2 = 0.3, µ1 = 5.0, µ2 = 6.0 Méthode 2ème valeur propre Itérations pour 10−6 Puissance 0.76 52 Jacobi 1.0 Diverge Gauss Seidel 0.072 6 SOR opt 0.018 6 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [222/324] λ1 = 0.2, λ2 = 30.0, µ1 = 0.5, µ2 = 60.0 Méthode 2ème valeur propre Itérations pour 10−6 Puissance 0.9942 2375 1.0 Diverge Gauss Seidel 0.9827 790 SOR opt 0.7677 53 Jacobi C’est un problème NCD... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [223/324] Initialisation • Ne pas initiliser le vecteur de probabilités par un 1.0 pour le plus petit état dans une méthode de Gauss Seidel ascendante. • Employer une approximation pour choisir un vecteur initial proche de la solution M2 ASS-ACSIS 2008, Université de Versailles St Quentin [224/324] Conclusions-méthodes itératives • Avantages – La complexité d’une itération est le nombre d’élément non nuls de P – Stabilité numérique (on ne fait que des additions) – adaptées aux matrices creuses • Inconvénients – La complexité en nombre d’itérations dépend du spectre (et donc des données) • Pour des matrices creuses de grande taille dont la seconde valeur propre est faible M2 ASS-ACSIS 2008, Université de Versailles St Quentin [225/324] Méthode par Récursion • Construire un système récursif sur les probabilités de manière à les calculer à un facteur multiplicatif près qui est obtenu par normalisation. • Dépend de la structure de la matrice, pas des valeurs numériques distinctes de 0. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [226/324] Matrices Hessenberg • Hessenberg Supérieure : triangle supérieur + sous diagonale principale; Chaı̂ne Incluse aux instants de départ de la G/M/1 . . . . . . . . . . 0 . . . . 0 0 . . . 0 0 0 . . • Hessenberg Inférieure : triangle inférieur + sur diagonale principale; Chaı̂ne Incluse aux instants d’arrivées de la M/G/1 . . 0 0 0 . . . 0 0 . . . . 0 . . . . . . . . . . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [227/324] Principe pour une Hessenber sup • Equilibre en j : πj = j+1 " πi Pi,j i=0 • On en déduit πj+1 πj+1 = 1 Pj+1,j 2 πi (1 − Pj,j ) − j−1 " i=0 πi Pi,j 3 Si Pj+1,j est non nul. • Cas fini : on pose π0 = 1, on effectue la récurence, on somme toutes les probabilités et on normalise. • Cas Infini : il faut que P soit régulière. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [228/324] Matrices Block Hessenberg • Même structure que les matrices Hessenberg Q0,0 Q0,1 . Q 1,0 Q1,1 Q1,2 Q= Q2,1 Q2,2 0 0 0 Q3,2 0 0 0 • Qi,j blocs de taille k × k mais par bloc. . . . . . . . . . . • π divisé en sous vecteurs de taille k M2 ASS-ACSIS 2008, Université de Versailles St Quentin [229/324] Algorithme • Equilibre pour le bloc 0 π0 Q0,0 + π1 Q1,0 = 0 • Si Q1,0 est inversible π1 = −π0 Q0,0 Q−1 1,0 • Equilibre pour le bloc 1 π0 Q1,0 + π1 Q1,1 + π2 Q2,1 = 0 • Si Q2,1 est inversible π2 = (π0 Q1,0 + π1 Q1,1 )Q−1 2,1 • Après simplification M2 ASS-ACSIS 2008, Université de Versailles St Quentin [230/324] −1 π2 = π0 (Q1,0 + Q0,0 Q−1 1,0 Q1,1 )Q2,1 • On peut continuer... si Qi+1,i est inversible (récursion descendante) • Si lower block Hessenberg et Qi,i+1 inversible, alors récursion ascendante • Si bloc tridiagonal, on peut essayer les deux sens de récursion. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [231/324] Exemple : M/C2 /1/N • Arrivées Poisson λ, Service Cox à deux phases (µ1 , µ2 , a) • Etats (x, y), x : nombre de clients, y : phase du service. • (0, 2) état transitoire. N places dans la file ∗ 0 0 ∗ 0 λ (1 − a)µ1 µ2 0 ∗ aµ1 ∗ λ 0 λ 0 ∗ λ 0 0 0 aµ1 ∗ 0 λ 0 ∗ 0 0 aµ1 ∗ 0 λ 0 (1 − a)µ1 µ2 0 (1 − a)µ1 µ2 0 • Blocs sousdiagonaux non inversibles, • Blocs surdiagonaux inversibles • Analyse ascendante M2 ASS-ACSIS 2008, Université de Versailles St Quentin [232/324] Calcul de π(0, 1) λ = 0.5, µ1 = 1.0, µ2 = 10.0 N Calcul Récursif GTH 2 0.0007158 idem 5 0.0006958 idem 10 0.0006955 idem 16 0.0006808 0.0006955 20 -0.1973 0.0006955 Une probabilité négative ???? M2 ASS-ACSIS 2008, Université de Versailles St Quentin [233/324] Résidus πQ N Résidus 2 10−16 3 10−15 5 10−13 10 10−9 12 10−7 16 10−3 20 50.9 Croissance géométrique avec N des erreurs M2 ASS-ACSIS 2008, Université de Versailles St Quentin [234/324] Raison de l’instabilité • λ < µ1 et λ << µ2 1/λ • Les blocs Qi,i 0 très grande 0 1/λ et Qi−1,i 1/λ 0 0 1/λ ont une norme • A chaque itération, les erreurs sont multipliées par cette norme. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [235/324] Conclusions-méthodes récursives • Avantages – Utilisation de la structure de la matrice – Problèmes de très grande taille – associée à des files usuelles • Inconvénients – Problème de stabilité numérique • Pour des matrices creuses de grande taille quasi Hessenberg M2 ASS-ACSIS 2008, Université de Versailles St Quentin [236/324] Méthodes de Décomposition Définition 9 une matrice stochastique P est presque complètement décomposable (NCD) ssi on peut décomposer la matrice en blocs Pi,j tels que : 1. ,Pi,i ,1 = O(1), ∀i 2. ,Pi,j ,1 = O()), ∀i, j, i += j 3. ) << 1 P = P1,1 P2,1 P1,2 P2,2 P1,3 P2,3 P1,4 P2,4 P1,5 P2,5 P3,1 P4,1 P3,2 P4,2 P3,3 P4,3 P3,4 P4,4 P3,5 P4,5 P5,1 P5,2 P5,3 P5,4 P5,5 M2 ASS-ACSIS 2008, Université de Versailles St Quentin (43) [237/324] Approche de Courtois • Solutions locales • Matrice de couplage • Approximations M2 ASS-ACSIS 2008, Université de Versailles St Quentin [238/324] Solutions Locales de Pi,i • Chercher ui le vecteur propre normalisé à 1 et associé à la valeur propre dominante de Pi,i . ui Pi,i = λi ui • Cette valeur propre est inférieure à 1 mais très proche de 1. • ui (j) est une approximation de la probabilité conditionelle d’être dans le sommet d’indice j sachant que l’on est dans le bloc i. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [239/324] Couplage • A∗ : Matrice de couplage entre bloc : probabilité d’aller du bloc i au bloc j • Etape 1 : sommer les colonnes d’un bloc pour obtenir la probabilité d’aller d’un état vers un bloc : Pi,j e • Etape 2 : pondérer les lignes par les poids des ui (k) (probabilité d’être dans l’état k quand on est dans le bloc i) A∗ (i, j) = ui Pi,j e • ξ(i) est la probabilité stationnaire de la matrice A∗ ξA∗ = ξ M2 ASS-ACSIS 2008, Université de Versailles St Quentin [240/324] Approximation NCD • l’état x correspond à l’état k de la composante i • ui (k) approxime la probabilité d’être dans l’état k sachant que l’on est dans la composante i • ξ(i) est la probabilité d’être dans la composante i π(x) = ui (k)ξ(i) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [241/324] Algorithme MKS • Itérer l’approche de Courtois • Mais agréger les probabilités π calculée par l’équation de décomposition redonne la quantité ui (.) précédemment calculée. • L’algorithme modifie π par une simple itération de la méthode de Gauss-Seidel • Inutile de calculer les solutions locales, il suffit d’initiliser par une distribution uniforme M2 ASS-ACSIS 2008, Université de Versailles St Quentin [242/324] 1. Choisir une solution initiale π (0) (x, y). x désigne le numéro de l’agrégat, y le numéro de l’état dans l’agrégat. m désigne le compteur d’itérations. Il est initialisé à 0. 2. Calculer les probabilités conditionnelles ui (j) d’être dans l’état y sachant que l’on est dans l’agrégat x. π (m) (i, j) ui (j)(m) = ! ( k π m)(i, k) (44) 3. Construire la nouvelle matrice de couplage A(m) : (m) A(m) (i, j) = ui Pi,j e (45) 4. Calculer la mesure invariante ξ (m) de A(m) . 5. Calculer la nouvelle approximation de la distribution stationnaire z (m) (x) = ui (j)(m) ξ(i)(m) avec x = (i, j) M2 ASS-ACSIS 2008, Université de Versailles St Quentin (46) [243/324] 6. Perturber z (m) pour obtenir π (m) par une itération de Gauss Seidel π (m) (k) = π (m) (k)Pk,k + " j<k π (m) (j)Pj,k + " z (m) (j)Pj,k j>k 7. Vérifier la convergence et dans le cas négatif incrémenter m et recommencer à l’étape 2 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [244/324] Pb de Courtois P = 5 10−5 5 10−5 0 0 0 9 10−4 3 10−4 0 0 0 0.7 0.2995 0 10−4 10−4 4 10−4 0.39 0.6 5 10−5 10−4 0 0 0.6 0.2499 0.15 0 0.1 0.65 0.249 0.1 0.8 4 10−4 0.0996 0 5 10−5 0 0 3 10−5 0 4 10−5 5 10−5 0 0 0 5 10−4 0 3 10−5 0 0.149 9 10−4 0.85 0 5 10−5 5 10−5 0 0 0 0.1 0.8 0.0999 5 10−5 0.1999 0.25 0.55 Approximation de Courtois : l’approximation est de l’ordre de 10−4 . u1 = (0.401, 0.416, 0.182), u2 = (0.5714, 0.4286), u3 = (0.240, 0.555, 0.204) ; 0.99911 0.00079 0.0001 < A∗ = 0.00061 0.99929 0.0001 0.00006 0.00004 0.9999 Algorithme MKS : en 4 itérations les résidus sont de l’ordre de 10−16 . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [245/324] Conclusions-méthodes de décomposition • Avantages – Traitement efficaces de problèmes de grande taille – Adaptées aux matrices NCD – Problèmes réalistes (plusieurs echelles de temps) • Inconvénients – Détection de la structure NCD (algorithme de connexité) • Pour des matrices creuses de grande taille NCD M2 ASS-ACSIS 2008, Université de Versailles St Quentin [246/324] Lumpabilité ordinaire • Par rapport à une partition de l’espace des états, S = A1 ∪ A2 ∪ . . . ∪ Ak • Critère de lumpabilité ordinaire : ∀l, m, ∀a, b ∈ Am " j∈Al P (a, j) = " P (b, j) j∈Al • Alors on peut définir la chaine dont les états sont les Ai (les macro-états) et résoudre la chaine agrégée. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [247/324] Lumpabilité : exemple • On commence par un exemple : taille 4, partition en deux sous ensmbles. π1 = P (1, 1)π1 + P (2, 1)π2 + P (3, 1)π3 + P (4, 1)π4 π2 = P (1, 2)π1 + P (2, 2)π2 + P (3, 2)π3 + P (4, 2)π4 π3 = P (1, 3)π1 + P (2, 3)π2 + P (3, 3)π3 + P (4, 3)π4 π4 = P (1, 4)π1 + P (2, 4)π2 + P (3, 4)π3 + P (4, 4)π4 • Regroupons les équations 1 et 2 d’une part, 3 et 4 de l’autre. π1 + π2 = (P (1, 1) + P (1, 2))π1 + (P (2, 1) + P (2, 2))π2 + (P (3, 1) + P (3, 2))π3 + (P (4, 1) + P (4, 2)π4 • Lumpabilité ordinaire : la somme en colonne est constante : P (1, 1) + P (2, 1) = P (2, 1) + P (2, 2). Donc on peut factoriser. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [248/324] Lumpabilité exacte • Par rapport à une partition de l’espace des états, S = A1 ∪ A2 ∪ . . . ∪ Ak • Critère de lumpabilité exacte : ∀l, m, ∀a, b ∈ Am " P (j, a) = j∈Al " P (j, b) j∈Al • Alors on peut simplifier la résolution en supposant que toutes les probabilités dans un macro-état sont égales. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [249/324] • Fin de la parenthèse Analyse Numérique • Retour aux méthodes analytiques • Après un exemple surprenant d’application ! M2 ASS-ACSIS 2008, Université de Versailles St Quentin [250/324] Google • Comment trouver les pages ? • Un robot d’exploration et une indexation • Comment classer les pages pour trouver les plus pertinentes • algorithme PAGERANK M2 ASS-ACSIS 2008, Université de Versailles St Quentin [251/324] Fondamentaux de PageRank • Hypothèse 1 : une page pertinente est pointéee par des pages pertinentes au moyen de son URL. • Hypothèse 2 : on quantifie la pertinence par un flottant positif. • Hypothèse 3 : si une page source pointe vers k pages destinations (grâce à leurs URL), alors chacune reçoit 1/k de la pertinence de la source. • Hypothèse 4 : Une page sans lien de sortie n’est pas pertinente M2 ASS-ACSIS 2008, Université de Versailles St Quentin [252/324] Quantification simplifiée • Soit Γ(x) les pages qui pointent sur x • Soit d(y) le nombre de pages pointées par la page y • Soit P e(x) la pertinence de la page x, on obtient, P e(x) = " P e(y) d(y) y∈Γ(x) • ou encore, en posant M (y, x) = P e(x) = 1 d(y) " P e(y)M (y, x) y∈Γ(x) • On reconnait la définition de la probabilité stationnaire d’une chaine de Markov. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [253/324] Pe = π • La pertinence est donc égale à la probabilité stationnaire (à une constante multiplicative près) • Inutile de calculer la valeur exacte • On utilise un algorithme itératif et on s’arrète avec une précision faible • On réemploie la distribution initiale précédente lorsqu’on recalcule les pertinences après avoir reconstruit un nouvel index. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [254/324] En fait • Le système est légérement différent (plus stable pour la convergence) P e(x) = 0.15 + 0.85 ∗ " P e(y) d(y) y∈Γ(x) • On peut en déduire comment influencer PageRank et Google. • L’information est disponible sur le Web (par exemple http://www.webworkshop.net/pagerank.html) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [255/324] Se passer de l’hypothèse Markov • Un résultat physique : Little • Analyse opérationnelle • Simulation Monte Carlo (espace) • Simulation de processus (temps) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [256/324] Analyse Opérationnelle • Quelques lois opérationnelles • sur des quantités mesurables (simulations, mesures) • sans hypothèses probabilistes ou statistiques • permettant de faire des tests • et de borner les performances pour valider une première analyse. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [257/324] Quantités Concernées • Taux d’arrivées, λi : c’est le nombre d’arrivées sur le temps: • Débit, Xi : c’est le nombre de travaux terminés sur le temps: Ai T Ci T • Utilisation, Ui : c’est le temps utilisé par les services sur le temps: Bi T • Temps moyen de service, Si : c’est le temps utilisé par les services sur i le nombre de travaux terminés: B Ci M2 ASS-ACSIS 2008, Université de Versailles St Quentin [258/324] Plan • Utilisation • Conservation de Flux • Formule de Little • Temps de réponse • Systèmes interactifs • Bottleneck (engorgement) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [259/324] Utilisation • Par définition Ui = Bi Ci Bi = T T Ci • et donc Ui = Xi Si • L’utilisation est le produit du temps moyen de service par le débit. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [260/324] Conservation de Flux • Conservation Entrées Sorties: • Lorsque T devient grand • si le système est stable, • alors il y a conservation entre entrées et sorties d’un système. Ai = Ci M2 ASS-ACSIS 2008, Université de Versailles St Quentin [261/324] Conservation et Routage • Un job se décompose en tâches élémentaires et ne quitte le système que lorsqu’elles sont toutes terminées. • Il demande Vi tâches au serveur i • C0 est le flux entrant dans le système (et le flux sortant si le système est stable) • Donc chaque serveur reçoit Ci = Vi C0 tâches. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [262/324] • Le débit du système est par définition X = • Le débit du serveur i est Xi = Ci T = C0 T Ci C0 C0 T • Donc Xi = XVi • Loi de conservation du flux M2 ASS-ACSIS 2008, Université de Versailles St Quentin [263/324] • Puisque l’utilisation Ui vaut par définition Xi Si , on a: Ui = Xi Si = XVi Si • On pose Di = Vi Si . • Di est la charge induite par un job • Le bottleneck est le serveur qui a la charge la plus élevée • le nombre maximal de job exécutables est obtenu lorsque la serveur en bottleneck a une utilisation de 1. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [264/324] Exemple • Chaque job demande 5 secondes de CPU, 80 accès sur le disque A et 100 accès sur le disque B. • Entre chaque job, l’utilisateur attend 18 secondes. • un accès disque sur A dure 50 ms, et sur B 30 ms. • Il y a 17 terminaux connectés • On mesure un débit de 15.7 accès par seconde sur le disque A • Calcul du débit et de l’utilisation de la CPU et des disques. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [265/324] Données Initiales • DCP U = 5s • VA = 80 • VB = 100 • SA = 0.05s • SB = 0.03s • XA = 15.7 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [266/324] Utilisations • DA = SA VA = 4s • DB = SB VB = 3s • Donc la CPU est le bottleneck. • On reprendra l’exemple pour finir.... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [267/324] Spécification du routage par des probabilités • Pi,j est la probalilité d’aller en j après avoir terminé un travail en i. ! • Equation de flux : Cj = i Ci Pi,j ! • Donc Vj = i Vi Pi,j et V0 = 1 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [268/324] Formule de Little Soit Z un système dans lequel arrive des objets. Ces objets demeurent un certain temps dans le système puis sortent de Z. • N est le nombre moyen d’objets dans Z • T est le temps moyen passé dans Z par un objet • λ est le taux d’arrivée en Z des objets. N = λT (47) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [269/324] Preuve de Little pour une simulation avec retour à 0 Considérons une trajectoire du système. Observons le système lorsqu’il se vide pour la n-ième fois à l’instant x. Il était vide à l’origine. Il y a eu m objets visiteurs entre 0 et x. Soient ai et di la date d’arrivée et de départ du i-ème client. Le temps de séjour du i-ème client vaut wi = di − ai . T est la moyenne des wi . T = !m i=1 wi m N (t) est le nombre d’objets à la date t. N= #x t=0 N (t)dt x M2 ASS-ACSIS 2008, Université de Versailles St Quentin [270/324] Preuve de Little pour une simulation avec retour à 0 - suite N x Figure 6: Trajectoire avec retour à 0 Soit S la surface engendrée par la trajectoire entre 0 et x. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [271/324] Preuve de Little pour une simulation avec retour à 0 - suite Calcul de S dans les deux sens (vertical et horizontal) #x • S = t=0 N (t)dt = x × N ! • S= m i=1 di − ai = m × T Donc, N = m xT et par définition λ = m x M2 ASS-ACSIS 2008, Université de Versailles St Quentin [272/324] Conséquence imprévue de la preuve !m Autre Conséquence : S = i=1 dα(i) − ai pour toute permutation α qui garantisse la cohérence de la trajectoire (c’est à dire que les arrivées sont avant les départs). La moyenne de la durée de séjour est indépendante de l’ordre de sortie pour les disciplines conservatives. Simplification importante pour la simulation ou pour l’analyse : changer la discipline de service pour la rendre plus simple si on ne s’intéresse qu’à la moyenne du temps de séjour. Discipline plus simple : simulation plus rapide car il y a moins d’états ou analyse plus simple. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [273/324] Temps de réponse • Grâce à la formule de Little on obtient: Qi = Xi Ri • Qi nombre moyen de clients dans le serveur i • et Ri temps moyen de réponse du serveur i. • car λi = Xi si le serveur est stable. • Ui = Xi Si est la formule de Little appliquée sur le serveur sans la file. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [274/324] Composition des temps de réponse • Un job se décompose en tâches élémentaires et ne quitte le système que lorsqu’elles sont toutes terminées. • Vi passage par job dans la station i • le temps de réponse total est: R= " Vi Ri i M2 ASS-ACSIS 2008, Université de Versailles St Quentin [275/324] Systèmes interactifs • A la fin d’un job, le résultat est rendu à l’utilisateur qui attend un certain délai (thinking time Z) avant de recommencer un nouveau job. • Le temps total de cycle est R (séjour du job) plus Z • Le taux de génération de job pour un utilisateur est 1 Z+R • Si il y a N utilisateurs, on en déduit X= N R+Z R= N −Z X • Et donc, • c’est la loi du temps de réponse pour les systèmes intéractifs M2 ASS-ACSIS 2008, Université de Versailles St Quentin [276/324] Bornes asymptotiques et analyse de bottlenecks • On cherche le bottleneck (la station de Di maximale). • Soit b cette station, on a Ub = XDmax et Ub ≤ 1. • Donc X ≤ 1 Dmax • De plus, R ≥ D M2 ASS-ACSIS 2008, Université de Versailles St Quentin [277/324] • En apppliquant la loi du temps de réponse des systèmes intéractifs, on a: N R= − Z ≥ N Dmax − Z X N N X= ≤ R+Z D+Z • Ce qui donne les deux formules de bornes asymptotiques X ≤ min( 1 Dmax , N ) D+Z R ≥ max(D, N Dmax − Z) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [278/324] Revenons sur l’exemple • N = 17 • D=3 • Dmax = 5 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [279/324] Bornes Asymptotiques Figure 7: Bornes de X en fonction de N M2 ASS-ACSIS 2008, Université de Versailles St Quentin [280/324] Bornes Asymptotiques Figure 8: Bornes de R en fonction de N M2 ASS-ACSIS 2008, Université de Versailles St Quentin [281/324] Fin de l’exemple • X= XA VA = 0.1963 • Vcpu = 100 + 80 + 1 car chaque visite à un disque est précédée d’un passage par la CPU • XC P U = XVcpu = 35.48 • XB = XVB = 19.6 • Ucpu = XDcpu = 0.98 • Ua = XDa = 0.784 • Ub = XDb = 0.588 • R = N/X − Z = 68, 6s • X ≤ min(N/30, 1/5) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [282/324] Fiabilité d’un réseau et Monte Carlo On considère un réseau (sommets, arcs). Il y a deux sommets particuliers s et t (extrémités du réseau). • Les sommets sont fiables. • Les arcs peuvent tomber en panne (proba 1 − qi ). • Pannes indépendantes. yi = 1 : arc OK (0 sinon). y = (y1 , ..., yn ) un état du réseau. q le vecteur (q1 , ..., qn ). φ(y) vaut 1 si on peut connecter s à t par le réseau lorsque la configuration de panne y se produit. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [283/324] Probabilité d’une configuration de panne P (y, q) = $ qiyi (1 − qi )1−yi i On veut calculer g(q) = ! y φ(y)P (y, q) Problème difficile: il n’y a pas d’algorithme pour calculer g(q) en un temps polynomial (en fonction des tailles du problème). Monte Carlo : comment représenter le problème comme un calcul de volume ? M2 ASS-ACSIS 2008, Université de Versailles St Quentin [284/324] M2 ASS-ACSIS 2008, Université de Versailles St Quentin [285/324] Simulation Sans Interaction • Simulation d’un processus (le temps et l’espace sont pris en compte) • Simulation d’une variable aléatoire : Monte Carlo seul l’espace est pris en compte M2 ASS-ACSIS 2008, Université de Versailles St Quentin [286/324] Méthodes de Monte Carlo Version élémentaire • Calculer l’intégrale d’une fonction événtuellement difficile sur une région peu régulière. • Compter des objets vérifiant une propriété, objets issus d’un ensemble fini de taille m mais où la complexité de génération est exponentielle en m. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [287/324] Algo : Volume • j := 1; S := 0; • tant que j ≤ n faire – Générer x(j) uniforme sur [0, 1]m – si x(j) ∈ R alors φ = 1 sinon φ = 0 – S := S + φ;j := j + 1; Plus rapide à converger que la version déterministe si m > 2. Hypothèse : x(j) ∈ R est relativement facile à calculer. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [288/324] Algorithme • On commence par calculer la connectivité c entre le source et la destination (algorithme de flot max) • Toute configuration avec moins de c pannes ne déconnecte pas le réseau. • Donc on générera uniquement les configurations avec au moins c pannes. • La fonction φ se calcule par un algorithme d’atteignabilité (DFS ou BFS) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [289/324] Génération d’entiers uniformes Dispositif Physique ou Algorithme : Problème de la reproductibilité : pouvoir reproduire la séquence et donc la trajectoire (par exemple pour debugger...) Problème du Test : pouvoir tester la séquence et ses propriétés statistiques. On choisit d’utiliser un algorithme... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [290/324] Principe de Base Utiliser une fonction f à n arguments pour générer la prochaine valeur. Les arguments sont les n valeurs précédentes de la série. xn+k = f (xn+k−1 , xn+k−2 , . . . , xk ) • Il faut n valeurs pour initialiser le processus (graines, semences, seed) • Comportement cyclique potentiel. Si on retombe sur une série de n valeurs déjà calculées, alors la suite de la série est la même. • La longueur du cycle dépend de la fonction mais aussi des racines. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [291/324] Informatique : les entiers et des réels informatiques sont codés sur un support fini. Conséquence : La séquence est finie, périodique et déterministe M2 ASS-ACSIS 2008, Université de Versailles St Quentin [292/324] La génération de nombres uniformes est une des fonctions les plus utilisées dans la dynamique de la simulation. Problème d’efficacité... Employer des opérateurs simples et rapides (arithmétique entière, décalage binaire) Compromis entre la complexité et des propriétés statistiques à vérifier. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [293/324] Contraintes sur les séquences générées • avoir une grande longueur avant de recommencer la séquence (longueur du cycle ou période). • réussir un test d’uniformité avec le degré de confiance choisi par l’utilisateur. • réussir un test d’indépendance entre deux valeurs successives avec le degré de confiance choisi par l’utilisateur. • réussir des test variés en fonction des besoins spécifiques (distributivité dans l’espace, autocorrélation). M2 ASS-ACSIS 2008, Université de Versailles St Quentin [294/324] 3 Principes • Ce n’est pas parce-que ca a l’air compliqué que c’est aléatoire.... • Chercher un algorithme récent étudié par un spécialiste... • Effectuer des tests en cas d’utilisation ”spéciale”... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [295/324] Générateurs simples • LCG : linear Congruential Generator • Générateur à décalage sur la représentation binaire M2 ASS-ACSIS 2008, Université de Versailles St Quentin [296/324] Générateur LCG La fonction f est linéaire et utilise une arithmétique modulo m. xn = axn−1 + b mod m où a et b sont positifs ou nuls. xn est un entier entre O et m − 1. On se ramène aux réels par division par m. yn = xn /m Donc yn ∈ [0, 1[. Attention la valeur 1 est exclue. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [297/324] Générateur à décalage xn est représenté comme un vecteur binaire. L’itération est xn+1 = T xn T est une matrice booléenne à diagonale constante (équivalente à un polynome) On peut effecteur l’opération T xn par un circuit. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [298/324] Propriétés simples des générateurs LCG • Période maximale m. • Une seule racine. • Pour faciliter les calculs, souvent m = 2k . → division et modulo = simples décalages de bits. • si b est nul, on parle de LCG multiplicatif. Calcul plus facile. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [299/324] Si b > 0, la période maximale m est obtenue si et seulement si les trois conditions suivantes sont satisfaites : • b et m sont premiers entre eux. • chaque entier premier diviseur de m est aussi diviseur de a − 1. • si m est multiple de 4, a − 1 doit être multiple de 4. Exemple : les générateurs de type m = 2k , a = 4c + 1, et b impair ont un cycle de longueur m. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [300/324] La longueur du cycle n’est pas tout; la corrélation entre deux valeurs successives est très importante. Exemples : xn = (234 + 1)xn−1 + 1 mod 235 xn = (218 + 1)xn−1 + 1 mod 235 Le premier a une autocorrélation d’ordre 1 de 0.25 alors que le second a une autocorrélation d’ordre 1 de 2−18 . M2 ASS-ACSIS 2008, Université de Versailles St Quentin [301/324] LCG multiplicatif Deux familles intéressantes : 1. m = 2k 2. m premier m = 2k • Opération modulo = décalage en binaire • période maximale m/4 • période maximale atteinte pour a = 8i ± 3 pour une racine initiale impaire M2 ASS-ACSIS 2008, Université de Versailles St Quentin [302/324] m premier • Période maximale : m − 1 • Impossible d’atteindre 0 (et de quitter cette valeur) • Pour obtenir la période maximale, il faut choisir a comme racine primitive de m. a est une racine primitive de m si et seulement si an − 1 n’est pas divisible par m pour tout n strictement inférieur Exemple, si m = 31, on peut prendre a = 3 car 3 est une racine primitive de 31. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [303/324] Problèmes d’Implémentation des générateurs LCG 1. Il faut toujours travailler sur de l’arithmétique entière exacte et non pas passer en réel et faire une troncature. 2. Vérifier que le type entier existe effectivement dans le langage et qu’il y a une arithmétique exacte associée. 3. il faut que l’opération de multiplication a × xn−1 ne provoque pas d’erreurs de débordement (dépassement de l’entier maximum). Sinon, le codage du générateur ne vérifie pas les propriétés enoncées. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [304/324] Méthode de Schrage Pour éliminer le problème du dépassement de l’entier maximal. a × x mod m = g(x) + m × h(x) q = (m div a) (48) r = (m mod a) (49) g(x) = a × (x mod q) − r × (x div q) (50) h(x) = (x div q) − (a × x div m) (51) Pour tout x de 0 à m − 1, les termes apparaissant dans le calcul de g(x) sont plus petits que m. De plus, si r < q, h(x) vaut 1 si g(x) est négatif et 0 si g(x) est positif. Il est inutile de calculer h. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [305/324] Exemple Méthode de Schrage Codage en Pascal du générateur xn = 75 × xn−1 mod (231 − 1). a × x peut atteindre à peu près 245 . Débordement possible sur une arithmétique 32 bits. a = 75 = 16807 m = 2147483647 On calcule q et r q = 12773 r = 2836 et donc q > r. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [306/324] Function Random(var x : integer) : real; const q = 12773; a = 16807; r = 2836; m = 2147483647 var x1,x2,g: integer; begin x1:= x div q; x2:= x mod q; g:=a*x2 - r*x1; if g<0 then x:=g+m else x:=g; Random:=x/m; end; M2 ASS-ACSIS 2008, Université de Versailles St Quentin [307/324] Problèmes et Conseils • Ne jamais utiliser la fonction random fournie par un langage non spécialisé sans l’avoir testée. • Ne jamais utiliser 0 comme racine, si le générateur est un LCG multiplicatif, on reste coincé à 0. • Ne jamais prendre de racines aléatoires (inconnues) ou dépendantes du système (horloge, pid). 2 Risques : non reproductibilité de la séquence et choix d’une mauvaise racine. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [308/324] Ne jamais supposer que si un nombre est aléatoire, un bit de sa représentation l’est également. Ne pas se servir de la représentation binaire de xn comme une chaı̂ne binaire aléatoire uniforme. Exemple, xn = (8789xn−1 + 16384) mod 216 initialisé à 1 • le bit 1 (le poids faible) est toujours 1 • le bit 2 est toujours 0 • le bit 3 suit la séquence 01 • le bit 4 suit la séquence 0110 • le bit 5 suit un cyle 11010010 • plus généralement le bit l suit un cycle de longueur 2l−2 . Cette propriété est toujours vraie pour les générateurs LCG avec m = 2k . Les bits de poids faible sont ”peu aléatoires”. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [309/324] Exemple d’erreurs provoquées par un générateur de ce type A B C D Figure 9: Réseau Multi-étages Modèle du routage : indépendant, à chaque switch on choisit la destination avec probabilité 1/2. Conclusion du modèle: Chaque switch du 2ème étage traite 1/4 du trafic. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [310/324] Implémentation à l’aide du générateur précédent et on utilise les bits 1 et 2 des entiers générés pour faire le routage : 0 pour sortie haute, 1 pour sortie basse. Conclusion de la simulation : le switch C traite la totalité du trafic. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [311/324] • Plus généralement, pour éviter les dépendances, éviter que les séquences ne se chevauchent : – déterminer la longueur de la simulation en nombre de tirages aléatoires pour chaque source (N). – évaluer à part les différentes racines : x0 , xN , x2N , etc. xN = f (N ) (x0 ) x2N = f (2N ) (x0 ) M2 ASS-ACSIS 2008, Université de Versailles St Quentin [312/324] Problème de la k-distributivité Illustrons le problème: • xn = (216 + 3)xn−1 mod 231 est un générateur utilisé par IBM dans les années 60, sous le nom de RANDU. • Il existe une version pour micro 16 bits de ce générateur xn = (28 + 3)xn−1 mod 215 . Les deux sont à éviter.... • si on prend 3 points successifs comme coordonnées (x, y, z), tous les points ainsi générés se devraient remplir tout le cube. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [313/324] Figure 10: Triplets de points construits par RANDU M2 ASS-ACSIS 2008, Université de Versailles St Quentin [314/324] Figure 11: Triplets de points construits par RANDU, changement d’angle de vue M2 ASS-ACSIS 2008, Université de Versailles St Quentin [315/324] Tous les points ainsi générés se situent sur 15 plans et non pas dans tout le cube. Le problème est général à tous les générateurs LCG. Tous les k-uplets sont dans au plus (k!m)1/k hyperplans parallèles. Illustration en dimension 2 : des droites.... M2 ASS-ACSIS 2008, Université de Versailles St Quentin [316/324] 30 "generateur.data" 25 20 15 10 5 0 0 5 10 15 20 25 30 Figure 12: Pavage par un LCG M2 ASS-ACSIS 2008, Université de Versailles St Quentin [317/324] Amélioration des LCG par combinaison Méthode de la Table (Knuth) On utilise deux générateurs xn et yn . 1. On initialise un tableau T de taille k avec k valeurs successives du générateur xn . 2. On utilise yn normalisé entre 1 et k. yn = i 3. On retourne T (i), 4. On calcule une nouvelle valeur de xn à ranger dans T (i) 5. On recommence en 2 M2 ASS-ACSIS 2008, Université de Versailles St Quentin [318/324] • Les mauvaises propriétés des LCG se transmettent aux algorithmes qui les empmloient. • 3 exemples d’algo de Box et Muller pour générer des lois normales. • Ne pas croire que NS2 ou les autres logiciels n’ont pas ce type de problème. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [319/324] Figure 13: Box Muller et LCG: exemple M2 ASS-ACSIS 2008, Université de Versailles St Quentin [320/324] Figure 14: Box Muller et LCG: autre exemple M2 ASS-ACSIS 2008, Université de Versailles St Quentin [321/324] Figure 15: Box Muller et LCG: dernier exemple M2 ASS-ACSIS 2008, Université de Versailles St Quentin [322/324] Bibliographie • Simulation Modeling and Analysis, A. Law, D. Kelton, Mac Graw Hill. • Méthodes statistiques à l’usage des médecins et des biologistes, D. Schwartz, Flammarion, coll. Médecine-Sciences • Monte Carlo, concepts, algorithms, and applications, G.S. Fishman, Springer • Simulation model design and execution : building digital worlds, P. Fishwick, Prentice Hall. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [323/324] Bibliographie • Introduction to numerical solution of Markov chains, W.J. Stewart, Princeton University Press, 1994 • Raj Jain, ”The Art of Computer Systems Performance Analysis”, Wiley, 1991 • Mike Tanner, ”Practical Queueing Analysis”, IBM-Mac Graw Hill, 1995 • D.A. Menasce, V.A.F. Almeida, ”Capacity Planning for Web Performance”, 1998 • R.A. Sahner, K.S. Trivedi, A. Puliafito, Performance and reliability analysis of computer systemsn Kluwer Academic Press. M2 ASS-ACSIS 2008, Université de Versailles St Quentin [324/324]