Você está na página 1de 11

Sistemas Multiagentes Baseados em Modelagem por Redes de

Petri: um estudo de caso


Fabio Aiub Sperotto1, Andr Mendes da Rosa2, Diana F. Adamatti1,2
1

Programa de Ps-Graduao em Modelagem Computacional


Programa de Ps-Graduao em Engenharia da Computao
Universidade Federal do Rio Grande (FURG)
Caixa Postal 96203-900 - Rio Grande - RS - Brasil

{fabio.aiub,seteeng,dianaada}@gmail.com

Abstract. This paper presents a Petri net as a support tool in the construction
of Multiagent Systems (MAS). This study uses this tool to model the structures
of the MAS in order to design a graphical view of rules and cooperation of
agents involved in solving a problem. The case study is the combat to fire by
two firefighters. In the codification of MAS, the Jason platform with
AgentSpeak(L) language is used.
Resumo. No artigo desenvolve-se uma rede de Petri como ferramenta de apoio
na construo de Sistemas Multiagentes (SMA). O estudo utiliza esta
ferramenta para modelar as estruturas do SMA com objetivo de conceber
graficamente uma viso sobre regras e cooperao dos agentes envolvidos na
resoluo de um problema. O estudo de caso utilizado o combate a incndio
com dois bombeiros. Na codificao do SMA utilizada a plataforma Jason
com AgentSpeak(L).

1. Introduo
No desenvolvimento de modelos computacionais, ferramentas tm sido utilizadas para
auxiliar aos programadores e demais especialistas na construo de sistemas. Desde a
fase de concepo de um sistema at a sua implementao, existe uma preocupao da
organizao dos desenvolvedores na utilizao de ferramentas que possam auxiliar ou
cooperar umas com as outras na anlise e construo.
Em Sistemas Multiagentes, so construdos sistemas, onde entidades
computacionais cooperam entre si para resolver um determinado problema [Appio e
Hbner, 2005]. So sistemas que podem possuir atividades dos agentes, aspectos de
controle, fluxo de informaes ou mensagens.
A rede de Petri uma ferramenta que mesmo possuindo um formalismo
matemtico no possui uma rigidez fsica nos termos utilizados em sua estrutura [Zhou

e DiCesare, 1993]. O desenvolvedor, para qualquer domnio, pode fornecer a sua


prpria interpretao sobre as atividades e fluxo de informaes no domnio, em uma
modelagem grfica.
Este trabalho apresenta a utilizao e cooperao da rede de Petri na modelagem e
construo de Sistemas Multiagentes, verificando o fluxo de informaes, obstculos e
atividades na modelagem antes da implementao do sistema em si. O artigo est
estruturado nas seguintes sees: na seo 2 so descritas as tcnicas utilizadas no
trabalho, como os conceitos de Sistemas Multiagentes, redes Petri e a plataforma Jason,
utilizada na codificao do sistema. A seo 3 descreve trabalhos relacionando redes
Petri e Sistemas Multiagentes que a motivao deste trabalho. Na seo 4
desenvolvida a proposta mostrando a utilizao das tcnicas sobre um estudo de caso de
dois agentes bombeiros apagando focos de incndio.

2. Tcnicas
2.1 Sistemas Multiagentes
O Agente uma entidade software que possui ao autnoma e que est inserido em um
determinado ambiente, da qual percebe caractersticas deste meio, cooperando com
outros agentes para atingir seu objetivo [Wooldridge, 2002; Bordini et al., 2001]. Estes
agentes possuem implementaes de noes mentais ou de percepes, normalmente
humanas, tais como crenas e intenes [Wooldridge e Jennings, 1994].
Sobre os objetivos, os agentes podem cooperar ou competir dentro de um
ambiente e propositalmente em algum momento vo interagir conversando uns com os
outros [Huhns e Singh, 1997]. Para o conjunto destes agentes e suas interaes dado o
nome de Sistema Multiagentes (SMA) [Zambonelli et al., 2003]. um campo de
bastante interesse, tanto para a representao social quanto para a resoluo distribuda
de problemas. Atravs destas interaes, os agentes formulam o que compreendem
sobre seu ambiente e buscam continuamente a conquista (resoluo) de seu objetivo
(problema).

2.2 Jason
Para a implementao de uma SMA as propriedades referente a objetivos e interaes
devem ser consideradas no desenvolvimento computacional. A linguagem de
programao abstrata AgentSpeak(L) descreve como implementar eventos e aes sobre
o comportamento do agente com seu ambiente [Rao, 1996], ou seja, na implementao
de agentes BDI (Belief-Desire-Intention ou Crena-Desejo-Inteno).
Jason1 um interpretador baseado em Java e uma extenso da linguagem
AgentSpeak(L). Segundo Bordini e colaboradores (2007) possui os seguintes requisitos:
1

