Você está na página 1de 46

Redes de Petri

DAS5203-Modelagem e Controle de Sistemas a Eventos Discretos

Autor: Felipe Cabral


Instituição: Universidade Federal de Santa Catarina (UFSC)
Data: 3 de maio de 2020
Versão: 0.2

A formalism should be consistent with the laws of physics and not take any shortcuts at the
foundational level. Carl Adam Petri.
Sumário

1 Introdução 2
1.1 Classificação de sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Espaço de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Introdução à modelagem de Sistemas a Eventos Discretos . . . . . . . . . . . . . 7
Exercícios resolvidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Referências selecionadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

I Autômatos e Controle Supervisório 11

II Redes de Petri 12

2 Redes de Petri 13
2.1 Grafo de uma rede de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Redes de Petri marcadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Dinâmica da rede de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Processos modelados por redes de Petri . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Equação de estado da rede de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Comentários finais sobre redes de Petri . . . . . . . . . . . . . . . . . . . . . . . 33
Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3 Redes de Petri rotuladas 37


3.1 Linguagens de uma rede de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Exercícios resolvidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4 Comentários finais sobre Redes de Petri 39

A Supremica 40

B Integrated Discrete-Event Systems - IDES 41

C Time petri Net Analyzer - TINA 42

D Histórico de mudanças 44
Prefácio

Sobre este livro

Agradecimentos

Organização do livro
Capítulo 1 -
Introdução

All human things are subject to decay, and


when fate summons, Monarchs must obey

Mac Flecknoe
John Dryden

Conteúdo deste capítulo

h Classificação de sistemas h Modelagem de Sistemas a Eventos


h Estado Discretos
h Evento

u1 y1 u1 y1
modelagem Modelo
u2 Sistema y2 u2 y2
u3 y3 Matemático
u3 y3

1.1 Classificação de sistemas

Definição 1.1. Sistema


Um sistema é o conjunto de dispositivos capaz de realizar uma tarefa que não seria
possível por nenhum dos dispositivos separadamente.

Definição 1.2. Sistema


Um sistema é a parte do universo em que o engenheiro dedica sua atenção.

1.1.1 Representação de sistemas

É necessário obter um modelo esquemático/abstrato.

1.1.1.1 Critérios que modelos devem satisfazer

Objetivo da modelagem do sistema;


Intervalo de operação.

1.1.2 Sistemas lineares e invariantes no tempo dinâmicos de variáveis contínuas

1.1.2.1 Linear

Vale o princípio da superposição.


1.2 Estado

1.1.2.2 Invariante no tempo

Sistema tem a mesma resposta independentemente do instante em que a entrada é aplicada.

1.1.2.3 Dinâmico

Depende de valores atuais e passados da entrada.

1.1.2.4 Contínuo

Não tem valores discretos.

1.1.2.4.1 Sistemas contínuos no tempo


t
y(t) = ∫ h(t − τ )u(τ )dτ
t=0

Y (s) = H(s)U (s)

H(s): função de transferência.

k
y(k) = ∑ h(k − m)u(m)
m=0

Y (z) = H(z)U (z)

H(z): função de transferência.

1.2 Estado

Definição 1.3. Estado


O estado de um sistema dinâmico em t = t0 é o conjunto de informações que, junto com
os valores de u(t) (entrada) para t > t0 é suficiente para determinar y(t), ∀t ≥ t0 .

Exemplo 1.1. Sistema massa-mola


y
k
m
u

O primeiro passo para determinar as variáveis de estado deste sistema é obter seu modelo
matemático:
u − ky = mÿ

3
1.2 Estado

Dado u(t), ∀t ≥ 0, ainda falta conhecer as condições iniciais y(0) e ẏ(0).


Escolhendo as variáveis de estado:

x1 (t) = y(t) Ð→ ẋ1 = x2


K 1
x2 (t) = ẏ(t) Ð→ ẋ2 = ÿ = − x1 + u
m m

temos o sistema dado por




⎪ẋ = Ax + bu

⎨ (1.1)


⎩ y = c x + du
T

em que a matriz A é não-singular, i.e., é uma matriz inversível. A interpretação em espaço


de estados para o sistema descrito se dá por
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
⎢ẋ1 ⎥ ⎢ 0 1⎥ ⎢x1 ⎥ ⎢ 0 ⎥
⎢ ⎥=⎢ ⎥⎢ ⎥ + ⎢ ⎥u
⎢ ⎥ ⎢ K ⎥⎢ ⎥ ⎢ 1 ⎥
⎢ẋ2 ⎥ ⎢− 0⎥ ⎢x2 ⎥ ⎢ ⎥
⎣ ⎦ ⎣ m ⎦ ⎣ ⎦ ⎣m⎦
⎡ ⎤
⎢x1 ⎥
y = [1 0] ⎢⎢ ⎥⎥
⎢x2 ⎥
⎣ ⎦
Portanto, as variáveis de estado podem ser, por exemplo:
y(t) - posição;
ẏ(t) - velocidade.

Exemplo 1.2. Circuito RLC

R i L

u C y

Modelo do sistema:
di
u = Ri + L +y
dt
dy
i=C
dt
Assim, obtém-se:
u = RC ẏ + LC ÿ + y

R 1
x1 = i = C ẏ Ð→ ẋ1 = − x1 − x2 + u
L L
1
x2 = y Ð→ ẋ2 = ẏ = x1
C

4
1.3 Espaço de estados

⎡ R ⎤ ⎡ ⎤
⎢− − L1 ⎥⎥ ⎢1⎥
ẋ = ⎢⎢ L ⎢ ⎥
⎥x + ⎢ ⎥u
⎢ 1 0 ⎥⎦ ⎢0⎥
⎣ C ⎣ ⎦
y = [0 1] x

Exemplo 1.3. Poupança


u: depósitos ou retiradas da conta
y: saldo
J: juros
y(k + 1) = y(k) + Jy(k) + u(k)

y(0) ∶ capital inicial


x(k) = y(k)
x(k + 1) = (1 + J)y(k) + u(k)

Observação 1.1. Evolução da variável de estado no tempo


No estudo de sistemas discretos no tempo, definimos variáveis de estado xi em função do
tempo t ou a amostra k. Com base na figura a seguir:

x x

t 1 2 3 4 5 6 7 8 9 t

é possível perceber que o tempo é discretizado!


Neste curso, contudo, vamos estudar sistemas em que o espaço de estados é um conjunto
discreto, i.e., sistemas em que o espaço de estados não é o conjunto dos números reais.

1.3 Espaço de estados

Definição 1.4. Espaço de estados


O espaço de estados de um sistema é o domínio no qual os possíveis resultados das
variáveis de estado se encontram.

No caso dos exemplos 1.1 e 1.2, sistema massa-mola e RLC, respectivamente, o espaço de
estado das variáveis x1 e x2 é R2 . Note que, apesar do espaço de estados ser R2 , os valores de
x1 e x2 não podem, por limitações físicas dos dois sistemas, receber qualquer valor em R.

5
1.3 Espaço de estados

x2

x2 (t′ )

x1 (t′ ) x1

Por outro lado, no caso do exemplo 1.3 da poupança, o espaço de estados X = R, pois a
conta corrente pode ter qualquer valor real.
A seguir, apresentamos alguns exemplos de sistemas que têm o espaço de estados discreto.
Exemplo 1.4. Semáforo

Estados:
x - vermelho;
x - amarelo;
x - verde.

Exemplo 1.5. Armazém

u1 u2

u1 (t) - chegada de produtos;


