Simulation


Original: http://staff.um.edu.mt/jskl1/simul.html

„Das ganze tschechische Volk ist eine Simulantenbande“

Jaroslav Hašek: The Good Soldier Švejk

Qu’est-ce que la simulation
Simulation continu
Simulation discrète
Object Oriented Simulation
Sur la simulation Ligne
Références

Qu’est-ce que la simulation

Au simulation, le niveau le plus général doit être considéré comme une forme de cognition. (Cognition = action ou le processus d’acquisition des connaissances.) Il existe trois méthodes de base Comment obtenir une information (connaissance) de la réalité objective: Expérience, analyse, simulation. Prenons un exemple concret pour démontrer la nature de ces trois méthodes. Le système étudié est une station d’essence avec un préposé. La question est „quel est le temps moyen passé par une voiture à la station d’essence“. Pour obtenir la réponse, nous avons trois possibilités:

Expérience: prendre chronomètres et mesurer le temps chaque voiture passe dans la station. Compter les voitures, à la somme de tous les temps et fin de les diviser par le nombre de voitures.

Analyse: utiliser une formule de la théorie de la Mise en queue de calculer le temps moyen passé dans le système directement. Pour utiliser une formule que vous devrez assumer certain modèle de file d’attente qui signifie une simplification considérable du système réel et vous aurez besoin de quelques paramètres quantitatifs (ici de l’intensité de l’arrivée – nombre de voitures arrivant par unité de temps et de l’intensité de service – nombre de voitures servi par temps unité).

Simulation: écrire un modèle de simulation qui génère aléatoirement les arrivées de voitures et de la durée des services. Il doit également séquencer correctement toutes les activités pour avoir une correspondance un-à-un avec le système réel. Aussi observation, de collecte de données statistiques et de l’évaluation doivent être programmés (pour chaque voiture calculer le temps passé, accumuler ces temps, compter le nombre de voitures, au calcul final et afficher la moyenne).

Ces trois méthodes ne peuvent pas être classé car ils ont tous des avantages et des inconvénients. Ils peuvent être comparés que dans le cadre de certains cas particulier en tenant compte de divers critères. Néanmoins, certains faits de base sont évidents:

Expérience est toujours la méthode la plus précise, qui doit être utilisé chaque fois que cela est possible. Malheureusement, très souvent, l’expérience est:
– Trop dangereux (comportement d’un réacteur nucléaire dans des situations critiques, l’atterrissage avec un avion avec un jet off, etc)
– Trop coûteux (tous les cas qui causent un dommage, de longues expérimentations étudient le débit d’un réseau de données utilisant les lignes téléphoniques louées, etc)
– (. L’évaluation des solutions de rechange plus possibles dans la phase de conception) Pas du tout possible si le système étudié n’est pas disponible

Analyse (la plupart du temps mathématique) est généralement basé sur des hypothèses fortes qui sont rarement vrai dans la vie pratique. Un autre inconvénient possible des méthodes d’analyse est un appareil utilisé trop compliqué et / ou trop de temps de calcul. Un exemple de cette analyse est de Queueing Networks. D’autre part en utilisant des formules donne des résultats rapides et la plupart du temps, il est possible de vérifier un grand nombre de solutions de rechange en insérant simplement différentes valeurs des paramètres de la formule (e). Les méthodes expérimentales sont pour la plupart beaucoup plus de temps. Un autre problème de l’analyse est la disponibilité des paramètres nécessaires. Leur mesure exacte n’est pas non plus nécessairement possible ou il est impossible dans la phase de conception. En utilisant des données ou de données estimatives provenant d’autres systèmes similaires diminue la crédibilité des résultats.