http://jason.sourceforge.net/wp/

A linguagem deve apoiar a delegao em nvel de objetivos.


A linguagem deve fornecer mecanismos para resolver problemas orientados a
estes objetivos (ao dos agentes no cumprimento do dever).
A linguagem deve servir na produo de sistemas sensveis ao ambiente.
A linguagem deve integrar os aspectos de orientao a objetivo com
comportamento de respostas dos agentes.
A linguagem deve apoiar o conhecimento em nvel de comunicao e
cooperao.
Desta forma Jason uma plataforma que cumpre com as necessidades de
desenvolvimento de SMA, considerando todas as caractersticas dos agentes, como
crenas, comunicao e tambm da possibilidade de desenvolvimento do ambiente da
quais estes possam interagir.

2.3 Redes de Petri


A rede Petri pode ser considerada como uma ferramenta matemtica e grfica, til no
estudo de processamento de informaes em sistemas que possuam caractersticas como
assncrono, concorrente, distribudo, no determinstico, e/ou estocstico [Murata,
1989]. um grafo pibartido [Cassandras e Lafortune, 2008], do qual pode ser definido
como: (P,T,A,w)

P o conjunto de lugares, os ns do grafo.

T o conjunto de transies (outro tipo de n do grafo).

A (P T)(T P), o conjunto dos arcos que vo de transio para lugar e


lugar para transio (bipartio refere-se a esta caracterstica do grafo).

w a funo peso dos arcos.

Nestes lugares podem constar fichas, que descrevem informaes ou atividades,


representando o fluxo da rede de Petri. Aliado a este conceito tambm existe as redes de
Petri coloridas. So redes que possuem maior expressividade dos processos que
ocorrem pelo fluxo da rede em nvel de dados, tal e qual uma linguagem de
programao pode representar, sendo que a cor um tipo de dado especfico [Borges,
2008]. As fichas nas redes Coloridas so associadas com dados especficos.
Desta forma, essa tcnica tem sido utilizada para modelar computacionalmente
sistemas representando seus processos, transies, utilizao de recursos, delimitadores
e outras caractersticas importantes para o funcionamento do objeto estudado.

3. Redes de Petri e SMA


Em sistemas multiagentes podem ser encontrados trabalhos que utilizem redes de
Petri. Como o estudo em [Linder, 2007], que trata da modelagem comportamental de
agentes na competio de futebol de robs, utilizando a rede de Petri na modelagem das
jogadas. As redes tambm podem ser utilizadas em protocolos de interao entre
agentes [Cabac e Moldt, 2004; Bai et al., 2004].
Outra aplicao encontrada na modelagem de SMA, utilizando redes de Petri, no
sentido de representar as propriedades fundamentais do sistema, antes do
desenvolvimento das simulaes [Celaya et al., 2009]. No estudo, os autores descrevem
as caractersticas do SMA que se assemelham a sistemas modelados pelas redes Petri.
Atravs disto, formalizam o modelo e como representa metodicamente o SMA em Petri.
O modelo torna-se til como mtodo de anlise preliminar estrutural do SMA.
Outro estudo referente a um sistema industrial que utiliza agentes para o
controle e gerenciamento de produo de metais [Fernandes e Belo, 1998]. Os autores
consideram o uso de redes Petri Coloridas para modelar o comportamento dos agentes
internos e externos da produo, devido necessidade de criar um sistema mais robusto
resistente a retenes ou conflitos. Incluindo nesta necessidade do uso da rede de Petri,
como modelagem visual dos eventos.
Em Cost e colaboradores (1999) so desenvolvidos estudos na modelagem de
conversas entre Agentes utilizando redes de Petri Coloridas. Dois modelos so
formalizados: registro de conversas e negociao entre agentes. Cada transio da rede
responsvel em disparar para um ou mais estados/lugares uma determinada condio.
Essas condies, dependendo do que receberem como entrada, pode ser um erro de
comunicao onde o protocolo tem como responsabilidade retornar uma mensagem ao
agente de origem relatando o problema. Os estados tambm podem representar recursos,
como arquivamento de identificadores para que no disparo de transies de respostas o
recurso identificador dos agentes origem e destinatrio possa ser reutilizado.
Padilha e Jacom (2002) investigam a modelagem de agentes em sistemas
educacionais e usam Redes de Petri devido a duas principais propriedades das mesmas,
a vivacidade, onde qualquer estado do sistema pode ser acessvel devido ao sistema ser
livre de deadlocks (impasses) e reinicibilidade, sendo que o sistema pode retornar ao seu
estado inicial mesmo aps a execuo de uma ou mais tarefas. As Redes de Petri so
usadas, principalmente, para representao de mecanismos paralelos.
O estudo de Silva e colaboradores (2010) mostra a possibilidade de uma
sistematizao na anlise de rotinas organizacionais, com a possibilidade da deteco de
desvios nessas rotinas podendo auxiliar a antecipao da ocorrncia de aes, fatos ou
eventos inesperados no futuro, onde as Redes de Petri so utilizadas para desenvolver

