A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito.

Apresentações semelhantes


Apresentação em tema: "Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito."— Transcrição da apresentação:

1 Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito

2 Sumário Introdução Variantes de Redes de Petri Ferramentas disponíveis Estudo de Caso (Elevador) Conclusões

3 Referências Bibliográficas Maciel, Lins e Cunha. Introdução às Redes de Petri, 10ª Escola de Computação, 1996 Petri Nets Tool Database - Barros, João Paulo M. P. Introdução à Modelagem de Sistemas utilizando Redes de Petri, Disponível em

4 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.

5 Estrutura das Redes de Petri Lugar Transição Arco Marca Arco Inibidor

6 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

7 Variantes de Redes de Petri Rede Temporal, Rede Hierárquica; Rede Colorida d c b a MarcasCores t1t1 t0t0 t1t1 t0t0 Após o disparo transição t 1

8 Propriedades das Redes de Petri Alcançabilidade ( Reachability) Limitação ( Boundedness ) Liveness Cobertura

9 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 (

10 HPSim Suporte a redes lugar-transição (sem marcas coloridas), redes com lugares com diferentes capacidades e rede temporal.

11 Problema do Elevador Rede de Petri Temporal e com arco inibidor

12 Modelagem utilizando Rede Colorida nova_dir dir muda_dir (dir,lista) Subir|descer dir (dir,nova_lista)(dir,lista) (dir,nova_lista) Lista de paradas Lista subidas Lista descidas andar v (novo_mov,novo_u) (mov,u) pos dir i subir|descer|parado

13 Funções e Variáveis Os 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 elevador andar {0,...,n-1} (botões pressionados dentro do elevador) bot_sub,bot_des {0,...,n-1}

14 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

15 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)

16 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)

17 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) }

18 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); }

19 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); }

20 Mudando direção quando está subindo e lista_subida fica vazia (dir == subir) ^ empty (lista_subida) ^ empty (lista_descida_prox) ^ empty (lista_subida_prox) dir = parado;

21 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); }

22 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); }

23 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;

24 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; }

25 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; }

26 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)


Carregar ppt "Redes de Petri Modelo de Especificação Formal Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito."

Apresentações semelhantes


Anúncios Google