Chapitre IV Développement du modèle. Chapitre IV - Développement du modèle2 INTRODUCTION STRUCTURES DE DONNÉES & IMPLANTATION Dans un programme de simulation,

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module 5 : Implémentation de l'impression
Chapitre 9 La mécanique de Newton.
Sémantique des déclarations pour le langage Z minimal
10/31/02 Leïla Merghem - LIP6 Une approche Multi-Agents pour la Simulation de Réseaux de Télécommunications Leïla Merghem (LIP 6) Dominique Gaïti (LIP.
Structures de données et complexité
Test de Systèmes Intégrés Digitaux et Mixtes
Au programme du jour …. Un peu plus de structures de données
Présentation des programmes de terminale STG Juin 2006.
Collecte de données F. Kohler.
Cours n° 8 Conception et Programmation à Objets
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
Méthodes de simulation
C.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
PREMIER MINISTERE BURKINA FASO
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Introduction au Génie Logiciel
Parcours de formation SIN-7
Heuristiques A. Introduction B. Recherche d ’une branche
Groupe 1: Classes de même intervalle
Discussion sur la plate-forme MIMOSA Jean-Pierre Müller, CIRAD-TERA Équipe "Dynamique et usage des ressources et modélisation des systèmes complexes"
Algorithmique et Programmation
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Standard Template Library (STL)
Structures de données IFT-2000
Sections sélectionnées du Chapitre 11
Gestion des événements liés à la fenêtre et aux périphériques dentrée.
Allocation de mémoire Allocation de mémoire.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Simulation dun système dinventaire. Simulation d'un système d'inventaire2 Énoncé du problème L'entreprise vend un seul produit. Elle veut déterminer combien.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Système à temps partagé
Présentation Structures de Données et TDA
Vérification et validation du modèle. 2 Vérification:Est-ce que le programme de simulation correspond vraiment au modèle?(notion de programme correct)
Universté de la Manouba
Algorithmes probabilistes
Chapitre 9 Les sous-programmes.
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Standard Template Library
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Texture 2D en PGC++.
Structures de données IFT-10541
Introduction à la programmation orientée objets
Vue d'ensemble Surveillance des journaux d'événements
1 Modèles de particules Reeves, W. T., "Particle Systems - A technique for Modeling a Class of Fuzzy Objects," SIGGRAPH 83, Reeves, W. T., and.
(Vient du grec et signifie « Peut prendre plusieurs formes »)
La notion de type revisitée en POO
11/04/ L'héritage Cours 7 Cours 7.
Arbres binaires et tables de hachage
Foued Mnasri Weal Rekik
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Les processus métiers : concepts, modèles et systèmes Claude Godart Université de lorraine. Esstin
ETNA – 1ème année Guillaume Belmas –
1.1 Définition d’un « service informatique » Un service informatique est un moyen permettant de générer une valeur ajoutée sans que le client ait à supporter.
ISBN Chapitre 10 L'implémentation des sous- programmes.
Chapitre 3: Variables aléatoires réelles continues
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
MOCK.
Théorie de Files d’Attente
Sujet 5 : Intégration d’une loi d’ordonnancement dans un modèle
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
20/06/2015propagation de signatures lexicales dans le graphe du Web 1 Propagation de signatures lexicales dans le graphe du Web M. Bouklit M. Lafourcade.
Algorithmique Tableaux de données
LES TABLEAUX Définition: Création d’un tableau:
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Transcription de la présentation:

Chapitre IV Développement du modèle

Chapitre IV - Développement du modèle2 INTRODUCTION STRUCTURES DE DONNÉES & IMPLANTATION Dans un programme de simulation, beaucoup de calculs sont dédiés à la gestion des événements: - identification du prochain événement à survenir - cédule des événements futurs. Peu de calculs sont dédiés pour mettre à jour les variables détat et lhorloge. Exemple: Simulation du système à temps partagé. En plaçant dans une liste les caractéristiques de chaque port, pour déterminer le prochain port à être libéré, il faut parcourir cette liste complètement.

Chapitre IV - Développement du modèle3 INTRODUCTION A)Progression du temps dans un simulateur 1) La variable TEMPS est incrémentée dune valeur fixe (DELTA) à chaque itération - À chaque itération, on doit vérifier si un événement arrive à cet instant. - Cette approche a plusieurs inconvénients: Dans la plupart des cas, TEMPS sera remplacé par TEMPS + DELTA sans quil y ait aucun événement arrivant dans lintervalle (Temps, Temps + Delta) La recherche dun événement dans cet intervalle est une perte de temps. Il peut y avoir des pertes de précision si lon astreint les temps doccurrence dévénements être des facteurs de DELTA. DELTA on résoud le 1 e problème au dépens de la précision. DELTA la précision augmente mais le # ditérations augmente entraînant des calculs supplémentaires.