La simulation est également une méthode expérimentale. Au lieu de faire des expériences avec le système réel les expériences sont réalisées avec le modèle de simulation (dont la conception est donc le point clé des études de simulation). Aussi simulation présente de nombreux inconvénients. Voici les plus importants:
– La création Trop exigeant des modèles de simulation. Modèles de simulation de la programmation en langues généraux (comme Pascal) est trop difficile. Il ya des langues de simulation efficaces mais leur maîtrise représente un gros investissement initial n’est pas toujours justifié. Il existe des outils de simulation basés généralement sur ​​une technique graphique qui simplifie ou même automatiser la création de modèles de simulation de certaine classe de systèmes. Si vous voulez en savoir plus sur un tel outil, passez à la page des Petri Nets.
– Une connaissance limitée du système simulé. De tous les certains paramètres quantitatifs d’abord il faut connaître. Dans l’exemple ci-dessus, il est nécessaire de générer des intervalles aléatoires entre les arrivées et les temps de service au hasard. Voici simulation est beaucoup plus souple que l’analyse – langues de simulation soutiennent génération de nombres aléatoires avec pratiquement n’importe quelle distribution. Dans l’exemple ci-dessus les deux chiffres aléatoires peuvent être basées sur des (par exemple obtenues expérimentalement) distributions. Néanmoins toute distribution soit besoin de plusieurs paramètres (s’il s’agit d’un théorique) ou directement de la fonction de distribution (si la distribution est obtenue par mesure). Il peut y avoir aussi des choses dans le système (généralement dans la phase de conception) qui ne peuvent être quantifiés et souvent il est nécessaire d’accepter le fait qu’il pourrait y avoir des aspects que nous ne sommes pas conscients du tout.
– Trop de temps de calcul. Un exemple est l’analyse de systèmes à grande échelle avec de nombreux composants travaillent en parallèle. Parce que l’application de réel parallélisme n’est toujours pas commun, ces systèmes sont simulés par un programme exécuté par un processeur unique. Des activités parallèles sont ensuite réalisées une à la fois (même si l’utilisateur a une impression de parallélisme et lors de la conception du modèle de simulation „pense en parallèle“). Le résultat de ceci est le fait que la simulation peut être beaucoup plus lente que le temps réel (1 seconde de temps de modèle en 10 minutes de temps de calcul). Bien sûr, cela désactive l’application de la simulation dans le contrôle en temps réel.

Une règle générale pourrait être comme ça:
„Si l’expérience est possible, l’utiliser. C’est toujours la meilleure méthode parce que tous les aspects sont pris en compte. Même si d’autres méthodes ont été utilisées au cours de la phase de conception, l’expérience peut servir à une évaluation finale du système. Si l’expérience est pas possible d’essayer de trouver une méthode analytique appropriée. S’il n’est pas disponible, l’utilisation simulation „.
La simulation est non seulement le dernier recours car elle ressemble à la règle ci-dessus. Simulation peut contribuer beaucoup à la compréhension du système en cours d’analyse, non seulement en fournissant des réponses aux questions qui ont été initialement donnés. Très souvent la création de modèle de simulation est la première occasion où certains éléments sont pris en compte. Spécifications du système simulé peut (et souvent ne) de révéler des erreurs ou des ambiguïtés dans la conception du système. Donc, la simulation peut aider beaucoup en évitant futur mise à jour très coûteuse du système prêt.

Simulation continu

Langues de simulation continue développés dans la fin cinquantaine que les simulateurs d’ordinateurs analogiques. Simulation sur des calculateurs analogiques est basée sur la création d’un système électronique analogique dont le comportement est décrit par le même modèle mathématique (ensemble d’équations différentielles) que le système étudié. Le système électronique est créé par l’interconnexion de blocs standard basées principalement sur des amplificateurs opérationnels modifiés à agir comme des intégrateurs, des vipères, et d’autres unités fonctionnelles. Ensuite, l’utilisateur effectue des expériences avec ce système électronique en appliquant les entrées appropriées et l’enregistrement de la tension sur certains points de sortie (de l’oscilloscope, traceur). Le changement de tension représente une fonction temporelle, qui est la même que la fonction qui décrit les changements dans le système d’origine dont la nature physique peut être totalement différente (déplacement mécanique, température, etc). Le principal problème des calculateurs analogiques est une implémentation analogique de certaines opérations telles que la multiplication, la génération de certaines fonctions, la génération de retards et autres. Calculateurs numériques effectuer toutes ces fonctions très facilement et, aujourd’hui, la simulation continue est effectuée uniquement sur eux. Néanmoins, il est une opération où les ordinateurs analogiques sont mieux – l’intégration. Ordinateurs numériques utilisent intégration numérique qui est généralement plus lente et moins précise par rapport à l’intégration d’un intégrateur analogique. Certaines applications spéciales basées sur l’utilisation de réponse rapide donc les ordinateurs dits hybrides, qui contiennent analogiques et numériques parties reliées par des A / D et D / A. La partie numérique fait tout sauf intégration. Il calcule les entrées des intégrateurs, qui sont ensuite convertis par les convertisseurs D / A pour les signaux analogiques entrés à des intégrateurs analogiques. Leurs sorties sont traités dans le sens inverse. La partie numérique contrôle également la liaison entre la partie analogique, qui pourrait ainsi changer au cours du calcul.
Classification des continus simulation langues

