Sunteți pe pagina 1din 21

Redes de Petri: Propriedades e Análise

Prof. Dr. Norian Marranghello

DCCE/IBILCE/UNESP

Agosto de 2005

Introdução:

O objetivo desta introdução é apresentar, brevemente, as redes de Petri (RdP), para que se possam estudar, na seqüência, suas propriedades e os métodos de análise correspondentes. Para aqueles que necessitarem de informações mais detalhadas sobre os conceitos básicos destas redes sugere-se a leitura da apostila “Redes de Petri: Conceitos e Aplicações”, disponível no URL:

http://www.dcce.ibilce.unesp.br/~norian/cursos/mds/ApostilaRdP-CA.pdf.

Redes de Petri constituem um formalismo matemático capaz de representar sistemas digitais em um nível de abstração bastante alto. Seu aspecto estrutural equivale a um grafo direcionado e bipartido composto por três elementos básicos, quais sejam, estados, ações e arcos. Os estados e as ações correspondem aos vértices do grafo, e os arcos às suas arestas. Os sub-conjuntos de estados e de ações são disjuntos, motivo pelo qual se diz que o grafo subjacente é bipartido. Cada um dos elementos do sub-conjunto de arcos, por sua vez, tem por origem um elemento do sub-conjunto de estados e por destino um elemento do sub-conjunto de ações, ou vice-versa. Por esta razão, o grafo é dito direcionado.

Os estados de uma RdP representam a parte estática do sistema modelado, isto é, cada um dos possíveis estados elementares pelos quais o sistema pode passar em alguma fase de seu funcionamento. As ações de uma RdP representam a parte dinâmica do sistema modelado, ou seja, cada uma das operações que o sistema pode executar no decorrer de sua existência. Os arcos de uma RdP representam a relação de fluxo entre estados e ações. Cada estado da RdP que serve de condição prévia para a ocorrência de determinada ação deve estar ligada a ela por um arco dirigido do estado para a ação. Cada estado da RdP

resultante da ocorrência de uma ação é, por sua vez, uma condição decorrente da operação (ou conjunto de operações) associada à ação e a ela deve estar ligado por um arco dirigido com origem na ação e destino no estado.

Fora esta visão estrutural, o comportamento de uma RdP pode ser analisado, para que se possa entender o funcionamento do sistema que se estiver modelando. Para se identificar quais as condições da RdP estão satisfeitas em cada instante do seu funcionamento, utilizam-se marcas nos estados correspondentes. A distribuição das marcas pelos estados da RdP em cada instante é dita marcação da rede.

Graficamente, representam-se os estados por elipses, as ações por retângulos, os arcos por setas e as marcas por pontos. As elipses, freqüentemente degeneram para círculos e os retângulos para quadrados ou para simples traços. Via de regra estas mudanças não influem no comportamento da rede ou no significado do objeto gráfico. Contudo, em alguns poucos casos a representação de ações por retângulos ou por traços podem significar comportamentos diferentes, em particular, em algumas extensões estocásticas. Os arcos, nestes casos, também podem ter suas terminações alteradas e, em vez de terminarem em setas, como é usual, podem terminar em pequenos círculos, representando uma mudança no seu significado.

As ações de uma RdP são potencialmente paralelas e assíncronas, isto é, uma vez satisfeitas as condições para a sua ocorrência, elas podem acontecer em qualquer instante independentemente umas das outras. Para que uma ação ocorra, todas as suas pré-condições devem estar satisfeitas e todas as suas pós- condições devem comportar o resultado de sua execução. A conseqüência da ocorrência de uma ação é a eliminação de um sub-conjunto de marcas existentes nos seus estados de entrada e a criação de outro sub-conjunto de marcas nos seus estados de saída.

Note-se que há mais de uma classe de RdP e muitas extensões em cada uma delas. Para cada extensão de RdP a regra geral de ocorrência de uma ação, enunciada no parágrafo anterior, pode sofrer algumas adaptações, restringindo-a ou relaxando-a.

Esta apostila está dividida em duas partes, quais sejam: uma primeira parte, na qual se estudam as várias propriedades das RdP, caracterizando-se as diversas situações pelas quais a rede pode passar; e uma segunda parte, na qual se estudam os métodos que podem ser utilizados para analisar o comportamento do modelo.

Propriedades:

As propriedades das RdP podem ser divididas em dois grandes grupos, quais sejam: as propriedades estáticas (ou estruturais) e as propriedades dinâmicas (ou comportamentais).

As propriedades estáticas das RdP são aquelas que têm a ver com a estrutura da rede e que não se modificam no transcurso de seu funcionamento. Elas não dependem do estágio de execução em que a rede se encontra, sendo, portanto, independentes da marcação da rede.

