• Nenhum resultado encontrado

Introduc~ao as Redes de. Petri e Aplicac~oes. por. Paulo Romero Martins Maciel. Rafael Dueire Lins. Paulo Roberto Freire Cunha

N/A
N/A
Protected

Academic year: 2021

Share "Introduc~ao as Redes de. Petri e Aplicac~oes. por. Paulo Romero Martins Maciel. Rafael Dueire Lins. Paulo Roberto Freire Cunha"

Copied!
201
0
0

Texto

(1)
(2)

Introduc~ao as Redes de

Petri e Aplicac~oes

p or

Paulo Romero Martins Maciel

Rafael Dueire Lins

Paulo Roberto Freire Cunha

Departamento de Informatica Universidade Federal de Pernambuco

X ESCOLA DE COMPUTAC ~ AO CAMPINAS-SP, julhode1996.

(3)
(4)

Prefacio

Redes de Petri e uma tecnica de especi cac~ao formal bem estabelecida, lar-gamente difundida e adequada para a modelagem de sistemas que tenham atividades paralelas, concorrentes, assncronas e n~ao-determinsticas. Varios autores t^em mostrado a abrang^encia e a aplicabilidade das redes de Petri nas mais diversas areas, tais como: na ci^encia da computac~ao, engenharias eletr^onica e qumica, administrac~ao de empresas etc. No entanto, tem sido mais explorada na ci^encia da computac~ao e na engenharia eletr^onica, desde o estudo para a especi cac~ao de sistemas de hardware ou software, avaliac~ao de desempenho, especi cac~ao de protocolos de comunicac~ao, diagnostico de falhas e no projeto de software/hardware, entre outros.

Este texto oferece uma introduc~ao as redes de Petri e aplicac~oes. Inicial-mente, s~ao apresentados os diversos tratamentos dados as redes de Petri. De maneira uniforme, apresentamos os conceitos, propriedades e metodologias de analise e aplicac~oes. Um grande numero de exemplos de modelagem s~ao utilizados, possibilitando a percepc~ao do poder das redes de Petri e tornando o leitor apto a modelar problemas atraves desta tecnica.

Esta monogra a esta estruturada em seis captulos, tendo um captulo de introduc~ao, onde e apresentado um breve historico das redes de Petri, situando o leitor nas mais diversas areas de pesquisa em que redes de Pe-tri v^em sendo utilizadas. S~ao apresentados os conceitos basicos tais como: estrutura, grafo associado, o conceito de marcac~ao, regras de execuc~ao e al-guns exemplos para ilustrar estes conceitos. O segundo captulo inicia por apresentar os modelos basicos de redes de Petri que possibilitam a modela-gem de sistemas mais complexos. Posteriormente, e apresentado um vasto numero de exemplos, que ilustram ao leitor o poder de modelagem das redes de Petri atraves da especi cac~ao de problemas classicos e novos exemplos descritos pelos autores. O terceiro captulo discute as propriedades das

(5)

re-des de Petri, bem como diversos metodos de analise para veri cac~ao re-destas propriedades. No quarto captulo, apresentam-se algumas extens~oes as redes de Petri. Estas extens~oes elevam o poder de modelagem das redes de Petri ao da maquina de Turing. V^eem-se, neste captulo, as redes de Petri com arco inibidor, redes de Petri coloridas, redes hierarquicas e redes de Petri temporizadas determinsticas. No quinto captulo apresentamos duas apli-cac~oes das redes de Petri, na primeira tratamos da traduc~ao de programa escritos em linguagem concorrente para as redes de Petri; a segunda, apre-senta a modelagem e diagnostico de falhas em sistemas de controle industrial. No captulo das considerac~oes nais fazemos um balanco das contribuic~oes desta monogra a e apresentamos algumas linhas de pesquisas atuais. Tr^es ap^endices tambem comp~oem este trabalho. No primeiro deles e apresentada uma breve introduc~ao a teoria bag, aqui utilizada na formalizac~ao das redes de Petri. O ap^endice B revisa os aspectos mais importantes da algebra ma-tricial. Visando tornar o conteudo do material apresentado mais agradavel ao leitor, as provas dos teoremas fundamentais da teoria das redes de Petri foram omitidas dos captulos e agrupadas no ap^endice C.

Agradecimentos

Em primeiro lugar gostaramos de expressar a nossa gratid~ao as nossas famlias pelo apoio e compreens~ao durante todas as etapas do desenvolvi-mento desta monogra a.

Este trabalho foi enriquecido com os comentarios de David Simonetti Barbalho e Grzegorz Rozenberg e pela revis~ao gramatical do professor Gil-berto Medeiros.

Paulo Maciel agradece a Universidade de Pernambuco (UPE) a sua libe-rac~ao para o programa de doutoramento na UFPE com suporte nanceiro da CAPES.

Rafael Lins e Paulo Cunha s~ao nanciados pelo CNPq atraves de bolsas individuais de pesquisa.

(6)

Conteudo

1 Introduc~ao

1

1.1 Estrutura das Redes de Petri : : : : : : : : : : : : : : : : : : 6 1.1.1 Estrutura De nida em Bag : : : : : : : : : : : : : : : 6 1.1.2 Estrutura De nida em Matriz : : : : : : : : : : : : : : 9 1.1.3 Estrutura De nida por Relac~oes : : : : : : : : : : : : 10 1.2 Rede de Petri Marcada: : : : : : : : : : : : : : : : : : : : : : 12 1.3 Regras de Execuc~ao : : : : : : : : : : : : : : : : : : : : : : : 14 1.4 Matriz de Incid^encia : : : : : : : : : : : : : : : : : : : : : : : 17 1.5 Rede Pura e Self-Loop : : : : : : : : : : : : : : : : : : : : : : 18 1.6 Sequ^encias Disparaveis : : : : : : : : : : : : : : : : : : : : : : 20 1.7 Func~ao de Proximo Estado : : : : : : : : : : : : : : : : : : : 20 1.8 Equac~ao Fundamental : : : : : : : : : : : : : : : : : : : : : : 21 1.9 Grafo das Marcac~oes Acessveis : : : : : : : : : : : : : : : : : 22 1.10 Condic~oes Externas: : : : : : : : : : : : : : : : : : : : : : : : 25 1.11 Associac~ao de Rotulos a Transic~oes : : : : : : : : : : : : : : : 26 1.12 Linguagens das Redes de Petri : : : : : : : : : : : : : : : : : 27 1.13 Classes das Redes de Petri : : : : : : : : : : : : : : : : : : : : 29 1.14 Redes de Petri Ordinarias : : : : : : : : : : : : : : : : : : : : 29 1.15 Redes de Alto Nvel : : : : : : : : : : : : : : : : : : : : : : : 31

(7)

2.1 Redes Elementares : : : : : : : : : : : : : : : : : : : : : : : : 33 2.1.1 Sequenciamento : : : : : : : : : : : : : : : : : : : : : 33 2.1.2 Distribuic~ao : : : : : : : : : : : : : : : : : : : : : : : : 34 2.1.3 Junc~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : 34 2.1.4 Escolha N~ao-Determinstica : : : : : : : : : : : : : : : 35 2.1.5 Atribuic~ao : : : : : : : : : : : : : : : : : : : : : : : : : 37 2.2 Confusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 37 2.3 Modelagem de Processos : : : : : : : : : : : : : : : : : : : : : 38 2.3.1 Processos Paralelos : : : : : : : : : : : : : : : : : : : : 38 2.3.2 Exclus~ao Mutua : : : : : : : : : : : : : : : : : : : : : 40 2.3.3 Maquinas de Estado Finito : : : : : : : : : : : : : : : 42 2.3.4 Computac~ao Data ow : : : : : : : : : : : : : : : : : : 45 2.3.5 Sistemas Pipeline : : : : : : : : : : : : : : : : : : : : : 47 2.3.6 Protocolo de Comunicac~ao : : : : : : : : : : : : : : : 49 2.3.7 Produtor=Consumidor : : : : : : : : : : : : : : : : : : 52 2.3.8 Jantar dos Filosofos : : : : : : : : : : : : : : : : : : : 54 2.3.9 Fluxo de Controle de Algoritmo : : : : : : : : : : : : 55 2.3.10 Computac~ao-Fraca : : : : : : : : : : : : : : : : : : : : 60 2.4 Subclasses das Redes de Petri : : : : : : : : : : : : : : : : : : 60 2.4.1 Redes de Petri Maquina de Estado : : : : : : : : : : : 62 2.4.2 Redes de Petri Grafo Marcado : : : : : : : : : : : : : 62 2.4.3 Redes de Petri Escolha Livre : : : : : : : : : : : : : : 63

3 Analise das Redes de Petri

67

3.1 Propriedades Comportamentais : : : : : : : : : : : : : : : : : 67 3.1.1 Alcancabilidade (Reachability) : : : : : : : : : : : : : 68 3.1.2 Limitac~ao (Boundedness) : : : : : : : : : : : : : : : : 69 3.1.3 Seguranca (Safeness): : : : : : : : : : : : : : : : : : : 70 3.1.4 Liveness : : : : : : : : : : : : : : : : : : : : : : : : : : 74

(8)

3.1.5 Cobertura (Coverability) : : : : : : : : : : : : : : : : : 76 3.1.6 Persist^encia : : : : : : : : : : : : : : : : : : : : : : : : 76 3.1.7 Reversibilidade : : : : : : : : : : : : : : : : : : : : : : 77 3.1.8 Justica (Fairness) : : : : : : : : : : : : : : : : : : : : 78 3.2 Propriedades Estruturais: : : : : : : : : : : : : : : : : : : : : 80 3.2.1 Limitac~ao Estrutural : : : : : : : : : : : : : : : : : : : 81 3.2.2 Conservac~ao: : : : : : : : : : : : : : : : : : : : : : : : 81 3.2.3 Repetitividade : : : : : : : : : : : : : : : : : : : : : : 85 3.2.4 Consist^encia : : : : : : : : : : : : : : : : : : : : : : : 86 3.3 Analise das Redes de Petri: : : : : : : : : : : : : : : : : : : : 87 3.3.1 Arvore de Cobertura : : : : : : : : : : : : : : : : : : : 87 3.3.2 Analise Sobre a EFRP : : : : : : : : : : : : : : : : : : 92 3.3.3 Invariantes de Transic~ao : : : : : : : : : : : : : : : : : 94 3.3.4 Invariantes de Lugar : : : : : : : : : : : : : : : : : : : 95 3.3.5 Invariantes por Justaposic~ao e por Concatenac~ao : : : 97 3.3.6 Regras de Reduc~ao para Analise : : : : : : : : : : : : 104 3.4 Complexidade e Decidibilidade : : : : : : : : : : : : : : : : : 108