Bloquer les langages orientés de simulation sont basés sur la méthodologie de calculateurs analogiques. Le système doit être exprimé sous la forme d’un schéma fonctionnel qui définit l’interconnexion des unités fonctionnelles et de leurs paramètres quantitatifs. «Programmation», c’est entrer dans l’interconnexion des blocs et leur description. Ensuite, l’utilisateur ajoute des déclarations et / ou des directives qui contrôlent la simulation. Si le système est décrit comme étant un ensemble d’équations, ils doivent être convertis en un schéma de principe. Cette conversion est un processus simple et direct. Les blocs typiques disponibles dans la plupart des langues continue de blocs orientés sont des intégrateurs, des limiteurs, des retards, des multiplicateurs, hystérésis, des valeurs constantes additionneurs, supports, gain (coefficient) et d’autres.

Expression langues continues orientées sont basées sur l’écriture des expressions (équations) qui représentent le modèle mathématique. Ainsi, le système de simulation doit être exprimé par un ensemble d’équations. Ensuite, l’utilisateur ajoute des déclarations et / ou des directives qui contrôlent la simulation. Certaines langues permettent dans les deux sens sur la base bloc et d’expression de la définition du système. Contrôle de la simulation des moyens de sélection de: la méthode de l’intégration (parce que certaines langues offrent plus), l’étape d’intégration, les variables (sorties de blocs) qui doivent être respectées, les intervalles de collecte de données pour l’impression et / ou de traçage, mise à l’échelle des sorties (qui peut également être fait automatiquement), la durée de la simulation fonctionne, le nombre de répétitions et la façon dont certaines valeurs sont modifiées en eux, etc

Télécharger le fichier models1.zip qui contient plusieurs modèles de simulation continues écrites dans la langue Turbo Pascal. Les modèles sont créés en utilisant un environnement de simulation simple et continu basé sur l’expression approche orientée et peuvent être facilement modifiés pour modéliser tous les autres systèmes décrits par des équations différentielles.
Simulation discrète

Simulation discrets traite des systèmes dont la dynamique peut être considéré (en raison du niveau d’abstraction) comme une séquence d’événements à des moments distincts. Le point clé d’un langage de simulation discrète est la façon dont il contrôle le bon enchaînement des activités dans le modèle. C’est aussi la façon dont un utilisateur doit „voir le monde“ lors de l’utilisation de la langue et une base pour la classification des langues de simulation discrets.
Classification des discrets simulation langues

Organigramme des langages orientés sont représentés par les GPS de la langue (système But de simulation général), qui existe dans de nombreuses versions sur différents ordinateurs. L’utilisateur doit pouvoir utiliser la dynamique du système en tant que flux des dites transactions à travers un diagramme. Les transactions sont générées, suivre un chemin à travers un réseau de blocs, et sont détruits à la sortie. Dans les blocs transactions peuvent être retardées, traitées et transmises à d’autres blocs. Les blocs sont au programme représenté par les états qui exécutent les activités du modèle.

Activité langages orientés ne sont pas basées sur la planification explicite des activités futures. Pour chaque activité à l’utilisateur décrit les conditions dans lesquelles l’activité peut avoir lieu (qui couvre également la planification si la condition est atteint certain temps). L’algorithme de simulation de la commande incrémente le temps de manière répétée et teste les conditions de toutes les activités. L’inconvénient de cette approche est évident – il est nécessaire d’évaluer toutes les conditions de chaque étape, cela peut prendre beaucoup de temps. D’autre part, il est conceptuellement très simple et l’algorithme peut être facilement mis en œuvre dans les langues générales de haut niveau (il ya langues de simulation basés sur cette approche, mais pas largement utilisés). Télécharger le fichier models2.zip qui contient deux modèles d’un système de file d’attente simples (en Turbo Pascal) qui démontrent l’approche de l’activité orientée. Ces modèles sont accompagnés de plusieurs unités qui mettent en œuvre les opérations sur les deux listes de façon liée qui sont ensuite utilisés pour la mise en œuvre des piles et des files d’attente.