u2 (t) - saída de produtos;
x(t) - quantidade de produtos.
Nesse caso, a variável de estado x pode ter apenas valores inteiros positivos ou zero, ou
seja, o espaço de estados da variável é o conjunto dos naturais, x ∈ N. Podemos, ainda,
definir a entrada e saída do sistema como:




⎪1, se chega uma caixa no instante t
u1 (t) = ⎨





0, caso contrário




⎪1, se uma caixa é retinada no instante t
u2 (t) = ⎨





0, caso contrário
Para modelar esse sistema, é necessário ainda fazer algumas hipóteses:
(i) o depósito é grande o suficiente tal que a capacidade nunca é alcançada;

6
1.4 Introdução à modelagem de Sistemas a Eventos Discretos

(ii) a entrega e retirada de caixa são feitas em tempo nulo;


(iii) a entrega e retirada de caixa nunca ocorrem ao mesmo tempo.
A seguir, apresentamos um exemplo de como o estado do sistema pode ter se comportado
de acordo com o tempo. Note que não é possível determinar o valor de x em função do
tempo t, já que o momento em que um evento ocorre (entrega ou retirada de caixa) não é
definido.
x
4
3
2
1

Assim, denotando por t+ o instante imediatamente após o tempo t, é possível descrever o


comportamento desse sistema da seguinte formaa :




⎪x(t) + 1, se u1 (t) = 1;




x(t+ ) = ⎨x(t) − 1, se u2 (t) = 1 e x(t) > 0; (1.2)







⎪x(t), se u1 (t) = u2 (t) = 0.

Note que, apesar do estado x do sistema mudar apenas quando ocorre um evento, a
forma como esse sistema é descrito na equação (1.2) associa a quantidade de caixas no
armazém (estado) com o tempo. Portanto, é mais interessante modelar explicitamente
esse comportamento associando-se as mudanças de estado com a ocorrência de eventos.
a
Note que, de acordo com a hipótese (iii), não é possível que uma entrega e retirada de caixa ocorra ao mesmo
tempo e, portanto, não é possível ter u1 (t) = u2 (t) = 1.

1.4 Introdução à modelagem de Sistemas a Eventos Discretos

Antes de definir Sistemas a Eventos Discretos (SEDs) e introduzir exemplos de sistemas que
podem ser classificados como SEDs, é necessário apresentar formalmente o conceito de evento.
Definição 1.5. Evento
Um evento é qualquer ocorrência instantânea que pode promover uma mudança de estado
do sistema.

No exemplo a seguir, ilustramos quais eventos podem ser definidos para o exemplo 1.5 do
armazém.

7
1.4 Introdução à modelagem de Sistemas a Eventos Discretos

Exemplo 1.6. Armazém


Retornando ao exemplo 1.5, os eventos desse sistema podem ser identificados como:
a - chegada de produto;
r - saída de produto.
Também é possível determinar o conjunto de eventos deste sistema, denotado por Σ =
{a, r}.

A partir das definições 1.4 e 1.5, espaço de estados e evento, é possível definir o conceito
de Sistema a Eventos Discreto (SED).
Definição 1.6. Sistema a Eventos Discreto
Um Sistema a Evento Discreto (SED) é um sistema cujo espaço de estados X é um conjunto
discreto e cuja evolução é dada a partir da ocorrência de eventos.

1.4.1 Níveis de abstração de um SED

Alfabeto - Σ;
Palavra - sequência de eventos;
Linguagem - conjunto de sequências de eventos de comprimento finito.

1.4.2 Exemplos de SEDs

1.4.2.1 Sistema de fila

Elementos:
1. Clientes que aguardam por um determinado serviço ou utilização de um recurso;
2. servidor (que executa uma ação ou representa um recurso);
3. local onde a espera pelo serviço ou recurso é feita.
Na figura 1.1 apresentamos o esquemático de uma fila com um servidor, em que o evento
a representa a chegada de um novo cliente, o evento d a saída de clientes após serem atendidos
pelo servidor e X é o espaço de estados desse sistema que corresponde ao número de clientes na
fila.

chegada de saída de
clientes clientes
fila servidor

Figura 1.1: Esquemático de um sistema de fila, em que Σ = {a, d} e X = {0, 1, 2, . . .}.

Em sistemas de fila, duas características precisam ser definidas para descrever adequada-
mente o sistema:
1. Capacidade da fila;
2. disciplina da fila - sendo a mais comum conhecida como first in, first out (FIFO).

8
1.4 Introdução à modelagem de Sistemas a Eventos Discretos

Observação 1.2
Por convenção, o cliente que está sendo atendido pelo servidor também faz parte da fila.

1.4.2.2 Sistemas computacionais

Considere a figura 1.2 em que um esquemático de um sistema computacional é apresentado.


Note que esse sistema pode ser visto como um circuito de filas e servidores.

r1 d1
D1

r2 d2
CPU D2
a

Figura 1.2: Esquemático de um sistema computacional, em que Σ = {a, r1 , r2 , d1 , d2 , d} e X =


{(XCP U , XD1 , XD2 ) ∶ XCP U , XD1 , XD2 ≥ 0}.

1.4.2.3 Sistemas de manufatura

Na figura 1.3, o esquemático de um sistema de manufatura simples é apresentado. Para esse


sistema, qual seria o conjunto de eventos e o espaço de estados apropriado para descrever seu
funcionamento? Note que essa escolha está associada às possíveis hipóteses de funcionamento
do sistema.

M1 B M2
E1 E2

Figura 1.3: Sistema de manufatura simples composto por duas esteiras, E1 e E2 , duas máquinas, M1 e
M2 , e um buffer, B, entre as máquinas.

1.4.2.4 Sistemas híbridos

Na figura 1.4, a arquitetura de um sistema híbrido é apresentada, em que é possível identificar


como o controle supervisório, projetado utilizando-se o formalismo de SEDs, pode ser usado em
conjunto com o Controle em Variáveis Contínuas.

Saiba mais: Sistemas a Eventos Discretos


De acordo com a definição 1.6, um SED é um sistema cujo espaço de estados é discreto
e cuja evolução e dada a partir da ocorrência de eventos. Mesmo com essa definição, é
comum uma confusão em relação ao que é discreto, se o sistema ou o evento. Note que é
o conjunto de estados do SED que é discreto, não os eventos.

9
1.4 Introdução à modelagem de Sistemas a Eventos Discretos

Controle Supervisório

Interface

Cont. Var. Contı́nuas

Planta
Figura 1.4: Arquitetura de um sistema híbrido.

Saiba mais: Sistemas Dinâmicos a Eventos Discretos


Existe um debate se um SED é um sistema estático ou dinâmico...

Resumo
g Classificação de sistemas
g Estado
g Evento
g Modelagem de Sistemas a Eventos Discretos

F Exercícios resolvidos f

1. Exercício 1
Solução:

K Problemas k

1. Exercício 1
2. Exercício 2
3. Exercício 3

Referências selecionadas
Referência 1;
Referência 2;
Referência 3.

10
Parte I

Autômatos e Controle Supervisório


Parte II

Redes de Petri
Capítulo 2 -
Redes de Petri

All human things are subject to decay, and


when fate summons, Monarchs must obey

Mac Flecknoe
John Dryden

Conteúdo deste capítulo

h Grafo de uma rede de Petri (RdP) h Processos modelados por RdPs


h RdPs marcadas h Equação de estados de uma RdP
h Dinâmica da RdP

A definição de redes de Petri é feita em duas etapas separadas. Primeiro, a definição do


grafo de uma rede de Petri é introduzida, que se trata da representação gráfica de uma rede de
Petri. Em seguida, apresentamos os conceitos de marcação, dinâmica e rotulação, que permitem
com que as redes de Petri possam ser usadas para modelar Sistemas a Eventos Discretos (SEDs)
e, consequentemente, processos de automação.

