• Nenhum resultado encontrado

Verificação formal automatizada para sistemas de raciocínio procedural (PRS) utilizando redes de petri coloridas (RPC)

N/A
N/A
Protected

Academic year: 2017

Share "Verificação formal automatizada para sistemas de raciocínio procedural (PRS) utilizando redes de petri coloridas (RPC)"

Copied!
172
0
0

Texto

(1)

Universidade Federal do Rio Grande do Norte

Centro de Tecnologia

Programa de P´os-Graduac¸˜ao em Engenharia El´etrica

Ricardo Wagner de Ara ´ujo

Verificac¸˜ao Formal Automatizada para Sistemas de

Racioc´ınio Procedural (PRS) Utilizando Redes de Petri

Coloridas (RPC)

Tese submetida ao Programa de P´os-Graduac¸˜ao em Engenharia El´etrica do Centro de Tecno-logia da Universidade Federal do Rio Grande do Norte como parte dos requisitos necess´arios `a obtenc¸˜ao do grau de Doutor em Ciˆencias (D.Sc.).

Orientador: Prof. Adelardo Adelino Dantas de Medeiros, D.Sc.

(2)

Resumo xiii

Abstract xv

1 Introduc¸ ˜ao 1

1.1 Apresentac¸˜ao . . . 1

1.2 Utilidade da Linguagem PRS . . . 2

1.3 M´etodos Formais . . . 3

1.4 Modelo . . . 3

1.4.1 Sistema . . . 3

1.4.2 Representac¸˜ao dos Sistemas . . . 3

1.5 Especificac¸˜ao Formal . . . 5

1.6 Verificac¸˜ao Formal . . . 6

1.7 Objetivos do Trabalho . . . 7

1.8 Contribuic¸˜ao . . . 7

1.9 Organizac¸˜ao do Trabalho . . . 8

2 A Linguagem PRS 9 2.1 Introduc¸˜ao . . . 9

2.2 Vis˜ao Geral doPropice . . . 10

2.3 Exemplo de KA emPropice . . . 11

2.4 As Vari´aveis . . . 13

2.4.1 Vari´aveis L´ogicas . . . 13

(3)

2.4.2 Vari´aveis de Programa . . . 14

2.5 Os Termos . . . 14

2.5.1 Integer . . . 14

2.5.2 Float . . . 14

2.5.3 String . . . 14

2.5.4 Vari´aveis . . . 15

2.5.5 Lista de Vari´aveis . . . 15

2.5.6 Ponteiro . . . 15

2.6 Express˜oes Gerais . . . 15

2.7 Express˜ao Temporal Geral . . . 15

2.8 Fatos . . . 16

2.9 Metas . . . 16

2.10 Alguns Construtores Gr´aficos de KA . . . 16

2.10.1 N´oIF-THEN-ELSE . . . 17

2.10.2 N´o SPLIT e JOIN . . . 18

2.11 A Base de Dados . . . 19

2.11.1 Unificac¸˜ao . . . 20

2.11.2 Conclus˜ao . . . 21

2.11.3 Consulta . . . 21

2.11.4 Os Predicados . . . 22

2.12 Conclus˜ao . . . 22

3 As Redes de Petri 23 3.1 Introduc¸˜ao . . . 23

3.2 As Redes de Petri Ordin´arias . . . 24

3.2.1 Elementos b´asicos de uma RdP . . . 24

3.2.2 Comportamento dinˆamico . . . 25

3.2.3 Definic¸˜ao formal . . . 26

3.2.4 Exemplo de uma rede de Petri . . . 27

3.3 As Redes de Petri Coloridas (RPC) . . . 28

(4)

3.3.3 Modelo deRPCutilizado neste trabalho . . . 30

3.3.4 Exemplo simples de umaRPC . . . 32

3.3.5 Componentes de umaRPC. . . 33

3.3.6 Definic¸˜ao formal dasRPCs . . . 38

3.4 Propriedades das Redes de Petri . . . 38

3.4.1 Propriedades Comportamentais . . . 39

3.4.2 Propriedades Estruturais . . . 41

3.5 Redes Hier´arquicas . . . 41

3.6 An´alise das Redes de Petri Coloridas . . . 43

3.7 Conclus˜ao . . . 45

4 As Regras de Convers ˜ao PRS-RPC 47 4.1 Introduc¸˜ao . . . 47

4.2 O Princ´ıpio da Modelagem . . . 48

4.3 A Base de Dados . . . 49

4.3.1 Os Predicados Padr˜oes . . . 49

4.4 Os Predicados Fechados . . . 53

4.5 Os Fatos Funcionais . . . 53

4.6 As Vari´aveis . . . 54

4.7 As Metas . . . 55

4.8 Os N´os . . . 57

4.8.1 Os n´os condic¸˜ao . . . 57

4.8.2 O paralelismo . . . 58

4.9 Os Arcos . . . 59

4.9.1 Os testes . . . 59

4.9.2 As solicitac¸˜oes de objetivos . . . 60

4.9.3 As Esperas . . . 61

4.10 O n˜ao Determinismo . . . 61

(5)

4.11 As KAs . . . 62

4.12 A Ativac¸˜ao das KAs . . . 64

4.12.1 KAs disparadas por fatos . . . 64

4.12.2 KAs disparadas por metas . . . 64

4.13 Exemplo . . . 66

4.13.1 A Torre de Hanoi em PRS . . . 66

4.13.2 A Torre de Hanoi em CPN . . . 71

4.14 Resultados obtidos . . . 73

4.15 Conclus˜ao . . . 74

5 Conversor 77 5.1 Introduc¸˜ao . . . 77

5.2 Compilador . . . 78

5.3 Fases de um Compilador . . . 78

5.4 Vis˜ao Geral do Conversor . . . 80

5.5 N´ucleo do Conversor . . . 85

5.5.1 Fase de An´alise do Conversor . . . 85

5.5.2 Fase de S´ıntese do Conversor . . . 87

5.6 Algoritmos das Regras de Convers˜ao . . . 90

5.6.1 Regra Teste Afirmativo . . . 91

5.6.2 Regra Teste Negativo . . . 92

5.6.3 Regra Inclus˜ao na Base de Dados . . . 93

5.6.4 Regra Postagem de Meta . . . 94

5.6.5 Regra Espera . . . 95

5.7 Conclus˜ao . . . 95

6 Estudo de Caso 97 6.1 Introduc¸˜ao . . . 97

6.2 Sistema Monitora . . . 97

6.2.1 A Convers˜ao . . . 100

6.3 Sistema Elevador . . . 106

(6)

6.5 Conclus˜ao . . . 119

7 Conclus˜ao 121

Apˆendice 124

A 125

B 129

C 141

(7)
(8)

2.1 Arquitetura Geral doPropice. . . . 11

2.2 Exemplo de umaprocedureou KA. . . 12

2.3 Editor de KA (OP). . . 17

2.4 Compilador de KA. . . 18

2.5 Fatorial Recursivo. . . 18

2.6 KA que computa Fibonacci sem o paralelismo. . . 19

2.7 Ka que computa Fibonacci com o paralelismo. . . 20

3.1 Representac¸˜ao gr´afica da Rede de Petri. . . 24

3.2 Representac¸˜ao gr´afica da Rede de Petri. . . 27

3.3 Evoluc¸˜ao da Rede de Petri do Exemplo 3.1.5. . . 28

3.4 Estudos iniciais das redes de Petri coloridas. . . 30

3.5 Modelo da linha de manufatura usando RdP ordin´aria. . . 31

3.6 Rede de Petri Colorida descrevendo um sistema de alocac¸˜ao de recursos. . 33

3.7 Uma transic¸˜ao do sistema de alocac¸˜ao de recursos. . . 36

3.8 Modelo da Superp´agina. . . 42

3.9 Modelo da Subp´agina. . . 43

4.1 Dois Exemplos de Equivalˆencia entre PRS e RPC. . . 48

4.2 Caracter´ıstica Essencial dos Modelos dos Arcos. . . 49

4.3 Modelagem de um Predicado Padr˜ao. . . 50

4.4 Teste de um Predicado Padr˜ao. . . 51

4.5 Conclus˜ao de um Predicado Padr˜ao na Base de Dados. . . 52

4.6 Retirada de um Predicado Padr˜ao na Base de Dados. . . 52

(9)

4.7 Modelos das Operac¸˜oes com os Predicados Fechados. . . 54

4.8 Modelos das Operac¸˜oes com os Fatos Funcionais. . . 55

4.9 A Representac¸˜ao das Vari´aveis nas Marcas. . . 56

4.10 Representac¸˜ao da Postagem de uma Meta. . . 57

4.11 Modelo de um N´o Condic¸˜ao. . . 58

4.12 Modelo dos N´os de ´Inicio e Fim de Paralelismo. . . 58

4.13 Modelo de um arco que testa uma condic¸˜ao complexa. . . 59

4.14 Modelo de atribuic¸˜ao de uma vari´avel. . . 61

4.15 Modelo de um arco de espera. . . 61

4.16 Modelo de um n´o com dois arcos saindo. . . 62

4.17 Equivalˆencia entre certos campos da KA e arcos. . . 63

4.18 Exemplo de RPC equivalente a uma KA. . . 64

4.19 Desencadeamento de uma KA ativada por um fato. . . 65

4.20 Meta com nenhuma KA dispar´avel. . . 65

4.21 Meta com uma ´unica KA dispar´avel. . . 66

4.22 Meta com duas KAs dispar´aveis. . . 67

4.23 Exemplo da Torre de Hanoi. . . 68

4.24 Problema da Torre de Hanoi. . . 69

4.25 KA Mover Torre de Hanoi. . . 70

4.26 KA usada para movimentac¸˜ao de disco. . . 71

4.27 Declarac¸ ˜oes usadas na RPC. . . 72

4.28 RPC inicial do problema da torre de Hanoi. . . 73

4.29 RPC hier´arquica para o n˜ao determinismo de N1. . . 74

4.30 RPC para construc¸˜ao da torre auxiliar. . . 75

4.31 RPC para movimentac¸˜ao de discos. . . 76

5.1 Representac¸˜ao B´asica de um Compilador. . . 78

5.2 As Fases do Compilador. . . 79

5.3 Arquitetura Geral do Conversor. . . 81

5.4 Partes de um programa PRS. . . 82

(10)

5.7 Parte Corpo de uma KA . . . 84

5.8 Tabela de Predicados . . . 87

5.9 Tabela de Vari´aveis . . . 88

5.10 Resultado da Fase de An´alise . . . 88

5.11 Hierarquizac¸˜ao das Redes de Petri. . . 89

6.1 KA Sistema Caixa D’´agua. . . 99

6.2 Editor doLispWorks. . . 100

6.3 Execuc¸˜ao do Conversor. . . 101

6.4 Tabela de predicados e lista de KA. . . 102

6.5 Tabela de Predicados e Cor. . . 103

6.6 AmbienteCPN TOOLS. . . 105

6.7 Uma CPN do sistema monitora. . . 106

6.8 KA inicial do sistema. . . 108

6.9 KA inicial do sistema. . . 109

6.10 KA inicial para mover o elevador. . . 110

6.11 KA para subir o elevador. . . 111

6.12 Execuc¸˜ao em Linux do Conversor. . . 112

6.13 Tabela de Predicados do Sistema. . . 113

6.14 Meta, Super e Sub-Redes . . . 114

6.15 Tabelas de Vari´aveis . . . 115

6.16 Super-Rede ELEVADOR . . . 116

6.17 KA inicial do sistema. . . 117

(11)
(12)
(13)
(14)

Este trabalho apresenta uma t´ecnica de verificac¸˜ao formal de Sistemas de Ra-cioc´ınio Procedural, PRS (Procedural Reasoning System), uma linguagem de programac¸˜ao que utiliza a abordagem do racioc´ınio procedural.

Esta t´ecnica baseia-se na utilizac¸˜ao de regras de convers˜ao entre programas PRS e Redes de Petri Coloridas (RPC). Para isso, s˜ao apresentadas regras de con-vers˜ao de um sub-conjunto bem expressivo da maioria da sintaxe utilizada na linguagem

PRS paraRPC. A fim de proceder `a verificac¸˜ao formal do programa PRS especificado, uma vez que se disponha da rede de Petri equivalente ao programaPRS, utilizamos o formalismo dasRPCs(verificac¸˜ao das propriedades estruturais e comportamentais) para analisarmos formalmente o programaPRSequivalente. Utilizamos uma ferramenta com-putacional dispon´ıvel para desenhar, simular e analisar as redes de Petri coloridas geradas.

