Chapitre 4 : Files d attente



Documents pareils
Introduction à la théorie des files d'attente. Claude Chaudet

14. Introduction aux files d attente

Commun à tous les candidats

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Texte Agrégation limitée par diffusion interne

Probabilités sur un univers fini

Représentation d un entier en base b

STAGE IREM 0- Premiers pas en Python

Cours d algorithmique pour la classe de 2nde

Licence Sciences et Technologies Examen janvier 2010

Cours 7 : Utilisation de modules sous python

Simulation de variables aléatoires

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes.

Initiation à la programmation en Python

Introduction. Mathématiques Quantiques Discrètes

BTS Groupement A. Mathématiques Session Spécialités CIRA, IRIS, Systèmes électroniques, TPIL

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Quantification Scalaire et Prédictive

Puissances d un nombre relatif

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)

Chapitre 7. Récurrences

KPI (Key Performance Indicator) dans MOSS

Initiation à l algorithmique

Optimisation, traitement d image et éclipse de Soleil

La fonction exponentielle

Circuits RL et RC. Chapitre Inductance

Chapitre 7 : Intégration sur un intervalle quelconque

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Septembre Kit Intégration Commercium. Introduction. Version 1.0

Statistiques Descriptives à une dimension

Chapitre 2. Eléments pour comprendre un énoncé

Information sur le projet

Image d un intervalle par une fonction continue

Suites numériques 3. 1 Convergence et limite d une suite

Leçon n 4. Analyse graphique Techniques de construction de barres et styles de. Fenêtres d analyse graphique. Leçon n 4

Programmes des classes préparatoires aux Grandes Ecoles

Équation de Langevin avec petites perturbations browniennes ou

Chapitre 2 Devine mon nombre!

FIMA, 7 juillet 2005

Continuité et dérivabilité d une fonction

Suites numériques 4. 1 Autres recettes pour calculer les limites

Processus de comptage, Poisson mélange, fonction de perte exponentielle, système bonus-malus.

Chapitre 1 : Évolution COURS

I3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M

Processus aléatoires avec application en finance

Finance, Navier-Stokes, et la calibration

Moments des variables aléatoires réelles

Résonance Magnétique Nucléaire : RMN

Introduction à l analyse numérique : exemple du cloud computing

TSTI 2D CH X : Exemples de lois à densité 1

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Calcul Formel et Numérique, Partie I

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Génie Logiciel avec Ada. 4 février 2013

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Groupe symétrique. Chapitre II. 1 Définitions et généralités

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Chapitre 0 Introduction à la cinématique

Travaux dirigés d introduction aux Probabilités

Les correcteurs accorderont une importance particulière à la rigueur des raisonnements et aux représentations graphiques demandées.

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Statistique : Résumé de cours et méthodes

EPFL TP n 3 Essai oedomètrique. Moncef Radi Sehaqui Hamza - Nguyen Ha-Phong - Ilias Nafaï Weil Florian

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Voici une demande qui revient régulièrement lors de mes rencontres avec les employeurs :

Master4Light. Caractérisation Optique et Electrique des Sources Lumineuses. Equipement 2-en-1 : source de courant et spectrophotomètre

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

MODELES DE DUREE DE VIE

Logiciel de Base. I. Représentation des nombres

pyensae StockPrices September 1, Manipulation de séries financières avec la classe StockPrices

MATHÉMATIQUES APPLIQUÉES S4 Exercices

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Interest Rate for Customs Purposes Regulations. Règlement sur le taux d intérêt aux fins des douanes CONSOLIDATION CODIFICATION

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Quelques tests de primalité

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

2. CONSTRUIRE LE CONCEPT DE. la dialectique enseigner / apprendre

Algorithmes pour la planification de mouvements en robotique non-holonome

Partie 1 - Séquence 3 Original d une fonction

Présentation du langage et premières fonctions

Qu est-ce qu une probabilité?

Contents. 1 Introduction Objectifs des systèmes bonus-malus Système bonus-malus à classes Système bonus-malus : Principes

I. Polynômes de Tchebychev

Limites finies en un point

Files d attente (1) F. Sur - ENSMN. Introduction. 1 Introduction. Vocabulaire Caractéristiques Notations de Kendall Loi de Little.

Pourquoi l apprentissage?

Programmes des classes préparatoires aux Grandes Ecoles

Entiers aléatoires et analyse harmonique

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Développement décimal d un réel