2.1 Grafo de uma rede de Petri

A rede de Petri é um grafo orientado bipartido ponderado. Isso significa que existem dois
tipos de nós diferentes na rede de Petri: os lugares (representados por círculos, #) e as transições
(representados por barras, ∣), sendo conectados por arcos orientados (representados por setas,
→). Formalmente, o grafo de uma rede de Petri pode ser definido da seguinte forma.
Definição 2.1. Grafo de uma rede de Petri
O grafo (ou estrutura) de uma rede de Petri é uma quádrupla ⟨P, T, P re, P ost⟩, em que:
P = {p1 , p2 , . . . , pn } é o conjunto de lugares;
T = {t1 , t2 , . . . , tm } é o conjunto de transições;
P re ∶ P × T → N é a função de arcos que conectam lugares às transições;
P ost ∶ T × P → N é a função de arcos que conectam transições aos lugares.

É importante notar que, de acordo com a definição 2.1, nós de mesmo tipo não podem ser
conectados, ou seja, como descrito nas funções P re e P ost, um lugar nunca é conectado a outro
lugar e uma transição nunca é conectada a outra transição.
Além do grafo, é possível também definir os seguintes conjuntos.
2.1 Grafo de uma rede de Petri

Definição 2.2. Conjuntos de entrada e saída de lugares e transições


Os seguintes conjuntos podem ser definidos:
I(tj ) = {pi ∈ P ∶ P re(pi , tj ) > 0} é o conjunto formado pelos lugares de entrada
de tj ;
O(tj ) = {pi ∈ P ∶ P ost(tj , pi ) > 0} é o conjunto formado pelos lugares de saída
de tj ;
I(pi ) = {tj ∈ T ∶ P ost(tj , pi ) > 0} é o conjunto formado pelas transições de
entrada de pi ;
O(pi ) = {tj ∈ T ∶ P re(pi , tj ) > 0} é o conjunto formado pelas transições de saída
de pi .

A seguir apresentamos um exemplo de um grafo de uma rede de Petri que representa o


posicionamento de um robô em um mapa com quatro células.
Exemplo 2.1. Grafo de uma rede de Petri
Considere uma área dividida em quatro células onde um robô autônomo pode realizar
determinadas tarefas. O mapa simplificado desse sistema é apresentado a seguir.
1 2

3 4

O grafo de uma rede de Petri que modela o posicionamento do robô no mapa é apresentado
em seguida.

t1
p1 p2

t2

t8 t7 t3 t4

t5

p3 p4
t6

Note que cada lugar do grafo da rede de Petri (p1 a p4 ) representa uma célula do mapa e

14
2.2 Redes de Petri marcadas

cada transição (t1 a t8 ) uma mudança de posição do robô de uma célula para outra.

O exemplo 2.1 mostra o grafo de uma rede de Petri que representa a posição de um robô em
um mapa de 4 células. O exemplo a seguir ilustra um grafo de uma rede de Petri com estruturas
mais genéricas, em que todos os elementos do grafo são definidos.
Exemplo 2.2
Considere o grafo de uma rede de Petri definido da seguinte forma:
P = {p1 , p2 , p3 , p4 };
T = {t1 , t2 , t3 , t4 , t5 , t6 };
P re(p1 , t2 ) = P re(p1 , t3 ) = P re(p2 , t3 ) = P re(p3 , t5 ) = P re(p4 , t6 ) =
P re(p2 , t6 ) = 1; P re(p2 , t4 ) = 2;
P ost(t1 , p1 ) = P ost(t2 , p1 ) = P ost(t2 , p2 ) = P ost(t3 , p3 ) = P ost(t4 , p3 ) =
P ost(t4 , p4 ) = P ost(t6 , p1 ) = 1.
O desenho gráfico correspondente deste grafo é apresentado a seguir.

t3

p2 p3
t1 p1 t2 t5
−2

t6 t4

p4

Note que, como P re(p2 , t4 ) = 2, o arco que conecta o lugar p2 à transição t4 tem peso 2.
Quando o peso de um arco é maior do que 1, um pequeno traço é adicionado ao arco e o
valor correspondente do peso é escrito ao lado do traço.
De acordo com a definição 2.2, o conjunto de lugares de entrada da transição t3 é
I(t3 ) = {p1 , p2 }, o conjunto de lugares de saída da transição t2 é O(t2 ) = {p1 , p2 }, o
conjunto de transições de entrada do lugar p4 é I(p4 ) = {t4 } e o conjunto de transições
de saída do lugar p4 é O(p4 ) = {t6 }.

Como é possível ver no exemplo 2.1, embora no grafo da rede de Petri cada lugar represente
uma posição no mapa e as transições as mudanças de posição do robô, não existe nenhuma
informação que indique em qual posição o robô se encontra. Para isso, é necessário definir o
conceito de redes de Petri marcadas.

15
2.2 Redes de Petri marcadas

2.2 Redes de Petri marcadas

Em redes de Petri, as transições são associadas aos eventos que podem ocorrer no sistema
e os lugares representam as condições para que determinado evento ocorra. Nesse contexto, é
necessário definir um elemento que indique caso essas condições são de fato satisfeitas ou não.
De volta ao exemplo 2.1, é necessário adicionar ao grafo a informação sobre a posição do robô
de forma que as transições possíveis entre as células do mapa sejam indicadas na rede de Petri.
Isso é feito adicionando-se o que chamamos de fichas aos lugares, levando à definição de redes
de Petri marcadas. Quando uma ficha é adicionada a um lugar, isso indica que a condição que
esse lugar representa foi satisfeita. Em uma rede de Petri marcada, as fichas são representadas
por pontos pretos (●) no lugar apropriado1.
Definição 2.3. Rede de Petri marcada, ou rede de Petri
Uma rede de Petri marcada, ou rede de Petri, é uma quíntupla ⟨P, T, P re, P ost, x⟩, em
que ⟨P, T, P re, P ost⟩, de acordo com a definição 2.1, é um grafo de uma rede de Petri e
x ∶ P → N = {0, 1, 2, . . .} é a função de marcação.

De acordo com a definição 2.3, a marcação de uma rede de Petri é definida formal-
mente como a função x ∶ P → N. Assim, a marcação define um vetor de marcação
T
x = [x(p1 ) x(p2 ) . . . x(pn )] , em que x(pi ) é o número (inteiro não negativo) de fi-
chas associadas ao lugar pi , x(pi ) ∈ N. A seguir apresentamos a definição formal do vetor de
marcação da rede de Petri.
Definição 2.4. Vetor de marcação
A marcação de uma rede de Petri é dada pelo vetor coluna x =
T
[x(p1 ) x(p2 ) . . . x(pn )] formado pelo número de fichas de cada lugar.

Alguns exemplos de redes de Petri marcadas são apresentados em seguida.


Exemplo 2.3. Rede de Petri marcada
Voltemos ao exemplo 2.1 do robô em um mapa com quatro células.

1Em alguns casos em que o número de fichas é muito grande, é possível simplesmente escrever o número correspondente
de fichas no lugar.

16
2.2 Redes de Petri marcadas

t1
p1 p2

t2

1 2

t8 t7 t3 t4

t5

p3 p4
t6
3 4

Note que o robô ocupa a célula de número 1, representada pelo lupar p1 do grafo da
rede de Petri apresentado no exemplo 2.1. Com o objetivo de representar essa situação,
adicionamos uma ficha ao lugar p1 , gerando-se a seguinte rede de Petri.
Como agora o lugar p1 tem uma ficha, o vetor de marcação dessa rede de Petri é
T T
x = [x(p1 ) x(p2 ) x(p3 ) x(p4 )] = [1 0 0 0] , indicando que o robô está
parado dentro da célula de número 1 e não existem outros robôs no mapa.

O exemplo a seguir ilustra o caso em que mais de uma ficha é associada a um determinado
lugar.
Exemplo 2.4
2

p1 t1 p2

O vetor de marcação dessa rede de Petri é dado por:


T
x = [1 2] .

Note que, nessa rede de Petri, P ost(t1 , p2 ) = 2.


A marcação de uma rede de Petri também é chamada de estado da rede de Petri. Note que
o número de fichas que um determinado lugar pode ter não é limitado e, portanto, o número de
estados que uma rede de Petri genérica pode alcançar é infinito. Embora o termo “marcação” de
uma rede de Petri seja mais utilizado na literatura, o termo “estado” é consistente com a noção
de estado em sistemas dinâmicos.
As definições anteriores determinam como representar o estado de um sistema modelado
por uma rede de Petri. Entretanto, nosso objetivo é definir um formalismo capaz de representar

17
2.3 Dinâmica da rede de Petri

também a dinâmica de sistemas. Para tanto, é necessário definir um mecanismo de transição de


estados e, para isso, o conceito de transição habilitada deve ser introduzido. A ideia é propor
uma regra que defina quando uma determinada transição pode ocorrer com base na quantidade
de fichas de seus lugares de entrada.
Definição 2.5. Regra de habilitação
A transição tj ∈ T é dita estar habilitada (ou sensibilizada) quando

x(pi ) ≥ P re(pi , tj ), ∀pi ∈ I(tj ). (2.1)


De acordo com a regra de habilitação definida anteriormente, é possível notar que, no


exemplo 2.3, as transições t1 e t7 estão habilitadas. A seguir, outro exemplo é apresentado
ilustrando a regra de habilitação da rede de Petri.
Exemplo 2.5. Regra de habilitação

t3

p2 p3
t1 p1 t2 t5
−2

t6 t4

p4

T
Para a marcação x = [0 1 0 2] , as transições t1 e t6 estão habilitadas.

2.3 Dinâmica da rede de Petri

A mudança de marcação da rede de Petri se dá pela movimentação de fichas na rede,


provocando as mudanças de estado do modelo que representa o sistema. Quando uma transição
está habilitada, ela pode disparar (ou ocorrer) e, quando isso acontece, a marcação da rede
de Petri pode ser alterada. A dinâmica da rede de Petri determina como essa mudança de
marcação se dá quando uma transição tj ∈ T que está habilitada dispara.

Definição 2.6. Dinâmica da rede de Petri


Se uma transição tj ∈ T está habilitada, ela pode disparar. Quando tj dispara, uma nova
marcação x′ é alcançada:

x′ (pi ) = x(pi ) + P ost(tj , pi ) − P re(pi , tj ), (2.2)

18
2.3 Dinâmica da rede de Petri

para i = 1, . . . , n.

Observação 2.1
Note que, na equação (2.2), x′ e x não são vetores, já que x e x′ estão sendo definidos
para cada lugar pi , i = 1, . . . , n.

É importante notar que uma transição só pode disparar se estiver habilitada e, uma vez que
dispare, uma nova marcação é alcançada de acordo com a equação (2.2). Além disso, a equação
(2.2) também determina que o estado alcançado após o disparo de uma transição depende da
estrutura da rede de Petri, ou seja, depende explicitamente dos lugares de entrada e de saída da
transição que disparou e dos pesos dos arcos que conectam esses lugares à transição.
A equação (2.2) determina que se pi é um lugar de entrada de tj , ou seja, pi ∈ I(tj ), o
disparo de tj retira de pi uma quantidade de fichas equivalente ao peso do arco que conecta pi a
tj , isto é, P re(pi , tj ). Por outro lado, se pi é um lugar de saída de tj (pi ∈ O(tj )), o disparo de
tj adiciona uma quantidade de fichas a pi correspondente ao peso do arco que conecta tj a pi ,
P ost(tj , pi ). É possível que pi seja ao mesmo tempo um lugar de entrada e saída de tj . Nesse
caso, o disparo de tj retira P re(pi , tj ) fichas de pi e imediatamente adiciona P ost(tj , pi ) fichas
a pi .
O número de fichas em uma rede de Petri não necessariamente é conservado após o disparo
de uma transição. A equação (2.2) mostra que se

∑ P re(pi , tj ) > ∑ P ost(tj , pi )


pi ∈P pi ∈P
ou
∑ P ost(tj , pi ) > ∑ P re(pi , tj ),
pi ∈P pi ∈P

o número total de fichas da rede de Petri será menor ou maior, respectivamente, após o disparo de
tj . Isso mostra que é possível que, após uma determinada sequência de disparos de transições, a
marcação da rede de Petri seja igual a zero em todos os lugares, ou ainda que o número total de
fichas da rede aumente indefinidamente com uma sequência arbitrariamente longa de disparos
de transições.
Exemplo 2.6. Dinâmica da rede de Petri
Considere novamente o exemplo 2.3 do robô em um mapa com quatro células e sua respec-
T
tiva representação em redes de Petri, em que a marcação inicial é x0 = [1 0 0 0] ,
que indica que o robô está posicionado na célula 1.

19
2.3 Dinâmica da rede de Petri

t1
p1 p2

t2

1 2

t8 t7 t3 t4

t5

p3 p4
t6
3 4

As transições t1 e t7 , marcadas em vermelho e verde, respectivamente, estão habilitadas


e podem disparar. Supondo que a transição t1 dispare, a rede de Petri evolui para a
T
marcação x1 = [0 1 0 0] , já que P re(p1 , t1 ) = P ost(t1 , p2 ) = 1:

t1
p1 p2

t2

1 2

t8 t7 t3 t4

t5

p3 p4
t6
3 4

Note que, nesse caso, o disparo da transição t1 modela a passagem do robô da célula 1
para a célula 2 e, assim, a marcação x1 representa a nova posição do robô no mapa.

Exemplo 2.7. Dinâmica da rede de Petri


Considerando novamente a rede de Petri do exemplo 2.5 com marcação inicial x0 =
T
[0 1 0 2] :

20
2.3 Dinâmica da rede de Petri

t3

p2 p3
t1 p1 t2 t5
−2

t6 t4

p4

Vamos supor que a transição t1 (em vermelho junto com os arcos relacionados) que está
habilitada, dispare.

t3

p2 p3
t1 p1 t2 t5
−2

t6 t4

p4

T
A rede de Petri alcança a marcação x1 = [1 1 0 2] . Agora, vamos supor que a
transição t6 , em verde, dispare:

t3

p2 p3
t1 p1 t2 t5
−2

t6 t4

p4

T
A rede de Petri alcança a marcação x2 = [2 0 0 1] .

21
2.4 Processos modelados por redes de Petri

Observação 2.2
No exemplo 2.7, embora para algumas marcações mais de uma transição esteja habilitada,
apenas uma transição dispara por vez. Assim, a partir da marcação inicial, diversas
sequências de transições são possíveis.

Exemplo 2.8. Sequência de disparo


Considere novamente a rede de Petri do exemplo 2.7 com marcação inicial x0 =
T
[0 1 0 2] . A partir dessa marcação, é possível executar a seguinte sequência
de transições:

⎡0⎤ ⎡1⎤ ⎡2⎤ ⎡2⎤ ⎡1⎤ ⎡1⎤


⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢1⎥ t1 ⎢1⎥ t1 ⎢1⎥ t2 ⎢2⎥ t3 ⎢1⎥ t2 ⎢2⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢0⎥ ⎢0⎥ ⎢0⎥ ⎢0⎥ ⎢1⎥ ⎢1⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢2⎥ ⎢2⎥ ⎢2⎥ ⎢2⎥ ⎢2⎥ ⎢2⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦

Observação 2.3
De acordo com a definição 2.3 de redes de Petri, os lugares podem ser interpretados
como condições que devem ser satisfeitas para que as transições possam disparar. Essas
condições são verificadas com base na quantidade de fichas em cada lugar de entrada da
transição considerada, ou seja, as condições de disparo dependem da marcação da rede
de Petri e de sua estrutura.

2.4 Processos modelados por redes de Petri

2.4.1 Tipos de interação de processos

2.4.1.1 Cooperação

Processos concorrem a um objetivo em comum. Há uma independência de processos antes


de um ponto de sincronização.

2.4.1.2 Competição

Existe um número limitado de recursos que são necessários para o funcionamento dos
processos. Se houverem recursos suficientes, os processos se comportam de forma independente.
Em geral, esse compartilhamento de recursos é resolvido por exclusões mútuas. Assim, é
importante representar a exclusão entre processos a partir de um ponto de sincronização.

22
2.4 Processos modelados por redes de Petri

a a a

...
0 1 2

d d d

Figura 2.1: Modelo em redes de Petri de um sistema de fila. Os lugares indicam a quantidade de clientes
sendo atendidos e as transições modelam a chegada e saída de clientes do sistema.

2.4.1.3 Pseudo-paralelismo

O paralelismo é apenas aparente. Os eventos nunca são simultâneos, sendo ordenados por
um relógio (clock) em comum. Esse é o caso do funcionamento de um processador que, apesar
de ter inúmeras tarefas a serem processadas, apenas uma instrução por vez é executada.

2.4.1.4 Paralelismo verdadeiro

Eventos podem ocorrer simultaneamente, o que significa que n]ao é possível estabelecer uma
escala de tempo comum para determinar qual evento precedeu o outro. Isso ocorre, por exemplo,
quando várias tarefas são executadas em um computador paralelo, quando um processador é
alocado para cada tarefa independentemente.

