[Next] [Previous] [Up] [Top]

chapitre 6 Le décideur, son organisation et son environnement

6-5.1 L'interaction entre différents types de modélisation


D'un point de vue technique, il n'est pas très difficile d'interfacer différents types de modélisations discrètes, notamment si tous ces logiciels sont écrits dans un même langage comme Lisp. Les problèmes sont plutôt d'ordre conceptuel, à savoir à quel moment faut il combiner deux ou trois approches au lieu d'utiliser au maximum la capacité d'une seule. Nous avons déjà discuté l'intégration de la simulation numérique avec les règles d'inférence dans la section 6-2.4 "Simulation numérique et règles d'inférence" [p. 232]. Esquissons brièvement les deux autres alternatives:

Simulation numérique et simulation objets

Ce type d'intégration ne pose pas beaucoup de problèmes au plan informatique si la simulation est calculée par des pas discrets. Il faut modifier légèrement la montre de simulation de façon à ce qu'elle fasse tourner également la montre de simulation d'un système orienté objet.

Prenons l'exemple de notre moteur de simulation discrète et l'exemple de Ross: il est par exemple possible d'interroger un objet Ross dans une équation:

(def-flow ?guer-losses sbs (*gen*) ini (0) eq (ask guerilla your losses))
Dans l'autre sens, on peut accéder à un objet de simulation numérique depuis un comportement Ross par exemple. Pour modifier la valeur d'une "équation" appelée "?ussr-losses" qui fait partie d'un système appelé "afghanistan", on dira dans notre système:

(sb-def ?ussr-losses 3333 afghanistan) 
Le seul problème qui reste à déterminer est la question de savoir à quel niveau il faut modéliser et ce qu'il faut modéliser (simulation mathématique relativement "éloignée" ou simulation orientée objets relativement "fine") en tenant compte des paramètres de recherche comme le coût, la transparence, la fidélité, etc.

Règles d'inférence et simulation objets

Cette interaction peut être également définie d'une façon relativement simple. On peut par exemple associer une base d'inférence avec un objet d'une simulation objets. A partir d'un "comportement" Ross par exemple, un objet peut lancer le processus d'inférence en envoyant un fait dans une base de données inférentielle avec la commande:

             (add-fact <fact> <base d'inférence>) 
Dans le jeu de règles, on peut par la suite prévoir des actions qui renvoient une information à un objet de simulation, par exemple avec la commande

              (ask <objet> remember <fact>) 
Il est clair qu'une règle peut également intervenir pour lancer ou pour interroger un objet de simulation.

              (ask <objet> <comportement Ross>) 
Donc l'interaction entre ces deux types de modélisation pourrait se faire selon un partage entre comportement intérieur d'objets-décideurs (modélisé par une base de règles appartenant à chacun des ces objets) et les autres comportements (modélisés par des comportements Ross).

Il existe un certain nombre d'outils qui intègrent la simulation d'événements discrets (orientée objets) avec des techniques d'intelligence artificielles. Nous avons déjà rencontré SimKit. D'autres sont Cayene (Ruiz-Mier et Talavage:89), Pross (O'KEEFE:89), DESE/DEVS (Cho:93). Le problème de nouveau n'est pas de le faire, mais de trouver des normes suffisamment flexibles (et acceptées) qui permettent la réutilisation de composantes de modélisation d'une modélisation dans une autre.

La multi-fonctionalité des langages de modélisation

Les techniques de simulation vont de plus en plus subir les influences de l'intelligence artificielle et de la programmation orientée objet. Nous avons pu donner une première indication que la modélisation objets et les systèmes de production peuvent être utilisés avantageusement comme outils de simulation; ils peuvent s'intégrer facilement à des approches plus traditionnelles, mais plus efficaces sur certains plans. Pour corroborer cette hypothèse dans le cadre de la modélisation des décideurs, il faudra faire l'effort de modéliser un phénomène plus complexe de plusieurs façons avec les outils que l'on vient de discuter. Toutefois, les modélisations des décideurs dans d'autres domaines (comme la fabrication ou les batailles militaires) montre que cette approche est à la fois faisable et très intéressante.

Il faut également noter que la simulation objets et les systèmes de production peuvent être chacun utilisés de façon plus générale. Il s'agit en fait de "langages de programmation" assez généraux. En effet, la simulation objets - par le biais des commandes comme "increment your <attribute> by <valeur>" et une simple modification du comportement de la montre - peut facilement être utilisée pour effectuer une simulation numérique. Il y aurait juste une baisse de l'efficacité. Certaines fonctionnalités des règles d'inférence peuvent être obtenues par le mécanisme de gestion de faits et de plans et la possibilité d'insérer des conditionnels dans le code d'un comportement. Les systèmes de production représentent un mécanisme de calcul universel. En plus, notre système permet l'envoi d'un fait d'une base de données vers une autre, simplement par la commande "(add-fact (....) <base d'inference>)". Ainsi on possède déjà le mécanisme de passage d'information utile pour faire une simulation objets. On peut définir un modèle de simulation numérique par une seule base d'inférence. Une montre de simulation peut être définie par une règle et les objets de simulation par des règles qui correspondent à certains faits dans la base de données. Leur calcul se fait par un envoi de faits d'activation.

Cette souplesse est un phénomène très connu en informatique. Dès que l'on possède un outil ayant des possibilités de programmation ou encore une ouverture totale vers un langage de programmation, on peut tout faire avec tout. Parfois, il est beaucoup plus difficile de construire son modèle de façon claire et élégante et de le faire tourner d'une façon relativement efficace. L'interaction entre des langages spécialisés me paraît donc une meilleure alternative. Ultérieurement, il faut absolument développer un langage hybride bien intégré, tel qu'il existe par exemple dans le monde des coquilles de traitement des connaissances comme "KEE" et "SimKit".

Simulation numérique et simulation objets
Règles d'inférence et simulation objets
La multi-fonctionalité des langages de modélisation

THESE présentée par Daniel Schneider - 19 OCT 94
[Next] [Previous] [Up] [Top]

Generated with WebMaker