Redes de PETRI em Sistemas de Informação

Autor: Dante Carlos Antunes - GPT

Através das redes de Petri compactas é possível modelar os aspectos dinâmicos de um sistema de informação.

A modelagem de um sistema de informação a ser desenvolvido contempla três visões: a estática, a funcional e a dinâmica. A visão estática é atendida pela modelagem de dados ou objetos, a visão funcional é atendida pela modelagem das funções e fluxos de dados, e a visão dinâmica é atendida, em muitas abordagens metodológicas, pela modelagem de estado dos objetos.

A modelagem de dados ou objetos descreve a estrutura de entidades ou objetos do sistema, identificando as classes, os relacionamentos entre as classes, os atributos e, em orientação a objetos, também as operações das classes.

A modelagem funcional descreve as transformações que os dados sofrem no interior do sistema. A notação gráfica mais utilizada é o clássico diagrama de fluxo de dados.

A modelagem dinâmica descreve os aspectos de controle do sistema, especificando em que momento e em que condições as transições de estado dos objetos podem ocorrer. A notação gráfica mais utilizada é o Diagrama de Transição de Estados,

O presente artigo mostra como aplicar as redes de Petri compactas, descritas por Carlos A. Heuser em /HEU 90/, na modelagem dinâmica de um sistema de informação em lugar dos clássicos diagramas de transição de estados. As redes de Petri compactas são derivadas das redes de Petri elementares, encontrando nestas a sua fundamentação teórica.

Redes de Petri elementares

Uma rede de Petri é um grafo que possui dois tipos de nós. O primeiro, representado por um pequeno círculo, é denominado lugar e serve como depósito dos tokens ou marcas. O segundo, representado por um retângulo, é conhecido como conexão. Os arcos que ligam os nós do grafo são conhecidos como ramos. Os ramos ligam lugares a conexões, nunca lugares a lugares ou conexões a conexões, A figura 1 mostra uma rede de Petri elementar do tipo condição/evento, extraída de /HEU 90/, que modela um mercado de trabalho que, para efeito de simplificação, contém apenas duas vagas (v1 e v2) e uma pessoa (p). A rede apresentada contém os lugares: v1 no mercado, v2 no mercado, v1 livre, v2 livre, p detém v1, p detém v2, p livre e p no mercado e as dez conexões c1 a c10. A conexão c1 ao ser efetivada provoca o surgimento de um token ou marca nos lugares v1 no mercado e v1 livre. A efetivação de uma conexão é chamada de alteração. A ocorrência de uma alteração afeta apenas os lugares ligados à conexão, fazendo com que surjam e/ou desapareçam marcas destes lugares conforme estejam indicando as setas existentes nos ramos. Para que uma alteração possa ocorrer é necessário que a conexão esteja habilitada, isto é, que existam marcas presentes em todos os seus lugares de entrada e que os seus lugares de saída estejam vazios, isto é, as marcas estejam ausentes.

O conjunto de todos os lugares marcados (aqueles que possuam uma marca presente) é chamado de marcação da rede. Cada marca refere-se a um estado local do sistema modelado e a marcação representa o seu estado global. Cada vez que ocorre uma alteração na rede esta passa a apresentar uma nova marcação.

A fim de se compreender melhor o conceito de habilitação, tome-se como exemplo a conexão c5 da figura 1 que representa a ocupação da vaga v1 pela pessoa p. Esta conexão para ser efetivada necessita que as seguintes condições de habilitação sejam verdadeiras:

a) exista uma marca no lugar p livre, isto é, que a pessoa p esteja disponível;

b) exista uma marca no lugar v1 livre, isto é, que a vaga v1 não esteja ocupada;

c) não exista marca no lugar p detém v1, isto é, este lugar deve estar vazio:


A abordagem condição/evento

Uma forma de traduzir os conceitos formais das redes de Petri elementares, visando adequá-las a tratar as peculiaridades de um sistema de informação, é através da abordagem condição/evento. Conforme está em /HEU 90/ "dentro da interpretação Condição/ Evento, cada uma das marcas representa uma condição no modelo; a presença de uma marca na rede representa o vigorar da correspondente condição, enquanto que a ausência representa o não vigorar da correspondente condição: cada alteração definida pela rede é interpretada como sendo um evento da realidade modelada ... tomando como exemplo o mesmo caso do mercado de trabalho, verifica-se que as alterações representam os eventos do mercado de trabalho (Criar Vaga, Entrar no mercado, Fechar contrato, Rescindir contrato, etc.) e as marcas existentes ou não nos lugares representam condições do mercado (vaga livre, contrato em vigor, esc.)''. A tabela abaixo, extraída de /HEU 90/, mostra a correspondência entre a terminologia usada nas redes elementares e a terminologia dos modelos Condição/ Evento.