Langue de l’événement orienté sont basés sur la programmation directe et l’annulation d’événements futurs. L’approche est très générale. L’utilisateur doit pouvoir utiliser la dynamique du système simulé comme une séquence d’événements relativement indépendants. Chaque événement peut programmer et / ou annuler un autre événement. La routine du système doit tenir un registre des événements programmés. C’est pourquoi chaque événement est représenté par l’avis que l’on appelle de l’événement, qui contient le temps, le type d’événement, et d’autres données de l’utilisateur. Avis d’événements sont conservés dans le calendrier dite, où les notifications d’événements sont triés par l’heure prévue. Après l’achèvement d’une routine de l’événement, le système supprime l’avis de l’événement avec le meilleur temps dans le calendrier, met à jour le temps de modèle en son temps, et lance la routine correspondante. Cette opération est répétée jusqu’à ce que le calendrier est vide ou que le programme s’arrête à cause d’autres raisons. Des moyens d’insertion des avis d’événements dans le calendrier par l’heure prévue Planification, annulation les supprime. L’approche basée sur l’expression explicite d’événements est appelé simulation à événements discrets, qui est parfois généralisé à la simulation discrète en tant que tel. Un représentant typique de ce groupe de langues est la langue SIMSCRIPT (mais sa version II.5 supports simulation processus a également orienté).

Process de langues sont basés sur le fait que les événements ne sont pas indépendants. Un événement est généralement la conséquence d’autres événements précédents. En d’autres termes, il est souvent possible de définir des séquences d’événements qui peuvent être considérés comme des entités d’un modèle de simulation au niveau supérieur de la hiérarchie. Une séquence d’événements est appelé processus. Contrairement processus des événements a une dimension dans le temps. Systèmes abstraits basés sur les processus sont très proches de la réalité, qui est toujours faite de divers objets qui existent et agissent en parallèle interférer les uns avec les autres. Moyen du processus de visualisation dynamique du système est donc très naturel. La plupart du temps un des modèles de processus d’une activité d’un objet réel. On croit, ce processus orienté simulation discrète est la meilleure façon comment créer des modèles de simulation discrets. Les représentants typiques de ce groupe de langues sont MODSIM, SIMSCRIPT II.5, et la simulation de classes du système de la langue Simula.

Object Oriented Simulation

Objet de simulation orientée (OOS) peut être considéré comme un cas particulier de la programmation orientée objet (POO). Certains principes de la programmation orientée objet, comme l’existence d’un nombre variable d’instances d’objets d’interférence ont été couramment utilisés dans l’environnement de simulation pour une longue période, souvent en utilisant une autre terminologie. Le langage Simula (que l’on appelait Simula 67) est le premier orienté objet véritable langage. Être âgé de plus de 30 ans, il a encore la plupart (et tous importants) les mécanismes et les principes de la POO. Certaines choses comme les classes, l’héritage, les méthodes virtuelles, etc ont été définis dans Simula longtemps avant qu’ils ont été redécouvertes par le boom de la POO en dernières années. Pour en savoir plus sur Simula, visitez la page de l‘ASU (Association des Utilisateurs Simula). Vous pouvez aussi consulter le document Introduction à la POO en Simula basé sur une conférence présentée à l’Université de Malte à l’occasion du 30e anniversaire de l’Simula. MODSIM est un autre langage orienté objet de simulation.
Ce sont les caractéristiques les plus communément acceptés de OOS:

1. L’algorithme ou la dynamique du système est exprimé en termes d’objets (acteurs) qui existent en parallèle et qui interagissent les uns avec les autres. Chaque objet est représenté par:
– Paramètres (qui peuvent être affectés valeurs réelles lors de la génération des objets)
– Attributs (attributs internes aussi appelés ou attributs de valeur)
– Méthodes (aussi appelés actions ou les attributs de la procédure)
– La vie, qui représente l’activité a commencé lors de la création de l’objet.
Les objets peuvent interagir de cette façon:
– Accès direct aux paramètres et attributs
– Appels mutuelle des méthodes
– La communication et la synchronisation des objets vies.
Il suffit de parler: Object = données + procédures que l’on appelle l’encapsulation. Très souvent, les données de l’objet ou une partie de celui-ci est caché et les valeurs peuvent être consultés et modifiés que par des méthodes bien définies (). Ce concept est appelé la dissimulation d’information.