2.4.2 Máquina de estados finitos

Para apresentar esse tipo de processo, vamos estudar dois exemplos de sistemas e seus
respectivos modelos em redes de Petri.

2.4.2.1 Processo sequencial único

Considere um sistema simples de fila, como o que foi apresentado na figura 1.1, em que
se deseja registrar não apenas a entrada e saída de clientes, mas o número de clientes que estão
aguardando atendimento (e o que está sendo atendido no momento). Uma possibilidade de
modelo para esse sistema pode ser vista na figura 2.1.
Para esse modelo, vamos considerar Σ = {a, d}, em que a é o evento que modela a chegada
de novos clientes e d a saída de clientes após o atendimento.
Note que, de acordo com a figura 2.1, o tamanho do modelo depende diretamente do
tamanho da fila. Esse tipo de rede de Petri é chamado de rede de Petri máquina de estados2.
Na figura 2.2, outro tipo de modelo é apresentado para o mesmo sistema. Nesse caso, o
modelo é finito e pode representar uma fila de qualquer capacidade.

2Uma rede de Petri máquina de estados é uma rede de Petri em que toda transição tem um único lugar de entrada e um
único lugar de saída.

23
2.4 Processos modelados por redes de Petri

a d

Figura 2.2: Modelo alternativo para o sistema de fila da figura 1.1. Nesse caso, a quantidade de fichas
no lugar Q representa a quantidade de clientes no sistema.

