Un Mod ele d'architecture multi-agents enti erement ecrit ... - CiteSeerX

\strat egiques\ en envoyant des ordres sous forme de messages a ses ls. Si une t^ache est jug ee trop complexe pour ^etre trait ee par un agent social, il y a cr ...
177KB taille 2 téléchargements 522 vues
Un Modele d'architecture multi-agents entierement ecrit en Prolog N Bensaid et Ph Mathieu Laboratoire d'Informatique Fondamentale de Lille U.A. 369 du C.N.R.S., Universite de Lille I, 59655 Villeneuve d'Ascq Cedex. FRANCE. e-mail : fbensaid,mathieug@li .fr

Abstract. La realisation de systemes d'inferences multi-agents a ete etudiee de nom-

breuses fois sous di erents aspects, chacun avec ses inconvenients. La plupart du temps, les realisations de ces systemes ont ete e ectuees dans des langages imperatifs classiques, qui fournissent un code long, et peu souple. Dans ce papier nous proposons une archichecture multi-agents hierarchique dans laquelle des agents "superviseurs" gerent l'interaction de groupes d'agents sociaux. Le systeme que nous proposons est entierement concu avec le langage Prolog qui permet un prototypage rapide et performant tout en o rant des facilites incomparables pour la realisation d'agents capables d'inferences de tous types. Nous presentons dans ce papier, les di erents aspects de ce systeme.

Theme: Applications de Prolog , Prolog et Objets Mots cles: Agent social, IAD, Systemes multi-agents, Prolog

1 Introduction L'idee de la distribution de la connaissance a ete a l'origine de la conception d'un ensemble de modeles d'architectures pour les systemes d'intelligence arti cielle. L'organisation de la connaissance du systeme dans des entites autonomes a pour objectif de lui garantir de meilleures performances. Il existe actuellement deux tendances : le systeme dit du \tableau noir\ dont l'archetype est le systeme ATOME [7] [6] et les systemes multi-agents [5] dont l'architecture sous-jacente est parfaitement distribuee. Chacun de ces modeles possede des avantages et des inconvenients que nous ne detaillerons pas ici. A n de federer ces deux aspects, nous avons elabore un modele d'architecture multi-agents hierarchique qui est concu comme un ensemble de groupes d'agents sociaux. Un groupe dans cette architecture contient un ensemble d'agents specialises dont chacun est une entite autonome ayant toutes les competences requises pour communiquer, cooperer, agir, reagir etc... Le groupe possede un agent particulier appele \superviseur\. Ce dernier conna^t tous les agents de son groupe et est charge de veiller a la bonne gestion de leurs interactions et d'assurer leurs coordination. Le superviseur se comporte comme le porte-parole de son groupe car il peut entrer en communication avec les superviseurs des autres groupes. Chaque groupe peut ^etre assimile a un sous-systeme capable de resoudre un sous-probleme qu'il decompose en un ensemble de t^aches speci ques. Ces dernieres sont distribuees aux agents du groupe par le superviseur. Le superviseur joue un r^ole central dans le groupe (voir g.1). Il detient a tout moment l'etat global de son groupe mais possede une vision partielle et limitee du systeme. Contrairement aux

systemes multi-agents, un agent ne peut raisonner sur les capacites d'un autre agent et comme dans un modele tableau noir, le superviseur peut gerer une structure commune a chacun des agents de son groupe. Ce systeme appele MAGIQUE (Modele d'Architecture multi-aGents hIerarchiQUE) a deja ete etudie dans le detail ([2]). Nous n'en presentons que les aspects fondamentaux. A n de faciliter la conception et la realisation de ce produit, il nous a semble que l'approche objets etait la plus prometteuse. Malheureusement les langages objets actuels sont peu declaratifs et ne permettent pas facilement de decrire de nouvelles methodes d'inferences. Le langage Prolog , par contre, langage logique du 1er ordre, gr^ace a son aspect declaratif, ses possibilites de de nition de nouveaux operateurs et a sa recursivite inherente, permet facilement de decrire un langage objet [8] , un systeme multi-agents et des moteurs d'inferences divers a placer dans les agents. C'est l'approche que nous presentons dans cet article.