As propriedades dinâmicas das RdP são aquelas que têm a ver com o seu comportamento e que se modificam durante o funcionamento. Elas são essencialmente dependentes do estágio de execução em que a rede se encontra e são, por conseguinte, dependentes da marcação da rede.

Conservação

A propriedade de conservação corresponde ao caso no qual o número total

de marcas na rede não se modifica. Uma ação é dita conservativa se a soma dos arcos que a liga às suas pré-condições for igual à soma dos arcos que a liga às suas pós-condições. Desta forma, quando a ação for executada, nenhum recurso ligado a ela será criado ou eliminado. Se todas as ações de uma RdP forem conservativas, diz-se que a rede é estritamente conservativa.

A propriedade de conservação estrita é bastante restritiva, contudo, há

casos nos quais é possível se associar a cada arco da rede um peso (um fator multiplicador) de modo que para esta nova combinação o conjunto de marcas removido das pré-condições de cada ação passa a ser igual ao conjunto de marcas gerado após a execução da ação correspondente. O que se passa a considerar agora é o somatório ponderado dos pesos dos arcos da rede. Se este somatório for constante, pode-se dizer que a RdP é conservativa em relação a

esta distribuição de pesos. Note-se que cada um destes pesos deve ser um valor

inteiro e positivo.

Há ainda o caso em que não é possível encontrar um vetor de pesos tal que

torne toda a RdP conservativa. Entretanto, pode-se encontrar um vetor de pesos

que torne parte da rede conservativa. Esta situação pode ser encontrada

tornando todos os elementos do vetor de pesos nulos, exceto aqueles

correspondentes aos estados que se deseja considerar. Neste caso, diz-se que a

rede é parcialmente conservativa, em relação ao vetor de pesos P.

Reiniciabilidade

Uma RdP é dita reiniciável se, para qualquer marcação alcançável, for possível voltar à marcação inicial.

Reversibilidade

Marcação de base (Home-marking; Marquage d’accueil) é uma marcação

M h , alcançável a partir da marcação inicial M 0 , tal que para toda a marcação M i ,

também alcançável a partir de M 0 , haja uma seqüência de disparos que leve de

M

i

a

M h .

Uma RdP é dita reversível se, existir uma marcação base, acessível de

qualquer outra marcação do conjunto de alcançabilidade da rede.

Repetitividade

Uma RdP é repetitiva se existir uma seqüência de disparos, associada a

uma dada marcação, na qual todas as ações são executadas um número de vezes

infinito. Se a seqüência existir, mas apenas algumas ações forem disparadas

ilimitadamente, a rede é dita parcialmente repetitiva.

Consistência

Uma RdP é consistente se ao disparar uma seqüência de ações a partir de

uma marcação inicial, for possível retornar a esta marcação executando, pelo

menos uma vez, cada uma das ações da rede. É possível mostrar que uma rede é

consistente se, e somente se, existir um vetor d, não nulo, tal que sua

multiplicação pela matriz de incidência da RdP seja igual a zero, isto é, D d=0.

Vivacidade

Uma RdP é dita viva se for possível executar todas as suas ações a partir de

qualquer uma das marcações alcançáveis da rede. Esta propriedade é muito

importante na análise de sistemas digitais, uma vez que, quando verificada, indica a inexistência de bloqueios no sistema modelado. Porém, a verificação da vivacidade irrestrita de uma RdP é, freqüentemente, muito cara. Por esta razão é possível relaxar esta propriedade, adotando-se níveis de vivacidade. Podemos, então definir cinco níveis de vivacidade, como segue:

- Ação viva no nível 4 (N4) ou, simplesmente, viva: é aquela que pode ser executada pelo menos uma vez, em pelo menos uma seqüência de disparos, a partir de cada marcação pertencente ao conjunto de alcançabilidade ? A(R, M 0 ).

- Ação viva no nível 3 (N3): é aquela que pode ser executada um número infinito de vezes em alguma seqüência de disparos possível a partir da marcação inicial ? S(R, M 0 ).

- Ação viva no nível 2 (N2): é aquela que pode ser executada pelo menos k vezes em alguma seqüência de disparos S(R, M 0 ), para um

dado inteiro k > 1.

- Ação viva no nível 1 (N1): é aquela que pode ser executada pelo menos uma vez em alguma seqüência de disparos S(R, M 0 ).

- Ação viva no nível 0 (N0), ou rede morta: é aquela que nunca puder ser executada em qualquer seqüência de disparos S(R, M 0 ); isto é, se não existir marcação em A(R, M 0 ) que habilite a ação em questão.

