• Aucun résultat trouvé

2.3.1 Exécution d’une simulation

Nous ne considérons que les simulations numériques (simulations) dans le cadre de cette

thèse.

Exécuter une simulation consiste à exécuter un modèle de simulation. À chaque exécution

du modèle, celui-ci maintient un état courant. Cet état est généralement un ensemble de

pro-priétés qu’il a calculé durant sa dernière exécution, et qui ont permis de fournir des résultats de

simulation. Ces résultats de simulation permettent de répondre à une question qui concerne le

système cible, représenté par le modèle.

Chaque exécution du modèle se base sur son état précédent, et/ou sur des données d’entrée

qui lui sont fournies. Les modèles évoluent en général en fonction d’un temps de simulation.

Ce temps de simulation, qui fait partie des propriétés du modèle, représente le temps tel qu’il

s’écoulerait pour le système cible dans la réalité. Il est à différencier du temps d’exécution, qui

correspond au temps nécessaire pour exécuter le modèle. Ainsi, un temps de simulation peut

parfaitement laisser s’écouler plusieurs dizaines d’années, pour un temps d’exécution de quelques

secondes.

Le modèle de simulation est exécuté par le biais d’un logiciel de simulation (simulateur). Le

simulateur est généralement un logiciel spécialisé dans la simulation, pour un domaine spécifique.

Différents modèles peuvent être exécutés pour un même simulateur. Ce dernier a pour charge de

faire évoluer le modèle qu’on lui fournit, en lui faisant calculer des résultats partiels, exécution

après exécution, et en faisant évoluer son temps simulé. Le simulateur gère l’horloge représentant

le temps simulé, durant la simulation.

Les données collectées au cours du temps, par l’intermédiaire de l’exécution du modèle, sont

appelées des résultats de simulation. Ils sont utilisés, éventuellement après une étude approfondie

par un expert du domaine, pour tirer des conclusions sur le comportement du système cible

qui était à étudier, pour finalement répondre à la question qui était initialement posée. Les

résultats de simulation peuvent être accessibles en direct, au fur et à mesure du déroulement de

la simulation, ou en post-mortem, lorsque celle-ci est terminée, selon les possibilités offertes par

le simulateur utilisé.

La façon dont le simulateur va faire évoluer le temps du modèle dépend fortement du mode

d’exécution de celui-ci.

2.3.2 Différents modes d’exécution

La classification des types de modèle par formalisme de [Éric Ramat, 2006] (cf. Figure 2.1)

permet d’obtenir l’intuition que tous les modèles n’offrent pas les mêmes possibilités en matière

de résultats de simulation, et qu’ils ne sont pas conçus pour être exécutés de la même façon.

Cette diversité de modes d’exécution est un facteur important de l’hétérogénéité qu’il peut

y avoir entre plusieurs modèles, et doit être prise en considération vis-à-vis des objectifs de ce

manuscrit. Les deux catégories de modèles qui sont détaillées ci-dessous sont celles qui sont les

plus importantes à étudier dans le cadre de la modélisation et simulation de SCP : les modèles

à temps continu, qui proposent des changements d’état qui sont soit discrets, soit continus.

Changements d’état continus

Un changement d’état continu signifie que, quel que soit le temps de simulation qu’on

consi-dère, on pourra toujours potentiellement trouver un résultat de simulation différent, si on

inter-roge le modèle à un temps de simulation légèrement inférieur ou supérieur.

L’exécution d’un modèle qui possède cette caractéristique est soumise au choix de deux pas

de temps différents : le pas de résolution et le pas de communication.

Pas de résolution D’après Ramat, ces modèles utilisent des formalismes basés sur des

équa-tions différentielles ordinaires ou des équaéqua-tions aux dérivés partielles. Ces équaéqua-tions doivent

donc être résolues numériquement, et supposent donc l’utilisation d’un pas de résolution. C’est

à dire que, au moment de l’exécution du modèle, on va être contraint de choisir, plus ou moins

arbitrairement, des temps précis auxquels il faut faire une résolution de l’équation. On pourra

par exemple décider de résoudre l’équation toutes les 100 millisecondes, en temps simulé. Le