Table des matières. I Mise à niveau 11. Préface

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Ré-ordonnancement adaptatif de messages dans un réseau ad hoc de véhicules

1 Position du problème

Etude du niveau stress ressenti par les salariés de plusieurs entreprises du tertiaire. Un outil de mesure.

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

COMPETENCE INFRASTRUCTURES DE CHARGE POUR VEHICULES ELECTRIQUES

Collège St JO Votre avis nous intéresse

Transcription:

Chapitre 4 : Files d attente Alexandre Blondin Massé Laboratoire d informatique formelle Université du Québec à Chicoutimi 23 mai 2014 Cours 8INF802 Département d informatique et mathématique A. Blondin Massé (UQAC) 23 mai 2014 1 / 59

Files d attente Les problèmes de files d attente surviennent dans des contextes très variés : Lignes aériennes; Transplantation d organes; Cour de Justice; Traitement de processus informatiques; Prendre de l essence dans une station-service; Transactions quotidiennes à la banque, etc. A. Blondin Massé (UQAC) 23 mai 2014 3 / 59

Intérêt Plusieurs problèmes de files d attente ont des solutions analytiques; Autrement, on peut toujours recourir à des simulations; Dans les applications concrètes, les solutions permettent de réduire substantiellement les coûts; Elles facilitent également la prise de décision. A. Blondin Massé (UQAC) 23 mai 2014 4 / 59

Trois entités de base Les trois entités de base d un système de file d attente sont : 1. Le client, qui est la personne ou la chose qui attend un service; 2. Le serveur, qui est la personne ou la chose qui fournit un service; 3. La file d attente, qui est un groupe de clients attendant un service. Elle peut être ordonnée ou non. L identification de ces entités est parfois complexe. A. Blondin Massé (UQAC) 23 mai 2014 5 / 59

Client La description du temps d arrivée des clients s appelle processus d arrivée; Est-ce que les arrivées sont indépendantes? par groupe? Y a-t-il des moments de grand achalandage? Souvent, on choisit une loi de probabilité qui décrit les arrivées en question; Certaines actions peuvent être effectuées par les clients; Renoncer (en anglais, reneging) : le client quitte avant d être servi; Changer de file (en anglais, jockeying); Ces actions rendent souvent l analyse plus complexe. A. Blondin Massé (UQAC) 23 mai 2014 6 / 59

Serveur Il s agit de l entité qui accède aux requêtes des clients; Le temps de service peut aussi être décrit par une loi de probabilité ou être entièrement déterministe; Est-ce que le service se fait à l unité? par groupe? Est-ce que le temps de service dépend du type de client? du moment de la journée? La configuration des serveurs peut également influencer : Combien y a-t-il de serveurs? Sont-ils identiques et peuvent offrir le service en parallèle? Ou plutôt en série? A. Blondin Massé (UQAC) 23 mai 2014 7 / 59

Files d attente Plusieurs façons de gérer la file; Premier arrivé, premier servi (FIFO); Avec priorité? Il peut y avoir différents types de files; Combien y en a-t-il? A. Blondin Massé (UQAC) 23 mai 2014 8 / 59

Banque Client? Celui qui effectue une transaction ou la transaction elle-même; Serveur? Le commis, l ordinateur central ou le guichet automatique; Typiquement, on a une file d attente et plusieurs serveurs. A. Blondin Massé (UQAC) 23 mai 2014 9 / 59

Supermarché Client? Celui qui achète, les items achetés, le paiement; Serveur? Le caissier, la caisse-enregistreuse, le scanner, l emballeur; Typiquement, on a une file d attente par serveur. A. Blondin Massé (UQAC) 23 mai 2014 10 / 59

SAAQ Client? Plusieurs types possibles (renouvellement, nouveau permis, etc.); Files d attente? Différents types aussi (prise de photo, traitements courants, transferts de véhicule). A. Blondin Massé (UQAC) 23 mai 2014 11 / 59

Temps dans le système : le temps d attente plus le temps de service. A. Blondin Massé (UQAC) 23 mai 2014 13 / 59 Mesures de performance Lorsqu on modélise un système de file d attente, plusieurs statistiques sont intéressantes; Temps d arrivé : le temps où le client arrive dans la file; Temps de départ : le temps où le client quitte la file, après avoir été servi; Temps de départ de la file : le temps où le client quitte la file et commence à être servi; Temps d attente : le temps de départ de la file moins le temps d arrivée; Temps de service : le temps de départ moins le temps de départ de la file;

