Page 1
1
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
Page 2
2
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.
Page 3
3
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
Page 4
4
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
Mh, alcançável a partir da marcação inicial M0, tal que para toda a marcação Mi,
também alcançável a partir de M0, haja uma seqüência de disparos que leve de
Mi a Mh.
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 δ, não nulo, tal que sua
multiplicação pela matriz de incidência da RdP seja igual a zero, isto é, 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
Page 5
5
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, M0).
- 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, M0).
- 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, M0), 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, M0).
- 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, M0); isto é, se
não existir marcação em A(R, M0) que habilite a ação em questão.
Uma RdP é dita viva no nível Ni 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.
Page 6
6
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”(li) ≥ M’(li), ∀ li ∈ 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 σ for finita ou se cada ação da rede aparecer nesta
seqüência um número infinito de vezes, σ é dita incondicionalmente justa. Uma
RdP é dita incondicionalmente justa se todas as seqüências de disparo originárias
em alguma marcação de A(R, M0) forem incondicionalmente justas.
Page 7
7
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]=#(li,I(tj)), o que significa
que cada elemento da matriz de entrada D- corresponde ao número de arcos que
conectam o lugar li à entrada de cada transição tj.
A segunda matriz é a de saída, que também é chamada de matriz de
incidência direta. Esta matriz é descrita por D+[j,i]=#(li,O(tj)), 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 tj ao lugar li.
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).
2 2
l1 l2
l3
t1
t2
t3
t4
Figura-1: Exemplo de rede de Petri para a formação das matrizes de incidência.
Page 8
8
Para a formação da matriz de incidência reversa (matriz de entrada),
verifica-se que a transição t1 tem somente um lugar de entrada, que é o lugar l1.
A transição t2 possui, ligados à sua entrada, os lugares l1 e l3. Os lugares l2 e l3
conectam-se à entrada da transição t3 e, também, à da t4. Note-se ainda, que o
lugar l3 está conectado à entrada de t3 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 t1 tem, como saída, os lugares l1 e l3. Note-se que, neste caso,
o lugar l3 está conectado à entrada de t1 por um arco com peso duplo. Por esta
razão, o elemento D+[1,3] é igual a 2. A transição t2 possui, ligados à sua saída,
os lugares l2 e l3. O lugar l2 conecta-se à entrada da transição t3 e o lugar l1 à da
transição t4.
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:
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:
l1 l2 l3
1 0 0 t1
1 0 1 t2
0 1 2 t3
0 1 1 t4
l1 L2 l3
1 0 2 t1
0 1 1 t2
0 1 0 t3
1 0 0 t4
D- = D+ =
Page 9
9
j=1 j=2 j=3 j=4
↓ ↓ ↓ ↓ e[1] → t1 → (1, 0, 0, 0)
e[2] → t2 → (0, 1, 0, 0)
e[3] → t3 → (0, 0, 1, 0)
e[4] → t4 → (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 t2 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 (σ) de disparos. Neste caso, o vetor combinado passa a ser notado por
f(σ). Por exemplo, se for necessário representar a seqüência de disparos
correspondente à execução das transições t1, t2 e t4, sendo t2 disparada duas
vezes e as demais uma única vez, o vetor f(σ) = (1, 2, 0, 1) deverá ser usado
para representa-la.
De posse das definições acima, pode-se dizer que uma transição tj 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(σ) • 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 t2 são necessárias uma marca no lugar l1 e
Page 10
10
uma marca no lugar l2. 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 t1 e t2, na marcação inicial M0 = (1, 0, 0).
Primeiramente, tome-se o caso de t1, quando se deve ter M0 ≥ e[1] • D-. O
produto e[1] • D- é igual ao vetor (1, 0, 0), o qual coincide com M0 e satisfaz à
condição de habilitação de t1. A seguir, veja-se o caso de t2, quando se deve ter
M0 ≥ 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 M0, sua terceira coluna é maior do que a coluna correspondente
de M0. Portanto, a condição de habilitação de t2 na marcação M0 não é satisfeita,
indicando que t2 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 tj na marcação M.
δ(M, tj) = M - e[j] • D- + e[j] • D+
δ(M, tj) = M + e[j] (- D- + D+)
δ(M, tj) = M + e[j] • D
Page 11
11
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:
Mx = M0 + f ° D
Recordando, nesta equação Mx representa a marcação que se deseja
alcançar, M0 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:
Mx ° VP = M0 ° VP + f ° D ° VP
Page 12
12
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 Mx
° VP = M0 ° 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 seu vetor de ponderação por: VP = [I1 I2 I3 I4 I5].
O produto destes dois arranjos resulta no seguinte sistema de equações:
l1
l5 l4
l3 l2
t1
t4
t3 t2
Figura-2: Exemplo de componentes conservativos.
D =
-1 1 1 0 0 0 –1 0 1 0 0 0 –1 0 1 1 0 0 –1 -1
Page 13
13
I1 = I2 + I3
I2 = I4
I3 = I5
I1 = I4 + I5
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 I2 = 0 e I3 = 1, VP = [1 0 1 0 1], indicando que I’ = {I1 I3 I5} é um
invariante de lugar da rede da Figura-2.
Invertendo os valores, isto é, para I2 = 1 e I3 = 0, VP = [1 1 0 1 0], indicando
que I” = {I1 I2 I4} é 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:
e seu vetor de ponderação por: VP = [I1 I2 I3 I4 I5 I6].
-1 1 0 -1 0 0 0
0 -1 1 1 0 0 0
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
D =
Page 14
14
O produto destes dois arranjos resulta no seguinte sistema de equações:
I1 = I2 = I3
I4 = I5 = I6
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 I1 = 1 e I4 = 0, VP = [1 1 1 0 0 0], indicando que I’ = {t1 t2 t3} é um
invariante de transição da rede da Figura-3.
Invertendo os valores, isto é, para I1 = 0 e I4 = 1, VP = [0 0 0 1 1 1],
indicando que I” = {t4 t5 t6} é 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
l3 l2 l1
l7 l6 l5
l4
t6 t4
t1 t3
t5
t2
Figura-3: Exemplo de componentes repetitivos.
Page 15
15
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].
Page 16
16
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
Figura-4: Principais técnicas de redução de redes de Petri.
Page 17
17
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 ω, que
representa um número qualquer de marcas e, em relação a uma variável “a”
qualquer, apresenta as seguintes propriedades:
ü ω + a = ω
ü ω - a = ω
ü a < ω
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 χ um vértice de fronteira.
(2) Se há outro vértice γ na árvore, que não seja vértice
fronteira e que tenha a mesma marcação associada (Mχ=Mγ), então o
vértice χ é definido como uma duplicata.
(3) Se nenhuma transição estiver habilitada na marcação Mχ,
então χ é definido como um vértice terminal.
Page 18
18
(4) Para todas as transições tj ∈ T, habilitadas em Mχ, criar um
novo vértice ξ no grafo. A marcação Mξ associada a este novo vértice é,
para cada lugar li, definida por:
(a) se Mχ(li)=ω, então Mξ(li)=ω;
(b) se existe um vértice γ no percurso do vértice inicial ao
vértice χ tal que Mγ < δ(Mχ, tj) e Mγ(li) < δ(Mχ, tj)/li, então Mξ(li)= ω;
(c) em qualquer outro caso Mξ(li) < δ(Mχ, tj)/li.
(5) Insere-se uma aresta rotulada com tj, direcionada do vértice
χ ao vértice ξ.
(6) Redefine-se o vértice χ como interior e o vértice ξ 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
Page 19
19
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 ω, 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 ω 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 My, a partir de uma marcação Mx, 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, resumidamente, 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
Page 20
20
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.
Page 21
21
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).