• Aucun résultat trouvé

Evaluation du syst` ´ eme Leopar++

CHAPITRE 7 SIMULATIONS ET R´ ESULTATS

7.4 Evaluation du syst` ´ eme Leopar++

Le syst`eme Leopar++ est en mesure de r´ealiser des simulations de v´eritables r´eseaux de distribution. Toutefois, il est important de comparer notre architecture `a celle de syst`eme multiagents.

Ainsi, nous avons d´evelopp´e une version multiagents standard de notre simulateur Leo- par++. Pour ce faire, nous avons r´e-impl´ement´e les agents de Leopar++ dans l’environ- nement multiagents Jade. Par la suite, nous avons ´etabli un m´ecanisme de communication inter-agents bas´e sur le langage FIPA et l’ontologie CIM. Finalement, nous avons remplac´e la zone commune d’´echange des donn´ees par des m´emoire individuelles o`u chaque agent dispose de sa propre repr´esentation du probl`eme. Le tableau 7.2 expose les diff´erences conceptuelles entre les deux simulateurs.

Tableau 7.2 Comparaison de Leopar++ et Jade

Leopar++ Jade

Coordination Agents Langage Ac

kext FIPA-SL

Communication agents

Tableau noir Communication asynchrone Raisonnement agents Syst`eme expert et

code Java

Code java Mod`ele de donn´ees CIM v14 CIM v14

Nombre d’agents 5 5

Donn´ees de simula- tion

Distribu´ees Distribu´ees

Pour r´esumer, il existe trois diff´erences entre les deux syst`emes. Premi`erement, le mode de communication est plus simple sous Leopar++. Cela est dˆu `a l’utilisation du tableau noir comme principal moyen de communication. De plus, le volume des donn´ees ´echang´ees entre les agents est moins important lorsqu’il y a utilisation du tableau noir. Dans le cas de Jade, il ´etait important de s’assurer que tous les agents mettent `a jour leurs donn´ees. Deuxi`emement, le protocole de coordination est centralis´e sous Leopar++ et il est distribu´e dans les agents sous Jade. Le fait que le m´ecanisme de coordination soit distribu´e rend la modification des objectifs globaux du syst`eme plus difficile. En effet, `a l’aide de Ackext, il est beaucoup plus facile de sp´ecifier des objectifs diff´erents et d’obtenir des plans d’ex´ecutions correspondants. En ce qui concerne la troisi`eme diff´erence, elle r´eside dans la mani`ere de concevoir le m´ecanisme de coordination des agents du syst`eme. En effet, sous Jade, l’ajout, la modification ou la suppression d’un nouvel agent n´ecessite de connaitre les autres agents

du syst`eme, leur protocole de communication et leurs types d’interactions. Dans le cas de la version Leopar++, l’ajout d’un nouvel agent n´ecessite de connaitre les donn´ees sur lesquels agit l’agent. Cette propri´et´e rend plus ais´ee l’introduction, la modification et la suppression de nouveaux agents du syst`eme.

`

A la figure 7.6, nous comparons les performances des deux syst`emes en termes de temps d’ex´ecution pour des simulations Monte-Carlo s’´etendant sur une p´eriode allant de 1 an `a 100 ans. Le r´eseau test´e est compos´e de 1022 composants.

Figure 7.6 Comparatif des performances globales de Jade et Leopar++

La figure 7.7 compare les deux syst`emes en termes de temps d’ex´ecution pour des simu- lations avec un nombre d’agents croissant. Les simulations d´ebutent avec un seul agent et atteignent un maximum de 45 agents. Le r´eseau test´e est compos´e de 1022 composants.

Nous en concluant que Leopar++ est aussi performant que le syst`eme d´evelopp´e en Jade. Pour des simulations s’´etalant sur plusieurs ann´ees, Leopar++ surpasse l´eg`erement Jade. Toutefois, la grande diff´erence entre les deux syst`emes se retrouve dans l’architecture :

1. Leopar++ offre une architecture accessible. La coordination entre les agents est cen- tralis´ee, elle se fait `a l’aide d’un langage de haut niveau et il devient ais´e d’int´egrer de nouveaux agents.

2. La programmation des agents est plus ais´ee sur Leopar++ que Jade et plus g´en´era- lement les syst`emes multiagents classiques. En effet, les agents de Leopar++ ne com- muniquent pas directement entre eux, mais via la modification du bassin central de donn´ees qu’est le tableau noir.

Figure 7.7 Comparatif des performances des agents de Jade et Leopar++

Pour conclure ce chapitre, nous avons compar´e notre syst`eme Leopar++ `a des syst`emes de simulation ´electrique r´ecents. Le tableau 7.3 pr´esente un r´ecapitulatif et une vue de haut niveau des architectures ´etudi´ees. Pour connaitre les d´etails de ces syst`emes, nous invitons le lecteur `a se r´ef´erer `a la partie annexe A.

Tableau 7.3 Comparaison de syst`emes de simulation ´electrique Simulateur Domaine Mode coor-

dination

Environnement Test

RMC Micro-r´eseau FIPA-ACL Jade Cas r´eel

CM Micro-r´eseau Multi-

niveau

Jade Cas r´eel

FACTS Source d’´ener- gie

Agents typ´es Jade Cas

simple

IADSRP Micro r´eseau BDI Jade Cas

simple

BSR Isolation panne FIPA-ACL Zeus Cas

simple COMMA Transformateur SMA mul-

tiple

– –

Une premi`ere lecture de ce tableau fait ressortir que les syst`emes de simulation ´electrique adoptent g´en´eralement l’architecture Jade. Cons´equemment, les mod`eles de coordination sont complexes et n´ecessitent des connaissances avanc´ees en syst`emes multiagents, ce qui rend d´e- licat toute extension future du syst`eme. Dans le cas de Leopar++, l’utilisation du langage

d’actions permet une coordination plus ais´ee. En effet, une comparaison qualitative du code de coordination de Jade et de Leopar++ r´ev`ele que ce dernier offre un m´ecanisme de co- ordination plus compacte et beaucoup plus compr´ehensible. Le tableau suivant 7.4 compare deux portions de codes identique, l’un d´evelopp´e sous Jade selon Fipa-ACL et l’autre avec les langages d’actions. Dans le cas pr´esent, il s’agit d’un exemple simple o`u l’agent re¸coit un message, le traite et par la suite r´epond `a son interlocuteur.

Tableau 7.4 Code de coordination Leopar++ et Jade Syst`eme Code

Leopar++ causes(reparation, Reparer, Reparer). Jade msg = receive() ;// reception msg

if (msg !=null){ //tester msg non vide

if(msg.getPerformative() == ACLMessage.INFORM){

if(msg.getConversationId().equals(”reparation”)){//d´eterminer type msg Network netState = startFailureRestoration() ; // proc´edure r´eparation reply = msg.createReply() ; // cr´eation r´eponse

reply.addReceiver(msg.getSender()) ; // sp´ecifier destinataire reply.setPerformative(ACLMessage.AGREE) ;//sp´ecifier type msg reply.setContent(netState) ;// sp´ecifier contenu message

myAgent.send(reply) ; // envoie message exp´editeur } } } // fin proc´edure r´eparation