Você está na página 1de 6

Rede de Petri Colorida

Joicymara S. Xavier
Mestrado em Cincia da Computao Universidade Federal de Uberlndia Uberlndia - Brasil joicy.xavier7@gmail.com Resumo Este artigo tem como objetivo apresentar os conceitos e modelagem das redes de Petri coloridas. Para melhor compreenso, primeiro dada a definio e exemplos das redes de Petri ordinrias e logo aps apresentado as redes de Petri coloridas. Palavras-chaveRedes de Petri, redes de Petri coloridas.

Sua teoria nasceu da tese, intitulada Comunicao com autmatos, defendida por Carl Adam Petri em 1962 na Universidade de Darmstadt, Alemanha [1].

A. Definio formal de uma rede de Petri A definio formal de uma rede de Petri dada por uma qudrupla: R = < P, T, Pre, Post> onde: P um conjunto finito de lugares de dimenso n; T um conjunto finito de transies de dimenso m; Pre: P x T N a aplicao de entrada (lugares precedentes ou incidncia anterior), com N sendo o conjunto dos nmeros naturais; Post: P x T N a aplicao de sada (lugares seguintes ou incidncia posterior). As transies T representam as tarefas realizadas pelo sistema modelado, enquanto os lugares P representam variveis de estado do sistema [1]. (1)

I.

INTRODUO

A rede de Petri uma ferramenta grfica e matemtica que se adapta bem a um grande nmero de aplicaes em que as noes de eventos e de evolues so importantes [1]. Sua teoria nasceu da tese, intitulada Comunicao com autmatos, defendida por Carl Adam Petri em 1962 na Universidade de Darmstadt, Alemanha [1]. O modelo proposto por Petri chamou a ateno de vrios pesquisadores e, ao longo dos anos, foi se tornando cada vez mais difundido. Diversas propostas de extenses ao modelo original foram feitas, causando o surgimento de novos tipos de redes de Petri como as redes de Petri temporizadas, as estocsticas, as coloridas, entre outras. Este artigo tem como objetivo apresentar os conceitos e modelagem das redes de Petri coloridas. Para melhor compreenso do leitor, primeiro dada a definio e exemplos das redes de Petri ordinrias e logo aps so apresentadas as redes de Petri coloridas.

B. Rede de Petri marcada O funcionamento de uma rede de Petri controlado por meio de fichas (tokens), dispostas nos lugares, e tambm pelo peso associado s transies. Uma rede de Petri marcada N uma dupla N = <R, M> Onde: R uma rede de Petri; M a marcao inicial. A marcao M a distribuio das fichas nos lugares, sendo representada por um vetor coluna cuja dimenso o nmero de lugares e elementos M(p), onde p o lugar de entrada. Apresenta-se a seguir um exemplo de redes de Petri para descrever seu funcionamento. (2)

II.

REDES DE PETRI

O termo redes de Petri denomina uma tcnica de especificao formal largamente difundida e adequada para sistemas com atividades paralelas, concorrentes, assncronas e no determinsticas [2]. As redes de Petri tm vrias aplicaes, dentre elas pode-se citar: avaliao de desempenho, anlise e verificao formal em sistemas discretos, protocolos de comunicao, controle de oficinas de fabricao, concepo de software de tempo real e/ou distribudo, sistemas de informao (organizao de empresas), sistemas de transporte, logstica, gerenciamento de base de dados, interface homem-mquina e multimdia [1].

Na Figura 1 utiliza-se um processo de atendimento a reclamaes no qual possvel identificar: as transies (registrar, pagar e enviar carta); os lugares ( Reclamao, Sob Avaliao e Pronto); os arcos de peso 1 e ainda marcas iniciais (no lugar Reclamao), representando trs reclamaes a serem atendidas. Uma transio T est habilitada se, e somente se, para todo lugar de entrada da transio, o lugar possuir um nmero de marcas superior ou igual ao peso do arco, ligando o lugar transio. Essa regra habilita o disparo de uma transio, mas no obrigatria (no-determinismo).