Critères du client Temps d attente : idéalement le plus court possible; Temps de service : parfois considéré moins coûteux que le temps d attente; Coût d attente : certains clients ont un coût d attente plus élevé que d autres; Services complétés à temps : Le nombre de services complétés avant une limite; Retard : Si le service est terminé en retard, l importance du retard peut aussi être considérée. A. Blondin Massé (UQAC) 23 mai 2014 14 / 59

Performance du serveur Temps de service : plus il est court, plus efficace le service est; Proportion d utilisation : pourcentage du temps où le serveur est en service; Rythme de service : le rythme auquel les clients sont servis; Proportion d abandon : le pourcentage de clients qui quittent avant d être servis; Longueur de la file : une longue file demande plus d espace. A. Blondin Massé (UQAC) 23 mai 2014 15 / 59

Diagrammes cumulatifs (1/2) On introduit la notation suivante : A(t) est le nombre de clients arrivés entre 0 et t; D s (t) est le nombre de clients qui ont quitté le système entre 0 et t; D s (t) est le nombre de clients qui ont quitté la file entre 0 et t; Client Arrivée Service Départ du système 1 9:36 9:36 9:40 2 9:37 9:40 9:44 3 9:38 9:44 9:48 4 9:40 9:48 9:52 5 9:45 9:52 9:56 A. Blondin Massé (UQAC) 23 mai 2014 16 / 59

Diagrammes cumulatifs (2/2) 5 4 A(t) D q(t) D s(t) 3 2 1 0 9:30 9:40 9:50 10:00 Les temps d attente correspondent à des distances horizontales; La longueur de la file correspond à des distances verticales. A. Blondin Massé (UQAC) 23 mai 2014 17 / 59

Nombre de clients On utilise la notation suivante : L q (t) est le nombre de clients dans la file au temps t; L s (t) est le nombre de clients dans le système au temps t; 5 4 3 2 1 L q(t)l s(t) 0 9:30 9:40 9:50 10:00 A. Blondin Massé (UQAC) 23 mai 2014 18 / 59

Temps d attente (1/2) Les fonctions A, D q et D s sont inversibles : A 1 (n) est le temps de la n-ième arrivée d un client; Dq 1 (n) est le temps du n-ième départ de la file; Ds 1 (n) est le temps du n-ième départ du système; n A 1 (n) D 1 q (n) D 1 s (n) 1 9:36 9:36 9:40 2 9:37 9:40 9:44 3 9:38 9:44 9:48 4 9:40 9:48 9:52 5 9:45 9:52 9:56 A. Blondin Massé (UQAC) 23 mai 2014 19 / 59

Temps d attente (2/2) On en vient naturellement à définir les quantités suivantes : Wq (n) est le temps d attente dans la file du n-ième client; Ws (n) est le temps d attente dans le système du n-ième client. Clairement, si la file d attente est du type FIFO, alors W q (n) = Dq 1 (n) A 1 (n) W s (n) = Ds 1 (n) A 1 (n). A. Blondin Massé (UQAC) 23 mai 2014 20 / 59

Utilisation du serveur En tout temps, le nombre de serveurs occupés est donné par D q (t) D s (t), qui correspond au nombre de clients en service; L utilisation moyenne est le nombre moyen de serveurs occupés par rapport au temps; La proportion d utilisation est égale à l utilisation moyenne divisée par le nombre total de serveurs disponibles; Le temps d inactivité est le temps pendant lequel 1. D q (t) D s (t) est plus petit que le nombre de serveurs et 2. A(t) D q (t) = L q (t) est plus grand que 0. Pour mesurer le nombre de clients qui renoncent, il faut utiliser un diagramme supplémentaire. A. Blondin Massé (UQAC) 23 mai 2014 21 / 59

Statistiques sur le temps d attente La distribution du temps d attente est une mesure très précieuse de la performance du système; Les temps d attente moyen sont calculés comme suit : N n=1 W q = W q(n), N N n=1 W s = W s(n). N Et pour évaluer la dispersion des données, on calcule l écart-type : σ Wq = σ Ws = N N n=1 [W q(n) W q ] 2, N n=1 [W s(n) W s ] 2. N A. Blondin Massé (UQAC) 23 mai 2014 22 / 59