choix du pas de résolution doit correspondre à un compromis entre la précision des résultats

de précision (qui dépendent de la nature de l’équation et de la question qu’on se pose sur le

modèle), et la performance de la simulation (qui va plus ou moins allonger le temps d’exécution,

en fonction du matériel informatique à notre disposition). Ce pas de résolution est censé être

conseillé par le modélisateur, et peut varier au cours de la simulation.

Pas de communication Le pas de communication intervient lorsque le modèle est couplé

à un autre modèle et qu’il doit lui transmettre des résultats au cours de la simulation (ce cas

de figure étant plus largement détaillé dans la Section 2.4), et de façon plus générale pour la

production de résultats de simulation. Il correspond aux temps auxquels on va décider

d’obser-ver l’état du modèle et de faire une copie des variables qui nous intéressent pour répondre à la

question qu’on se pose sur le modèle, une fois la simulation achevée. Selon les moments où on

décide d’observer cet état, les résultats de simulation peuvent être très différents, et peuvent

éventuellement amener à des réponses biaisées. Le choix du pas de communication peut

égale-ment influencer les performances du modèle, et conduire à des temps d’exécution plus ou moins

acceptables. Il s’agit de nouveau d’un compromis entre la qualité des résultats attendus et le

temps alloué, en fonction des ressources informatiques dont on dispose, pour l’exécution de la

simulation.

La solution la plus simple consiste à décider d’un pas de résolution et d’un pas de

commu-nication fixes et identiques. Cette solution est viable tant que les performances à l’exécution

restent acceptables, et que le pas unique choisi est validé par le modélisateur. Un exemple est

illustré en Figure2.3.

Figure 2.3 – Exécution avec des changements d’état continus, à l’aide de pas de résolution et

de communication fixes.

Un pas de communication plus petit qu’un pas de résolution n’a aucun intérêt, puisque l’état

ne peut pas avoir changé entre deux pas de résolution. Un pas de communication plus grand que

le pas de résolution peut parfois masquer des changements brusques de l’état, qui n’apparaitront

pas dans les résultats de simulation. Ainsi, si une variable de l’état a la valeur 1 au dernier pas

de communication, qu’elle passe ensuite à la valeur 0, puis 1, d’une résolution à l’autre, et que

le pas de communication intervient lorsque la valeur est revenue à 1, les résultats de simulation

indiqueront qu’il n’y a pas eu de changement de valeur sur toute la période.

Une solution pour ne pas avoir à faire ce choix, consiste à baser le pas de communication sur

la notion d’événement d’état.

Événement d’état Plutôt que de transmettre des résultats à chaque résolution de l’équation,

ou à des temps choisis de façon arbitraire, il est possible de définir à l’avance un ensemble de

conditions. Ainsi, on pourra par exemple déterminer à l’avance que, d’après la question qu’on se

pose sur le modèle, connaître les temps correspond à un changement de signe pour une valeur

de l’état donnée, est suffisant. À chaque résolution de l’équation, on va donc vérifier la valeur

de la variable correspondante : si elle est positive alors qu’elle était négative la fois précédente,

ou inversement, on considère qu’il y a un événement d’état, et on ajoute la valeur aux résultats

de simulation (cf. exemple en Figure 2.4). Le reste du temps, on ne communique aucun autre

résultat. Les possibilités de condition sont infinies, et dépendent entièrement de l’objectif de la

simulation.

Figure 2.4 – Exécution avec des changements d’état continus, à l’aide d’un pas de résolution

fixe et une communication basée sur une condition (franchissement du seuil) liée à une variable

de l’état (x).

Le type d’événement d’état qu’on souhaite observer peut fortement influencer le choix du

pas de résolution, et donc la précision de calcul dont on a besoin. Si les résultats de simulation

attendus nécessitent d’avoir une résolution la plus fine possible de l’équation, un pas de résolution

infiniment petit (toutefois limité à la capacité de précision dans la représentation du temps

que peut atteindre le simulateur) doit être utilisé. Puisqu’un tel choix, selon le modèle, aura

probablement pour conséquence d’aboutir à des temps d’exécution inacceptables, une solution