Uma vez que disponhamos das regras de convers˜ao PRS-RPC, podemos ser le-vados a querer fazer esta convers˜ao de maneira estritamente manual. No entanto, a pro-babilidade de introduc¸˜ao de erros na convers˜ao ´e grande, fazendo com que o esforc¸o necess´ario para garantirmos a corretude da convers˜ao manual seja da mesma ordem de grandeza que a eliminac¸˜ao de eventuais erros diretamente no programaPRSoriginal. As-sim, a convers˜ao automatizada ´e de suma importˆancia para evitar que a convers˜ao manual nos leve a erros indesej´aveis, podendo invalidar todo o processo de convers˜ao.

A principal contribuic¸˜ao deste trabalho de pesquisa diz respeito ao desenvolvi-mento de uma t´ecnica de verificac¸˜ao formal automatizada que consiste basicamente em duas etapas distintas, embora inter-relacionadas. A primeira fase diz respeito `as regras de convers˜ao de PRS para RPC. A segunda fase ´e concernente ao desenvolvimento de um

(15)

conversor para fazer a transformac¸˜ao de maneira automatizada dos programasPRS para asRPCs. A convers˜ao autom´atica ´e poss´ıvel, porque todas as regras de convers˜ao apre-sentadas seguem leis de formac¸˜ao gen´ericas, pass´ıveis de serem inclu´ıdas em algoritmos.

(16)

This work presents a technique of formal verification of Procedural Reasoning Sys-tem - PRS, a programming language that uses the procedural reasoning approach. This technique is based on the use of conversion rules between PRS programs and Coloured Petri Nets (CPNs). To this end, conversion rules of a subgroup of the majority of the syn-tax used in language PRS for RPC are presented. In order to proceed to formal verification of program specified in PRS we use the CPNs’ formalism (verification of the structural and dynamic properties) to formaly analyze the equivalent PRS programs. We use availa-ble computational tools to draw, to simulate and to analyze the generated Coloured Petri Nets.

If we have the conversion rules PRS-CPN, we can do this conversion in a strict manual way. However, the probability of introduction of errors in the conversion is great, and the effort necessary to guarantee the correctness of the manual conversion is of the same order of magnitude that the elimination of eventual errors directly in the original PRS program. Thus, the automatized conversion is of great importance to prevent that the manual conversion leads to undesirable errors, which can invalidate all the conversion process.

The main contribution of this research work consist in the development of an aut-momatized formal verification techique consisting of of two distinct stages, even so in-terrelated. The first stage is the presentation of conversion rules between PRS-CPN. The second phase is related to the development of a converter to automatically transform the programs PRS for CPN. Automatic conversion is possible, because all the presented rules of conversion follow generic formation laws, which can be enclosed in algorithms.

(17)

Cap´ıtulo 1

Introduc¸˜ao

1.1

Apresentac¸˜ao

Nas ´ultimas duas d´ecadas, tem-se notado um interesse consider´avel em relac¸˜ao ao desenvolvimento e uso de t´ecnicas de especificac¸˜ao e verificac¸˜ao formais de sistemas em geral e, em particular, os sistemas de controle em tempo real.

A descric¸˜ao precisa e sem ambig¨uidades de um sistema contribui para minimi-zar eventuais erros em sua implementac¸˜ao. Paralelamente a isso, a detecc¸˜ao de erros de concepc¸˜ao torna-se vi´avel, verificando se o sistema em quest˜ao est´a se prestando ao ante-riormente especificado e tamb´em se o mesmo possui propriedades desej´aveis tais como: ausˆencia de bloqueios, vivacidade e reiniciabilidade.

Os sistemas automatizados para supervis˜ao e diagn´ostico est˜ao se tornando a cada dia ferramentas imprescind´ıveis no controle de processos industriais. Freq¨uentemente, essas tarefas s˜ao melhor manipuladas atrav´es das regras ou procedimentos que utilizam conhecimentos espec´ıficos da situac¸˜ao, ao inv´es do uso exclusivo das t´ecnicas de controle convencionais. Essas regras e procedimentos podem conter conhecimento tanto sobre o diagn´ostico quanto sobre a possibilidade de ac¸˜oes corretivas, assim como podem ser extremamente complexas [dM97].

(18)

pro-cessos. Muitas das t´ecnicas usuais de representac¸˜ao do conhecimento e inferˆencia em Inteligˆencia Artificial n˜ao s˜ao aplic´aveis a esses sistemas, devido ao fato de n˜ao garanti-rem um tempo m´aximo de resposta. Dentre as alternativas que vˆem sendo consideradas nessas situac¸˜oes, podemos destacar oracioc´ınio procedural[GL86, IGR92]. O racioc´ınio procedural difere de outras representac¸˜oes usuais do conhecimento (regras, frames, etc) por preservar informac¸˜oes de controle (ou seja, a seq¨uˆencia de ac¸˜oes e testes) dentro de procedimentos ou planos, ao mesmo tempo que mant´em alguns aspectos declarativos.

1.2

Utilidade da Linguagem PRS

Dentro deste contexto, uma das implementac¸˜oes mais difundidas dos conceitos do racioc´ınio procedural ´e o sistemaPRS (Procedural Reasoning System), que vem sendo uti-lizado largamente em aplicac¸˜oes reais - tais como, controle e supervis˜ao de robˆos m´oveis [ICAR96], na detecc¸˜ao de falhas em ˆonibus espaciais (SRI international [Int94]), bem como na gerˆencia de redes de comunicac¸˜ao - em raz˜ao de sua eficiˆencia temporal e o alto poder de express˜ao. Em sistemas complexos, entretanto, a eficiˆencia temporal e o alto poder de express˜ao algumas vezes n˜ao s˜ao suficientes: ´e necess´ario que se disponha de garantias formais quanto ao funcionamento correto do sistema supervis´orio.

(19)

1.3. M ´ETODOS FORMAIS 3

1.3

M´etodos Formais

O termo M´etodos Formaisrefere-se ao uso de t´ecnicas da l´ogica e da matem´atica discreta na especificac¸˜ao, projeto e construc¸˜ao de sistemas computacionais esoftware. A palavraformalderiva da l´ogica formal e significa “pertencer ao relacionamento estrutural entre os elementos” [AAN97]. Em outras palavras, os m´etodos formais s˜ao uma classe de t´ecnicas de engenharia desoftwareque utilizam notac¸˜ao matem´atica para descrever os requisitos do sistema, e que detalham formas de validar esta especificac¸˜ao e a subseq¨uente implementac¸˜ao.

1.4

Modelo

1.4.1

Sistema

Para modelar um sistema faz-se necess´aria a compreens˜ao conceitual do mesmo, assim como seu limite. Segundo Salah [SE96], sistema ´e qualquer colec¸˜ao de interac¸˜ao de elementos que funciona para alcanc¸ar um objetivo comum e que evolui no tempo. Esta definic¸˜ao nos permite perceber que aquilo que pode ser definido como sistema num con-texto pode ser apenas um componente em outro, originando dessa forma os subsistemas. Para Haykin [HV01] um sistema ´e formalmente definido como uma entidade que mani-pula um ou mais sinais (func¸˜ao de uma ou mais vari´aveis que veicula informac¸˜oes sobre a natureza de um fenˆomeno f´ısico) para realizar uma func¸˜ao, produzindo, assim, novos sinais.

1.4.2

Representac¸ ˜ao dos Sistemas

Um dos grandes problemas dos sistemas automatizados ´e justamente a represen-tac¸˜ao de sistemas originais atrav´es de outros sistemas compar´aveis, denominados mode-los. Literalmente falando, modelo ´e a representac¸˜ao de alguma coisa. Pode ser definido tamb´em como a representac¸˜ao simplificada de um sistema com o prop´osito de estud´a-lo.

(20)

dife-rentes, embora intercambi´aveis. Primeiramente, modelo ´e usado para referir-se `a repre-sentac¸˜ao matem´atica de um sistema natural ou produzido pelo homem. Isto ´e consistente com o uso em Ciˆencia e Engenharia, em que as representac¸˜oes matem´aticas s˜ao usadas para predizer ou calcular propriedades do sistema modelado.

Um segundo uso do termo modelo deriva da terminologia precisa em l´ogica formal e refere-se a uma representac¸˜ao matem´atica que satisfaz a um conjunto de axiomas. A exibic¸˜ao de um modelo para um conjunto de axiomas demonstra que os axiomas s˜ao consistentes. Por exemplo, uma maneira de mostrar que uma especificac¸˜ao ´e consistente ´e mostrar que seus axiomas tˆem um modelo.