i1 i2

p1 p2 p3 p4

t1 t2

(a) Modelo da máquina M1 . (b) Modelo da máquina M2 .


Figura 2.3: Modelos de duas máquinas simples. Os lugares p1 e p3 indicam que as máquinas M1 e M2
estão desligadas, enquanto que p2 e p4 indicam que as máquinas estão ligadas.

2.4.2.2 Vários processos sequenciais

Considere um processo composto por duas máquinas, M1 e M2 , que funcionam de forma


independente. Os modelos em redes de Petri de M1 e M2 são apresentados na figura 2.3.
O modelo completo do sistema é apresentado na figura 2.4. Note que a modelagem
utilizando-se máquina de estados é ruim do ponto de vista computacional. De fato, o fenômeno
conhecido como explosão de estados ocorre sempre que se deseja representar vários subsistemas
por um único modelo. Para ilustrar esse fato, considere um conjunto de k máquinas de estado
com n estados cada uma. A tabela 2.1 ilustra a quantidade total de estados resultante de diferentes
combinações de componentes.

Tabela 2.1: Explosão combinatória do número de estados de sistemas modelados por máquinas de estado.

n 2 2 3 3 4 4 4 6 6 10 6 6
k 3 4 3 4 2 3 4 2 3 3 4 5
nk 8 16 27 81 16 64 256 36 216 1000 1296 7776

Como pode ser visto na tabela 2.1, o número de estados do modelo combinado resultante
de um sistema cresce consideravelmente com o número e com a quantidade de estados de cada
componente. Por exemplo, note que com apenas 5 componentes com 6 estados cada, resulta em
um sistema com nk = 65 = 7776 estados. Embora modelos completos possam ter um grande
número de estados, sua análise é importante para evitar problemas de modelagem, como por
exemplo bloqueios.

24
2.4 Processos modelados por redes de Petri

p13 i1 p23

t1

t2 i2 t2 i2

i1

p14 p24
t1

Figura 2.4: Máquina de estados que modela o sistema completo.

...
p1 t1 p2 t2 p3 t3

Figura 2.5: Sequência de transições.

2.4.3 Comportamentos e suas representações em redes de Petri

2.4.3.1 Sequência

Uma forma de se modelar uma sequência de operações pode ser feita como apresentado na
figura 2.5. Note que, nesse caso, todas as transições podem disparar apenas de acordo com uma
ordem predefinida, nesse caso t1 t2 t3 (. . .). Um sistema simples que pode ser representado como
uma sequência de transições é o itinerário de um sistema de transporte.

2.4.3.2 Evoluções síncronas e assíncronas

Na figura 2.6 os comportamentos de divisão (comportamento assíncrono) e junção (com-


portamento síncrono) são apresentados. Essas estruturas são úteis para modelar o início de
comportamentos em paralelo de sistemas automatizados e a sincronização de trabalhos que são
realizados de forma independente.

2.4.3.3 Caminhos alternativos e repetição

A estrutura apresentada na figura 2.7a é útil para modelar comportamentos alternativos


que são comuns em sistemas automatizados. Por exemplo, é possível que uma única planta
de manufatura produza dois tipos de produtos, dependendo da demanda de mercado. Assim,
as transições t2 t4 t6 podem representar o processo que produz o primeiro tipo de produto e a

25
2.4 Processos modelados por redes de Petri

t1 t1 t2

p1 p1 p2

t2 t3

p2 p3 p3

t3 t4 t4

⋮ ⋮ ⋮
(a) Comportamento de divisão. (b) Comportamento de junção.
Figura 2.6: Modelos de divisão e junção, que representam evoluções assíncronas e síncronas.

sequência de transições t3 t5 t7 o segundo tipo.


A repetição é um comportamento bastante intuitivo, sendo ilustrado na figura 2.7b. Nessa
estrutura, após o disparo de t1 , a sequência t3 t5 t6 pode ocorrer indefinidamente, até que a
transição t2 dispare quando p2 tiver uma ficha. Assim, um processo que deva ser executado
repetidamente até que alguma condição seja satisfeita pode ser modelado usando essa estrutura.

2.4.3.4 Alocação de recursos