Statistiques sur la longueur de la file Il en va de même pour la distribution de la longueur de la file; La longueur moyenne est donnée par Et l écart-type est L q = L s = b a L q(t)dt, b a b a L s(t)dt. b a σ Lq = σ Ls = b a [L q(t) L q ] 2 dt, b a b a [L s(t) L s ] 2 dt. b a A. Blondin Massé (UQAC) 23 mai 2014 23 / 59

Formule de Little (1/2) 5 4 3 2 1 0 Il est clair que N W q (n) = n=1 b a L q (t)dt. où [a, b] commence/termine avec 0 client. De la même façon N W s (n) = n=1 a A. Blondin Massé (UQAC) 23 mai 2014 24 / 59 b L s (t)dt.

Formule de Little (2/2) Par conséquent, NW q = (b a)l q. Soit λ = N/(b a) le nombre moyen de clients qui arrivent par unité de temps; Alors les formules suivantes sont vérifiées peu importe le type de file d attente impliquée : Formules de Little L q = λw q L s = λw s. A. Blondin Massé (UQAC) 23 mai 2014 25 / 59

Remarques additionnelles Lorsqu il y a plusieurs serveurs, les diagrammes cumulatifs sont également adéquats; En revanche, si la file n est pas de type FIFO, la lecture du diagramme doit être faite différemment; Par exemple, si on a un système LIFO, alors le temps moyen est le même, mais l écart-type augmente; A. Blondin Massé (UQAC) 23 mai 2014 26 / 59

Techniques de mesure La mesure des différentes quantités pour évaluer la performance d un système peut être très simple ou compliquée; Lorsque le système n est pas complètement informatisé, certaines informations peuvent être difficiles ou impossibles à enregistrer : Un tourniquet dans un métro; Une carte magnétique; L anonymat de certains systèmes; La taille importante; etc. A. Blondin Massé (UQAC) 23 mai 2014 27 / 59

Arrivée des clients Lorsqu on simule l arrivée des clients, il faut évidemment un modèle approprié; Il s avère que le processus de Poisson est souvent un excellent candidat : Il s agit d un processus très simple; Il donne des résultats très réalistes. Permet de modéliser de nombreux phénomènes physiques ou issus d autres domaines. A. Blondin Massé (UQAC) 23 mai 2014 29 / 59

Processus Un processus de comptage est une fonction N(t) telle que 1. N(t) 0, pour t R; 2. N(t) est entier pour t R; 3. Si s t, alors N(s) N(t) peu importe s, t R. On dit d un processus de comptage qu il a des incréments indépendants si le nombre d événements de toute paire d intervalles de temps disjoints sont statistiquement indépendants; On dit d un processus de comptage qu il a des incréments stationnaires si le nombre d événements dans un intervalle de temps ne dépend que de la longueur de l intervalle. A. Blondin Massé (UQAC) 23 mai 2014 30 / 59

Processus de Poisson (1/2) Plus formellement, un processus de Poisson de moyenne λ est un processus de comptage N(t) si 1. Le processus a des incréments indépendants; 2. Le processus a des incréments stationnaires; 3. Pour tout nombre dt suffisamment petit, P (N(t + dt) N(t) = 0) = 1 λdt P (N(t + dt) N(t) = 1) = λdt P (N(t + dt) N(t) > 1) = 0 Le paramètre λ indique le nombre moyen de clients qui arrivent par unité de temps; Par exemple, si λ = 10/heure, alors on s attend à ce qu il y ait 5 clients qui arrivent dans un intervalle de 30 minutes. A. Blondin Massé (UQAC) 23 mai 2014 31 / 59

Processus de Poisson (2/2) Évidemment, le nombre de clients arrivant dans un intervalle de temps donné peut être complètement différent de λ = 10/heure; De plus, si on prend un petit intervalle de temps, par exemple 1 seconde, alors la probabilité qu un client arrive dans cet intervalle est d environ 10/3600 = 0.00278; En d autres mots, 1. La probabilité qu un client arrive à un moment donné ne dépend pas de l arrivée des autres clients; 2. La probabilité qu un client arrive à un moment donné ne dépend pas du temps en question; 3. Les clients arrivent un seul à la fois. A. Blondin Massé (UQAC) 23 mai 2014 32 / 59