um mtodo para especificao de rotinas. O trabalho estuda as rotinas de um ambiente


familiar, visando analisar o consumo de energia. Onde pode-se ter nesse ambiente
familiar, diversas situaes que podem aumentar ou diminuir o consumo de energia,
dependendo dos desvios que podem ocorrer nessas rotinas.
Vrios trabalhos relacionam redes de Petri com sistemas multiagentes. Entretanto
nem todos formalizam e integram os componentes caractersticos de ambas as reas.
Alguns estudos utilizam a modelagem conceitual da estrutura do SMA, enquanto outros
aprofundam essas estruturas, tambm conceitualmente, adicionando a representao dos
aspectos de interao e eventos entre agentes em modelo de Petri. O foco deste trabalho
na utilizao das redes de Petri como ferramenta auxiliar no desenvolvimento de
sistemas multiagentes.

4. Estudo de Caso Proposto


4.1 Modelagem em Petri

Figura 1. Modelagem do SMA em rede de Petri.

O estudo apresentado aqui tem como objetivo o alinhamento da rede de Petri para
auxiliar o desenvolvimento de sistemas multiagentes. A representao entre SMA e rede
Petri se baseia no modelo proposto em Celaya e colaboradores (2009). O lugar modela
uma atividade em particular. A ficha especifica a realizao de uma atividade. A
transio modela o fim de uma atividade de um agente. O disparo da transio indica
que o agente terminou a atividade do lugar anterior transio e iniciou a posterior da
transio. O estudo de caso a ser utilizado um sistema simples onde dois bombeiros
interagem em um ambiente para controlar um incndio. Para a modelagem, simulao e
visualizao grfica da rede, utilizado o editor PIPE2.

http://pipe2.sourceforge.net/

No sistema multiagente da Figura 1, o bombeiro 2 responsvel em acessar o


lugar para reabastecer os equipamentos de gua (neste exemplo considera-se somente o
uso de baldes) e leva at o ponto de troca onde o bombeiro 1 tem como misso apagar o
incndio. As transies T1 e T6 relacionam o disparo de momentos envolvendo as
atividades: encher balde de gua no hidrante e apagar incndio, respectivamente. Na
transio T3 tem-se as atividades para a troca de baldes onde bombeiro 2 a esquerda
entrega um equipamento cheio e na esquerda o bombeiro 1 entrega equipamento vazio.
As crenas e intenes que permeiam o agente bombeiro 1 so relacionadas em:
na existncia de incndio, ir at o ponto de troca, conseguir um balde cheio de gua e s
ento se direcionar ao local do incndio. Para isso em P8 modelado um recurso de
rede Petri onde o mximo de unidades k = 1, ou seja, o bombeiro que ir apagar
incndio vai aguardar at que o outro agente fornea um balde de gua cheio.

4.2 Aplicao
Atravs da modelagem do sistema em rede Petri possvel visualizar algumas estruturas
chaves e controles necessrios para implementar o SMA. Existem atividades a serem
cumpridas para cada um dos dois agentes envolvidos no sistema, assim como uma
restrio para o equipamento com gua. Atravs da modelagem, conferida com algumas
simulaes da rede Petri, verifica-se que alm de estruturada as propriedades, os agentes
tambm, em alguns estados, podem trabalhar simultaneamente, em outros no. Como
o caso do bombeiro encarregado de manter equipamento com gua, que vai esperar por
execuo do bombeiro no combate do incndio e tambm para repor mais gua,
aguardando prximo ao lugar que seria prximo ao hidrante.
Analisando estas simulaes, so implementadas em Jason algumas funes,
crenas e comunicaes, baseado no modelo em Petri. Ordenada conforme os fatos
ocorrem no modelo temos que o sistema inicia em bombeiro 1 com:
+!start : true <+contFogo(5);
.send(bombeiro2,tell,incendio).