Uma importante dimens˜ao dos modelos ´e sua relac¸˜ao com o tempo. Um modelo que ao ser constru´ıdo muda com o passar do tempo ´e um modelo dinˆamico, ao contr´ario dos modelos est´aticos que n˜ao mudam ao transcorrer o tempo.

Para Righini [Gio93] modelo ´e uma r´eplica ou uma abstrac¸˜ao da caracter´ıstica es-sencial de um processo. Assim, problemas que desobedecem a soluc¸˜oes diretas devido a tamanho, complexidade ou estrutura s˜ao freq¨uentemente avaliados atrav´es de modelos de simulac¸˜ao.

Os modelos, portanto, s˜ao extremamente importantes para a representac¸˜ao de sis-temas, podendo ser de diferentes tipos. Assim, os modelos s˜ao uma representac¸˜ao sim-plificada de alguma parte da realidade, sendo a natureza do problema o determinante do tipo de modelo mais adequado.

A raz˜ao primeira para o uso de modelos ´e a possibilidade de estudar um deter-minado sistema sem as inconveniˆencias intr´ınsecas ao mesmo como custo, perigo, etc, visando `a possibilidade de observar o comportamento do sistema real para investigar pro-priedades esperadas e n˜ao identificadas a fim de avaliar e sugerir mudanc¸as ou melhorias no sistema modelado.

(21)

1.5. ESPECIFICAC¸ ˜AO FORMAL 5

Possuir uma base formal, visando a obter uma interpretac¸˜ao exata e precisa; Possuir clareza, visando a facilitar a comunicac¸˜ao entre os entes envolvidos numa modelagem ;

Possibilitar a construc¸˜ao de modelos que preencham os requisitos de conceitualiza-c¸˜ao (contendo apenas as propriedades desejadas do sistema modelado) e totalidade (todas as propriedades desejadas do sistema modelado).

No entanto, ´e extremamente dif´ıcil encontrarmos todas essas caracter´ısticas em uma ´unica linguagem, devido ao fato de que algumas delas s˜ao conflitantes. ´E comum nos sistemas encontrar componentes que apresentam atividades concorrentes ou parale-las. Neste aspecto, as Redes de Petri s˜ao uma linguagem de modelagem desenvolvida especificamente para modelar sistemas a eventos discretos que possuem componentes in-teragindo concorrentemente [Per81b, Til79, Rob86].

Os modelos, portanto, s˜ao muito importantes porque nos permitem representar sis-temas, uma vez que s˜ao r´eplicas ou abstrac¸˜oes das caracter´ısticas essenciais de um pro-cesso, al´em de mostrarem as relac¸˜oes de causa e efeito, entre objetivos e restric¸˜oes. Um dos problemas, entretanto, ´e garantir a equivalˆencia perfeita entre o modelo e o sistema a que ele se prop˜oe representar. Caso existam imperfeic¸˜oes na representac¸˜ao do sistema pelo seu modelo, a verificac¸˜ao efetuada, baseada neste, n˜ao dar´a garantias efetivas quanto ao comportamento real do sistema.

1.5

Especificac¸˜ao Formal

(22)

Uma linguagem formal consiste de uma colec¸˜ao de s´ımbolos derivados de um al-fabeto e um conjunto de regras sint´aticas que governam quais combinac¸˜oes de s´ımbolos constituem combinac¸˜oes v´alidas na linguagem. Atualmente, existe um grande n´umero de linguagens de especificac¸˜ao formal [BD96], como por exemplo, Estelle, LOTOS, VDM, B-Method, ASLAN, Z, bem como as Redes de Petri e suas extens˜oes.

Segundo Clarke [CWeA96], a especificac¸˜ao ´e o processo de descrever um sistema e suas propriedades desejadas utilizando-se uma linguagem com sintaxe e semˆantica bem definidas matematicamente. Os tipos dessas propriedades sistˆemicas podem incluir com-portamento funcional, comcom-portamento temporal, caracter´ısticas de desempenho ou estru-tura interna.

1.6

Verificac¸˜ao Formal

A express˜ao Verificac¸˜ao Formal pode ser entendida como o processo pelo qual podemos garantir que um sistema formalmente especificado n˜ao venha funcionar de forma indevida ou indesejada [Cal99]. Com isso, descartam-se possibilidades de existˆencia de erros e tamb´em que a especificac¸˜ao esteja incompleta, n˜ao sendo capaz de cobrir todas as poss´ıveis situac¸˜oes de operac¸˜ao para a qual foi concebida.

Devemos ressaltar, todavia, que toda especificac¸˜ao deve ser verificada antes de ser implementada, para garantir que a especificac¸˜ao satisfaz aos requisitos exigidos na concepc¸˜ao do sistema e garantir que sua implementac¸˜ao esteja livre de erros ou de qual-quer propriedade indesejada.

(23)

1.7. OBJETIVOS DO TRABALHO 7

semˆanticos de verificac¸˜ao.

Outras ferramentas dirigem-se a especificac¸˜oes feitas a partir de linguagens de pro-gramac¸˜ao, tais como ADA e linguagens orientadas a objetos. E por fim, um grupo de ferramentas est´a centrado nas linguagens de especificac¸˜ao formal normalizadas pelaISO, como [Fia92]: ESTELLE, baseada em m´aquinas de estado finitas eLOTOS, baseada em ´algebra de processos.

1.7

Objetivos do Trabalho

O objetivo deste trabalho ´e propor uma metodologia de verificac¸˜ao formal de siste-mas implementados na linguagemPRS, atrav´es da convers˜ao destes para Redes de Petri Coloridas. Para atingir tal intuito, apresentaremos um n´umero consider´avel de regras de convers˜ao de um subconjunto relativamente expressivo dePRSpara Redes de Petri Colo-ridas. Um segundo momento, ´e o desenvolvimento de um conversor autom´atico (compila-dor) para proceder `a convers˜ao automatizada do pretendido, evitando-se, assim, a gerac¸˜ao de eventuais erros se essa convers˜ao fosse feita de maneira manual.

1.8

Contribuic¸˜ao

(24)

1.9

Organizac¸˜ao do Trabalho

(25)

Cap´ıtulo 2

A Linguagem PRS

2.1

Introduc¸˜ao

O Sistema de Racioc´ınio Procedural - PRS(Procedure Reasoning System) ´e uma arquitetura gen´erica BDI (belief-desire-intention, crenc¸a-desejo-intenc¸ ˜ao), para a repre-sentac¸˜ao e racioc´ınio relativos `as ac¸˜oes e procedimentos em ambientes dinˆamicos. Com-preende um conjunto de ferramentas e m´etodos para representar e executar procedimen-tos. Esses procedimentos s˜ao seq¨uˆencias condicionais de ac¸˜oes que podem ser executadas para atingir metas ou reagir a situac¸˜oes particulares.

OPRS ´e uma estrutura para a construc¸˜ao de sistemas de racioc´ınio em tempo real que pode realizar tarefas complexas em ambientes dinˆamicos. Trata sobre representac¸˜ao do conhecimento procedural, descrevendo como realizar um conjunto de ac¸˜oes ordena-damente para satisfazer algum objetivo. Por exemplo, sabemos que a seq¨uˆencia de ac¸˜oes

coloque roupas na m ´aquina de lavar,coloque sab ˜ao na m´aquina,ligue a m´aquina,espere

40 minutos, atingir´a o objetivolavar roupas. Muitos dos conhecimentos pessoais sobre

como atingir metas espec´ıficas s˜ao um procedimento natural. PRSfornece um ambiente no qual este tipo de conhecimento sobre ac¸˜oes e metas ´e facilmente expresso e executado.

(26)

modulari-dade limitada. O racioc´ınio procedural ´e adequado a problemas em que o conhecimento impl´ıcito ou expl´ıcito j´a est´a formalizado como procedimentos.

O Racioc´ınio Procedural foi inicialmente desenvolvido no Centro de Inteligˆencia Artificial do Standford Research Institue (SRI International, Menlo Park, Calif ´ornia)

[IGR92, ID01] e tem proporcionado um n´umero de implementac¸˜oes e extens˜oes [IC93], bem como inspirado trabalhos em controle de executac¸˜ao de planejamento de robˆos [LO94, ICAR95, ICAR96]. OPRS tamb´em tem sido usado em conjunto com planejadores ex-ternos, em especial com planejador temporal IxTet [GMA89, FI04], como ´e citado em Alami e Gout [RAI98, GS99], bem como na detecc¸˜ao de falhas em ˆonibus espaciais e na gerˆencia de redes de comunicac¸˜ao [Int94].

O software utilizado neste trabalho para fazer a implementac¸˜ao da tecnologia do

racioc´ınio procedural foi oPROPICE, descrito a seguir, desenvolvido por pesquisadores do grupo de Rob´otica e Inteligˆencia Artificial do Laborat´orio de An´alise e Arquitetura de Sistemas, no Centro Nacional de Pesquisa Cient´ıfica (LAAS/CNRS - Toulouse, Franc¸a), notadamente pelo pesquisador Franc¸ois F´elix Ingrand [Ing99].

2.2

Vis˜ao Geral do

Propice

A arquitetura de um Kernel PROPICEconsiste nos seguintes componentes, con-forme Figura 2.1:

Biblioteca de Rotinas: cada rotina, tamb´em conhecida como KA (knowledge area),

pla-nos ouprocedures, ´e uma seq¨uˆencia de ac¸˜oes e/ou testes que podem ser executados para atingir metas ou reagir a situac¸˜oes.

Base de Dados: cont´em fatos que representam a vis˜ao atual do mundo visto pelo sistema.

Grafo de intenc¸ ˜oes: um conjunto dinˆamico de rotinas, estruturado sob a forma de um

grafo, onde o sistema mant´em informac¸˜ao em tempo real sobre o estado das rotinas escolhidas para execuc¸˜ao e de suas sub-metas postadas.

(27)

2.3. EXEMPLO DE KA EMPROPICE 11

Mecanismo de Inferência

Grafo de Intenções

Biblioteca de Procedures

(Plans ou KAs)

Banco de Dados (Fatos}

Figura 2.1: Arquitetura Geral doPropice.

manipulac¸˜ao e execuc¸˜ao das KAs apropriadas. O PROPICE interage com seu ambi-ente por interm´edio do banco de dados, o qual adquire novas “crenc¸as” em resposta a mudanc¸as efetuadas no ambiente como um todo.

EmPRS, as metas descrevem os objetivos e informam sobre a maneira de atingi-los. A meta para obter uma certa condic¸˜ao C ´e escrita como(! C); para testar uma condic¸˜ao escrevemos(? C); para esperar at´e que uma condic¸˜ao seja verdadeira, (ˆ C); para preservar C, como (# C); para concluir uma condic¸˜ao C na base de dados, como(✁

C)e para retir´a-la da base de dados, como(˜> C).

O conhecimento sobre como atingir metas ou reagir a certas situac¸˜oes ´e repre-sentado emPROPICE pelas KAs (Knowledge Areas). Cada KA consiste de um corpo, que descreve os passos da KA e uma condic¸ ˜ao de invocac¸˜ao, que especifica sob quais condic¸˜oes a KA ´e utilizada. Na sec¸˜ao seguinte, mostraremos mais detalhadamente a composic¸˜ao de uma procedure (KA) emPROPICE.

2.3

Exemplo de KA em

Propice

Aprocedure, ou KA, mostrada na Figura 2.2 pertence `a biblioteca de KAs para a