Chapitre IV - Développement du modèle4 INTRODUCTION 2) Une autre approche pour mettre à jour lhorloge est dexaminer lensemble des événements à venir et de considérer le temps doccurrence du prochain événement. Avec cette approche, les 2 problèmes précédents sont résolus. programmation légèrement plus difficile B) Gestion des événements: listes chaînées ordonnées selon les temps doccurrence des événements. Exemple: SIMULATEUR DUN SYSTÈME À TEMPS PARTAGÉ (lorsque k devient élevé) En général,- # dévénements varie continuellement - # dévénements peut croître indéfiniment, - accès à un événement dont le temps doccurrence est le plus proche à venir.

Chapitre IV - Développement du modèle5 INTRODUCTION C) Arrivée des clients: file dattente Pour simuler un ensemble dusagers en attente dune ressource, on a besoin de conserver de linformation pour chaque client qui arrive: instant darrivée dun client, sa priorité dans la file. Structures de données file avec priorités D) Gestion de la mémoire ALLOCATION DYNAMIQUE DE LA MÉMOIRE LIBÉRATION DE LA MÉMOIRE APRÈS USAGE

Chapitre IV - Développement du modèle6 SIMC++

7 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle8 Loi de probabilité SIMC++ Définition dune nouvelle loi Fixer les paramètres de cette loi Générer une valeur pseudo-aléatoire selon cette loi Uniforme Exponentielle Weibull Exacte Un ou deux paramètres

Chapitre IV - Développement du modèle9 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle10 SIMC++ Création dune nouvelle file où chaque sommet renfermera ladresse dun élément quelconque dont le type est une classe dérivée de la classe vide « element » Insérer ou enlever un sommet de la file Test si la file est vide ou pleine File File d entités

Chapitre IV - Développement du modèle11 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle12 SIMC++ Création dune nouvelle entité Processus darrivée Processus de mortalité bateau Entité Loi de probabilité Définition du nombre dunités constituant lentité

Chapitre IV - Développement du modèle13 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle14 SIMC++ Création dune nouvelle activité à effectuer Durée du travail remplissage dun panier dépicerie Loi de probabilité Aucun délai pour débuter cette activité (pas de file dattente) Travail