2 Pourquoi un modele d'architecture multi-agents hierarchique? Les systemes d'IAD bases sur le modele du tableau noir sont tres adaptes aux applications dont l'information manipulee est fortement partagee par l'ensemble des agents. Dans ce cas, il y a un degre de recouvrement eleve des domaines d'expertise representes par les agents du systeme. Dans le modele tableau noir, l'agent est reduit a une source de connaissances constituee d'un ensemble de regles formant la base de connaissances. Bien qu'une source de connaissances ne \travaille\ que sur une region limitee du tableau noir, elle peut acceder a toutes les regions du tableau. Ce dernier est visible dans son integralite pour toutes les sources de connaissances. Les sources de connaissances s'ignorent mutuellement. Elles ne possedent aucun mecanisme de communication leurs permettant d'echanger directement des informations et de cooperer d'une maniere transparente. L'absence d'un environnement local propre et de tout mecanisme de communication evolue ne predispose pas les systemes a base de tableau noir a un fonctionnement multi-agents; ce qui les rend inadaptes aux applications dont les domaines d'expertise sont disjoints. Le modele tableau noir a un aspect centralise a cause du mode de communication indirecte via une structure partagee et de son mecanisme de contr^ole represente sous forme d'une entite centralisee. En revanche, les systemes multi-agents conviennent mieux a la resolution de problemes distribues dans lesquels les agents sont autonomes. Dans ce modele, un agent est une entite complexe. Il est susament competent pour cooperer et interagir avec les autres agents qu'il conna^t. Il est capable de raisonner sur le comportement de ses accointances ce qui lui permet d'eviter les con its. Pour des applications necessitant la cooperation de plus d'une dizaine d'agents, le systeme risque de voir ses performances s'e ondrer a cause de la complexite de la structure de l'agent. La raison est que chaque agent du systeme doit pour chaque geste, chaque action, tenir compte des possibilites d'actions de tous les autres agents qu'il conna^t. En cas de con it, l'agent doit rentrer en negociation avec ses concurrents. Il est donc dicile de gerer plusieurs agents cognitifs vu que la complexite du systeme augmente avec le nombre d'agents. Face a cette limite contraignante du modele multi-agents classique, le modele multi-agents hierarchique constitue une alternative en organisant les agents en groupes sociaux. Dans ce modele, l'agent n'a pas besoin de raisonner sur le comportement de ses accointances. Il y a un

agent superviseur dedie exclusivement a cette t^ache.

superviseur

superviseur

agent social

Fig. 1 -

agent social

superviseur

agent social

agent social

Structure hierarchique du modele multi-agents

L'agent superviseur detient une expertise, sous forme de connaissances, specialisee dans la gestion des interactions des agents de son propre groupe. Au lieu d'integrer toute la connaissance correspondant aux comportements de ses accointances, l'agent social prefere les ignorer et faire l'economie d'une representation de cette connaissance en son sein. L'inter^et est d'avoir une structure interne moins complexe. Notons que dans le cas du modele classique, la connaissance que possede un agent sur ses accointances est une connaissance de contr^ole indispensable pour avoir un comportement coherent. Le probleme lie a la complexite du modele classique illustre bien la diculte de mise en oeuvre d'un contr^ole ecace et souple dans les systemes parfaitement distribues.

3 Modelisation du systeme 3.1 le langage objet

A n de mener a bien la realisation de ce systeme, il nous fallait tout d'abord un langage a objet. Ce langage a ete b^ati sur un schema meta-circulaire minimal a la ObjVLisp [1] dont l'idee avait deja ete etudiee dans [8]. Il utilise uniquement deux classes; la classe Class qui a pour fonctionalite de creer de nouvelles classes ou meta-classes, et la classe Object qui est la classe dont herite chaque objet. Object contient l' attribut isa qui r eference la classe d'instanciation de l'objet et les methodes ask pour interroger l'attribut d'un objet et give pour a ecter l'attribut d'un objet. Class contient les attributs sc qui r eference la sur-classe de la classe, att qui contient la liste des attributs de nis par la classe, meth qui contient la liste des methodes accessibles par les representants de la classe, new qui permet de creer de nouveaux objets. L'envoi de messages est code par la methode :: de la maniere suivante Objet::message. par exemple, pour creer un objet paul, on utilisera le predicat personne::new(paul). Bien que tres puissant, le noyau objet que nous utilisons s'exprime en prolog avec tres peu de predicats g.2. Le langage decrit permet neanmoins la multi-valuation des arguments, l'heritage multiple , la creation de meta-classes et la re exivite.