As redes de Petri coloridas mostram um formalismo adequado para aprofundar e entender o controle de dados em processos de negcios, devido possibilidade de representao de dados, o que no ocorre com as redes de Petri ordinrias [5]. As redes de Petri coloridas combinam a expressividade das redes de Petri com a expressividade das linguagens de programao. Redes de Petri oferecem primitivas para descrever sincronizao de processos concorrentes, enquanto linguagens de programao oferecem primitivas para definio de tipos de dados (conjunto de cores) e manipulao de dados [6]. A principal funcionalidade das redes de Petri coloridas a reduo do tamanho do modelo, permitindo que marcas distintas (de cores diferentes) representem diferentes processos ou recursos da mesma sub-rede. De um modo geral, as redes de Petri coloridas so compostas por trs partes [3]: Estrutura; Declaraes;

Fig. 1. Rede de Petri para atendimento de reclamaes

Inscries. A estrutura da rede colorida corresponde estrutura de uma rede de Petri ordinria, sendo formada pelos lugares, transies e arcos. Cada lugar possui um tipo de dado associado. Esse tipo indica o conjunto de valores que as fichas contidas neste lugar podem representar. O tipo de um lugar tambm chamado de seu conjunto de cores (color set). As declaraes definem os tipos e as variveis que sero utilizados na rede. Esta definio dada utilizando-se uma linguagem matemtica ou de programao. As inscries so anotaes associadas aos elementos da rede. Os tipos de inscries so diferentes para lugares, transies e arcos [3]: Inscries de lugares. Os lugares possuem trs tipos de inscries: nome, tipo e expresso de inicializao. O nome no possui valor semntico, sendo apenas um elemento que facilita a sua identificao. O tipo indica o conjunto de possveis valores associado ao lugar. O lugar s poder conter fichas com valores deste tipo. A expresso de inicializao, por sua vez, uma expresso escrita na linguagem de representao adotada. Esta expresso indica a marcao inicial a ser atribuda ao lugar. Inscries de transies. As transies possuem dois tipos de inscries: nome, que tambm no possui significado formal, e expresso guarda. Inscries de arcos. Os arcos possuem como inscrio apenas uma expresso. Essa expresso substitui o peso que existia nas redes anteriores. Seu papel semelhante: indica o conjunto de fichas que devem ser retirados ou adicionados aos lugares adjacentes este arco no caso do disparo da transio. Como agora as fichas armazenam valores, torna-se necessrio o uso de uma expresso mais complexa.

O disparo de uma transio subtrai marcas de todos os seus lugares de entrada (segundo o peso dos arcos ligando os lugares de entrada transio), acrescentando marcas em todos os seus lugares de sada (segundo o peso dos arcos ligando a transio aos seus lugares de sada). A Figura 2, a seguir, mostra o disparo da transio registrar, consumido uma marca do lugar de entrada Reclamao e acrescentando uma marca no lugar de sada Sob Avaliao.

Fig. 2. Disparo da transio registrar

III.

REDE DE PETRI COLORIDA

Nas redes de Petri ordinrias (Lugar/Transio), existe apenas um tipo de marca, no permitindo diferenciar recursos em um lugar. Ademais, as redes de Petri ordinrias no so hierrquicas, portanto, no permitem a construo de modelos a partir de submodelos separados com interfaces bem definidas [3]. Entre os anos 70 e 80, as redes de Petri foram estendidas considerando conceito de dados e hierarquia, originando, assim, as redes de Petri coloridas e hierrquicas [4]. As redes de Petri coloridas incorporam tipos de dados (conjunto de cores) para representao dos dados e podem utilizar a decomposio hierrquica, sem perder a consistncia das mesmas em relao s originais.