Uma RdP é dita viva no nível N i se todas as suas ações forem vivas em um

nível j i. Vivacidade no nível 4 é a mais abrangente e corresponde à vivacidade

plena mencionada no início desta seção. Pode-se dizer que a vivacidade em um determinado nível implica a vivacidade nos níveis menos restritos, sendo o nível 4 o mais restrito e o nível 1 o menos restrito. Com certeza, esta propriedade não se aplica ao nível zero, pois, se a rede é viva em algum nível diferente de zero ela não é morta e vice-versa. Pode-se definir vivacidade estrita no nível i se determinada ação for viva neste nível, mas não em nível superior.

Limitação

Uma RdP é limitada se em cada lugar da rede, o número total de marcas nunca exceder a um inteiro k. Neste caso a rede é dita k-limitada. Se a rede for limitada ao inteiro 1, diz-se que a rede é segura.

Uma RdP é estruturalmente limitada se for limitada para qualquer marcação inicial. Isto significa que deve existir um vetor de inteiros positivos com dimensão igual à cardinalidade do conjunto de estados da rede de tal sorte que o produto deste vetor de pesos (P) pela matriz de incidência (D) da rede

seja menor ou igual a zero, isto é, P D £ 0.

Alcançabilidade

Uma marcação é dita alcançável em uma RdP se existir uma seqüência finita de disparos que conduza a ela a partir da marcação inicial. Se todas as marcações alcançáveis forem decorrentes da inicial, a rede é dita alcançável.

Cobertura

Uma RdP é dita coberta se, para toda a marcação M’, alcançável a partir de Mo, existir outra marcação M”, maior ou igual a M’ e alcançável a partir de M’. M” é considerada maior ou igual a M’, se o número de marcas em cada lugar de M” for maior ou igual ao número de marcas do lugar correspondente em M’, para

