Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
A Supremica 40
D Histórico de mudanças 44
Prefácio
Agradecimentos
Organização do livro
Capítulo 1 -
Introdução
Mac Flecknoe
John Dryden
u1 y1 u1 y1
modelagem Modelo
u2 Sistema y2 u2 y2
u3 y3 Matemático
u3 y3
1.1.2.1 Linear
1.1.2.3 Dinâmico
1.1.2.4 Contínuo
k
y(k) = ∑ h(k − m)u(m)
m=0
1.2 Estado
O primeiro passo para determinar as variáveis de estado deste sistema é obter seu modelo
matemático:
u − ky = mÿ
3
1.2 Estado
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
♠
x x
t 1 2 3 4 5 6 7 8 9 t
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.
♠
u1 u2
6
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
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.
♣
Alfabeto - Σ;
Palavra - sequência de eventos;
Linguagem - conjunto de sequências de eventos de comprimento finito.
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
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.
♢
r1 d1
D1
r2 d2
CPU D2
a
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.
9
1.4 Introdução à modelagem de Sistemas a Eventos Discretos
Controle Supervisório
Interface
Planta
Figura 1.4: Arquitetura de um sistema híbrido.
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
Redes de Petri
Capítulo 2 -
Redes de Petri
Mac Flecknoe
John Dryden
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
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
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.
♣
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
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
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.
♠
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
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
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.
♠
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.
♢
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.1.1 Cooperaçã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.
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.
Para apresentar esse tipo de processo, vamos estudar dois exemplos de sistemas e seus
respectivos modelos em redes de Petri.
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
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
...
p1 t1 p2 t2 p3 t3
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.
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.
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.
♠
P r1
P r2
B1 B2
R1 R2
28
2.5 Equação de estado da rede de Petri
p1
ta td
p2 p4 p6
tb te tg
R1 p3 p5 R2 p7
tc tf th
Exercício 2.1 Modele o mesmo sistema do exemplo 2.10 utilizando máquinas de estados.
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 .
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:
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.
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
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
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
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
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
Mac Flecknoe
John Dryden
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 é, Σ⋆ = {ε ∪ Σ ∪ ΣΣ ∪ ...}.
♢
Os arcos inibidores são representados por um círculo no final do arco (⊸), no lugar da seta
do arco ordinário.
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