A. Definio formal Uma rede de Petri colorida associada a uma marcao inicial uma sxtupla dada por: Nc = < P, T, Cor, Csc,W, M0 > Onde: P um conjunto finito de lugares; T um conjunto finito de transies; Cor um conjunto finito de cores; Csc a funo sub-conjunto de cores que a cada lugar e a cada transio associa um sub-conjunto de Cor (as cores possveis para este lugar ou transio); W a funo de incidncia ; cada elemento W (p, t): Csc (t) x Csc (p) N; M0 a marcao inicial que associa, para cada lugar e para cada cor possvel neste lugar, um nmero de fichas M0 (p) : Csc(p) N. B. Associao de cores s fichas Com o objetivo de diferenciar as fichas, so associadas cores (nmeros inteiros ou conjunto de etiquetas) a estas. Como consequncia, a cada lugar se associa o conjunto de cores das fichas que podem pertencer a este lugar. Desta forma, um lugar na rede de Petri passou a representar no apenas uma certa condio, mas toda uma classe de situaes que podem se apresentar de diferentes formas, de acordo com os valores das fichas presentes em sua marcao. A cada transio se associa um conjunto de cores que corresponde s diferentes maneiras de disparar uma transio. Nos casos mais simples, quando todos os processos possuem rigorosamente a mesma estrutura e so independentes uns dos outros, as cores das transies so diretamente associadas aos processos, e o conjunto de cores dos lugares e das transies so idnticos. A Figura 3 apresenta um exemplo de rede de Petri colorida. Utilizar-se- um processo de atendimento a reclamaes, que aps o atendimento, computa clientes pagos e cartas enviadas e reporta ao responsvel pelo processo, exemplificando os diferentes tipos de fichas que podem existir numa rede de Petri colorida. possvel identificar [7]: Conjunto de cores com a definio dos tipos: R e INT com seus respectivos elementos e a declarao de variveis (ce, cp e tr) do tipo definido INT; Transies: registrar, pagar, enviar carta, reportar; Lugares: Reclamao, Sob avaliao, Carta enviada, Cliente pago e Pronto; Arcos dirigidos entre transies e lugares; (3)