:- dynamic obj/3 . ::-

op(800,xfx,'::'). op(750,xfx,as).

obj(object,isa,class). obj(object,meth,[s(ask,ask),s(give,give),s(affect,affect)]). obj(object,att,[isa]). obj(class,isa,class). obj(class,sc,object). obj(class,meth,[s(new,basicnew)]). obj(class,att,[sc,att,meth]). '::'(Object,Message) :( Message=..[as,Meth,Cl], !, Meth =..[Nom|Params], rech(Object,meth as Cl,s(Nom,Ext)) ; Message=..[Nom|Params], rech(Object,meth,s(Nom,Ext)) ), !, Quest=..[Ext,Object|Params], call(Quest).

Fig. 2 -

partie du code de creation du noyau du langage objet

3.2 le systeme multi-agents L'architecture multi-agents se gre e ensuite directement sur le schema de base. Le modele est constitue de trois classes d'objets: Meta super, Superviseur et Agent qui permettent respectivement d'instancier des classes superviseurs, d'instancier des objets Superviseur, d'instancier des objets Agent. Le schema de modelisation ( g.4) permet de creer une in nite de niveaux hierarchiques d'agents. Une application est representee par une arborescence d'agents. Les noeuds de l'arbre sont des agents superviseurs. Les agents ls d'un noeud forment le groupe avec leur superviseur. Les agents sociaux (specialistes) sont obligatoirement representes au niveau des feuilles de l'arbre. Ce dernier a un noeud racine qui est un superviseur dont la t^ache est de decomposer le probleme en sous-t^aches simples qu'il a ectera aux agents de son groupe. Le superviseur a une vision globale du systeme. En fonction de l'etat du systeme, il peut prendre des decisions \strategiques\ en envoyant des ordres sous forme de messages a ses ls. Si une t^ache est jugee trop complexe pour ^etre traitee par un agent social, il y a creation d'un superviseur qui decomposera la t^ache en sous-taches elementaires. Ces dernieres seront a ectees aux agents ls du nouveau superviseur. Un superviseur est un agent social (la classe superviseur herite de la classe agent) qui: -conna^t tous les agents de son groupe. -peut creer des agents sociaux ou superviseurs. -peut di user un message a ses ls.

L'implementation de ce modele a l'aide de notre langage objet en Prolog est maintenant immediate ( g.3). Les di erents objets crees et les methodes associees sont decrites dans la g.4. :- class::new(meta_super,sc,class). :- meta_super::give(meth,[s(creer_super,creer_super)]). ::::::-