Chapitre IV - Développement du modèle15 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle16 SIMC++ Création dune nouvelle ressource Durée de service quai de chargement Loi de probabilité Ressource Définition de la capacité de la ressource (1 par défaut) Nombre d unités utilisant la ressource Disponibilité de la ressource Accès ou libération de la ressource (# dunités demandées ou libérées dépend de lentité)

Chapitre IV - Développement du modèle17 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle18 SIMC++ Création dune nouvelle file d attente Longueur de la file d attente file dattente au quai de chargement File dattente Définition de la capacité de la file d attente ( par défaut) Définition de la ressource associée Insérer ou enlever une entité de la file (# dunités insérées ou enlevées dépend de lentité) Disponibilité de la file Politique de gestion de la file PEPS

Chapitre IV - Développement du modèle19 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle20 SIMC++ Objet de simulation Classe vide

Chapitre IV - Développement du modèle21 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle22 SIMC++ Création dun nouveau type d événement Arrivée dun nouveau bateau Type d événement Déf n de la caractéristique de cet événement Définition de l «objet de simulation» associé Arrivée dans le système Départ du système Accès à une ressource Libération dune ressource Entrée dans une file Sortie de la file Début dun travail Fin dun travail entitéressourcefile dattente travail

Chapitre IV - Développement du modèle23 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle24 SIMC++ Création de lensemble des types dévénements Ensemble des types dévénements Définition du nombre de types dévénements Ajout d un type dévénement Définition dun graphe dévénements i.e. les événements à céduler lors du traitement de chaque événement Accès aux types dévénements à céduler lors du traitement d un événement.

Chapitre IV - Développement du modèle25 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle26 Monceau SIMC++ Création dun monceau où chaque sommet renferme une clé et un élément de donnée Insérer un sommet selon la clé fournie Enlever le sommet dont la clé est minimale Tester si le monceau est plein ou vide Vider le monceau

Chapitre IV - Développement du modèle27 Monceau File Objet de simulation Type dévénement Ensemble des types dévénements EntitéRessourceTravail File dattente Simulateur Programme dapplication Loi de probabilité SIMC++

Chapitre IV - Développement du modèle28 Simulateur SIMC++ Définition dune simulation Durée du réchauffement Durée de la simulation Nombre maximum dévénements cédulés Insérer lensemble des types dévénements du modèle de simulation Céduler un événement au temps T en spécifiant: le type de lévénement lentité associée à cet événement linstant darrivée de cette entité dans le système Simuler le comportement du système Afficher les résultats de la simulation

Chapitre IV - Développement du modèle29 Simulateur SIMC++ Affichage automatique des résultats de la simulation pour chaque objet de simulation : Entité # dentités ayant quitté le système temps moyen passé dans le système pour ceux qui ont quitté Travail # de travaux effectués durée moyenne du travail effectué Ressource # dunités qui ont accédé à la ressource taux dutilisation de la ressource File dattente # moyen dusagers dans la file dattente temps total passé dans la file dattente

Chapitre IV - Développement du modèle30 SIMULATION DUN QUAI DE CHARGEMENT /********************************************************** Simulation d'un quai de chargement modélisé par une file d'attente M/M/1. Le système est initialement vide et on simule pendant une période [Duree_du_rechauffement, Duree_de_la_simulation]. L'intervalle de réchauffement du simulateur est [0, Duree_du_rechauffement]. **********************************************************/ #include "SIMC++.h" #include

Chapitre IV - Développement du modèle31 SIMULATION DUN QUAI DE CHARGEMENT floatDuree_rechauffement, Duree_simulation, temps_moyen_entre_2arrivees, duree_moyenne_chargement; void Lire_Donnees() {/*Lecture de la durée de la simulation, du temps moyen entre deux arrivées de bateaux et de la durée moyenne d'un chargement. Impression des données d'entrée.*/ cout << " Veuillez fournir les renseignements suivants : " << "\n\n"; cout << " Duree du rechauffement = "; cin >> Duree_rechauffement; cout << " Duree de la simulation = "; cin >> Duree_simulation; cout << " Temps moyen entre deux arrivees de bateaux = "; cin >> temps_moyen_entre_2arrivees; cout << " Duree moyenne d'un chargement = "; cin >> duree_moyenne_chargement; cout << " \n"; }

Chapitre IV - Développement du modèle32 SIMULATION DUN QUAI DE CHARGEMENT void main() { Lire_Donnees(); Loi_de_probabilite * pLoi_d_arrivee_des_bateaux = new Loi_de_probabilite(Exponentielle); pLoi_d_arrivee_des_bateaux -> Fixer_un_parametre_de_la_loi (temps_moyen_entre_2arrivees,1); Loi_de_probabilite * pLoi_de_depart_du_systeme = new Loi_de_probabilite(Exacte); Loi_de_probabilite * pDuree_du_service = new Loi_de_probabilite(Exponentielle); pDuree_du_service -> Fixer_un_parametre_de_la_loi (duree_moyenne_chargement,1);

Chapitre IV - Développement du modèle33 SIMULATION DUN QUAI DE CHARGEMENT Entite * pEnt = new Entite("bateau"); pEnt -> Definir_processus_d_arrivee(pLoi_d_arrivee_des_bateaux); pEnt -> Definir_processus_de_mortalite(pLoi_de_depart_du_systeme); Ressource * pRes = new Ressource("Quai de chargement"); pRes -> Definir_duree_de_service(pDuree_du_service); File_d_attente * pFile = new File_d_attente("File de bateaux"); pFile -> Definir_ressource_associee(pRes); Ensemble_des_types_d_evenements * pEns = new Ensemble_des_types_d_evenements(6); Objet_de_simulation * pObj;

Chapitre IV - Développement du modèle34 SIMULATION DUN QUAI DE CHARGEMENT Type_d_evenement * pType = new Type_d_evenement("Arrivee d'un bateau"); pType -> Definir_caracteristique(Arrivee_dans_le_systeme); pObj = (Objet_de_simulation *) pEnt; pType -> Definir_objet_de_la_simulation(pObj); pEns -> Definir_un_type_d_evenement(1, pType); Type_d_evenement * pT = new Type_d_evenement("Depart d'un bateau"); pT -> Definir_caracteristique(Depart_du_systeme); pObj = (Objet_de_simulation *) pEnt; pT -> Definir_objet_de_la_simulation(pObj); pEns -> Definir_un_type_d_evenement(2, pT);

Chapitre IV - Développement du modèle35 SIMULATION DUN QUAI DE CHARGEMENT pT = new Type_d_evenement("Entree dans la file de bateaux"); pT -> Definir_caracteristique(Entree_dans_une_file); pObj = (Objet_de_simulation *) pFile; pT -> Definir_objet_de_la_simulation(pObj); pEns -> Definir_un_type_d_evenement(3, pT); pT = new Type_d_evenement("Sortie de la file de bateaux"); pT -> Definir_caracteristique(Sortie_de_la_file); pObj = (Objet_de_simulation *) pFile; pT -> Definir_objet_de_la_simulation(pObj); pEns -> Definir_un_type_d_evenement(4, pT);

Chapitre IV - Développement du modèle36 SIMULATION DUN QUAI DE CHARGEMENT pT = new Type_d_evenement("Debut du chargement"); pT -> Definir_caracteristique(Acces_a_une_ressource); pObj = (Objet_de_simulation *) pRes; pT -> Definir_objet_de_la_simulation(pObj); pEns -> Definir_un_type_d_evenement(5, pT); pT = new Type_d_evenement("Fin du chargement"); pT -> Definir_caracteristique(Liberation_d_une_ressource); pObj = (Objet_de_simulation *) pRes; pT -> Definir_objet_de_la_simulation(pObj); pEns -> Definir_un_type_d_evenement(6, pT);

Chapitre IV - Développement du modèle37 SIMULATION DUN QUAI DE CHARGEMENT pEns -> Definir_graphe_d_evenement(1, 1); pEns -> Definir_graphe_d_evenement(1, 3); pEns -> Definir_graphe_d_evenement(1, 5); pEns -> Definir_graphe_d_evenement(4, 5); pEns -> Definir_graphe_d_evenement(5, 6); pEns -> Definir_graphe_d_evenement(6, 4); pEns -> Definir_graphe_d_evenement(6, 2);

Chapitre IV - Développement du modèle38 SIMULATION DUN QUAI DE CHARGEMENT Simulateur Simulation_d_un_quai_de_chargement (Duree_rechauffement, Duree_simulation, 100); Simulation_d_un_quai_de_chargement. Inserer_ensemble_des_types_d_evenements(pEns); float Instant; Instant=pLoi_d_arrivee_des_bateaux->Generer_une_valeur_pseudo_aleatoire(); Simulation_d_un_quai_de_chargement.Ceduler_un_evenement (pEnt, Instant, pType, Instant); Simulation_d_un_quai_de_chargement.Simuler(); Simulation_d_un_quai_de_chargement.Rapport(); }

Chapitre IV - Développement du modèle39 SIMULATION DUN QUAI DE CHARGEMENT Veuillez fournir les renseignements suivants : Duree du rechauffement = Duree de la simulation = Temps moyen entre deux arrivees de bateaux = 10.0 Duree moyenne dun chargement = RESULTATS DE LA SIMULATION NOMBRE TOTAL DENTITES AYANT QUITTE LE SYSTEME : 4295 TEMPS MOYEN PASSE DANS LE SYSTEME POUR CEUX QUI ONT QUITTE : NOMBRE MOYEN DUSAGERS DANS LA FILE : TEMPS TOTAL PASSE DANS LA FILE : NOMBRE MOYEN DUNITES UTILISANT LA RESSOURCE : NOMBRE TOTAL DUNITES QUI ONT ACCEDE A LA RESSOURCE : 4295