(28)

Figura 2.2: Exemplo de umaprocedureou KA.

Os pontos mostrados na Figura 2.2 s˜ao agora apresentados e explicados. A parteDeclarativaespecifica algumas condic¸˜oes e ac¸˜oes da KA:

1. O nome da KA nos permite cham´a-la nos diferentesmenusde selec¸˜ao doPROPICE. 2. O campo invocationespecifica qual meta deve ser invocada. Essa KA mostrada ´e aplic´avel sempre que o sistema postar a meta de mover um disco particular de uma origem para um destino.

3. O campocontext especifica as condic¸˜oes de aplicabilidade da KA. Neste caso, ele diz que o disco a mover deve estar no topo do pino origem e que n˜ao exista disco no pino destino, ou caso exista disco no pino destino, este deve ser maior do que o disco a mover.

(29)

2.4. AS VARI ´AVEIS 13

mover do topo do pino origem e o adicionamos no topo do pino destino. 5. O campodocumentation´e usado para explicar a finalidade da KA.

A parteProceduralespecifica a seq¨uˆencia de testes e ac¸˜oes que ser˜ao efetuados durante a execuc¸˜ao da KA.

O corpo da KA descreve sua forma de execuc¸˜ao. A execuc¸˜ao inicia-se no n´o

STARTe prossegue seguindo os arcos atrav´es da rede. Cada arco ´e etiquetado com uma meta. Caso mais de um arco parta de um n´o, qualquer um deles pode ser atravessado. Para atravessar um arco, o sistema deve ou testar se a meta j´a foi estabelecida na base de dados ou lanc¸ar uma KA que atinja a meta associada ao arco. Esta nova meta ser´a incor-porada ao grafo de intenc¸˜oes e dever´a ser satisfeita para que a KA atual seja satisfeita. Se o sistema n˜ao consegue atingir nenhuma das metas associadas aos arcos que partem de um n´o, a KA inteira falha. Mas quando um n´o terminal (n´oEND) ´e atingido, a meta ´e considerada satisfeita e os eventuais fatos listados no campoEFFECTSs˜ao conclu´ıdos na base de dados.

2.4

As Vari´aveis

Uma vari´avel ´e um s´ımbolo que pode ou n˜ao ser unificado a diferentes valores de-pendendo do contexto. EmPRSexistem basicamente dois tipos de vari´avies: as vari´aveis l´ogicas e as vari´aveis de programa.

2.4.1

Vari´aveis L´ogicas

As vari´aveis l´ogicas comec¸am com o caracter d´olar $. Exemplo: $A,$PINO, $X,$NOTOPO.

(30)

2.4.2

Vari´aveis de Programa

As vari´aveis de programa comec¸am com o caracter arroba . Exemplo: @X, @Y, @N,@TMP.

Essas vari´avies s˜ao fornecidas por conveniˆencia. Elas podem ser unificadas e reu-nificadas a todo instante, mesmo se estiverem ureu-nificadas a algum valor. O escopo delas ´e a KA na qual elas aparecem e, assim como as vari´aveis l´ogicas, uma nova c´opia delas ´e feita em uma chamada recursiva. Entretanto, elas n˜ao podem ser usadas nos campos

invocationecontextdevido a sua incapacidade de manter um valor.

2.5

Os Termos

OsTermoss˜ao um importante componente da sintaxe doPROPICE. S˜ao de v´arios

tipos e s˜ao os blocos construtores usados para produzir express˜oes mais complexas, sendo os seguintes (indicamos seu equivalente em Linguagem C):

2.5.1

Integer

Um termo pode ser uminteger. Seu equivalente C ´eINTEGER. EmPROPICE

integerstornam-se Cint. Seu tamanho vai depender da arquitetura da m´aquina.

Exem-plos: 0, 1, -3, 4743, +3, -023.

2.5.2

Float

Um termo pode ser umfloat. Seu equivalente C ´eFLOAT. EmPROPICE,floats

s˜ao tratados como Cdouble. Seu tamanho m´aximo e m´ınimo depender´a da arquitetura da m´aquina. Exemplos: 123.25, -45.0, 123E-4.

2.5.3

String

(31)

2.6. EXPRESS ˜OES GERAIS 15

string”.

2.5.4

Vari´aveis

Um termo pode ser umavari´avel. Seu equivalente C ´eVARIABLE. Vari´aveis podem ser unificadas, neste caso elas s˜ao sempre unificadas a um TERMO. Exemplos: $FOO,$PINO,@BoO.

2.5.5

Lista de Vari´aveis

Um termo pode ser umalista de vari´aveis. O equivalente C ´e ostruct. S˜ao usadas principalmente em func¸˜oes. Exemplo: ($g4r $x $HFD).

2.5.6

Ponteiro

Um termo pode ser um ponteiro. Seu equivalente C ´e o POINTER. Em PRO-PICE os ponteiros comec¸am com o prefixo 0x seguido de um n´umero hexadecimal. Exemplo:0xff30,0xA120.

2.6

Express˜oes Gerais

As express˜oes s˜ao usadas para representar fatos noPROPICE. As express˜oes gerais

(general expressions - gexpressions) englobam express˜oes simples e express˜oes l´ogicas

(lexpression). Express˜oes l´ogicas s˜ao uma combinac¸˜ao de express˜oes gerais com os ope-radores l´ogicos padr˜oes (& – e, V – ou). Um exemplo de gexpressions: (sobre a b), (fatorial 5 120), (✂

3 2), (&(NOTOPO $N $ORI) (✂

$DISCO $N))).

2.7

Express˜ao Temporal Geral

(32)

l´o-gicas). Express˜oes temporais l´ogicas s˜ao uma combinac¸˜ao de express˜oes temporais gerais usando operadores l´ogicos padr˜oes.

Os operadores temporais, como visto acima, s˜ao: obter (!),testar (?), esperar (ˆ), preservar (#), estabelecer (✁

), retirar (˜>). S˜ao exemplos degtexpressions:

(! (FATORIAL 5 $X)) (? (✂

$X 5)) (✁

(NOTOPO $N $ORI))

2.8

Fatos

Fatos s˜aogexpressionsconclu´ıdas no sistema. Por exemplo, a parteeffects de uma KA ´e uma lista detexpressions(com operadores conluir ou retirar). Cada uma dasgexpressions´e conclu´ıda no sistema como um fato novo. Uma caracter´ıstica importante dos fatos ´e que eles n˜ao podem conter vari´aveis n˜ao unificadas.

2.9

Metas

As Metas est˜ao relacionadas a KA’s j´a existentes e em execuc¸˜ao. Elas podem conter vari´aveis n˜ao unificadas, que s˜ao usadas freq¨uentemente para retornar valores. Por exemplo, quando a meta (!(FATORIAL 4 $X)) ´e postada, esperamos que $X seja unificada a24, ap´os o sucesso dessa meta.

2.10

Alguns Construtores Gr ´aficos de KA

(33)

2.10. ALGUNS CONSTRUTORES GR ´AFICOS DE KA 17

2.10.1

N´o

IF-THEN-ELSE

