redes de petri modelo de especificação formal alessandra guaracy de oliveira patrick henrique da...
TRANSCRIPT
![Page 1: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/1.jpg)
Redes de Petri
Modelo de Especificação Formal
Alessandra Guaracy de Oliveira
Patrick Henrique da Silva Brito
![Page 2: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/2.jpg)
Sumário
Introdução Variantes de Redes de PetriFerramentas disponíveisEstudo de Caso (Elevador)Conclusões
![Page 3: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/3.jpg)
Referências BibliográficasMaciel, Lins e Cunha. Introdução às Redes de Petri, 10ª Escola de Computação, 1996
Petri Nets Tool Database -http://www.daimi.au.dk/PetriNets/tools/db.html
Barros, João Paulo M. P. Introdução à Modelagem de Sistemas utilizando Redes de Petri, 2001. Disponível em http://www.estig.ipbeja.pt/~jpb/textos/pc/pn.pdf
![Page 4: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/4.jpg)
Definição
“Redes de Petri é uma técnica de especificação de sistemas que possibilita uma representação matemática e possui mecanismos de análise poderosos, que permitem a verificação de propriedades e verificação da corretude do sistema especificado.”
![Page 5: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/5.jpg)
Estrutura das Redes de Petri
LugarTransiçãoArcoMarcaArco Inibidor
1 22
21
2
![Page 6: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/6.jpg)
Características Redes de Petri
Não-determinísticas Podem ser mapeadas em máquinas de estados Várias formas de representação:– Gráfica– Bag (conjuntos e funções matemáticas)– Matrizes– Definição por relações
![Page 7: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/7.jpg)
Variantes de Redes de Petri
Rede Temporal, Rede Hierárquica;Rede Colorida
d
c
b
a
MarcasCores
t1
t0<a>
<c><a>
<[a,b]>
<a>
<c>
t1
t0<a>
<c><a>
<[a,b]>
<a>
<c>
Após o disparo transição t1
![Page 8: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/8.jpg)
Propriedades das Redes de Petri
Alcançabilidade (Reachability)
Limitação (Boundedness)Liveness
Cobertura
![Page 9: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/9.jpg)
Ferramentas
Ferramentas para verificação da corretude do modelo (checa deadlock)– ferramenta utilizada HPSim
Ferramentas para checar propriedades das redes de Petri (alcançabilidade, cobertura)– INA (
![Page 10: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/10.jpg)
HPSim
Suporte a redes lugar-transição (sem marcas coloridas), redes com lugares com diferentes capacidades e rede temporal.
![Page 11: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/11.jpg)
Problema do ElevadorRede de Petri Temporal e com arco inibidor
![Page 12: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/12.jpg)
Modelagem utilizando Rede Colorida
nova_dir
dirmuda_dir
(dir,lista)
Subir|descer
dir
(dir,nova_lista)(dir,lista)
(dir,lista)(dir,nova_lista)
Lista de paradas
Lista subidasLista descidas
andar
v
(novo_mov,novo_u)(mov,u)
(mov,u)
pos
dir
i
subir|descer|parado
![Page 13: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/13.jpg)
Funções e VariáveisOs pedidos são mantidos em quatro listas: lista_subida, lista_subida_prox (ordenadas em ordem crescente), lista_descida e lista_descida_prox (ordenadas em ordem descrecente).n - (número de andares)pos {0,...,n-1} posição do elevadorandar {0,...,n-1} (botões pressionados dentro do elevador)bot_sub,bot_des {0,...,n-1}
![Page 14: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/14.jpg)
Funções e Variáveis
dir {subir, descer, parado}ordena_sub(par,lista) | ordena_des(par,lista) coloca o valor par na lista em ordem crescente|descrente, respectivamente
![Page 15: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/15.jpg)
Lógica - Movimento Subida
(dir == subir) ^(andar > pos) lista_subida = ordena_sub(andar,lista_subida)(andar < pos) lista_descida_prox = ordena_des(andar,
lista_descida_prox)(bot_sub > pos) lista_subida = ordena_sub(bot_sub,lista_subida)(bot_sub < pos) lista_subida_prox =
ordena_sub(bot_sub,lista_subida_prox)(bot_des != pos) lista_descida_prox =
ordena_des(bot_des,lista_descida_prox)
![Page 16: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/16.jpg)
Lógica - Movimento Descida
(dir == descer) ^(andar < pos) lista_descida = ordena_des(andar,lista_descida)(andar > pos) lista_subida_prox = ordena_sub(andar,
lista_subida_prox)(bot_des < pos) lista_descida =
ordena_des(bot_des,lista_descida)(bot_des > pos) lista_descida_prox =
ordena_des(bot_des,lista_descida_prox)(bot_sub != pos) lista_subida_prox =
ordena_sub(bot_sub,lista_subida_prox)
![Page 17: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/17.jpg)
Mudando direção
quando está subindo e lista_subida fica vazia
(dir == subir) ^empty(lista_subida) ^ not_empty(lista_descida_prox) ^ (head(lista_descida_prox) >
pos){ lista_subida = cons(head(lista_descida_prox) >
pos),lista_subida) lista_descida_prox = tail(lista_descida_prox) }
![Page 18: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/18.jpg)
Mudando direção
quando está subindo e lista_subida fica vazia
(dir == subir) ^empty(lista_subida) ^ not_empty(lista_descida_prox) ^ (head(lista_descida_prox) <= pos){ dir = descer; lista_descida = lista_descida_prox; clear(lista_descida_prox); }
![Page 19: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/19.jpg)
Mudando direção
quando está subindo e lista_subida fica vazia
(dir == subir) ^empty(lista_subida) ^ empty(lista_descida_prox) ^ not_empty(lista_subida_prox){ dir = descer; lista_descida =
cons(head(lista_subida_prox),lista_descida); }
![Page 20: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/20.jpg)
Mudando direçãoquando está subindo e lista_subida fica vazia
(dir == subir) ^empty(lista_subida) ^ empty(lista_descida_prox) ^empty(lista_subida_prox)
dir = parado;
![Page 21: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/21.jpg)
Mudando direção
quando está descendo e lista_descida fica vazia
(dir == descer) ^ empty(lista_descida) ^not_empty(lista_subida_prox) ^(head(lista_subida_prox)
<= pos) { lista_descida =
cons(head(lista_subida_prox),lista_descida); lista_subida_prox = tail(lista_subida_prox);}
![Page 22: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/22.jpg)
Mudando direção
quando está descendo e lista_descida fica vazia
(dir == descer) ^ empty(lista_descida) ^empty(lista_subida_prox) ^ not_empty(lista_descida_prox){ dir = subir; lista_subida =
cons(head(lista_descida_prox),lista_subida); lista_descida_prox = tail(lista_descida_prox);}
![Page 23: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/23.jpg)
Mudando direção
quando está descendo e lista_descida fica vazia
(dir == descer) ^ empty(lista_descida) ^empty(lista_subida_prox) ^empty(lista_descida_prox) dir = parado;
![Page 24: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/24.jpg)
Atualizando a lista de subida durante o movimento de subida
(dir == subir) { if (head(lista_subida) == pos) lista_subida = tail(lista_subida); pos = pos + 1;}
![Page 25: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/25.jpg)
Atualizando a lista de descida durante o movimento de descida
(dir == descer) { if (head(lista_descida) == pos) lista_descida = tail(lista_descida); pos = pos - 1;}
![Page 26: Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito](https://reader036.vdocuments.site/reader036/viewer/2022062404/552fc10b497959413d8c1168/html5/thumbnails/26.jpg)
Conclusões
Rede de Petri é um modelo dinâmico, não-determinístico e seu formalismo possibilita a verificação da existência de deadlocks
A rede de Petri simples possui muitas limitações, como por exemplo: não permite passagem de parâmetros e eventos temporais (Solução: uso de variantes do modelo)