Onde a simulao iniciada (!start), o bombeiro 1 avista os focos de incndio e


acredita que so cinco (isto especfico neste exemplo, pois poderia ser utilizado o
mtodo .random() para que o agente descreva aleatoriamente quantos focos
visualiza). Em seguida se comunica com bombeiro 2 avisando do incndio. Em
bombeiro 2 temos que:
+incendio[source(A)] <.print("Mensagem de incndio recebida de ",A);
!encherAgua.
+!encherAgua : true <.print("Pegando Agua...");

.wait(1000);
.print("Enchendo ...");
.wait(2000);
.send(bombeiro1,achieve,baldeCheio).

O agente bombeiro 2 recebe o aviso sobre o incndio, devido a primitiva tell no


mtodo .send(), a crena sobre incndio adicionada direto em sua base de crenas.
Em seguida, aciona seu plano !encherAgua para abastecer o equipamento no hidrante.
Os tempos de 1000ms e 2000ms inseridos nos mtodos .wait() so de acordo com o
tempo levado pelo bombeiro 2 em chegar at o hidrante, encher o balde de gua e
retornar ao ponto de troca. Quando realiza a sua tarefa, avisa ao agente bombeiro 1
sobre a entrega do balde cheio de gua, atravs tambm de um mtodo .send()
entretanto usa a primitiva achieve, para que o destinatrio da mensagem inclua a
atividade com baldeCheio em sua lista de eventos. Bombeiro 1 aciona portanto:
+!baldeCheio: not baldeCheio <+baldeCheio;
.print("Indo at incndio.");
.wait(2000);
!carry_to(bombeiro2).

Sendo que o bombeiro 1 se possuir a crena no balde cheio, este leva 2000ms para
chegar ao incndio e utilizar a gua. Em seguida retorna at o agente bombeiro 2 que j
est no ponto de troca, conforme movimento de estados simulados na rede de Petri.
Os agentes ficam interagindo com estes planos, bombeiro 1 fica percorrendo todo
o ambiente at que todos os focos de incndios sejam controlados, avisando para
bombeiro 2 se precisa de gua ou se j conseguiu controlar o incndio conforme plano
abaixo.
+!caminhada: baldeCheio & incendio(bombeiro1) <apaga(fogo);
-incendio(bombeiro1);
-baldeCheio;
.print("Sem gua, retornando ao ponto de troca");
?contFogo(X);
-+contFogo(X - 1);
.print(X," focos de incndio!");
if(X > 0.0){
.send(bombeiro2,achieve,encherAgua);
}else{
.print("Incndio controlado!");
.send(bombeiro2,tell,incendioControlado);
}.

O ambiente foi desenvolvido na plataforma Jason, em Java, atravs de uma matriz


onde os agentes percorrem as posies at apagar todos os focos de incndio, utilizando
as bibliotecas de Grid de Jason.environment. A nica crena inicial para todos os
agentes a posio da matriz para a troca de baldes que programada antes do incio da
simulao, que nas coordenadas do bombeiro 2. Toda a matriz visualizada na Figura
2.

Figura 2. Visualizao grfica do sistema.

Figura 3. Visualizao das mensagens dos agentes no MAS Console do Jason.

Conforme visualizado na modelagem em Petri das atividades dos bombeiros,


algumas aes dos agentes dependem das trocas de mensagens uns aos outros. Na
Figura 3 pode ser observado que, alm da utilizao dos mtodos .send(), tambm so
exibidas, na tela de console do ambiente Jason, outras mensagens para que usurios do
SMA possam acompanhar o trabalho dos agentes.

5. Concluso
Atravs do desenvolvimento do projeto observa-se um alinhamento entre a rede
Petri e o desenvolvimento de Sistemas Multiagentes. Redes de Petri tornaram-se um
bom mtodo para modelar e observar situaes ou eventos discretos sobre o sistema de
agentes. Favorecendo um ganho de tempo na modelagem e avaliao das estruturas do
ambiente do SMA antes das decises de codificao.
Como a tcnica proporciona um desenho sobre as estruturas do sistema proposto,
facilita aos desenvolvedores tomar decises em quais situaes seriam necessrias troca
de mensagens ou quais pontos de bloqueio deveriam ser cuidados no momento da
implementao. Assim, atravs destas observaes, propriedades de comunicao e
interaes entre os agentes podem ser visualizadas mais facilmente para a obteno do
sistema completo.