Distribution de Poisson Rappelons qu une variable aléatoire X suit une loi de Poisson si sa fonction de masse est où λ est une constante; f(x) = (λt)x e λt, x = 0, 1, 2,..., x! Une façon alternative de définir un processus de Poisson est de dire que 1. C est un processus avec incréments indépendants; 2. Le nombre d événements dans n importe quel intervalle de temps de longueur t suit un loi de Poisson de moyenne λt. A. Blondin Massé (UQAC) 23 mai 2014 33 / 59

Temps entre arrivées des clients Rappelons que la distribution exponentielle est une loi continue dont les fonctions de densité et de répartition sont f(x) = λe λx, x 0 F (x) = 1 e λx, x 0. En particulier, si X suit une loi exponentielle et que N(t) est un processus de Poisson, alors P (X t) = 1 F (t) = e λt = P (N(t) = 0). On en conclut donc que les temps entre les arrivées suivent des lois exponentielles indépendantes de moyenne 1/λ. A. Blondin Massé (UQAC) 23 mai 2014 34 / 59

Estimation des paramètres En pratique, on ne connaît pas λ et il faut l estimer; Il existe de nombreux tests statistiques et techniques d estimation de paramètres pour calculer cette valeur : Maximum de vraisemblance; Intervalle de confiance; Test d adéquation; Test d indépendance. En particulier, on peut vérifier si un modèle par processus de Poisson semble adéquat dans une situation; On peut aussi identifier les sous-intervalles pertinents (par exemple, l avant-midi, λ = 10, l après-midi, λ = 15). A. Blondin Massé (UQAC) 23 mai 2014 35 / 59

Simulation de variables aléatoires Nous avons vu aux cours précédents comment simuler Une loi uniforme à l aide d un générateur pseudo-aléatoire; Une loi de Poisson et une loi exponentielle à l aide de la transformation inverse; Une loi normale à l aide du théorème de Box-Müller; A. Blondin Massé (UQAC) 23 mai 2014 37 / 59

Simulation d un processus de Poisson Première méthode : On calcule les temps entre les arrivées; Pour cela, il suffit de simuler des variables exponentielles; Deuxième méthode : On simule d abord une variable de Poisson sur un intervalle [a, b]; Puis on simule des variables uniformes autant de fois que la valeur obtenu pour la variable de Poisson; Finalement, on trie en ordre croissant les temps d arrivée ainsi générés. A. Blondin Massé (UQAC) 23 mai 2014 38 / 59

Simulation d un processus de renouvellement Une généralisation naturelle d un processus de Poisson est appelée processus de renouvellement; Le temps entre les arrivées est toujours indépendant; De plus, le temps entre les arrivées est identiquement distribué; Par contre, les temps d arrivée ne sont pas indépendants; Autrement dit, les incréments ne sont pas indépendants; Cela permet d avoir une distribution autre que la distribution exponentielle pour les temps entre les arrivées. A. Blondin Massé (UQAC) 23 mai 2014 39 / 59