Alguns n´os s˜ao bastantes utilizados na parte gr´afica doPROPICE, como o n´o IF-THEN-ELSE. Este n´o foi introduzido noPROPICEpara facilitar a construc¸˜ao das KA’s. Considere a KA da Figura 2.5. O n´oIF-THEN-ELSE ´e o n´o N1. Ele trabalha da se-guinte forma: quando existe um n´o cuja sa´ıda ´e para um n´o IF-THEN-ELSE(no caso o n´o START) a meta etiquetando este arco nunca falha, ou seja, a transic¸˜ao ´e sempre poss´ıvel. Se a meta ´e realizada (no nosso exemplo se (?( ✄☎✁ $N 1)) ´e verdade,

ent˜ao a execuc¸˜ao procede do n´oT(true), caso contr´ario, procede do n´oF(false).

(34)

Figura 2.4: Compilador de KA.

EFFECTS:

(>= $N 0)

Recursive Factorial

CONTEXT: N1 F

(! (= $RES $N))

( ! ( = $RES ( * $N $NRES)))

INVOCATION:

(!(FACTORIAL $N $RES))

END1 N1

END2

( ! (FACTORIAL (− $N 1 ) $NRES))

START

(? (<= $N 1))

T

Figura 2.5: Fatorial Recursivo.

2.10.2

N´o SPLIT e JOIN

(35)

2.11. A BASE DE DADOS 19

A Figura 2.7 mostra o c´alculo de Fibonacci usando o paralelismo. Neste caso, as duas chamadas recursivas, (!(FIBONACCI (- $N 1) $RES2)) e (!(FIBO-NACCI (- $N 2) $RES3)), podem ser executadas em paralelo. Aqui, combinamos o n´oIF-THEN-ELSEcom um n´oSPLIT. A parteFdo n´oNO(IF-THEN-ELSE) ´e um n´oSPLIT(representado por uma linha cheia em baixo deF). Similarmente, o n´o N1 ´e um n´oJOIN.

Figura 2.6: KA que computa Fibonacci sem o paralelismo.

2.11

A Base de Dados

(36)

Figura 2.7: Ka que computa Fibonacci com o paralelismo.

mesmo executa as KA’s.

O banco de dados ´e um dos mais importantes componentes do PROPICE. Seu papel ´e basicamente “relembrar” que express˜oes ou predicados s˜ao verdadeiros e permitir consultar essas express˜oes.

2.11.1

Unificac¸ ˜ao

Apesar de n˜ao ser espec´ıfico ao banco de dados, o mecanismo de unificac¸˜ao usado

no PROPICE refere-se principalmente a operac¸˜oes do banco de dados. Por exemplo,

(37)

2.11. A BASE DE DADOS 21

2.11.2

Conclus ˜ao

A operac¸˜ao de conclus˜ao no banco de dados ´e a operac¸˜ao pela qual adicionamos algo no banco. S˜ao permitidas apenas express˜oes sem vari´aveis. Tudo encontrado nas express˜oes ´e avaliado e o seu resultado ´e conclu´ıdo no banco de dados. Por exemplo, o

PROPICEavalia a seguinte express˜ao(ABC ( + 1 2 ) ( - 5 4 ))e conclui no

banco de dado seu resultado:(ABC 3 1).

2.11.3

Consulta

Podemos consultar express˜oes gerais com vari´aveis. Conjunc¸˜oes e disjunc¸˜oes s˜ao tratadas com as vari´aveis tendo escopo sobre a express˜ao geral inteira. Em(& (FOO $X 6) (BAR $X 7), a vari´avel$X´e a mesma em ambas as express˜oes. Se n˜ao queremos esse comportamento, devemos usar duas vari´aveis diferentes. Quando uma disjunc¸˜ao ´e consultada, todas as poss´ıveis sub express˜oes gerais que s˜ao satisfeita s˜ao retornadas. Se temos(FOO 1 6) e(BAR 1 7)no banco de dados e consultamos(V (FOO 1 6) (BAR 1 7)), teremos trˆes poss´ıveis soluc¸˜oes: (V (FOO 1 6) (BAR 1 7)), (V (BAR 1 7))e(V (FOO 1 6)).

Quando consultamos uma express˜ao geral no banco de dados, o kernelretorna uma lista de fatos. Por exemplo, se conclu´ımos(FOO 1 6) e(FOO 2 6) no banco de dados e consultamos(FOO $X 6), ent˜ao haver´a um retorno do tipo:

conclua (FOO 1 6) A express˜ao: (FOO 1 6) foi conclu´ıda no banco de dados.

conclua (FOO 2 6) A express˜ao: (FOO 2 6) foi conclu´ıda no banco de dados.

consulte(FOO $X 6), d´a o seguinte resultado: ( FOO 2 6 )

(38)

2.11.4

Os Predicados

No Cap´ıtulo 4, que trata das regras de convers˜ao entre PRS e as Redes de Petri Coloridas, abordaremos a quest˜ao dos predicados emPRS. Por hora, podemos dizer que existem basicamente trˆes tipos de predicados em PRS: o padr˜ao, o fechado e os fatos funcionais.

2.12

Conclus˜ao

Apresentamos acima os conceitos principais referentes `a linguagem de programac¸˜ao

(39)

Cap´ıtulo 3

As Redes de Petri

3.1

Introduc¸˜ao

O conceito de redes de Petri teve origem em 1962, na Alemanha, na tese de dou-torado de Carl Adam Petri, intituladaKommunikation mit Automaten(Comunicac¸˜ao com Autˆomatos). A partir da´ı, novos trabalhos foram desenvolvidos e muitas extens˜oes [Jan96, CKC82, DC90] das Redes de Petri foram sugeridas.

As redes de Petri s˜ao uma ferramenta gr´afica e matem´atica de modelagem que pode ser aplicada a diversos tipos de sistemas. Aplicam-se apropriadamente a sistemas ass´ıncronos e com alto ´ındice de concorrˆencia ou paralelismo. Assim, qualquer ´area em que concorrˆencia seja fator importante ´e poss´ıvel a aplicac¸˜ao com sucesso das redes de Petri. A an´alise das redes de Petri pode revelar informac¸˜oes importantes sobre a estrutura e o comportamento dinˆamico do sistema modelado.

(40)

3.2

As Redes de Petri Ordin ´arias

3.2.1

Elementos b´asicos de uma RdP

Os elementos b´asicos que comp˜oem uma rede de Petri s˜ao notadamente trˆes:

1. Lugar(representado por um c´ırculo): pode ser interpretado como uma condic¸˜ao,

um estado, uma espera, um procedimento, um conjunto de recursos, etc. Em ge-ral, todo lugar tem um predicado associado, por exemplo,m ´aquina livre, pec¸a em

espera. (Figura 3.1);

2. Transic¸˜ao (representada por barra ou retˆangulo): ´e associada a um evento que

ocorre no sistema, como o evento iniciar a operac¸ ˜ao(transic¸˜ao t na Figura 3.1); e,

3. Ficha ou marca (representada por um ponto num lugar): ´e um indicador

signifi-cando que a condic¸˜ao associada ao lugar ´e verificada. Pode representar um objeto (recurso ou pec¸a). Por exemplo, uma ficha no lugar m ´aquina livre indica que a m´aquina est´a livre (predicado verdadeiro). Se n˜ao h´a fichas neste lugar, o predi-cado ´e falso, por conseguinte a m´aquina n˜ao est´a livre. Obs.: os termos marca e ficha ser˜ao usados de maneira intercambi´avel ao longo desse trabalho.

espera livre

peça em

t

a)

espera livre

peça em

t

operação

b)

operação máquina em

máquina

máquina em máquina

(41)

3.2. AS REDES DE PETRI ORDIN ´ARIAS 25

3.2.2

Comportamento dinˆamico

O estado do sistema ´e dado pela repartic¸˜ao de fichas nos lugares da rede de Petri, cada lugar representando um estado parcial do sistema. A cada evento que ocorre no sistema, ´e associada uma transic¸˜ao no modelo de rede de Petri. A ocorrˆencia de um evento no sistema (que faz com que este passe do estado atual ao pr´oximo estado) ´e representado, no modelo, pelodisparoda transic¸˜ao ao qual este est´a associado. O disparo de uma transic¸˜ao consiste em dois passos:

retirar as fichas dos lugares de entrada, indicando que esta condic¸˜ao n˜ao ´e mais verdadeira ap´os a ocorrˆencia do evento; e

depositar fichas em cada lugar de sa´ıda, indicando que estas atividades estar˜ao, ap´os a ocorrˆencia do evento, sendo executadas.

A ocorrˆencia do evento iniciar a operac¸˜ao, por exemplo, associado `a transic¸˜ao t

(Figura 3.1), s´o pode acontecer se houver pelo menos uma ficha no lugarm ´aquina livree ao menos uma ficha no lugarpec¸a em espera. A ocorrˆencia do eventoiniciar a operac¸ ˜ao, no sistema, equivale ao disparo da transic¸˜ao tna rede de Petri: ´e retirada uma ficha do lugarm´aquina livree uma ficha do lugarpec¸a em espera, e ´e colocada uma ficha no lugar

m´aquina em operac¸˜ao.

O desaparecimento das fichas nos lugares de entrada detindica que as condic¸˜oes ou predicados associados `aqueles lugares n˜ao s˜ao mais verdadeiros, e o surgimento de fichas nos lugares de sa´ıda indica que os predicados associados a estes lugares s˜ao verdadeiros. Assim, o comportamento dinˆamico do sistema ´e traduzido pelo comportamento da rede de Petri.

As redes de Petri ordin´arias s˜ao aquelas caracterizadas pelo tipo de suas marcas

(fichas). Nessas classes de rede, o tipo das marcas ´e inteiro n˜ao-negativo, enquanto as

redes de Petri n˜ao-ordin´arias possuem marcas de tipos singulares.

(42)

que os arcos tˆem valores diferentes de um e as redes com arcos de peso igual a um.

3.2.3

Definic¸ ˜ao formal

Daremos agora uma definic¸˜ao formal da rede de Petri enquanto um grafo com dois tipos de n´os e um comportamento dinˆamico.

Estrutura da Rede de Petri ´e uma 4-upla✆✝✁✟✞✡✠☞☛✍✌✎☛✑✏☞☛✓✒✕✔ , onde:

✠✖✁✕✗✑✘✚✙✓☛✡✘✜✛✢☛✢✣✤✣✥✣✤☛✦✘★✧✪✩ , ´e um conjunto finito de lugares ✌✫✁✕✗✭✬✮✙✯☛✍✬✰✛✱☛✢✣✥✣✤✣✤☛✍✬✲✧✳✩ , ´e um conjunto finito de transic¸˜oes ✏✟✴✵✞✡✠✷✶✸✌✹✔✻✺✼✞✽✌✾✶✿✠❀✔ , ´e um conjunto finito de arcos ✒ ❁❂✏✾❃❅❄❇❆ , ´e uma func¸˜ao peso

✠❉❈❊✌❋✁❍● e✠✫✺❊✌✷■✁❏●

Marcac¸˜ao de uma Rede de Petri´e uma func¸˜ao❑ ❁▲✠✕❃ ❄

M(p) ´e a marcac¸˜ao do lugar p (n´umero de marcas ou fichas contidas em p). A evoluc¸˜ao da marcac¸˜ao simula o comportamento dinˆamico de um sistema.

Rede de Petri´e uma 5-upla✠▼✆◆✁❖✞✡✠☞☛✍✌✎☛✮✏✎☛✑✒P☛✓❑✼◗✻✔ onde: ✠✖✁✕✗✑✘✚✙✓☛✡✘✜✛✢☛✢✣✤✣✥✣✤☛✦✘★✧✪✩ , ´e um conjunto finito de lugares

✌✫✁✕✗✭✬✮✙✯☛✍✬✰✛✱☛✢✣✥✣✤✣✤☛✍✬✲✧✳✩ , ´e um conjunto finito de transic¸˜oes ✏✟✴✵✞✡✠✷✶✸✌✹✔✻✺✼✞✽✌✾✶✿✠❀✔ , ´e um conjunto finito de arcos ✒ ❁❂✏✾❃❅❄❇❆ , ´e uma func¸˜ao peso

❑❙❘❚❁❂✠✖❃ ❄ , ´e a marcac¸˜ao inicial ✠❉❈❊✌❋✁❍● e✠✫✺❊✌✷■✁❏●

(43)

3.2. AS REDES DE PETRI ORDIN ´ARIAS 27

3.2.4

Exemplo de uma rede de Petri

✠▼✆ ✁ ✞✡✠☞☛✍✌✎☛✑✏☞☛✓✒P☛✑❑❲◗✻✔ ✠ ✁ ✗✑✘✚✙✓☛✦✘✜✛✱☛✦✘✜❳✢☛✦✘❩❨✭☛✦✘✜❬✢✩ ✌ ✁ ✗✭✬✮✙✓☛✍✬✰✛✭☛✍✬✰✛✢☛❭✬✰❳✢☛✍✬✲❨❪☛✍✬✰❬✱✩ ✏ ✁ ✗✳✞❫✘✚✙✓☛❭✬✮✙❭✔✚☛❪✞❴✬✮✙✑☛✦✘✜✛✓✔✚☛❪✞❵✬✮✙✓☛✦✘✜❳✑✔✚☛❪✞❛✘★✛✭☛✍✬✰✛✓✔✚☛❪✞✽✬✰✛✭☛✦✘★❨✯✔✚☛✭✞❛✘★❨❪☛❭✬✰❳✓✔✚☛❪✞✽✬✰❳✭☛✦✘✜✛✓✔✚☛❪✞❜✘✜❳✭☛✍✬✲❨✓✔✚☛ ✞❫✘★❨✭☛❭✬✲❨❝✔❞☛❪✞❴✬✲❨✢☛✦✘✜❬✯✔❞☛❪✞❛✘✜❬✢☛✍✬✰❬✑✔✚☛❪✞❴✬✰❬✢☛✡✘✚✙❭✔✓✩ ✒ ✁ ✗✳❡✥✞❛✘✚✙✓☛✍✬✮✙✍✔❞☛✱❢✱❣❤☛❪❡✤✞❴✬✮✙✯☛✡✘✜✛✓✔❞☛✢❢❝❣❤☛❪❡✤✞❴✬✮✙✯☛✦✘★❳✓✔❞☛✓✐❥❣❤☛❪❡❫✞❫✘✜✛✭☛✍✬✰✛✑✔✚☛✢❢✱❣❤☛✭❡✥✞❵✬✰✛✢☛✦✘★❨✯✔✚☛✱❢✱❣❤☛❪❡✤✞❫✘❩❨✭☛✍✬✰❳✯✔❞☛✢❢❝❣❤☛ ❡✥✞❵✬✰❳✭☛✦✘✜✛✓✔❞☛✱❢✱❣❤☛❪❡✤✞❴✬✰❳✭☛✡✘✜✛✓✔❞☛✢❢❝❣▲☛❪❡❫✞❴✬✰❳✭☛✦✘❩❨✯✔✚☛✓✐❥❣❦☛❪❡✥✞❛✘★❨✭☛✍✬✲❨✓✔✚☛✢❢✱❣❤☛✭❡✥✞❵✬✲❨✭☛✦✘✜❬✯✔❞☛✱❢✱❣❤☛❪❡✤✞❫✘★❬✢☛✍✬✰❬✯✔❞☛✢❢❝❣❤☛ ❡✥✞❵✬✰❬✭☛✦✘✚✙❭✔❞☛✱❢✱❣✡✩ ❑P❱❅✁ ✗✳✞❫✘✚✙✓☛✱❢❪✔❞☛❪✞❛✘✜✛✢☛✑❧▲✔♠☛❪✞❫✘✜❳✱☛✑❧▲✔❞☛❪✞❛✘★❨✭☛✑❧❤✔❞☛❪✞❫✘★❬✢☛✑❧▲✔✑✩

A estrutura da Rede de Petri acima ´e a qu´adrupla✆♥✁♦✞✡✠☞☛✍✌✎☛✮✏✎☛✑✒✵✔ , sendo ✠ , ✌ , ✏ e✒ conforme definidos. Logo, a Rede de Petri ´e a dupla ✞✡✆❙❯✓❑♣❱✯✔ . Podemos indicar a

marcac¸˜ao inicial da rede acima simplesmente por❑✼❱q✁✷✞✰❢❤☛✑❧❩☛✮❧❩☛✑❧❩☛✑❧❤✔.

A Figura 3.2 mostra as representac¸˜oes gr´aficas da estrutura (rede sem a marcac¸˜ao (a)) e da Rede de Petri marcada (b).

1

p

1

t

2 p3

5 t 4 t 2 t 3 t 4

p p5

p 2 2 (a) 1 p 1 t

2 p3

5 t 4 t 2 t 3 t 4

p p5

p

2

2

(b)

(44)

A Figura 3.3 ilustra graficamente todos os disparos poss´ıveis das transic¸˜oes da Rede de Petri do exemplo acima mencionado.

1

p

1

t

2 p3

5 t 4 t 2 t 3 t 4

p p5

p 2 2 1 p 1 t

2 p3

5 t 4 t 2 t 3 t 4

p p5

p 2 2 1 p 1 t

2 p3

5 t 4 t 2 t 3 t 4

p p5

p 2 2 1 p 1 t

2 p3

5 t 4 t 2 t 3 t 4

p p5

p 2 2 t t3 2 t1 4 t t5

Figura 3.3: Evoluc¸˜ao da Rede de Petri do Exemplo 3.1.5.

3.3

As Redes de Petri Coloridas (RPC)

3.3.1

Introduc¸ ˜ao

(45)

3.3. AS REDES DE PETRI COLORIDAS (RPC) 29

Assim, as redes de Petri ordin´arias, pela unicidade de tipo de marca, impossibilitam a diferenciac¸˜ao de recursos em um dado lugar, sendo necess´arios lugares distintos para expressarmos recursos similares. Essa classe de redes de Petri n˜ao possibilita, ainda, n´ıveis de refinamento do modelo, isto ´e, n˜ao h´a a possibilidade de hierarquizac¸˜ao.

Devido a essas raz˜oes, um n´umero expressivo de extens˜oes `as redes de Petri, de-nominadas de redes de Petri de Alto N´ıvel, tem sido proposto [WR98, Rei82, H.J87], entre estas, as Redes de Petri Coloridas (Color Petri Nets- CPNs) [Jen90, CV97, Gor93], objeto de estudo neste trabalho.

Os v´arios modelos desenvolvidos para as redes de Petri de alto n´ıvel prop˜oem uma estruturac¸˜ao da parte dos dados do sistema. As redes de Petri coloridas, assim como as redes predicado-transic¸˜oes e as redes objetos associam, de forma estruturada, uma parte dos dados `as fichas.

O principal objetivo das redes de Petri coloridas ´e possibilitar a reduc¸˜ao do tamanho do modelo representado, permitindo que marcas individualizadas (as cores) representem diferentes processos ou recursos em uma mesma sub-rede, [PRRD96]. Isto ´e, elas s˜ao vistas como uma ferramenta de modelagem que fornece modelos compactos de sistemas grandes, devido basicamente a duas raz˜oes essenciais:

1. Mesmo para sistemas simples, um modelo detalhado pode resultar em uma rede de Petri muito grande. Um modelo em rede de Petri colorida reduz o tamanho da rede. 2. Em muitas aplicac¸˜oes, como em sistemas de manufatura [DAJ95], um sistema pode comportar muitos componentes similares. Ent˜ao, ao inv´es de se ter uma rede sepa-rada representando cada componente, uma ´unicaRPCpode perfeitamente modelar todos os componentes similares.

3.3.2

Modelos iniciais de RPC

(46)

p2 p1 p0

t1

p

4

p2 p1 p0

t1

p

4

<c>

<{a,b}> <a> <c> <a> t0

p

3

<a>

<{a,b}> <a> <c> t0

p

3 Após disparo de t

<d> a b c d Cores Marcas <c> <a> 1

Figura 3.4: Estudos iniciais das redes de Petri coloridas.

Nessa classe de rede, os arcos s˜ao rotulados com uma ou mais das poss´ıveis cores ou ainda com vari´aveis. Nesse exemplo, os arcos s˜ao rotulados com as cores (a, b e c). Para que uma transic¸˜ao desta rede esteja habilitada, ´e necess´ario que os lugares, que s˜ao entrada desta transic¸˜ao, tenham marcas do tipo (cor) associadas ao arco que interliga estes lugares `a transic˜ao.

A transic¸˜ao✬r❱ n˜ao se encontra habilitada, pois o lugar✘♠❱ n˜ao possui uma marca da

cora, no entanto a transic¸˜ao✬✓✙ est´a habilitada, porque o lugar✘✻✙ possui uma marca da cor

ae o lugar✘✜✛ possui marcas de coresa,b, o que satisfaz `as condic¸˜oes rotuladas nos arcos

que interligam estes lugares `a transic¸˜ao✬✓✙ . O disparo desta transic¸˜ao retira as marcas, das

cores associadas aos arcos, dos lugares de entrada e adiciona aos lugares de sa´ıda marcas de cor igual `a cor associada ao arco que interliga a transic¸˜ao aos lugares de sa´ıda. Neste caso, uma marca de corc´e depositada no lugar✘♠❨ .

3.3.3

Modelo de RPC utilizado neste trabalho

(47)

3.3. AS REDES DE PETRI COLORIDAS (RPC) 31

do poss´ıvel, de forma sucinta uma vez que essa abordagem j´a ´e bastante conhecida na literatura dispon´ıvel.

Utilizaremos um exemplo, para apresentarmos as redes de Petri coloridas formula-das segundo Kurt Jensen, em que temos uma rede que modela a manufatura de dois tipos de produtos distintos atrav´es de duas linhas de manufatura, em que os recursos (m´aquinas) s˜ao compartilhados nos processos de fabricac¸˜ao. Primeiramente, apresentamos uma rede ordin´aria (lugar-transic¸˜ao) como modelo do sistema, Figura 3.5, e posteriormente, trata-remos a rede de Petri colorida correspondente.

Processo P Processo Q r s

.

.

..

..

s ✘★❱ t✥✉ ❱ t✥✉ ✙ t✥✉ ✛ t✥✉ ❳ t✥✉ ❨ s ✘❞✙ s ✘❞✙ s ✘★✛ s ✘★❳ s ✘❩❨ s ✘★❬ ✈✯✇ ❱ ✈✯✇ ✙ ✈✯✇ ✛ ✈✯✇ ❳ ✈✯✇ ❨ t ✇ ❱ t ✇ ✙ t ✇ ✛ t ✇ ❳

Figura 3.5: Modelo da linha de manufatura usando RdP ordin´aria.

Neste exemplo, o sistema ´e representado por seis estados para os processos denomi-nados✘①✞ s ✘✜❱✢☛ s ✘✚✙✓☛ s ✘✜✛✱☛ s ✘✜❳✢☛ s ✘★❨✭☛ s

✘★❬✓✔ e cinco estados para os processosq( s✢② ❱✢☛ s✢② ✙✯☛ s✢② ✛✢☛ s✢② ❳✢☛ s✢② ❨ ).

Temos uma instˆancia do processo q e duas instˆancias do processop, representados por uma e duas marcas nos lugares s✭②

❱ e

s

(48)

s˜ao representados pelas marcas dos lugaresres. Caso tiv´essemos um terceiro processo semelhante compartilhando os recursosres, ter´ıamos que descrever todos os seus esta-dos, ac¸˜oes e relac¸˜oes entre o novo processo, os atuais e os recursos dispon´ıveis. Portanto, torna-se claro que, para um n´umero n˜ao muito grande de processos, haveria uma variac¸˜ao consider´avel nas dimens˜oes dos modelos.

3.3.4

Exemplo simples de uma RPC

A rede de Petri colorida (RPC) mostrada na Figura 3.6 descreve um sistema no qual um n´umero de recursos ´e compatilhado (similar ao exemplo da Figura 3.5). Como em outros tipos de redes de Petri, existe um conjunto de lugares (c´ırculos) e um conjunto de transic¸˜oes (retˆangulos). Os lugares e suas marcas representam estados e as transic¸˜oes representam mudanc¸as de estado. Cada lugar pode conter v´arias marcas e cada uma delas transporta um valor, podendo ser de um tipo complexo (por exemplo, um registro onde o primeiro campo ´e um real, um segundo um string, um terceiro uma lista de inteiros). Este valor ´e conhecido como acor da marca.

Na Figura 3.6, existem dois tipos de processos: 3processosqcomec¸am no estado Ae circulam atrav´es de cinco estados diferentes (A,B,C,DeE) enquanto2processosp

compreendendo quatro estados diferentes (B,C,DeE). Cada um desses cinco processos ´e representado por uma marca, em que a cor da marca ´e um par tal que o primeiro elemento designa se a marca representa um processop ou q enquanto o segundo elemento ´e um inteiro que diz quantos ciclos completos o processo completou. Na marcac¸˜ao inicial, existem trˆes marcas(q,0)no lugarAe duas marcas(p,0)no lugarB.

H´a trˆes tipos diferentes de recursos: umr, trˆes se dois recursost (cada recurso ´e representado por uma marcaeemR,SouT. A express˜ao de arco nos diz quantos recursos os tipos diferentes de processos consomem ou liberam x. Exemplo, ‘‘case x of p

2‘e ③ q ✁

(49)

3.3. AS REDES DE PETRI COLORIDAS (RPC) 33 (x,i) (x,i) (x,i) (x,i) (x,i) (x,i) (x,i) (x,i) (x,i) if x=q then 1‘(q,i+1) else empty e

if x=q then 1‘e else empty

case x of p => 2‘e | q => 1‘e

2‘e e

if x=p then 1‘e else empty

e

case x of p => 2‘e | q => 1‘e

if x=p then 1‘(p,i+1) else empty A P 3‘(q,0) B P 2‘(p,0) T1 [x=q] T E 2‘e R E 1‘e S E 3‘e T5 E P T4 D P T2 T3 C P color U = with p | q;

color I = int;

color P = product U * I; color E = with e; var x : U; var i: I;

Figura 3.6: Rede de Petri Colorida descrevendo um sistema de alocac¸˜ao de recursos.

um processopnada libera.

3.3.5

Componentes de uma RPC

Uma rede de Petri colorida consiste basicamente de trˆes partes:

1. Aestruturada rede;

(50)

A estrutura da rede ´e um grafo direcionado com dois tipos de n´os, lugares e

transic¸˜oes, interconectados porarcos, de tal modo que cada arco conecte tipos diferentes de n´os, ou seja um lugar e uma transic¸˜ao.

As declarac¸˜oes, no lado esquerdo superior da figura, mostra-nos que nesse exemplo temos quatro conjuntos de cor(U, I, P e E)e duas vari ´aveis(x ei). O uso de conjuntos de cor emRPC´e an´alogo ao uso de tipos em linguagem de programac¸˜ao: cada lugar tem um conjunto de cor ligado a este, significando que cada marca presente neste lugar deve ser necessariamente pertencente ao conjunto de cor deste lugar. Analogamente aos tipos, os conjuntos de cor definem as cores atuais (que s˜ao membros dos conjuntos de cores), al´em de definirem as operac¸˜oes e func¸˜oes que podem ser aplicadas `as cores. Neste exemplo, o conjunto de corUcont´em dois elementos (peq) enquanto o conjunto Icont´em os inteiros. O conjunto de corP ´e um par, em que o primeiro elemento ´e do tipo U e o segundo, do tipo I. Finalmente, o conjunto E cont´em apenas um elemento simples, e isso significa que as marcas n˜ao transportam informac¸˜oes (como nas redes de Petri ordin´arias s˜ao conhecidas como marcas sem cor).

As inscric¸˜oes da rede est˜ao relacionadas ao lugar, `a transic¸˜ao ou ao arco. Na Fi-gura 3.6 os lugares tˆem trˆes tipos diferentes de inscric¸˜oes: nomes, conjuntos de cor e

express˜oes de inicializac¸˜ao. As transic¸˜oes tˆem dois tipos de inscric¸˜oes: nomese guar-das, enquanto os arcos tˆem somente um tipo de inscric¸˜ao: as express ˜oes de arco. Todas as inscric¸˜oes s˜ao posicionadas pr´oximas ao elemento de rede correspondente.

Como explicado acima, cada lugar tem um conjunto de cor e isso determina o tipo de marca que pode pertencer `aquele lugar. A express˜ao de inicializac¸˜ao de um lugar deve ser avaliada como um multi-conjunto sobre o conjunto de cor correspondente. Os multi-conjuntos s˜ao an´alogos aos conjuntos, diferenciando-se destes pela possibilidade de m´ultipla ocorrˆencia de um mesmo elemento. No caso deRPC, isso implica que duas mar-cas num mesmo lugar podem ter cores idˆentimar-cas. Por convenc¸˜ao, omitem-se express˜oes de inicializac¸˜ao que s˜ao multi-conjuntos vazios.

(51)

3.3. AS REDES DE PETRI COLORIDAS (RPC) 35

express˜ao de arco s˜ao unificadas (i.e., substitu´ıdas por cores dos conjuntos de cores cor-respondentes) a express˜ao de arco deve ser avaliada para a cor que pertence ao conjunto de cor do lugar ligado ao arco.

Por fim, ressaltamos que a complexidade da descric¸˜ao de uma RPCpode ser dis-tribu´ıda entre as trˆes partes que a constituem (estrutura, declarac¸˜oes e inscric¸˜oes) e isso pode ser feito de v´arias maneiras. Por exemplo, cada arco para ou de um lugar recurso poderia ter uma simples express˜ao de arco da formaf(x), onde a func¸˜aofseria definida na parte declarac¸˜oes. Outra opc¸˜ao seria representar todos os recursos atrav´es de um ´unico lugar,RESpor exemplo.

Comportamento dinˆamico das RPCs

Uma das mais importantes propriedades das RPCs, bem como de outros tipos de redes de Petri, ´e que elas tˆem uma semˆantica bem definida que ´e uma maneira de definir um sistema de forma n˜ao amb´ıgua. Considere a Figura 3.7 que cont´em uma transic¸˜ao retirada da Figura 3.6.

Os lugares Be C tˆem conjunto de cor (tipo) P, significando que estes lugares s´o podem conter marcas desta cor (U(processop ouq), I(inteiro)). A inscric¸˜ao do lugar B, 2‘(p,0), indica que temos duas marcas de corP, onde o ap´ostrofo (‘) nos diz que se trata de um multi-conjunto, ou seja, duas ocorrˆencias do mesmo elemento. Analoga-mente, o lugarStem corE, inicialmente com trˆes marcas de core,3‘e. O par(x,i)´e uma dupla de vari´aveis,xei, ondexpode assumir qualquer elemento de corU, e i, de corI. As inscric¸˜oes de arco podem conter express˜oescasee/ouif. Do nosso exemplo, a express˜aocase x of p => 2‘e | q => 1‘e ´e equivalente a express˜aoif x = p then 2‘e else 1‘e, ou seja, caso se trate de um processop, ser˜ao consumi-das duas marcas de core; caso o processo sejaq, ser´a consumida apenas uma marca de core, obviamente.

(52)

S

C

B

(x,i)

(x,i) 2‘ (p,0)

T2

P

P

E

| q = >1‘ e case x of p => 2‘ e

3‘e

Figura 3.7: Uma transic¸˜ao do sistema de alocac¸˜ao de recursos.

por: ④✱✙☞✁ ✄⑦⑥⑧✁✫✘⑨☛✮⑩❶✁✵❧

. Outra possibilidade ´e unificarxaqeia40. Neste caso, teremos um outro elemento de unificac¸˜ao④✯✛ , dado por: ④✓✛q✁ ✄❷⑥❸✁

☛✮⑩❹✁⑦❺▲❧

.

Para cada elemento de unificac¸˜ao podemos verificar se a transic¸˜ao, com essa uni-ficac¸˜ao, est´a habilitada (para a marcac¸˜ao corrente). Isso ´e feito atrav´es da avaliac¸˜ao da express˜ao guarda e todos os arcos de entrada. Como no caso a express˜ao guarda est´a omitida, conclu´ımos que ela ´e verdadeira. Para a unificac¸˜ao④❥✙ os dois arcos s˜ao avaliados

como(p,0) e2‘e, respectivamente. Conclu´ımos, ent˜ao, que ④❥✙ habilita T2- porque

cada um dos lugares de entrada cont´em marcas queT2requer para sua habilitac¸˜ao (uma marca(p,0)emBe duas marcas eemS). De maneira similar, podemos concluir que

④✑✛ n˜ao habilita T2 porque n˜ao existe a marca (q,40) em B. Uma transic¸˜ao pode ser

habilitada de tantas maneiras quantas forem as possibilidades de unificac¸˜ao das vari´aveis de seus arcos de entrada.

Quando uma transic¸˜ao est´a habilitada ela podedisparare ent˜ao remover as marcas de seus lugares de entrada e adicionar marcas em seus lugares de sa´ıda. O n´umero de marcas adicionadas/removidas e suas cores s˜ao determinadas pelo valor da express˜ao de arco correspondente (avaliada em relac¸˜ao `a unificac¸˜ao em quest˜ao). Por exemplo, uma ocorrˆencia da unificac¸˜ao ④✭✙ remove uma marca 1‘(p,0) de B, remove duas marcas

(2‘e) deSe adiciona uma marca1‘(p,0)emC. Como④❝✛ n˜ao habilitaT2, obviamente

T2n˜ao pode ocorrer.

Uma distribuic¸˜ao de marcas nos lugares ´e chamada de marcac¸ ˜ao. A marcac¸ ˜ao

inicial ´e a marcac¸˜ao determinada pela avaliac¸˜ao das express˜oes de inicializac¸˜ao. Um

(53)

3.3. AS REDES DE PETRI COLORIDAS (RPC) 37

desta transic¸˜ao ´e chamado de elemento de ocorrˆencia (❻❽❼). Podemos agora saber se

um elemento ✞✡❻❾✔ est´a habilitado em uma marcac¸˜ao ❑❉✙ - e quando for o caso, podemos

falar sobre a marcac¸˜ao ❑❲✛ que ´e alcanc¸ ´avel pela ocorrˆencia de ✞✡❻❾✔ em ❑❷✙ . V´arios

elementos de ocorrˆencia podem estar habilitados em uma mesma marcac¸˜ao. Examinando nosso caso, h´a duas possibilidades: ou existem marcas suficientes de tal forma que cada elemento de ocorrˆencia disponha de suas pr´oprias marcas, ou existem poucas marcas e os elementos competem entre si. No primeiro caso dizemos que os elementos est˜ao

simultaneamente habilitadose no segundo,em conflito.

Na marcac¸˜ao inicial da Figura 3.6, observamos que o elemento de ocorrˆencia ❧❿✙➀✁ ✞❵✌❀❢❦☛✢✄✵⑥♣✁

☛✮⑩❚✁➁❧

✔ est´a simultaneamente habilitado com ❧▲✛❀✁➂✞❵✌✹✐✳☛✢✄✕⑥➃✁✕✘⑨☛✮⑩❚✁

✔ . Isso significa que podemos ter um passo onde ❻➄✙ e ❻❽✛ ocorrem. Isso ´e denotado

pelo multi-conjunto ❢❦➅➆❻❾✙❹➇❏❢❦➅➆❻❽✛ e, quando ocorre, uma marca(q,0)´e removida de A

paraBe uma marca(p,0)deBparaC, e uma marcae´e removida deRe trˆes marcase deS. Ressaltamos que o efeito do passo ❢❦➅➆❻➄✙✻➇❏❢❦➅➆❻❽✛ ´e o mesmo caso os dois elementos

ocorressem um ap´os o outro em ordem arbitr´aria. Isso ´e um exemplo de um propriedade geral: sempre que um passo habilitado cont´em mais de um elemento de ocorrˆencia, ele pode ser dividido em dois ou mais passos, que s˜ao capazes de ocorrer um ap´os o outro e, juntos, terem o mesmo efeito comportamental total se disparados conjuntamente.

A explicac¸˜ao informal dada acima, diz-nos como entender o comportamento da

RPC. Entretanto, ´e muito dif´ıcil produzirmos uma explicac¸˜ao informal que seja completa e n˜ao amb´ıgua, e portanto, ´e extremamente importante que a intuic¸˜ao seja completada por uma definic¸˜ao mais formal. ´E a definic¸˜ao formal que est´a por tr´as do simulador de

(54)

3.3.6

Definic¸ ˜ao formal das RPCs

A existˆencia de uma definic¸˜ao formal ´e muito importante porque ´e base para simu-lac¸˜ao e para os m´etodos de verificac¸˜ao formais. No entanto, na pr´atica, n˜ao ´e necess´ario conhecer a definic¸˜ao formal porque a correta sintaxe ´e verificada pelas ferramentas de construc¸˜ao de modelos deRPCe, ainda, o uso correto da semˆantica dasRPC ´e tamb´em garantida pelas ferramentas de simulac¸˜ao e verificac¸˜ao formais.

ARede de Petri Colorida´e uma tupla➈▼✠❀✆➉✁❖✞✦➊✹☛✑✠☞☛✍✌✎☛✮➋❀☛✑✆✸☛✮➈▼☛✑➌➍☛✑➎➏☛✮➐✳✔ , onde:

➊ ´e um conjunto finito, n˜ao vazio, de tipos, chamadoconjunto de cores. ✠ ´e um conjunto finito delugares

✌ ´e um conjunto finito detransic¸ ˜oes ➋ ´e um conjunto finito dearcosonde: ✠❉❈❊✌❋✁❍✠➑❈✸➋❍✁❋✌♣❈❊➋❍✁❏●

✆➒❁▲➋⑦❃ ✠❖✶➓✌➃✺❸✌✾✶✿✠ ´e uma func¸˜aon´o ➈✟❁❂✠✾❃ ➊ ´e uma func¸˜aocor

➌✟❁❤✌❋❃ ➎➔⑥▲✘ ´e uma func¸˜aoguarda, onde Exp ´e da forma:

✬↔➣➓✌✖❁♠❡✌❚↕❥✘✜➙↔✞❴➌✫✞✽✬❭✔✍✔➛✁❏➜➞➝❥➝⑤➟❩➠➡✌❚↕❪✘❿➙↔✞➤➢❾➥▲➦☞✞➤➌✫✞✽✬❭✔✮✔✍✔↔✴⑦➊❇❣

➎✷❁▲➋❍❃ ➎▼⑥▲✘ ´e uma func¸˜aode express ˜ao de arco, onde Exp ´e da forma:

➥➧➣⑧➋✕❁ ❡✌❚↕❥✘✜➙↔✞❵➎❋✞✡➥✪✔❭✔❶✁⑦➈✫✞❫✘❾✞❴➥✪✔✍✔❭➨➫➩✹➠➡✌❚↕❪✘❿➙↔✞➤➢❾➥▲➦☞✞➤➎❋✞✡➥✪✔✍✔❭✔↔✴⑦➊❇❣, onde ✘❾✞✡➥✪✔ ´e um lugar ✆➭✞➤➥✪✔

➐➯❁❂✠✾❃ ➎▼⑥▲✘ ´e uma func¸˜ao deinicializac¸˜ao, onde Exp ´e da forma:

✘✸➣✿✠❖❁✜❡➲✌❚↕❥✘✜➙↔✞✽➐➫✞❛✘♠✔r✔❶✁❍➈➑✞❫✘❿✔❭➨➫➩❤❣

3.4

Propriedades das Redes de Petri

(55)

3.4. PROPRIEDADES DAS REDES DE PETRI 39

3.4.1

Propriedades Comportamentais

Alcanc¸abilidade (Reachability)

A alcanc¸abilidade indica a possibilidade de atingirmos uma determinada marcac¸˜ao pelo disparo de um n´umero finito de transic¸˜oes, a partir de uma marcac¸˜ao inicial. O acionamento de uma transic¸˜ao modifica a marcac¸˜ao de uma rede. Uma seq¨uˆencia de disparos resulta numa seq¨uˆencia de marcac¸˜oes.

Uma marcac¸˜ao❑❙✧ ´e alcanc¸´avel a partir de❑✼❱ se existe uma seq¨uˆencia de disparos

que transforma❑❲❱ em❑❙✧ . Ou seja, se a marcac¸˜ao❑❲❱ habilita a transic¸˜ao✬r❱ ,

disparando-se esta transic¸˜ao atinge-disparando-se a marcac¸˜ao ❑❷✙ . A marcac¸˜ao ❑➃✙ habilita ✬✮✙ a qual sendo

disparada, atinge-se a marcac¸˜ao ❑❲✛ e assim por diante at´e a obtenc¸˜ao da marcac¸˜ao ❑✼✧ .

O conjunto de todas as poss´ıveis marcac¸˜oes alcanc¸´aveis a partir de❑➃❱ em uma rede de ✠▼✆➉✁✷✞✡✆❊☛✓❑P❱✓✔ ´e denotado por➳➍✞➤✆✸☛✓❑P❱✯✔ ou➳➍✞✡❑P❱✯✔.

Um problema que pode ser observado atrav´es da alcanc¸abilidade ´e: se uma rede fica emdeadlockem uma determinada marcac¸˜ao, podemos querer saber se essa marcac¸˜ao ´e acess´ıvel.

Limitac¸˜ao (Boundedness)

Um lugar p de uma rede de Petri ✠❀✆ ✁ ✞✡✆❊☛✓❑✼❱✯✔ ´e k-limitado se para toda

marcac¸˜ao alcanc¸´avel❑ ➣✿➳➍✞✡❑❲❱✯✔ ,❑✷✞❫✘♠✔q➵⑦➸ . Caso essa definic¸˜ao n˜ao seja observ´avel, o

lugar ´e dito n˜ao-limitado. O limite➸ ´e o n´umero de marcas que um lugar pode acumular.

Uma rede Petri PN ´e limitadase para cada lugar✘ da rede existe um inteiro ➸ tal

que✘ seja➸ -limitado.

Uma rede de Petri PN ´e k-limitadase o n´umero de fichas em qualquer lugar n˜ao

excede um n´umero finito➸ para qualquer marcac¸˜ao❑ alcanc¸´avel a partir de❑➃❱ ,ou seja, ❑✷✞❛✘♠✔q➵⑦➸

✘ ,

❑ ➣✿➳➍✞✦❑P❱✯✔ .

Vivacidade (Liveness)

O conceito de vivacidade est´a relacionado `a ausˆencia de bloqueios (deadlocks).

Imagem

Figura 2.2: Exemplo de uma procedure ou KA.
Figura 2.3: Editor de KA (OP).
Figura 2.6: KA que computa Fibonacci sem o paralelismo.
Figura 2.7: Ka que computa Fibonacci com o paralelismo.
+7

Referências

Documentos relacionados

O efetivo pagamento da(s) RECEITA(S) FIXA(S) estará condicionado ao início da operação comercial da(s) USINA(S), devendo os recursos financeiros associados a este

Considerando a importância do assunto, a variabilidade existente nas características físicas e a ausência de dados na literatura especializada referente a

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Os métodos clássicos de determinação dos coeficientes, que possuem boa qualidade de estimativa e grande estabili- dade, têm alto custo computacional no problema de super-resolução;

Plantio: Março (sementes), outubro e novembro (estacas) Característica botânica: Planta subarbustiva, perene.. Os ramos são

O fato da contagem total de hemócitos no experimento com o agroquímico Talcord não ter sido diferente significativamente entre o controle e os dois tratamentos onde os

Inicialmente, destacamos os principais pontos de convergência: • O papel tático e operacional exercido pela área de TI dos Câmpus é claramente identificável, tanto nos

Antes de caminhar efetivamente ao encontro de métodos e mecanismos que nos levem a solucionar os problemas de ajustamento e inclusão dos jovens oriundos das “tribos” juvenis urbanas