intermédiaire consiste à utiliser desrollbacks (retours en arrière).

Avec rollbacks Un rollback consiste à faire avancer un modèle dans le temps, et de finalement

lui demander de revenir à l’état correspondant au temps précédent. Le rollback est une

fonc-tionnalité que le simulateur et son modèle peuvent ou non proposer. Ils nécessitent en général

de systématiquement garder une copie intégrale de l’état du modèle, avant de le faire évoluer.

Un retour arrière consiste donc à réinitialiser l’état en fonction de cette sauvegarde et à reculer

l’horloge du simulateur au temps correspondant. Une seconde stratégie consiste à être capable

de demander au modèle de faire des opérations inverses : chaque événement exécuté depuis le

temps auquel le simulateur souhaite reculer, jusqu’au temps actuel, doit être annulé un à un en

appliquant l’opération inverse.

Une utilisation courante des rollbacks permet en général de faire plus ou moins disparaître

la notion de compromis à trouver entre la finesse des résultats et le temps d’exécution. Ainsi, un

modèle va pouvoir être résolu avec un pas de résolution fixe la majorité du temps, permettant

d’obtenir des performances intéressantes. Quand un changement d’état entre deux résolutions

indique qu’il y a eu un changement important dans le modèle, le simulateur va décider de

demander au modèle de faire un retour arrière jusqu’au pas de résolution précédent. Puis, il

va lui demander de résoudre de nouveau l’équation, avec un pas de résolution beaucoup plus

petit. Ainsi, l’équation va être résolue finement lorsque l’état semble beaucoup évoluer, et va être

résolue plus grossièrement, lorsque l’état semble stable. Cette méthode permet de détecter les

événements d’état au temps le plus proche de leur apparition, plutôt qu’au pas de communication

qui suit.

Il est important de remarquer que cette méthode n’est performante que si les changements

dans le modèle ne sont pas trop fréquents, auquel cas sinon les rollbacks systématiques auront

pour conséquence de très fortement dégrader les performances. Un exemple de recherche des

temps approchés associés aux événements d’état est donné dans [Camus et al., 2016], avec une

recherche bissectionnelle basée sur une stratégie dichotomique.

Changements d’état discrets

Un changement d’état discret signifie que le modèle change d’état à des instants déterminés

dans le temps. La classification de Ramat réduit la catégorie des modèles à temps continu mais

à changements d’état discrets, à celle des modèles à événements discrets.

Les événements représentent les instants où l’état change. Ces événements peuvent intervenir

n’importe quand dans l’espace du temps, mais systématiquement à des moments précis. L’état du

modèle reste identique à partir du moment où un événement est intervenu, jusqu’à l’occurrence

du prochain événement.

Exécuter le modèle consiste donc à demander au simulateur d’aller d’un événement à l’autre,

en faisant des bonds plus ou moins grands dans le temps (cf. exemple en Figure 2.5). C’est

l’équivalent du pas de résolution des modèles à changements d’état continus, à ceci près que

c’est le modèle qui détermine lui-même le temps exact de sa prochaine exécution, correspondant

au traitement de l’événement suivant. Cette spécificité permet d’avoir la certitude d’obtenir

des résultats de simulation exacts, et de ne pas avoir à lire l’état alors qu’il n’y a eu aucun

changement depuis la dernière fois (augmentant ainsi les performances de la simulation).

S’il est possible de calquer le pas de communication sur le temps du traitement des

événe-ments, pour obtenir l’intégralité des évolutions de l’état aux temps exacts de leur occurrences, il

est également possible de se baser sur des conditions. Ainsi, on peut considérer que seuls certains

changements caractéristiques de l’état sont intéressants pour les résultats de simulation, ou pour

la transmission à un modèle couplé.

Les différents modes d’exécution abordés dans cette section correspondent à des modèles

qui ne sont pas tous capables d’aussi bien décrire un objet ou un phénomène. Lorsqu’il s’agit

de décrire plusieurs choses ou phénomènes qui interagissent ensemble, il peut être intéressant

d’interconnecter des modèles différents. C’est l’objet de la section suivante.