Muitas vezes é necessário modelar sistemas que compartilham algum tipo de recurso.
Isso pode ser feito como ilustrado na figura 2.8. Note que, nessa figura, o lugar pr modela o
recurso que está sendo compartilhado entre o processo da esquerda (t3 t4 ) e o processo da direita
(t5 t6 ). Assim, caso um desses processos necessite usar esse recurso, o outro deve aguardar até a
finalização do trabalho, quando o recurso se tornará disponível novamente.

2.4.4 Exemplos

Nesta seção, apresentamos dois exemplos de sistemas automáticos que usam algumas das
estruturas apresentadas neste capítulo.
Exemplo 2.9. Sistema de transporte
Considere um sistema com dois robôs autônomos (agentes) que podem se mover livremente
em duas estações de trabalho, E1 e E2 , como ilustrado na figura a seguir.

E1 E2

26
2.4 Processos modelados por redes de Petri

t1

p1
p1
t2 t3 t1

p2
p2 p3

t4 t5 t2 t6 t3

p4 p5 p3 p4

t6 t7 t4 t5
p6
⋮ p5
(b) Repetição.
t8
(a) Caminhos alternativos.
Figura 2.7: Modelos de comportamentos de caminhos alternativos e repetição.

t1

p1

t2

p2 ⋮

t3 t5

p3 pr p5

t4 t6

p4 ⋮

Figura 2.8: Rede de Petri que ilustra o comportamento de alocação de recursos. O recurso é representado
pelo lugar pr .

27
2.4 Processos modelados por redes de Petri

Essas estações são conectadas por um trilho que permite a passagem de apenas um robô
por vez. Cada robô tem a finalidade de transportar insumos entre as estações de trabalho
e possui características únicas que são exigidas para a produção em ambas as estações
de trabalho. Neste exemplo, o interesse é modelar a movimentação dos robôs entre as
estações de trabalho sem fazer distinção entre os agentes. A rede de Petri que modela o
sistema é apresentada a seguir.

t1 1→2 t2

T
E1 E2

t3 2→1 t4

O lugar T representa o trilho que, nesse caso, é um recurso compartilhado pelos dois
robôs. Os lugares E1 e E2 representam a quantidade de robôs que estão na estação E1
e E2 , respectivamente. Esse lugares são iniciados com uma ficha cada para representar
o estado inicial em que há apenas um robô em cada estação de trabalho. Já os lugares
1 → 2 e 2 → 1 modelam a passagem de um robô da estação de trabalho E1 para a estação
de trabalho E2 e da estação de trabalho E2 para a estação E1 , respectivamente. Note que
sempre que um robô está realizando a transição de uma estação para a outra, o recurso
T fica indisponível.

Exemplo 2.10. Sistema de batelada


Um sistema de batelada pode produzir dois produtos, P r1 e P r2 , em dois reatores
utilizados de forma concorrente, como representado na figura a seguir.

P r1

P r2
B1 B2

R1 R2

28
2.5 Equação de estado da rede de Petri

O produto P r1 pode ser produzido pelo reator R1 ou R2 , sendo previamente armazenado


no buffer B1 ou B2 , respectivamente. O produto P r2 pode ser produzido diretamente (e
apenas) no reator R2 . Embora o reator R2 possa ser usado para a produção de ambos os
produtos, isso é feito com apenas um produto por vez. O sistema funciona da forma como
descrito de maneira repetitiva. O modelo em redes de Petri desse sistema é apresentado
a seguir.

p1

ta td

p2 p4 p6

tb te tg

R1 p3 p5 R2 p7

tc tf th

Os lugares R1 e R2 modelam a disponibilidade de cada reator e p2 e p4 modelam os


buffers B1 e B2 , respectivamente. Note que o resultado de ambas as sequências ta tb tc e
td te tf é a produção de P r1 , enquanto que P r2 é produzido após a sequência tg th . Como
o processo é repetitivo, existem estruturas de repetição nesse modelo. Além disso, note
que o lugar R2 é comum às sequências td te tf e tg th , representando a disponibilidade do
reator R2 para produção de P r1 ou P r2 .

 Exercício 2.1 Modele o mesmo sistema do exemplo 2.10 utilizando máquinas de estados.

2.5 Equação de estado da rede de Petri

2.5.1 Notação

Antes de deduzir a equação de estados de uma rede de Petri, é necessário definir a notação
usada para os vetores de marcação antes e depois do disparo de uma transição tj ∈ T :
T
x = [x(p1 ) x(p2 ) . . . x(pn )] - estado atual, antes do disparo da transição tj ;

29
2.5 Equação de estado da rede de Petri
T
x′ = [x′ (p1 ) x′ (p2 ) . . . x′ (pn )] - próximo estado alcançado após o disparo da
transição tj .

2.5.2 Matriz de incidência

Dado a marcação atual x da rede de Petri, vamos supor que a transição tj dispare, fazendo
com que a rede de Petri alcance a marcação x′ . Assim, supondo que tj dispare, temos que:

x′ (p1 ) = x(p1 ) + P ost(tj , p1 ) − P re(p1 , tj );


x′ (p2 ) = x(p2 ) + P ost(tj , p2 ) − P re(p2 , tj );

x′ (pn ) = x(pn ) + P ost(tj , pn ) − P re(pn , tj ).

Organizando essas equações em forma matricial, tem-se:

⎡ x′ (p ) ⎤ ⎡ x(p ) ⎤ ⎡ P ost(t , p ) ⎤ ⎡ P re(p , t ) ⎤


⎢ 1 ⎥ ⎢ 1 ⎥ ⎢ j 1 ⎥ ⎢ 1 j ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ′ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ x (p2 ) ⎥ ⎢ x(p2 ) ⎥ ⎢ P ost(tj , p2 ) ⎥ ⎢ P re(p2 , tj ) ⎥
⎢ ⎥=⎢ ⎥+⎢ ⎥−⎢ ⎥.
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ (2.3)
⎢ ⋮ ⎥ ⎢ ⋮ ⎥ ⎢ ⋮ ⎥ ⎢ ⋮ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ′ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢x (pn )⎥ ⎢x(pn )⎥ ⎢P ost(tj , pn )⎥ ⎢P re(pn , tj )⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦
A equação (2.3) pode ser escrita como:

x′ = x + Ain u − Aout u, (2.4)

em que:

⎡ ⎤
⎢ ⎥
⎡ P ost(t , p ) . . . P ost(t , p ) . . . P ost(t , p ) ⎤ ⎢0⎥
⎢ m 1 ⎥⎢ ⎥
⎢ 1 1 j 1
⎥⎢⋮⎥
⎢ ⎥⎢ ⎥
⎢ P ost(t1 , p2 ) . . . P ost(tj , p2 ) . . . P ost(tm , p2 ) ⎥ ⎢ ⎥

A u=⎢
in ⎥ ⎢1⎥ ,
⎥⎢ ⎥
⎢ ⋮ ⋱ ⋮ ⋱ ⋮ ⎥⎢ ⎥
⎢ ⎥⎢⋮⎥
⎢ ⎥⎢ ⎥
⎢P ost(t1 , pn ) . . . P ost(tj , pn ) . . . P ost(tm , pn )⎥ ⎢ ⎥
⎣ ⎦⎢ ⎥
⎢0⎥
⎣ ⎦
e