Rede Elementar Interpretação C/E
marca condição
presença da marca vigorar de condição
ausência de marca não vigorar de condição
marcação da rede estado do modelo
alteração evento
ocorrência de alteração ocorrência de evento
marca de entrada / saída condição de entrada / saída

Redes de Petri compactas

As redes compactas sob a abordagem condição/evento nada mais são que a consolidação de várias redes elementares, Enquanto que nas redes elementares os lugares e as conexões identificam explicitamente as entidades a que se referem, como pode ser visto na figura 1, as redes compactas generalizam lugares e conexões. Apoiadas em uma linguagem de anotação auxiliar, permitem referenciar em um mesmo lugar ou conexão todas as entidades que são afetadas por um determinado evento modelado.

As redes elementares, embora mais simples, são impraticáveis para modelar sistemas de informação. Neste tipo de sistema existem normalmente grandes quantidades de entidades de uma mesma classe que são afetadas pelos mesmos eventos. As redes elementares resultantes seriam enormes e proibitivas, como pode ser deduzido pelo exemplo do mercado de trabalho modelado na figura 1 que, se em vez de tratar apenas duas entidades (v1, e v2) da classe Vaga e uma entidade (p) da classe Pessoa, modelasse centenas de vagas e centenas de pessoas. Entretanto, são as redes elementares que dão sustentação formal às redes compactas. Qualquer rede compacta deve permitir que dela se derivem redes elementares. as quais são denominadas de redes elementares subjacentes.

As redes compactas só são possíveis porque aproveitam os padrões repetidos, resultantes dos eventos da realidade modelada. Por exemplo, o evento Rescindir contrato de um sistema de mercado de trabalho, em tese, é equivalente para todas as pessoas empregadas. Se, para cada empregado, este evento exigisse uma configuração diferente de rede, a compactação da rede teria resultado nulo pois produziria uma rede em relação a este evento de tamanho

semelhante à rede elementar subjacente, Contudo este tipo de personalização de um evento é raro em sistemas de informação, o que possibilita que se empregue satisfatoriamente a rede de Petri compacta para modelar os seus aspectos dinâmicos.

A figura 2, extraída de /HEU 90/, mostra uma rede compacta dentro da abordagem condição/evento que modela a aplicação do mercado do trabalho para quaisquer quantidades de vagas e pessoas que componham o universo do discurso. Como pode ser notado pelos nomes atribuídos aos lugares e conexões, não se explicita mais quais vagas e pessoas são tratadas pela rede. Isto fica implicitamente indicado pelas variáveis anotadas junto aos ramos. Todas as variáveis de todos os ramos ligados a uma determinada conexão são as variáveis desta conexão, as quais podem assumir qualquer valor dentro do especificado pelo domínio dos lugares que os respectivos ramos conectam. A conexão Fechar contrato, da figura 2. envolve as variáveis v e p. Supondo que o domínio C_Vaga contenha as entidades v1 e v2 e o domínio C-Pessoa contenha apenas a entidade p, esta rede é equivalente à rede elementar modelada na figura 1, o que significa que a rede elementar da figura 1 é a rede subjacente da mostrada na figura 2.

Na rede compacta. em vez de marcas o que vai ser "depositado` nos lugares são as próprias entidades, Por exemplo, caso a conexão Criar vaga seja efetivada para as duas vagas do domínio C-Vaga acima descrito, será provocado o surgimento das entidades v1 e v2 nos lugares vaga no mercado e vaga livre.



Tipos de ramos

Os ramos que ligam conexões a lugares possuem setas que determinam se o lugar, em relação à conexão, é de entrada ou de saída. Além disto, existem ramos que especificam alterações nos lugares e existem ramos que especificam apenas consultas aos lugares sem modificar o seu conteúdo. A figura 3 mostra as quatro possibilidades de ramos existentes.

Em uma rede compacta. um ramo alterador de entrada provoca a exclusão do conjunto de entidades especificado junto a ele do lugar conectado; um ramo alterador de saída, ao contrário, provoca a inclusão no lugar conectado. Os ramos restauradores não afetam o conteúdo dos lugares conectados. O ramo restaurador de entrada especifica que o conjunto de entidades anotado junto a ele deve existir no lugar respectivo. já o ramo restaurador de saída determina que o conjunto de entidades anotado junto a ele deve estar ausente do lugar respectivo.



