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.
Dans le document
Intégration de modèles de réseaux IP à un multi-modèle DEVS, pour la co-simulation de systèmes cyber-physiques
(Page 39-43)