⎡ ⎤
⎢ ⎥
⎡ P re(p , t ) . . . P re(p , t ) . . . P re(p , t ) ⎤ ⎢0⎥
⎢ 1 m ⎥⎢ ⎥
⎢ 1 1 1 j
⎥⎢⋮⎥
⎢ ⎥⎢ ⎥
⎢ P re(p , t ) . . . P re(p , t ) . . . P re(p , t ) ⎥⎢ ⎥
A u=⎢
out ⎢ 2 1 2 j 2 m ⎥ ⎢1⎥ .
⎥⎢ ⎥
⎢ ⋮ ⋱ ⋮ ⋱ ⋮ ⎥⎢ ⎥
⎢ ⎥⎢⋮⎥
⎢ ⎥⎢ ⎥
⎢P re(pn , t1 ) . . . P re(pn , tj ) . . . P re(pn , tm )⎥ ⎢ ⎥
⎣ ⎦⎢ ⎥
⎢0⎥
⎣ ⎦
A equação (2.4) pode ser simplificada da seguinte forma:

30
2.5 Equação de estado da rede de Petri

x′ = x + Ain u − Aout u ⇒
x′ = x + (Ain − Aout )u ⇒
x′ = x + Au.

Definição 2.7. Matriz de incidência


A = Ain − Aout é chamada de matriz de incidência.

2.5.3 Equação de estado

A partir da equação (2.4) e considerando x0 o vetor de marcação inicial, podemos deduzir


a equação de estados da rede de Petri da seguinte forma:

x1 = x0 + Au0 ;
x2 = x1 + Au1 = x0 + Au0 + Au1 = x0 + A(u0 + u1 );
x3 = x2 + Au2 = x0 + A(u0 + u1 + u2 );

xk = x0 + A(u0 + u1 + . . . + uk ) = x0 + Av.

Logo,
x′ = x0 + Av. (2.5)

Em que x′ é o vetor de marcação alcançado pela rede de Petri após todos os disparos
das transições descritos pelo vetor v, chamado de vetor de contagem de disparo. O vetor ui é
conhecido como vetor de disparo.
Exemplo 2.11. Equação de estados de uma rede de Petri
Considere a seguinte rede de Petri.

p2
t2

p1 p4
t1
t3
p3

A matriz de incidência dessa rede é dada por:

31
2.5 Equação de estado da rede de Petri

t1 t2 t3
RRR R
p1 RRR −1 0 −1 RRRRR
RRR R
p2 RRR 1 0 0 RRRRR
p3 RRR 1 −1 −1 RRR
RRR R
p4 RRR 0 1 −1 RRRRR
R R

Note que é possível construir a matriz de incidência facilmente associando-se as linhas


aos lugares e as colunas às transições. Assim, basta usar a equação (2.2) para cada
combinação de lugar e transição.
Agora, vamos supor que a transição t1 dispare duas vezes e a transição t2 dispare uma
T
vez. Nesse caso, vetor de contagem de disparo é v = [2 1 0] , e, aplicando v na
equação (2.5), temos:
⎡2⎤ ⎡−1 0 −1⎤ ⎡ ⎤
⎢ ⎥ ⎢ ⎥ ⎡ ⎤ ⎢0⎥
⎢ ⎥ ⎢ ⎥ ⎢2⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢0⎥ ⎢ 1 0 0 ⎥⎥ ⎢⎢ ⎥⎥ ⎢⎢2⎥⎥
x′ = ⎢⎢ ⎥⎥ + ⎢⎢ ⎥ ⎢1 ⎥ = ⎢ ⎥.
⎢0⎥ ⎢ 1 −1 −1⎥ ⎢⎢ ⎥⎥ ⎢1⎥
⎢ ⎥ ⎢ ⎥ ⎢0⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎢ ⎥
⎢1⎥ ⎢ 0 1 −1 ⎥ ⎢2⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
T
Assim, a rede de Petri alcança a marcação x′ = [0 2 1 2] :

p2
t2

p1 p4
t1
t3
p3

T
A marcação x′ = [0 2 1 2] pode ter sido alcançada devido à sequência de transições
t1 t1 t2 ter disparado. A seguir, mostramos como a marcação da rede de Petri evolui de
T
acordo com essa sequência de disparos para x0 = [2 0 0 1] .
T
1. x0 = [2 0 0 1] , t1 está habilitada:

p2
t2

p1 p4
t1
t3
p3

32
2.6 Comentários finais sobre redes de Petri

T
2. t1 dispara, a rede alcança a marcação x1 = [1 1 1 1] . t1 está habilitada:

p2
t2

p1 p4
t1
t3
p3

T
3. t1 dispara, a rede alcança a marcação x2 = [0 2 2 1] . t2 está habilitada:

p2
t2

p1 p4
t1
t3
p3

T
4. t2 dispara, a rede alcança a marcação x3 = [0 2 1 2] = x′ :

p2
t2

p1 p4
t1
t3
p3

2.6 Comentários finais sobre redes de Petri

Saiba mais: breve glossário sobre redes de Petri


A maior parte do conteúdo disponível sobre redes de Petri está em língua inglesa. Assim
sendo, neste Saiba mais apresentamos uma lista com a correspondência em inglês dos
principais conceitos introduzidos neste capítulo.
Rede de Petri - Petri net;
Lugar - place;

33
2.6 Comentários finais sobre redes de Petri

Transição - transition;
Ficha - token;
Marcação - marking;
Disparo - firing;
Além da correspondência em inglês, é importante comentar que algumas referências
bibliográficas usam uma nomenclatura diferente para alguns conceitos, como é o caso de
transições habilitadas, também referidas como transições sensibilizadas.

Saiba mais: Carl Adam Petri (12 de julho de 1926 – 2 de julho de 2010)
Carl Adam Petri nasceu em Leipzig, Alemanha, em 12 de julho de
1926 e fez carreira como matemático e cientista da computação.
Carl criou o formalismo que hoje chamamos de redes de Petri (ou
rede lugar-transição) em 1939 quando tinha 13 anos com o objetivo
de descrever processos estequiométricos. Ele formalizou o conceito
de redes de Petri em 1962 como parte de sua tese de doutorado
Kommunikation mit Automaten (PhD), obtido no mesmo ano pela
Carl Adam Petri.
Fonte: Wikipédia. Technische Universität Darmstadt.
Em 1988, Petri tornou-se professor honorário na Universidade de
Hamburgo. Seu trabalho contribuiu para o avanço dos campos de computação paralela
e distribuída e ajudou a formar os estudos modernos de sistemas complexos e sistemas
de gerenciamento de processos. Seus trabalhos encaixam-se na grande área da teoria de
redes, que inclui modelos de coordenação e teorias de interação, que eventualmente levou
ao estudo de conectores de softwares.
Em 2009, Carl Adam Petri recebeu o prestigioso Prêmio Pioneiro de Computação (IEEE
Computer Pioneer Award 2008) do Instituto de Engenheiros Eletricistas e Eletrônicos
(IEEE),

for establishing Petri net theory in 1962, which not only was cited by hundreds
of thousands of scientific publications but also significantly advanced the
fields of parallel and distributed computing.

Por formalizar a teoria de redes de Petri em 1962, que não apenas foi citada por centenas
de milhares de publicações científicas, mas também por ter avançado significativamente
os campos de computação paralela e distribuída (tradução livre). Essa citação foi retirada
da página da IEEE computer society.

34
2.6 Comentários finais sobre redes de Petri

Exemplo de uma rede de produção. Fonte: Scholarpedia.

Mais informações acerca da vida e obra de Carl Adam Petri:


Página pessoal de Carl Adam Petri hospedada pela Universidade de Hamburgo.
Artigo Carl Adam Petri and “Petri Nets” escrito por Wilfried Brauer e Wolfgang
Reisig, traduzido para o inglês a partir da Informatik-Spektrum, Vol. 29, Nr. 5, pp.
369-374, Springer Verlag, 2006. É possível acessar as versões em inglês em [doc]
ou [pdf]. A versão em alemão também pode ser encontrada em [pdf] ou [doc].