todos os lugares da rede (M” M’ Æ M”(l i ) M’(l i ), " l i Œ L).

Persistência

Uma RdP é dita persistente se havendo mais de uma ações habilitadas, em qualquer das marcações da rede, a ocorrência de uma delas não desabilita a ocorrência das demais.

Justiça

Uma RdP é dita justa se, para quaisquer duas ações, o número de vezes que uma é executada enquanto a outra não é executada é finito. Esta propriedade também é conhecida como justiça limitada. Se, por outro lado, uma dada

seqüência de disparos s for finita ou se cada ação da rede aparecer nesta

seqüência um número infinito de vezes, s é dita incondicionalmente justa. Uma RdP é dita incondicionalmente justa se todas as seqüências de disparo originárias em alguma marcação de A(R, M 0 ) forem incondicionalmente justas.

Métodos de Análise:

Nesta segunda parte da apostila serão vistos métodos formais para a análise das RdP. Estes métodos podem ser agrupados em duas categorias, quais sejam, a dos métodos que privilegiam a visão estrutural da rede, envolvendo uma equação fundamental a ser desenvolvida na seção seguinte, e os métodos que consideram principalmente a visão comportamental da rede, utilizando o seu grafo de marcações.

Equação Fundamental

Uma rede de Petri pode ser representada por duas matrizes, uma indicando

os conjuntos de lugares que servem de entrada para cada uma das transições da

rede e outra indicando os conjuntos de lugares que servem de saída para tais transições.

A primeira delas é a matriz de entrada, também chamada de matriz de

incidência reversa. Esta matriz é descrita por D - [j,i]=#(l i ,I(t j )), o que significa que cada elemento da matriz de entrada D - corresponde ao número de arcos que conectam o lugar l i à entrada de cada transição t j .

A segunda matriz é a de saída, que também é chamada de matriz de

incidência direta. Esta matriz é descrita por D + [j,i]=#(l i ,O(t j )), o que significa que cada elemento da matriz de entrada D + corresponde ao número de arcos que conectam a saída de cada transição t j ao lugar l i .

Como exemplo, tome-se a rede da Figura-1. Nessa rede têm-se três lugares

e quatro transições. As matrizes de incidência correspondentes terão, por

conseguinte, quatro linhas (uma para cada transição da rede) e três colunas (uma para cada lugar).

t 4 l 3 2 2 t 1 t 3 t 2 l 1 l
t 4
l 3
2
2
t 1
t 3
t 2
l 1
l 2

Figura-1: Exemplo de rede de Petri para a formação das matrizes de incidência.

Para a formação da matriz de incidência reversa (matriz de entrada), verifica-se que a transição t 1 tem somente um lugar de entrada, que é o lugar l 1 .

A transição t 2 possui, ligados à sua entrada, os lugares l 1 e l 3 . Os lugares l 2 e l 3

conectam-se à entrada da transição t 3 e, também, à da t 4 . Note-se ainda, que o lugar l 3 está conectado à entrada de t 3 por um arco com peso duplo. Por esta razão, o elemento D - [3,3] é igual a 2.

Para a formação da matriz de incidência direta (matriz de saída), verifica-

se que a transição t 1 tem, como saída, os lugares l 1 e l 3 . Note-se que, neste caso,

o lugar l 3 está conectado à entrada de t 1 por um arco com peso duplo. Por esta

razão, o elemento D + [1,3] é igual a 2. A transição t 2 possui, ligados à sua saída, os lugares l 2 e l 3 . O lugar l 2 conecta-se à entrada da transição t 3 e o lugar l 1 à da transição t 4 .

Pelo que foi discutido, nos dois parágrafos precedentes, as matrizes de incidência, de entrada e de saída, são dadas, respectivamente, por:

D - =

l 1 l 2 l 3 t 1 0 0 1 t 1 0 1
l 1
l 2
l 3
t
1
0
0
1
t
1
0
1
2
t
0
1
2
3
t
0
1
1
4

D + =

l 1 L 2 l 3 t 1 0 2 1 t 0 1 1
l 1
L 2
l 3
t
1
0
2
1
t
0
1
1
2
t
0
1
0
3
t
1
0
0
4

Para que se possa utilizar estas matrizes na análise das RdP, deve-se empregar ainda um vetor indicando quais as transições deverão disparar. Estes vetores de disparos, também conhecidos como vetores de Parikh [01], mapeiam cada transição da rede no número de ocorrências dessas transições em uma determinada seqüência de disparos. Os vetores de disparos mais simples são aqueles que representam um único disparo de uma única transição. Eles são representados por e[j] e têm o valor 1 na j-ésima posição e 0 nas demais. Os vetores de disparos unitários, para cada uma das transições da Figura-1, são:

e[1]

e[2]

e[3]

e[4]

Æ

Æ

Æ

Æ

t

t

t

t

1

2

3

4

 

j=1

j=2

j=3

j=4

Ø

Ø

Ø

Ø

Æ

(1,

0,

0,

0)

Æ

(0,

1,

0,

0)

Æ

(0,

0,

1,

0)

Æ

(0,

0,

0,

1)

Se alguma transição for disparada mais de uma vez, sua posição relativa no

vetor de disparos será consignada com o numeral correspondente. Por exemplo,

se a transição t 2 disparar três vezes o vetor de disparos representativo desta

condição é e[2] = (0, 3, 0, 0).

Também é possível combinar esses vetores para representar alguma

seqüência (s) de disparos. Neste caso, o vetor combinado passa a ser notado por

f(s). Por exemplo, se for necessário representar a seqüência de disparos

correspondente à execução das transições t 1 , t 2 e t 4 , sendo t 2 disparada duas

vezes e as demais uma única vez, o vetor f(s) = (1, 2, 0, 1) deverá ser usado

para representa-la.

De posse das definições acima, pode-se dizer que uma transição t j está

habilitada em qualquer marcação M, desde que esta marcação seja maior ou

igual ao produto do vetor de disparos da transição em questão pela matriz de

incidência reversa da rede, isto é, M e[j] D - . Esta condição de habilitação é

válida para qualquer transição em qualquer marcação e pode ser estendida para

uma seqüência de transições a serem disparadas a partir da marcação M, ou

seja, M f(s) D - . A relação , na condição de habilitação, significa que cada

elemento da marcação M precisa ser, individualmente, maior ou igual ao

elemento correspondente do vetor resultante do produto do vetor de disparos

pela matriz de incidência considerada. A validade desta expressão se deve ao

fato de que a matriz de incidência reversa indica, em cada uma de suas linhas, a

quantidade de marcas necessárias para o disparo da transição correspondente,

bem como, a localização de cada uma destas marcas. Por exemplo, na segunda

linha da matriz D - , calculada anteriormente, tem-se o vetor (1, 0, 1); isto quer

dizer que para executar a transição t 2 são necessárias uma marca no lugar l 1 e

uma marca no lugar l 2 . Ao se fazer o produto do vetor e[2] pela matriz D - , esta linha é isolada e pode ser comparada com a marcação desejada para verificar se tal condição é atendida pela marcação. Por exemplo, analisem-se as condições de habilitação das transições t 1 e t 2 , na marcação inicial M 0 = (1, 0, 0).

Primeiramente, tome-se o caso de t 1 , quando se deve ter M 0 e[1] D - . O

produto e[1] D - é igual ao vetor (1, 0, 0), o qual coincide com M 0 e satisfaz à

condição de habilitação de t 1 . A seguir, veja-se o caso de t 2 , quando se deve ter

M 0 e[2] D - . O produto e[2] D - é igual ao vetor (1, 0, 1), como já havia sido calculado acima. Ocorre que, embora as duas primeiras posições deste produto coincidam com M 0 , sua terceira coluna é maior do que a coluna correspondente de M 0 . Portanto, a condição de habilitação de t 2 na marcação M 0 não é satisfeita, indicando que t 2 não pode disparar na marcação inicial.

Uma vez definida a possibilidade de execução de uma certa transição em alguma marcação, deseja-se calcular o resultado produzido por esta execução. Novamente, aqui pode se recorrer às matrizes de incidência. Como já visto, a matriz de incidência reversa multiplicada pelo vetor de disparos adequado representa o conjunto de marcas necessário, inclusive com a indicação de sua distribuição, para a execução de uma transição. Analogamente, pode-se verificar que a matriz de incidência direta, ou matriz de saída, ao ser multiplicada pelo mesmo vetor de disparos indica a quantidade e a distribuição das marcas a serem criadas após a execução da transição considerada. Desta forma, somando- se estes efeitos chega-se à seguinte expressão, representativa do disparo da transição t j na marcação M.

d(M, t j ) = M - e[j] D - + e[j] D +

d(M, t j ) = M + e[j] (- D - + D + )

d(M, t j ) = M + e[j] D

Note-se que a matriz D, obtida pela subtração da matriz de incidência reversa da matriz de incidência direta, é conhecida como a matriz característica das RdP. A equação resultante acima é a equação fundamental das RdP.

Invariantes

Os

invariantes

em

uma

rede

de

petri

representam

os

componentes

conservativos e repetitivos da rede. Há conjuntos de lugares e de transições da rede cujo comportamento não se altera durante o seu funcionamento. A identificação e a interpretação de cada um destes conjuntos é importante, pois, eles refletem certas propriedades da rede que podem ser de interesse para a análise do sistema modelado.

Componentes conservativos

Os

componentes

conservativos

da

rede

são

representados

em

seus

invariantes de lugar, ou seja, são conjuntos de lugares da rede nos quais a soma

das marcas é constante durante todo o seu funcionamento.

Para identificar os componentes conservativos da rede deve-se partir da equação fundamental das RdP, qual seja:

M x = M 0 + f ° D

Recordando, nesta equação M x representa a marcação que se deseja

alcançar, M 0 representa a marcação inicial da rede, f representa o vetor de

disparos da rede e D representa sua matriz de incidência global.

A situação na qual todos os lugares da rede formam um único componente conservativo é muito improvável na prática. Por outro lado, encontrar sub- conjuntos de lugares nos quais o total de marcas não se altere já é bem mais comum. Para encontrar tais sub-conjuntos deve-se isolar os lugares correspondentes durante a análise. Matematicamente falando, isto significa multiplicar a equação característica por um vetor de mascaramento, ao qual

chamar-se-á de vetor de ponderação ( VP) e o qual servirá para produzir o

isolamento desejado. Para introduzi-lo na equação característica sem altera-la deve-se multiplicar todos os seus termos por este vetor, obtendo-se:

M x ° VP = M 0 ° VP + f ° D ° VP

A solução desta nova equação será obtida ao se igualar a zero seus termos.

Sabemos que, para que a rede tenha componentes conservativos a igualdade M x

° VP = M 0 ° VP deve se verificar. Também se sabe que f não pode ser nulo, já

que é a representação do comportamento dinâmico da rede. Sendo assim, pode- se encontrar os componentes conservativos (invariantes de lugar) da rede resolvendo-se a equação:

D ° VP = 0.

Este procedimento é melhor entendido por meio de um exemplo. Imagine- se a rede da Figura-2. Ela tem cinco lugares e quatro transições, sendo sua matriz característica dada por:

e

D =

-1

1

1

0

0

0

–1

0

1

0

0

0 –1

0

1

1

0

0 –1 -1

seu vetor de ponderação por: VP = [I 1 I 2 I 3 I 4 I 5 ].

l 1 t 1 l 3 l 2 t 2 t 3 l 4 l
l 1
t 1
l 3
l 2
t 2
t 3
l 4
l 5
t 4
Figura-2: Exemplo de componentes conservativos.

O

produto destes dois arranjos resulta no seguinte sistema de equações:

I 1 = I 2 + I 3

I 2 = I 4

I 3 = I 5

I 1 = I 4 + I 5

Este sistema tem inúmeras soluções possíveis, dependendo dos valores

iniciais utilizados. Como VP é um vetor de ponderação, utilizam-se os valores

zero e um, resultando nos seguintes componentes conservativos.

Para

I 2 =

0

e

I 3 = 1,

VP = [1 0 1 0 1], indicando que I’ = {I 1 I 3 I 5 } é um

invariante de lugar da rede da Figura-2.

Invertendo os valores, isto é, para I 2 = 1 e I 3 = 0, VP = [1 1 0 1 0], indicando

que I” = {I 1 I 2 I 4 } é outro invariante de lugar da rede da Figura-2.

Componentes repetitivos Os componentes repetitivos são representados em seus invariantes de

transição, isto é, são conjuntos de transições da rede que ao serem disparadas

em determinada seqüência retornam à marcação de partida.

Para identificar os componentes repetitivos de uma rede de Petri utiliza-

se um procedimento análogo ao usado para identificar os componentes

conservativos, ou seja, lança-se mão de um vetor de pesos associado à matriz

característica da rede de petri considerada e se obtém os invariantes de transição pela solução do sistema de equações resultante desta associação.

Como a dedução foi apresentada na seção anterior, passa-se aqui diretamente a

um exemplo de aplicação.

Considere-se a rede apresentada na Figura-3, a qual contém sete lugares

e seis transições. Sua matriz característica é dada por:

 

-1

1

0

-1

0

0

0

0

-1

1

1

0

0

0

D =

1

0 –1

0

0

0

0

0

0

0 –1

-1

1

0

0

0

0

1

0 –1

1

0

0

0

0

1

0 –1

e seu vetor de ponderação por: VP = [I 1 I 2 I 3 I 4 I 5 I 6 ].

t l 1 t 1 l 2 l 3 t 3 2 l 4 l
t
l 1
t 1
l
2
l
3
t 3
2
l 4
l 5
l 6
t
l 7
t 6
t 4
5

Figura-3: Exemplo de componentes repetitivos.

O produto destes dois arranjos resulta no seguinte sistema de equações:

I 1 = I 2 = I 3

I 4 = I 5 = I 6

Este sistema também tem inúmeras soluções possíveis, dependendo dos valores iniciais utilizados, como no exemplo anterior. Portanto, seguindo o mesmo procedimento da seção anterior, aqui serão utilizados novamente os

valores zero e um, por ser VP um vetor de ponderação, resultando nos seguintes

componentes conservativos.

Para I 1 = 1 e I 4 = 0, VP = [1 1 1 0 0 0], indicando que I’ = {t 1 t 2 t 3 } é um

invariante de transição da rede da Figura-3.

Invertendo os valores, isto é, para I 1 = 0

e

I 4 = 1,

VP = [0 0 0 1 1 1],

indicando que I” = {t 4 t 5 t 6 } é outro invariante de transição da rede da Figura-3.

Redução

Freqüentemente, a complexidade para analisar sistemas de interesse prático é alta, dificultando a interpretação do modelo correspondente. Visando a minimização desta complexidade, amiúde lança-se mão de técnicas que permite a redução do modelo em estudo, para um mais simples. Todavia, esta redução deve preservar as características do modelo original, para que a análise do modelo reduzido possa ser utilizada na inferência das propriedades do modelo original do sistema. Isto significa que, para se verificar um conjunto de propriedades de uma rede de petri complexa, pode-se transforma-la em outra

de menor complexidade, na qual a determinação das propriedades de interesse é mais fácil. Contanto que as transformações utilizadas sejam adequadas, é

possível garantir que a rede original tem as mesmas propriedades verificadas

para a rede reduzida.

Por outro lado, pode-se usar técnicas de redução para transformar um

modelo abstrato de sistema em outro mais refinado, de forma hierárquica, para

realizar a síntese do sistema desejado.

Técnicas Há um sem número de técnicas para a transformação de modelos em

seus correspondentes reduzidos, preservando as propriedades de interesse. Aqui

se apresentam apenas as mais simples, as quais, de acordo com Murata [02],

preservam as propriedades de vivacidade, segurança e limitação. Sendo assim, a

rede resultante da transformação só será viva, segura ou limitada se a rede

original for, respectivamente, viva, segura ou limitada.

As técnicas de redução aqui apresentadas são seis, quais sejam:

fusão de lugares em série (Figura-4a);

fusão de transições em paralelo (Figura-4b);

fusão de transições em série (Figura-4c);

fusão de lugares em paralelo (Figura-4d);

eliminação de lugares em malha fechada (Figura-4e); e

eliminação de transições em malha fechada (Figura-4f).

Um dos principais pontos fracos das RdP é o problema com sua

complexidade. Por isto, o desenvolvimento de métodos e técnicas que

possibilitem a redução hierarquizada destas redes, preservando suas propriedades e, conseqüentemente, facilitando sua análise, é de suma

importância. Alguns pesquisadores que desenvolveram trabalhos pioneiros sobre

o assunto são: Murata et. al. [03], [04] e [05], Berthelot et. al. [06], Chu [07],

Kwong [08], e Valette [09].

Figura-4: Principais técnicas de redução de redes de Petri. Análise Os métodos de redução não

Figura-4: Principais técnicas de redução de redes de Petri.

Análise

Os

métodos

de

redução

não

permitem,

por

si

só,

a

análise

das

propriedades da rede. Eles são transformações aplicadas a determinada rede

para simplifica-la. A análise, propriamente dita, é efetuada sobre a rede

reduzida utilizando-se as demais técnicas disponíveis, tais como, a análise de

invariantes, a análise estrutural e análise por enumeração de estados.

Grafo de Ocorrências

O grafo de ocorrências de uma RdP é um grafo direcionado e rotulado.

Cada um de seus vértices representa uma marcação alcançável da rede e cada

uma de suas arestas representa a execução de uma ação. O grafo de ocorrências

é então dado pelo par GO = (V, A), no qual, V é o conjunto de todos os vértices,

distintos, e rotulados com a indicação da marcação correspondente e A é o

conjunto de todas as arestas rotuladas com o nome da ação correspondente, que identifica a transição entre duas marcações alcançáveis da rede.

O termo “grafo de ocorrências” pode ser utilizado de maneira genérica,

como explicado no parágrafo anterior. Ele também pode ser chamado de árvore,

ou grafo, de cobertura. Para o caso de redes limitadas, também se usam os

termos “árvore de alcançabilidade” ou, menos freqüentemente, “árvore de acessibilidade”.

Na próxima seção apresenta-se o algoritmo de geração do grafo de ocorrências derivado de Peterson [10], o qual tem sua terminação garantida, segundo esse autor.

Algoritmo de construção Para a geração do grafo de ocorrências define-se uma variável w, que

representa um número qualquer de marcas e, em relação a uma variável “a” qualquer, apresenta as seguintes propriedades:

¸ w + a = w

¸ w - a = w

¸ a < w

Os vértices do grafo de ocorrências podem ser de quatro tipos, quais sejam: fronteira, interiores, terminais e duplicatas. Os vértices de fronteira são aqueles que ainda não foram processados. Os vértices interiores são aqueles já processados e que produziram algum sucessor. Os vértices terminais são aqueles já processados e que não possuem qualquer sucessor. Os vértices duplicatas são aqueles iguais a algum outro nó (interior ou terminal), os quais, por terem sucessores idênticos, não precisam ser analisados. No começo, a marcação inicial é o vértice de onde partem todos os outros e é definido como um vértice de fronteira.

Etapas :

(1) Seja c um vértice de fronteira.

na árvore, que não seja vértice

fronteira e que tenha a mesma marcação associada (M c =M g ), então o

vértice c é definido como uma duplicata.

(2)

Se

há outro vértice

g

(3) Se nenhuma transição estiver habilitada na marcação M c ,

então c é definido como um vértice terminal.

(4) Para todas as transições t j Œ T, habilitadas em M c , criar um

novo vértice x no grafo. A marcação M x associada a este novo vértice é, para cada lugar l i , definida por:

(a)

se M c (l i )=w, então M x (l i )=w;

(b)

se existe um vértice g no percurso do vértice inicial ao

vértice c tal que Mg < d(M c , t j ) e M g (l i ) < d(M c , t j ) /li ,

então M x (l i )= w;

(c) em qualquer outro caso M x (l i ) < d(M c , t j ) /li .

(5) Insere-se uma aresta rotulada com t j , direcionada do vértice

c ao vértice x.

(6) Redefine-se o vértice c como interior e o vértice x como

fronteira.

Havendo vértices de fronteira volta-se ao passo (2). Quando não houver mais vértices de fronteira o algoritmo termina.

Análise por enumeração de marcações A análise por enumeração de marcações, também dita por enumeração de estados, é talvez a técnica mais empregada para a análise de RdP. Ela se fundamenta na construção do espaço de estados resultante da execução exaustiva da rede, isto é, do seu grafo de ocorrências. Uma vez construído o grafo é possível determinar certas propriedades da RdP considerada, levando-se em conta a marcação inicial utilizada para a geração do espaço de estados.

Esta análise requer a inspeção, por varredura, do grafo de ocorrências. Sendo assim, considerem-se alguns exemplos:

- Se ao inspecionar o grafo de ocorrências for constatado que todos os vértices do grafo contendo determinado lugar contiverem uma ou nenhuma marca na posição correspondente ao lugar considerado, pode-se inferir que este lugar é seguro. Mais ainda, se continuando a inspeção se verificar que esta situação se repete para todos os lugares da rede, pode-se concluir que ela é segura.

- Se ao inspecionar o grafo de ocorrências for constatado que determinada transição nunca é utilizada, pode-se concluir que ela

está morta. Se todas as transições poderem ser executadas pelo menos uma vez, em pelo menos uma seqüência de disparos, a partir de cada marcação pode-se concluir que a rede é viva, nível 4. Os demais tipos de vivacidade podem ser deduzidos percorrendo-se o grafo de ocorrência em busca das situações específicas, conforme definidas na parte relativa às propriedades das RdP, neste texto.

- Se ao inspecionar o grafo de ocorrências nunca se encontrar o

símbolo w, em qualquer lugar da rede, pode-se dizer que a rede é limitada. Para determinar o grau de limitação, deve-se identificar o lugar com o maior número de marcas no grafo de ocorrência. A

ocorrência do símbolo w em algum lugar da rede indica que ela não é limitada.

Apesar da conveniência na utilização da análise por enumeração de marcações, há propriedades que não podem ser determinadas a partir desta análise, por exemplo, nem sempre é possível determinar a alcançabilidade de determinada marcação M y , a partir de uma marcação M x , após uma certa seqüência de disparos se esta seqüência contiver o símbolo ? . No caso de redes limitadas, todavia, esta definição é possível pela simples inspeção do grafo de ocorrências. A vivacidade de redes ilimitadas constitui outro exemplo que nem sempre é determinável.

Considerações Finais:

Esta apostila mostrou, resumidame nte, as principais propriedades das redes de petri e as técnicas de análise para sua identificação. Como visto, nenhuma das técnicas de análise existentes permite a verificação de todas as propriedades. Por conseguinte, a escolha da técnica de análise deve levar em consideração as propriedades que se precisam analisar. Além disto, há um custo computacional associado a cada uma destas técnicas, o qual também deve ser levado em consideração para esta escolha. Via de regra, a técnica mais utilizada é a de análise do grafo de ocorrências, possivelmente, devido à facilidade de sua implementação e o grau de completude das análises possíveis. A técnica menos utilizada é, por outro lado, a de análise dos invariantes, não tanto por

insuficiência nas propriedades observáveis, mas principalmente pelo alto custo computacional envolvido em sua implementação.

Para concluir, vale ressaltar que este texto foi escrito para servir como guia de estudos aos alunos da disciplina de técnicas de simulação do DCCE/IBILCE/UNESP. Não se pretende tê-lo como um texto completo e exaustivo para o estudo das propriedades e dos métodos de análise de redes de Petri. Recomenda-se, isto sim fortemente, o aprofundamento dos estudos nos textos referenciados ao final desta resenha.

Referências Bibliográficas:

[01] R.J.Parikh, On Context-free Languages, Journal of the Association for Computing Machinery, 13(4)570-581, October, 1966.

[02] T.Murata, Petri Nets: Properties, Analysis and Applications, Proceedings of the IEEE, 77(4)541-580, April de 1989.

[03] T.Murata and J.Y.Koh, Reduction and expansion of live and safe marked graphs, IEEE Transactions on Circuits and Systems, 27(1)68-70, January 1980.

[04] R.Johnsonbaugh and T.Murata, Additional methods for reduction and expansion of marked graphs, IEEE Transactions on Circuits and Systems, 28(10)1009-1014, October 1981.

[05] I.Suzuki and T.Murata, A method for stepwise refinements and abstractions of Petri nets, Journal of Computer and Systems Sciences, 27(1)51-76, August

1983.

[06] G.Berthelot, G.Roucairol, and R.Valk, Reduction of nets and parallel programs, Lecture Notes in Computer Science, vol.84, pp.277-290, 1980.

[07] T.A.Chu, A method of abstraction of Petri nets, Proceedings of the International Workshop on Petri Nets and Performance Models, pp.164-173, Madisson, WI – U.S.A., August 1987.

[08] Y.S.Kwong, On reduction of asynchronous systems, Theoretical Computer Science, vol.5, pp.25-50, 1977.

[09] R.Valette, Analysis of Petri nets by stepwise refinements, Journal of Computer and Systems Sciences, 18(1)35-46, August 1979.

[10] J.L.Peterson, Petri Net Theory and the Modeling of Systems, Prentice Hall, Inc., 190 págs., junho de 1981 (ISBN: 0136619835).