4 Extens~oes as Redes de Petri

111

4.1 Rede de Petri com Arco Inibidor : : : : : : : : : : : : : : : : 111 4.2 Rede de Petri Colorida : : : : : : : : : : : : : : : : : : : : : : 113 4.3 Redes Hierarquicas : : : : : : : : : : : : : : : : : : : : : : : : 121 4.4 Rede de Petri Temporizada Determinstica: : : : : : : : : : : 125

5 Aplicac~oes

131

5.1 Traduc~ao OCCAM-Redes de Petri : : : : : : : : : : : : : : : 132 5.1.1 Modelagem dos Processos Primitivos : : : : : : : : : : 133 5.1.2 Modelagem dos Combinadores : : : : : : : : : : : : : 137 5.2 Diagnostico de Falhas em Sistemas de Controle Industrial : : 148 5.2.1 As Especi cac~oes Funcionais : : : : : : : : : : : : : : 150

(9)

5.2.2 As Func~oes de Estado e Excitac~ao : : : : : : : : : : : 150 5.2.3 As Regras Operacionais : : : : : : : : : : : : : : : : : 152 5.2.4 Obtenc~ao das Redes de Petri : : : : : : : : : : : : : : 152 5.2.5 Um Exemplo : : : : : : : : : : : : : : : : : : : : : : : 153 5.2.6 Metodo para Obtenc~ao das Regras Operacionais : : : 154 5.2.7 Modelagem e Validac~ao : : : : : : : : : : : : : : : : : 158 5.2.8 Elemento de Falha de Vetor Sintoma : : : : : : : : : : 159 5.3 Algumas Considerac~oes : : : : : : : : : : : : : : : : : : : : : 165

6 Considerac~oes Finais

167

A Teoria Bag

179

B Algebra Matricial

181

(10)

Lista de Figuras

1.1 Elementos Basicos : : : : : : : : : : : : : : : : : : : : : : : : 3 1.2 Grafo : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 1.3 Arcos Valorados : : : : : : : : : : : : : : : : : : : : : : : : : 4 1.4 Perodos do Dia : : : : : : : : : : : : : : : : : : : : : : : : : : 4 1.5 Linha de Produc~ao : : : : : : : : : : : : : : : : : : : : : : : : 5 1.6 Redes Marcadas R1e R2 : : : : : : : : : : : : : : : : : : : : : 13 1.7 Disparo de Transic~oes : : : : : : : : : : : : : : : : : : : : : : 15 1.8 Rede R1Marcada : : : : : : : : : : : : : : : : : : : : : : : : : 16

