Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
République Algérienne Démocratique et Populaire Ministère de l'Enseignement Supérieur
Et de la Recherche Scientifique Université 20 Aout 1955 Skikda
Faculté des Sciences de l’Ingénieur
Département d’Informatique
PRESIDENT H. SERIDI
Maître de Conférences ‘A’
U. Annaba
ENCADREUR EXAMINATEURS
M. REDJIMI B. TIGHIOUAR T. KIMOUR
Maître de Conférences ‘A’ Maître de Conférences ‘A’ Maître de Conférences ‘A’
U. Skikda U. Annaba U. Annaba
Année universitaire 2008/2009
Mémoire
Présenté en vue de l’obtention du diplôme de MAGISTER EN INFORMATIQUE De L'Ecole Doctorale de l’informatique INI
Option
Sciences et Technologie de l'Information et de la communication
MODÉLISATION ET SIMULATION BASÉES MULTI-AGENTS DU CONTRÔLE
DE PROCESSUS INDUSTRIELS
Présenté Par
BENOUDINA LAZHAR
DEVANT LE JURY
: Table des matières
Introduction générale.................................................................................................. 1
Chapitre 01 : Notions sur les systèmes
1. introduction……...…………………………………………………………....….. 2
2. Notion de systèmes……………………………………………………………..... 3
2.1 Définitions………………………………………………..................................... 3
2.2 Familles de système…………………………………………….......................... 4
2.3 Types de systèmes……………………………………………………................. 5
2.4 L'interaction avec l'environnement……………………………………... ........... 6
3. Complexité des systèmes………………………………………………………… 7
3.1 Définition………………………………………………………………………. 7
3.2. Eléments de caractérisation de la complexité…………………………………. 7
3.3 Les systèmes réels et virtuels…………………………………………………… 8
3.4 Organisation et auto-organisation……………………………………………... 8
3.5 L'émergence…………………………………………………………………….. 9
3.6 Types de complexité……………………………………………………………. 10
4. Notions sur la modélisation et la simulation de systèmes……………………….. 12
4.1. La modélisation de systèmes………………………………………………….. 13
4.2. La simulation de systèmes…………………………………………………….. 18
5. Conclusion……...…………………………………………………………....… 20
Chapitre 02 : Informatique industrielle
1. introduction……...…………………………………………………………....….. 22
2. Notion de système industriel………………………………………………........... 23
2.1 Définition………………………………………………...................................... 23
2.2 La complexité dans les systèmes industriels………………................................ 24
2.3 Evolution des systèmes industriels de production…………................................ 24
2.4 Les Entrées / Sorties d'un système industriel ………………………... ............... 24
2.5. Le contrôle d'un système industriel……………………………………………. 26
2.6. La commande d'un système industriel ………………………………………… 26
3. Notion de Processus industriel…………………………………………………… 27
3.1 Processus………………………………………………………………………... 27
3.2 Perturbations……………………………………………..................................... 27
3.3 Les grandeurs de commande…………………………………………………… 27
4. L'informatique industrielle………………………………………………………. 28
5. Domaines d'application de l'informatique industrielle…………………………… 28
6. Système de contrôle de processus industriel……………………………………. 29
7. Organisation générale d'un système de contrôle de processus industriel………. 29
7.1. Les capteurs…...…………………………………………………………....…... 29
7.2. Les actionneurs…………………………………………………………............ 30
7.3. Les logiciels…………………………………………........................................ 30
7.4. Les API (équipement informatique)…………………………………………… 30
7.5. Les équipements de communication…………………………………………… 31
7.6. Les interfaces de processus……………………………………………………. 31
8. Caractéristiques principales d'un système de contrôle de processus industriel…. 31
8.1. La fiabilité……………………………………………………………………… 32
8.2. La sensibilité…………………………………………………………………… 32
8.3. Gestion des E/S………………………………………………………………… 32
8.4. Fonctionnement en temps réel………………………………………………… 33
9. Fonctionnalités d'un système de contrôle de processus industriel ……………… 33
9.1. La mesure……………………………………………………………………… 33
9.2. L'affichage…………………………………………………………………….. 33
9.3. La régulation…………………………………………………………………… 33
10. Automatisation d'un système industriel………………………………………… 34
11. Structure d'un système automatisé …………………………………………….. 34
11.1. La partie opérative……………………………………………………………. 34
11.2. La partie commande………………………………………………………….. 34
Conclusion…………………………………………………………………………. 36
Chapitre 03 : Les systèmes Multi agents
1. introduction……...…………………………………………………………....….. 38
2. La notion d’agent…………………………………….…………........................... 38
2.1 Définition………………………………….......................................................... 38
2.2 Environnement…………………………………………….................................. 39
2.3 Caractéristiques des agents…………………………………………................... 39
2.4 Classification des agents ……………………………………... .......................... 41
3. Les systèmes Multi agents……………………………………………………….. 44
3.1. Définition………………………………………………………………………. 44
3.2. Caractéristiques des systèmes multi agents……………………………………. 46
3.3. Interaction dans un système multi agents……………………………………… 47
3.4. Communication dans les systèmes multi agents………………………………. 49
4. La simulation multi agents………………………………………………………. 51
4.1. Méthodologie de simulation multi agents……………………………………… 51
4.2. Caractéristiques de la simulation multi agents…………………………………. 52
5. Domaines d'utilisation des systèmes multi agents……………………………….. 52
6. Conclusion………………………………………………………………………. 55
Chapitre 04 : Application
1. Introduction………. ……………………………………………………....…….. 57
2. La chaudière…………………................................................................................ 57
3. Les différents types de chaudières…………......................................................... 58
3.1. Chaudière à circulation naturelle………………………... ................................ 58
3.2. Chaudière à circulation forcée…………………………………………………. 60
3.3. Chaudière de récupération……………………………………………………... 60
4. Constitution d'une chaudière…………………………………………………….. 60
4.1. Le ballon supérieur………………………………………………………….... 60
4.2. Le ballon inférieur ……………………………................................................. 60
4.3. Les brûleurs……………………………………………………………………. 61
4.4. Le foyer ou la chambre de combustion ……………………………………….. 61
4.5. Les tubes de circulation………………………………………………………... 61
4.6. Les ventilateurs de soufflage…………………………………………………… 61
4.7. Le surchauffeur:………………………………………………………………... 61
4.8. L'économiseur…………………………………………………………………. 62
4.9. Le réchaffeur d'air: ……………………………………………………………. 62
4.10. Le désurchauffeur:……………………………………………………………. 62
5. Principe de fonctionnement d'une chaudière:……………………………………. 63
5.1. Circuit Air-Gaz (la combustion):………………………………………………
5.2. Circuit Eau-Vapeur……………………………………………………………
63
64
6. La régulation d'une chaudière:………………………………………………….. 66
7. Explication du scénario à simuler:……………………………………………… 66
8- Conclusion:……………………………………………………………………… 69
Chapitre 05 : Conception Multi agents de l’application
Introduction ………………………………………………………………… 70
1. Le modèle AALADDIN…………………………………………………....……. 70
1.1. Le niveau descriptif…………………………………………........................... 71
1.2. Le niveau méthodologique………………………............................................... 73
2. Les groupes et les rôles …………….………………............................................ 75
2.1. Le groupe Interface….………............................................................................. 75
2.2. Groupe Air-Gaz (combustion)………………………... ..................................... 76
2.3. Groupe Eau-Vapeur :…………………………………………………………... 77
Conclusion ………………………………………………………………………… 82
Chapitre 06 : Implémentation du logiciel
Introduction ……………………………………………………....……………….. 83
1. Implémentation ……………………………......................................................... 83
2. La plate forme MadKit ……………………………………………………….... 83
2.1. Architecture à micro noyau ................................................................................ 85
2.2. Agentification systématique des services ………….......................................... 85
2.3. Utilisation d’un modèle graphique componentiel. …………............................. 86
3. Les agents ……………………………………………………………………... 86
4. Gestion de groupes et de rôles ……………………………................................. 87
4.1. La création de groupe ………………………………………………………... 87
4.2. L’obtention d’un rôle …………………........................................................... 88
5. Les messages ……………………………........................................................... 89
6. Le scheduling ………………………………………………………………….. 91
7. Structure algorithmique des agents ……………………………………………. 92
8. Déploiement dans MadKit ………………………………................................. 94
9. Discussion de résultats …………………………………………………… 95
Conclusion générale ………………………………………………………………... 96
Bibliographie…………………………………………………………………… 97
Liste des figures
Figure1.1. Système et sous système 4
Figure 1.2. Carte des concepts liés à la complexité 8
Figure 1.3. La relation micro-macro dans un système complexe 9
Figure 1.4. La simulation informatique selon Fishwick 18
Figure 1.5. Vue d'ensemble de la simulation informatique 19
Figure 2-1. Vue générale d'un système de production industriel 23
Figure 2-2. Les E/S d'un système industriel 25
Figure 2.3 : Structure générale d'un système automatisé 35
Figure 3.1 : Structure générale d'un agent réactif dans un système Multi-Agents 41
Figure 3.2 : Structure générale d'un agent cognitif dans un système Multi-Agents 42
Figure 3.3 : Système Multi-Agents 46
Figure 3.4 : Communication via un Tableau Noir 50
Figure 3.5 : Communication par envoi de messages 51
Figure 4.1 : Schéma général d’une chaudière à circulation naturelle 59
Figure 4.2 : Schéma technique de la chaudière étudiée 62
Figure 4.3 : Circuit combustion. 64
Figure 4.4 : Circuit eau-vapeur 66
Figure 5.1 : Concepts (Agent/Groupe/Rôle) du modèle Aalaadin 71
Figure 5.2 : Structure générale d’un agent dans le modèle Aalaadin 72
Figure 5.3 : Vision d’ensemble du modèle AALAADIN 74
Figure 5.4 : Le Groupe interface 76
Figure 5.5 : Le Groupe Air-Gaz 77
Figure 5.6 : Le Groupe Eau-Vapeur 79
Figure 5.7 : Le modèle organisationnel du simulateur 81
Figure 5.8 : Architecture générale du système proposé 82
Figure 6.1 : Le desktop de MADKIT 84
Figure 6.2 : Schedulers des groupes du simulateur 92
Figure 6.3 : Interface du simulateur 94
Liste des tableaux
Tableau 3-1 Agents cognitifs vs agents réactifs 43
Tableau 3.2 : Evaluation Comparative De Plate Formes Multi-Agents 54
Tableau 5.1 : Description fonctionnelle du simulateur 80
Je tiens à remercier vivement Monsieur M. REDJIMI ; maitre de
conférences classe ‘A’ à l’université du 20 Aout 1955 de Skikda pour
avoir accepté de diriger ce travail ainsi que pour ses encouragements et
son aide.
Je remercie aussi madame H. SERIDI maitre de conférences classe
‘A’ à l’université Badji mokhtar de Annaba pour avoir accepté de
présider le jury de magister.
Mes remerciements les plus chaleureux vont aussi à madame
B.TIGUIOUART ainsi qu’à Monsieur M.T. KIMOUR maitres de
conférences classe ‘A’ à l’université Badji Mokhtar de Annaba pour
avoir accepté d’examiner ce travail.
A mes deux parents, eux qui m’ont offert l’un des plus beaux cadeaux
de la vie : le savoir. Je leur dis merci pour tout ce qu’ils ont fait et
continuent à faire pour moi.
A mon encadreur Mr M. Redjimi, à toute ma famille, à mes amis, eux
qui m’ont toujours soutenu dans les moments difficiles tout au long de
mes études.
A tous ceux qui me sont chers
RÉSUMÉ:
La simulation à base d'agents ou encore Multi-Agents s'impose de plus en plus pour son efficacité et sa simplicité. En effet, ce type de simulation offre, au contraire des autres types, la possibilité de représenter directement les entités simulées, leurs comportements et leurs interactions sans avoir recours aux équations mathématiques. Ce travail est une contribution dans ce sens, le but est de construire un simulateur à base d'agents d'un processus industriel. Ce processus comme presque tous les processus industriels présente le problème de la complexité, qui peut être maîtrisé avec l'approche Multi-Agents. Nous avons utilisé l'outil logiciel MadKit™ comme plate-forme de développement et d'exécution de notre simulateur, avec des résultats satisfaisants.
MOTS-CLÉS: Simulation, Systèmes Multi-Agents (SMA), MadKitTM, Processus industriels.
ABSTRACT :
Simulation based on agents or multi agents is more and more essential for its effectiveness and its simplicity. Indeed, this type of simulation offers, on the contrary of other types, the possibility of directly representing the simulated entities, their behaviours and their interactions without having recourse to the mathematical equations. This work is a contribution in this way; the goal is to build a simulator based on agents of an industrial process. This process as almost all the industrial processes present the problem of the complexity, which can be controlled with the approach Multi-Agents. We used the software tool MadKit™ as platform of development and execution of our simulator, with satisfactory results.
KEYWORDS: Simulation, Multi-Agents systems (MAS), MadKitTM, industrial processes.
Introduction générale
Introduction générale
1
Introduction Générale
La modélisation informatique permet de construire un prototype caractérisé par un
programme informatique d’une réalité. Ce prototype traduit les comportements de cette réalité
ainsi que son interaction avec l’environnement dans lequel elle est censée évoluer. Lorsque
l’on fait évoluer ce prototype en appliquant dessus des entrées externes en en analysant les
effets produits, on parle alors de simulation. Ce principe peut être utilisé comme moyen
permettant la maîtrise de la complexité des systèmes.
Plusieurs sortes de motivations poussent au recours à la modélisation et à la
simulation. Il est ainsi courant d’utiliser ces techniques afin de savoir comment fonctionne un
système puis formuler et mettre au point ses lois d’évolution; c'est là toute la problématique
de la simulation des phénomènes physiques. De même, on peut utiliser la simulation dans un
but d’apprentissage. Le but poursuivi, dans ce cas, est pédagogique, il mène à montrer les
façons de manipulation d’un système, ou la direction d’une organisation en dehors de leurs
contextes réels. C’est ce que l’on trouve dans les simulateurs de vol, les contrôleurs aériens,
les centrales nucléaires, les grands complexes, les procédés industriels, le rôle du simulateur
ici est de reproduire un phénomène pour pouvoir voir son évolution et l’analyser.
On peut aussi simuler pour évaluer de manière prédictive le comportement d’un
système, ou l’impact sur ce comportement d’une modification d’une partie de ce système, le
simulateur devient dans ce cas un outil de conception et de validation du système lui-même.
Dans les grands complexes industriels, la simulation joue un rôle prépondérant à
plusieurs niveaux. De tels complexes emploient des milliers de systèmes interconnectés. Il
n’est pas possible d’arrêter l’ensemble ou une de ses parties pour les observer et les étudier
car un tel arrêt pourrait se traduire par une perte de gain énorme pour l’entreprise qui verrait
sa production paralysée.
C’est le cas des chaudières industrielles qui sont des équipements fondamentaux dans
beaucoup de chaînes industrielles. La chaudière est un procédé très complexe qui sert à
produire de l’énergie pour d’autres procédés et son arrêt implique l’arrêt total de toutes les
unités du complexe (tel que les turbocompresseurs et les unités de productions qui utilisent la
vapeur à très fortes pressions pour mettre en marche les machines). La chaudière est une
Introduction générale
2
installation d’une importance stratégique et un équipement classé très critique. Il est
nécessaire que son fonctionnement se fasse dans les meilleures conditions afin d’avoir un
rendement le plus optimal possible.
De par le nombre de composants matériels et logiciels intervenant dans le
fonctionnement d’une chaudière, ainsi que les multiples interactions entre ces composants, on
peut parler de système complexe.
La simulation Multi-Agents nous apparaît être la démarche la plus adéquate à la
modélisation de ce type de systèmes (les systèmes complexes tels que la chaudière). La
simulation Multi-Agents est un domaine de recherche relativement récent, qui se base sur la
notion d’agent. Un système Multi-Agents est naturellement adapté pour décrire et simuler un
système composé d’entités, il permet au modèle de paraître plus proche de la réalité. De plus,
un système Multi-Agents est particulièrement bien adapté à la description d’un système du
point de vue de l’activité de ses composantes, c’est-à-dire lorsque le comportement des
individus est complexe (difficile à décrire avec des équations). De plus, la modélisation est
plus facilement interprétable par un observateur humain, car la description par un SMA est plus
naturelle que par de simples processus; la validation par un expert en sera donc facilitée, car il pourra
facilement se rapporter au monde réel.
Pour implémenter notre simulateur de chaudière par les systèmes Multi-Agents, nous
avons utilisé le modèle Aalaadin pour la conception qui se base sur la notion d’organisation
(modèle organisationnel). De même, nous avons adopté la plate forme de développement
MadKit. Ces deux outils ont été développés au Laboratoire LIRMM de l’université de
Montpellier.
Notre mémoire se compose de six chapitres organisés de la façon suivante:
Le premier chapitre constitue une introduction générale et présente les concepts de
base des systèmes.
Introduction générale
3
Le deuxième chapitre concerne les systèmes dédiés à l’informatique industrielle.
Le troisième chapitre traite des systèmes multi-agents (SMA) et leurs applications
dans les domaines de la modélisation et de la simulation.
Dans le quatrième chapitre un cas réel ; concernant la modélisation des différents
composants d’une chaudière ainsi que son fonctionnement et les différentes boucles
de régulation qui la contrôlent est présenté.
Le cinquième chapitre traite de la méthodologie de conception de ce cas réel en
utilisant le système organisationnel AALAADIN.
Enfin, une implémentation de notre application avec la plate forme multi-agent Madkit
est décrite dans le dernier chapitre.
Chapitre 1 Notions sur les systèmes
Chapitre 1 Notions sur les systèmes
3
1/ Introduction :
Nous utilisons le mot système dans de nombreux domaines qu’ils soient techniques,
scientifiques, biologiques, de la vie courante ou autre…. En mathématiques ; par exemple, nous
parlons de systèmes d’équations, comme nous parlons de système de production dans
l’industrie, ou de systèmes d’exploitation ou de bases de données en informatique. Nous parlons
aussi de systèmes scolaires, sociaux, politiques, naturel … Cette notion est d’un usage répandu
ce qui fait qu’il n’est pas aisé de la définir de façon simple et unique.
2/ Notion de système :
2-1/ Définition :
De façon générale, on peut dire qu’un système correspond à un ensemble d’éléments en
interaction, organisés en fonction d'un but déterminé. Ces éléments èvoluent dans un ensemble
d’environnements et forment un tout, ces parties ont chacune des fonctions bien déterminées à
accomplir et une certaine autonomie. Cet ensemble interagit dans le temps ; il existe dans un
milieu qui exerce sur lui des influences et sur lequel il peut agir. [Boissier et al., 2004]
Le but de cet ensemble est ; donc ; de produire des fonctions données et pour lesquelles
il a été créé, chaque élément du système (qui peut être lui-même un sous-système, voire même
un système) a un rôle bien déterminé à jouer. [Labidi et Lejouad, 1993 ]
Il existe de nombreuses autres définitions [Larvet, 1994] [Le Moigne, 1990] qui s’accordent
généralement sur différents points. Tout d’abord un système est un ensemble d’éléments. Selon
les domaines, ces éléments sont appelés constituants, composants, objets ou agents. Un
composant peut être lui même un système. Dans ce cas on parlera alors de la caractéristique
hiérarchique d’un système. Cet ensemble d’éléments est doté d’une structure qui précise la
nature des liens (relations, interfaces etc.). Ils sont en interaction entre eux c’est-à-dire qu’ils
peuvent s’échanger des informations, de la matière et de l’énergie. Ils sont aussi en interaction
avec l’environnement car les systèmes ne sont jamais isolés au sens physique du terme. Ainsi un
système peut être sollicité par son environnement et y répondre. Il peut donc réaliser des
fonctions et assurer un ensemble d’activités. Ainsi le système transforme de l’information, de la
matière ou de l’énergie, il évolue dans le temps et il possède des objectifs.
Chapitre 1 Notions sur les systèmes
4
Dés lors, on peut faire ressortir deux aspects assez complémentaires : au niveau des constituants
du système chacun exécute un ensemble de taches en fonction d’interactions avec les autres
constituants, il fournit des résultats (travail) individuels. Au niveau système ; il en émane des
résultats globaux et collectifs dont la combinaison devrait fournir le résultat ou but du système.
Ceci définit la notion d’émergence [Jean, 1997] [Lenay, 1996] qui caractérise le travail global.
Cette notion détermine le caractère réactif de tels systèmes, on parle alors d’intelligence
collective distribuée. De tels systèmes sont formés de grandes quantités de composants. A
l’inverse, on parlera de systèmes cognitifs qui sont caractérisés par un nombre plus réduits de
constituants où chacun dispose de capacités de raisonnement et d’exécution assez complexes.
Figure1.1. Système et sous système
2-2/ Familles de systèmes :
On peut distinguer deux grandes familles :
2-2-1/ Les systèmes naturels :
Ces systèmes sont utilisés pour décrire des phénomènes naturels et leurs propriétés. On
peut citer :
Le système moléculaire,
Le système cellulaire,
Le système nerveux,
Le système immunitaire,
Le système nuageux,
Le système solaire,
Chapitre 1 Notions sur les systèmes
5
2-2-1/ Les systèmes artificiels :
Dans ce cas, le système sert à décrire des concepts imaginés par l'activité humaine dans
divers domaines.
- En sciences mathématiques et physiques :
Le système métrique,
Le système de coordonnées,
Les systèmes d'équations (différentielles, aux différences finis,…),
La dynamique des systèmes (turbulence, phénomènes chaotiques, attracteur,…).
- En sciences de technologie de l'information et de la télécommunication :
Le système informatique,
Le système expert,
Le système de télécommunications,
Le système de contrôle commande.
- En sciences économiques et financières :
Le système monétaire international,
Le système de gouvernement,
Le système de management de la qualité.
On s'aperçoit que dans tous les cas, le système comporte une logique intrinsèque d'organisation
qui est souvent complexe et hors de portée de notre compréhension.
2-3/ Types de systèmes :
2-3-1/ Systèmes continus :
Etant donné un système ouvert, un système est soumis à des conditions extérieures que
l'on peut désigner par le terme de conditions environnementales (qui peuvent être le pH d'un
sol, la température ou l'humidité de l'air, la pression atmosphérique, etc.). Par ailleurs, un
système est caractérisé par un ensemble de valeurs, appelées attributs, et évolue dans le temps.
Dans le cas où un attribut est numérique et où il est susceptible d'évoluer en fonction de
paramètres qui peuvent être le temps, ou certaines conditions environnementales, ou encore
d'autres attributs. Celui-ci est dit continu si d'une part les paramètres en fonction desquels il
Chapitre 1 Notions sur les systèmes
6
varie peuvent être assimilés à des variables réelles et si d'autre part l'attribut est assimilable à
une fonction continue de ces variables réelles. Comme on le voit, cette définition est associée au
concept purement mathématique de continuité d'une fonction. On peut donc par exemple
considérer, à cette échelle, un certain nombre de processus temporels comme continus : un
mouvement; la croissance d'une plante; voire, les évolutions d'une très grande population.
2-3-2/ Systèmes discrets :
Toutefois l'évolution d'un attribut peut présenter des discontinuités, appelées
événements discrets. Pour des processus temporels par exemple, il s'agit d'événements dont
l'occurrence a lieu à un instant précis : l'arrêt ou le démarrage du mouvement, un changement
"instantané" de vitesse ou de direction suite à un choc; la naissance ou la mort d'un individu
dans une petite population. Lorsque l'attribut n'évolue que consécutivement à des événements
discrets, il peut être qualifié de discret.
2-3-3/ Systèmes déterministes :
Un système est dit déterministe s'il se comporte toujours exactement de la même manière
lorsqu'il est placé dans des conditions identiques.
2-3-4/ Systèmes indéterministes (stochastiques) :
Par opposition, on qualifie de système indéterministe (ou encore aléatoire, ou
stochastique) un système qui se comporte de façons différentes sans cause apparente. Cette
absence de cause apparente est appelée hasard. La formalisation mathématique de tels systèmes
est fournie par la théorie des probabilités.
2-4/ L'interaction avec l'environnement :
Un système dont les éléments n'ont de relations qu'entre eux, à l'exclusion de toutes
autres entités extérieures au système est dit fermer. En réalité, il est difficile de trouver des
systèmes totalement fermés, et plus ou moins tous les systèmes que l'on est amené à observer et
étudier dans la nature ou dans la société sont des systèmes ouverts, c'est-à-dire en relation avec
leur environnement. La définition d'un système ouvert nécessite alors de faire la distinction entre
les relations liant les entités du système à l'intérieur de celui-ci et les relations éventuelles que
peuvent lier ses entités avec l'environnement.
Chapitre 1 Notions sur les systèmes
7
3/ Complexité des systèmes :
Les systèmes complexes font l’objet d’études actives dans bien des domaines[Kolski,
1997] [Bar-Yam, 1997] [Bar-Yam, 2005] : la physique, la biologie, l'industrie, les sciences
humaines et sociales, les sciences cognitives. Il s’agit donc d’un domaine d’études très
pluridisciplinaire. Les mathématiciens, les physiciens théoriciens mais aussi les informaticiens
ont permis la création de méthodes, de formalismes et d’outils de modélisation.
3-1/ Définitions :
Ethymologiquement, le terme "complexe" est issu du latin complexus signifiant englober
et embrasser. Intuitivement, on dira d’un problème qu’il est complexe lorsqu’il est difficilement
intelligible, interprétable et lorsque sa résolution n’est pas facile. Cette difficulté peut provenir
d’un manque de connaissance, de méthode, de modèle ou de temps. A l’origine de la complexité
serait donc l’interaction et la globalité. La définition d’un système ayant été abordée
précédemment, le système serait complexe de part la diversité et la pluralité de ses constituants
ainsi que la multitude des interactions entre eux.
Nous adoptons comme définition d’un système complexe un système composé de
nombreux éléments qui interagissent fortement entre eux et sur leur environnement. Ces
interactions sont souvent non linéaires et contiennent généralement des boucles de rétroaction.
Au niveau global, ces systèmes se caractérisent par l’émergence de phénomènes non
observables au niveau des éléments constitués : un observateur externe appréhendera et
comprendra différemment le système qu’un observateur interne au système. Il se caractérise
donc par l’émergence au niveau global de propriétés nouvelles et par une dynamique de
fonctionnement global difficilement prédictible à partir de l’observation et de l’analyse des
interactions élémentaires.
3-2/ Eléments de caractérisation de la complexité :
Les premières études concernant les systèmes complexes ont démarré très tôt
(notamment celles de von Bertalanffy durant les années 1950) qui étaient centrées sur les
concepts de structure, d’information, de régulation et d’organisation. Par la suite, dès les années
1970, deux autres concepts ont été introduits et intégrés: la communication et l’autonomie. Le
NECSI (New England Complex Systems Institute) propose une série de concepts (voir figure 1.2),
en considérant la majorité des applications possibles dans le domaine scientifique et
professionnel, pour donner une idée générale du terme [Bar-Yam, 1997]
Chapitre 1 Notions sur les systèmes
8
Figure 1.2. Carte des concepts liés à la complexité
3-3/ Les systèmes réels et virtuels :
Avec l’informatique s’est développée la possibilité de construire des simulations de
systèmes complexes « réels » qui sont elles-mêmes des systèmes complexes « virtuels ». Les
techniques informatiques utilisées dans ce domaine, et notamment celles de la vie artificielle,
comprennent des techniques et méthodes diverses tels que les algorithmes génétiques, les
modélisations basées objet, les systèmes multi agents, etc., qui prennent donc un statut un peu
particulier. Elles sont en effet à la fois outils de modélisation pour l’étude de systèmes, qu’ils
soient biologiques, économiques, industriels ou autres, et objets d’étude en eux-mêmes,
permettant d’améliorer la compréhension de certaines des propriétés de ces systèmes.
3-4/ Organisation et auto organisation :
Selon E. Morin, l'organisation est un agencement de relations entre composants ou
individus qui produit une unité complexe ou système, et qui par ailleurs assure à ce dernier une
certaine possibilité de durée en dépit de perturbations aléatoires [Morin, 1977].
Ainsi, l’organisation désigne à la fois la structure ; le squelette qui donne sa forme au
système (l’organigramme d’une entreprise par exemple), et le processus par lequel cette
structure a pu se mettre en place et se maintenir. [Camps and Gleizes, 1995]
Les termes d’auto organisation et d’émergence ont des significations voisines, le premier
étant issu des sciences physiques et chimiques [Nicolis et Prigogine 1977], le second étant plus
Chapitre 1 Notions sur les systèmes
9
utilisé par la biologie, donc également par la vie artificielle [Cariani 1990 ; Steels 1991]. Le
principe d’auto organisation désigne la propriété que possèdent certains systèmes d’augmenter
leur capacité d’adaptation au cours de leur fonctionnement alors qu’ils sont soumis au bruit
(bruit entendu au sens de désordre). Le cerveau mature présente par exemple ce genre de
propriété, qui lui permet de structurer le flot désordonné d’informations sensitives qu’il reçoit.
3-5/ L'émergence :
Par ailleurs, on parlera de propriétés émergentes lorsqu’un système, pris dans son
ensemble, manifeste des comportements qui ne sont pas présents explicitement dans chacune
de ses composantes, et qui sont donc le résultat de la dynamique interne du système et/ou de
ses interactions dynamiques avec son environnement [Steels 1991]. Il est également possible
d’interpréter ce genre de phénomène comme un couplage entre les composants en interaction
(niveau local ou micro), et l’organisation du système dans son ensemble (niveau global ou
macro) (voir figure 2.3).
Figure 1.3. La relation micro-macro dans un système complexe d'après [Ferber, 1995]
Les comportements et interactions individuels déterminent l’émergence de structures
globales qui, en retour, contraignent l’activité individuelle [Ferber1995]. Des fourmis qui
explorent leur environnement à la recherche de nourriture, et qui la rapportent à leur nid,
s’organisent en files. Pourtant, aucune fourmi ne sait explicitement ce qu’est une file, et chacune
se contente de suivre les traces chimiques laissées sur le sol par les autres fourmis à leur retour
au nid.
Chapitre 1 Notions sur les systèmes
10
3-6/ Types de complexité :
Un système peut donner lieu à des complexités de natures différentes [Donnadieu et
Karsky, 2002]:
3-6-1/ La complexité spatiale (répartition) :
L’interconnexion entre des ensembles de variables interconnectées entre elles et
s’influençant mutuellement implique une notion d’influence spatiale s’exerçant et se modifiant
dans le temps. Le fait que les composants d’un système peuvent être répartis, signifie que les
informations caractérisant l’état du système à un instant donné ne sont pas disponibles de
manière centralisée, mais doivent au contraire être récupérées depuis des sources diverses
avant d’être intégrées au sein d’une représentation globale.
3-6-2/ La complexité imprévisible :
C’est une complexité qui fait référence au chaos et à l’aléatoire qui décrit un
comportement temporel incertain, quasiment imprévisible.
3-6-3/ La complexité dynamique (temporelle) :
Le comportement temporel d’un ensemble de variables est rendu complexe dès lors
qu’apparaissent entre elles des boucles de rétroaction, dès leurs interventions au sein d’un
système. Il est alors impossible de prédire le comportement dans le temps de ce système.
3-6-4/ La complexité componentielle :
La complexité componentielle résulte de la structuration du système en une multitude de
composants qui peuvent être :
• Hétérogènes
• Composites
• Mobiles et distribués dans l’espace
• En nombre variable dans le temps
Chapitre 1 Notions sur les systèmes
11
3-6-4/ La complexité modulaire :
Dans le cas de systèmes complexes ouverts, il est impossible de connaître a priori la liste
des éléments qui composent un système puisque, par définition, cette liste est variable dans le
temps. Elle est modifiée chaque fois qu’un composant est ajouté ou retiré du système. Si l’on
s’intéresse, par exemple, à la représentation d’un tronçon d’autoroute, la composition du
système évolue au rythme des entrées et sorties des voitures sur le tronçon.
3-6-5/ La complexité structurelle :
La complexité structurelle résulte de la structuration du système en différents niveaux qui
peuvent être définis de manière :
• Implicite, constituant une propriété émergente du système
• Explicite, constituant une donnée initiale du système
3-6-6/ La complexité interactionnelle :
La complexité interactionnelle résulte de l’interdépendance entre composants, se
manifestant par des interactions qui peuvent :
• Être de nature très différente
• Se constituer ou disparaître de manière dynamique
• Opérer entre composants de niveaux différents
• Opérer simultanément à différents niveaux de complexité
• Opérer à différentes échelles spatiales et/ou temporelles
3-6-7/ La complexité organisationnelle :
La complexité organisationnelle résulte de la dynamicité de la structure du système et des
interactions entre composants, qui se manifeste par :
• Des comportements émergents, qui ne peuvent pas être déduits simplement du
comportement des composants
• Des comportements chaotiques, pour lesquels les comportements de plus bas niveau
peuvent influencer le comportement global du système par effet d’amplification
• Des comportements évolutifs, pour lesquels les composants, la structure et l’organisation
du système évoluent au cours du temps
Chapitre 1 Notions sur les systèmes
12
3-6-8/ La complexité interdisciplinaire :
La complexité interdisciplinaire résulte de la multiplicité et de l’interpénétration des
champs disciplinaires potentiellement impliqués dans l’étude des systèmes complexes. Elle peut
brouiller la compréhension de phénomènes complexes du fait :
• De la fragmentation des savoirs
• De la manipulation de terminologies communes pour désigner des concepts différents
• De la manipulation de terminologies différentes pour manipuler les mêmes concepts ou au contraire faciliter cette compréhension par :
• L’utilisation de transpositions, d’analogies, de métaphores, d’une discipline à une autre
4/ Notions sur la modélisation et la simulation de systèmes :
Depuis longtemps, la science classique divisait l'étude d'un système donné en plusieurs
sous parties plus faciles à résoudre. La donnée des différents résultats fournissait alors le
résultat global. Cette démarche n'est malheureusement pas toujours possible. En effet, certains
phénomènes observables dans des domaines divers et variés tels que la biologie, la géographie,
la physique, les sciences sociales, les mathématiques, l'économie et l'informatique, sont des cas
pour lesquels l'étude analytique traditionnelle n'est pas applicable. Ils ont un comportement
global qui ne peut être expliqué par le comportement individuel de leurs parties (la totalité n’est
pas toujours la somme des parties). C’est pourquoi l’homme a fait recours à la modélisation et à
la simulation des systèmes étudiés.
La modélisation et la simulation des systèmes complexes constituent aujourd’hui un enjeu
majeur dans de nombreux domaines de la société humaine. Elles permettent de tester des
hypothèses, de les transmettre, de les exposer et d’en formuler de nouvelles a posteriori. Cet
outil constitue ainsi pour les scientifiques un moyen d’investigation unique, quel que soit le
domaine considéré.
Chapitre 1 Notions sur les systèmes
13
4-1/ La modélisation de systèmes :
4-1-1/ Modèle :
Un modèle est une image simplifiée de la réalité qui nous sert à comprendre le
fonctionnement d’un système en fonction d’une question. Tout modèle est constitué d’une part
de la description de la structure du système, qui incorpore les spécifications sémantiques
intégrées (nomenclature et règles d’affectation du sens pour une source, étendue et profondeur
du consensus social donnant du sens dans le cas d’une représentation à dire d’acteurs) et d’autre
part de la description des fonctionnements réguliers (ou non) et des dynamiques qui modifient
cette structure au cours du temps. Ainsi, un modèle :
- Doit avoir un caractère de ressemblance avec le système réel,
- Doit aider à la compréhension du système réel.
4-1-2/ Objectif de la modélisation :
L'objectif de la modélisation, dans son sens le plus général, est la connaissance du monde
réel. Les sciences dites dures (physique, chimie, biologie, …) ou les sciences humaines
(économie, sociologie, psychologie, …) proposent des modèles. Ces modèles sont d'abord validés
par la confrontation de leurs résultats avec ceux d'expériences réalisables. Une fois validés, ceux-
ci ont une valeur prédictive et suggèrent d'autres expériences non réalisées jusqu'à maintenant.
Si ces nouvelles expériences corroborent les prédictions du modèle, alors la validation de celui-
ci est confirmée, et la connaissance du domaine modélisé est réellement augmentée.
4-1-2/ Types de modèles :
On distingue plusieurs types de modèles selon la nature du système étudié.
Modèle déterministe :
Ce modèle est basé sur l’élaboration d’équations précises ; le système est alors
totalement prévisible.
Modèle stochastique :
Ce modèle introduit des phénomènes aléatoires ; il rend compte du « hasard » que
nous retrouvons communément dans les écosystèmes.
Chapitre 1 Notions sur les systèmes
14
Modèle par simulation :
Il présente généralement l’avantage de se dispenser d'une modélisation
mathématique ardue, et autorise la représentation d'environnement comprenant un
très grand nombre d'acteurs aux comportements différents. Il représente le modèle
plongé dans le temps.
Modèle physique :
Un modèle physique est une maquette de la réalité, les modèles réduits sont encore très
utilisés en particulier en raison de leur capacité à prendre en compte des conditions aux
limites complexes mais aussi à cause de leur matérialité qui séduit souvent les maîtres
d'ouvrages. Ils sont cependant très coûteux à mettre en œuvre et ne peuvent prendre en
considération que certains cas pratiques.
Modèle mathématique :
Le modèle mathématique est une traduction de la réalité pour pouvoir lui appliquer les
outils, les techniques et les théories mathématiques. Ce modèle est constitué donc
d'équations, elles mêmes constituées de variables. Ce type de modélisation a été utilisé
pendant longtemps, aux heures où l’informatique ne possédait pas d’outils assez
performants pour prendre en charge la modélisation. Ce modèle est utilisé pour anticiper
des évènements ou des situations, comme prévoir le climat avec la météo, estimer les prix
potentiels des actifs financiers …etc.
Modèle informatique :
Dans ce modèle, la réalité est représentée par un ensemble de programmes
informatiques, qui en s'exécutant décrivent l'évolution de la variation d'un ensemble de
variables en fonction du temps [4]. Le modèle informatique est le plus utilisé actuellement.
Dans certains systèmes complexes, comme c'est le cas dans la construction d'avions ou
d'automobiles, on utilise généralement des prototypes du système réel sur lesquels sont
effectués des simulations informatiques.
4-1-3/ Outils de modélisation :
Dans ce qui suit, nous présentons quelques outils de modélisation mathématique et
informatique.
Chapitre 1 Notions sur les systèmes
15
Outils de modélisation mathématique :
Equations différentielles :
En mathématique, une équation différentielle est une relation entre une ou plusieurs
fonctions inconnues et leurs dérivées. La modélisation mathématique de systèmes par
équations différentielle est actuellement largement répandue dans les domaines
scientifiques (physique, chimie, biologie...). Elle comporte certains avantages essentiels:
– L’approche est formalisée. En effet, une équation mathématique est universellement
compréhensible, des solutions analytiques peuvent être trouvées et si ce n’est pas le cas,
des simulations numériques peuvent être effectuées.
– Un système d’équations différentielle permet de décrire l’évolution d’un système
composé d’un grand nombre d’éléments ou de nombreux types d’interactions entre
plusieurs ensembles d’éléments.
Chaînes de Markov :
Une chaîne de Markov est un processus permettant la modélisation d'un système à
partir d'un ensemble de probabilités qui correspondent au passage d'un état à l'instant t
à un autre état du système à l'instant t+1. Cet outil probabiliste est issu de l'observation
de l'entité à modéliser car les probabilités des transitions sont extraites à partir
d'informations réelles.
Une chaîne de Markov est un concept mathématique qui a été créé par des
mathématiciens, elle peut être donc définie mathématiquement.
Les réseaux de Pétri :
Les réseaux de Pétri, sont une des nombreuses représentations mathématiques d’un
système. Un réseau de Pétri décrit graphiquement la structure d’un système distribué
comme un graphe direct biparti avec annotations. Il possède des noeuds places, des
noeuds transitions et des arcs orientés connectant les places aux transitions.
Un réseau de Pétri évolue lorsqu’on exécute une transition : des jetons sont pris dans
les places en entrée de cette transition et envoyés dans les places en sortie de cette
Chapitre 1 Notions sur les systèmes
16
transition. L’exécution d’une transition (on parle alors de son franchissement) est une
opération indivisible qui est conditionnée par la présence de jeton sur la place d’entrée.
L’exécution d’un réseau de Pétri est non déterministe, car il peut y avoir à un instant
donné autant de possibilités d’évolution que de transitions franchissables à cet instant.
Un concept nouveau des réseaux de Petri concerne les réseaux de Petri colorés.
Les Files d'attente :
La théorie de files d'attente est un concept stochastique permettant de modéliser
l'utilisation d'une ressource critique. Par définition, une zone critique est un lieu
physique ou logique qui ne peut être accédé que par un seul individu à la fois. Lorsqu'un
client désire utiliser une zone critique déjà en fonctionnement, il entre alors dans une
zone d'attente.
Outils de modélisation informatique :
Le modèle entité / association :
Le modèle Entité/Association a été proposé par Chen, en 1976 pour la modélisation
des données et des liens existant entre elles, avec des concepts simples et efficaces. C'est
une représentation naturelle du monde réel du système à étudier. Il est bâti autour de
trois concepts : Entité, Association et Propriétés et permet une description graphique.
Le modèle relationnel :
Le modèle relationnel a été formalisé par CODD en 1970. Ce modèle permet une
description tabulaire de données, c à d, les données sont structurées en tables
(relations). De plus, l’algèbre relationnelle permet la manipulation de ces données en
s’appuyant sur la théorie des ensembles. Le succès du modèle relationnel auprès des
chercheurs, concepteurs et utilisateurs est dû à la puissance et à la simplicité de ses
concepts donc facile à comprendre par les utilisateurs. La méthode d’analyse MERISE
s’appuie sur la combinaison des concepts entité/association et modèle relationnel.
Le modèle orienté objet :
Le modèle orientée objet considère le système comme une collection d’objets
dissociés, identifiés et possédant des caractéristiques. Une caractéristique est soit un
attribut (une donnée caractérisant l’état de l’objet ou attribut), soit une entité
Chapitre 1 Notions sur les systèmes
17
comportementale de l’objet (une fonction ou méthode). La fonctionnalité du système
émerge alors de l’interaction entre les différents objets qui le constituent. L’une des
particularités de cette approche est qu’elle rapproche les données et leurs
traitements associés au sein d’un unique objet. La méthode UML qui se veut
actuellement un standard dans les méthodologies orientées objet tire toute sa
puissance de ce concept. [Roques et Vallée, 2003] [Mylopoulos et al., 2001]
Le modèle orienté agents :
Depuis quelques années, les besoins en terme de méthodes de représentation, de
conception et de logiciels ont évolué. La tendance est à la puissance dans la
représentation et dans les traitements pour faire face aux grandes masses
d’informations, la plupart du temps hétérogènes et distribuées. Ceci nécessite des outils
puissants qui s’adaptent aux différentes situations sans toujours nécessiter une
intervention externe (du programmeur). Il faut des moyens avec une certaine
‘intelligence’, capable de ‘ raisonner ‘, de ‘ prendre de l’initiative’ et qui soient ‘apte
d’interagir’ dans des ‘environnements’. Un nouveau paradigme de programmation
émerge pour pallier les manques des approches traditionnelles : la programmation
orientée agent. L’approche orientée agents offre une façon beaucoup plus naturelle de
concevoir les systèmes. Elle s’intéresse à la manière de diviser un problème en un
ensemble d’entités distribuées et coopérantes et à la manière de partager la
connaissance du problème afin d’en obtenir la solution. Ce domaine est apparu
initialement pour résoudre les problèmes d’intelligence distribuée (IAD). [Labidi et
Lejouad, 1993 ] [Weiss, 1999] [Gasser, 1992]
Chapitre 1 Notions sur les systèmes
18
4-2/ La simulation de systèmes :
4-2-1/ Définitions :
La simulation est un outil d’aide à la décision puissant pour l'homme plus
particulièrement l’industriel. Faute de pouvoir mettre l’usine en équation (les contraintes sont
multiples et les acteurs décideurs sont de plus en plus nombreux), la simulation permet de
reproduire son fonctionnement sur ordinateur et comparer des scénarii d’exploitation. On peut
de cette manière, tester l’impact d’un investissement, d’une modification d’un paramètre, du
lancement d’un nouveau produit sur une ligne de production, d’une autre règle
d’ordonnancement, on peut mesurer le niveau d’un stock ou des en-cours, ... Cette technique
peut aider à mieux cerner les conséquences de choix potentiels d’actions, afin de mieux les
maîtriser et d’améliorer ainsi le pilotage de l’atelier.
Selon Fishwick [Fishwick, 1997], la simulation sur ordinateur est la discipline qui consiste
en la conception d'un modèle d'un système réel ou théorique, puis en l'exécution de ce modèle
sur ordinateur, et enfin en l'analyse des sorties pour en tirer les conclusions qui s'imposent.
La simulation permet donc, d'étudier un système réel de manière à comprendre son
fonctionnement interne et externe et à prévoir son évolution sous certaines conditions.
Figure 1.4. La simulation informatique selon Fishwick
4-2-2/ La simulation informatique :
L’informatique permet d’effectuer la simulation de phénomènes réels sur ordinateur. Le
but principal de la simulation informatique est :
Chapitre 1 Notions sur les systèmes
19
• Étudier un système réel de manière à comprendre son fonctionnement interne et/ou à en
prévoir son évolution sous certaines conditions.
• Concevoir un modèle informatique qui est une ‘représentation’ fidèle du système réel et
qui est utilisé pour réaliser les expérimentations.
Figure 1.5. Vue d'ensemble de la simulation informatique
La fig. 1-5 représente une vue d’ensemble de la simulation informatique, on peut y distinguer les
concepts suivants :
Le système source : le phénomène que l’on souhaite étudier.
Le cadre expérimental : spécifications des conditions d’observation du système et des objectifs de la simulation.
Le modèle : l’ensemble des instructions qui permettent de générer - à l’aide d’un programme informatique - le comportement du système au cours du temps.
Le simulateur : le programme informatique capable d’exécuter le modèle et de produire son comportement.
4-2-3/ Types de simulation :
On peut distinguer trois catégories de simulations :
La simulation continue : Où le système se présente sous la forme d'équations
différentielles à résoudre. Elle permet de suppléer à la résolution analytique quand celle-ci
est impossible. Effectuée au départ sur des calculateurs analogiques, elle s'est effectuée aussi
sur des ordinateurs ainsi que des machines hybrides, et un troisième type de calculateurs qui
n'a pas eu de lendemain, les calculateurs stochastiques.
La simulation discrète : Dans laquelle le système est soumis à une succession
d'évènements qui le modifient. Ce type de simulation a pour vocation d’appliquer des
Chapitre 1 Notions sur les systèmes
20
principes simples à des systèmes de grande taille. La simulation discrète se divise en deux
grandes catégories :
asynchrone ou time-slicing : on simule à chaque fois le passage d'une unité de temps
sur tout le système.
synchrone ou event-sequencing : on calcule l'arrivée du prochain événement, et on ne
simule qu'événement par événement, ce qui permet souvent des simulations rapides,
bien qu'un peu plus complexes à programmer.
La simulation par objet : Ce type de simulation repose sur la notion d’objet ainsi que de
classe d’objets, les notions attachées à ce genre de concept telles l’encapsulation et l’héritage
sont exploitées pour modéliser et simuler les applications. La méthode UML repose sur ce
principe, plusieurs langages de programmation très puissants tels DELPHI et JAVA utilisent
ces concepts.
La simulation par agents : [Agimont, 1996]: où la simulation est segmentée en différentes
entités qui interagissent entre elles. Elle est aujourd’hui utilisée dans pratiquement tous les
domaines même si au départ elle concernait surtout les domaines économique et social, où
chaque agent représente un individu ou un groupe d'individus. Par nature, son
fonctionnement est asynchrone.
5/ Conclusion :
Il est fort de constater que l’approche mathématique en modélisation/simulation est un
domaine qui mobilise beaucoup de chercheurs. Ainsi un grand nombre d’articles publiés dans
des revues de renom présentent des modèles mathématiques. C’est particulièrement vrai dans le
domaine de l’écologie et des sciences de l’environnement, et il n’est plus à démontrer que la
modélisation des systèmes par l’approche mathématique est largement répandue. Car les
mathématiques ont l’avantage d’utiliser un langage universellement compréhensible et capable
de décrire l’évolution d’un système avec les différents types d’interactions qui peuvent co-
exister en son sein. L’informatique exploite les concepts et équations définies par les
mathématiques en y incluant des mécanismes de dynamicité et d’exécution. Ceci confère à
l’ensemble des structures universelles et non figées où le temps est discrétisé et les résultats
sont obtenus dans des délais record.
Chapitre 1 Notions sur les systèmes
21
Actuellement, l’approche de modélisation par les systemes multi agents commence à
être de plus en plus utilisée vue son efficacité dans ce domaine.
Chapitre 2 Informatique industrielle
Chapitre 2 Informatique industrielle
22
1/ Introduction :
Les activités industrielles constituent la base du système économique des nations, elles
transforment les ressources humaines, matérielles et financières en biens et services.
L’importance de ces activités impose aux entreprises industrielles, devant un marché fortement
concurrentiel et une évolution importante en matière de production, de pouvoir s’adapter le
plus rapidement possible aux changements et aux évolutions de la production.
Sous la pression concurrentielle, les entreprises sont contraintes d'offrir à leurs clients de
la variété, des produits différenciés, nouveaux, innovants, peu chers et personnalisés, tout en
assurant l'objectif final qui est bien évidemment la pérennisation de la rentabilité financière. Le
souci de l’entreprise est donc de fabriquer des produits de qualité en quantité variante et à
moindre coût et de chercher les moyens à mettre en oeuvre pour atteindre ces buts.
Selon le point de vue de l'informaticien, les systèmes industriels qu'ils soient électriques,
mécaniques, chimiques, biologiques, … sont considérés avant tout comme des systèmes de
communication chargés d'établir des relations bien définies entre un groupe de grandeurs
d'entrée, et un autre groupe de grandeurs appelées grandeurs de sortie.
Le premier pas accompli pour concrétiser les fonctions d'un système industriel est
l’introduction des machines à commande numérique. Il s’agit de machines-outils pourvues de
nombreuses possibilités de réglage et capables de réaliser des opérations d’usinage aussi
diverses que complexes. Ensuite, les progrès considérables de l’informatique et de la robotique
ces dernières années ont permis l’introduction d’un haut degré d’automatisation dans l’industrie
manufacturière qui s’est traduit par :
Une production élevée et régulière ;
Une amélioration de la qualité des produits ;
Une amélioration des conditions de travail et de sécurité.
Chapitre 2 Informatique industrielle
23
2/ Notion de système industriel :
2-1/ Définition :
Un système industriel est un ensemble technique d'éléments matériels ou immatériels
(hommes, machines, logiciels, règles …) en interaction conçu pour répondre à un besoin qui
représente des opérations de transformation appliquées sur la matière d'œuvre (ce sont les
entrées sur lesquelles doit agir le système afin d'en modifier les caractéristiques
physicochimiques) pour les faire passer d'un état initial à un état final. Ce type de systèmes est
largement utilisé dans l'industrie, par exemple : pour la liquéfaction du gaz naturel, le raffinage
du pétrole, la production d'électricité,… etc.
Plusieurs fonctions sont réalisées, à savoir: la gestion et le suivi, le contrôle, la prédiction
des pannes, la maintenance et la production.
Figure 2-1. Vue générale d'un système de production industriel
Un système de production industriel, telle qu’il est présenté par la figure.3.1- est un
ensemble d'éléments (Ressources Humaines, Machines, Techniques, Energie) déterminé à fin
d’élaborer un flux de Produits (biens ou services) de valeur supérieure à partir d'un autre flux de
Matières d’oeuvre (Matière Premières, Produits Semi-finis…). [Jarras et Chaib-Draa, 2002]
L’objectif de l’entreprise utilisatrice de ce système est de présenter sur le marché le
produit le plus compétitif possible. Suivant son secteur d’activité et la nature de ses produits,
Chapitre 2 Informatique industrielle
24
leurs activités de production peuvent être assurer à travers différentes formes (transformation
de matière, usinage de pièces, assemblage, …).
2-2/ La complexité dans les systèmes industriels :
Les systèmes industriels sont souvent classés comme des systèmes complexes, cette
complexité est liée d'une part, à leur taille (nombre d'éléments du système), et d'autre part à
leur fonctionnement (type et nombre d'interactions entre les éléments du système).
2-3/ Evolution des systèmes industriels de production :
Les différentes entreprises économiques rencontrées quotidiennement sont le produit de
l’évolution et des changements qu’ont connus les systèmes économiques et sociaux tout au long
des siècles passés. Partant de la production artisanale et arrivant aux systèmes flexibles; les
systèmes de production ont connu plusieurs développements favorisés par des évolutions
techniques, technologiques et économiques. Une liste non exhaustive de ces évolutions
comprend :
La révolution industrielle qui a permis l’utilisation des différents types d’énergie
(Vapeur, Charbon, Electricité, Pétrole) et l’apparition des machines industrielles.
La révolution scientifique concrétisée par la propagation de l’outil informatique, et son
introduction dans tous les domaines (Communication, Fabrication, Formation, Gestion
…etc.)
La mutation du contexte économique d’une économie ordinaire vers une économie de
marché. Ceci a imposé aux entreprises industrielles de passer d’une production locale
caractérisée par des séries de grande quantité de produits standard; à une production
internationale caractérisée par des petites et moyennes séries de produits personnalisés.
2-4/ Les entrées / sorties d'un système industriel :
Tout système industriel traite des entrées et élabore des sorties, les E/S apparaissent
sous quatre formes: matière, énergie, information et les E/S intempestives.
2-4-1/ La matière d'oeuvre :
La fonction du système est le traitement de ces matières d'œuvre pour les faire passer
d'un état initial à un état final. Ainsi, sa tâche consiste en un ensemble de transformations.
Chapitre 2 Informatique industrielle
25
2-4-2/ L’information:
Ce sont des signaux échangés au niveau interne et externe du système. Les informations
échangées sont essentielles pour le dialogue homme/machine ou pour la communication avec
l'extérieur (vers d'autres systèmes). Il est inconcevable q'un système quel qu'il soit ne puisse pas
communiquer avec son environnement. Cette tâche doit donc exister quel que soit le système.
2-4-3/ L'énergie :
Plusieurs sources sont utilisées par les équipements industriels pour la mise en œuvre
des processus physiques, la sortie d'énergie correspond soit à la sortie principale lorsqu'elle est
matière d'œuvre, soit à des énergies résiduelles ou perdues lors de la conversion énergique ou
par frottement.
2-4-4/ Les E/S intempestives :
Ce sont des grandeurs qui produisent des effets indésirables sur l'état de fonctionnement
normal du système, il s'agit des perturbations (défaut d'une matière d'œuvre, parasites
énergiques …) et de sorties de type déchets causant des nuisances (projections, bruits, fuites, …),
la nature souvent aléatoire de ces entrées est une source importante de difficulté pour
l'établissement de modèle de fonctionnement et de décision fiable. Ces entrées doivent être
strictement contrôlées car elles peuvent causer des nuisances énormes dans les systèmes de
production. Elles ont un effet négatif pouvant être très néfaste sur le déroulement désiré du
système, par exemple, l'influence du vent sur la direction d'un avion ou d'un missile … etc.
Figure 2-2. Les E/S d'un système industriel
Système industriel
Matière d'œuvre
Information
Entrée d'énergie
Perturbations
Matière d'œuvre
Matière
Déchets énergie
Chapitre 2 Informatique industrielle
26
2-5/ Le contrôle d'un système industriel :
Pour atteindre son objectif, un système industriel doit être contrôlé. En effet, sans
contrôle le système ne pourrait pas exister longtemps.
Si les sorties s'écartent de l'objectif fixé, le contrôle agira sur les entrées ou sur la fonction
de transformation du système ou bien sur les deux à la fois, pour minimiser cet écart.
Contrôler le fonctionnement d'un système industriel nécessite un suivi permanent par
un personnel qualifié des paramètres du régime du système et gérer les commandes
correspondantes en respectant les contraintes temporelles. Chose difficile à cause du
comportement humain (fatigue, stress, incertitude, manque de rapidité…etc.) notamment dans
les milieux agressifs et inhospitaliers. Mais pour les systèmes hautement sensibles comme les
réacteurs nucléaires, par exemple, où le fonctionnement est basé sur des mesures très exactes
l'erreur n'est pas autorisée, car elle peut être fatale. La surveillance et le contrôle de ces
systèmes doivent être automatisés de façon très rigoureuse. La vérification de leur bonne
marche doit être effectuée de façon continue. Le matériel et les logiciels appliqués doivent être
d’une grande robustesse et d’une fiabilité garantie.
2-6/ Commande d'un système industriel:
Considérons l'exemple d'un système industriel qui contrôle le chauffage d'un liquide
dans un four tubulaire, et dont la tâche consiste à maintenir la température du liquide à la sortie
de ce four constante.
L'écart toléré autour de la valeur réglée doit être comparée périodiquement à la valeur
désirée, pour cela, la commande d’une vanne permet de régler le système de chaufferie de façon
à ce que la valeur de la température de sortie suive de très prés la valeur désirée.
En pratique, et à cause des entrées intempestives du système (dans un système de
chauffage par combustion de gaz, plusieurs paramètres indésirables peuvent survenir : arrivée
irrégulière de l'air dans le foyer du feu, encrassement des parois des tubes de l’appareil de
chauffage, …etc.). La température de sortie diffère de la valeur désirée, dans ce cas une
intervention humaine est indispensable à des instants déterminés pour comparer la
température de sortie avec la température désirée et agir manuellement sur la vanne du gaz si
nécessaire.
Chapitre 2 Informatique industrielle
27
L'ensemble des opérations intentionnelles nécessaires pour la mise en marche et à
l'arrêt du processus, et aussi pour le maintien ou le changement dans un sens souhaité des
grandeurs qui caractérisent l'état d'un processus donné afin d'obtenir la sortie désirée, sont
appelées la commande d'un système industriel.
3/ Notion de processus industriel :
Un système informatique industriel est destiné à piloter un système extérieur dont le
fonctionnement est caractérisé par l'évolution d'un certain nombre de processus. [Buffet, 2003]
3-1/ Processus :
Dans l'environnement industriel, le processus est considéré comme une séquence
d'opérations ou d'actions qui sont conditionnées par des entrées et qui produisent des signaux
de sortie, les données d'entrée peuvent être soit des perturbations, soit des grandeurs de
commande.
Le concept de processus introduit une notion dynamique qui permet de rendre compte
de l'évolution d'un phénomène ou d'un système dans le temps, elle comporte une part
d'arbitraire puisqu'il est possible de décomposer un processus complexe en plusieurs processus
plus élémentaires qui communiquent entre eux. Les systèmes de pilotage des procédés de
fabrication ou procédés de production sont souvent appelés systèmes de conduite de processus,
ou systèmes de contrôle de procédés industriels dans l'automatisme des systèmes de
commande.
3-2/ Perturbations :
Les perturbations sont des signaux d'entrée qui agissent sur le procédé, mais qui ne sont
pas connues ou sur lesquelles on ne désire pas agir.
3-4/ Grandeurs de commande :
Les grandeurs de commande sont des signaux d'entrée qui agissent aussi sur le procédé
sur lesquelles les valeurs sont imposées au processus.
Chapitre 2 Informatique industrielle
28
4/ L'informatique industrielle: [Nussbauer, 1987]
L'informatique industrielle concerne l'ensemble des matériels et logiciels informatiques
destinés à l'industrie, et plus particulièrement à l'automatisation des processus industriels de
fabrication et/ou d'exploitation, elle regroupe les programmes dont les variables représentent
des grandeurs physiques comme, la température d'une cuve ou la position du bras d’un
robot….ainsi qu’un matériel adapté et spécifique (capteurs, actionneurs, régulateurs,…)
L'informatique industrielle établit des concepts, spécifie des modèles, élabore des
méthodes, développe des outils en vue de la conception et de la réalisation matérielle et
logicielle de systèmes informatisés de commande.
5/ Domaine d'application de l'informatique industrielle:
Le domaine d'application de l'informatique industrielle est aujourd'hui très vaste, et il
s'étend de la commande de machines très simples à la coordination complète de toutes les
opérations effectuées en milieu industriel, on voit donc que cette discipline recouvre des
domaines très divers, citons à titre d’exemple:
automobile (systèmes de freinage, assistance à la conduite, ...).
Aérospatiale (pilotage des engins spatiaux).
Avionique (appareils de mesure, tableau de bord, ...).
Robotique.
Infrastructures de télécommunications (centraux téléphoniques ...).
Météo (mesures et acquisition des données météorologiques, ...).
Militaire (radars, systèmes de guidage de missiles, ...).
Pharmaceutique (tracer les conditions de production et de stockage des lots produits).
Production industrielle (contrôle, supervision et commande de processus, qui est le point qui nous intéresse dans ce travail).
Chapitre 2 Informatique industrielle
29
6/ Système de contrôle de processus industriels:
L'automatisation d'un système industriel consiste à le doter d'un système d'informatique
de contrôle industriel, dans [Nussbauer, 1987] on trouve la définition suivante : ‘un système
d'informatique industrielle est destiné à la commande pour le réglage, et d'une manière
plus générale à la conduite et à l'automatisation d'un processus industriel. Sous sa forme la
plus simple, un système d'informatique industrielle peut être considéré comme un système
de commande qui est conçu au niveau du matériel et du logiciel pour que le système
commandé évolue en conformité avec les critères et les consignes fournis par l'exploitant’.
7/ Organisation générale d'un système de contrôle de processus
industriel:
Comme souligné dans le paragraphe précédent, un système de contrôle de processus
industriel est constitué de composants logiciels et matériels. Les composants principaux sont les
suivants :
7.1/ Les capteurs:
Ce sont les composants technologiques qui assurent l'interface de mesure entre le
système de contrôle et le processus industriel, ils sont de types très différents et utilisent les
phénomènes physiques les plus variés pour mesurer des paramètres physiques du processus en
les transformant en grandeurs électriques exploitables par les calculateurs numériques.
Les capteurs les plus utilisés sont ceux qui mesurent des grandeurs électriques (tension,
courant, puissance…), les températures (thermocouple, sonde à résistance...), les forces (jauge de
contrainte à fil résistant…),…
Il existe un type particulier de capteurs qui ne donnent pas des mesures quantitatives
mais un compte-rendu affirmant ou pas la présence d'un certain évènement, ils sont appelés
détecteurs.
Chapitre 2 Informatique industrielle
30
7.2/ Les actionneurs:
Ils servent à convertir un signal de commande généré par le système de contrôle en une
action effective au niveau du système physique commandé.
Les actionneurs sont de types très divers, ils peuvent être des moteurs, des relais, des
électrovannes ou des résistances chauffantes…. Les actionneurs nécessitent en général une
commande de puissances. Ainsi ; un dispositif appelé pré-actionneur précède l'actionneur, qui
distribue l'énergie de puissance utile aux actionneurs.
7.3/ Les Logiciels:
Le fonctionnement du système est assuré grâce à un ensemble de logiciels destinés à
traiter les applications particulières du système commandé.
Les performances du système dépendent étroitement de la qualité des logiciels qu'il
exploite aussi bien sur le plan de la vitesse d'exécution que de la souplesse d'emploi et de
fiabilité.
Ces logiciels sont stockés au niveau de machines électroniques appelées automates
programmables industriels qui sont de véritables calculateurs spécialisés dans des tâches de
régulation et d’exécution de tâches de contrôle et de suivi du fonctionnement du système.
7.4/ Les API (équipement informatique):
Les automates programmables industriels (API) sont les constituants de base des
équipements automatiques. Un API est un microordinateur spécifique qui se distingue du
microordinateur de bureau par sa puissance de calcul, et sa possibilité de fonctionnement dans
des ambiances industrielles qui peuvent être sévères.
Les automates programmables industriels exécutent des programmes modélisants le
fonctionnement du système à piloter, leur programmation peut se faire même par un personnel
non informaticien. Pour cette raison, cette opération est réalisée d'une façon simple avec des
langages bien adaptés : langages à relais, GRAFCET, équations logiques, langage littéral …etc.
Chapitre 2 Informatique industrielle
31
7.5/ Les équipements de communication:
Un système de contrôle de processus industriels comporte souvent un très grand
nombre de capteurs et d'actionneurs répartis sur une aire géographique étendue. Il faut donc
disposer d'équipements spécialisés pour assurer la transmission et l'échange d’information en
toute sécurité et fiabilité afin d’assurer le bon fonctionnement du système et la coordination de
ses différents éléments. De même, les opérateurs humains ont besoin d’échanger des
informations avec le système, d’où la nécessité d’avoir un système de communication rapide et
complet.
Les communications tendent actuellement à être organisé autour de réseaux locaux
industriels qui sont conçus pour relier, de façon simple, tous les intervenants du système
automatisé.
7.6/ Les interfaces de processus:
Ils assurent la liaison entre les capteurs et l'équipement informatique d'un coté, et entre
l'équipement informatique et les actionneurs d'un autre. Les différentes fonctions qu'ils assurent
sont:
- Conversion analogique numérique.
- Isolation galvanique.
- Conversion courant/tension, résistance/tension …
- Multiplexage.
- Conditionnement du signal (filtrage, linéarisation…)
8/ Caractéristiques principales d'un système de contrôle d'un
processus industriel:
Nous allons présenter quelques caractéristiques essentielles et indispensables que doit
vérifier un système de contrôle industriel, et qui ont font une distinction avec les autres
systèmes informatiques:
Chapitre 2 Informatique industrielle
32
8.1 La fiabilité:
La fiabilité est un axe fondamental et un critère indiscutable que doit vérifier un système
de contrôle industriel, car l'arrêt même d'une courte durée du système peut avoir des
conséquences catastrophiques, on peut imaginer ce qui va se passer si un système de
refroidissement dans un processus de fabrication du gaz s’arrête de fonctionner, ou une petite
panne dans un système de contrôle d'un réacteur nucléaire. Pour cette raison les systèmes de
contrôle des processus industriels doivent être conçus pour se mettre en panne très rarement (
voire jamais) et pour que la panne d'un composant ne cause pas un arrêt total du système mais
une petite dégradation de ses performances. D’ailleurs ; plusieurs solutions sont proposées et
mises en œuvre pour pallier ce genre d’inconvénient tel que l’emploi de logique majoritaire où la
même logique est multipliée en parallèle afin que le disfonctionnement d’une partie n’arrête pas
le systeme. Une autre solution, assez similaire à la précédente, consiste à ce que le système
détecte la panne très rapidement et qu’un autre système remplace le système défaillant.
8.2/ La sensibilité:
La sensibilité se définit par le changement d'une valeur faible du signal d'entrée d'un
dispositif capable d'entraîner une réponse perceptible de son signal de sortie (grâce à
l'augmentation par amplificateurs).
Un système sensible est capable de détecter un changement léger de l'un des paramètres
du régime du système et agir sur celui-ci.
8.3/ La fidélité:
Le système de contrôle de processus industriels doit être fidèle, ce qui signifie que
lorsqu'on effectue une série d'essais avec les mêmes valeurs d'entrées, on obtient les mêmes
valeurs de sorties, en d'autre terme c'est l'exactitude et le déterminisme de fonctionnement.
8.3/ Gestion des E/S:
De par leur nature, les systèmes industriels sont des systèmes complexes qui nécessitent
une circulation énorme d’un très grand nombre d’entrées/sorties, qui peuvent être de quelques
centaines à quelques milliers pour les grands systèmes. Ces entrées/sorties sont le plus souvent
très particulières : entrées à un bas niveau analogique, sortie de puissance.
Chapitre 2 Informatique industrielle
33
Donc un système de contrôle des processus industriels doit avoir les équipements
logiciels et matériels permettant de manipuler ces entrées/sorties.
8.4/ Fonctionnement en temps réel:
Un système de contrôle de processus industriels gère un grand nombre de tâches en
temps réel, la contrainte de temps est bien respectée, la durée de réponse (la réaction ou le
réflexe du système) et le temps d'exécution sont bien déterminés. Le fonctionnement des
équipements industriels nécessite un temps de réponse bien déterminé, au-delà duquel,
l’information devient caduque.
9/ Fonctionnalités d'un système de contrôle des processus
industriels:
Les systèmes de contrôle de processus industriels fonctionnent en ligne (on line) avec
les systèmes commandés, ils doivent en permanence assurer les fonctions suivantes:
9.1/ La mesure:
L'état du système est déterminé par la mesure des grandeurs sur lesquelles s'effectue la
commande (température, tension, vitesse…etc.) grâce aux différents capteurs, tout changement
de ces grandeurs doit être pris en compte, c'est la propriété de sensibilité.
9.2/ L'affichage:
Un système de contrôle de processus industriels doit afficher aux exploitants les états de
tous les composants du système et les grandeurs mesurées pour que ces opérateurs soient plus
proches du système et leur intervention très rapide.
9.3/ La régulation:
Toutes les mesures effectuées sont transmises vers les API, une comparaison aura lieu
pour calculer l'écart entre ces valeurs et les valeurs souhaitées. S'il y'a un simple décalage, un
programme s'exécute permettant d'envoyer des signaux de réglage, s'il y'a un problème
empêchant le réglage, une alarme se déclenche appelant l'intervention humaine.
Chapitre 2 Informatique industrielle
34
10/ Automatisation d’un système industriel :
Automatiser un système industriel revient à le doter d'un système de contrôle, on aura
un système commandé et un autre de commande, ce dernier est complètement fusionné dans le
système industriel constituant ce qu'on appelle un système industriel automatisé.
11/ Structure d'un système automatisé:
Un système automatisé est constitué de deux parties qui coopèrent: la partie opérative et
la partie commande.
11.1/ La partie opérative:
La partie opérative d'un système automatisé est constituée du processus industriel, des
capteurs et des actionneurs.
Elle assure la transformation de la matière d'œuvre permettant d'élaborer la valeur
ajoutée recherchée, elle envoie à la partie commande un compte-rendu sur l'état de
fonctionnement du système, et reçoit des ordres déclenchant, dirigeant ou arrêtant son
fonctionnement.
11.2/ La partie commande :
Elle commande la partie opérative pour obtenir les effets désirés par l'émission d'ordres
(signaux de commande) en fonction des comptes-rendus fournis par les capteurs et suivant un
programme déterminé. Pour chaque système automatisé il est impératif d'établir une
communication entre la partie commande et les opérateurs, cette communication se fait grâce à
un ensemble de composants d’affichages (écran, tableaux synoptiques,…) et de moyens
d’interaction (interrupteurs, souris, claviers …) qui permettent aux opérateurs de suivre en
temps réel l’évolution du processus commandé et d’intervenir, si besoin afin d’en corriger le
fonctionnement.
La figure 3.3 montre les différents composants d'un système automatisé et les
interactions entre eux.
Chapitre 2 Informatique industrielle
35
L'organisation d'un système automatisé montre qu'il résulte de l'assemblage d'un
ensemble de constituants en relation topographique les uns avec les autres et assurant chacun
une fonction particulière.
Le fonctionnement d'un système industriel automatisé se fait en boucle constituée de
deux phases qui sont : la chaîne d'acquisition et la chaîne d'action.
a/ Chaîne d'acquisition:
Elle regroupe l'ensemble des composants permettant d'élaborer et de transmettre les
informations exploitables par les API et de réaliser la fonction d’acquisition des informations.
Cette chaîne est constituée autour des capteurs et des détecteurs.
b/ Chaîne d'action:
Assure, à partir de l'élaboration des ordres au sein des constituants de traitement (partie
commande), pour l’animation de la partie opérative nécessaire aux actions sur la matière
d'œuvre.
Système à Commander
Capt
eurs
Actio
nneu
rs
La partie commande
Traitement des
Informations
Pupitre de commande et
de contrôle ordres
Figure 2.3 : Structure générale d'un système automatisé
Compte rendu
Chapitre 2 Informatique industrielle
36
Conclusion :
L'état du système à commander est déterminé par l'ensemble des grandeurs qui
constituent son régime et sur lesquelles s'effectue la commande. Ces grandeurs varient en
fonction des actions internes et externes. Ce qui représente les actions de commande et les
actions de perturbation.
Un système en fonctionnement est constitué d’un ensemble d’états internes
partiellement ou totalement observables, comme il détermine un autre ensemble d’états
externes qui représente son ‘interface’ avec l’environnement dans lequel il èvolue.
Il est, donc, tout à fait naturel d’appliquer un ensemble (vecteur) d’états imposés
(connus) à l’entrée du système et considérer ses èvolutions par l’observation de ses sorties et
quand c’est possible ses etats internes. En ce qui concerne les systèmes déterministes, cette
démarche peut mener à des conclusions trés pertinentes. C’est loin d’etre le cas dans pour ce qui
est des systèmes non deterministes.
De meme, pour pouvoir bien situer le comportement (la réponse) du système dans tous
les cas possibles le jeu d’entrée doit etre exhaustif, c'est-à-dire comporter touts les possibilités .
Ceci n’est pas toujours réalisable.
Les actions de perturbation peuvent provenir aussi de l'intérieur du système de
commande à la suite de la défection d’un ou plusieurs de ses éléments.
Le but du système de contrôle de processus industriel est de maintenir la grandeur
commandée à une certaine valeur désirée ou de la faire varier suivant une loi prédéfinie ou
calculée au cours du fonctionnement du système.
Les systèmes de contrôle des processus industriels ont introduit une vraie révolution
dans le monde de l'industrie, mais ces systèmes doivent être validés avant leur exploitation. La
validation peut être faite de plusieurs façons :
- Validation théorique : Un modèle mathématique ou informatique est mis en
œuvre. Ce modèle est simulé, les résultats de la simulation sont analysés et
interprétés pour valider ou non ce système.
Chapitre 2 Informatique industrielle
37
- Validation pratique : Avant de mettre en œuvre le système, il subit une série
d’expériences dont les résultats sont analysés et interprétés et ainsi le système
est retenu ou non.
Cependant, quel que soit le système et ses performances, l’expérience montre que le
parfait n’existe pas et que des systèmes que l’on croyait très surs et très fiables et qui ont très
bien fonctionnés durant plusieurs années montrent des failles et finissent par s’effondrer
causant des catastrophes aussi bien humaines qu’écologiques. Le cas du réacteur nucléaire de
Tchernobyl en est un exemple.
Chapitre 3 Les systèmes Multi-agents
Chapitre 3 Les systèmes multi-agents
38
1/ Introduction :
Historiquement, les systèmes multi agents ont été appliqués pour la résolution de
problèmes d’intelligence artificielle dans les années 70. En effet, à cette époque, l’évolution des
domaines d’application de l’intelligence artificielle a investi des univers complexes et
hétérogenes tels que l’aide à la décision, la reconnaissance et l’interprétation des formes, la
conduite et le contrôle de processus industiels, etc… L’approche classique en IA qui s’appuyait
sur une centralisation de l’expertise au sein d’un système unique a connu ses limites. Les
chercheurs se sont tournés vers la distribution de l’expertise et sa decentralisation sur un
ensemble d’agents. Ces agents doivent etre capables de travailler et d’agir dans des
environnements communs, ils doivent pouvoir communiquer, gerer des conflits eventuels,
negocier des situations,…Ceci a conduit à la naissance de nouvelles notions en IA telles que la
coopération, la coordination d’actions, la négociation et l’émergence. Ce processus de
distribution de l’intelligence est connu sous le nom d’intelligence artificielle distribuée (IAD) et
le système d’agents sous le vocable sytème multi agents (SMA). Ce système se positionne au
carrefour de plusieurs domaines qui sont : la programmation, l’intelligence artificielle et les
systèmes répartis (distribués). Ce domaine représente, en quelque sorte ; le résultat de la
rencontre de l’intelligence artificielle des Systèmes Distribués.
2/ La notion d’agent:
2.1/ Définition :
Etymologiquement, le mot agent est inspiré du latin "agere" qui signifie agir, donc
littéralement, un agent est une entité qui agit.[ DROGOUL, 93]
Il n’existe pas encore un consensus sur la définition du terme agent. Ceci étant dù à la
relative jeunesse du domaine. En plus du fait que diverses communautés scientifiques
revendiquent ce terme avec des problématiques qui leur sont propres. Même si ces différences
sont complémentaires et conduites à se rencontrer à terme, sans oublier que la définition
d'agent peut varier selon le type d'application pour laquelle il a été conçu.
Jacques Ferber [Ferber, 95] définit l'agent comme étant : "une entité autonome physique
ou abstraite qui est capable d'agir sur elle même et sur son environnement, qui dans un univers
Multi Agents peut communiquer avec d'autres agents et dont le comportement est la conséquence
de ses observations, de ses connaissances, et des interactions avec les autres agents",
Chapitre 3 Les systèmes multi-agents
39
2.2/ Environnement :
Les agents sont appelés à évoluer dans des mondes appelés des environnements. Ils
peuvent être de natures très différentes allant des plus simples aux plus complexes.
Les environnements ont plusieurs propriétés, nous en signalons cinq, qui nous semblent
être principales: [Buffet, 2003]
Accessible/inaccessible: L’environnement auquel l'agent peut accéder est dit
accessible sinon il lui est inacessible.
Déterministe/non déterministe (Stochastique): dans un environnement
déterministe, l'état de l’environnement à l'instant suivant est complètement
déterminé par l'état courant et par les actions effectuées par les agents. Dans un
environnement stochastique, l’état suivant est léatoire.
Episodique/non épisodique (séquentiel): on parle d'environnement épisodique (ou
de temps discrétisé) si l'expérience de l'agent peut être divisée en "épisodes". Chaque
épisode consiste en une phase de perception puis en une phase d'action, le résultat de
l'action ne dépendant que de la période courante.
Statique /dynamique: si l'état de l'environnement ne peut pas être changé sans
l'intervention de l'agent on dit qu'il est statique. L'environnement est dynamique si son
état peut changer sans intervention d'agent.
Discret /continu: si tout passage d'un état de l'environnement à un autre nécessite le
passage par une séquence d'états intermédiaires, on dit que l'environnement est
continue, sinon il est discret.
2.3/ Caractéristiques des agents:
Les agents peuvent possèder différentes propriétés qui sont :
Chapitre 3 Les systèmes multi-agents
40
2.3.1/ L'autonomie:
L’agent est capable d’agir sans l’intervention d’un tiers (humain ou agent) et contrôle ses
propres actions ainsi que son état interne; en d'autre terme, les agents sont dits autonomes dans le
sens où le créateur du système ne pilote pas leur comportement. C'est l'agent qui décide de ses
actions par rapport à un éventail de possibilités données.
2.3.2/ La situation:
Les agents sont situés dans un environnement (par exemple, topologique) contenant
également des entités passives, manipulées par les agents (par exemple, des ressources, des
données, des objets physiques…) et communément appelées objets. L’agent est capable d’agir sur
son environnement à partir des entrées sensorielles qu’il reçoit de ce même environnement.
2.3.3/ La réflexibilité:
L'agent est capable de réaliser des actions d'une façon autonome et réflexible afin
d'atteindre les objectifs qui lui ont été fixés, la réflexibilité signifie dans ce cas:
La réactivité: l'agent est capable de percevoir les changements dans son
environnements, et doit élaborer une réponse dans les temps requis (changer son
état interne, exécuter un tâche particulière…etc.).
La proactivité: l’agent doit exhiber un comportement proactif et opportuniste, c'est-à-
dire qu’il n'agit pas uniquement en réponse à son environnement mais, il est également
capable de prendre l’initiative au “bon” moment;
La sociabilité: l’agent doit être capable d’interagir avec les autres agents (logiciels et
humains) quand la situation l’exige afin de compléter ses tâches ou aider ces agents à
accomplir les leurs.
2.3.4/ L'interactivité:
L'agent est social et il rencontre différents types d'interactions (avec d'autres agents,
avec un humain ou avec son environnement) qui le conduit à reconsidérer en permanence ses
traitements en cours. Cela traduit le fait qu'il s'adapte sans cesse aux changements de son
entourage qui pourraient modifier de façon pertinente son comportement à tous les niveaux
(objectif, plan, action…etc.).
Chapitre 3 Les systèmes multi-agents
41
2.4/ Classification des agents:
La classification est un mécanisme important pour comprendre les différents types
d'agents, elle dépend des critères sur lesquels elle est basée. Le choix de critères de classification
d'une taxonomie est arbitraire et repose sur un besoin de nommer précisément les architectures
existantes en fonction de leurs aspects opérationnel ou architectural.
Selon leurs modes de fonctionnement et leurs représentations de leurs environnements,
les agents peuvent être classés en trois catégories essentielles qui sont: les agents réactifs, les
agents cognitifs et les agents hybrides.
2.4.1/ Les agents réactifs:
Ce sont des agents qualifiés de non intelligents, ils répondent d'une façon opportune aux
modifications de leurs environnements résultants des stimuli externes, les agents réactifs
agissent en fonction de ces dernières sans nécessiter de compréhension de leurs univers ni de
leurs buts
Exemple:
Agent
Environnement
Agent
Agent
Figure 3.1 : Structure générale d'un agent réactif dans un système Multi-Agents
Composante décision action
Composante perception
Composante exécution action
Chapitre 3 Les systèmes multi-agents
42
Le mécanisme de la sociogenèse de colonies de fourmis où l'ensemble des membres est
capable de produire des actions évoluées (comportement collectif) mais dont les individus pris
séparément ne possèdent qu'une représentation faible de leur environnement et des buts
globaux.
2.4.2 Les agents cognitifs:
Ils sont parfois dits "intentionnels", leur caractéristique fondamentale est la volonté de
communiquer et de coopérer, ils possèdent des buts à atteindre à l'aide d'un plan explicite. Les
sociétés d'agents cognitifs contiennent communément un petit groupe d'individus de forte
granularité, régit par des règles sociales prédéfinies (c'est-à-dire lors de situations conflictuelles
les agents seront amenés à négocier). Ces agents sont capables à eux suls d’executer des
opérations complexes, ils peuvent raisonner en s’appuyant sur des bases de connaissances.
Exemple:
Agent
Composante décision action
Composante perception
Composante exécution action
Composante interaction
Environnement
Agent
Agent
Figure 3.2 : Structure générale d'un agent cognitif dans un système Multi-Agents
Chapitre 3 Les systèmes multi-agents
43
Pour dépasser les limitations des interfaces homme-machine à manipulation directe
(rigidité, complexité, etc.), les agents assistants apportent une adaptation au profil de
l'utilisateur et une capacité à anticiper ses besoins.
Le tableau suivant [Labidi et Lejouad, 1993 ] donne quelques ordres de comparaison entre les
agents cognitifs et réactifs.
Systèmes d’agents cognitifs Systèmes d’agents réactifs
Représentation explicite de l’environnement Pas de représentation explicite
Peuvent tenir compte de leurs passé Ne tiennent pas compte du passé
Agents éxécutant des taches complexes Fonctionnement stimulus/reponse
Peu d’agents (petit nombre) Grand nombre d’agents
Tab. 3-1 Agents cognitifs vs agents réactifs
2.4.3/ Les agents hybrides:
Dès le début des années 90, on savait que les systèmes réactifs pouvaient bien convenir
pour certains types de problèmes et moins bien pour d’autres. De même, pour les agents
cognitifs (notamment en l'intelligence artificielle).
On commença dès lors à investiguer la possibilité de combiner les deux approches (c'est-
à-dire réaliser une graduation entre l'agent réactif pur, qui ne réagit qu'aux stimuli, et l'agent
cognitif total, qui possède un modèle symbolique du monde qu'il met continuellement à jour et à
partir duquel il planifie toutes ses actions) afin d’obtenir une architecture hybride en exploitant
les avantages des deux architectures tout en éliminant leurs limitations.
Dans ce cas, un agent est composé de plusieurs couches, arrangées selon une hiérarchie,
la plupart des architectures considérent que trois couches suffisent amplement. Ainsi, au plus
bas niveau de l’architecture, on retrouve habituellement une couche purement réactive, qui
prend ses décisions en se basant sur des données brutes en provenance des senseurs. La couche
intermédiaire fait abstraction des donnés brutes et travaille plutôt avec une vision qui se situe
Chapitre 3 Les systèmes multi-agents
44
au niveau des connaissances de l’environnement. Finalement, la couche supérieure se charge des
aspects sociaux de l’environnement, c’est-à-dire du raisonnement tenant compte des autres
agents. [Jarras et Chaib-Draa, 2002]
3/ Les systèmes Multi-Agents:
3.1/ Définition:
Usuellement, un système est un ensemble organisé d'éléments concourrant à la
réalisation d'une tâche donnée. En suivant cette définition on peut définir immédiatement le
système Multi Agents comme étant un ensemble organisé d'agents se chargeant de réaliser un
but commun .
Les systèmes Multi Agents sont des systèmes distribués conçus et implantés idéalement
comme un ensemble d’agents interagissant, le plus souvent, selon des modes de coopération, de
concurrence et de coexistence. [Jarras et Chaib-Draa, 2002]
Jacques Ferber [Ferber, 1995] définit les systèmes Multi-Agents comme des systèmes
composés des éléments suivants:
1. Un environnement: c'est-à-dire un espace disposant généralement d'une métrique.
2. Un ensemble d'objets: situés dans cet environnement cela signifie que pour tout objet
il est possible à un moment donné d'associer une position. Ces objets sont passifs,
c'est-à-dire qu'ils peuvent être créés, détruits, manipulés et perçus par les agents.
3. Un ensemble d'agents: ce sont des objets particuliers, ils représentent les entités
actives du système.
4. Un ensemble de relations: qui unissent les objets entre eux.
5. Un ensemble d'opérations: ce sont les différents types de manipulation
qu'appliquent les agents sur les objets du système et qui sont en générale: perception
production, consommation, transformation…etc.
6. Un ensemble d'opérateurs: chargés de représenter l'application de ces opérations et
la création du monde à cette tentative de modification, que l'on appellera les lois de
l'univers.
Chapitre 3 Les systèmes multi-agents
45
Ces systèmes possèdent les avantages traditionnels de la résolution distribuée comme la
modularité, la vitesse, et la fiabilité (due à la redondance), Ils héritent aussi des bénéfices
envisageables de l'intelligence artificielle (IA) comme:
1. Le traitement symbolique (aux niveaux des connaissances).
2. La facilité de maintenance.
3. La réutilisation et la portabilité.
Mais surtout, ils ont l’avantage de faire intervenir des schémas d’interaction sophistiqués
qui incluent:
1. La coopération (travailler ensemble à la résolution d’un but commun).
2. La coordination (organiser la résolution d’un problème de telle sorte que les
interactions nuisibles soient évitées ou que les interactions bénéfiques soient
exploitées).
3. La négociation (parvenir à un accord acceptable pour toutes les parties
concernées).
Bien que les systèmes Multi Agents offrent de nombreux avantages, ils doivent aussi
relever beaucoup de défis et dépasser les problèmes inhérents à la conception et à
l'implémentation qui sont nombreux, on peut citer par exemple:
- Comment reconnaître et réconcilier les points de vue disparates et les intentions
conflictuelles dans un ensemble d’agents essayant de coordonner leurs actions?
- Comment éviter ou diminuer un comportement nuisible du système global, comme
les comportements chaotiques ou oscillatoires?
3.2/ Caractéristiques des systèmes Multi-Agents :
Un système Multi Agents possède généralement les caractéristiques suivantes:
Chapitre 3 Les systèmes multi-agents
46
Environnement
Représentation
J'ai les compétences c1, c2… et je dois réaliser le but B
Ressources
Communication
Perceptions
Actions
Objets de l'environnement
Moi
Lui environnement
1. Il n' y a pas de contrôle global du système.
2. Les données sont décentralisées.
3. Le calcul est asynchrone.
4. Chaque agent a des informations ou des capacités de résolution limitées de
problème, ainsi chaque agent a un point de vue partiel.
La figure 2.3 donne une image globale d'un système Multi-Agents.
3.3/ Interaction dans un système Multi-Agents:
Figure 3.3 : Système Multi-Agents
Chapitre 3 Les systèmes multi-agents
47
Un système Multi Agents est un système intelligent constitué d’une multitude d'agents,
chacun d'eux est chargé de réaliser ses propres buts afin d'atteindre le but global du système. La
cohérence du système et son intelligence ne viennent pas de l’intelligence de ses agents, mais de
leurs interactions.
Définition de l'interaction :
Jacques Ferber définit l'interaction comme: "une mise en relation dynamique de deux ou
plusieurs agents par le biais d'un ensemble de relations réciproques. Les interactions sont non
seulement la conséquence d’actions effectuées par plusieurs agents en même temps, mais aussi
l’élément nécessaire à la constitution d’organisations sociales" .
En général, les interactions sont mises en œuvre par un transfert d'informations entre
agents ou entre l'environnement et les agents; soit par perception, soit par communication.
L'interaction entre les agents apparaît sous plusieurs modes, qui sont la coopération, la
coordination et la négociation.
3.3.1/ La coopération:
Parmi les caractéristiques fondamentales d'un système Multi Agents, on trouve la
distribution du travail entre les différents agents qui le constituent, ou chacun d'eux se charge de
réaliser ses propres buts (qui sont un sous-problème du problème global).
Chaque agent possède un ensemble de compétences qui lui permettent de résoudre les
différents problèmes, mais il existe des situations où ses capacités et ses compétences ne
suffisent pas à accomplir certaines tâches (ou bien il ne dispose pas des moyens nécessaires)
donc il aura besoin de l'intervention d'un autre agent du système qui va l'aider à résoudre le
problème, c'est-à-dire qu’il y'a une coopération pour faire évoluer le système vers ses objectifs.
La coopération consiste, donc, à faire participer plusieurs agents pour satisfaire un but
individuel ou commun.
Jacques Ferber définit la coopération entre plusieurs agents comme "une situation dans
laquelle, soit l'ajout d'un nouvel agent permet d'accroître les performances du groupe, soit l'action
des agents sert à éviter ou à résoudre des conflits potentiels ou actuels ".
La situation de coopération apparaît quand les actions de chaque agent satisfont au
moins l'une des conditions suivantes:
Chapitre 3 Les systèmes multi-agents
48
1. Les agents ont un but en commun et leurs actions tendent à réaliser ce but.
2. Les agents effectuent les actions qui réalisent non seulement leurs propres buts mais
aussi ceux des autres.
3.3.2/ La négociation:
Les buts des agents dans un système Multi Agents peuvent être incompatibles et leurs
demandes sont parfois contradictoires: dans une situation de jeu, chacun cherche à être gagnant
mais la réalisation de ce but pour un des joueurs rend impossible la réalisation du but des autres
joueurs; Les ressources dont les agents ont besoin peuvent être rares et l’utilisation d’une
ressource par un des agents peut empêcher un autre agent de réaliser son but…etc. Ces
situations et d'autres empêchent l'avancement désirable du système. il faut, donc, trouver un
moyen qui permette à chaque agent de poursuivre son travail: les agents doivent négocier la
solution.
On définit la négociation comme le processus d’améliorer les accords (en réduisant les
inconsistances et l’incertitude) sur des points de vue communs ou des plans d’action grâce à
l’échange structuré d’informations pertinentes.
Contrairement à la coopération qui suppose la sociabilité des agents, la négociation
correspond à la collaboration entre agents en univers compétitif. La négociation est un
mécanisme puissant pour gérer les dépendances inter agents ou le processus par lequel un
groupe d'agents arrive à une décision mutuelle acceptable sur un sujet donné, elle représente un
axe fondamental qui distingue un agent d'un objet.
Pour mener à bien le processus de négociation, il est nécessaire de suivre un protocole
qui facilite la convergence vers la solution, la négociation est caractérisée en général par un
protocole minimal d'actions qui est: proposer, évaluer, accepter ou refuser une solution.
3.3.3 La coordination:
Quand les agents utilisent des ressources communes ou résolvent des problèmes qui ne
sont pas complètement indépendants mais liés et complémentaires, les agents du système
doivent accomplir en plus de leurs tâches de résolution des problèmes individuels, des tâches
supplémentaires (appelées tâches de coordination) qui améliorent le fonctionnement du
système.
Chapitre 3 Les systèmes multi-agents
49
Jacques Ferber donne la définition suivante: "la coordination d'actions dans un système
Multi-Agents est définie comme l’ensemble des tâches effectuées par les agents pour réaliser les
autres actions (actions effectives) dans les meilleures conditions".
La coordination entre les agents d'un système apparaît sous deux formes distinctes, elle
sert d'une part à éviter les problèmes, et à améliorer le fonctionnement du système d'autre part.
Sa première forme consiste à bien coordonner les plans de fonctionnement des agents
pour assurer une meilleure gestion des ressources (notamment celles qui sont rares) et éviter
les conflits d'accès, c'est la coordination due à la gêne.
Sa deuxième forme est la coordination due à l'aide, comme le signifie son nom, les agents
doivent synchroniser leurs actions, et échanger les résultats qui sont nécessaires au
fonctionnement des autres.
3.4 Communication dans les systèmes Multi-Agents:
La communication représente la base de réalisation de tous les modes d'interaction
qu'on a vu précédemment, soit la négociation ou bien la coordination...
Elle est définie comme une forme d'action locale d'un agent vers d'autres agents. Les
questions abordées par un modèle de communication peuvent être résumées par l'interrogation
suivante: qui communique, quoi, à qui, quand, pourquoi, et comment?
Pourquoi les agents communiquent-ils ? La communication doit permettre la mise en œuvre
de l'interaction et par conséquent la coopération et la coordination d'actions.
Quand est ce que les agents communiquent-ils ? Les agents sont souvent confrontés à des
situations où ils ont besoin d'interagir avec d'autres agents pour atteindre leurs buts locaux ou
globaux. La difficulté réside dans l'identification de ces situations.
Avec qui les agents communiquent-ils ? Les communications peuvent être sélectives sur un
nombre restreint d'agents ou diffusées à l'ensemble d’agents.
Comment les agents communiquent-ils ? La mise en œuvre de la communication nécessite un
langage de communication compréhensible et commun à tous les agents. Il faut identifier les
différents types de communication et définir les moyens permettant non seulement l'envoi et la
Chapitre 3 Les systèmes multi-agents
50
réception de données mais aussi le transfert de connaissances avec une sémantique appropriée
à chaque type de message. Il existe principalement deux modes de communication :
1. Communication par envoi de messages.
2. Communication par tableau noir.
Dans les systèmes fonctionnant par partage de ressources, les différents composants ne
sont pas directement liés entre eux. Ils communiquent au travers d’une zone de données
commune appelée tableau noir (Blackboard), dans laquelle sont stockées les connaissances du
système.
En revanche, dans les systèmes où la communication se fait par envoi de messages, les
connaissances sont distribuées entre les différents agents. Chacun d’eux communique
directement avec les autres par envoi de messages.
Figure 3.4 : Communication via un Tableau Noir
Tableau
Noir
Chapitre 3 Les systèmes multi-agents
51
4/ La simulation Multi-Agents:
La simulation Multi-Agents est bien adaptée aux systèmes complexes constitués de
plusieurs entités, elle consiste à séparer ces entités qui seront représentées par des agents et
définir leurs différents comportements et interactions, puis faire évoluer les agents en fonction
du temps, et étudier et analyser la progression du système global suite aux actions produites
par les agents et leurs interactions.
Un système de simulation Multi-Agents est un ensemble d’agents et de règles
d’interaction entre eux. Chaque agent est capable d’évaluer individuellement sa situation et de
prendre des décisions à partir d’un ensemble de règles. Il peut exécuter divers comportements
relatifs au système représenté, Les agents peuvent ensuite être capables d’évoluer, permettant à
des comportements non anticipés d’apparaître.
4.1/ Méthodologie de simulation Multi-Agents: [Drogoul, 1993]
La modélisation d’un phénomène dans une perspective Multi-Agents se traduit par
Quatre étapes, mais avant tout il est indispensable de prendre une image approfondie du
système qu'on vient simuler et d’en comprendre le fonctionnement en détail puis:
Une décomposition du phénomène en un ensemble d’éléments discrets
autonomes dont les interactions reproduisent le phénomène. Il est à noter que ce
préliminaire nécessite une vision déjà distribuée du phénomène à modéliser
(l’un des objets de la simulation est justement de déterminer les éléments ou les
niveaux pertinents à étudier).
La modélisation de chacun de ces éléments par un agent: Dans cette phase
intervient un choix necessaire quant à la théorie à employer pour définir les
Figure 3.5 : Communication par envoi de messages
Chapitre 3 Les systèmes multi-agents
52
connaissances de l’agent, ses capacités fonctionnelles, ses comportements et les
modes d’interaction qu’il adoptera à l’encontre des autres agents, ce choix peut
être délicat. C'est au cours de cette étape que le modèle théorique de
comportement individuel proposé par le domaine de recherche dans lequel
s'effectue la modélisation est traduit en un modèle informatique.
La définition de l’espace ou l'environnement dans lequel évoluent ces agents et
des lois qui le gouvernent. Sa définition permettant d’affiner la description des
actions possibles des agents, ainsi que celle de leurs moyens de communication,
on définira souvent agents et environnement de manière concomitante.
4.2/ Caractéristiques de la simulation Multi-Agents :
Les principaux atouts de la simulation Multi-Agents résident dans sa modularité et son
incrémentalité. La modularité autorise un ajout ou un retrait aisé d’un ou plusieurs agents.
L’incrémentalité signifie qu'on peut facilement améliorer et affiner les agents qui composent le
système.
Dans une approche Multi-Agents, le comportement de chacun des agents est décrit par
un algorithme. Par conséquent, le système est plus précis et mieux détaillé qu’une description
plus globale incluant toute une population.
5/ Domaines d'utilisation des systèmes Multi-Agents:
La jeunesse des systèmes Multi-Agents n'a pas empêché sa présence dans de nombreux
domaines, grâce aux avantages qu'ils offrent et les caractéristiques dont ils disposent
Citons comme échantillon: les systèmes financiers et commerciaux comme le commerce
et les banques électroniques, les systèmes embarqués, la gestion des base de données, la gestion
des réseaux de communication, la recherche d'information et le contrôle industriel.
L'utilisation des systèmes Multi-Agents varie d'un domaine à un autre, mais elle tourne
généralement autour de trois axes fondamentaux:
1. Un système d'agents intelligents dédié à résoudre un certain nombre de problèmes
d'une manière distribuée (utilisé dans le domaine de l’intelligence artificielle).
Chapitre 3 Les systèmes multi-agents
53
2. Un système d'agents physiques consacré à réaliser un ensemble de taches et
d'actions réel représentant le but du système. On peut donner comme exemple le
système des robots spatiaux exploratoires, les systèmes des robots footballeurs…etc.
3. Un système Multi-Agents pour la simulation: c'est un système constitué des agents
virtuels (agents logiciels) qui simulent des actions physiques, biologiques ou sociales,
citons comme exemple la simulation des épidémies, la simulation des processus
industriels…etc. Le fonctionnement de ce genre de systèmes est couplé aux outils
d'études (comptage, statistiques, calcules des fonctions…) afin d'analyser le
phénomène simulé.
6- Choix de la plate forme Multi-Agents utilisée :
Notre système Multi-agents a été implémenté sur la plateforme MadKit. Cette dernière
constitue un puissant outil logiciel pour le développement de ce genre de système. Elle permet à
des milliers d’agents de fonctionner tous indépendamment en parallèle. Permettant ainsi
d’explorer la connexion entre le comportement de l’entité autonome au niveau micro, avec le
comportement qui peut émerger de l’interaction entre ces entités au niveau macro.
Le tableau 3-2 illustre notre choix de la plate forme MadKit. Où, pour chaque critère d’évaluation
la plate forme et noté comme suit :
4 si l’outil répond très bien au critère ;
3 si l’outil répond bien au critère ;
2 si l’outil répond moyennement au critère ;
1 si l’outil répond peu au critère ;
0 si l’outil ne répond pas du tout au critère.
Nous remarquons que la plate forme Madkit nous permet d’avoir de bons résultats.
Chapitre 3 Les systèmes multi-agents
54
Tableau 3.2 : Evaluation Comparative De Plate Formes Multi-Agents
Plate forme
Critères JAD
E
DEC
AF
Age
ntB
uil
der
Zeu
s
JAFM
AS/
JIV
E
Jack
Age
ntT
ool
Mad
kit
Méthodologie 0 0 4 4 3 0 3 3
Facilité d’apprentissage 0 3 1 1 1 0 3 2
Transition entre les étapes
0 0 3 2 2 0 3 2
Souplesse de l’outil 3 0 1 1 2 3 0 3
Communication inter-agents
4 2 4 4 2 3 2 3
Outil de « débuggage » 3 2 4 4 1 0 2 4
Support développement 0 2 4 4 2 1 4 2
Support implémentation 0 0 4 4 2 1 2 1
Gestion du SMA 4 0 3 3 0 0 1 4
Effort et simplicité 2 3 2 2 1 2 3 1
Bases de données 0 0 1 2 0 3 0 0
Génération de code 0 0 1 3 1 0 1 0
Extensibilité du code 4 1 1 2 1 4 0 3
Déploiement 4 1 2 2 1 2 1 3
Documentationdisponible 3 1 4 4 1 3 1 3
Total (sur 60) 27 15 39 42 20 22 26 34
Chapitre 3 Les systèmes multi-agents
55
Conclusion:
La vision centralisée des problèmes est difficile à mettre en oeuvre dans le cas de
processus complexes, réunir la décentralisation et l'autonomie grâce aux systèmes Multi-Agents
ouvre les portes vers une nouvelle démarche de résolution des problèmes et de simulation des
phénomènes complexes, cette dernière a bien exploité les avantages qu'offrent les systèmes
Multi-Agents qui lui permettent de maîtriser la complexité et la difficulté des systèmes à
simuler.
Chapitre 4 Application
Chapitre 4 Application
57
1/ Introduction:
Ce chapitre est consacré à l’étude d’un cas concret concernant le contrôle d’un processus
industriel. Nous traitons du cas d’une chaudière industrielle qui constitue un èlèment critique
dans beaucoup de systèmes industriels . Le role de cet équipement est de produire de l’énergie
pour d’autres procedes. Son arret implique l’arret total de toutes les unités dependantes du
complexe voire de toute la production de l’usine et se solde par des pertes financiéres seches
très importantes. De plus, cet equipement doit etre controlé de façon très minutieuse car son
dysfonctionnement peut représenter de grands dangers aussi bien pour pour l’usine que pour
l’environnement géographique. Nous nous sommes approchés de grands complexes pétroliers
pour avoir les informations qui nous semblent etre necessaires pour la présentation de notre
application [ CP1/K]. Nous traitons ce cas qui est au coeur du système de production, le système
étant ouvert; les extensions à d’autres elements du processus peuvent etre envisagés.
2/ La Chaudière:
La chaudière est un générateur de vapeur, servant à élever la température de l'eau
d'alimentation afin de produire la vapeur nécessaire pour le fonctionnement des turbopompes,
des turbocompresseurs, des turbos-ventilateurs…etc.
La chaudière est l'équipement le plus cher et le plus sensible dans les complexes
industriels ( tels que les complexes pétrochimiques, gaziers, etc …). Son fonctionnement doit
être permanent et se faire en toute sécurité. Pour cela les directions de ces complexes décident
de piloter les chaudières par des systèmes numériques de contrôle et de commande SNCC
(DCS : Distributed control system). Les automates programmables industriels (API) servent
d’interfaces entre ces systèmes et les differents processus à controler tels que les chaudières,
les fours, les turbo-compresseurs ,…
Comme l’arrêt de la chaudière implique l'arrêt total de toute activité de production au
sein du complexe, elle est en fonctionnement continu sous un contrôle très strict. De même, un
incident aussi minime soit-il peut causer des dégâts considérables aux conséquences graves,
voire irréversibles tant aux points de vues pertes humaines, matérielles et aussi sur le plan
économique. C’est dire l’importance vitale que revet cet element pour l’entreprise .
Chapitre 4 Application
58
3/ Les différents types de chaudières :
La chaudière peut être conçue de façon que les gaz de combustion circulent :
Soit dans les tubes, c’est le cas de la chaudière à tube de fumée dans laquelle les
gaz de combustion circulent à travers des tubes insérés dans le réservoir d’eau.
Nous rencontrons ce type de chaudière sous deux formes principales :
Chaudière de locomotive.
Chaudière marine cylindrique.
Soit à l’extérieur des tubes ce qui est le cas de la chaudière à tubes d’eau dans
laquelle l’eau passe à travers des tubes chauffés depuis l’extérieur par les gaz de
combustion et la vapeur est collectée dans un ballon supérieure. Cette
disposition utilise à la fois la chaleur de convection des gaz de combustion et la
chaleur radiale du feu et des parois de la chaudière.
La vapeur qui se produit au contact des parois chauffées d’une chaudière forme des
bulles de vapeur qui montent dans l’eau (La densité étant inférieure). Il faut que le liquide soit
remplacé immédiatement au contact de la paroi, ce qui constitue la circulation. Les chaudières
les plus utilisées dans l’industrie de l’énergie, sont les chaudières à tube d’eau de types :
3.1/ Chaudière à circulation naturelle :
Ce type de chaudière où les tubes sont verticaux donne l’avantage d’un taux de
vaporisation particulièrement élevé. Dans ce type de chaudières, il y a des tubes exposés aux
brûleurs (le faisceau de vaporisation), et des tubes à l’extérieur de la chambre de combustion,
qui donnent une différence de température, donc une différence de densité de l’eau des tubes à
l’intérieur et à l’extérieur ce qui fait une circulation naturelle.
La figure suivante montre le schéma général de ce type de chaudières
Chapitre 4 Application
59
Figure 4.1 : Schéma général d’une chaudière à circulation naturelle
Chapitre 4 Application
60
3.2/ Chaudière à circulation forcée :
Ce type de chaudière est appelé parfois à circuit ouvert, parce que l’eau n’y effectue
qu’un simple passage entre son entrée à une extrémité des faisceaux, et sa sortie sous forme de
vapeur saturée pour déboucher vers les surchauffeurs, et sa circulation est activée par la pompe
d’alimentation, elle n’a pas de réservoir d’accumulation d’eau et de vapeur.
3.3/ Chaudière de récupération :
Ce type de chaudières récupère la fumée dégagée par une turbine à gaz pour l’utiliser
comme flux de chaleur dans le foyer de la chaudière, donc elle n’a pas de brûleurs, et
généralement cette chaudière est volumineuse et sa vaporisation est peu importante, on
n’obtient que de faibles pressions ou de l’eau à haute température.
4/ Constitution d'une chaudière:
Les chaudières utilisées sont de type chaudière à circulation naturelle, chacune a les
caractéristiques suivantes (timbre de la chaudière):
Pression de vapeur sortie = 43 bar.
Température vapeur sortie = 430°c.
Débit de production = 112 T/H.
Elles sont constituées de:
4.1/ Le ballon supérieur:
C'est un réservoir qui représente l'arrivée de l'eau d'alimentation et le point départ de
la vapeur surchauffée. Le volume du ballon est partagé entre l'eau et la vapeur, le DCS se
charge de maintenir à 0 le niveau d'eau dans le ballon, ce niveau ne doit strictement pas
dépasser ± 150 mm.
4.2/ Le ballon inférieur:
C'est un autre réservoir en bas de la chambre, il joue le
rôle de collecteur d'eau.
Chapitre 4 Application
61
4.3/ Les brûleurs: La chaudière dispose de 04 brûleurs amlimentés en gaz naturel, ils assurent
le chauffement de la chambre de combustion par une flamme dont la température est comprise
entre 2000 et 2200ºc.
4.4/ Le foyer ou la chambre de combustion :
C’est un espace clos dans lequel brûle le combustible.
4.5/ Les tubes de circulation:
On distingue deux catégories de tubes:
Les tubes arrières: ils tapissent les murs de la chambre de combustion, c'est par là
que descend l'eau du ballon supérieur vers le ballon inférieur.
Les tubes foyer: ils forment la couche interne de la chambre de combustion, ils se
situent face aux bruleurs, sous une température de 1500 à 1900ºc permettant la
vaporisation de l'eau.
4.6/ Les ventilateurs de souflage:
La chaudière dispose de deux ventilateurs dits de tirage forcé, ils aspirent l'air de
l'exterieur vers la chambre pour permettre la combustion ou pour le balayage lors de l’allumage
de la chaudière.
4.7/ Le surchauffeur:
Il se situe en haut de la chambre de combustion, son rôle est de chauffer la vapeur
saturée sortante du ballon pour produire de la vapeur sèche, en d'autre terme, avec la
température de la fumée de combustion il permet de décaler le seuil de condensation de la
vapeur saturée pour améliorer son rendement.
Chapitre 4 Application
62
4.8/ L'économiseur:
C'est un échangeur de chaleur, il a pour rôle de récupérer une partie des calories
contenues dans les gaz de combustion et de les céder à l'eau d'alimentation. Il permet de
chauffer l'eau entrant au ballon
4.9/ Le réchauffeur d'air:
Il permet de récupérer des calories de la fumée destinée aux cheminées, pour réchauffer
l'air avant d'entrer dans la chambre de combustion.
4.10/ Le désurchauffeur:
C'est une boucle de régulation permettant de maitenir la température de la vapeur sèche
à 430°c.
Désurchauffeur
Gaz naturel
Eau déminiralisée
Eapamine
Ucv 306 Vapeur BP
Bgb /02a/b Bgb/01a/b
Surchauffeur
Trcv317 b.eg101a /b
Déraerateur
Réchauffeur d’air
Gaz brûlés
Cheminée
Hc 371
Bga103a /b
Economiseur
Frcv 319 N2H4
Figure 4.2 : Schéma technique de la chaudière étudiée
Brûleurs
Chapitre 4 Application
63
5/ Principe de base de fonctionnement d'une chaudière:
Deux circuits principaux permettent Les échanges de chaleur dans un générateur de
vapeur
- Circuit Air-Gaz.
- Circuit Eau-Vapeur.
5.1 / Circuit Air-Gaz :
Rôle :
Ce circuit permet de réaliser la combustion qui consiste en une réaction chimique
s'éffectuant entre deux corps avec dégagement de chaleur et de lumière.
Dans un sens plus restrictif, on réserve dans la technique industrielle le terme de
combustion aux réactions chimiques de combinaison d'un corps avec l'oxygène, réactions qui
s'éffectuent toujours avec un dégagement de chaleur et de lumière:
Combustible + Carburant Produits de combustion.
L'air aspiré par le ventilateur à la température ambiante passe par le réchauffeur d'air où sa
température est portée à 185°c, et pénètre dans le cadre brûleur où il est mélangé au
combustible.
Le mélange ainsi formé brûle dans la zone de radiation où la température des gaz brulés
(la fumée) dépasse 1500°c. Cette fumée passe par le surchauffeur de vapeur (sort à une
températue d'environ 500 à 900°c), par les tubes arrières de la chambre de combustion pour les
chauffer, puis sort du foyer à une températue de 345°c .
La fumée suit son chemin vers la cheminée, elle passe par l'économiseur d'eau, elle entre
dans le réchauffeur d'air à une températue variant entre 200 et 250°c et se dégage vers
l'éxtérieur à travers la cheminée à une températue comprise entre 160 et 170°c
Chapitre 4 Application
64
1:entrée réchauffeur. 4:sortie chambre de combustion. 2:sortie réchauffeur. 5:entrée économiseur. 3:entrée surchauffeur vapeur. 6:entrée réchauffeur d'air.
: Gaz (fumée). 7: échappement. : Air.
>1500°c -
500..900°c- -345°c
200..250°c-
185°c- 160..170°c-
1 2 3 4 5 6 7 Temps
Température °c
Figure 4.3 : Circuit combustion.
5.2/ Circuit Eau-Vapeur:
L'eau d'alimentation provenant des réservoirs d'eau déminéralisée subit différents
traitements, elle est premièrement mélangée à l'ERPAMINE dont le rôle est:
- de relever le PH légèrement acide de l'eau.
- de former une couche protectrice sur les parois internes des conduites pour
éviter le contact entre le métal et l'eau pouvant entraîner une oxydation.
Un deuxième traitement a pour but l'élimination de l'oxygène est le dégazage, il se fait
en deux étapes:
Chapitre 4 Application
65
- Un dégazage physique au niveau du dégazeur qui a pour but d'éliminer environ 90%
de l'oxygène dissous dans l'eau par une vapeur basse pression.
- Un dégazage chimique au niveau du déraérateur par l'injection de l'HYDRAZINE N2H4
afin d'éliminer totalement l'oxygène selon la réaction:
N2H4 + O2 2H2O + N2
L'eau traité dont la température est environ 145°c est aspirée à l'aide d'une pompe, elle
passe par l'économiseur où sa température est portée à 153°c, puis alimente le ballon supérieur
à l'aide d'une vanne de régulation qui se charge de maintenir le niveau d'eau stable à 0.
L'eau fait son circuit dans la chambre de combustion pour produire de la vapeur saturée,
cette dernière sort du ballon supérieur à une température comprise entre 170 °c et 180 °c, elle
passe par le surchauffeur pour produire de la vapeur sèche à une température variant entre 455
°c et 510 °c. Cette température est élevée, pour cela, la vapeur surchauffée passe par un
désurchauffeur qui est une boucle de régulation servant à maintenir la température stable à
430°c à l'aide d'une vanne qui fait pénétrer la quantité d'eau nécessaire pour la régulation.
Chapitre 4 Application
66
1: entrée économiseur. 4: sortie surchauffeur.
2: sortie économiseur. 5: sortie désurchauffeur.
3: sortie ballon supérieur. : Vapeur.
: Eau.
455..510°c -
430°c-
180 ..170 °c-
153°c-
145°c-
Figure 4.4 : Circuit Eau-Vapeur
1 2 3 4 5 Temps
Température °c
6/ La régulation d'une chaudière:
La perturbation essentielle dans un générateur de vapeur a pour origine la demande de
vapeur des unités de consommation, en effet toute variation de la charge provoquera une action
sur le débit demandé au générateur donc une action sur les grandeurs à régler, lesquels
réagiront les uns sur les autres et qui sont:
- La pression de vapeur à la sortie de la chaudière qui doit être maintenue à 43 bars.
- L'excès d'air ou le rapport Air/Gaz.
- La température de la vapeur surchauffée (430°c).
- Le niveau d'eau dans le ballon, que cherche le DCS à maintenir stable au niveau 0, c'est
une boucle de régulation sensible qui nécessite une régulation à trois éléments (débit
eau d'alimentation + débit de vapeur sortante + niveau d'eau dans le ballon).
Chapitre 4 Application
67
Pour compenser l'influence des perturbations sur le fonctionnement de la chaudière, le
DCS agit sur les paramètres suivants:
- Le débit de combustible, pour compenser la variation de débit de vapeur.
- Le débit d'air, pour maintenir un rapport Air/Gaz convenable.
- Le débit eau, pour maintenir le niveau du réservoir.
7/ Explication du scénario à simuler:
Le système de contrôle de processus (DCS) de la chaudière reçoit à tout moment les
différentes grandeurs du processus sur lesquels il agit.
En utilisant ces valeurs mesurées le système de contrôle détermine l’état courant du
processus, si cet état est conforme à l’état désiré on dit que le système est stable.
La variation de la demande de vapeur perturbe l’état du processus ce qui nécessite une
variation de la charge de la chaudière soit par augmentation si la demande est élevée ou bien par
réduction si elle est basse.
On distingue deux situations de variation de la charge:
1. Variation intentionnelle de la charge par les opérateurs si le changement de la
consommation est prévu.
2. Variation automatique de la charge par le DCS qui perçoit la modification de la
consommation qui influe sur la pression de la vapeur et au niveau du ballon. En
d’autres termes, un changement subit de la consommation de vapeur dans une unité
a un effet direct sur la pression de la vapeur sortante de la chaudière que le système
de contrôle se charge de maintenir stable, donc la façon pour récupérer cet écart
entre la valeur désirée et la valeur réelle est de changer la charge de la chaudière.
Chapitre 4 Application
68
Exemple : La chaudière fonctionne avec une charge de 60%, donc la consigne de la charge dans
le système de contrôle est 60%, le système reçoit les différentes valeurs saisies par les capteurs,
il calcule la charge mesurée il constate que PV=SP donc il n'y a aucun problème est le système
fonctionne normalement.
A un moment donné, la consigne de la charge est changée par les opérateurs vers 80%
donc la valeur de la charge mesurée devient différente de la consigne est l'écart (PV - SP) devient
négatif, dans ce cas la réaction du système sera comme suit :
1. La première règle à appliquer est que: pour élever le débit vapeur il faut élever la
combustion, donc la vanne du gaz représente la clé de tout variation de la
combustion. La vanne du gaz est une électrovanne (actionneur) et accepte deux
types de signaux: un signal ouvrant et un autre fermant, dans ce cas le système de
contrôle envoi un signal ouvrant vers la vanne gaz qui va augmenter le débit gaz.
2. La deuxième règle à appliquer est que: pour avoir une bonne combustion et pour des
raisons de sécurité on doit assurer un facteur air-gaz correcte. Le ventilateur de
tirage forcé est un actionneur qui accepte également deux types de signaux
permettant de changer la position de ses éventails, soit par ouverture ou par
fermeture, dans ce cas le système de contrôle envoie un signal d'ouverture vers le
ventilateur permettant d'élever le débit d'air. Le système de contrôle calcule à tout
moment la charge mesurée et tant qu'elle est encore différente de la consigne il
envoie les signaux de contrôle et reçoit l'effet de ces actions jusqu'à ce que la charge
désirée soit atteinte.
3. Les étapes 1 et 2 concernent la combustion, si cette dernière augmente, la
vaporisation de l'eau augment donc le niveau de l'eau dans le ballon supérieur va
baisser, cette grandeur est considérée comme le point critique dans la chaudière, le
DCS suit une régulation triangulaire à trois éléments pour maintenir ce niveau à 0.
Chapitre 4 Application
69
Le système de contrôle reçoit le niveau de l'eau dans le ballon, le débit de l'eau fournit
par l'électrovanne de l'eau d'alimentation et il envoie un signal d'ouverture vers la vanne
permettant d'augmenter le débit de l'eau.
Le système de contrôle continue cette régulation, il va éliminer en premier lieu l'écart
entre le débit de vapeur sortante et le débit de l'eau entrante, puis maintenir le niveau à 0 en
second lieu.
Le mouvement du niveau de l'eau dans le ballon représente l'effet de la combustion, c'est
pour cette raison que le niveau (la vanne d’alimentation en eau) est la dernière chose qui se
stabilise dans le système après une variation de la charge.
8- Conclusion:
Ce chapitre a traité le processus de génération de vapeur par les chaudières, nous avons
donné une idée sur le fonctionnement d'une chaudière. Ceci représente la première étape dans
la démarche de réalisation de notre simulateur. Le prochain chapitre concerne la présentation
du modèle Multi-Agents que nous avons adopté pour modéliser notre système.
Chapitre 5 Conception multi-agent de l’application
Chapitre 5 Conception multi-agent de l’application
70
Introduction :
Il convient d’étudier et d’analyser de façon approfondie tout système que l’on veut
modéliser ceci dans le but d’en comprendre le fonctionnement dans tous les détails autant que
possible. Dans, notre cas, il s’agit d’implémenter un système permettant la simulation d’un
processus complexe du fonctionnement d’une chaudière dans un complexe industriel. Nous
avons fournit, dans le chapitre précédent, un ensemble d’informations nécessaires relatives à ce
système.
A présent, nous passons à l’étape de conception qui permet d’en décrire le
fonctionnement de façon théorique voire formelle en utilisant un ensemble d’outils techniques
et en suivant une méthodologie de conception.
Il existe plusieurs méthodologies de conception. Nous avons adopté l’approche
simulation Multi-Agents du modèle AALAADIN, vue que de notre point de vue cette approche
dispose d’assez d’outils performants qui permettent de bien représenter les systèmes
industriels. De même, la mise en œuvre d’un modèle développé par cette méthode permet un
passage quasi-automatique vers son implémentation en utilisant la plate-forme MADKIT.
1/ Le modèle AALAADIN :
AALAADIN est une méthodologie de conception qui permet d’analyser et de concevoir
des systèmes Multi- Agents en utilisant les0 concepts d’agent, de groupe et de rôle (AGR) qui
permettent de garder une cohérence globale et facilitent l’intégration et l’exécution simultanée
d’agents hautement hétérogènes dans une même plate-forme.
Le modèle Aalaadin (appelé parfois AGR : Agent-Groupe-Rôle) situe l’analyse des
systèmes multi agents à deux niveaux :
- Le niveau descriptif.
- Le niveau méthodologique.
Chapitre 5 Conception multi-agent de l’application
71
Est membre
1..*
1..*
1..* *
1..*
1.1 / Le niveau descriptif :
Ce niveau correspond aux concepts suivants :
1.1.1 / Agent :
Un agent est une entité autonome communicante qui joue des rôles au sein de groupes.
Le modèle AALAADIN n’impose aucune architecture interne afin de laisser aux concepteurs
toute liberté de choisir les architectures selon leurs besoins.
La figure 5.2 montre un agent dans un système Multi-Agents.
Joue
Figure 5.1 : Concepts (Agent/Groupe/Rôle) du modèle Aalaadin
Chapitre 5 Conception multi-agent de l’application
72
1.1.2/ Groupe :
Le groupe est constitué d’un ensemble d’agents unifiés, regroupés pour accomplir une
tâche donnée.
- Un agent peut appartenir à un ou plusieurs groupes simultanément.
- Les groupes peuvent se recouper librement.
- Tout agent peut créer un groupe et peut aussi rejoindre un groupe.
- Un groupe peut être local ou distribué.
- Un groupe peut être un SMA usuel.
Figure 5.2 : Structure générale d’un agent dans le modèle Aalaadin
Architecture de contrôle
Percep
tion
Action
Communication
Agent Agent
Environnement Environnement
Etat
interne
Agent
Interactions
Interactions
Chapitre 5 Conception multi-agent de l’application
73
1.1.3/ Rôle :
Le rôle est une représentation abstraite d’une fonction, d’un service ou d’une
identification d’un agent au sein d’un groupe particulier. Un agent peut avoir plusieurs rôles au
sein de différents groupes, ainsi un même rôle peut être tenu par plusieurs agents.
1.2/ Le niveau méthodologique :
En plus des trois concepts de base (Agent, Groupe, Rôle), le modèle Aalaadin définit à ce
niveau l'ensemble des rôles possibles, spécifie les interactions et décrit les structures abstraites
de groupe et d'organisation qui ne sont pas représentées directement dans une organisation
multi agents, mais qui sont introduits comme étant des guides de conception.
Le but de ce niveau est de pouvoir spécifier une structure organisationnelle abstraite à
partir de laquelle un système multi agents peut être développé et exprimé dans les concepts de
base.
A ce niveau du modèle, on trouve le concept de structure de groupe et de structure
organisationnelle.
1.2.1 La structure de groupe :
C'est une description abstraite d'un groupe. Elle identifie la totalité des rôles et des
interactions qui peuvent survenir au sein d'un groupe.
1.2.2 La structure organisationnelle :
Elle est définie comme un ensemble de structures de groupe décrivant un modèle
d'organisation Multi-Agents. Cette structure organisationnelle correspond à la spécification
complète du problème initial.
Chapitre 5 Conception multi-agent de l’application
74
Structure organisationnelle
Structure de groupe
Interaction
Niveau méthodologique
Niveau
descriptif
Organisation
Groupe
Role
Agent
Instanciée
en
instanciée
en
Définie
entre
Définit
L’application de cette démarche pour notre application a fait ressortir les trois groups
suivants :
1. Le groupe interface
2. Le groupe Air-Gaz (ou groupe Combustion).
3. Le groupe Eau-Vapeur (ou groupe Hydraulique).
Figure 5.3 : Vision d’ensemble du modèle AALAADIN [Gutknecht, 2001]
Chapitre 5 Conception multi-agent de l’application
75
Les deux derniers groupes représentent les opérations de contrôle effectuées par les
organes de la chaudière dans les deux circuits constituants son fonctionnement, c’est à dire les
opérations du circuit Air-Gaz alimentant les brûleurs pour que la combustion puisse se faire et le
circuit Eau-Vapeur de contrôle du niveau du ballon et de la quantité de vapeur issue lors de la
vaporisation. Le premier groupe simule les opérations qui permettent à l’opérateur de dialoguer
avec le système et de lui fournir des jeux de données (entrées/sorties). Ce groupe comprend
aussi un agent superviseur qui permet de contrôler l’ensemble du processus.
2/ Les groupes et les rôles :
2.1/Le Groupe Interface :
Ce groupe comprend les deux agents suivants :
2.1.1/ L’agent entrée/sortie de données :
Ses rôles sont les suivants sont les suivants :
- Modification des valeurs concernant la charge de la chaudière (Variation de la
pression de la vapeur, variation du niveau du ballon de la chaudière)
- Affichage de l’évolution des différents éléments de la chaudière en réponse à ce
stimulus.
- Affichage de différents scenarii en fonction de données aléatoires.
Ces différentes opérations sont effectuées grâce à des interfaces conviviales et permettent une
visualisation claire et non ambiguë des informations.
2.1.2/ L’agent système :
L'agent système est un agent principal, c'est le point de rencontre entre le système et
l'environnement externe. Il assure la liaison entre les différents groupes. Il gère des tables dans
lesquelles il recueille les informations émises par les différents agents du système. Ces derniers
accèdent à ces tables et y lisent les données qui leurs sont destinées (la communication se fait
par message qui sont centralisés au niveau de l’agent système).
Chapitre 5 Conception multi-agent de l’application
76
Figure 5.4 : Le Groupe interface
Une fois les données perçues par le système de contrôle de la chaudière, ce dernier va
commencer un traitement afin de stabiliser le système, ceci est réalisé par un ensemble
d'activités matérialisées par des rôles qui sont joués au sein du Groupe Combustion.
2.2/ Groupe Air-Gaz (combustion) :
Ce groupe est constitué des agents suivants
2.2.1 L’agent Combustion :
Cet agent contrôle le mélange air/gaz qui permet la combustion complète au niveau des
brûleurs. Il envoie des données aux agents vanne-gaz et ventilateurs pou maintenir une
bonne combustion.
2.2.2 L’agent Vanne-Gaz :
Son rôle est de contrôler le débit du gaz, il envoie périodiquement le débit du gaz vers
l’agent combustion.
L’agent Vanne-Gaz reçoit les consignes de l’agent Combustion lui permettant d’ouvrir et
de fermer à des degrés divers les électrovannes afin de modifier le débit du gaz
Agent Système Agent Entrée/sortie
Chapitre 5 Conception multi-agent de l’application
77
2.2.3 L’agent ventilateur :
Cet agent se charge de contrôler le débit de l’air, il reçoit les ordres de l’agent combustion
permettant de modifier les positions des ailettes des ventilateurs ainsi que leurs vitesses
de rotations et de modifier ainsi le débit de l’air qui sera envoyé vers l’agent combustion.
Puisque l'agent combustion est un coordinateur de l'agent système il doit l'informer à
tout moment des différentes grandeurs qui concernent la combustion.
On peut schématiser les différentes relations entre les agents dans le groupe combustion par le
graphe suivant:
Résultat de la combustion.
Le débit gaz (compte-rendu).
Le débit d'air (compte-rendu).
Ordre d'ouverture/fermeture.
Données nécessaires à
La combustion
2.3/ Groupe Eau-Vapeur :
Le groupe Air-Gaz présenté précédemment modélise toutes les opérations qui
concernent la combustion. Parler de combustion, revient à parler de combustible (assuré par
l'agent vanne gaz) et d’aération (assuré par l'agent ventilateur). De la coopération entre les
agents de ce groupe résulte la valeur du débit de vapeur sortante du ballon supérieur, à ce débit
de vapeur correspond une charge en eau qu’il faut compenser pour que le niveau dans le ballon
reste stable.
Le système de contrôle doit maintenir le niveau du ballon stable à 0 (plus ou moins 150
mm), cette tâche est accomplie par l’agent-Hydraulique.
Figure 5.5 : Le Groupe Air-Gaz
Agent Ventilateur
Agent Système
Agent Combustion
Agent Vanne-Gaz
Chapitre 5 Conception multi-agent de l’application
78
Le groupe eau-vapeur se compose des agents suivants :
2.3.1/ L'agent hydraulique:
Cet agent gère le niveau du ballon, son rôle concerne la régulation triangulaire. En
utilisant les valeurs : débit vapeur, débit eau et niveau du ballon fournies par les autres agents
du groupe, l’agent Hydraulique envoie des ordres d’ouverture et de fermeture vers l’agent
Vanne-Eau afin de modifier le débit de l‘eau et donc modifier le niveau du ballon.
2.3.2/ L'agent ballon:
C'est l'agent qui représente le phénomène de variation du niveau de l'eau dans le ballon
supérieur. Pour qu'il puisse calculer le niveau, l’agent Ballon reçoit les deux valeurs suivantes :
- Le débit de vapeur: qui est fonction de la combustion effectuée. Ce débit a pour effet de
faire baisser le niveau de l’eau dans le ballon.
- Le débit de l'eau d'alimentation: il permet d'augmenter le niveau de l'eau dans le
ballon. Sa valeur est fournie par l'agent Vanne-Eau.
- Dans tous les cas, le niveau d’eau doit être stable (au niveau 0 du ballon supérieur).
On note que dans le cas d’une variation de consommation (variation de pression), le niveau du
ballon est affecté par la nouvelle pression fournit par l’agent système.
L’agent ballon calcule le niveau du ballon puis l’envoie vers l’agent Hydraulique.
2.3.3/ L'agent Vanne-Eau:
Cet agent contrôle le débit de l’eau d’alimentation entrant dans le ballon, il est en
communication avec l’agent ballon et l’agent Hydraulique en fournissant le débit de l’eau. Il
reçoit des ordres de l'agent hydraulique permettant d’ouvrir et de fermer la vanne afin de
modifier le débit de l’eau.
Les agents ainsi que leurs interactions au sein de ce groupe sont illustrés sur la fig.5.6.
Chapitre 5 Conception multi-agent de l’application
79
Débit vapeur.
Débit de l'eau.
Niveau du ballon.
Ordre d'ouverture-fermeture
Notre système Multi-Agents est donc constitué d’un ensemble d’agents ayant des rôles
différents qui s’expriment au sein des trois groupes cités précédemment. Le tableau suivant
dresse les fonctionnalités de chaque entité intervenant dans notre simulateur :
Figure 5.6 : Le Groupe Eau-Vapeur
Agent Système
Agent Hydraulique
Agent Vanne-Eau Agent Ballon
Chapitre 5 Conception multi-agent de l’application
80
Tableau 5.1 : Description fonctionnelle du simulateur
La figure 5-7 montre les différents agents du système, leurs appartenances et les différentes
interactions entre eux
Groupe Agent Rôle
Interface
Entrée/sortie Déclencher une
Perturbation.
Système
Permettre les interactions et
communication entre tous les
acteurs (y compris
l’opérateur).
Air-Gaz (Combustion)
Combustion Contrôler la combustion.
Ventilateur Fournir le débit d’air.
Vanne-Gaz Fournir le débit de gaz.
Eau-Vapeur (Hydraulique)
Hydraulique Contrôler la régulation du niveau.
Vanne-Eau Fournir le débit de l’eau.
Ballon Fournir le niveau du ballon.
Chapitre 5 Conception multi-agent de l’application
81
Groupe Interface
Groupe Air-Gaz
(Combustion)
Groupe Eau-Vapeur
(Hydraulique)
Agent
Système
Agent hydraulique : Agent
: Groupe
Interaction inter Agents
Figure 5.7 : Le modèle organisationnel du simulateur
Agent–Vanne-Gaz Agent-Ventilateur
Agent-combustion
Agent Entrée/sortie
Agent–ballon Agent-Vanne-eau
Chapitre 5 Conception multi-agent de l’application
82
Figure 5.8 : Architecture générale du système proposé.
Conclusion :
Nous avons décrit, dans ce chapitre, la structure organisationnelle qui compose notre
simulateur (Les différents agents, les groupes auxquels ils appartiennent ainsi que les rôles
qu’ils jouent aux seins de ces groupes). Nous avons utilisé pour cela le modèle organisationnel
Aalaadin.
Nous avons déterminé, ainsi une décomposition du processus global en un ensemble
d’agents. Chaque agent adopte un comportement en fonction de sa perception de son
environnement, de même, il élabore des actions pour interagir avec les autres agents du
système.
Le système réel (automatismes de gestion de la production d’un complexe
pétrochimique) ; quant à lui; se compose de milliers de processus qui peuvent être décomposés
en adoptant des approches similaires.
Le prochain chapitre présentera l’implémentation de notre simulateur utilisant la plate
forme Madkit.
Agent système
Agent entrée/sortie Agent
combustion
Agent hydraulique
Agent vanne gaz
Agent ventilateur
Agent vanne ballon
Agent vanne eau
Chapitre 6 Implémentation
Chapitre 6 Implémentation
83
Introduction :
Nous présentons, dans ce chapitre les principales étapes de notre réalisation. Cette
implémentation traduit le passage du modèle conceptuel décrit dans le chapitre précédent vers
un produit informatique.
Pour l’implémentation de notre logiciel, il est tout naturel d’utiliser la plate forme
MadKit, étant donnée que cette plate forme repose sur le modèle Aalaadin . La mise en œuvre
des différentes entités vues dans la phase de conception se fait en utilisant les outils
correspondants dans la plate forme MadKit. Les signaux de commande sont représentés par des
messages et les comportements agents sont implémentés en utilisant du code MadKit. Le
système ainsi formé constitue le système Multi-Agents dont la dynamique de fonctionnement
simule le processus industriel étudié.
1/ Implémentation :
L’étape implémentation consiste, donc, à traduire le résultat obtenu lors de l’étape de
conception en un programme ou logiciel informatique exécuté sur machine en utilisant les outils
de programmation adaptés au problème à traiter, pour notre cas le logiciel est un ensemble de
classes (agents) écrites en java et exécutées sous la plate forme MadKit.
Nous allons développer, dans ce chapitre, notre application en expliquant la réalisation
des différents modules de programmes écrits en utilisant les concepts de MadKit. Des portions
de codes extrais de notre logiciel permettront d’expliquer la façon avec laquelle nous avons
implémenté notre application d’une part et de bénéficier des informations sur MadKit d’autre
part.
2/ La plate forme MadKit :
La plate forme MadKit (acronyme de Multi-Agents Développement Kit) a été conçue en
1996 par Jacques Ferber, Olivier Gutknecht et Fabien Michel au laboratoire LIRMM de
l’université de Montpellier (Laboratoire d’Informatique de Robotique et de Microélectronique de
Montpellier), c’est un ensemble de packages écrits en Java qui implémente le micro noyau agent.
La plate forme MadKit est développée pour exploiter les avantages de la programmation Multi-
Agents, elle forme une plate forme générique de conception et d’exécution des systèmes Multi-
Agents qui se basent sur le modèle organisationnel Aalaadin.
Chapitre 6 Implémentation
84
2-1 Disponibilité : La plate-forme MADKIT, l’outil SEDIT, ainsi que diverses extensions sont disponibles sur
<http ://www.madkit.org>
L’architecture MadKit se base sur les trois principes de conception suivants :
Architecture à micro noyau.
Agentification systématique des services.
Utilisation d’un modèle graphique componentiel.
Figure 6.1 : Le desktop de MADKIT
Chapitre 6 Implémentation
85
2.2/ Architecture à micro noyau :
Le micro noyau de MadKit est un environnement d’exécution des agents de taille réduite
(moins de 50 Ko), il assure les fonctionnalités suivantes :
- Gestion des groupes et rôles locaux :
Le micro noyau fournit les opérations de base de MadKit au plus bas niveau telle que la
gestion de la structure organisationnelle (Agent/Groupe/Rôle) qui permet d’affecter les
groupes et les rôles aux agents et de maintenir les informations de base correctes les
concernant (composition de chaque groupe, rôles des agents)
- Gestion des cycles de vie des agents :
C’est le micro noyau qui gère le lancement et l’arrêt des agents. De même, il gère un
certain nombre de tables de référence concernant tous les agents lancés. Comme il assigne une
adresse globale à chaque agent constituée de l'adresse de noyau et l'adresse de l'agent dans le
noyau local (l’AgentAddress).
- Passage de message local :
Le passage de messages entre les agents est pris en charge par le micro noyau de MadKit
qui doit aiguiller et distribuer les messages entre les agents locaux (exécutés sur un noyau).
L'envoi d'un message est réalisé par la copie de ce message dans le tampon de l'agent récepteur.
2.3/ Agentification systématique des services :
Hormis l’utilisation de la structure organisationnelle et l’envoi de messages, l’ensemble
de services offerts par la plate-forme est individuellement incarné par un agent ou un ensemble
d’agents pour assurer certains services comme la surveillance de l’état du système, la connexion
à un réseau de noyaux, la migration d’agent, la gestion des messages non locaux, la sécurité
Chapitre 6 Implémentation
86
d’organisations d’agents, les outils de simulation et d’une manière générale toutes les
applications et extensions de la plate forme.
2.4/ Utilisation d’un modèle graphique componentiel :
Chaque agent est responsable de sa propre interface graphique (Une interface par
défaut), ce qui permet de voir un agent comme une simple fenêtre. Il est plus commode de lui
associer une interface correspondante à une application complète selon les besoins.
De plus, un agent peut aussi fonctionner sans interface graphique comme c’est le cas
pour la majorité des agents système. La plate-forme elle-même supporte plusieurs modes de
fonctionnement graphique (au-dessus du noyau) : en mode texte, sous la forme d’une
application graphique traditionnelle (menus, exploration des archives, etc.) et en mode
application web sous la forme d’une Applet Java.
3/ Les agents :
L’entité importante pour la programmation sous MadKit est la classe AbstractAgent, elle
définit les méthodes de base qu’un agent possède (connaître son adresse, interroger ses
messages,….etc.), mais elle ne définit pas son comportement, c’est le développeur qui définit le
comportement de l’agent selon ses besoins. La classe Agent hérite de cette classe, et ajoute la
méthode void live() qui permet une exécution threadée de l’agent. Tous les agents que l’on écrit
dérivent soit de la classe AbstractAgent soit de la classe Agent.
Exemple:
public class Agent_combustion extends AbstractAgent implements
ReferenceableAgent {
}
Tous les agents abstraits contiennent des sections spécifiques, constituants son cycle de
vie de la façon suivante :
Chapitre 6 Implémentation
87
- Section d’activation : détermine le traitement que doit réaliser l’agent lors de sa création,
elle est représentée par la méthode activate(), cette méthode est exécutée
automatiquement lors du lancement de l’agent.
- Section de fin : Elle est représentée par la méthode end(), elle contient le code à exécuter
si l’agent a terminé son traitement ou lorsque l’agent est tué.
Entre les deux sections précédentes l’agent a un travail à faire et une mission à accomplir
au sein du système, le comportement d'un agent doit être codé dans la méthode prédéfinie live()
dans la classe Agent qui sera exécutée directement après la section d’activation.
4/ Gestion de groupes et de rôles :
MadKit offre un système de gestion de groupes et de rôles selon plusieurs méthodes :
4.1/ La création de groupes :
Se fait par la méthode createGroup(…) ; createGroup(Boolean distributed, String
comunauty1, String groupe1, String s, GroupIdentifier a).
Cette méthode permet de créer le groupe groupe1 dans la communauté
communauty1 si ce paramètre est présent sinon le groupe est "public". Le groupe est
distribué si le paramètre booléen distributed est vrai et local (c’est-à-dire que les agents ne
sont pas visibles par les Kernels distants). Autrement, le paramètre s est employé pour décrire
la structure globale du groupe, mais ce dispositif n'est pas employé encore. Le paramètre a
doit être un GroupIdentifier c’est-à-dire un objet qui met en application un mécanisme de
sécurité manager/authorization.
Chapitre 6 Implémentation
88
4.2/ L’obtention d’un rôle :
Ceci se fait par une l’instruction:
requestRole(String Nom_du_groupe, String Nom_du_role) ; qui permet à l’agent de jouer le
rôle « Nom_du_role » dans le groupe « nom_du_groupe ».
Si on veut qu’un agent joue un rôle dans un groupe déjà créé on utilise l’instruction :
foundGroup(String Nom_du_Group) ;
Exemple :
public class agent_ventilateur extends AbstractAgent implements ReferenceableAgent
{ public void activate()
{ createGroup (true,"air_gaz",null,null);
requestRole("air_gaz","controler_débit_air");
}……// le reste du code de l’agent.
}
L’agent ventilateur crée le groupe air_gaz et prend le rôle controler_débit_air, l’agent
combustion veut prendre un rôle dans le même groupe donc :
Chapitre 6 Implémentation
89
public class Agent_combustion extends AbstractAgent
implements ReferenceableAgent
{
public void activate()
{ foundGroup("air_gaz");
requestRole("air_gaz","contrôler_combustion");
}……// le reste du code de l’agent.
}
5/ Les messages :
L’interaction entre les agents se fait par l’envoi de messages, la classe Message est
considérée comme étant la classe standard pour la communication entre les agents dans MadKit
par un mécanisme de boite à lettres en utilisant un ensemble de méthodes qui permettent de
gérer l’envoi, la réception et la consultation de l’état de la boite.
MadKit fournit plusieurs types de messages prédéfinis tels que StringMessage,
XMLMesssage ObjectMessage et ActMessage le choix du type à utiliser dépend du besoin
d’utilisation. Indépendamment du type du message, l’envoi est réalisé par la méthode de base :
sendMessage(AgentAddress adr, Message m) qui accepte deux paramètres :
- Le premier est de type AgentAddress qui permet une identification unique de l’agent
récepteur, on la récupère grâce à la méthode : getAgentWithRole(Groupe,Rôle).
- Le deuxième paramètre représente le message à envoyer, la classe ObjectMessage par
exemple permet d’envoyer un objet quelconque ce qui donne une grande liberté au
programmeur pour la construction du message.
Exemple : Voici comment l’agent ventilateur envoie son compte-rendu vers l’agent combustion :
Chapitre 6 Implémentation
90
void envoyer_compte_rendu()
{
grandeur_class rendu=new grandeur_class();
rendu.setvaleur(débit_air);
rendu.setnature("compte_rendu_air");
ObjectMessage obj=new ObjectMessage((Object)rendu);
AgentAddress adr=getAgentWithRole("air_gaz","controler_combustion");
sendMessage(adr,obj);
}
Pour lire un message, l’agent consulte sa boite à lettres via la méthode
isMessageBoxEmpty() qui retourne true si elle est vide, s’il existe des messages non lus elle
retourne false, dans ce cas l’instruction nextMessage() retire et retourne le message non lu (le
plus ancien dans la boite à lettres de l’agent).
Exemple : la portion de code suivante montre l’utilisation de ces méthodes par l’agent
ventilateur :
void ventilateur-traitement()
{
while(!isMessageBoxEmpty())
{
message_air=(ObjectMessage)nextMessage();
if (!panne) verifier_message(message_air);
}
envoyer_compte_rendu();
}
Chapitre 6 Implémentation
91
6/ Le scheduling :
Dans un système Multi-agents l’accès aux objets de l’environnement peut être en
concurrence entre les agents et peut causer des conflits d’accès. De même, si le système est
composé d’un nombre important d’agents threadés, l’exécution du système sera très lente et
parfois impossible, pour résoudre ces problèmes la plate forme MadKit introduit le concept de
scheduling.
Le scheduling sous MadKit est délégué aux agents héritant de la classe Scheduler. Un
agent scheduler a pour but de coordonner l’exécution des agents via des objets génériques
appelés Activateurs, ces derniers sont le moyen pour le Scheduler pour identifier un ensemble
d’agents.
Un Activateur est une entité qui est initialisée en fonction d’un groupe et d’un rôle, son
code comporte l’ensemble des méthodes des autres agents qu’elle va invoquer lors de son
activation par l’agent scheduler, il faut noter ici que les méthodes invoquées par les activateurs
sont celles des agents qui héritent de la classe AbsractAgent et implémente l’interface
ReferenceableAgent, et non pas les agents héritant de la classe Agent.
En effet, l’utilisation des schedulers et des activateurs réduit le nombre d’agents
partageant le temps processeur, ce dernier sera partagé uniquement entre les scheduler et non
pas entre tous les agents du système dont le nombre peut dépasser les milliers (voire même des
centaines des milliers). Ceci d’une part, d’autre part, l’utilisation des scheduler et des activateurs
donne plus de flexibilité et permet une bonne gestion de la simulation.
Notre système est constitué de trois groupes, nous avons associé un agent scheduler à
chacun, il contrôle un ensemble d’activateurs selon les besoins de la simulation.
Le scheduler du groupe perturbation contrôle un activateur qui exécute le code de
l’agent perturbation.
Le scheduler du groupe combustion contrôle deux activateurs un pour le traitement et
l’autre pour l’affichage graphique. De même, en ce qui concerne le groupe hydraulique, nous
avons associé un scheduler qui contrôle deux activateurs, l’un pour le traitement et l’autre pour
l’affichage graphique comme le montrent la figure 6.2
Chapitre 6 Implémentation
92
7/ Structure algorithmique des agents :
Les agents assurent deux fonctions : l’une concerne les communications
d’informations assurant leurs interactions avec les autres agents, et l’autre concerne leurs
traitements proprement dit au sein du système.
Scheduler Hydraulique
Agent Hydraulique
Agent Ballon
Agent Vanne-Eau
Activateur Graphique
Activateur Traitement
Scheduler Interface
Agent Entrée/sortie/système
Activateur
Entrée/sortie /système
Figure 6.2 : Schedulers des groupes du simulateur
Scheduler combustion
Activateur Traitement
Agent Vanne-eau
Agent Système
Agent Ventilateur
Agent Vanne-Gaz
Activateur Graphique
Chapitre 6 Implémentation
93
La partie traitement des agents de notre système consiste à recevoir les différents
messages issus des autres agents (qui constituent la perception), puis l’agent effectue des
traitements en fonction de ces messages et enfin il élabore la réponse adéquate (réaction).
Nous donnons, à titre d’exemple le traitement de l’agent environnement :
void traitement()
{
while(! ismessageBoxempty())
{
message_environnement=(ObjectMessage)nextMessage();
analyser_message(message_environnement);
}
}
La méthode analyser_message contient un traitement du message reçu suivi d’une action qui
concerne une modification de l’état interne de l’agent et des interactions avec les autres
agents.
- Les agents ventilateur, Vanne-Gaz et Vanne-Eau reçoivent des messages et selon leurs
contenus ils ajustent le débit puis renvoient le compte rendu aux agents concernés.
- Les agents combustion et hydraulique ont la même forme, ils ont des consignes à
maintenir, suivant les compte-rendus, ils agissent sur les autres agents.
- L’agent ballon calcule le nouveau niveau après réception des valeurs nécessaires.
L’affichage graphique des résultats est assuré par l’agent interface.
Chapitre 6 Implémentation
94
8/ Déploiement dans MadKit :
Le déploiement dans MadKit se fait premièrement par l’intégration des packages de
MadKit à la bibliothèque Java (en modifiant la CLASSPATH) pour pouvoir compiler les
agents et donc aboutir aux fichiers appelés byte-code (fichiers .class). Puis en utilisant, ensuite
ces fichiers et d’autres fichiers (tels que des images,…) on construit le fichier logiciel JAR
qui doit être copié dans le fichier "Autoload" de Mad-Kit.
MadKit offre un agent Launcher qui nous permet de lancer les applications en
choisissant le mode d’exécution (mode console avec graphique, mode console sans
graphique,…).
Nous avons doté notre logiciel d’une interface permettant à l’utilisateur de comprendre
le déroulement du processus de génération de vapeur et le principe de fonctionnement de la
chaudière comme le montre la figure suivante :
Figure 6.3 : Interface du simulateur
Chapitre 6 Implémentation
95
9- Discussion des résultats :
Notre travail vise à utiliser l’approche Multi-Agents et la plate forme MadKit pour
réaliser la simulation d’un processus industriel. En l’occurrence, nous avons opté pour le
processus de génération de vapeur par la chaudière. L’objectif de toute simulation est
d’utiliser les meilleurs moyens permettant de représenter au mieux la réalité, nous avons
utilisé la plate forme MadKit qui se base sur le modèle organisationnel Aalaadin, ce dernier
est utilisé comme guide de conception qui permet de réaliser des applications directement et
indépendamment de la nature du système.
Les résultats obtenus sont très encourageants, nous pouvons agir sur des grandeurs
d’entrées (valeurs en nombres réels) et créer ainsi des ‘perturbations’ auxquelles le système
s’adapte en comparant les grandeurs d’entrée aux grandeurs des consignes. Si l’écart est
significatif, le système agit sur le ou les organes concernés afin de réduire cet écart, on voit
ainsi que le système effectue les corrections voulues de telle façon à assurer sa stabilité.
MadKit est conçu pour supporter des architectures d’agents hétérogènes, des modèles
de communication distinctes et des environnements d’exécution divers ce qui le rend
utilisable actuellement dans des contextes d’application très variées et dans plusieurs régions
à travers le monde (USA, Europe, payes du Maghreb, chine, japon …etc.) .
Malgré ses avantages, MadKit a un point faible principal; il s’agit du manque de
modèle d’agent, la construction d’agents complexes nécessite l’écriture de beaucoup de code
Java, cependant ce défaut est en passe d’être résolu par l’arrivée de nouvelles bibliothèques
pour agents cognitifs intégrables à MadKit. De plus, cette propriété est aussi un point fort sous
certains aspects, car elle offre une plus grande flexibilité, et permet à tout programmeur Java
de commencer à utiliser la plate forme ce qui est un atout dans un contexte pédagogique.
Le travail que nous avons réalisé peut être considéré comme un support de formation
et d’apprentissage destiné aux opérateurs novices et aux stagiaires leur permettant de
comprendre le fonctionnement d’une chaudière à circulation naturelle sans agir sur les
systèmes réels, il peut être considéré également comme un outil pédagogique expliquant
l’approche Multi-Agents et traite l’un de ses secteurs d’utilisation qui est la simulation et plus
précisément la simulation des systèmes industriels.
Conclusion générale
Conclusion
96
A l’inverse des approches traditionnelles qui traitent de systèmes à composantes en
nombres restreint, les systèmes complexes ne peuvent pas être approchés uniquement par
l’analyse de leurs constituants. Les interactions entre les différentes parties et les propriétés
qui en émergent sont aussi importantes. Le tout n’étant pas la somme des parties.
Dans ce travail, nous avons considéré que la dynamique globale d’un système
complexe peut être modélisée par un ensemble d’entités autonomes qui interagissent dans un
environnement commun. Cette dimension est prise en compte dans la modélisation et la
simulation Multi-Agents qui offre aujourd’hui une alternative très séduisante aux
représentations classiques des systèmes complexes. De plus, l’approche Multi-Agents n’est
pas restreinte à un domaine particulier et le paradigme qu’elle définit peut être utilisé pour
modéliser toutes sortes de systèmes. C’est pourquoi, de par son aspect novateur et
interdisciplinaire, la simulation Multi-Agents représente à n’en pas douter un paradigme de
modélisation qui possède un énorme potentiel dans le cadre de l’étude des systèmes
complexes.
Nous nous sommes efforcés d’appliquer et d’approfondir ces notions au cours de
modeste travail. La considération principale est d’aboutir à effectuer un découpage
(agentification) optimal faisant passer de l’espace réel vers de l’espace virtuel (monde
modélisé). Les résultats obtenus sont à nos yeux significatifs et prometteurs et qui se
matérialisent par la mise en œuvre de l’un des paradigmes de programmation les plus récents
qui est le paradigme agent.
L’utilisation du modèle organisationnel Aalaadin et de la plate forme MadKit sont
l’aboutissement de la recherche de plate-formes simples à mettre en œuvre et offrant des
outils de développement facilement intégrables.
Les perspectives de travail sont nombreuses et ne concernent surtout pas uniquement
l’informatique industrielle mais d’autres domaines tels que la conduite de grands projets, la
gestion de trafics routiers, la gestion d’architectures urbaines …
Bibliographie
Bibliographie
97
Bibliographie [Adam, 2000] Adam, E. (2000). Modèle d’organisation multi-agent pour l’aide au travail coopératifdans les processus d’entreprise : application aux systèmes administratifs complexes, Thèse de doctorat, Université de Valenciennes et du Hainaut-Cambrésis.
[Agimont, 1996] Agimont, G. (1996). Modélisation et Simulation des Organisations Mutli-agents, Thèse de doctorat, Université de Valenciennes et du Hainaut-Cambrésis.
[Axelrod, 1997] Axelrod, R. (1997) The complexity of cooperation: Agent based models of competition and collaboration. Princeton, New Jersey: Princeton University Press.
[Baeijs et Demazeau, 1996] Baeijs, C. and Demazeau, Y. (1996). Les organisations dans les systèmes multi-agents. In 5éme Journée Nationale du PRC-IA sur les Systèmes Multi-Agents, pages 35–46. [Bar-Yam, 1997] Bar-Yam, Y. (1997). Dynamics of Complex Systems. Longman.
[Bar-Yam, 2005] Bar-Yam, Y. (2005) About Complex Systems [en ligne].- New England Complex Systems Institute http://www.necsi.org/guide/
[Bellamine-Ben Saoud et al, 2006] Bellamine-Ben Saoud, N., Ben Mena, T., Dugdale, J., Pavard, B., Ben Ahmed, M. (2006) Assessing large scale emergency rescue plans: an agent based approach. International Journal of Intelligent Control and Systems, Special Issue on Emergency Management Systems. 11 (4)December 2006, 260-272 (Guest Editors: Haibin Zhu and Murray Turoff).
[Bernon et al., 2002] Bernon, C., Gleizes, M.-P., Peyruqueou, S., and Picard, G. (2002). Adelfe: A methodology for adaptive multi-agent systems engineering. In Engineering Societies in the Agents World III, Third International Workshop, ESAW 2002, volume LNCS N°2577, pages 156–169, Spain. Springer.
[Berrebi, 1997] Berrebi, E. (1997). Méthodologie pour l’application industrielle de la synthèse comportementale. Thèse de doctorat, Institut National Polytechnique de Grenoble.
[Bénard et al., 2002] Bénard, J.-L., Bossavit, L., Médina, R., and Williams, D. (2002). L’Extreme Programming- Avec deux études de cas -. Eyrolles.
[Boehm, 1976] Boehm, B. W. (1976). Software engineering. IEEE Trans. Computers, 25(12):1226–1241.
[Boehm, 1988] Boehm, B.W. (1988). A spiral model of software development and enhancement. IEEE Computer, 21(5):61–72.
Bibliographie
98
[Boissier et al., 2004] Boissier, O., Gitton, S., and Glize, P. (2004). Caractéristiques des systèmes et des applications. In des Techniques Avancées, O. F., editor, Systèmes Multi-Agents (Série ARAGO), volume 29, pages 25–54.
[Bottoni et al., 2000] Bottoni, P., Koch, M., Parisi-Presicce, F., and Taentzer, G. (2000). Consistency checking and visualization of ocl constraints. In The Unified Modeling Language, Advancing the Standard, Third International Conference, pages 294–308. [Brazier et al., 2002] Brazier, F. M. T., Jonker, C. M., and Treur, J. (2002). Principles of componentbased design of intelligent agents. Data Knowledge Engineering, 41(1):1–27.
[Buck et al., 1994] Buck, J., Ha, S., Lee, E. A., andMesserschmitt, D. G. (1994). Ptolemy: A framework for simulating and prototyping heterogenous systems. International Journal in Computer Simulation, 4(2).
[Buffet, 2003] Buffet, O (2003) Une double approche modulaire de l’apprentissage par renforcement pour des agents intelligents adaptatifs. These de doctorat université Henri Poincarré Nancy I.
[Burrafato and Cossentino, 2002] Burrafato, P. and Cossentino, M. (2002). Designing a multi-agent solution for a bookstore with the passi methodology. In AOIS ’02, Agent-Oriented Information Systems, conference of the Fourth International Bi-Conference Workshop on Agent-Oriented Information Systems (AOIS-2002 at CAiSE*02), volume 57 of CEUR Workshop conference.
[Calderoni et al., 1997] Calderoni, S., Courdier, R., Leman, S., and Marcenac, P. (1997). Construction expérimentale d’un modèle multi-agents. In JFIADSMA, editor, European Conference on Cognitive Science, pages 109–123, La Colle-sur-Loup France.
[Camps, 1995] Camps, V. (1995). Vers une théorie de l’auto-organisation dans les systèmes multi-agents basée sur la coopération: application à la recherche d’information dans un système d’information répartie, Thèse de doctorat, Université Paul Sabatier.
[Camps, 1998] Camps, V. (1998). Application of a self-organizing method based on cooperation to information retrieval. In 13th European Conference on Artificial Intelligence, pages 313–314. John Wiley & Sons.
[Camps and Gleizes, 1995] Camps, V. and Gleizes, M. (1995). Principes et évaluation d’une méthode d’auto-organisation. In Actes des 3émes Journées du GDR-PRC IA/SMA, pages 337–348, St Baldoph France. Hermès.
[Chiozzotto and Lenail, 1998] Chiozzotto, L. and Lenail, B. (1998). Java et l’informatique industrielle. Jautomatise, (5).
Bibliographie
99
[CP1/K] Documentation technique du Complexe petrochimique de Skikda
[DeLoach et al., 2001] DeLoach, S.,Wood, M., and Sparkman, C. (2001). Multiagent systems engineering. International Journal of Software Engineering and Knowledge Engineering, 11(3):231–258.
[Demazeau, 1993] Demazeau, Y. (1993). La plate-forme paco et ses applications. In Actes des 2émes Journées du GDR-PRC IA/SMA, Montpellier France.
[Demazeau, 1995] Demazeau, Y. (1995). From interactions to collective behavior in agent-based systems. In European Conference on Cognitive Science, Saint-Malo France.
[Demazeau et Costa, 1996] Demazeau, Y. and Costa, A. R. (1996). Populations and organisations in open multi-agent systems. In 1st Symposium on Parallel and Distributed AI, Hyderabad, India.
[Donnadieu et Karsky, 2002] Donnadieu, G. and Karsky, M. (2002). La systémique, penser et agir dans la complexité. LIAISONS.
[Drogoul, 1993] Drogoul, A. (1993). De la Simulation Multi-agents à la Résolution Collective de Problèmes, Thèse de doctorat, Université Paris VI.
[Durand, 1998] Durand, D. (1998). La systémique. Que sais-je?, 2nd édition, PUF. [Ferber, 1995] Ferber, J. (1995). Les Systèmes Multi-Agents : vers une intelligence collective. InterEditions.
[Ferber and Gutknecht, 1998] Ferber, J. and Gutknecht, O. (1998). A meta-model for the analysis and design of organizations in multi-agent systems. In 3rd International Conference on Multi-Agent Systems (ICMAS 1998), 3-7 July 1998, Paris, France, pages 128–135. [FIPA, 2002a] FIPA (2002a). FIPA ACL Message Representation in Bit-Efficient Specification, Specifi-cation number SC00069. http://www.fipa.org/fipa00069/.
[FIPA, 2002b] FIPA (2002b). FIPA Agent Message Transport Envelope Representation, Specification number SC00088. http://www.fipa.org/fipa00088/.
[Fishwick, 1997] Fishwick, P. (1997) Computer simulation: growth through extension. Transactional of the soscieting for computer simulation international.
[Foisel et al., 1996] Foisel, R., Chevrier, V., and Haton, J.-P. (1996). De l’organisation d’une société à sa ré-orgranisation. In Journée Systèmes Multi-Agents, pages 121–128. IRIT.
Bibliographie
100
[Fox, 1981] Fox, M. (1981). An organizational view of distributed systems. In IEEE Transactions on Systems, Man, and Cybernetics, volume 11, pages 70–80.
[Gallou and Bouchon-Meunier, 1994] Gallou, F. L. and Bouchon-Meunier, B. (1994). Introduction à la Systémique. Hermès.
[Garro, 2003] Garro, A. (2003). Modeling-notation source: Gaia. Technical report, Foundation for Intelligent Physical Agents.
[Gasser, 1992] Gasser, L. (1992). An overview of DAI. In Distributed Artificial Intelligence : Theory and Praxis, Boston. Kluwer Academic Publishers.
[Guichard, 1996] Guichard, F. (1996). La réorganisation dynamique dans les systèmes multi-agents, Thèse de doctorat, Université de Savoie.
[Guillemet et al., 1999] Guillemet, A., Haik, G., Meurisse, T., Briot, J., and Lhuillier, M. (1999). Mise en oeuvre d’une approche componentielle pour la conception d’agents. In Gleizes, M. and Marcenac, P., editors, Septièmes Journées Francophones sur l’Intelligence Artificielle Distribuée et les Systèmes Multi-Agents (JFIADSMA’99), pages 53–65. Hermès Science Publications, Paris, France.
[Gutknecht, 2001] Gutknecht, O. (2001) Proposition d’un modèle organisationnel générique de systèmes multi-agents Examen de ses conséquences formelles,implémentatoires et méthodologiques These de doctorat Université de Montpellier II.
[Ishida et Yokoo, 1992] Ishida, T. et Yokoo, M. (1992). Organization self-design of distributed production systems. In IEEE Transactions on Knowledge and Data Engineering, volume 4, pages 123–134.
[Ishida et al., 1990] Ishida, T., Yokooand, M., and Gasser, L. (1990). An organizational approach to adaptive production systems. In Proceedings of the Eighth National Conference on Artificial Intelligence, pages 52–58, Boston. AAAI Press.
[Jarras et Chaib-Draa, 2002] Jarras, I. et Chaib-Draa, B. (2002) Apperçu sur les systems multi-agents Série scientifique du centre inter universitaire de recherché en analyse des organizations CIRRANO.
[Jean, 1997] Jean, M. R. (1997). Emergence et sma. In Quinqueton, J., Thomas, M.-C., and Trousse, B., editors, Journées Francophones sur l‘Intelligence Artificielle Distribuée et Systèmes Multi-Agents (JFIADSMA’97), pages 323–342, Colle-Sur-Loup. Hermes.
[Kolski, 1997] Kolski, C. (1997). Interfaces Homme-Machine, application aux systèmes industriels complexes (2éme édition revue et corrigée). Hermes.
Bibliographie
101
[Labidi et Lejouad, 1993 ] Labidi, S., Lejouad, W. (1993) ‘ De l’intelligence artificielle distribuée aux systèmes multi-agents’ INRIA N° 2004.
[Larvet, 1994] Larvet, P. (1994) ‘Analyse des systèmes : de l’approche fonctionnelle à l’approche objet’ InterEditions – Paris
[Le Moigne, 1990] Le Moigne, J.-L. (1990). La modélisation des systèmes complexes. Dunod. Paris 1990
[Le Strugeon, 1995] Le Strugeon, E. (1995). Une méthodologie d’auto-adaptation d’un système multiagents cognitifs, Thèse de doctorat, Université de Valenciennes et du Hainaut-Cambrésis.
[Le Strugeon et al., 1993] Le Strugeon, E., Mandiau, R., and Libert, G. (1993). Proposition d’organisation dynamique d’un groupe d’agents en fonction de la tâche. In Actes des 1éres Journées Francophones sur l’Intelligence Artificielle Distribuée et les Systèmes Multi-Agents - JFIADSMA, Toulouse, France.
[Lenay, 1996] Lenay, C. (1996). Emergence et sma. In Actes des Journées Francophones Intelligence Artificielle Distribuée et Systèmes Multi-Agents - JFIADSMA, pages 265–272, Sète, France. Hermes.
[Lind, 2001] Lind, J. (2001). Interative Software Engineering for multiagent systems: The MASSIVE Method, volume 2001 of LNCS/LNAI. Springer Verlag.
[Marcelpoil et al., 1994] Marcelpoil, R., Beaurepaire, E., and Pesty, S. (1994). La sociologie cellulaire: modéliser et simuler une ’société’ cellulaire pour étudier le vivant. Intellectica, 19.
[Marcenac, 1996] Marcenac, P. (1996). Emergence of behaviors in natural phenomena agent-simulation. In Complexity International Review, volume 3.
[Marcenac, 1997] Marcenac, P. (1997). The multiagent approach : Complex simulations that spew realistic behaviors require independent acting variables. In IEEE-Potentials, pages 19–23.
[Meurisse and Briot., 2001] Meurisse, T. and Briot., J. (2001). Une approche à base de composants pour la conception d’agents. Revue Technique et Science Informatiques (TSI), Numéro Spécial "Réutilisation", 20(4):583–602. [Mintzberg, 1982] Mintzberg, H. (1982). Structure et Dynamique des Organisations. Organisation.
Bibliographie
102
[Müller and Van Dyke Parunak, 1998] Müller, J.-P. and Van Dyke Parunak, H. (1998). Vers une méthodologie de conception de systèmes multi-agents de résolution de problémes par émergence. In JFIADSMA - Journée Francophones IAD et SMA, Pont-à-Mousson, France. Hermes.
[Mylopoulos et al., 2001] Mylopoulos, J., Manuel, K., and Castro, J. (2001). Uml for agent-oriented software development: The tropos proposal. In Gogolla, M. and Kobryn, C., editors, conference of the 4th International Conference on the Unified Modeling Language, Modeling Languages, Concepts, and Tools, volume LNCS n°2185, pages 422–441. Springer.
[Nussbauer, 1987] Nussbauer, H. (1987). Informatique industrielle. Presses polytechniques romandes.
[Occello, 2003] Occello, M. (2003). Méthodologie et architectures pour la conception de systèmes multi-agents. In Mémoire d’Habilitation à Diriger les Recherches, Université Joseph Fourier, Grenoble.
[Occello et al., 2002] Occello, M., Baeijs, C., Demazeau, Y., and Koning, J.-L. (2002). MASK : An AEIO Toolbox to Develop Multi-Agent Systems, Knowledge Engineering and Agent Technology,. IOS Series on Frontiers in AI and Applications.
[Occello et al., 2001] Occello, M., Koning, J., and Baeijs, C. (2001). Conception de systèmes multiagents : quelques éléments de réflexion méthodologique. In Techniques et sciences informatiques, volume 20, pages 233–263.
[Padgham and Winikoff, 2002] Padgham, L. and Winikoff, M. (2002). Prometheus: A methodology for developing intelligent agents. In The First International Joint Conference on Autonomous Agents & Multiagent Systems, Workshop on Agent oriented software engineering, pages 174–185.
[Picard, 2004] Picard, G. (2004). Méthodologie de développement de systèmes multi-agents adaptatifs et conception de logiciels à fonctionnalité émergente, Thèse de doctorat, Université Paul Sabatier, Toulouse III.
[Piquemal-Baluard and Glize, 1996] Piquemal-Baluard, C. and Glize, P. (1996). Des aptitudes non cognivistes d’agents pour l’auto-organisation. In Journée Systèmes Multi-Agents, pages 129–138. IRIT.
[Rodriguez, 1994] Rodriguez, M. (1994). Modélisation d’un agent autonome: Approche constructiviste de l’architecture de contrôle et de la représentation de connaissances, Thèse de doctorat, Université de Neufchâtel.
[Roques et Vallée, 2003] Roques, P. and Vallée, F. (2003). UML en action. Eyrolles.
Bibliographie
103
[Van Dyke Parunak, 2000] Van Dyke Parunak, H. (2000). A practitioners? review of industrial agent applications. Autonomous Agents and Multi-Agent Systems, 3(4):389–407. [Vercouter, 2000] Vercouter, L. (2000). Conception et mise en oeuvre de systèmes multi-agents ouverts et distribués, Thèse de doctorat, Université de Jean Monnet et Ecole des Mines de Saint-Etienne.
[Vercouter, 2004] Vercouter, L. (2004). Mast : Un modèle de composant pour la conception des SMA. In Journées Multi-Agents et Composants, Paris.
[Ward, 1985] Ward, P. T. (1985). Structured Development for Real-Time Systems: Introduction and Tools. Yourdon.
[Watkins, 1989] Watkins, C. (1989). Learning from delayed reward. PhD thesis, University of Cambridge.
[Weiss, 1999] Weiss, G. (1999). Multiagent systems and distributed artificial intelligence. In Weiss, G., editor, Multiagent systems : A modern approach to Distributed Artificial Intelligence. MIT Press.
La plate-forme MADKIT, l’outil SEDIT ainsi que diverses extensions sont disponibles sur <http ://www.madkit.org>