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.
Prefacio
Redes de Petri e uma tecnica de especicac~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 especicac~ao de sistemas de hardware ou software, avaliac~ao de desempenho, especicac~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 monograa 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 especicac~ao de problemas classicos e novos exemplos descritos pelos autores. O terceiro captulo discute as propriedades das
re-des de Petri, bem como diversos metodos de analise para vericac~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 monograa 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 monograa.
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.
Conteudo
1 Introduc~ao
1
1.1 Estrutura das Redes de Petri : : : : : : : : : : : : : : : : : : 6 1.1.1 Estrutura Denida em Bag : : : : : : : : : : : : : : : 6 1.1.2 Estrutura Denida em Matriz : : : : : : : : : : : : : : 9 1.1.3 Estrutura Denida 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
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
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 Especicac~oes Funcionais : : : : : : : : : : : : : : 150
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
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 : : : : : : : : : : : : : : : : : : : : : : : : : 161.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 Innito : : : : : : : : : : : : 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
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 Buer 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 Buer 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
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 - Vericac~ao de Propriedades : : : : : : 90 3.20 Grafo de Cobertura - Vericac~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
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
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
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 especicac~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 classicac~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
especicar concorr^encia. Ex.: Z [55].
2. Tecnicas Baseadas em Algebra de Processos.
Estas tecnicas fornecem meios explcitos para especicar 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 especicac~ao de sistemas que possibilita uma representac~ao matematica e possui mecanismos de analise poderosos, que permitem a vericac~ao de propriedades e a vericac~ao da corretude do sistema especicado. 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, deniremos 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 vericac~ao dessas propriedades e extens~oes as redes de Petri. A representac~ao graca 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
lugares ter~ao suas informac~oes alteradas (pos-condic~oes). Gracamente, 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
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
evento, teremos uma nova situac~ao atual, ou seja: tarde, que e representada gracamente, 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
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 sucientes, 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 denic~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 denic~ao usa a notac~ao matricial [1]. E a terceira, dene as redes de Petri atraves de relac~oes e pesos associados a estas relac~oes [5].
1.1.1 Estrutura Denida em
BagA estrutura das redes de Petri, segundo a teoria bag [4] e composta por cinco partes: o conjunto de lugares
P
, o conjunto de transic~oesT
, o bag de entradaI
, o bag de sadaO
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 desada mapeiam uma transic~aotj em um bag de lugaresOtj. Para denotarmos
conjuntos, utilizamos -f g e para os bags - [ ].
Denic~ao 1.1.1
-Estrutura das Redes de Petri em bag
: dene-se a estrutura de uma rede de PetriR
, como uma quntupla R= (P;T;I;O;K), onde P = fp1;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
das capacidade associadas a cada lugar, podendo assumir um valor innito.
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.
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.
1.1.2 Estrutura Denida 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:
Denic~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 !INe 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
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 Denida por Relac~oes
E possvel denirmos 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 denic~ao e apresentada a seguir:
Denic~ao 1.1.3
-Estrutura das Redes de Petri por Relac~oes
: dene-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
Comos vimos na denic~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 eo 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 denic~ao formal de marcac~ao, assim como a denic~ao de uma rede de Petri marcada.
Denic~ao 1.2.1
-Marcac~ao
: sejaP o conjunto de lugares de uma rede R. Dene-se formalmente marcac~ao como uma func~ao que mapeia o conjunto de lugaresP
a inteiros n~ao-negativos M :P N.Uma outra denic~ao da marcac~ao das redes de Petri pode ser apresentada na forma vetorial.
Denic~ao 1.2.2
-Vetor Marcac~ao
: sejaP o conjunto de lugares de uma rede R. A marcac~ao pode ser denida 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. Gracamente, 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
MR2 0 = 1 0 0 0 0 p1 p2 p3 p4 p5
Uma rede de Petri marcada pode ser denida por uma dupla formada pela estrutura da rede (R) e uma marcac~ao inicial (M0) associada a rede. A
seguir apresentamos a denic~ao formal das redes de Petri marcadas.
Denic~ao 1.2.3
-Rede Marcada
: dene-se uma rede de Petri marcada pela dupla RM = (R;M0), onde R e a estrutura da rede e M0 a marcac~aoinicial.
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 modicada, 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
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
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:
Denic~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 todopi 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 congurac~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
consome marcas nos lugares de entrada, porem n~ao cria outros recursos (ver gura 1.10). A seguir denimos 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
Denic~ao 1.3.2
-Transic~ao Source
: a transic~aotie denida 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
Denic~ao 1.3.3
-Transic~ao Sink
: a transic~aoti e denida 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
(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 denic~ao da matriz de incid^encia.
Denic~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 denidapor: 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-LoopOs 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.
Denic~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 (renada) 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 renam um self-loop. Este renamento pode ser observado na gura 1.11, onde temos a substituic~ao do arco de entrada do lugarp1 (I(p1) =t1) pelo par dummy
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.
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.
Denic~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, esomente 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.
Denic~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 denida 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 denic~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.
Denic~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 denida 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
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.
Denic~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 graca do conjunto das marcac~oes que podem ser alcancadas para uma dada rede de Petri. O disparo de uma transic~ao modica 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
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 vericac~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.
Denic~ao 1.9.1
-Conjunto das Marcac~oes Acessveis
: seja uma rede marcadaN = (R;M0); dene-se conjunto das marcac~oes acessveisA(R;M0)pelo conjunto de marcac~oes obtidas a partir de uma marcac~ao inicialM0pelo
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 denido 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 denic~ao do grafo das marcac~oes acessveis (grafo de acessibilidade) a estas marcac~oes:
Denic~ao 1.9.2
-Grafo das Marcac~oes Acessveis
: seja uma rede mar-cadaN = (R;M0); dene-se grafo das marcac~oes acessveis GA, por um parGA(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 Innito
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
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 innito de marcac~oes, o que torna impossvel a representac~ao dessas marcac~oes nesse grafo. Para exemplicar 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 innito 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 innito, impossibilitando a representac~ao graca de todas as marcac~oes acessveis (gura 1.14.b) do modelo. No captulo 3, apresentamos duas representac~oes gracas que s~ao utilizadas para representar, nitamente, um numero innito 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 .
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-dicac~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 denir 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
.
Denic~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 denida como
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 especicac~ao, modelagem e vericac~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 denem uma linguagem formal denominada Linguagem da rede de Petri.
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 innito 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.
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 especicac~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 classicac~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 classicac~ao apresentada em [1], embora existam outras classicac~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.
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
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 especicac~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 especicac~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.
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 especicac~ao de sistemas mais complexos.
2.1 Redes Elementares
As redes elementares [4] [2] s~ao utilizadas como blocos basicos que possibi-litam a especicac~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].
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
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 especcos [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. Deniremos 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.
Denic~ao 2.1.1
-Con ito Estrutural
: duas transic~oes t0 et1 est~ao emcon 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.
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)