1.9 Transic~ao Fonte (Source) antes e apos o Disparo : : : : : : : 17 1.10 Transic~ao de Absorc~ao (\Sink") antes e apos o Disparo: : : : 17 1.11 Transformac~ao de uma Rede Impura em Pura : : : : : : : : 19 1.12 Rede N1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22

1.13 Grafo das Marcac~oes Acessveis : : : : : : : : : : : : : : : : : 23 1.14 Grafo das Marcac~oes Acessveis In nito : : : : : : : : : : : : 24 1.15 Condic~oes Externas Associadas as Transic~oes : : : : : : : : : 26 1.16 Rede Etiquetada : : : : : : : : : : : : : : : : : : : : : : : : : 27 1.17 Rede Rotulada : : : : : : : : : : : : : : : : : : : : : : : : : : 28 1.18 Rede Binaria e n~ao-Ponderada : : : : : : : : : : : : : : : : : 30 2.1 Sequenciamento : : : : : : : : : : : : : : : : : : : : : : : : : : 34 2.2 Distribuic~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : : 34 2.3 Junc~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 35

(11)

2.4 Escolha N~ao-Determinstica : : : : : : : : : : : : : : : : : : : 36 2.5 Con ito Estrutural e Efetivo : : : : : : : : : : : : : : : : : : 36 2.6 Atribuic~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 37 2.7 Confusion Simetrica e Assimetrica : : : : : : : : : : : : : : : 38 2.8 Atividades Paralelas : : : : : : : : : : : : : : : : : : : : : : : 40 2.9 Exclus~ao Mutua : : : : : : : : : : : : : : : : : : : : : : : : : 41 2.10 Interface usando Lugares : : : : : : : : : : : : : : : : : : : : 43 2.11 Maquina de Estado - Detector de Sequ^encia : : : : : : : : : : 44 2.12 Detector de Sequ^encia : : : : : : : : : : : : : : : : : : : : : : 45 2.13 Computac~ao Data ow : : : : : : : : : : : : : : : : : : : : : : 46 2.14 Unidades Funcionais em Pipeline : : : : : : : : : : : : : : : : 48 2.15 Pipeline : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 48 2.16 Comunicac~ao entre Processos com Reconhecimento e por Bu er 50 2.17 Comunicac~ao entre Processos : : : : : : : : : : : : : : : : : : 50 2.18 Protocolo de Comunicac~ao: : : : : : : : : : : : : : : : : : : : 51 2.19 Produtor/Consumidor : : : : : : : : : : : : : : : : : : : : : : 52 2.20 Produtor/Consumidor com Bu er Limitado : : : : : : : : : : 53 2.21 O Jantar dos Filosofos : : : : : : : : : : : : : : : : : : : : : : 55 2.22 Computac~ao Simples : : : : : : : : : : : : : : : : : : : : : : : 56 2.23 Fus~ao dos Lugares : : : : : : : : : : : : : : : : : : : : : : : : 57 2.24 If a then B else C : : : : : : : : : : : : : : : : : : : : : : : : : 57 2.25 While a do B : : : : : : : : : : : : : : : : : : : : : : : : : : : 58 2.26 For a n do B : : : : : : : : : : : : : : : : : : : : : : : : : : : 59 2.27 Computac~ao-Fraca da Adic~ao : : : : : : : : : : : : : : : : : : 61 2.28 Computac~ao-Fraca da Multiplicac~ao : : : : : : : : : : : : : : 61 2.29 Subclasse Maquina de Estado : : : : : : : : : : : : : : : : : : 63 2.30 Subclasse Grafo de Eventos : : : : : : : : : : : : : : : : : : : 64 2.31 Subclasse Escolha Livre : : : : : : : : : : : : : : : : : : : : : 65

(12)

3.1 Rede N : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 69 3.2 Rede Limitada (Bounded) : : : : : : : : : : : : : : : : : : : : 70 3.3 Rede Segura (Safe) : : : : : : : : : : : : : : : : : : : : : : : 71 3.4 Transformac~ao de Rede N~ao-Segura(Unsafe) em Segura(Safe) 72 3.5 Rede N~ao-Segura : : : : : : : : : : : : : : : : : : : : : : : : : 73 3.6 Rede Segura : : : : : : : : : : : : : : : : : : : : : : : : : : : 73 3.7 Redes Live e Non-Live : : : : : : : : : : : : : : : : : : : : : : 74 3.8 Nveis de Liveness : : : : : : : : : : : : : : : : : : : : : : : : 75 3.9 Persist^encia : : : : : : : : : : : : : : : : : : : : : : : : : : : : 77 3.10 Reversibilidade : : : : : : : : : : : : : : : : : : : : : : : : : : 79 3.11 Bounded Fairness : : : : : : : : : : : : : : : : : : : : : : : : 79 3.12 Fairness Incondicional : : : : : : : : : : : : : : : : : : : : : 80 3.13 Estritamente Conservativa : : : : : : : : : : : : : : : : : : : : 82 3.14 Conservac~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : : 83 3.15 Rede n~ao Conservativa : : : : : : : : : : : : : : : : : : : : : : 84 3.16 Repetitividade : : : : : : : : : : : : : : : : : : : : : : : : : : 85 3.17 Arvore de Cobertura : : : : : : : : : : : : : : : : : : : : : : : 88 3.18 Grafo de Cobertura: : : : : : : : : : : : : : : : : : : : : : : : 89 3.19 Arvore de Cobertura - Veri cac~ao de Propriedades : : : : : : 90 3.20 Grafo de Cobertura - Veri cac~ao de Propriedades : : : : : : : 90 3.21 Problemas com a Alcancabilidade : : : : : : : : : : : : : : : 91 3.22 Problemas com Liveness : : : : : : : : : : : : : : : : : : : : 91 3.23 Alcancabilidade de uma Marcac~ao : : : : : : : : : : : : : : : 93 3.24 N~ao-Alcancabilidade : : : : : : : : : : : : : : : : : : : : : : : 94 3.25 Fus~ao de Elementos : : : : : : : : : : : : : : : : : : : : : : : 98 3.26 Sub-redes R1eR2 : : : : : : : : : : : : : : : : : : : : : : : : : 101

3.27 Rede R : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 102 3.28 Reduc~oes - Fus~ao de Lugares Serie : : : : : : : : : : : : : : : 105 3.29 Reduc~oes - Fus~ao de Transic~oes Serie : : : : : : : : : : : : : : 106

(13)

3.30 Reduc~oes - Fus~ao de Lugares Paralelos : : : : : : : : : : : : : 106 3.31 Reduc~oes - Fus~ao de Transic~oes Paralelas : : : : : : : : : : : 107 3.32 Reduc~oes - Eliminac~ao de Self-loop : : : : : : : : : : : : : : : 107 4.1 Teste de Zero Marcas em Lugares Limitados : : : : : : : : : : 112 4.2 Teste de Zero Marcas: : : : : : : : : : : : : : : : : : : : : : : 113 4.3 Redes Coloridas - Estudos Iniciais : : : : : : : : : : : : : : : 114 4.4 Modelo da Linha de Manufatura Usando Redes Ordinarias : : 115 4.5 Modelo da Linha de Manufatura Usando Redes Coloridas : : 117 4.6 Jantar dos Filosofos - Modelo com Redes Place/Transition : : 118 4.7 Jantar dos Filosofos - Modelo com Redes Coloridas : : : : : : 119 4.8 Superpagina : : : : : : : : : : : : : : : : : : : : : : : : : : : : 122 4.9 Subpagina : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 123 4.10 Superpagina - Aquisic~ao e Transfer^encia de Informac~oes : : : 124 4.11 Subpaginas - Aquisic~ao e Transfer^encia de Informac~oes : : : : 124 4.12 Transic~ao com Disparo At^omico : : : : : : : : : : : : : : : : 126 4.13 Marcac~ao Habilitando Duas Transic~oes : : : : : : : : : : : : : 127 4.14 Sistema de Contagem : : : : : : : : : : : : : : : : : : : : : : 128 4.15 Relogio : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 128 4.16 Modelo : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 129 5.1 Atribuic~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 134 5.2 Input : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 134 5.3 Output : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 135 5.4 Skip : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 136 5.5 Stop : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 137 5.6 Sequence: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 138 5.7 Conditional : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 5.8 Loop : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 140 5.9 Parallel : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 141

(14)

5.10 Alternation : : : : : : : : : : : : : : : : : : : : : : : : : : : : 142 5.11 Alternation - Regulador de Fluxo : : : : : : : : : : : : : : : : 144 5.12 Rede dos Processos Comunicantes : : : : : : : : : : : : : : : 146 5.13 Processo P1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147

5.14 Processo P3 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147

5.15 Pagina K3 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 148

5.16 Processo P4 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 149

5.17 Pagina K5 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 149

5.18 Sistema de Controle Sequencial : : : : : : : : : : : : : : : : : 150 5.19 Linha de Produc~ao de Bebidas : : : : : : : : : : : : : : : : : 154 5.20 Diagrama Eletrico : : : : : : : : : : : : : : : : : : : : : : : : 154 5.21 Modelos Elementares : : : : : : : : : : : : : : : : : : : : : : : 159 5.22 Modelo Global : : : : : : : : : : : : : : : : : : : : : : : : : : 160 5.23 Estado S0 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 5.24 Estado Se : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 5.25 Sintoma : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 5.26 Desabilitac~ao de l3 : : : : : : : : : : : : : : : : : : : : : : : : 165

(15)

Introduc~ao

A teoria inicial das redes de Petri foi apresentada na tese de doutoramento Kommunikation mit Automaten do Dr. C. A. Petri em 1962 na faculdade de Matematica e Fsica da Universidade de Darmstadt na ent~ao Alemanha Ocidental. O trabalho de Petri atraiu a atenc~ao de A.W Holt que, em conjunto com outros pesquisadores, desenvolveu muito da teoria, notac~ao e representac~ao das redes de Petri. De 1970 a 1975, o grupo de estrutura da computac~ao do MIT foi o mais ativo na na conduc~ao da pesquisa sobre redes de Petri. Em 1975, houve uma Confer^encia sobre redes de Petri, no entanto n~ao houve publicac~ao dos anais [19]. Em 1979, pesquisadores de varios pases europeus reuniram-se em Hamburgo para um curso avancado sobre a Teoria Geral das Redes de Processos e Sistemas [54]. Seguiram-se diversos outros trabalhos propondo alterac~oes ao modelo original, tais como redes com arco inibidor, e redes temporizadas determinsticas e estocasticas. Hoje em dia, redes de Petri e considerada uma tecnica para especi cac~ao de sistemas concorrentes consolidada. Grupos de pesquisa em todo o mundo t^em redes de Petri como tema, desenvolvendo estudos sobre seus aspectos teoricos e suas aplicac~oes.

Diversas tecnicas de modelagem matematica de sistemas em diversas areas da ci^encia t^em sido propostas. Barroca e McDermid [50] apresenta a seguinte classi cac~ao:

1. Tecnicas Baseadas em Modelos:

Fornece uma descric~ao abstrata explcita sobre estados e operac~oes que transformam os estados, no entanto n~ao oferece meios explcitos para

(16)

especi car concorr^encia. Ex.: Z [55].

2. Tecnicas Baseadas em Algebra de Processos.

Estas tecnicas fornecem meios explcitos para especi car concorr^encia. O comportamento dos processos e representado atraves de comuni-cac~oes observaveis. Ex.: CCS [49], CSP [56] e LOTOS [57, 86]. 3. Tecnicas Baseadas em Logica.

Uma grande variedade de tecnicas baseadas em logica tem sido pro-postas, onde se analisam as relac~oes causais e aspectos relacionados a temporizac~ao. Ex.: Logica Modal de Ac~oes [58].

4. Tecnicas Baseadas em Redes.

Estas tecnicas modelam concorr^encia, atravesde mecanismos implcitos de uxo de tokens na rede. Este uxo e controlado por condic~oes que habilitam a realizac~ao de tarefas (eventos). Ex.: redes de Petri. Redes de Petri e uma tecnica de especi cac~ao de sistemas que possibilita uma representac~ao matematica e possui mecanismos de analise poderosos, que permitem a veri cac~ao de propriedades e a veri cac~ao da corretude do sistema especi cado. Usando-se redes de Petri pode-se modelar sistemas paralelos, concorrentes, assncronos e n~ao-determinsticos [3]. Algumas a-bordagens matematicas t^em sido propostas; entre estas uma que trata as redes de Petri sob o ponto de vista da algebra matricial [1, 2], outra con-forme a teoria bag [4] e uma terceira baseada em relac~oes. Neste trabalho, de niremos e apresentaremos os principais conceitos das redes de Petri sob esses pontos de vista, mostrando quando cada um desses tratamentos e mais conveniente. Neste trabalho, apresentamos um grande numero de mode-los de problemas classicos, bem como modelagem, propriedades, metodos de analise uteis na veri cac~ao dessas propriedades e extens~oes as redes de Petri. A representac~ao gra ca das redes de Petri(ver gura 1.2) tem se mos-trado muito util, pois permite a visualizac~ao dos processos e a comunicac~ao entre eles. As redes de Petri s~ao formadas por dois tipos de componentes: um ativo denominado de transic~ao e outro passivo denominado lugar. Os lugares correspondem as variaveis de estado e as transic~oes as ac~oes (even-tos) realizadas pelo sistemas. A realizac~ao de uma ac~ao esta associada a algumas prcondic~oes (condic~ao de alguma variaveis de estado), ou seja, e-xiste uma relac~ao entre os lugares e as transic~oes, que possibilita a realizac~ao de uma ac~ao. De forma semelhante, apos a realizac~ao de uma ac~ao, alguns

(17)

lugares ter~ao suas informac~oes alteradas (pos-condic~oes). Gra camente, os lugares s~ao representados por crculos e as transic~oes por tracos ou barras (ver gura 1.1).

Lugar :

Transicao : ou

Figura 1.1: Elementos Basicos

Estes dois elementos s~ao os vertices do grafo associado as redes de Petri. Os vertices s~ao interligados por arcos dirigidos. Os arcos que interligam lugares as transic~oes correspondem a relac~ao entre as condic~oes verdadeiras, que em um dado momento, possibilitam a execuc~ao das ac~oes, enquanto os arcos que interligam transic~oes aos lugares representam a relac~ao entre as ac~oes e as condic~oes que se tornam verdadeiras com a execuc~ao das ac~oes.

Lugar transicao Lugar p t p 0 0 1 Figura 1.2: Grafo

Os vertices de uma grafo associada a uma rede de Petri podem ser in-terligados por multiplos arcos. Por exemplo, um lugar pode ser conectado a uma transic~ao atraves de diversos arcos ou vice-versa. Por conveni^encia, podemos substituir os multiplos arcos por um unico arco valorado, onde o numeral associado ao arco corresponde ao numero de arcos que interligam os vertices (ver gura 1.3).

Exemplo 1

Ilustramos os conceitos informalmente apresentados descrevendo o ci-clo repetitivo dos turnos (perodos) de um dia. Dividamos o dia em tr^es

(18)

3 2 p p p t p t p p 0 1 2 0 1 2

Figura 1.3: Arcos Valorados

perodos: manh~a, tarde e noite, ou seja, ha tr^es condic~oes. A transic~ao de uma dessas condic~oes para uma outra, por exemplo - amanhecer (noite !

manh~a), s~ao os eventos. O modelo que representa o ciclo operacional des-se sistema e formado pelas tr^es condic~oes, repredes-sentadas por tr^es variaveis de estado (lugares), e por tr^es eventos (transic~oes): amanhecer, entardecer e anoitecer. Para representar a situac~ao atual, ou seja, em que condic~ao encontra-se o sistema modelado, usamos uma marca grafada (um ponto) no lugar que corresponde a essa situac~ao, por exemplo: a condic~ao atual e ma-nh~a. Na gura 1.4.a temos o modelo que representa este sistema e a sua situac~ao atual. manha tarde noite amanhecer anoitecer entardecer manha tarde noite amanhecer anoitecer entardecer

Figura 1.4: Perodos do Dia

Nesse modelo, temos a condic~ao atual representada pela marca no lugar manh~a. Estando nesta condic~ao o unico evento que podera ocorrer e entarde-cer, que e representado pela transic~ao de mesmo nome. Na ocorr^encia desse

(19)

evento, teremos uma nova situac~ao atual, ou seja: tarde, que e representada gra camente, na gura 1.4.b, por uma marca no lugar tarde.

Exemplo 2

A seguir, apresentamos um outro modelo em redes de Petri que repre-senta algumas das tarefas de uma linha de montagem. Neste modelo, des-crevemos o empacotamento e envio ao setor de expedic~ao de conjuntos de parafusose porcas, contudo, n~ao representamos as tarefas da manufatura dos parafusos e porcas. Este sistema forma conjuntos de tr^es parafusos e tr^es porcas. Um novo conjunto so podera ser empacotado quando o conjunto atualmente produzido for enviado a fase seguinte do processo. Apos os pa-cotes (conjuntos) serem formados, estes s~ao enviados ao setor de expedic~ao. A gura 1.5 apresenta o modelo que representa esta linha de montagem.

3 3 Parafusos Porcas Deposito Monta Pacote Pacote Envia Pacote Maquina

Figura 1.5: Linha de Produc~ao

Apos a manufatura dos parafusos, estes s~ao depositados no lugar Para-fusos. De forma semelhante, as porcas s~ao armazenadas no lugar Porcas. A transic~ao Monta Pacote, que representa a tarefa de formac~ao dos conjun-tos (porcas e parafusos), so estara apta a ser disparada quando houver no mnimo tr^es parafusos e tr^es porcas nos lugares Parafusos e Porcas, respec-tivamente. Sendo satisfeita esta condic~ao, o disparo de Monta Pacote retira tr^es marcas do lugar Parafusos e tr^es marcas do lugar Porcas e deposita uma marca no lugar Pacote, que indica a montagem de um conjunto. Tendo sido produzido um pacote (marca no lugar Pacote), e possvel colocarmos este

(20)

pacote no deposito de sada da sec~ao (disparando-se Envia Pacote), para que esteja disponvel ao setor de expedic~ao. O pacote, ao ser colocado no deposito, possibilita a Maquina montar um outro conjunto, desde que haja parafusos e porcas su cientes, nos respectivos depositos de entrada.

A seguir, s~ao apresentados os conceitos basicos das redes de Petri, sua estrutura, o grafo associado, o conceitos de marcac~ao e suas regras de exe-cuc~ao. S~ao apresentados, ainda, exemplos de modelagem de aplicac~oes; no entanto, exemplos mais elaborados ser~ao descritos no proximo captulo e no captulo 5.

1.1 Estrutura das Redes de Petri

Nesta sec~ao, ser~ao apresentadas tr^es de nic~oes formais para as redes de Petri. Uma sobre o ponto de vista da teoria bag [4], que apresenta mapeamentos das transic~oes para os bags de lugares. Um bag e uma generalizac~ao do conceito de conjunto que admite a repetic~ao de elementos. Uma introduc~ao sumaria a teoria bag e apresentada no ap^endice 1. Uma segunda de nic~ao usa a notac~ao matricial [1]. E a terceira, de ne as redes de Petri atraves de relac~oes e pesos associados a estas relac~oes [5].

1.1.1 Estrutura De nida em

Bag

A estrutura das redes de Petri, segundo a teoria bag [4] e composta por cinco partes: o conjunto de lugares

P

, o conjunto de transic~oes

T

, o bag de entrada

I

, o bag de sada

O

e a capacidade associada a cada lugar. Para cada transic~ao existe uma func~ao de entrada, que e um mapeamento de uma transic~ao tj em um bag de lugaresItj. De forma semelhante, as func~oes de

sada mapeiam uma transic~aotj em um bag de lugaresOtj. Para denotarmos

conjuntos, utilizamos -f g e para os bags - [ ].

De nic~ao 1.1.1

-

Estrutura das Redes de Petri em bag

: de ne-se a estrutura de uma rede de Petri

R

, como uma quntupla R= (P;T;I;O;K), onde P = fp

1;p2;:::;pn

g e um conjunto nito n~ao-vazio de lugares, T = ft

1;t2;:::;tm

g e um conjunto nito n~ao-vazio de transic~oes. I :T ! P 1 e

um conjunto de bags que representa o mapeamento de transic~oes para lugares de entrada. O :T ! P

1 e um conjunto de bags que representa o

mapea-mento de transic~oes para lugares de sada. K :P NS

(21)

das capacidade associadas a cada lugar, podendo assumir um valor in nito.

Exemplo 1.1

A rede dos perodos do dia (ver gura 1.4) e formada por tr^es lugares e tr^es transic~oes, que representam respectivamente as variaveis de estados e as ac~oes realizadas pelo sistema. As pre-condic~oes para a realizac~ao das ac~oes s~ao representadas pelos bags I(ti), ou seja, para que o Amanhecer

possa acontecer, e necessario que a condic~aoNoiteseja verdadeira, dado que

I(Amanhecer) =fNoiteg. Os lugares que s~ao pos-condic~oes das transic~oes

ti s~ao representados pelos bags O(ti). A transic~ao Amanhecer tem como

lugar de sadaO(Amanhecer) =fManha~g.

RPeriodos do Dia= (P;T;I;O;K)

onde

o conjunto de lugares P e

P =fManh~a;Tarde;Noiteg,

o conjunto de transic~oes T e

T =fAmanhecer;Entardecer;Anoitecerg,

o conjunto de bags de entrada I e

I =f I(Amanhecer) = [Noite]; I(Entardecer) = [Manh~a];

I(Anoitecer) = [Tarde]; g;

o conjunto de bags de sada O e

O=f O(Amanhecer) = [Manha~]; O(Entardecer) = [Tarde];

O(Anoitecer) = [Noite] g;

e o conjunto de capacidades dos lugares k e

k=fkManh ~

a= 1;ktarde= 1;kNoite= 1g.

No exemplo acima, n~ao esta caracterizada a necessidade do uso da teoria bag, pois nenhuma transic~ao tem como entrada ou sada mais de um lugar.

(22)

Exemplo 2.1

A rede do exemplo Linha de Produc~ao(ver gura 1.5) possui estrutura que faz uso da teoria bag:

RLinha de Produc ~

ao= (P;T;I;O;K)

onde

o conjunto de lugares P e

P =fParafusos;Porcas;Pacote; Maquina, Depositog,

o conjunto de transic~oes T e

T =fMontaPacote;EnviaPacoteg,

o conjunto de bags de entrada I e

I =f I(MontaPacote); I(EnviaPacote) g;

I(MontaPacote) = [ Parafusos; Parafusos; Parafusos;

Porcas; Porcas; Porcas; Maquina ]; I(EnviaPacote) = [ Pacote ];

o conjunto de bags de sada O e:

O=fO(MontaPacote);O(EnviaPacote)

O(MontaPacote) = [Pacote]; O(EnviaPacote) = [Maquina;Dep osito ];

e o conjunto de capacidades dos lugares k e:

K=fkParafusos =!;kPorcas =!;kPacotes= 1;

kMaquina= 1;kDeposito =! g.

Observe-se que os bags de entrada da transic~ao Monta Pacote possui tr^es elementos Parafusos e tr^es elementos Porcas.

(23)

1.1.2 Estrutura De nida em Matriz

Devido aos resultados existentes nos estudos da algebra matricial, as redes de Petri utilizam este ferramental para a formalizac~ao de sua teoria, possi-bilitando a analise de propriedades comportamentais e estrutrais, que ser~ao adequadamente apresentadas no captulo 3.

Segundo o ponto de vista matricial, a estrutura das redes de Petri e re-presentada por uma quntupla formada pelo conjunto de lugares, o conjunto de transic~oes, a matriz de entrada das transic~oes, a matriz de sada das transic~oes e a capacidade de cada lugar, formalmente representado a seguir:

De nic~ao 1.1.2

-

Estrutura das Redes de Petri em Matrizes

: a es-trutura de uma rede e uma quntupla R= (P;T;I;O;K), onde P e um con-junto nito de lugares. T e um concon-junto nito de transic~oes. I :PT !IN

e a matriz de pre-condic~oes. O: P T ! IN e a matriz de pos-condic~oes.

K e o vetor das capacidades associadas aos lugares (K :P !IN S

f!g).

Se o conjunto de lugares ou o conjunto de transic~oes e vazio, a rede e dita degenerada.

Exemplo 1.2

Aqui apresentamos a estrutura da rede do exemplo perodos do dia, se-gundo a representac~ao matricial. O conjunto de lugares e transic~oes s~ao representados respectivamente por P e T. As matrizes I e O representam as pre-condic~oes e as pos-condic~oes, respectivamente, de todas as transic~oes das rede. A coluna Amanhecer da matriz I mostra que o lugar Noite e pre-condic~ao de Amanhecer. De forma semelhante, observamos na coluna

Amanhecer da matriz O que o lugar Manh~a e pos-condic~ao da transic~ao

Amanhecer. Estas duas matrizes representam a estrutura do modelo.

I =

Amanhecer Entardecer Anoitecer

0 1 0 0 0 1 1 0 0 Manha~ Tarde Noite O=

Amanhecer Entardecer Anoitecer

1 0 0 0 1 0 0 0 1 Manh~a Tarde Noite

(24)

Exemplo 2.2

Apresentamos as matrizes de entrada (I) e de sada (O) do exemplo da montagem de conjunto de parafusos.Observamos a coluna Monta Pacote, na qual temos representados os lugares de entrada desta transic~ao pelos respectivos pesos dos arcos, por exemplo, o arco que liga o lugar parafuso a esta transic~ao tem peso tr^es, sendo representado no componenteI(0;0) = 3.

I = MontaPacote EviaPacote 3 0 3 0 0 1 1 0 0 0 Parafusos Porcas Pacotes Maquinas Depositos O= MontaPacote EnviaPacote 0 0 0 0 1 0 0 1 0 1 Parafusos Porcas Pacotes Maquinas Depositos

1.1.3 Estrutura De nida por Relac~oes

E possvel de nirmos a estrutura das redes de Petri usando relac~oes [19]. A estrutura e formada por uma quntupla (P, T, A, V, K), composta pelo conjunto de lugares P, o conjunto de transic~oes T, o conjunto dos arcos que interligam lugares as transic~oes ou transic~oes aos lugares, a valorac~ao ou peso dos arcos representada por V e o conjunto das capacidades dos lugares K. Formalmente esta de nic~ao e apresentada a seguir:

De nic~ao 1.1.3

-

Estrutura das Redes de Petri por Relac~oes

: de ne-se a estrutura das redes de Petri por uma quntupla (P;T;A;V;K), onde T e o conjunto de transic~oes, P o conjunto de lugares, A o conjunto de arcos e V o conjunto de valorac~oes dos arcos. Os elementos de A s~ao arcos que conectam transic~oes a lugares ou lugares a transic~oes (A(P T)

S

(T

(25)

Comos vimos na de nic~ao acima, podemos dividir os elementos de A em dois sub-conjuntos - o conjunto das entradas as transic~oes e de sada das transic~oes,I =f(pi;tj)g e O=f(tj;pi)g, respectivamente.

Exemplo 1.3

A estrutura da rede de Petri do exemplo perodos do dia e da linha de produc~ao de parafusos e

RPeriodos do Dia= (P;T;I;O;K), onde

o conjunto de lugares P e:

P =f Manh~a;Tarde;Noiteg,

o conjunto de transic~oes T e

T =fAmanhecer;Entardecer;Anoitecerg,

o conjunto de arcos A e

A=f (Manha;Entardecer~ ); (Entardecer;Tarde);

(Tarde;Anoitecer); (Anoitecer;Noite);

(Noite;Amanhecer); (Amanhecer;Manh~a) g;

o conjunto de valorac~oes dos arcos V e

V =f1;1;1;1;1;1g

e o conjunto de capacidades dos lugares k e

k=fkManh ~ a= 1;kTarde= 1;kNoite= 1g.

Exemplo 2.3

RLinha de Produc ~ ao= (P;T;I;O;K), onde o conjunto de lugares P e

(26)

o conjunto de transic~oes T e

T =fMontaPacote;EnviaPacoteg;

o conjunto de arcos A e

A=f (Parafusos;MontaPacote); (Porcas;MontaPacote);

(Maquina;MontaPacote); (MontaPacote;Pacote);

(Pacote;EnviaPacote); (EnviaPacote;Maquina);

(EnviaPacote;Deposito) g;

o conjunto de valorac~oes dos arcos V e

V =f3;3;1;1;1;1g

e o conjunto de capacidades dos lugares k e

K =fkParafusos =!;kPorcas=!;kPacote = 1;kM 

aquina = 1;kDeposito=

!g:

Neste trabalho, tratamos as redes de Petri segundo o ponto de vista matricial e, quando conveniente, atraves do estudo dos bags, pois para mo-delos de grandes dimens~oes, as matrizes n~ao possibilitam uma representac~ao compacta, dado a sua esparcidade caracterstica.

1.2 Rede de Petri Marcada

Uma marca (tambem denominada cha ou token) e um conceito primitivo em redes de Petri, tal qual lugar e transic~ao. As marcas s~ao informac~oes atribudas aos lugares. O numero e a distribuic~ao de marcas nos lugares correspondem a marcac~ao (estado) da rede em um determinado momento. Nesta sec~ao apresentamos a de nic~ao formal de marcac~ao, assim como a de nic~ao de uma rede de Petri marcada.

De nic~ao 1.2.1

-

Marcac~ao

: sejaP o conjunto de lugares de uma rede R. De ne-se formalmente marcac~ao como uma func~ao que mapeia o conjunto de lugares

P

a inteiros n~ao-negativos M :P N.

(27)

Uma outra de nic~ao da marcac~ao das redes de Petri pode ser apresentada na forma vetorial.

De nic~ao 1.2.2

-

Vetor Marcac~ao

: sejaP o conjunto de lugares de uma rede R. A marcac~ao pode ser de nida como um vetor M = (M(p1); ...,

M(pn)), onde n= #P, para todopi2P tal que M(pi)2IN.

Em geral, a presenca de marcas em um lugar pode ser interpretada como a presenca de um recurso de um determinado tipo. Vale ressaltar, que o conjunto e a distribuic~ao de marcas em uma rede e a marcac~ao desta rede e esta representa o estado do modelo. Gra camente, as marcas s~ao represen-tadas por pontos colocados no interior dos lugares. E possvel designarmos o numero de marcas atraves de um numeral no interior dos lugares. Na gura 1.6 apresentamos as redes marcadas R1 e R2, cujos vetores marcac~ao

inicial s~ao representados respectivamente pelos vetoresMR1 0 e M R2 0 . p p p p p t t t t 1 2 3 4 5 1 2 4 2 2 Rede R1 p p p p p t t t t 1 2 2 4 5 1 2 3 4 Rede R2 3

Figura 1.6: Redes MarcadasR1 e R2

MR1 0 = 1 0 1 0 1 p1 p2 p3 p4 p

(28)

MR2 0 = 1 0 0 0 0 p1 p2 p3 p4 p5

Uma rede de Petri marcada pode ser de nida por uma dupla formada pela estrutura da rede (R) e uma marcac~ao inicial (M0) associada a rede. A

seguir apresentamos a de nic~ao formal das redes de Petri marcadas.

De nic~ao 1.2.3

-

Rede Marcada

: de ne-se uma rede de Petri marcada pela dupla RM = (R;M0), onde R e a estrutura da rede e M0 a marcac~ao

inicial.

O comportamento dos sistemas pode ser descrito em func~ao dos seus esta-dos e suas alterac~oes. Para simular o comportamento din^amico esta-dos sistemas a marcac~ao da rede de Petri e modi cada, a cada ac~ao realizada (transic~ao disparada), segundo algumas regras de execuc~ao. Estas regras s~ao apresen-tadas na sec~ao seguinte.

1.3 Regras de Execuc~ao

O disparo de transic~oes (execuc~ao das ac~oes) e controlado pelo numero e distribuic~ao de marcas nos lugares. Uma transic~ao t esta habilitada se, e somente se, todos os lugares de entrada (pi 2 P) de t t^em marcac~ao

M(pi)  I(pi;t). Denota-se a habilitac~ao de uma transic~ao t para uma

marcac~ao M' por -M0[t >. Vale ressaltar que a marcac~ao habilita o disparo

de uma transic~ao, contudo n~ao obriga o seu disparo (n~ao-determinismo). No exemplo da linha de produc~ao, a exist^encia de parafusos e porcas n~ao obriga a montagem dos conjuntos [8]. Disparando-se uma transic~ao t, retira-se um numero de marcas, igual ao peso do arco de entrada, de todos os lugares de entrada pi de t, e s~ao criadas marcas nos lugares de sada. O numero de

marcas criadas em cada lugar de sada da transic~ao t e igual ao peso do arco de sada. Denota-se a acessibilidade da marcac~ao M00 a partir de M0 pelo

(29)

p p p p p t t t t 1 2 4 5 1 2 3 4 Rede R2 3

Figura 1.7: Disparo de Transic~oes

A seguir, mostramos a alterac~ao da marcac~ao inicial M0 = (1;0;0;0;0)

da rede marcada R2, apresentada na sec~ao anterior, devido ao disparo da

transic~aot1. Se M0[tj > M 0, ent~ao M0(p) =M 0(p) I(p;tj) +O(p;tj); 8p2P x y u w z = 1 0 0 0 0 1 0 0 0 0 + 0 1 1 0 0 p1 p2 p3 p4 p5 MR0 2 = 0 1 1 0 0 p1 p2 p3 p4 p5

O disparo da transic~ao t1 altera a marcac~ao, retirando uma marca do

(30)

M0 pode ser obtida subtraindo-se o vetor marcac~ao atual M

0 pela coluna

correspondente a transic~ao disparada da matriz de entrada (I) e somando-se a coluna correspondente a transic~ao disparada da matriz de sada (O), conforme mostrado na gura 1.7. Formalmente, apresentamos as regras de execuc~ao das redes de Petri a seguir:

De nic~ao 1.3.1

-

Transic~ao Disparavel

: uma transic~ao t e disparavel para uma marcac~ao M (M[t > ) se, e somente se, M(p)I(p;t) para todo

pi 2 P. Se t e disparavel para uma marcac~ao M

0, ent~ao com o disparo de

t obtem-se uma nova marcac~ao M0 (M[t > M0), tal que: M0(p) = M(p)

I(p;t)+O(p;t), para todo p2P. p p p p t t t t 2 3 4 5 1 2 4 2 2 Rede R 1 3 p1

Figura 1.8: RedeR1 Marcada

Apresentamos na gura 1.8 as marcac~oes acessveis, da redeR1, atraves

dos disparos das transic~oes t1 e t3. A marcac~ao inicial M0 = (1;0;1;0;2)

habilita o disparo das transic~oes t1 e t3. Com o disparo de t1 obtemos a

marcac~ao M1 = (0;1;1;0;0); contudo, ao dispararmos, a partir de M0, a

transic~aot3, atingimos a marcac~aoM2 = (1;0;0;1;1).

A seguir, apresentamos dois casos particulares de con gurac~ao, que t^em regras de disparo distintas da apresentada. O primeiro caso, corresponde a transic~oes que n~ao possuem lugares de entrada. Estas transic~oes s~ao de-nominadas transic~oes fonte (source). A outra situac~ao especial, e aquela que apresenta transic~oes sem lugares de sada. Uma transic~ao sem lugar de sada e chamada de transic~ao de absorc~ao (sink). Uma transic~ao fonte esta sempre habilitada (ver gura 1.9) e o disparo de uma transic~ao de absorc~ao

(31)

consome marcas nos lugares de entrada, porem n~ao cria outros recursos (ver gura 1.10). A seguir de nimos formalmente as transic~oes de absorc~ao e fonte.

source t0 source t0

Figura 1.9: Transic~ao Fonte (Source) antes e apos o Disparo

De nic~ao 1.3.2

-

Transic~ao Source

: a transic~aotie de nida como

\Sour-ce" se, e somente se, I(p;t) = 0, para todop2P.

sink t

0 sink t0

Figura 1.10: Transic~ao de Absorc~ao (\Sink") antes e apos o Disparo

De nic~ao 1.3.3

-

Transic~ao Sink

: a transic~aoti e de nida como sink se,

e somente se, O(p;t) = 0, para todo p2P.

1.4 Matriz de Incid^encia

Utilizando-se a representac~ao matricial, a estrutura das redes de Petri e representada pelo conjunto de lugares, conjunto de transic~oes, matriz de en-trada e matriz de sada. Essas matrizes expressam as interconex~oes entre lugares e transic~oes dos modelos, dado que a matriz de entrada apresenta os lugares de entrada (pre-condic~oes) e a matriz de sada os lugares de sada (pos-condic~oes) das transic~oes, assim como a valorac~ao destas interconex~oes

(32)

(arcos). Quando uma transic~ao t dispara, a diferenca entre as marcac~oesM1

e M0 e igual a diferenca dada por O(p;t) I(p;t);para todo lugar p 2 P.

Denomina-se C = O I a matriz de incid^encia, dado que esta fornece a incid^encia de arcos de entrada e sada em cada transic~ao dos modelos. Esta matriz representa a estrutura dos sistemas modelados. A seguir, apresenta-mos a de nic~ao da matriz de incid^encia.

De nic~ao 1.4.1

-

Matriz de Incid^encia

: seja a redeR= (P;T;I;O;K), onde P e o conjunto de lugares, T o conjunto de transic~oes, I a matriz de entrada, O a matriz de sada e K a capacidade dos lugares. A matriz de incid^encia C das redes de Petri representa a relac~ao P T ! Z de nida

por: 8p2P; 8t2TjC(p;t) =O(p;t) I(p;t).

Embora a estrutura da rede seja representada pelas matrizes de entrada e sada e, consequentemente, pela matriz de incid^encia, em alguns casos a matriz de incid^encia n~ao possibilita a representac~ao desta estrutura comple-tamente.

1.5 Rede Pura e

Self-Loop

Os conceitos de self-loop e de rede pura s~ao de particular import^ancia, dado que a matriz de incid^encia de redes impuras n~ao representa a estrutura da rede.

Um par (pi;tj) formado por um lugarpie uma transic~aotj e denominado

self-loop, se pi e, ao mesmo tempo, pre-condic~ao e pos condic~ao de tj. Uma

rede de Petri e dita pura se n~ao tem self-loops.

De nic~ao 1.5.1

-

Rede Pura

: uma redeRk e dita pura se, e somente se,

n~ao contem nenhum self-loop, ou seja, I(pj;ti)O(pj;ti) = 0, para todos

ti2T; e pj 2P.

Uma rede com self-loops (impura) pode ser transformada (re nada) em uma rede pura atraves da introduc~ao de pares dummy. O par dummy cor-responde a um par formado por um lugar e uma transic~ao que re nam um self-loop. Este re namento pode ser observado na gura 1.11, onde temos a substituic~ao do arco de entrada do lugarp1 (I(p1) =t1) pelo par dummy

(33)

t p t t p p 1 1 1 2 2 1 p 3 p 3 Par dummy

Figura 1.11: Transformac~ao de uma Rede Impura em Pura

entrada da transic~ao t2. A transic~ao t2 e ent~ao associada como entrada do

lugar p1. t1 0 1 : p1 p3 : t1 t2 1 1 1 1 1 0 : 0 p1 p2 p3 :

Como mostrado anteriormente, a matriz de incid^encia e a representac~ao compacta das matrizes de pre e pos-condic~oes (I e O), ou seja, a matriz de incid^encia representa a estrutura do modelo. No entanto, observamos que u-ma rede impura (redes com self-loop) possui lugares que s~ao entrada e sada de uma mesma transic~ao. A estrutura dessas redes n~ao e completamen-te representada pela matriz de incid^encia, muito embora o comportamento do modelo continue sendo representado adequadamente pelas regras de exe-cuc~ao.

(34)

1.6 Sequ^encias Disparaveis

Se uma transic~ao t1 esta habilitada para uma marcac~ao M e uma segunda

transic~ao t2 esta habilitada para a marcac~ao M1, obtida apos o disparo de

t1, dizemos que a sequ^encia sq = t1;t2 esta habilitada para M. Ou seja, se

M[t1 > M1 e M1[t2 > M2 ent~aoM[t1;t2> M2. Desta forma, designamos o

disparo de uma sequ^encia sq2T porM[sq > M 0.

De nic~ao 1.6.1

-

Sequ^encias Disparaveis

: a sequ^encia sq esta habili-tada, possibilitando a obtenc~ao de uma marcac~ao M00, (M[sq > M00) se, e

somente se, ocorre um dos casos abaixo:

 sq=, onde e a sequ^encia vazia, tal que M

00=M;  sq=sq

0t, ondesq e uma sequ^encia de transic~oest

2T e existeM 0 tal

que M[sq0> M0 eM0[t > M00.

SeM[sq > M00, diz-se que sq e uma sequ^encia disparavel para M.

1.7 Func~ao de Proximo Estado

Seja R uma rede marcada e M uma marcac~ao que habilita uma transic~aotj,

denominamos func~ao de proximo estado aquela que possibilita a obtenc~ao de uma nova marcac~aoM0com o disparo de uma transic~aot

j da rede R, ou

seja, setj estiver habilitada temos (M;tj) =M0.

De nic~ao 1.7.1

-

Func~ao de Proximo Estado

: a func~ao de proximo es-tado de uma redeR= (P;T;I;O;M;K)e de nida se, e somente se,M(pi)

I(pi;tj), para todopi 2P. Sendo esta condic~ao satisfeita,(M;tj) =M 0(:

INn T ! INn), onde M 0(p

i) = M(pi) I(pi;tj) + O(pi;tj), para todo

pi 2P e n= #P.

E conveniente estender a de nic~ao de func~ao de proximo estado para mapear a marcac~ao e uma sequ^encia de transic~oes sq em uma nova marcac~ao. Tenhamos uma uma sequ^encia de transic~oest1;t2;t3;:::;tk e uma marcac~ao

M. A marcac~aoM =(M;t1;t2;t3;:::;tk) e resultado do disparo da transic~ao

t1, seguido de t2 e assim por diante ate o disparo detk, desde que o disparo

de cada uma dessas transic~oes gere uma marcac~ao que habilite a transic~ao seguinte.

(35)

De nic~ao 1.7.2

-

Func~ao de Proximo Estado Estendida

: a func~ao de proximo estado estendida para uma marcac~ao M e uma sequ^encia sq de transic~oes disparaveis ti de nida por: (M;tj;sq) = (((M;tj);sq) e

(M;) =M.

1.8 Equac~ao Fundamental

A equac~ao fundamental das redes de Petri (equac~ao de estados ou de mar-cac~oes) descreve o comportamento das redes, bem como possibilita a analise de propriedades comportamentais e estruturais que ser~ao apresentadas no captulo 3.

Como visto na sec~ao anterior, o disparo de uma transic~aot0, habilitada

por uma marcac~ao M0, gera uma nova marcac~ao M1(M0[t0 > M1). Esta

alterac~ao pode ser representada atraves da func~ao de proximo estadoM1=

(M0;t0).

M1habilita a transic~aot1e que disparada, habilitara uma nova transic~ao.

Se apos o disparo de uma sequ^encia de transic~oes sq = t0;t1;:::;tk

obtiver-mos uma marcac~ao M, podeobtiver-mos representar esse fato atraves da func~ao de proximo estado, ou sejaM =(M0;sq) =(M0;t0;t1;:::;tk).

Segundo a abordagem matricial das redes de Petri, uma transic~ao tj e

representada por um vetors(tj) com dimens~ao igual ao numero de transic~oes

da rede, onde todos os componentes desse vetor s~ao zero, exceto o j-esimo componente que tem valor unitario (s(tj)). Portanto,

M0

(p) =M0(p) I(p;tj) +O(p;tj);

8pi 2P:

pode ser representado por

M0

(p) =M0(p) I:s(tj)

T+O:s(tj)T =M

0(p) + (O I):s(tj)

T; 8pi2P

Representando as matrizes de pre e pos-condic~oes (I e O) atraves da matriz de incid^encia C (C=O I), temos:

M(p)0

=M0(p) +C:s(tj)

T; 8pi2P

(36)

Aplicando a sequ^encia de transic~oes sq na equac~ao acima, obtemos: M0(p j) =(M0(pj);sq) =M0(pj)+C:[s(t0) T+ s(t 1) T+:::+s(tk)T]; 8pi 2P:] O vetor [s(t0) T+s(t 1)

T+:::+s(tk)T] e denominado vetor caracterstico ou

vetor de Parikh, e e representado pors.

De nic~ao 1.8.1

-

Vetor Caracterstico

: o vetor caractersticos de uma rede R= (P;T;I;O;K) e um vetor de dimens~ao igual a #T, onde os com-ponentes deste vetor representam o numero de disparos de cada transic~ao.

A equac~ao M0(p) = M

0(p) + C:s;

8pi 2 P e denominada Equac~ao

Fundamental das Redes de Petri ou equac~ao de estados.

1.9 Grafo das Marcac~oes Acessveis

O grafo de marcac~oes acessveis e uma representac~ao gra ca do conjunto das marcac~oes que podem ser alcancadas para uma dada rede de Petri. O disparo de uma transic~ao modi ca a marcac~ao, conforme a marcac~ao atual e a estrutura da rede. Essas marcac~oes obtidas apos os disparos das transic~oes s~ao as marcac~oes acessveis de uma rede para uma determinada marcac~ao inicial. Na gura 1.12, apresentamos uma rede marcada (N1= (R1;M0)).

p p p p t t t t 2 3 4 5 1 2 4 2 2 3 p 1 Figura 1.12: RedeN1

O vetorMk representa a k-esima marcac~ao da rede R1( Mk = (m(p1);

m(p2); m(p3);m(p4);m(p5)) eA(R;M0) = fM

0;M1;M2;M3

go conjunto das

(37)

M0= (1;0;1;0;3))

M1= (0;1;1;0;1))

M2= (0;1;0;1;0))

M3= (1;0;0;1;2))

Constroi-se o grafo das marcac~oes acessveis atraves da veri cac~ao e dis-paro das transic~oes disparaveis para uma dada marcac~ao inicial e repetindo-se esrepetindo-se processo para as marcac~oes obtidas com esrepetindo-ses disparos. Os vertices desse grafo s~ao as marcac~oes e os arcos que interconectam esses vertices representam o disparo de cada transic~ao.

M M M 0 1 M 3 2 t 1 2 t t3 t4 t 3 t4 t t 1 2

Figura 1.13: Grafo das Marcac~oes Acessveis

Na rede marcada da gura 1.12, podemos disparar a transic~ao t1 e a

transic~aot3. O disparo det1 leva a rede para a marcac~aoM1 e o disparo de

t3para a marcac~aoM3. Na marcac~aoM1podemos disparart2et3. O disparo

det2 retorna a marcac~ao inicial da rede. O disparo det3, a partir deM1faz

com que a rede atinja a marcac~aoM2. Na marcac~aoM2, as transic~oest2et4

est~ao habilitadas. Disparando-set4 retorna-se a marcac~aoM1 e

disparando-se t2 atinge-se M3. Em M3 e possvel retornar-se a marcac~ao M2, pelo

disparo de t1 ou a marcac~ao inicial pelo disparo det4.

De nic~ao 1.9.1

-

Conjunto das Marcac~oes Acessveis

: seja uma rede marcadaN = (R;M0); de ne-se conjunto das marcac~oes acessveisA(R;M0)

pelo conjunto de marcac~oes obtidas a partir de uma marcac~ao inicialM0pelo

(38)

A(R;M0) =

fMi 2 INmg, tal que existe uma sequ^encia de transic~oes sq,

que M0[sq > Mi, onde m = #P e Mi so e alcancavel se, e somente se,

Mi 2A(R;M):

Na gura 1.13, apresentamos o grafo das marcac~oes acessveis (GA) da rede R1. O grafo das marcac~oes acessveis pode ser de nido por uma dupla

GA(R;M0) = (Mi;a

(i;j)), onde Mi

2 A(R;M

0) s~ao os vertices do grafo e

a(i;j) os arcos. Os arcos representam a alterac~ao da marcac~ao pelo disparo

das transic~oes. Apresentamos, a seguir, a de nic~ao do grafo das marcac~oes acessveis (grafo de acessibilidade) a estas marcac~oes:

De nic~ao 1.9.2

-

Grafo das Marcac~oes Acessveis

: seja uma rede mar-cadaN = (R;M0); de ne-se grafo das marcac~oes acessveis GA, por um par

GA(R;M0) = (Mi;a

(i;j)), onde Mi

2 A(R;M

0) s~ao os vertices do grafo e

a(i;j) os arcos. Os arcos representam M

0[> M00 se, e somente se, existe uma

transic~ao t tal queM0[t > M00 (mudanca de marcac~ao).

p p p t t t 0 1 2 0 1 2 M M M M 0 1 2 3 t t t 0 1 2 t t t t 0 2 0 1 ... ... ... ... (a) (b)

Figura 1.14: Grafo das Marcac~oes Acessveis In nito

O vetor Mk = (m(p0);m(p1);m(p2)) representa o vetor marcac~ao da

rede da gura 1.14, ou seja, o primeiro componente desse vetor representa a marcac~ao do lugar p0 para a k-esima marcac~ao. O segundo componente

representa a marcac~ao do lugar p1 e o terceiro componente, a marcac~ao do

(39)

M0 = (1;0;0))

M1 = (0;1;1))

M2 = (1;0;1))

M3 = (1;1;0))

Para a rede da gura 1.12, observamos que o numero de marcac~oes a-cessveis e nito, portanto e possvel representar, atraves do grafo de mar-cac~oes acessveis, todas as marmar-cac~oes obtidas com os disparos das transic~oes. No entanto, um grande numero de modelos pode ter um numero in nito de marcac~oes, o que torna impossvel a representac~ao dessas marcac~oes nesse grafo. Para exempli car esta situac~oes observemos a rede da gura 1.14.a. A marcac~ao inicial desta rede (M0 =

f1;0;0g) habilita o disparo da

tran-sic~ao t0, alterando a marcac~ao da rede para M1 =

f0;1;1g. A marcac~ao

M1 possibilita tanto o disparo de t1 quanto o disparo de t2. Observe que,

tanto disparando a transic~ao t1 quanto disparando t2, teremos uma nova

marca no lugar p0, o que possibilita o disparo de t0, de tal forma que

te-remos um acumulo de marcas nos lugares da rede e consequentemente um numero in nito de marcac~oes. Nesse caso, a rede pode sempre atingir um estado diferente dos ja alcancados, fazendo com que o grafo das marcac~oes acessveis seja in nito, impossibilitando a representac~ao gra ca de todas as marcac~oes acessveis ( gura 1.14.b) do modelo. No captulo 3, apresentamos duas representac~oes gra cas que s~ao utilizadas para representar, nitamente, um numero in nito de marcac~oes.

1.10 Condic~oes Externas

Como ja apresentado, as transic~oes de uma rede de Petri representam as ac~oes. A execuc~ao de uma ac~ao pelo sistema, pode n~ao depender de nenhu-ma condic~ao externa ao sistenenhu-ma (entrada), contudo e possvel que a execuc~ao de uma ac~ao pelo sistema dependa n~ao so de condic~oes internas (marcas em lugares), como tambem de condic~oes externas ao sistema modelado. Pa-ra possibilitar esta necessidade de representac~ao, podemos associar estas condic~oes as transic~oes, ou seja, para que ocorra o disparo da transic~ao e necessario que tambem a condic~ao externa associada a transic~ao seja ver-dadeira. A gura 1.15 mostra uma rede onde temos associadas condic~oes externas as transic~oest e t .

(40)

e ( ) ne ( ) t0 p 0 t 1 p1 t2 t 3 p 2

Figura 1.15: Condic~oes Externas Associadas as Transic~oes

Imaginemos as atividades de um programador, que, apos encerrar a co-di cac~ao de um programa, compila os modulos fontes separadamente e pos-teriormente efetua a ligac~ao dos modulos obtidos. A rede da gura 1.15 apresenta abstratamente parte desse processo. Uma marca no lugar p0

in-dica que ha um programa disponvel, permitindo, portanto, que ele seja compilado (disparo de t1). As transic~oes t2 e t3 est~ao associadas as

con-dic~oes externas, (e) e (ne). Estas concon-dic~oes indicam se houve erro ou n~ao no processo de compilac~ao. Caso ocorra algum erro na compilac~ao, a tran-sic~ao t3 esta impossibilitada de disparo e a transic~ao t2 pode ser disparada

(possibilita uma nova compilac~ao, pois uma marca sera depositada no lugar

p0). Quando n~ao ocorrer nenhum erro na compilac~ao, e possvel disparart3,

possibilitando a execuc~ao das ac~oes subsequentes.

1.11 Associac~ao de Rotulos a Transic~oes

Em algumas oportunidades, no processo de modelagem de sistemas, dese-jamos n~ao tomar conhecimento ou mesmo confundir ocorr^encias de ac~oes (disparo de transic~oes). Para tal, rotulamos transic~oes distintas com o mes-mo nome, podendo inclusive usar-se, a ac~ao vazia.

Devemos de nir um alfabeto P

e associa-lo a rede. Realizamos esta associac~ao atraves da rotulac~ao de transic~oes da rede com smbolos de P

.

De nic~ao 1.11.1

-

Func~ao de Nomeac~ao

: seja uma uma rede R =

(P;T;I;O;K) e um alfabeto . A func~ao  : T !  e de nida como

(41)

Na gura 1.16 apresentamos uma rede onde todas as transic~oes est~ao rotuladas (etiquetadas). p p p p 0 1 2 3 a b c

Figura 1.16: Rede Etiquetada

Nesta rede temos as transic~oes rotuladas as ac~oes do tipo a, b, c e a ac~ao vazia . Uma transic~ao rotulada como uma ac~ao vazia, ou seja (tj) = 

n~ao aparece em qualquer sequ^encia de transic~oes disparadas.

Para que n~ao haja confus~ao entre condic~oes e rotulos nas transic~oes, adotaremos a convenc~ao de grafar as condic~oes sempre entre par^enteses.

1.12 Linguagens das Redes de Petri

As redes de Petri possibilitam a especi cac~ao, modelagem e veri cac~ao de propriedades de sistemas. Como ja observamos, as transic~oes modelam as ac~oes, a ocorr^encia de uma ac~ao e representada pelo disparo de uma transic~ao e as sequ^encias de ac~oes s~ao modeladas por sequ^encias de transic~oes. Essas sequ^encias de transic~oes s~ao extremamente importantes quando desejamos observar a equival^encia entre modelos. Duas redes s~ao ditas equivalentes se todas as sequ^encias de transic~oes fornecidas s~ao iguais. O conjunto de strings(sequ^encias de transic~oes) gerados por todas as possveis sequ^encias de disparo de nem uma linguagem formal denominada Linguagem da rede de Petri.

(42)

de estados nitos, desenvolveu-se a teoria das linguagens das redes de Petri. Na sec~ao anterior, apresentamos a rotulac~ao (nomeac~ao) de transic~oes das redes de Petri a partir de um alfabeto .

A gura 1.17 apresenta uma rede que tem suas transic~oes rotuladas con-forme o alfabeto  =fa;bg. Observe-se contudo, que uma transic~ao e

rotu-lada como ac~ao vazia (), que corresponde ao string vazio , e obviamente n~ao tem in u^encia na linguagem gerada.

a p b

p p

0

1

2

Figura 1.17: Rede Rotulada

Ainda na rede da gura 1.17, a transic~ao rotulada com a pode ser dispa-rada um numero in nito de vezes e o lugarp1acumula um numero de marcas

exatamente igual ao numero de disparo desta transic~ao. No entanto, quando dispararmos a transic~ao rotulada com uma ac~ao vazia, a transic~ao rotulada com a e impedida de ser disparada, pois a marca do lugarp0e consumida. O

disparo da transic~ao rotulada comdeposita uma marca no lugar p2, o que

habilita a transic~ao rotulada com b. Essa transic~ao podera ser disparada o mesmo numero de vezes que foi disparada a transic~ao rotulada com o smbolo a. A linguagem gerada pela rede da gura e L(R;M0) =a

nbn; n0. Um

trabalho mais detalhado sobre este tema pode ser encontrado em [4]. E importante salientar que a expressividade da rede de Petri supera o formalismo das gramaticas livre de contexto limitadas e express~oes regulares, uma vez que, face a inexist^encia de mecanismos de contagem (memoria) nes-ses formalismos, a linguagem L(R;M0) =a

nbn; n0 n~ao pode ser

expres-sa diretamente, tendo-se que recorrer ao artifcio de representar a linguagem como sendo L= (ab)n, impondo-se a gerac~ao casada dos smbolos.

(43)

1.13 Classes das Redes de Petri

Algumas classes de problemas t^em caractersticas que devem ser explicitadas ou mesmo representadas de forma mais compacta, na especi cac~ao. Apre-sentamos algumas dessas classes de problemas, bem como apontamos para algumas extens~oes as redes de Petri que os solucionam.

Em algumas fases do processo de desenvolvimento de um sistema, neces-sitamos representar o sistema em evoluc~ao com um maior ou menor deta-lhamento, de maneira compacta. Dependendo das dimens~oes do sistema, o modelo representativo pode ter dimens~oes n~ao praticas e n~ao elucidativas. Em outra fase do desenvolvimento pode ser necessario o esclarecimento de determinados aspectos, que em fases anteriores n~ao se faziam necessarios. Tendo em vista esses aspectos, a literatura fornece diferentes classi cac~oes para as redes de Petri.

 Redes de Petri Ordinarias:

RdPs Binarias ou Condic~ao-Evento Redes de Petri Place-Transition

RdPs N~ao-Ponderadas RdPs Ponderadas

 Redes de Petri N~ao-Ordinarias ou de Alto Nivel:

RdPs Predicado-Evento RdPs Coloridas

RdPs Hierarquicas

Aqui seguimos a classi cac~ao apresentada em [1], embora existam outras classi cac~oes na literatura.

1.14 Redes de Petri Ordinarias

As redes de Petri ordinarias caracterizam-se pelo tipo de suas marcas. Nessas classes de rede, o tipo das marcas e inteiro n~ao negativo, enquanto as redes de Petri n~ao-ordinarias possuem marcas de tipos particulares.

(44)

A classe binaria (condic~ao/evento) representa as redes mais simples entre todas as classes. Nessa classe, os lugares podem conter no maximo uma cha e todos os arcos t^em peso unitario. A gura 1.18.a apresenta uma rede dessa classe.

Nas redes Place-Transition os lugares podem acumular marcas, assim co-mo os arcos podem ser valorados. Alguns autores, contudo, fazem distinc~ao entre as redes em que os arcos t^em valores difrentes de um e as redes com arcos de peso igual a um.

As redes de Petri n~ao-ponderadas s~ao uma classe em que os lugares po-dem ter mais do que uma marca e a valorac~ao dos arcos e unitaria. A gura 1.18.a apresenta uma rede binaria, que descreve um processo que po-de utilizar dois recursos (r1;r2) e uma rede n~ao ponderada ( gura 1.18.b)

que representa o mesmo processo, de forma mais compacta, com apenas um lugar representando os recursos. O numero de marcas no lugar r indica a quantidade de recursos. p p p r r t t t 1 2 0 1 2 0 1 2 p p p r t t 0 1 2 0 1 2 t (a) (b)

Figura 1.18: Rede Binaria e n~ao-Ponderada

Nas redes ponderadas, os pesos dos arcos n~ao est~ao limitados a 1. Nessa classe de rede podemos ter arcos multiplos, que podem ser representados por um unico arco e associado a este, uma valorac~ao. A rede R1 da gura 1.12

(45)

1.15 Redes de Alto Nvel

As redes n~ao-ordinarias s~ao caracterizadas pelos tipos de suas marcas que n~ao s~ao mais elementos do tipo inteiro positivo. Nessas classes de redes, as marcas s~ao diferenciadas com par^ametros de cor, que permite a indivi-dualizac~ao da marca (a especi cac~ao de um objeto por sua cor) ou mesmo a marca representada n~ao por um unico objeto mas por um conjunto de objetos. Essas classes de redes ser~ao estudadas no captulo 4.

Todas as classes de redes que apresentamos t^em o mesmo poder de com-putacional, no entanto algumas dessas classes possibilitam um mais alto ou mais baixo nvel de abstrac~ao dos modelos. Dependendo da aplicac~ao ou mesmo do estagio de desenvolvimento, faz sentido a escolha de uma deter-minada classe de rede para a modelagem do problema. No entanto, nenhuma destas classes possibilita o teste a zero (testar se um lugar n~ao tem marca) de lugares com capacidade ilimitada (k=1). No captulo 4 apresentamos

algumas extens~oes as redes de Petri, que possibilitam esse teste e fornecem meios para a especi cac~ao de outras propriedades dos sistemas computacio-nais, tais como tempo e prioridade. As extens~oes aqui elucidadas s~ao as redes de Petri com arco inibidor, redes de Petri temporizadas determinsticas, es-tocasticas e com prioridades. Infelizmente, essas extens~oes reduzem o poder de decis~ao das redes de Petri. Alguns trabalhos investigam o uso de sub-classes de redes de Petri que possibilitem aumentar o poder de decis~ao, sem contudo reduzir em demasia o seu poder de modelagem.

No captulo seguinte, apresentamos a modelagem com redes de Petri, descrevendo uma serie de problemas classicos, que possibilitam a percepc~ao do poder de modelagem das redes de Petri.

(46)
(47)

Modelagem com Redes de

Petri e Sub-Classes

Este captulo apresenta inicialmente algumas redes basicas e essenciais para a modelagem de sistemas em geral [2]. Redes a partir das quais, torna-se possvel a modelagem de sistemas mais complexos [18, 17, 16, 12, 10, 46] em func~ao destas construc~oes elementares. Posteriormente, apresentamos uma serie de exemplos classicos, onde s~ao apresentados os seus modelos. Estes exemplos t^em aspectos importantes a serem observados, e a sua modelagem [25] serve tambem como um exerccio para uma posterior especi cac~ao de sistemas mais complexos.

2.1 Redes Elementares

As redes elementares [4] [2] s~ao utilizadas como blocos basicos que possibi-litam a especi cac~ao de aplicac~oes mais complexas. Nesta sec~ao veremos o modelo de sequenciamento, distribuic~ao, junc~ao, escolha n~ao-determinstica e atribuic~ao.

2.1.1 Sequenciamento

O sequenciamento e uma rede que representa a execuc~ao de ac~ao, desde que uma condic~ao seja verdadeira. Apos a execuc~ao desta ac~ao temos uma nova condic~ao que podera possibilitar a execuc~ao de uma nova ac~ao [2].

(48)

Na gura 2.1 apresentamos este modelo. Uma marca no lugar p0 habilita a

transic~aot0e com o disparo desta transic~aoe estabelecida uma nova condic~ao

(p1 e marcado). Esta nova condic~ao pode permitir o disparo de uma outra

transic~ao que esteja asociada ao lugarp1.

t

p p

0 0 1

Figura 2.1: Sequenciamento

2.1.2 Distribuic~ao

A rede que representa a distribuic~ao e apresentada na gura 2.2. Esta rede possibilita a criac~ao de processos paralelos a partir de um processo pai [2]. Nesta rede o disparo da transic~aot0, retira uma marca do lugar p0 e coloca

uma marca nos lugares p1 e p2. Estas novas condic~oes estabelecidas,

permi-tem a execuc~ao de outras tarefas paralelamente, ou seja, p1 e pre-condic~ao

para a execuc~ao de uma tarefa e p2 pre-condic~ao para a execuc~ao de uma

outra tarefa. t p p p 0 1 2 0 Figura 2.2: Distribuic~ao

2.1.3 Junc~ao

A rede que modela o sincronismo ou junc~ao e apresentada na gura 2.3. Esta rede possibilita a sincronizac~ao entre processos. Este modelo tem

(49)

fundamental import^ancia, pois na modelagem de atividades concorrentes frequentemente e necessaria a sincronizac~ao entre tarefas. Esta rede recom-bina duas tarefas, pemitindo que, por exemplo, um processo continue sua execuc~ao apenas apos o termino de outros processos espec cos [2].

t p p p 0 1 0 2 Figura 2.3: Junc~ao

O disparo da transic~ao t0 so e possvel quando existir uma cha nos

lugares p0 e p1. Esta condic~ao sendo satifeita, e possvel disparar-se t0.

Efetuando-se o disparo, retira-se uma cha dos lugares p0 e p1 e coloca-se

uma cha no lugar p2. Esta nova condic~ao estabelecida pode possibilitar a

execuc~ao de outras ac~oes do sistema.

2.1.4 Escolha N~ao-Determinstica

Nesta sec~ao apresentamos uma rede elementar que dependendo da aplicac~ao, e denominada con ito, escolha ou decis~ao. De niremos tambem os conceitos de con ito estrutural e con ito efetivo [2].

A rede elementar da gura 2.4 representa a escolha n~ao-determinstica do disparo de transic~oes. Neste modelo, o disparo de uma transic~ao inabilita o disparo da outra transic~ao.

Alguns autores, no entanto, enfatizam uma distinc~ao entre o que deno-minam con ito (escolha, decis~ao) estrutural e con ito efetivo.

De nic~ao 2.1.1

-

Con ito Estrutural

: duas transic~oes t0 et1 est~ao em

con ito estrutural se, e somente se, t^em um lugar p comum como entrada, ou seja 8p2P I(p;t 0) I(p;t 1) 6 = 0; 8p2P.

Na gura 2.5.a mostramos as transic~oes t1 e t2 em con ito estrutural.

(50)

t t p p p 0 0 1 1 2

Figura 2.4: Escolha N~ao-Determinstica

t t p p p 0 1 3 0 1 t t p p p 0 1 3 0 1 (b) (a)

Referências

Documentos relacionados