Cor R associada aos lugares: Reclamao e Sob avaliao, e cor INT associada aos lugares: Carta enviada, Cliente pago e Pronto; Expresso de guarda [ce+cp>3] associada transio reportar, representando pr-condio para o disparo dessa transio. A tarefa reportar s pode ser realizada caso a quantidade de cartas enviadas mais a quantidade de clientes pagos exceda trs; Uma expresso de arco associada a cada arco da rede. Algumas possuem expresses fechadas (1`r e 1`0), enquanto outras utilizam expresses compostas por variveis do tipo associado ao lugar vinculado ao arco (ce, ce+1, cp, cp+1, tr, tr+ce+cp); Tambm definida a inicializao da rede, ou seja, quantidade e tipo de marcas apresentadas incialmente em cada lugar. O valor inicial do lugar Reclamao 10`r (dez fichas de valor r), que representa dez reclamaes a serem atendidas.

Fig. 3. Rede de Petri colorida para atendimento a reclamaes

De maneira semelhante rede de Petri ordinria, uma transio t est habilitada se, e somente se, para todo lugar de entrada de t, o lugar possuir um multiconjunto de fichas satisfazendo expresso associada ao arco que liga o lugar transio. Caso a transio possua expresso de guarda associada, esta tambm precisa ser satisfeita para que t seja habilitada. O disparo de uma transio subtrai fichas de todos os seus lugares de entrada (segundo as expresses associadas aos arcos ligando a transio aos seus lugares de sada).

C. Associao de funes aos arcos Numa rede colorida, as etiquetas dos arcos no so mais nmeros inteiros como no caso das redes ordinrias, mas funes que representam matrizes de inteiros. Para cada cor de uma transio necessrio descrever quais cores de fichas sero retiradas dos lugares de entrada (pr-condio) e quais

cores de fichas sero colocadas nos lugares de sada (pscondio). O conjunto imagem da funo (4), Pre, o conjunto N dos inteiros positivos que descreve quantas fichas de cada cor devem ser retiradas dos lugares de entrada quando a transio for disparada: Pre (p, t): Csc(t) x Csc(p) N

representadas por retngulos no-preenchidos (Fig.4.c). As expresses dos arcos (Fig.4.b) no recebem formatao especial. A inscrio 13 da inicializao do lugar rotulado por Nome representa um bag que contm um nico elemento de valor 3. O comportamento dinmico da rede de Petri colorida mantm o mesmo princpio original das redes de Petri, mas bem mais complexo. No exemplo demonstrado na Fig. 4, as expresses dos arcos no possuem variveis. So apenas expresses constantes. Nas redes coloridas, entretando, este o tipo menos comum de expresso. Em geral, o conjunto de arcos que entram ou saem de uma transio compartilham variveis livres entre si e suas expresses so definidas em funo destas. No momento da avaliao de uma transio, as variveis livres das expresses precisam ser associadas a valores. Essa associao chamada de ligao (binding) de variveis [3] [8].

(4)

De forma anloga, o conjunto imagem da funo (5), Post, o conjunto N que descreve quantas fichas de cada cor devem ser colocadas no lugar de sada quando a transio for disparada: Post (p, t): Csc(t) x Csc(p) N A partir das matrizes Pre e Post, define-se a matriz

(5)

E. Ligao de variveis (6) Pode-se notar que as redes de Petri coloridas so muito mais complexas que as outras classes de redes de Petri existentes. Esta complexidade se reflete na forma de simulao dessas redes. A simulao das redes coloridas incluem duas tarefas que no esto diretamente ligadas ao modelo da rede de Petri, mas sim sua linguagem de programao: Interpretao das notaes; Ligao de variveis livres. A interpretao das notaes necessria para a realizao dos clculos das expresses, assim como tambm para extrair o conjunto de variveis livres presentes nestas e para fazer a verificao de tipos de lugares. Uma vez que as variveis livres de todas as expresses envolvendo uma transio tenham sido encontradas, o necessrio atribuir-lhes valores, realizando as ligaes, de forma a habilitar as transies.

W (p,t) = Post (p, t) - Pre (p, t)

As matrizes Pre, Post e W so matrizes de matrizes, pois seus elementos (as etiquetas dos arcos), descritos por funes, so de fato matrizes cujas linhas so as maneiras de disparar as transies, e as colunas, as cores possveis nos lugares.

D. Trabalhando com uma rede de Petri colorida A Figura 4, a seguir, ilustra os elementos de uma rede de Petri colorida simples.

Fig. 4. Elementos de uma rede de Petri colorida

As declaraes so comumente escritas dentro de uma caixa de texto posicionada prximo rede (Fig. 4.d). Para facilitar a visualizao, as inscries so escritas de forma diferenciada. Aquelas que representam nomes so escritas utilizando-se fonte uniformemente espaada (como a tipografia das mquinas datilogrficas mecnicas). Para os lugares, os tipos so escritos em itlico e as expresses de inicializao so sublinhadas (Fig. 4.a). As expresses guarda das transies ficam entre colchetes. Observe que as transies so

Fig. 5. Caso simples de ligao

Esta tarefa em alguns casos pode ser simples. Na Figura 5, observa-se que basta atribuir varivel x um dos valores correspondentes s fichas no lugar P1, que so verde e azul. A expresso equivale funo identidade e, portanto, qualquer valor escolhido para x ir retornar ele mesmo como resultado da avaliao da expresso.

A seguir, a Figura 6 exemplifica uma situao em que h variveis livres.

Fig. 6. Rede de Petri colorida com variveis livres nas expresses dos arcos.

Fig. 7. Jantar dos Filsofos modelado em redes de Petri coloridas.

Conforme pode ser observado, o lugar P1 na Figura 6 possui tipo inteiro e contm 3 fichas, com os valores 2, 3 e 4. O tipo do lugar P2 um produto cartesiano de inteiro e string. Ele possui apenas uma ficha com a tupla (3,tera). As variveis n e d nas expresses so variveis livres. Para que possamos avaliar a condio da transio, precisamos atribuir valores a essas variveis. Esta atribuio chamada de ligao. Precisam procurar valores para n e d tais que tornem a transio T habilitada. Para a marcao inicial desta rede, a nica ligao que permite isto <n = 3, d = tera>. Pode-se notar que com esta ligao, existem fichas nas pr-condies com valores iguais aos valores resultantes da avaliao das expresses dos arcos de entrada da transio (neste caso o valor 3 para P1 e o valor (3, tera) para P2. Alm disso, a expresso guarda da transio satisfeita, pois n 1. Logo, a transio est habilitada na ligao fornecida. Diz-se que a ligao <n = 3, d = tera> habilita a transio T. O disparo da transio T sob esta ligao ir fazer com que a ficha de valor 3 seja removida de P1 e a ficha de valor (3, tera) seja removida de P2 e ento, conforme a expresso do arco de sada, uma ficha de valor tera seja adicionada ao lugar P3. Caso existissem outras ligaes para as variveis n e d que permitissem o disparo da transio T, qualquer uma delas poderia ser escolhida, de forma no-determinstica, para o disparo da transio.

Na Figura 7, os lugares representam os estados possveis para os filsofos (H para com fome, E para comendo e Th para pensando) e os recursos do sistema (no caso, os garfos representados por Fork). A varivel x indica o filsofo que ir passar para o estado comendo (E) e a varivel i indica o nmero de iteraes que j ocorreram. Na primeira iterao, o lugar H possui trs marcas (marcao inicial) que esto sublinhadas. Dependendo da atribuio dada varivel x, uma das trs expresses avaliada no arco que liga o lugar Fork transio t0. Assim, se, por exemplo, x = p, ento a expresso 1 f1 + 1 f2 avaliada e apenas a marcao 1(p, 0) do lugar H ir transio t0, significando que apenas o filsofo p ir passar para o estado comendo. Desta forma, para cada atribuio de x (p, q ou j) haver uma situao diferente, ou seja, uma marca diferente no lugar E (estado comendo). Apenas para efeito de comparao, apresenta-se tambm a Figura 8, ilustrando o mesmo problema da Figura 7, o jantar dos filosofos. S que na 8 [3], a representao utilizada segue a metodologia das redes de Petri ordinrias.

F. O Jantar dos Filsofos Para ilustrar a aplicao de redes de Petri coloridas, ser mostrada uma situao clssica de gerao de impasse: o jantar dos filsofos [9]. Essa situao consiste de trs filsofos que podem estar em trs estados diferentes: comendo, pensando ou com fome. Os filsofos esto volta de uma mesa, sendo que cada um deles tem sua frente um garfo e um prato de comida. So, no entanto, necessrios dois garfos para que um filsofo possa comer, ou seja, um filsofo precisa do seu garfo e do de seu vizinho. O impasse ocorrer quando todos os filsofos pegarem o garfo da direita e aguardarem a liberao do garfo da esquerda. A figura 7 [3] apresenta o jantar dos filsofos modelado em rede de Petri colorida.

Fig. 8. Jantar dos Filsofos em rede ordinria

A modelagem colorida, alm de evitar o impasse (o que tambm poderia ser obtido atravs de uma rede nodeterminstica), ainda possibilita uma representao mais clara e concisa ao modelo. A comparao evidencia o poder de conciso e clareza que as redes coloridas proporcionam, alm de permitir trabalharmos com conceitos relativos s linguagens de programao possibilitando a modelagem de sistemas complexos. IV. REFERNCIAS

[1] J. Cardoso e R. Valette, Redes de Petri, Florianpolis: Editora da UFSC,


1997.

[2] T. MURATA, Petri nets: Properties, analysis and applications,


Proceedings of the IEEE, vol. 77, n. 4, pp. 541-580, Abril 1989.

[3] P. R. M. MACIEL, R. D. LINS e P. R. F. CUNHA, Introduo s Redes

de Petri e Aplicaes, Campinas: Instituto de Computao: UNICAMP, 1996. Management, The Journal of Circuits, Systems and Computers, vol. 8, n. 1, pp. 1-53, 1998. Methods and Practical Use, vol. 1, Springer-Verlag, 1996.

[4] W. M. P. v. d. AALST, The Application of Petri Nets to Workflow [5] K. JENSEN, Coloured Petri Nets (2nd ed.): Basic concepts, Analysis

[6] L. M. KRISTENSEN, S. CHRISTENSEN e K. JENSEN, The

practitioner's guide to Coulored Petri nets, International Journal of Software Tools for Technology Transfer (STTT), vol. 2, pp. 98-132, 1998. orientados a atores, So Paulo, 2008.

[7] G. A. P. Borges, Fluxo de dados em redes de Petri coloridas e em grafos [8] K. JENSEN, An Introduction to the Theoretical Aspects of Coloured [9] A. S. TANENBAUM, Sistemas Operacionais Modernos, Rio de Janeiro:
Prentice-Hall do Brasil, 1995. Petri Nets., em Proceedings... Lecture Notes in Computer Science, Noordwijkerhout, The Netherlands: Springer-Verlag, 1994, pp. 230-272.