Resumo
g
K Problemas k

1. Identifique quais das redes apresentadas na figura 2.9 são redes de Petri de acordo com a
definição 2.3.
2. Para as redes do problema anterior que foram identificadas como redes de Petri, determine:
(a). as transições que estão habilitadas;
(b). a marcação alcançada após o disparo dessas transições.
3. Considere um sistema composto por duas máquinas, M1 e M2 e um buffer3 B entre elas.
Cada máquina tem apenas dois estados, (i) livre e (ii) trabalhando. Modele esse sistema
utilizando redes de Petri considerando que o B tem capacidade para armazenar até 3 peças
e que o sistema é iniciado sem nenhuma peça.
4. Seja o sistema descrito no problema anterior e considere agora que as máquinas M1 e
M2 podem quebrar quando estão processando uma peça, alcançando o estado “quebrado”.
Quando uma máquina quebra, a peça que estava sendo processada é perdida. Máquinas
quebradas podem ser consertadas e, quando são, retornam ao estado inicial. Obtenha o
modelo desse sistema em redes de Petri.

3Um buffer funciona como uma fila e serve para armazenar peças enquanto algum processo posterior é finalizado.

35
2.6 Comentários finais sobre redes de Petri

p1 p1 p2 p3

t1 t1

p2 p3 p4
(a) (b)

p1

t1

p2
p1 p2

p3 t1

t2 p3
(c) (d)

p1

t1

p1 t1
(e) (f) (g)

t1

p1

t2

p1 t3 t1

t1 p2 p1
(h) (i) (j)
Figura 2.9: Redes do Problema 1.

36
Capítulo 3 -
Redes de Petri rotuladas

All human things are subject to decay, and


when fate summons, Monarchs must obey

Mac Flecknoe
John Dryden

Conteúdo deste capítulo

h
Definição 3.1. Rede de Petri rotulada
Uma rede de Petri rotulada é uma óctupla N = ⟨P, T, P re, P ost, x, Σ, `, Xm ⟩, em que:
⟨P, T, P re, P ost, x⟩ é, de acordo com a definição 2.3, uma rede de Petri marcada;
Σ é o conjunto de eventos para rotulação;
` ∶ T → Σ é a função de rotulação;
Xm é o conjunto de estados marcados.

Observação 3.1
É possível associar o mesmo evento a mais de uma transição. Além disso, o domínio de `
pode ser estendido, ou seja, ` ∶ T ⋆ → Σ⋆a .
a
Σ⋆ denota o fecho de Kleene de Σ, isto é, Σ⋆ = {ε ∪ Σ ∪ ΣΣ ∪ ...}.

Definição 3.2. Rede de Petri rotulada estendida (RPRE)


Uma rede de Petri rotulada estendida é uma nônupla N =
⟨P, T, P re, P ost, In, x, Σ, `, Xm ⟩, em que:
N = ⟨P, T, P re, P ost, In, x, Σ, `, Xm ⟩ é, de acordo com a definição 3, uma rede
de Petri rotulada;
In ∶ (P × T ) → N é a função de arcos inibidores.

Os arcos inibidores são representados por um círculo no final do arco (⊸), no lugar da seta
do arco ordinário.

3.1 Linguagens de uma rede de Petri

É possível definir duas linguagens em uma rede de Petri.


3.1 Linguagens de uma rede de Petri

Definição 3.3. Linguagem gerada por uma rede de Petri


A linguagem gerada por uma rede de Petri rotulada N = ⟨P, T, P re, P ost, Σ, `, x, Xm ⟩ é

L(N ) = {`(s) ∈ Σ⋆ ∶ s ∈ T ⋆ ∧ f (x0 , s)!} (3.1)


Sendo que o símbolo ! significa é definido(a).


Definição 3.4. Linguagem marcada por uma rede de Petri
A linguagem marcada por uma rede de Petri rotulada N = ⟨P, T, P re, P ost, Σ, `, x, Xm ⟩
é

Lm (N ) = {`(s) ∈ L(N ) ∶ s ∈ T ⋆ ∧ f (x0 , s) ∈ Xm } (3.2)


Resumo
g
F Exercícios resolvidos f

1. exercise 1
Solução:

K Problemas k

1.

38
Capítulo 4 -
Comentários finais sobre Redes de Petri

Murata, T.; Petri nets: Properties, analysis and applications. Proceedings of the IEEE
77.4 (1989): 541-580. https://doi.org/10.1109/5.24143
Cassandras, C. G., and Lafortune, S.; Introduction to discrete event systems. Springer
Science & Business Media, 2008. https://doi.org/10.1007/978-0-387-68612-7
David, R., and Alla, H.; Discrete, continuous, and hybrid Petri nets. IEEE Control
Systems 28.3, 2008: 81-84. https://doi.org/10.1007/978-3-642-10669-9
Site Petri nets world, http://www.informatik.uni-hamburg.de/TGI/PetriNets/
index.php.
Esta é uma excelente fonte de informações relacionadas a redes de Petri. Em parti-
cular, é possível encontrar informações biográficas e diversas ferramentas digitais de
modelagem e análise.
Apêndice
Supremica
Apêndice
Integrated Discrete-Event Systems - IDES
Apêndice
Time petri Net Analyzer - TINA
Sobre os autores

Felipe G. Cabral nasceu no Rio de Janeiro, RJ, Brasil, em 1989.


Recebeu os diplomas de Engenheiro Eletricista, Mestrado e Douto-
rado em Engenharia Elétrica pela Universidade Federal do Rio de
Janeiro (UFRJ) em 2013, 2014 e 2017, respectivamente. Desde 2018
é Professor Associado do Departamento de Automação e Sistemas
da Universidade Federal de Santa Catarina (UFSC), Campus de Flo-
rianópolis, Brasil. Seus interesses de pesquisa atuais são Teoria e
Aplicações de Sistemas a Eventos Discretos em diversos domínicos,
como diagnóstico de falhas, síntese de controladores discretos a eventos, segurança de sistemas
ciber-físicos e fontes renováveis de energia.

Max H. de Queiroz recebeu o diploma de Engenheiro de Controle e Auto-


mação, Mestrado e Doutorado em Engenharia Elétrica pela Universidade
Federal de Santa Catarina (UFSC), Florianópolis, Brasil, em 1998, 2000
e 2004, respectivamente. Em 2006, integrou-se ao Departamento de Au-
tomação e Sistemas da UFSC, onde atualmente é Professor Associado e
Membro Permanente do Programa de Pós-Graduação em Engenharia de
Automação e Sistemas (PPGEAS). Seus interesses de pesquisa atuais são
teoria e aplicações de Sistemas a Eventos Discretos em diversos domínios,
incluindo manufatura, robótica e sistemas de segurança.
Apêndice
Histórico de mudanças

07/10/2020 Atualizações: lançamento da v0.3


1 Capítulo 2
1 Adição de problemas (exercícios) ao final do capítulo.
2 Adição da seção “Sobre os autores”.

01/05/2020 Atualizações: lançamento da v0.2


1 Alterações gerais
1 Adição de modelo de epígrafe aos capítulos;
2 Adição do modelo de finalização de capítulo;
2 Capítulo 2
1 Adição do sumário;
2 Adição de explicações em texto;
3 Extensão do exemplo do robô em um mapa com 4 células para ilustrar marcação e
dinâmica da rede de Petri;
4 Adiantamento no texto da observação 2.2;
5 Adição da seção Saiba mais: breve glossário sobre redes de Petri;
6 Adição da seção Saiba mais: Carl Adam Petri (12 de julho de 1926 - 2 de julho de
2010).
7 Adição de algumas referências selecionadas.

Você também pode gostar