Linguagem de anotação

Para consolidar várias redes elementares em uma rede compacta é necessário o auxílio de uma linguagem de anotação que formalize as anotações dos lugares, conexões e ramos da rede.

Heuser faz a seguinte introdução em /HEU 90/ sobre a linguagem de anotação (LA) e a sua utilidade:

"Quando criamos um modelo de sistema, identificamos, na realidade modelada, coisas, objetos, sobre os quais queremos falar em nosso modelo. A estes objetos damos a denominação de entidades. O conjunto de todas as entidades, que consideramos em um modelo, forma o Universo de Discurso (UD) deste modelo. Se estivéssemos, por exemplo, modelando um sistema de contas correntes, entre outras entidades, o UD poderia conter: contas correntes, saldos, lançamentos, pessoas, datas, agências bancárias e endereços.

Uma LA serve para escrever expressões acerca das entidades que compõem o UD. Estas expressões são de dois tipos:

* fórmulas, que designam os valores lógicos Falso e Verdadeiro, e

* termos, que designam, cada um, uma entidade do UD.

Assim, uma expressão que diga 'o saldo da conta 1025 é negativo', é uma fórmula. pois só pode designar um dos valores lógicos, Falso ou Verdadeiro. Já uma expressão que diga algo como 'o saldo da conta 1025' é um termo, pois designa uma das entidades do UD, no caso um saldo de conta corrente.

Em /HEU 90/ é descrita a sintaxe completa da Linguagem de Anotação, bem como a sua semântica. As formas de representação empregando LA mais utilizáveis são:

a) Individualização de uma entidade, que pode ser feita colocando uma variável entre chaves. É o caso da variável v anotada junto ao ramo que liga a conexão Fechar contrato ao lugar vaga livre da figura 2. Uma variável é uma palavra composta exclusivamente de letras minúsculas.

b) Especificação de conjuntos não fixos de entidades, representada através de variáveis que não estejam entre chaves. Por convenção devem ser representadas por palavras contendo exclusivamente letras minúsculas e eventualmente os símbolos "-" ou "_ " entre as letras. Um exemplo deste tipo de variável é cj_esp contido no modelo mostrado na figura 4, que representa um subconjunto de especialistas que irão avaliar um artigo.

c) Produto cartesiano entre dois termos cuja representação é a seguinte: <termo 1> x <termo2>, onde termo1 e termo2 podem ser variáveis, resultados de funções, constantes, etc.

d) Funções cuja representação é uma palavra contendo apenas letras maiúsculas. É o caso de AUTORES (art) que devolveria todos os autores que elaboraram o artigo indicado pela variável art.

e) Constantes que simbolizam entidades específicas. Devem ser representadas por palavras entre apóstrofos, exceto quando a constante for numérica. Exemplo de constantes deste tipo: 'amarelo', 1995, 'Diretoria'.

f) Constantes que representam conjuntos de entidades. São constantes especiais que devem ser simbolizadas por palavras antecedidas pelo prefixo C-. É o caso de C-Vaga e C-Pessoa da figura 2. Este tipo de constante representa um conjunto prefixado de entidades. Geralmente servem para especificar o domínio de lugares e, quando for necessário, para especificar o conjunto inicial de entidades de um lugar.

g) Especificação de entidades complexas compostas de outras entidades. Um exemplo é o elemento composto { pessoa, congr, } existente em dois ramos da figura 4. A forma de representar elementos compostos de outros é colocá-los entre o sinal < e o sinal > .



Habilitação e efetivação de alterações

Em uma rede de Petri, para que uma alteração definida em uma conexão ocorra, é necessário que as condições de habilitação sejam verdadeiras no momento da efetivação, caso contrário a conexão é considerada não habilitada e a alteração correspondente fica inibida.

As redes de Petri compactas, como qualquer rede de Petri, também apresentam regras de habilitação da alteração definida em uma conexão, quais sejam:

a) As entidades definidas nos ramos de entrada da conexão, sejam eles alteradores ou restauradores, devem estar presentes nos respectivos lugares.

b) As entidades definidas nos ramos de saída da conexão, sejam eles alteradores ou restauradores, devem estar ausentes dos respectivos lugares.

c) A fórmula da conexão, caso presente, deve resultar, sob a valoração em questão, em verdadeiro.

Só após cumpridas as regras de habilitação, uma alteração pode ocorrer, fazendo com que o conjunto de entidades especificado em cada ramo alterador de entrada desapareça do lugar respectivo e o conjunto de entidades especificado em cada ramo alterador de saída seja incluído no lugar respectivo.