Temps d arrivée dépendants On s intéresse à l achalandage de voitures sur une autoroute; À une borne donnée, on enregistre le passage des voitures; On suppose que les intervalles de temps entre les arrivées sont indépendants; Par contre, on remarque qu il est impossible que deux voitures passent au marqueur dans un intervalle plus petit que 1 seconde. La distribution des temps entre arrivée T i est donc une exponentielle décalée { 0, si h < a; P (T i h) = 1 e λ(th a), si h a. A. Blondin Massé (UQAC) 23 mai 2014 40 / 59

Simulation d une file d attente Il faut tenir compte du temps de service et des arrivées des clients. Le modèle le plus simple est celui où Le temps de service ne dépend pas des temps d arrivée ni de la longueur de la file; Les clients arrivent selon un processus de Poisson. Dans ce cas, on parle d une simulation à événements discrets; Un autre type de simulation est la simulation en temps réel ou simulation chronologique. A. Blondin Massé (UQAC) 23 mai 2014 41 / 59

Notation On introduit la notation suivante : A(t) est l ensemble des clients qui sont arrivés avant t; A(t) est l ensemble des clients qui ne sont pas arrivés avant t; D(t) est l ensemble des clients qui ont quitté le système avant t; D(t) est l ensemble des clients qui n ont pas quitté le système avant t; S(n) est le temps de service pour le client n. A. Blondin Massé (UQAC) 23 mai 2014 42 / 59

Exemple Considérons les données suivantes : n A 1 (n) S(n) 1 9:05 4 min 2 9:08 7 min 3 9:12 2 min 4 9:20 6 min 5 9:25 7 min Alors A(9:15) = {1, 2, 3} A(9:15) = {4, 5}. A. Blondin Massé (UQAC) 23 mai 2014 43 / 59

Calcul des événements (1/3) Tout d abord, on calcule le moment du prochain événement à partir de t; Il y a deux possibilités, (1) une nouvelle arrivée ou (2) un départ du système; Le moment du prochain événement est donc { T (t) = min min A 1 (n), min Ds 1 (n) n A(t) n D(t) Ensuite, on met à jour le système selon l événement; }. A. Blondin Massé (UQAC) 23 mai 2014 44 / 59

Calcul des événements (2/3) Si le prochain événement est une arrivée, alors 1. On incrémente A(t) de 1; 2. On met à jour les ensembles A(t) et A(t); 3. S il y a un serveur disponible, (a) On incrémente D q (t) de 1; (b) On enregistre le temps de départ du système de ce client à t + S(n). A. Blondin Massé (UQAC) 23 mai 2014 45 / 59

Calcul des événements (3/3) Si le prochain événement est un départ du système, alors 1. On incrémente D s (t) de 1; 2. On met à jour les ensembles D(t) et D(t); 3. S il y a un client dans la file, (a) On incrémente D q (t) de 1; (b) On choisit le client le plus prioritaire; (c) On enregistre son temps de départ à t + S(n). Puis on recalcule T (t). A. Blondin Massé (UQAC) 23 mai 2014 46 / 59

Exemple Reprenons l exemple n A 1 (n) S(n) 1 9:05 4 min 2 9:08 7 min 3 9:12 2 min 4 9:20 6 min 5 9:25 7 min Alors on obtient les valeurs suivantes : Temps A(t) D(t) A(t) D q(t) D s(t) Événement 9:00 0 0 0 Initialisation 9:05 {1} 1 1 0 Arrivée 9:08 {1, 2} 2 1 0 Arrivée 9:09 {1, 2} 2 2 1 Départ 9:12 {1, 2, 3} {1} 3 2 1 Arrivée 9:16 {1, 2, 3} {1, 2} 3 3 2 Départ 9:18 {1, 2, 3} {1, 2, 3} 3 3 3 Départ 9:20 {1, 2, 3, 4} {1, 2, 3} 4 4 3 Arrivée 9:25 {1, 2, 3, 4, 5} {1, 2, 3} 5 4 3 Arrivée 9:26 {1, 2, 3, 4, 5} {1, 2, 3, 4} 5 5 4 Départ 9:33 {1, 2, 3, 4, 5} {1, 2, 3, 4, 5} 5 5 5 Départ A. Blondin Massé (UQAC) 23 mai 2014 47 / 59

Temps de service Souvent, les temps d arrivée sont modélisés par des processus de Poisson; En revanche, les temps de service varient énormément : Temps constant; Loi exponentielle; Loi normale; Loi gamma, etc. Souvent, le temps de service peut être prédit si on connaît le type de client; Par exemple, au supermarché, le temps dépend du nombre d articles. A. Blondin Massé (UQAC) 23 mai 2014 48 / 59

Notation de Kendall La notation de Kendall est utilisée pour décrire les paramètres d une file d attente : où A/S/c/K/N/D A est la distribution de probabilité des temps entre les arrivées; S est la distribution de probabilité du temps de service; c est le nombre de serveurs; K est la capacité de la file d attente; N est la taille de la population de clients; D est la discipline de la file. A. Blondin Massé (UQAC) 23 mai 2014 49 / 59

Valeurs classiques Pour les temps entre les arrivées et les temps de service : M : Markov, pour un processus de Poisson; MMP P : Markov modulated Poisson process, pour les arrivées en groupes; D : déterministe; G : générale. Le nombre de serveurs : 1 ou c; La capacité de la file : finie ou infinie; La taille de la population : finie ou infinie; Discipline : FIFO, LIFO, avec priorité, aléatoirement. A. Blondin Massé (UQAC) 23 mai 2014 50 / 59

Solutions analytiques Des solutions analytiques (complètes ou partielles) sont connues pour plusieurs types de files d attente M/M/1; M/M/c; M/M/ ; M/M/c/K; M/G/1/ etc. A. Blondin Massé (UQAC) 23 mai 2014 51 / 59

SimPy SimPy est un ensemble de fonctions et de services permettant de simuler des événements discrets; Il est basé sur le langage Python; Les générateurs Python permettent de modéliser les processus ou les agents du système; Les simulations peuvent être exécutées en temps réel ou manuellement; Pas approprié pour les simulations continues. A. Blondin Massé (UQAC) 23 mai 2014 53 / 59

Simulation de chronomètres import simpy # A Python generator simulating a clock def clock(env, name, tick): while True: print(name, "{0:.2f}".format(env.now)) yield env.timeout(tick) # Setting up the environment env = simpy.environment() env.process(clock(env, fast, 0.4)) # A fast clock env.process(clock(env, slow, 1)) # A slow clock # Running the simulation env.run(until=10) Résultat : ( fast, 0.00 ) ( slow, 0.00 ) ( fast, 0.40 ) ( fast, 0.80 ) ( slow, 1.00 ) ( fast, 1.20 ) ( fast, 1.60 ) ( slow, 2.00 ) ( fast, 2.00 ) ( fast, 2.40 ) ( fast, 2.80 ) A. Blondin Massé (UQAC) 23 mai 2014 54 / 59

Chaîne de Markov On peut facilement modéliser des chaînes de Markov à l aide de SimPy; Essayons ensemble de modéliser l exemple de la météo : 1/2 Neige 1/2 1/4 1/4 1/4 Soleil 1/2 1/4 Pluie 1/2 A. Blondin Massé (UQAC) 23 mai 2014 55 / 59

File d attente (1/3) from simpy import Environment, Resource from simpy.rt import RealtimeEnvironment # In real-time? realtime = True # Deterministic data simulation clients = [(5, 4), (8, 7), (12, 2), (20, 6), (25, 7)] # Customers def customer(environment, name, server, arrival_time, service_time, waiting_times): # Simulating arrival time yield environment.timeout(arrival_time) # Requesting server print( %s arriving at %d % (name, environment.now)) with server.request() as req: yield req # Updating waiting time log waiting_times[name] = environment.now - arrival_time # Receiving service print( %s receiving service at %s % (name, environment.now)) yield environment.timeout(service_time) print( %s leaving the server at %s % (name, environment.now)) A. Blondin Massé (UQAC) 23 mai 2014 56 / 59

File d attente (2/3) # Setting up the environment if realtime: environment = RealtimeEnvironment(factor=0.5) else: environment = Environment() server = Resource(environment, capacity=1) waiting_times = {} for (i, (arrival_time, service_time)) in enumerate(clients): environment.process(customer(environment, Customer %d % (i + 1), server, arrival_time, service_time, waiting_times)) # Running the simulation print( Simulation ) print( ---------- ) environment.run() print # Display waiting times print( Waiting times ) print( ------------- ) plural = lambda v: if v in (0,1) else s for (customer, waiting_time) in sorted(waiting_times.items()): print( %s has waited %s minute%s % (customer, waiting_time, plural( waiting_time))) A. Blondin Massé (UQAC) 23 mai 2014 57 / 59

File d attente (3/3) Résultat : Simulation ---------- Customer 1 arriving at 5 Customer 1 receiving service at 5 Customer 2 arriving at 8 Customer 1 leaving the server at 9 Customer 2 receiving service at 9 Customer 3 arriving at 12 Customer 2 leaving the server at 16 Customer 3 receiving service at 16 Customer 3 leaving the server at 18 Customer 4 arriving at 20 Customer 4 receiving service at 20 Customer 5 arriving at 25 Customer 4 leaving the server at 26 Customer 5 receiving service at 26 Customer 5 leaving the server at 33 Waiting times ------------- Customer 1 has waited 0 minute Customer 2 has waited 1 minute Customer 3 has waited 4 minutes Customer 4 has waited 0 minute Customer 5 has waited 1 minute n A 1 (n) S(n) 1 9:05 4 min 2 9:08 7 min 3 9:12 2 min 4 9:20 6 min 5 9:25 7 min A. Blondin Massé (UQAC) 23 mai 2014 58 / 59

Deux exemples Simulation d une banque : On illustre le cas où certains clients renoncent (en anglais «reneging»); Voir fichier bank.py. Simulation d une station-service : Dans ce cas, il y a plusieurs serveurs; Lorsqu il n y a plus d essence dans les pompes, on remplit le réservoir commun; Voir fichier gas_station.py. A. Blondin Massé (UQAC) 23 mai 2014 59 / 59