class::new(agent,sc,object). agent::give(meth,[s(deposer,deposer),s(retirer,retirer)]. agent::give(att,[agenda,super]). meta_super::new(superviseur,sc,agent). superviseur::give(att,[list_fils,super]). superviseur::give(meth,[s(diffuser,diffuser),s(creer_agent,creer_agent)]).

diffuser(Self,fils,Message):- Self::ask(list_fils,L), deposer_list_fils(L,Message). diffuser(Self,tous,Message):- Self::ask(list_fils,L), deposer_list_tous(L,Message). diffuser(Self,feuilles,Message,V) :- Self::ask(list_fils,L), deposer_list_feuilles(L,Message,V). deposer(Agent,Message) :- Agent::ask(agenda,X), append(X,[Message],R), Agent::affect(agenda,R). retirer(Self) :- Self::ask(agenda,[Message|L]), Self::affect(agenda,L), call(Message).

Fig. 3 -

Une partie du code de creation du noyau multi-agents

La puissance de Prolog nous permettra ensuite de creer facilement des moteurs d'inferences, en logique d'ordre 0+ ou 1, en logique classique ou en logique oue de maniere tres aisee (on en trouvera des exemples dans [3]). Ces di erents moteurs seront ensuite places directement dans le corps des agents a n de permettre des inferences reparties entre les di erents agents sociaux.

3.3 Avantages du modele { Modelisation d'applications tres complexes mettant en oeuvre un grand nombre d'agents. Ces derniers ont une structure interne homogene. Ils sont regroupes en groupes sociaux dont les interactions sont gerees par leur superviseur. { Contr^ole hierarchique fonde sur des agents superviseurs. Chaque agent exerce une partie du contr^ole a travers sa dimension contr^ole (analyse d'un message, reaction aux changements de son environnement local, gestion de la coherence de sa base de connaissances, etc...). La connaissance de contr^ole est representee explicitement dans les agents superviseurs. L'organisation de ces derniers en niveaux hierarchiques reduit considerablement la complexite de l'architecture de contr^ole. { Possibilite de con gurer le modele pour avoir un fonctionnement tableau noir du systeme.

Meth: ask, give

object

sc

i

Meth: new

i

class

sc i

sc Meth: creer_super meta-super

i i

att: list_fils att: agenda, superviseur Meth: deposer retirer

Fig. 4 -

sc agent

superviseur

Meth: creer_agent diffuser

modelisation du systeme multi-agents

Les agents sociaux se comportent comme des sources de connaissances, tandis que le superviseur joue le r^ole de mecanisme de contr^ole { Modele generique minimal independant de l'application. { L'implementation est faite dans un langage prolog objet re exif similaire au modele objVLISP [1]. L'inter^et est d'avoir simultanement les avantages de prolog(aspect declaratif, puissance d'inference, ...) et ceux des langages objets meta-circulaires( modularite, communication fondee sur l'envoi de messages, extensibilite, ...). { Prise en compte des aspects asynchrones et concurrents (stockage des messages dans un agenda gere par priorites); ce qui rend le modele adapte au developpement d'applications temps reel(diagnostic medical, contr^ole des processus industriels, ...).

4 Applications 4.1 Un moteur d'inferences reparti

Chaque agent du systeme a une base de connaissances regles, une base de faits qui lui est propre faits (les deux bases sont representees sous-forme d'un attribut de l'objet agent) et un moteur d'inferences appele par la methode saturer ( g.5). Le schema suivant montre une hierarchie d'agents dans laquelle la connaissance est presente seulement dans les agents sociaux (feuilles de l'arbre). Le modele permet de faire une inference repartie en di usant le message saturer aux agents sociaux. On cree d'abord une classe appelee super qui decrit des agents superviseurs. Ces derniers peuvent donc creer des agents et gerer un agenda.

| ?- meta_super::new(super,sc,[superviseur,agent]).

On cree ensuite un superviseur representant de cette classe que l'on nomme s | ?- super::creer_super(s,null).

Puis deux superviseurs s1 et s2 ls de s | ?- super::creer_super(s1,s). | ?- super::creer_super(s2,s).

s1

gere deux agents a1 et a2 avec des possibilites d'inferences.

| ?- s1::creer_agent(a1,agent_inference). | ?- s1::creer_agent(a2,agent_inference).

s2

ne gere que l'agent a3

| ?- s2::creer_agent(a3,agent_inference).

Les agents possedent chacun leur propre base de regles. | ?- a1::give(regles,[si a alors x,si b et c alors e]). | ?- a2::give(regles,[si b alors y,si a et c alors f]). | ?- a3::give(regles,[si c alors z,si a et b alors g]).

Exemple d'execution La methode diffuser de l'objet superviseur a deux arguments: le

type appartenant a (feuilles, tous, ls) et le message a di user. Par exemple diffuser(feuilles, Message) demande a l'objet receveur de di user le message jusqu'a ces agents sociaux. L'envoi du message est recursif. Seuls les agents sociaux (feuilles) traiteront le message. diffuser(tous,Message) demande a  l'objet receveur de di user le message jusqu'a ces agents sociaux avec traitement du message par tous les agents intermediaires ainsi que les agents feuilles. diffuser(fils,Message): Seuls les ls directs de l'objet receveur traiteront le message. Dans l'execution suivante, l'objet s depose le message diffuser(feuilles, saturer) dans l'agenda des agents s1 et s2. Ces derniers deposent a leur tour le message saturer dans

Meth: give, ask object

sc

i

class

i

Meth: new

sc sc i Meth: creer_super meta_super i

i

att: agenda, superviseur Meth: deposer retirer

superviseur

agent

sc att: regles, faits

Att: list_fils Meth: creer_agent diffuser s

sc

sc

i s2

s1

super agent_inférence

Meth: saturer i

a1

i

Fig. 5 -

a3 a2

Modelisation du moteur d'inference reparti

l'agenda des agents a1, a2, a3 qui se chargeront de saturer leur base de connaissances respectives pour deduire les faits x, e pour a1; y, f pour a2 et z, g pour a3. On peut veri er quels sont les agents geres par s | ?- s::ask(list_fils,X). X = [s1,s2]

On ajoute recursivement les faits a,b,c a tout les agents sociaux. | ?- s::diffuser(feuilles,give(faits,[a,b,c])).

On le veri e pour a1 | ?- a1::ask(faits,X). X = [a,b,c]

On demande recursivement a chacun de saturer sa base de connaissance. | ?- s::diffuser(feuilles,saturer).

le fait x a ete deduit. le fait e a ete deduit. le fait y a ete deduit. le fait f a ete deduit. le fait z a ete deduit. le fait g a ete deduit.

4.2 Un moteur d'inference generalise

Le schema suivant montre une hierarchie d'agents dans laquelle la connaissance est presente dans tous les agents (feuilles et noeuds de l'arbre) du systeme aussi bien agents sociaux que superviseurs. Le modele permet de faire de l'inference repartie en di usant le message saturer a tous les agents du systeme, quels qu'ils soient ( g.6). Si l'on veut avoir des superviseurs capables de faire de l'inference il sut de creer une classe sup inf erence qui h erite simultanement des classes superviseur et agent inference.

| ?- meta_super::new(sup_inf erence,sc,[superviseur,agent_inf erence]). | ?- sup_inf erence::creer_super(s,null). | ?- sup_inf erence::creer_super(s1,s). | ?- sup_inf erence::creer_super(s2,s). | ?- s1::creer_agent(a1,agent_inf erence). | ?- s1::creer_agent(a2,agent_inf erence). | ?- s::give(regles,[si a alors u,si a et b alors f]). | ?- s1::give(regles,[si b alors v,si b et c alors g]). | ?- s2::give(regles,[si c alors w,si a et c alors h]). | ?- a1::give(regles,[si d alors x,si a et d alors i]). | ?- a2::give(regles,[si a et b alors y,si c et d alors j]).

Exemple d'execution | ?- s::diffuser(tous,give(faits,[a,b,c,d])).

| ?- s::diffuser(tous,saturer). le fait x a ete deduit. le fait i a ete deduit. le fait y a ete deduit.

le fait j a ete deduit.

s1::diffuser(tous,saturer) le fait v a ete deduit. le fait g a ete deduit. s2::diffuser(tous,saturer) le fait w a ete deduit. le fait h a ete deduit.

Meth: ask, give object

sc

i

Meth: new

class

i sc

sc meta_super i

i att: list_fils Att: agenda Meth: deposer retirer

superviseur

agent

sc

sc Att: regles, faits Meth: saturer, add

i i

sc

super_inférence

s2

s1

agent_inférence i

a1 i

Fig. 6 -

Meth: creer_agent diffuser s

a2

Modelisation du moteur d'inference generalise

4.3 Raisonnement distribue et logique oue

L'un des inter^et primordiaux de notre architecture consiste a favoriser la communication entre di erents moteurs d'inferences. Dans l'exemple suivant, les agents e ectuent l'inference tandis

que les superviseurs possedent une vue globale. La connaissance representee au sein d'un agent est souvent imprecise et incertaine. La logique oue o re un cadre formel pour le raisonnement sur de telles connaissances. Dans un systeme multi-agents, une m^eme connaissance peut gurer dans des agents sociaux di erents avec un degre de precision ou de certitude di erent en fonction de la vision qu'a l'agent du processus de resolution.

Meth: ask, give object

sc

i

class

Meth: new

sc sc i Meth: creer_super meta_super i

i att: regles, faits agenda Meth: deposer retirer

superviseur

agent

Att: list_fils Meth: creer_agent diffuser

sc sc

sc sc ag_chai_av_flou

Meth:saturer

Fig. 7 -

agent_inférence

Meth:saturer

Meth: valeur_feuilles

sc ag_chai_ar_flou

super_flou

Meth:prouver

Modelisation du systeme d'inference en logique oue

Pour prendre en compte cet aspect ou dans le cas de notre modele (voir g.7), chaque agent est dote d'un moteur d'inference (ayant les deux modes d'inferences: cha^nage avant et cha^nage arriere) permettant de generer des faits avec un coecient de vraissemblance a ecte au fait infere. La technique consistant a a ecter un coecient de vraissemblance a un fait est celle retenue dans MYCIN (Shortli e, 1976). Elle est illustree dans l'exemple suivant. si cond1(c1=0.8) et (cond2(c2=0.9) ou cond3(c3=0.7)) alors conc (cr=0.8) cr est le coe ecient de la regle. conc est deduit avec le coe ecient c calcule par l'application de la fonction max pour les ou et min pour les et. c(conc)=min(0.8,max(0.9, 0.7))*0.8= 0.64.

Chaque agent infere le fait avec une certitude qui lui est propre. Un superviseur peut interroger les agents de son groupe sur un fait donne pour recuperer le coecient a ecte par chacun des agents a ce fait. Le calcul de la valeur de ce fait au niveau du superviseur est e ectue selon une technique donnee. min(liste des valeurs) pour une approche pessimiste. max(liste des valeurs) pour une approche optimiste. moyenne(liste des valeurs) pour une approche equiprobable. De cette maniere, le superviseur se fera une opinion sur son groupe. Les classes ag chai ar flou et ag chai av flou sont des sous-classes de la classe agent inference. Elles heritent donc les attributs faits et regles. La classe ag chai ar flou possede un moteur d'inferences fonctionnant en chainage arriere

ou. Ce moteur est represente par la methode prouver qui a pour objet de prouver le but et de calculer son coecient de vraissemblance. La classe ag chai av flou a un moteur d'inferences represente par la methode saturer. Ce dernier sature sa base de connaissances et generent les faits deduits apres avoir calcule leur coecient de vraissemblance. La classe super flou herite simultanement de la classe superviseur et de la classe agent. Elle possede la methode valeur feuilles pemettant a un objet superviseur d'interroger les agents sociaux de son groupe sur un fait donne et de calculer son coecient de vraissemblance.

Exemple d'execution | ?- meta_super::new(super_flou,sc,[superviseur,agent]). | ?- super_flou::give(meth,valeur_feuilles). | ?- super_flou::creer_super(s,null). | ?- super_flou::creer_super(s1,s). | ?- super_flou::creer_super(s2,s). | ?- s1::creer_agent(a1,ag_chai_av_flou). | ?- s1::creer_agent(a2,ag_chai_av_flou). | ?- s2::creer_agent(a3,ag_chai_ar_flou). | ?- s2::creer_agent(a4,ag_chai_ar_flou). | ?- a3::give(regles,[si b et c alors d cf 0.5 ,si a et d alors e cf 0.5 , si a alors c cf 0.5 ]). | ?- a3::give(faits,[connu(a,0.6),connu(b,0.7)]). | ?- a3::prouver(e,Coeff). Coeff=0.15

agent_inference

agent

superviseur

sc

sc

sc super_flou s i i

i

ag_chai_av_flou

ag_chai_ar_flou

s2

s1

i

i i

Fig. 8 -

a1

a2

a3

a4

i

Schema d'heritage du systeme d'inference en logique oue

| ?- a1::give(regles,[si b et c alors d cf 0.5 ,si a et d alors e cf 0.5 , si a alors c cf 0.5 ]). | ?- a1::give(faits,[connu(a,0.6),connu(b,0.7)]). | ?-a1::saturer. le fait e a e t e d eduit coeff 0.15 le fait c a  et e d eduit coeff 0.3 le fait d a  et e d eduit coeff 0.15

Le superviseur s peut interroger tous les agents sociaux (a1,a2,a3,a4) (voir g.8)sur un fait donne et calculer ensuite son coecient de vraissemblance selon une approche donnee. Dans l'exemple suivant, le coecient de vraissemblance est calcule selon une approche optimiste (prendre le max des valeurs associees au fait par les agents sociaux). | ?- a2::give(faits,[connu(b,1)]). | ?- a2::give(regles,[si b alors a cf 1, si a et b alors e cf 0.5]).

| ?- a4::give(faits,[connu(b,0.4),connu(c,0.5)]). | ?- a4::give(regles,[si b ou c alors a cf 0.5]). | ?- a2::saturer. le fait a a  et e d eduit coeff 1 le fait e a e t e d eduit coeff 0.5 | ?- a4::saturer. le fait a a  et e d eduit coeff 0.25 | ?- s::valeur_feuilles(a,X). X = 1 ? ;

5 Conclusion Dans cet article, nous avons mis en evidence les raisons qui ont milite en faveur de l'ecriture d'un systeme multi-agents en Prolog. Le systeme propose une structuration des agents entre agents sociaux et agents superviseurs sous forme de hierarchie. L'inter^et du modele est sa capacite a modeliser des applications complexes necessitant des inferences multiples, c'est pourquoi il est ecrit en Prolog. Le modele o re notamment la possibilite a un agent donne du systeme quel que soit son statut (superviseur ou agent social) de faire de l'inference et de se comporter donc comme un veritable systeme expert. La realisation a consiste a ecrire un langage a objets a la ObjVLisp que nous avons ensuite etendu pour gerer la structure multi-agents hierarchique. En n, des methodes d'inferences generalisees (avec ou sans variables, en cha^nage avant ou en cha^nage arri^ere, en logique classique ou en logique oue) ont ete implementees dans les di erents agents. Les recherches actuelles s'orientent autour de deux axes principaux : l'utilisation d'un Prolog permettant le lancement de t^aches paralleles (par ex Eclipse [4]) a n de gerer des agents physiquement repartis ; l'implementation de mecanismes de gestion de la coherence comme les ATMS a n de maintenir la verite dans les bases de connaissances des di erents agents.

References 1. JP Briot et P Cointe .{The OBJVLISP Model: De nition of a uniform, re exive and extensible object oriented language. Rapport n 1. CMI Juin 1986. 2. N. Bensaid et Ph. Mathieu . { MAGIQUE: Un Modele d'Architecture multi-aGents hIerarchiQUE. JFSMA'95 Chambery-St Badolph 15-17 mars 1995(a paraitre). 3. I. Bratko . { Programmation en PROLOG pour l'intelligence arti cielle. edition interEditions, 1988. 4. E.C.R.C.. { Eclipse 3.3 Reference manual. ECRC GmbH, Munich 1993. 5. J. Ferber. { Objets et agents: Une etude des structures de representation et de communication en intelligence arti cielle. These de l'universite de PARIS VI, LAFORIA Paris 1991. 6. Haton J-P, Bouzid N, Charpillet F, Haton M-C, L^aasri B, L^aasri H, Marquis P, Napoli T-M-A .{ Le raisonnement en intelligence arti cielle. edition interedition, Paris 1991.

7. H. L^aasri, B. Ma^tre, J-P Haton .{ ATOME: Outil d'aide au developpement de systemes multiexperts. Actes 6emes AFCET-RFIA, Antibes, pp. 749-59. 8. Malenfant J. .{ Architectures meta-re exives en programmation logique par objets. JFPL'92 , Journees Francophones sur la programmation en logique , Lille 92. 9. Rechenmann F, Fontanille P, Uvietta P. { SHIRKA: Un systeme de gestion de bases de connaissances centrees-objets. Manuel d'utilisation; INRIA/IMAG octobre 1990. 10. Warin F. { ATOME C++ ; Manuel utilisateur. CRIN/INRIA Lorraine.

This article was processed using the LaTEX macro package with LLNCS style