chapitre 6 Le décideur, son organisation et son environnement
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:
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.
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".
Generated with WebMaker
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.
(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). 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.
THESE présentée par Daniel Schneider - 19 OCT 94
[Next] [Previous] [Up] [Top]