2. objets similaires (acteurs) sont regroupés pour les soi-disant cours également appelés prototypes. Une classe décrit les objets qui ont les mêmes paramètres, les attributs, les méthodes, et de vies. Une déclaration de classe est interprété comme un modèle. Il est possible de créer un nombre quelconque d’objets individuels (acteurs) appelées instances d’objets. Des cas peuvent différer dans leurs valeurs de paramètres et / ou des attributs. Il est nécessaire de faire une nette différence entre une classe en tant que tel et objets instances générées en utilisant la déclaration de classe. Une classe peut aussi être interprété comme une connaissance de certains types d’objets. Cette connaissance est représentée par une partie des données et par des opérations qui peuvent être effectuées sur les données. Ceci est similaire aux types de données abstraites, mais les classes sont beaucoup plus riches. Un type de données abstrait peut être dans ce contexte considéré comme un cas dégénéré d’une classe qui ne fait pas usage de l’héritage.

3. objets peuvent être classés hiérarchiquement par l’héritage dite. Très souvent, la sous-classe de terme est introduit. Une sous-classe d’une classe Y X hérite de tous les paramètres, les attributs et méthodes de la classe X. Sa déclaration peut ajouter un certain nombre de paramètres supplémentaires, les attributs, et les méthodes. Une sous-classe peut aussi ajouter un peu d’activité à la vie de la classe parent. Une sous-classe peut être utilisé comme une classe parente d’autres sous-classes, etc Certains langages de programmation orientée objet (pas Simula) permettent l’héritage dite multiple. Dans ce cas, une sous-classe peut hériter de plus d’une classe parente. Une sous-classe peut être interprétée comme une connaissance plus détaillée que celle définie par la classe parente. Ainsi, la classe parent représente une connaissance générale, qui peut en outre être spécialisé par des déclarations de sous-classes dans un certain nombre d’étapes. Héritage agit d’une certaine manière contre typage fort des langues comme Pascal. En général, il est possible de déclarer des variables de référence qui peuvent se référer à une instance de certaine classe et les instances de tous ses sous-classes. Il pourrait être souhaitable, que certaines méthodes se comportent alors de manière différente selon l’instance actuelle de l’objet référencé, qui peut changer dynamiquement lors de l’exécution du programme. Ce concept appelé polymorphisme est pris en charge par le mécanisme appelé liaison tardive et les méthodes impliquées sont appelées méthodes virtuelles, qui peuvent changer à tous les niveaux de la hiérarchie.

4. existence parallèle d’instances d’objets a besoin d’installations à l’appui de la coopération et la synchronisation de leurs vies. La vie de l’objet ne doit pas nécessairement une dimension de temps, mais en cas de OOS il dispose. Simula objets en tant que tels peuvent interagir sans la notion de temps. La classe de système SIMULATION Simula définit la „Process“ de classe dont la vie est dans le temps. Il ya des installations pour les processus de communiquer et de synchroniser leurs vies
Sur la simulation Ligne

Internet avec Java et JavaScript offrent des possibilités incroyables à la résolution de problèmes. Au lieu de temps le téléchargement et l’installation de logiciels, il est possible d’ouvrir directement différents solveurs, notamment pour des problèmes qui ne sont pas fréquentes et qui ne nécessitent pas beaucoup de temps de calcul. Comme mon premier pas dans cette direction, j’ai écrit des modèles de simulation simples en JavaScript que les systèmes de files d’attente uniques et des réseaux de files d’attente à résoudre et simuler. Procede de la page en ligne solveurs et simulateurs d’essayer maintenant la simulation.
Références

Cette page contient un extrait du texte:
Sklenar, .: Simulation J (Université de Malte, 2000) qui est utilisé dans plusieurs cours liés Opérations de recherche enseignées à l’Université de Malte.
Vous pouvez également trouver beaucoup de choses sur Internet, car tous les moteurs de recherche renvoient le nombre d’entrées sur la «simulation». Vous pouvez commencer avec des endroits suivants, qui contiennent d’autres liens, références, informations sur les institutions, des conférences, etc

Comments are closed.