Referncias
Appio, A. R.; Hbner, J. F. (2005) Sistema Multiagentes Utilizando a Linguagem
AgentSpeak(L) para Criar Estratgias de Armadilha e Cooperao em um Jogo Tipo
PacMan. XIV Seminrio de Computao, Universidade Regional de Blumenau, 127138pp.
Bai, Q.; Zhang, M.; Win, K. T. (2004) A Colored Petri Net Based Approach for Multiagent Interactions. 2nd International Conference on Autonomous Robots and Agents,
152-157pp.
Bordini, R. H.; Vieira, R.; Moreira, . F. (2001) Fundamentos de Sistemas
Multiagentes. In Ferreira, C. E., ed., Anais do XXI Congresso da Sociedade
Brasileira de Computao (SBC2001), Volume 2, XX Jornada de Atualizao em
Informtica (JAI), 30 de julho - 3 de agosto, Fortaleza-CE, Brasil, 1-39pp.
Bordini, R. H.; Hubner, J. F.; Wooldridge, M. Programming multi-agent systems in
AgentSpeak using Jason. Ed. John Wiley & Sons Ltd., 2007, 1-261pp.
Borges, G. A. P. Fluxo de dados em redes de Petri coloridas em grafos orientados a
atores. Dissertao de Mestrado em Cincia da Computao. Instituto de Matemtica
e Estatstica da Universidade de So Paulo, 2008, 1-74pp.

Cabac, L.; Moldt, D. (2004) Formal semantics for AUML agent interaction protocol
diagrams. Proceedings of AOSE, 47-61pp.
Cassandras, C. G.; Lafortune S. Introduction to Discrete Event Systems. Ed. Springer,
2008, Cap. 4, 223-266pp.
Celaya, J. R.; Desrochers, A. A.; Graves, R. J. (2009) Modeling and Analysis of Multiagent Systems using Petri Nets. Journal of Computers, Vol. 4, N. 10, 981-996pp.
Cost, R. S.; Chen, Y.; Finin, T.; Labrou, Y.; Peng, Y. (1999) Modeling Agent
Conversations with Colored Petri Nets. Working Notes of the Workshop on
Specifying and Implementing Conversation Policies, Autonomous Agents, 1-8pp.
Fernandes, J. M.; Belo, O. (1998) Modeling Multi-Agent Systems Activities Through
Colored Petri Nets: An Industrial Production System Case Study. 16th IASTED
International Conference on Applied Infomatics, 1-4pp.
Huhns, M. N.; Singh, M. P. (1997) Conversational Agents. IEEE Internet Computing,
vol. 1, N. 2, 73-75pp.
Linder, M. S.; Costa, A. L. (2007) Modelagem Comportamental de Sistemas
Multiagentes. Anais do XXVII Congresso da SBC. VI ENIA - Encontro Nacional de
Inteligncia Artificial, 1172-1181pp.
Murata, T. (1989) Petri Nets: Properties, Analysis and Applications. Proceedings of
IEEE, Vol. 77, N. 4, 541-580pp.
Padilha, T. P. P.; Jacom, T. F. (2002) O Uso de Tcnicas de Modelagem de Agentes
em Ambientes Educacionais. VI Congresso Iberoamericano, IV Simpsio
Internacional de Informtica Educativa, VII Taller Internacional de Informtica
Educativa, 226-229pp.
Rao, A. S. (1996) AgentSpeak(L): BDI Agents Speak Out in a Logical Computable
Language. 7th European Workshop on Modelling Autonomous Agents in a MultiAgent World, 42-55pp.
Silva, C. E. O.; Dimuro, G. P.; Costa, A. C. R. (2010) Especificando Rotinas
Organizacionais de Sistemas Multiagentes: Deteco de Desvios com Base no
Conceito de Expectativa. IV Workshop Escola de Sistemas de Agentes, seus
Ambientes e apliCaes IV WESAAC. 139-142pp.
Wooldridge, M. J. (2002) An Introduction to Multiagent Systems. Ed. John Wiley &
Sons Ltd. Inglaterra, 1-362pp.
Wooldridge, M.; Jennings, N. R. (1994) Intelligent Agents: Theory and Practice.
Knowledge Engineering Review, Vol. 10, N. 2. 115-152pp.
Zambonelli, F.; Jennings, N. R.; Wooldridge,M. (2003) Developing Multiagent
Systems: The Gaia Methodology. ACM Transactions on Software Engineering and
Methodology, Vol. 12, No. 3, 317-370pp.

Zhou, M.; DiCesare, F. Petri Net Synthesis for Discrete Event Control of Manufacturing
Systems. Ed. Kluwer Academic Publishers, 1993, 1-229p.