• Nenhum resultado encontrado

Ártus Bolzanni. Limitação do Tempo Global de Disparo de. Uma Abordagem Utilizando Classes de Estados

N/A
N/A
Protected

Academic year: 2021

Share "Ártus Bolzanni. Limitação do Tempo Global de Disparo de. Uma Abordagem Utilizando Classes de Estados"

Copied!
75
0
0

Texto

(1)

´

Artus Bolzanni

Limita¸

ao do Tempo Global de Disparo de

Transi¸

oes em RPT

Uma Abordagem Utilizando Classes de

Estados

Salvador - BA - Brasil 20 de agosto de 2015

(2)

Limita¸

ao do Tempo Global de Disparo de

Transi¸

oes em RPT

Uma Abordagem Utilizando Classes de

Estados

Disserta¸c˜ao apresentada ao Programa de P´os-Gradua¸c˜ao em Engenharia El´etrica da Universidade Federal da Bahia como requi-sito parcial para conclus˜ao do Mestrado em Engenharia El´etrica.

´

Area de concentra¸c˜ao: Automa¸c˜ao Indus-trial.

Orientador:

Evangivaldo Lima

Universidade Federal da Bahia

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

Salvador - BA - Brasil 20 de agosto de 2015

(3)

´

Artus Bolzanni

Limita¸

ao do Tempo Global de Disparo de Transi¸

oes em RPT

Uma Abordagem Utilizando Classes de Estados

Disserta¸c˜ao de Mestrado apresentada como parte dos requisitos para a obten¸c˜ao do grau de Mestre em Engenharia El´etrica do curso de P´os-Gradua¸c˜ao em Engenharia El´etrica da Universidade Federal da Bahia.

Trabalho aprovado. Salvador, 20 de agosto de 2015.

Banca Examinadora:

Prof. Evangivaldo Lima Orientador

UNEB

Prof. Paulo James de Oliveira UNEB

Prof. Tito Lu´ıs Maia Santos UFBA

(4)

1 Exemplo de rede de Petri. . . 8

2 Disparo de t0. . . 9

3 Conflito entre duas transi¸c˜oes. . . 10

4 Exemplo de transi¸c˜oes fontes e sorvedoras. . . 10

5 Exemplo conflito RPT. . . 12

6 Rede de Petri para exemplo do c´alculo de classes de estados. . . 13

7 RPT para exemplo do dom´ınio relativo. . . 15

8 Grafo de classe de estados. . . 17

9 Exemplo de rede de Petri temporal com transi¸c˜oes ajust´aveis. . . 19

10 Grafo de classe de estados do Exemplo 5. . . 22

11 Grafo de classe de estados do Exemplo 7. . . 24

12 Grafo de classe de estados do Exemplo 7 recalculado. . . 25

13 RPT do Exemplo 8 . . . 26

14 Grafo de classes de estados do Exemplo 10. . . 28

15 Grafo de classes de estados do Exemplo 11. . . 30

16 Fluxograma do algoritmo. . . 34

17 RPT do Exemplo 13. . . 34

18 Grafo de classes de estados do Exemplo 13. . . 35

19 Grafo de classes de estados do Exemplo 13 recalculado. . . 36

20 RPT do Exemplo 14 . . . 36

21 Grafo de classes de estados do Exemplo 14 ap´os uma itera¸c˜ao. . . 37

(5)

23 RPT do Exemplo 15. . . 37

24 RPT do Exemplo 16. . . 38

25 Grafo de classes de estados do Exemplo 16. . . 39

26 Grafo de classes de estados do Exemplo 16 recalculado. . . 40

27 RPT da aplica¸c˜ao 1. . . 45

28 RPT da aplica¸c˜ao 2. . . 48

29 Rede de Petri temporal a ser reduzida. . . 61

(6)

1 Casos de teste da implementa¸c˜ao. . . 43

(7)

Resumo

O objetivo desta disserta¸c˜ao ´e estudar um novo modo de tratar a limita¸c˜ao do tempo global de disparo de uma transi¸c˜ao em uma rede de Petri temporal. As transi¸c˜oes desta rede podem ter, ou n˜ao, seus limites superiores de sensibiliza¸c˜ao reduzidos segundo um formalismo aqui proposto. Este novo formalismo surge do fato de que alguns eventos na rede podem ter seu tempo de execu¸c˜ao limitado por alguma a¸c˜ao externa, como um equi-pamento em que seu tempo de execu¸c˜ao ´e dado arbitrariamente, por exemplo. Utilizando a abstra¸c˜ao das classes de estados com tempo global para verificar poss´ıveis viola¸c˜oes `as restri¸c˜oes temporais impostas. Esta ferramenta possibilita n˜ao s´o verificar os tempos globais, mas tamb´em calcular o impacto deste redu¸c˜ao sobre os intervalos das transi¸c˜oes sobre o espa¸co de estados. O c´alculo do ajuste nos intervalos das transi¸c˜oes ´e feito a partir de um algoritmo proposto neste trabalho que, usando os dados do grafo de classes de estados, o recalcula de acordo com os ajustes nos intervalos at´e ent˜ao encontrados. Uma demonstra¸c˜ao da aplica¸c˜ao do algoritmo ´e realizado em duas redes de Petri tempo-rais com mais de 1000 classes de estados para verificar caracter´ısticas de funcionamento e performance.

Palavras-chave: Rede de Petri, Rede de Petri Temporal, Classes de Estados, ´Algebra Intervalar, Controle Supervis´orio, Sistemas a Eventos Discretos.

(8)

The objective of this thesis is to study a new way to deal the limitation of a transition’s firing global time in a time Petri net. The net’s transitions can, or cannot, have their late firing time reduced according to a formalism here proposed. That new formalism arises from the fact that some events on the net can have their execution time limited by some external action, like an equipment in which time is arbitrarily given, for example. To verify possible violations to the imposed restrictions the state classes formalism has been utilized. That tool make possible not just the global time verification but to calculate the impact of that reduction on the state class graph also. The control is an imposition of a reduction on late enabling time of the transitions by a firing sequence. The adjustment calculation is made by an algorithm proposed on this work that, utilizing the data from the state class graph, recalculates it according to the adjustments on the intervals found until then. A demonstration of the algorithm application is done on two time Petri nets with more than 1000 state classes to verify functioning and performance issues.

Keywords: Petri Net, Time Petri Net, State Classes, Intervalar Algebra, Supervisory Control, Discrete Event Systems.

(9)

Nota¸

ao

A Conjunto de arcos de uma rede de Petri.

Aj(S, t) Fun¸c˜ao que retorna o ajuste da transi¸c˜ao t na classe de estados S.

Ajmax Ajuste m´aximo que uma transi¸c˜ao pode receber em uma classe de estados. B Vetor com os tempos parciais de sensibiliza¸c˜ao das transi¸c˜oes de uma RPT.

C Matriz de intervalos.

D Matriz de incidˆencia de uma rede de Petri. D Conjunto das transi¸c˜oes dispar´aveis.

E Estado de uma rede de Petri temporal. GC Rel´ogio global de uma classe de estados. H Conjunto das transi¸c˜oes habilitadas.

id(t) Intervalo de disparo de uma transi¸c˜ao t em uma classe de estados. I Vetor de intervalos dinˆamicos em uma classe de estados.

Is Fun¸c˜ao que associa intervalos est´aticos `as transi¸c˜oes de uma RPT.

L(N, M) As sequˆencias de disparos alcan¸cadas pela RP N a partir da marca¸c˜ao M. M Marca¸c˜ao de uma rede de Petri.

M0 Marca¸c˜ao inicial de uma rede de Petri.

MP Matriz parcial.

MT Matriz de transi¸c˜oes.

N Uma rede de Petri.

N Conjunto das transi¸c˜oes rec´em-habilitadas.

p Lugar de uma rede de Petri.

P Conjunto de lugares de uma rede de Petri. P Conjunto das transi¸c˜oes persistentes.

Pre Matriz de pr´e-condi¸c˜oes de uma rede de Petri. Pos Matriz de p´os-condi¸c˜oes de uma rede de Petri. Q Conjunto dos n´umeros racionais.

R(N, Mk) Conjunto de marca¸c˜oes alcan¸c´aveis em N a partir da marca¸c˜ao Mk. s Vetor de disparos de uma rede de Petri.

S Classe de estados.

(10)

T Conjunto de transi¸c˜oes de uma rede de Petri. Tap Conjunto de transi¸c˜oes ajust´aveis precedentes.

Tasi Conjunto de transi¸c˜oes ajust´aveis sucessoras imediatas. Tp Conjunto de transi¸c˜oes entre duas transi¸c˜oes.

TA Conjunto de transi¸c˜oes ajust´aveis.

V(S, λ(t)) Tamanho da viola¸c˜ao da transi¸c˜ao t na classe S. x1  x2 x1 precede x2.

x1∨ x2 x1 e x2 s˜ao conflitantes. x1 k x2 x1 e x2 s˜ao concorrentes.

W Vetor de peso dos arcos de uma rede de Petri.

δ(t) Limite inferior de sensibiliza¸c˜ao de uma transi¸c˜ao t de uma RPT.

δs(t) Limite inferior de sensibiliza¸c˜ao est´atico de uma transi¸c˜ao t de uma RPT. δd(t) Limite inferior de sensibiliza¸c˜ao de disparo de uma transi¸c˜ao t de uma RPT. δ(GC) Limite inferior do rel´ogio global de uma classe de estados.

∆(t) Limite superior de sensibiliza¸c˜ao de uma transi¸c˜ao t de uma RPT.

∆s(t) Limite superior de sensibiliza¸c˜ao est´atico de uma transi¸c˜ao t de uma RPT. ∆d(t) Limite superior de sensibiliza¸c˜ao de disparo de uma transi¸c˜ao t de uma RPT. ∆(GC) Limite superior do rel´ogio global de uma classe de estados.

λ(t) Restri¸c˜ao de m´aximo tempo global de disparo para transi¸c˜ao t. σ Sequˆencia de disparos de transi¸c˜oes de uma rede de Petri. υ Tuplas armazenadas pela fun¸c˜ao “ajustar n´o”.

Υ Conjunto de tuplas armazenadas pela fun¸c˜ao “ajustar n´o”. ♯P N´umero de lugares de uma rede de Petri.

♯T N´umero de transi¸c˜oes de uma rede de Petri.

ψ(t) Classe de estados onde a transi¸c˜ao t ´e originalmente habilitada. •p Conjunto de transi¸c˜oes de entrada do lugar p.

•t Conjunto de lugares de entrada da transi¸c˜ao t. p• Conjunto de transi¸c˜oes de sa´ıda do lugar p. t• Conjunto de lugares de sa´ıda da transi¸c˜ao t.

(11)

Sum´

ario

1 Introdu¸c˜ao 1

1.1 Objetivos e Justificativas . . . 2

1.2 Estrutura do Trabalho . . . 3

2 Defini¸c˜oes e Conceitos 4 2.1 Algebra Intervalar . . . .´ 4

2.2 Redes de Petri . . . 6

2.3 Redes de Petri Temporais . . . 11

2.4 Classes de Estados . . . 12

2.4.1 Dom´ınio Relativo . . . 15

2.5 Transi¸c˜oes ajust´aveis . . . 17

2.6 Contribui¸c˜oes Apresentadas . . . 20

3 Controle de RPT com Restri¸c˜oes Temporais 21 3.1 Restri¸c˜oes de Tempo Limite . . . 21

3.1.1 Algoritmo de Busca de Classes de Estados que Violam uma Restri¸c˜ao 23 3.2 Algoritmo de C´alculo de Ajuste . . . 24

3.2.1 Classes de Estados Ajust´aveis Precedentes . . . 25

3.2.2 C´alculo do Ajuste . . . 29

3.2.3 Ajuste em Um N´o do Grafo de Classes de Estados . . . 30

3.2.4 C´alculo do Grafo Controlado . . . 32

(12)

4.1 Implementa¸c˜ao . . . 41 4.1.1 Metodologia de desenvolvimento . . . 42 4.2 Materiais e M´etodos . . . 43 4.3 Aplica¸c˜ao 1 . . . 44 4.3.1 Resultados . . . 44 4.4 Aplica¸c˜ao 2 . . . 47 4.4.1 Resultados . . . 47 4.5 Considera¸c˜oes . . . 49 5 Conclus˜oes 50 5.1 Trabalhos Futuros . . . 51 Referˆencias 53 Apˆendice A -- Redu¸c˜ao de uma RPT 56 A.1 Redu¸c˜ao de uma RPT via Rela¸c˜ao de Ordem . . . 57

A.1.1 Algoritmo para Redu¸c˜ao via Matriz de Transi¸c˜oes . . . 59

A.1.2 Agrupamento de Transi¸c˜oes em S´erie e Remo¸c˜ao e Agrupamento de Lugares . . . 63

(13)

1

Introdu¸

ao

Devido a complexidade dos sistemas em geral, criou-se a necessidade de modelar os Sistemas a Eventos Discretos (SEDs) segundo algum formalismo. Para isto, existe na literatura o uso dos autˆomatos de estados finitos e das redes de Petri (RPs) (CASSANDRAS; LAFORTUNE, 2008). Estes formalismos permitem a an´alise dos SEDs tanto do ponto de

vista l´ogico como estrutural.

Nos sistemas reais, o tempo pode ser uma caracter´ıstica importante. Uma das propos-tas para modelagem temporal dos eventos foi uma extens˜ao ao formalismo original das RPs chamada redes de Petri temporais (RPTs) em (MERLIN, 1974; MERLIN; FARBER, 1976). As RPTs tem como peculiaridade a associa¸c˜ao de intervalos de tempo aos even-tos da rede, caracterizando os tempos m´ınimos e m´aximos que um evento pode levar a ocorrer ap´os todas suas precondi¸c˜oes serem satisfeitas. Este formalismo foi originalmente proposto para modelar protocolos de comunica¸c˜ao, mas sua aplica¸c˜ao n˜ao se restringiu a estes, tendo sido aplicada tamb´em em sistemas de manufatura, controle supervis´orio, rob´otica e outros (BONHOMME et al., 2002; SATHAYE; KROGH, 1998; MONTANO; IZQUI-ERDO; VILLARROEL, 2000).

Para representa¸c˜ao dos estados de uma RPT foi proposto em (BERTHOMIEU; MENAS-CHE, 1982) e estendido em (BERTHOMIEU; DIAZ, 1991), as classes de estados. Essa forma

de representa¸c˜ao agrupa todos os estados resultantes de uma mesma sequˆencia de disparo sob a forma de um conjunto de inequa¸c˜oes que modelam todos os tempos de disparo poss´ıveis das transi¸c˜oes habilitadas em uma dada classe de estados. Alternativamente `a proposta original de classes de estados, onde os tempos das transi¸c˜oes s˜ao vistos apenas de modo relativo, em (XU; HE; DENG, 2002;WANG; DENG, 2000;LILIUS, 1998;LIMA, 2007) ´e utilizado um rel´ogio global que acumula o tempo desde o in´ıcio da execu¸c˜ao da rede. A existˆencia de um rel´ogio global sobre o grafo de classes de estados permite que sejam observados os tempos em que determinadas tarefas s˜ao completadas pelo sistema.

Em (BUY; DARABI, 2003) ´e apresentado o problema de controle onde s˜ao estabelecidas

(14)

em seus trabalhos posteriores (BUY et al., 2005; WANG et al., 2007, 2011) s˜ao apresentados

algoritmos para calcular um controlador a partir do desdobramento (unfolding) da rede original. O controlador sintetizado por este m´etodo tem como objetivo desabilitar certas transi¸c˜oes que levem a uma viola¸c˜ao deste tempo m´aximo.

Baseado no uso da ´algebra intervalar e tempo global para an´alise das RPTs proposto em (LIMA, 2007), neste trabalho ´e um formalismo para tratar o problema de restri¸c˜ao

de tempo limite de disparo de uma transi¸c˜ao. Aqui os intervalos est´aticos de algumas transi¸c˜oes da rede podem ser alterados de acordo com o fluxo de disparo de eventos na rede. Esta atualiza¸c˜ao dos intervalos das transi¸c˜oes ´e realizada de maneira similar, por´em diferente, em (BERTHOMIEU et al., 2014), no qual o intervalo est´atico das transi¸c˜oes pode

mudar de acordo com o estado da rede e n˜ao com as sequˆencias de disparos.

1.1

Objetivos e Justificativas

O objetivo geral desta disserta¸c˜ao ´e tratar o problema do tempo global m´aximo de uma transi¸c˜ao em uma RPT. Para isto, o formalismo sobre os intervalos est´aticos das transi¸c˜oes ´e relaxado de modo abrir uma nova perspectiva para solu¸c˜ao do problema. Aqui s˜ao realizados os seguintes passos para atingir o objetivo geral:

• Defini¸c˜ao das transi¸c˜oes ajust´aveis em uma RPT s.

• An´alise do espa¸co das classes de estado com transi¸c˜oes ajust´aveis.

• Cria¸c˜ao e implementa¸c˜ao de um algoritmo que gera novo espa¸co de classes sob certa restri¸c˜ao de tempo.

Os dois primeiros itens atualizam os formalismos j´a existentes de acordo com a pers-pectiva deste trabalho. A justificativa destes n˜ao est´a apenas em servir como base para o objetivo geral, mas tamb´em prover uma base formal para modelagem e an´alise de poss´ıveis sistemas reais que venham a ter eventos com intervalos de ocorrˆencia ajust´aveis.

O algoritmo no terceiro item tem como proposta estabelecer uma maneira de c´alcular os ajustes nas transi¸c˜oes utilizando a pr´opria ferramenta de an´alise (classes de estados), dispensando modifica¸c˜oes na estrutura da rede. O uso do grafo de classes de estados ´e justificado pelo fato de que como ele compreende os finitos estados da rede faz com que sua pr´opria estrutura prove a corretude do controle estabelecido. Al´em disso, esta explora¸c˜ao do espa¸co permite que sejam visualizadas pelo projetista as sequˆencias de disparos que levam `as viola¸c˜oes das restri¸c˜oes.

(15)

1.2 Estrutura do Trabalho 3

1.2

Estrutura do Trabalho

No Cap´ıtulo 2 s˜ao revisados os formalismos presentes na literatura que servir˜ao tanto para realiza¸c˜ao do trabalho quanto para uma melhor compreens˜ao da proposta. Tamb´em s˜ao formalizadas as RPTs com intervalos est´aticos ajust´aveis segundo a sequˆencia de disparos e a forma de c´alculo das classes de estados das RPT s com intervalos ajust´aveis.

O Cap´ıtulo 3 descreve os algoritmos para c´alculo dos ajustes necess´arios sobre as transi¸c˜oes.

Duas aplica¸c˜oes relacionadas aos temas discutidos nos cap´ıtulos anteriores s˜ao mos-tradas no Cap´ıtulo 4.

As conclus˜oes e os trabalhos futuros s˜ao dispostos no Cap´ıtulo 5.

(16)

Para realiza¸c˜ao do trabalho proposto ´e necess´aria revis˜ao da ´algebra intervalar (Se¸c˜ao 2.1), das redes de Petri (Se¸c˜ao 2.2), das redes de Petri temporais e das classes de estados utilizando tempo global (Se¸c˜ao 2.3). Tamb´em ´e formalizado o conceito de transi¸c˜oes ajust´aveis em uma RPT (Se¸c˜ao 2.5).

2.1

Algebra Intervalar

´

Nesta se¸c˜ao s˜ao definidos alguns conceitos da ´algebra intervalar que servir˜ao de base te´orica para an´alise de redes de Petri temporais como proposto em (LIMA, 2007).

Intervalos

Defini¸c˜ao 1. (Intervalo) - Um intervalo ´e um conjunto

x= [x, x] = {x ∈ R | x ≤ x ≤ x},

onde x e x s˜ao os limites inferior e superior de x, respectivamente.

Defini¸c˜ao 2. (Espa¸co de intervalos) - Um espa¸co de intervalos ´e um conjunto de inter-valos

IR= {[x, x] | x ≤ x, x, x ∈ R}.

Opera¸

oes sobre Intervalos

Sejam x = [x, x], y =y, y e z = [z, z] intervalos.

Defini¸c˜ao 3. (Interse¸c˜ao) - A interse¸c˜ao de dois intervalos ´e dada por

x∩ y = {k ∈ R | k ∈ x e k ∈ y}.

(17)

2.1 ´Algebra Intervalar 5

Defini¸c˜ao 4. (Uni˜ao) - A uni˜ao entre dois intervalos ´e dada por

x∪ y = [min{x, y}, max{x, y}].

Rela¸

ao de Ordem

Defini¸c˜ao 5. (Menor)

-x < y ⇐⇒ x < y.

A rela¸c˜ao < ´e transitiva. Defini¸c˜ao 6. (Igualdade)

-x = y ⇐⇒ x = y, x = y.

A rela¸c˜ao de igualdade ´e reflexiva, sim´etrica e transitiva. Defini¸c˜ao 7. (Menor ou igual)

-x ≤ y ⇐⇒ x ≤ y, x ≤ y.

A rela¸c˜ao ≤ ´e reflexiva, antissim´etrica fraca e transitiva. Defini¸c˜ao 8. (Inclus˜ao)

-x ⊆ y ⇐⇒ x ≥ y, x ≤ y.

A rela¸c˜ao ⊆ ´e reflexiva, antissim´etrica fraca e transitiva.

Opera¸

oes B´

asicas e Propriedades

1. Opera¸c˜oes b´asicas:

• x + y =x + y, x + y • x − y =x− y, x − y

• x · y =min{x y, x y, x y, x y}, max{x y, x y, x y, x y}

• x / y =min{x/ y, x/ y, x/ y, x/ y}, max{x/ y, x/ y, x/ y, x/ y}, y 6= 0

• x ⊖ y =max{0, x − y}, max{0, x − y}

2. Propriedades:

(18)

• Associativa : x + (y + z) = (x + y) + z • Elemento neutro da adi¸c˜ao : x + 0 = x

• Elemento neutro damultiplica¸c˜ao : 1 · x = x

• Distributiva : x (y + z) ⊆ x · y + x · z

2.2

Redes de Petri

As redes de Petri (RP s) s˜ao uma ferramenta gr´afica e matem´atica usada na modela-gem de uma gama de sistemas como, por exemplo, sistemas a eventos discretos, sistemas tolerantes `a falha, sistemas multiprocessados, entre outros (MURATA, 1989).

Uma RP ´e descrita como um grafo dirigido associado `a uma marca¸c˜ao. O grafo ´e composto por dois tipos de n´os, os lugares e as transi¸c˜oes (graficamente representados por c´ırculos e retˆangulos, respectivamente). Os primeiros est˜ao aptos a receber um determi-nado n´umero de marcas (ou fichas). Ambos s˜ao ligados por arcos que possuem um peso (valor) associado. Um arco s´o pode ligar um lugar `a uma transi¸c˜ao e vice-versa.

As transi¸c˜oes podem ser interpretadas como eventos ou tarefas, enquanto os lugares como informa¸c˜oes que podem ser tanto pr´e-condi¸c˜oes quanto p´os-condi¸c˜oes da ocorrˆencia dos eventos.

Formalmente uma rede de Petri pode ser definida por:

Defini¸c˜ao 9. (Rede de Petri) - Seja uma rede de Petri N = hP, T, A, W i, onde:

• P = {p0, p1, . . . , p♯P −1} ´e um conjunto finito de lugares de tamanho ♯P .

• T = {t0, t1, . . . , t♯T −1} ´e um conjunto finito de transi¸c˜oes de tamanho ♯T .

• A ´e o conjunto dos arcos que ligam transi¸c˜oes a lugares (e vice-versa). Sendo A(p,t) o arco que liga um lugar p a uma transi¸c˜ao t e A(t,p) o arco que liga uma transi¸c˜ao t a um lugar p.

• W ´e o vetor de pesos associados aos arcos.

• P ∩ T = ∅.

A estrutura das redes de Petri podem ser representadas com o uso de matrizes (pr´e-condi¸c˜ao, p´os-condi¸c˜ao e incidˆencia).

(19)

2.2 Redes de Petri 7

Defini¸c˜ao 10. (Representa¸c˜ao matricial) - Uma rede de Petri N com p ∈ P e t ∈ T , pode ser representada matricialmente por trˆes matrizes inteiras: pr´e-condi¸c˜ao (Pre), p´os-condi¸c˜ao (Pos) e incidˆencia (D).

• P re = [P re(pi, tj)]♯P ×♯T, onde P re(pi, tj) = A(pi, tj).

• P os = [P os(pi, tj)]♯P ×♯T, onde P os(pi, tj) = A(tj, pi).

• D = P os − P re.

i = 0, . . . , ♯P − 1 e j = 0, . . . , ♯T − 1.

Os vetores coluna (linha) das matrizes Pre, Pos e D ser˜ao denotados como:

• P re(t) = P re(i, t) (P re(p) = P re(p, j)).

• P os(t) = P os(i, t) (P os(p) = P os(p, j)).

• D(t) = D(i, t) (D(p) = D(p, j)).

Sendo i = 0, ..., ♯P − 1 e j = 0, ..., ♯T − 1.

Defini¸c˜ao 11. (Conjunto de entrada e sa´ıda) - Os conjuntos de entrada e sa´ıda dos lugares p e transi¸c˜oes t de uma rede de Petri s˜ao dados por:

• Conjunto de transi¸c˜oes de entrada de p: •p = {t ∈ T | P os(p, t) > 0}.

• Conjunto de transi¸c˜oes de sa´ıda de p: p• = {t ∈ T | P re(p, t) > 0}.

• Conjunto de transi¸c˜oes de entrada de t: •t = {p ∈ P | P re(p, t) > 0}.

• Conjunto de transi¸c˜oes de sa´ıda de t: t• = {p ∈ P | P os(p, t) > 0}.

Os lugares da rede de Petri podem receber marcas (ou fichas). O vetor contendo a marca¸c˜ao de todos os lugares de uma rede ´e chamado de marca¸c˜ao da rede. Pode-se interpretar a marca¸c˜ao como o estado da rede e as marcas como a quantifica¸c˜ao de recursos ou informa¸c˜ao, a depender do sentido empregado ao lugar ao qual pertencem.

(20)

Defini¸c˜ao 12. (Marca¸c˜ao de uma rede de Petri) - A marca¸c˜ao de uma rede de Petri denotado por M, ´e dado por:

M = [M (p)]1×♯P,

sendo M(p) a quantidade de marcas em p, tal que p ∈ P e M (p) ∈ N.

A marca¸c˜ao inicial da rede ´e dada pelo vetor M0.

p0 t0 p1 p2 t1 t2 p3 2 2

Figura 1: Exemplo de rede de Petri.

Exemplo 1. Na Figura 1 ´e mostrado um exemplo de uma rede de Petri. O lugar p0

possui duas marcas e o os arcos que ligam p0 a t0 e t0 a p1 possuem peso 2, enquanto os

outros arcos s˜ao de peso unit´ario. Sua matriz de incidˆencia ´e:

D =        t0 t1 t2 p0 −2 0 0 p1 2 −1 0 p2 1 0 −1 p3 0 1 1       

E seu vetor de marca¸c˜ao inicial:

M0 = h

p0 p1 p2 p3

2 0 0 0

i

Defini¸c˜ao 13. (Habilita¸c˜ao de transi¸c˜ao) - Uma transi¸c˜ao t ∈ T de uma rede de Petri ´e dita habilitada se:

M ≥ P re(t)T.

O conjunto H(M ) ´e o conjunto de transi¸c˜oes habilitadas por uma marca¸c˜ao M . A rela¸c˜ao “maior que” (≥) se d´a elemento-a-elemento.

(21)

2.2 Redes de Petri 9

Defini¸c˜ao 14. (Dinˆamica de uma rede de Petri) - Seja uma rede de Petri com marca¸c˜ao Mi, ap´os o disparo de uma transi¸c˜ao t ∈ H(Mi) a nova marca¸c˜ao Mj ´e dada por:

Mj = Mi+ D(t)T.

A dinˆamica de uma rede de Petri ´e dada pelo disparo de suas transi¸c˜oes. O disparo de uma transi¸c˜ao s´o ´e poss´ıvel caso esta esteja habilitada (defini¸c˜ao 13). No disparo de uma transi¸c˜ao t, s˜ao retirados dos lugares pide entrada de t (pi ∈ •t) o n´umero de marcas igual aos respectivos arcos ligando os lugares de entrada `a transi¸c˜ao t (Pre(pi,t)), e adicionados o valor em marcas aos lugares pj de sa´ıda de t (pj ∈ t•) igual aos respectivos arcos ligando t aos lugares pj (Pos(pj,t)) (defini¸c˜ao 14). Na Figura 2 tem-se como exemplo o disparo da transi¸c˜ao t0.

Sobre o disparo das transi¸c˜oes ´e necess´ario salientar que s˜ao:

• atˆomicos - os disparos s˜ao indivis´ıveis e instantˆaneos;

• ass´ıncronos - duas ou mais transi¸c˜oes habilitadas podem disparar sem ordem fixa entre seus disparos;

• n˜ao-determin´ısticos - quando duas ou mais transi¸c˜oes est˜ao habilitades, qualquer uma delas pode disparar;

• n˜ao h´a medida temporal - apenas ordem causal.

p0 t0 p1 p2 t1 t2 p3 2 2 Figura 2: Disparo de t0.

Defini¸c˜ao 15. (Equa¸c˜ao fundamental das redes de Petri) - Seja Mi a marca¸c˜ao de uma

rede de Petri. Ap´os o disparo de uma ou mais transi¸c˜oes, s = [s(t)]♯T ×1 e s(t) ´e quantidade

de disparos de uma transi¸c˜ao t, a marca¸c˜ao resultante ´e dada pela equa¸c˜ao fundamental das redes de Petri:

(22)

A Defini¸c˜ao 14 pode ser estendida para o disparo de uma sequˆencia de transi¸c˜oes, levando `a equa¸c˜ao fundamental das redes de Petri (defini¸c˜ao 15).

´

E necess´ario salientar que mesmo que a marca¸c˜ao resultante da equa¸c˜ao fundamental das redes de Petri seja v´alido, n˜ao h´a como garantir que a sequˆencia de disparos de transi¸c˜ao ´e poss´ıvel e que suas marca¸c˜oes intermedi´arias sejam v´alidas.

Um ponto chave da modelagem utilizando redes de Petri ´e a situa¸c˜ao onde h´a conflito, ou seja, duas ou mais transi¸c˜oes que disputam um mesmo recurso (marca). Como nas redes de Petri as transi¸c˜oes s˜ao disparadas em sequˆencia, o disparo de uma das transi¸c˜oes em conflito pode desabilitar as outras conflitantes. Na Figura 3 h´a um exemplo de conflito entre duas transi¸c˜oes. Dada a caracter´ıstica n˜ao deterministica das RPs, por defini¸c˜ao, n˜ao h´a escolha pr´evia sobre qual das transi¸c˜oes dever´a disparar.

p0 t0

t1

Figura 3: Conflito entre duas transi¸c˜oes.

H´a dois tipos de transi¸c˜oes peculiares, as transi¸c˜oes fontes (source) e as transi¸c˜oes sorvedoras (sink ). As primeiras n˜ao possuem arcos de entrada, ou seja, est˜ao sempre habilitadas, e as sorvedoras n˜ao possuem arcos de sa´ıda. Na figura 4 h´a exemplo desses dois tipos de transi¸c˜oes (t0 ´e fonte e t1 ´e sorvedora).

t0 p0 t1

Figura 4: Exemplo de transi¸c˜oes fontes e sorvedoras.

Defini¸c˜ao 16. (Rela¸c˜ao de ordem) - Seja N uma rede de Petri ac´ıclica e x1e x2 ∈ P ou T ,

onde P e T s˜ao os conjuntos de lugares e transi¸c˜oes da rede, respectivamente.

• x1 precede x2 (x1  x2) se existe um caminho entre x1 e x2. A rela¸c˜ao de precedˆencia

´e reflexiva, assim, ∀x : x  x.

• x1 e x2 s˜ao conflitantes (x1 ∨ x2) se existe t1, t2 ∈ T, t1 6= t2, tal que P re(t1) ∩ P re(t2) 6= ∅, t1  x1 e t2  x2.

(23)

2.3 Redes de Petri Temporais 11

2.3

Redes de Petri Temporais

As redes de Petri temporais (RPT ), propostas em (MERLIN, 1974;MERLIN; FARBER,

1976) s˜ao uma extens˜ao das redes de Petri que modifica a regra de disparo das transi¸c˜oes pois associam um intervalo fechado de tempo para cada disparo.

Defini¸c˜ao 17. (Rede de Petri temporal) - Uma rede de Petri temporal ´e uma dupla RP T = hN, Isi, onde:

N ´e uma rede de Petri.

Is´e uma fun¸c˜ao que associa intervalos fechados est´aticos pertencentes a Q `as transi¸c˜oes

de N.

O tempo transcorrido entre a habilita¸c˜ao de uma transi¸c˜ao e seu disparo ´e chamado tempo de sensibiliza¸c˜ao. Caso a transi¸c˜ao esteja habilitada por´em ainda n˜ao disparada, chamamos aqui o tempo transcorrido desde a habilita¸c˜ao at´e determinado momento ´e denominado tempo parcial de sensibiliza¸c˜ao, visto que ´e apenas uma parcial do tempo de sensibiliza¸c˜ao que ter´a a transi¸c˜ao ao disparar.

O intervalo Is(t), sendo t ´e uma transi¸c˜ao qualquer de uma RPT, ´e dado por [δs(t), ∆s(t)], onde δs(t) o limite inferior de sensibiliza¸c˜ao e ∆s(t) ´e o limite superior de sensibiliza¸c˜ao de t, respeitando as seguintes condi¸c˜oes:

• 0 ≤ δs(t) ≤ ∆s(t) ≤ ∞.

• δs(t) < ∞.

Defini¸c˜ao 18. (Regras de disparo das RPTs) - As RPTs possuem as seguintes regras de disparo de transi¸c˜ao:

• Uma transi¸c˜ao habilitada pela marca¸c˜ao da rede s´o ser´a apta a disparar se, e somente se, seu tempo parcial de sensibiliza¸c˜ao for maior ou igual ao seu tempo inferior de sensibiliza¸c˜ao.

• Se o tempo parcial de sensibiliza¸c˜ao se igualar ao tempo superior de sensibiliza¸c˜ao associado, ent˜ao a transi¸c˜ao deve obrigatoriamente disparar, exceto caso seja desa-bilitada neste exato momento pelo disparo de uma transi¸c˜ao conflitante.

(24)

Na figura 5 ´e mostrada uma situa¸c˜ao de conflito de transi¸c˜oes em uma RPT, onde t0 tem um intervalo de sensibiliza¸c˜ao igual a [0,1] e t1 a [1,2]. Tenham sido habilitadas ambas as transi¸c˜oes no instante Θ = 0, se a transi¸c˜ao t0 n˜ao disparar em 0, ela e t1 estar˜ao em conflito quando Θ = 1. p0 t0 [0, 1] t1 [1, 2]

Figura 5: Exemplo conflito RPT.

Defini¸c˜ao 19. (Estado de uma RPT) - O estado de uma RPT ´e uma dupla E = {M, B}, no qual:

M ´e a marca¸c˜ao da rede.

B ´e o vetor dos tempos parciais de sensibiliza¸c˜ao das transi¸c˜oes da rede, sendo B(t) = 0 se a transi¸c˜ao t n˜ao est´a habilitada ou foi rec´em habilitada.

Devido ao fato de utilizar regras de disparo diferentes das redes de Petri, o estado de uma RPT ´e dado pela marca¸c˜ao da rede e o tempo parcial de sensibiliza¸c˜ao das transi¸c˜oes habilitadas (defini¸c˜ao 19). A mudan¸ca de estado em uma RPT ocorre nos caso de:

• Mudan¸ca do tempo sem disparo de transi¸c˜ao.

• Disparo de transi¸c˜ao.

2.4

Classes de Estados

Devido a mudan¸ca do tempo levar `a mudan¸ca do estado da RPT, o espa¸co de estados pode se tornar grande demais. Uma das possibilidades a serem exploradas ´e o uso de classes de estados como abstra¸c˜ao desse espa¸co de estados. Proposto em (BERTHOMIEU; MENASCHE, 1982) e estendido em (BERTHOMIEU; DIAZ, 1991), o formalismo das classes

de estados tem como principal caracter´ıstica considerar a mudan¸ca de estado apenas pelo disparo de transi¸c˜oes.

(25)

2.4 Classes de Estados 13

Antes de definir o conceito de classes de estados, ´e necess´ario definir como ser´a tratado o tempo. Na abordagem cl´assica de (BERTHOMIEU; MENASCHE, 1982; BERTHOMIEU; DIAZ, 1991), o dom´ınio do tempo dentro de uma classe de estados ´e dado por um conjunto de inequa¸c˜oes que representam a uni˜ao de todos os intervalos pass´ıveis de disparo pelas transi¸c˜oes habilitadas pela marca¸c˜ao.

Outra abordagem utilizada na literatura ´e o tratamento do tempo de forma absoluta, nela cada classe de estados possui um rel´ogio que ´e calculado pela soma dos intervalos da sequˆencia de transi¸c˜oes disparadas (WANG; DENG, 2000; XU; HE; DENG, 2002; LIMA, 2007). Neste trabalho, esta ser´a a abordagem usada como base devido ao fato de agregar o tempo global de execu¸c˜ao da rede.

Defini¸c˜ao 20. (Classe de estados com rel´ogio global) - A classe de estados de uma RPT ´e dada por S = hM, I, GCi, onde M ´e a marca¸c˜ao da rede, I ´e o vetor dos intervalos de sensibiliza¸c˜ao das transi¸c˜oes habilitadas por M e GC ´e o rel´ogio global para classe S. δ(t) e ∆(t) representam respectivamente os limites inferior e superior de I(t). δ(GC) e ∆(GC) representam respectivamente os limites inferior e superior de GC.

Um caso especial de classe de estados ´e a classe de estados inicial S0, onde GC = [0, 0].

p0 p1 t0 [1, 2] t1 [2, 4] p2 t2 [1, 2]

Figura 6: Rede de Petri para exemplo do c´alculo de classes de estados.

Exemplo 2. Na Figura 6 ´e mostrada uma rede de Petri com trˆes lugares (p0, p1 e p2) e

trˆes transi¸c˜oes (t0, t1 e t2). A marca¸c˜ao inicial M0 ´e [1, 1, 0].

A classe de estados inicial ´e dada por:

S0 =                  M0 = [1, 1, 0] I(t0) = [1, 2] I(t1) = [2, 4] GC = [0, 0]

(26)

Defini¸c˜ao 21. (C´alculo dos intervalos de sensibiliza¸c˜ao) - Seja Sk uma classe de

esta-dos precedida por outra classe Sk−1, o intervalo de sensibiliza¸c˜ao da transi¸c˜ao t, I(t) ´e

calculado da seguinte forma:

I(t) =    GC + Is(t) se t ∈ N [max{δ(GC), δ(t)}, ∆(t)] se t ∈ P ,

onde N e P s˜ao respectivamente o conjunto de transi¸c˜oes rec´em habilitadas em Sk e

transi¸c˜oes persistentes em Sk.

Pela observa¸c˜ao da RPT, t0 pode disparar no intervalo [1,2] (levando `a classe S1) e t1 pode disparar no intervalo [2,2] (levando `a classe S2).

S1 =                  M1 = [0, 1, 1] I(t1) = [2, 4] I(t2) = [2, 4] GC = [1, 2] S2 =                  M2 = [1, 0, 1] I(t0) = [2, 2] I(t2) = [3, 6] GC = [2, 2]

Defini¸c˜ao 22. (Rela¸c˜ao de precedˆencia entre classes de estados) - Seja Sx uma classe

de estados. Uma classe de estados Sy ´e precedente a Sx (Sy  Sx) se, e somente se,

existe uma sequˆencia de disparos de transi¸c˜oes que leva a rede de Sy `a Sx ou Sy e Sx s˜ao

alcan¸cadas pela mesma sequˆencia de disparos de transi¸c˜oes.

A partir da classe de estados S1 (σ1 = [t0]), ao ocorrer o disparo de t1 tem-se a classe S3 (σ3 = [t0, t1]). Deste modo, S1  S3 porque existe uma sequˆencia de disparos (σ = [t1]) que leva de S1 a S3.

Com S2 (σ2 = [t0]), as rela¸c˜oes S1  S2 e S2  S1 tamb´em s˜ao verdadeiras j´a que σ1 = σ2.

(27)

2.4 Classes de Estados 15

2.4.1

Dom´ınio Relativo

Uma das limita¸c˜oes do uso das classes de estados com tempo absoluto ´e que o uso dos intervalos de sensibiliza¸c˜ao para definir a possibilidade de disparo em uma classe de estados (disparabilidade) das transi¸c˜oes habilitadas, pode levar a inclus˜ao de transi¸c˜oes n˜ao-dispar´aveis entre as dispar´aveis.

p0 t0 [1, 2] p1 p2 t1 [0, 2] t2 [3, 4] p4 t3 [3, 4] p3

Figura 7: RPT para exemplo do dom´ınio relativo.

Exemplo 3. Na Figura 7 ´e mostrada uma rede de Petri temporal com a seguinte classe de estados inicial: S0 =                  M0 = [1, 0, 0, 1, 0] I(t0) = [1, 2] I(t3) = [3, 4] GC = [0, 0]

Apesar de t0 e t3 estarem habilitadas, apenas t0 ´e pass´ıvel de disparo em S0 devido ao

fato que t3 nunca poder´a disparar antes de t0 j´a que δ(t3) > ∆(t0).

Ap´os o disparo de t0, tem-se a classe de estados S1:

S1 =                        M1 = [0, 1, 1, 1, 0] I(t1) = [1, 4] I(t2) = [4, 6] I(t3) = [3, 4] GC = [1, 2]

Numa observa¸c˜ao dos intervalos de sensibiliza¸c˜ao, pode-se chegar a falsa conclus˜ao de que t2 ´e dispar´avel j´a que δ(t2) ≤ ∆(t1). Por´em, como t2 foi habilitada simultaneamente

(28)

a t1, pelos seus intervalos est´aticos ´e poss´ıvel notar que t2 nunca poder´a disparar antes de t1 s(t2) > ∆s(t1)).

Ao disparar t3, tem-se a classe S2:

S2 =                  M2 = [0, 1, 1, 0, 1] I(t1) = [3, 4] I(t2) = [4, 6] GC = [3, 4]

Em S2, t2, apesar de persistente, continua n˜ao pass´ıvel de disparo j´a que foi habilitada

na mesma classe que t1 e δs(t2) > ∆s(t1).

Defini¸c˜ao 23. (Classe de habilita¸c˜ao) - ψ(t) ´e uma fun¸c˜ao que associa uma transi¸c˜ao t habilitada em uma classe S (t ∈ H) `a uma classe de estados Sk onde t ´e originalmente

habilitada.

Defini¸c˜ao 24. (Precedˆencia por habilita¸c˜ao) - Sejam duas transi¸c˜oes ti e tj ∈ H, se ψ(ti)  ψ(tj), ent˜ao ´e dito que ti precede tj por habilita¸c˜ao.

A defini¸c˜ao de precedˆencia por habilita¸c˜ao (Defini¸c˜ao 24) torna poss´ıvel formalizar n˜ao s´o a n˜ao disparabilidade de t2 nas classes S1 e S2 no exemplo anterior, mas estabelecer uma regra geral para verifica¸c˜ao da disparabilidade de transi¸c˜oes.

Defini¸c˜ao 25. (Transi¸c˜oes dispar´aveis) - Seja D o conjunto de transi¸c˜oes dispar´aveis e a transi¸c˜ao tj habilitada em uma determinada classe de estados. tj ∈ D se, e somente se:

   δs(t j) ≤ ∆s(t), se ψ(t)  ψ(tj), ∀t ∈ H, e δ(tj) ≤ ∆(t), ∀t ∈ H.

Ap´os a defini¸c˜ao de transi¸c˜oes dispar´aveis, ´e poss´ıvel definir o intervalo que uma transi¸c˜ao pode disparar dentro de uma classe de estados.

Defini¸c˜ao 26. (C´alculo do intervalo de disparo) - Seja tj ∈ D em uma classe de estados

S. O intervalo de disparo id(t

j) ´e dado por:

id(t

j) = [δ(tj), min{∆(tj), min{∆(D)}}],

(29)

2.5 Transi¸c˜oes ajust´aveis 17

Na Figura 8 ´e mostrado o grafo de classes de estados com os tempos globais dinˆamicos das transi¸c˜oes habilitadas representados nos n´os e o intervalo de disparo da transi¸c˜ao disparada representados nos arcos.

t0 = [1, 2] t3 = [3, 4] t1 = [1, 4] t2 = [4, 6] t3 = [3, 4] t1 = [3, 4] t2 = [4, 6] t2 = [4, 6] t1 → [3, 4] t2 = [4, 6] t3 = [3, 4] t2 = [4, 6] t3 = [4, 4] t2 → [4, 4] t3 → [3, 4] t1 → [1, 4] t3 → [3, 4] t0 → [1, 2]

Figura 8: Grafo de classe de estados.

2.5

Transi¸

oes ajust´

aveis

O intervalo associado a uma transi¸c˜ao de uma rede de Petri temporal corresponde `a incerteza com rela¸c˜ao ao instante de disparo da transi¸c˜ao. A natureza desta incerteza ´e dada pelo dom´ınio do sistema modelado. Por exemplo, em uma rede de computadores esta incerteza pode corresponder a um atraso devido ao tr´afego na rede ou no tempo de processamento de alguma m´aquina. Em sistemas de manufatura esta incerteza pode estar associada tanto ao desgaste de uma determinada m´aquina quanto `a potˆencia estabelecida pelo operador do sistema como, por exemplo, uma esteira, um carro ou uma esta¸c˜ao de usinagem.

Como proposto na teoria das RPT s, toda incerteza tem um limite inferior e um limite superior. Assim, pode-se associar o limite superior ao disparo mais lento e o limite inferior ao disparo mais r´apido de um evento. Uma das propostas apresentadas neste trabalho trata da possibilidade de que algumas (ou todas) as transi¸c˜oes de uma RPT possam ter seu limite superior de sensibiliza¸c˜ao reduzido de acordo com a dinˆamica de execu¸c˜ao da rede.

(30)

Defini¸c˜ao 27. (Transi¸c˜oes ajust´aveis)

-• N ´e uma RPT.

• TA ´e um conjunto finito de transi¸c˜oes ajust´aveis. TA ⊆ T .

• Aj ´e uma fun¸c˜ao de ajuste de uma classe de estados de N que associa um valor em Q `a uma transi¸c˜ao em Ta.

A fun¸c˜ao de ajuste Aj(S, t), onde S ´e uma classe de estados e t ∈ D (e t ∈ TA), retorna um valor em Q. Este valor corresponde ao ajuste em t na classe S e deve atender a algumas restri¸c˜oes inerentes `a natureza pr´opria das classes de estados, como mostrado na Defini¸c˜ao 28.

Defini¸c˜ao 28. (Ajuste m´aximo de uma transi¸c˜ao em uma classe de estados) - O maior valor de ajuste que o limite superior de sensbiliza¸c˜ao de uma transi¸c˜ao t pode receber em uma classe de estados S ´e dada pela fun¸c˜ao Ajmax, como abaixo:

Ajmax(S, t) = min{∆s(t) − δs(t), ∆(t) − max{δ(t), ∆(GC)}}

Defini¸c˜ao 29. (C´alculo do intervalo dinˆamico de um transi¸c˜ao ajustada) - O intervalo dinˆamico de uma transi¸c˜ao t ∈ D (e t ∈ TA) em uma classe S ´e dado por:

I(t) =    [δ(GC) + δs(t), ∆(GC) + ∆s(t) − Aj(S, t)] se t ∈ N [max{δ(GC), δ(t)}, ∆(t) − Aj(S, t)] se t ∈ P

Defini¸c˜ao 30. (Semˆantica de ajuste em uma classe de estados) - Seja Aj(Sk−1, t) o ajuste

na transi¸c˜ao t na classe de estados Sk−1 e td a transi¸c˜ao que disparada em Sk−1 resulta

na classe Sk. Se t 6= td, ent˜ao Aj(Sk, t) = Aj(Sk−1, t).

A Defini¸c˜ao 28 impede que o ajuste seja maior que os tamanhos dos intervalos est´atico e dinˆamico da transi¸c˜ao. Tamb´em impede que o intervalo dinˆamico e, por conseguinte, o intervalo de disparo da transi¸c˜ao ajustada tenham seus limites superiores menores que o rel´ogio global da classe. J´a na Defini¸c˜ao 30 ´e disposto de maneira formal que se uma transi¸c˜ao ´e ajustada em uma determinada classe de estados este ajuste persiste at´e que a mesma dispare.

Exemplo 4. Na Figura 9 ´e mostrada uma rede com trˆes lugares marcados e trˆes transi¸c˜oes. A transi¸c˜ao t0 ´e ajust´avel (´e representada por um retˆangulo vazado). A classe de estados

(31)

2.5 Transi¸c˜oes ajust´aveis 19 p0 p1 p2 t0 [0,4] t1 [1,2] t2 [2,4]

Figura 9: Exemplo de rede de Petri temporal com transi¸c˜oes ajust´aveis.

S0 =                                            M0 = [1, 1, 1] I(t0) = [0, 4] I(t1) = [1, 2] I(t2) = [2, 4] id(t 0) = [0, 2] id(t 1) = [1, 2] id(t 2) = [2, 2] GC = [0, 0]

Todas as transi¸c˜oes s˜ao dispar´aveis, todavia se Aj(S, t0) = 3, ent˜ao tem-se a classe S0−A abaixo. S0−A=                                      M0 = [1, 1, 1] I(t0) = [0, 1] I(t1) = [1, 2] I(t2) = [2, 4] id(t 0) = [0, 1] id(t 1) = [1, 1] GC = [0, 0]

Como o intervalo dinˆamico de t0 agora ´e [0,1] (ver Defini¸c˜ao 29) a transi¸c˜ao t2 sai

(32)

o menor tempo m´aximo dinˆamico das outras transi¸c˜oes (ver Defini¸c˜ao 25). Os intervalos de disparo de t0 e t1 tamb´em s˜ao atualizados de acordo com o novo intervalo de dinˆamico

de t0.

Caso t1 dispare no intervalo [1,1], tem-se a classe de estados S1−A como abaixo.

S1−A=                        M0 = [1, 0, 1] I(t0) = [1, 1] I(t2) = [2, 4] id(t 0) = [1, 1] GC = [1, 1]

Conforme a Defini¸c˜ao 30 o ajuste em t0 na classe precedente persiste em S1−A j´a que

n˜ao foi esta a transi¸c˜ao disparada de S0−Apara S1−A. A transi¸c˜ao t2, apesar de habilitada,

ainda ´e n˜ao dispar´avel na classe.

2.6

Contribui¸

oes Apresentadas

Al´em de uma breve revis˜ao de ´algebra intervalar, das redes de Petri e das redes de Petri temporais, as primeiras contribui¸c˜oes deste trabalho foram apresentadas neste cap´ıtulo.

A contribui¸c˜ao mais destacada aqui ´e a introdu¸c˜ao das transi¸c˜oes ajust´aveis `as RPT s. Modificar o limite superior de sensibiliza¸c˜ao das transi¸c˜oes cria a possibilidade de antecipar a conclus˜ao de tarefas e, por consequˆencia, limitar o tempo m´aximo que um determinado evento pode levar para ocorrer.

Outra contribui¸c˜ao significativa foi atualizar o formalismo das classes de estados, segundo o proposto em (LIMA, 2007), de acordo com o uso das transi¸c˜oes ajust´aveis. O

(33)

3

Controle de RPT com

Restri¸

oes Temporais

Para realiza¸c˜ao da proposta desse trabalho ´e necess´ario definir formalmente o que ´e uma restri¸c˜ao de tempo limite e desenvolver um algoritmo para calcular o quanto (e quando) as transi¸c˜oes de uma RPT com intervalos ajust´aveis dever˜ao ter seus intervalos est´aticos modificados. Assim, neste cap´ıtulo, s˜ao definidas as restri¸c˜oes temporais a serem tratadas pelo algoritmo (Se¸c˜ao 3.1) e, por fim, na Se¸c˜ao 3.2 ´e mostrado o algoritmo proposto.

3.1

Restri¸

oes de Tempo Limite

O controle aplicado aos sistemas com tempo baseia-se em sintetizar um controlador que, a partir da controlabilidade total ou parcial do sistema, busca evitar que este atinja um estado proibido ou for¸car o sistema a chegar em um estado desejado (BRANDIN; WONHAM, 1993).

Nesta classe de sistemas, o tempo, assim como os recursos, ´e componente do estado do sistema. Deste modo, o uso do escalonamento de eventos surge como uma alternativa v´alida tanto na an´alise quanto na s´ıntese de controle.

O problema de escalonamento em sistemas com tempo pode ser: encontrar uma (ou mais) sequˆencia(s) de ocorrˆencia de eventos que maximize ou minimize o tempo total do ciclo de opera¸c˜ao do sistema (SHEN; WANG; HAO, 2006; BONHOMME, 2013).

Outra abordagem, presente em (WANG et al., 2011), ´e garantir que um determinado evento ocorra em at´e cada λ unidades de tempo. Aqui neste trabalho, o problema tratado ser´a uma especializa¸c˜ao deste, onde λ ´e contado apenas desde o in´ıcio da opera¸c˜ao do sistema e n˜ao a cada ocorrˆencia do evento.

(34)

Defini¸c˜ao 31. (Restri¸c˜ao de tempo global m´aximo de disparo) - A restri¸c˜ao λ(t) ∈ Q+

´e um valor m´aximo desejado de ∆d(t) em qualquer classe de estados de uma RPT.

A partir da Defini¸c˜ao 31 ´e poss´ıvel definir as classes de estados de uma RPT que violam uma restri¸c˜ao.

Defini¸c˜ao 32. (Classes de estados que violam uma restri¸c˜ao) - Seja S uma classe de estados, S viola uma restri¸c˜ao) se, e somente se, ∃t ∈ D|∆d(t) > λ(t). Onde λ(t) ´e uma

restri¸c˜ao temporal em t.

O tamanho da viola¸c˜ao de uma classe de estados em rela¸c˜ao a uma restri¸c˜ao ser´a dado pela fun¸c˜ao V (S, λ(t)), onde S ´e uma classe de estados e λ(t) ´e uma restri¸c˜ao sobre a transi¸c˜ao t.

Exemplo 5. Seja o grafo de classe de estados mostrado na Figura 10 e λ(t2) = 70. Pela

observa¸c˜ao do grafo ´e poss´ıvel perceber que as classes de estados resultantes das sequˆencias de disparo t0− t1− t3 e t1− t0− t3 violam a restri¸c˜ao de 70 unidades de tempo em t2.

t0= [20, 30] t1= [15, 40] t0= [20, 30] t4= [75, 90] t2= [25, 75] t3= [50, 60] t4= [75, 90] t2= [25, 75] t4= [75, 90] t4= [75, 90] t2→ [25, 75] t3= [50, 60] t4= [75, 90] t4= [75, 90] t3→ [50, 60] t2→ [25, 60] t3→ [50, 60] t0→ [20, 30] t1= [20, 40] t2= [25, 75] t3= [50, 60] t1= [25, 40] t3= [50, 60] t3= [50, 60] t4= [85, 100] t4= [85, 100] t3→ [50, 60] t1→ [25, 40] t2= [25, 75] t3= [50, 60] t4= [80, 100] t2= [50, 75] t4= [80, 100] t4= [80, 100] t2→ [50, 75] t3= [50, 60] t4= [80, 100] t4= [80, 100] t3→ [50, 60] t2→ [25, 60] t3→ [50, 60] t1→ [20, 40] t2→ [25, 40] t0→ [20, 30] t1→ [15, 30]

Figura 10: Grafo de classe de estados do Exemplo 5.

As classes de estados ’t0−’, ’t0− t1’ e ’t1− t0’ (daqui em diante as classes de estados ser˜ao referenciadas pela sequˆencia de disparos da qual resultam, exceto a classe inicial S0) n˜ao violam a restri¸c˜ao pois mesmo que ∆(t2) > λ(t2), ∆d(t2) ≤ λ(t2).

(35)

3.1 Restri¸c˜oes de Tempo Limite 23

3.1.1

Algoritmo de Busca de Classes de Estados que Violam

uma Restri¸

ao

A estrat´egia da proposta aqui apresentada se baseia em encontrar primeiramente as classes de estados que violam a restri¸c˜ao. Esta abordagem ´e mais pr´oxima da utilizada em (WANG et al., 2011) em contraste a outras como (BONHOMME, 2013), por exemplo,

onde o foco ´e encontrar a sequˆencia de disparos que atenda a restri¸c˜ao.

No Algoritmo 1 ´e descrita a fun¸c˜ao de busca de classes de estados onde ao menos uma das transi¸c˜oes dispar´aveis viola uma restri¸c˜ao temporal imposta.

1 Fun¸c˜aorecuperar classes que violam restri¸c˜ao(transi¸c˜ao, restri¸c˜ao, classe) 2 se transi¸c˜ao ´e dispar´avel em classe ent˜ao

3 se ∆d(transi¸c˜ao) > restri¸c˜ao ent˜ao

4 retorna classe;

5 classes que violam restri¸c˜ao := [ ]; 6 para cada classe filha de classe fa¸ca 7 classes que violam restri¸c˜ao +=

recuperar classes que violam restri¸c˜ao(transi¸c˜ao, restri¸c˜ao, classe filha); 8 retorna classes que violam restri¸c˜ao

Algoritmo 1: Fun¸c˜ao recuperar classes que violam restri¸c˜ao.

A fun¸c˜ao descrita realiza a busca de maneira recursiva. A busca no espa¸co de estados se justifica por apresentar uma estrat´egia autom´atica para verifica¸c˜ao de sistemas com estados finitos (GODEFROID, 1996;FREITAS; BARRETO; MACIEL, 2013).

A fun¸c˜ao recebe o ´ındice (ou r´otulo) da transi¸c˜ao alvo da restri¸c˜ao, o valor da restri¸c˜ao (λ) e a classe de estados para busca (durante o trabalho a classe de estados tamb´em poder´a ser chamada de n´o quando no contexto de grafo). Se a transi¸c˜ao passada como parˆametro for dispar´avel na classe de estados (transi¸c˜ao ∈ D) e ∆d(transi¸c˜ao) > λ(transi¸c˜ao) ent˜ao a fun¸c˜ao retorna a classe. Caso contr´ario, para cada classe filha desta, a fun¸c˜ao ´e chamada novamente por´em passando a classe filha como parˆametro no lugar da classe original. Ao fim, s˜ao retornadas as classes que violam a restri¸c˜ao. ´E importante notar que a busca em cada sequˆencia de disparos n˜ao vai al´em da classe de estados que viola a restri¸c˜ao porque a viola¸c˜ao ser´a, em boa parte dos casos, herdada por alguma das classes filhas, ent˜ao se o controlador impedir que a classe m˜ae viole a restri¸c˜ao, impedir´a automaticamente que as classes filhas tamb´em a violem, retirando a necessidade de continuar a busca nesta sub-´arvore.

Exemplo 6. Tenha-se novamente o grafo de classes de estados da Figura 10, a fun¸c˜ao “recuperar classes que violam restri¸c˜ao” descrita no Algoritmo 1.

(36)

Inicialmente s˜ao passados como parˆametros t2 (transi¸c˜ao), 70 (restri¸c˜ao) e a classe S0. Como t2 n˜ao ´e dispar´avel em S0, ent˜ao a busca prossegue nas classes filhas. Apesar de t2 ser dispar´avel em ’t0−’, o valor de ∆d(t2) ´e menor que a restri¸c˜ao, assim, o algoritmo

prossegue. A mesma coisa acontece em ’t0 − t1’, por´em em ’t0 − t1 − t3’ a condi¸c˜ao ´e

satisfeita e a fun¸c˜ao retorna recursivamente este n´o. A mesma coisa acontece com o restante da ´arvore, onde t2 ´e dispar´avel em ’t1 − t0’ e ’t1 − t0 − t3’, por´em apenas o

´

ultimo ´e retornado. Ao fim, a fun¸c˜ao, partindo de S0 retornar´a as classes ’t0− t1− t3’ e

’t1− t0− t3’.

3.2

Algoritmo de C´

alculo de Ajuste

A partir do problema de tempo global de disparo m´aximo de uma transi¸c˜ao (Defini¸c˜ao 31), nesta Se¸c˜ao ´e apresentado um algoritmo para calcular os ajustes necess´arios em uma RPT com transi¸c˜oes ajust´aveis para que esta atenda a uma ou mais restri¸c˜oes de tempo limite.

O algoritmo em quest˜ao funciona de maneira iterativa, explorando o grafo de classes de estados a cada itera¸c˜ao, recalculando o mesmo segundo os ajustes encontrados.

t0= [10, 20] t1= [15, 25] t0 = [15, 20] t3 = [30, 40] t2 = [25, 30] t3 = [30, 40] t2= [30, 30] t3= [30, 40] t2 → [25, 30] t3→ [30, 30] t0→ [15, 20] t1 = [15, 25] t2 = [20, 30] t1 = [20, 25] t3 = [35, 45] t1→ [20, 25] t2= [20, 30] t3= [30, 45] t3= [30, 45] t2 → [20, 30] t1→ [15, 25] t2→ [20, 25] t0→ [10, 20] t1→ [15, 20]

Figura 11: Grafo de classe de estados do Exemplo 7.

Exemplo 7. Dado o grafo de classes de estados ajust´aveis na Figura 11, com t0 ajust´avel, t0  t2 e λ(t2) = 25. Os n´os ’t0 − t1’ e ’t1 − t0’ representam as classes de estados que

violam a restri¸c˜ao. Em ambas as classes a viola¸c˜ao ´e igual a 5 unidades de tempo. Como t0 ´e a ´unica transi¸c˜ao precedente ajust´avel de t2, ent˜ao o algoritmo dever´a,

(37)

ob-3.2 Algoritmo de C´alculo de Ajuste 25

servando o formalismo das classes de estados ajust´aveis (Se¸c˜ao 2.5), calcular em qual(is) n´o(s) e em quanto t0 ser´a ajustada.

Neste exemplo, o ajuste ser´a de 5 unidades de tempo em S0, como mostrado na Figura

12. t0 = [10, 15] t1 = [15, 25] t0 = [15, 15] t3 = [30, 40] t2 = [25, 25] t3 = [30, 40] t3 = [30, 40] t2 → [25, 25] t0 → [15, 15] t1 = [15, 25] t2 = [20, 25] t1 = [20, 25] t3 = [35, 45] t1 → [20, 25] t2 = [20, 25] t3 = [30, 45] t3 = [30, 45] t2 → [20, 25] t1 → [15, 25] t2 → [20, 25] t0 → [10, 15] t1 → [15, 15]

Figura 12: Grafo de classe de estados do Exemplo 7 recalculado.

Um ponto em especial a ser notado ´e que o n´o ’t1−’ n˜ao pode ser candidato ao ajuste j´a que ∆(t0) − ∆(GC) < V (t1− t0, λ(t2)).

Nas pr´oximas subse¸c˜oes ser˜ao descritas algumas fun¸c˜oes e defini¸c˜oes necess´arias para o melhor entendimento do algoritmo proposto e na subse¸c˜ao 3.2.4 ser´a mostrado definitiva-mente o algoritmo juntadefinitiva-mente com alguns exemplos para demonstrar seu funcionamento.

3.2.1

Classes de Estados Ajust´

aveis Precedentes

Um dos conceitos necess´arios ao algoritmo proposto neste trabalho (Se¸c˜ao 3.2.4) ´e o de classes de estados ajust´aveis precedentes. Por´em, antes de defini-las, ´e necess´ario descrever o conceito de transi¸c˜oes ajust´aveis precedentes. Este ´ultimo deriva dos conjuntos de transi¸c˜oes propostos em (LIMA, 2007) e atualizados em (BOLZANNI; LIMA, 2014), por´em

mais simples.

Defini¸c˜ao 33. (Conjunto de transi¸c˜oes ajust´aveis precedentes) - Seja t uma transi¸c˜ao, S uma classe de estados onde t ∈ D e σ uma sequˆencia de disparos que leva de S0 `a S (se

(38)

S = S0, σ ´e vazia). O conjunto de transi¸c˜oes ajust´aveis precedentes de t em S ´e definido

por:

Tap(t, S) = {∀ta∈ Ta|ta  · · ·  t e ta∈ σ ∪ {t}}

Esta defini¸c˜ao ´e reflexiva, ou seja, se t ∈ Ta, ent˜ao t ∈ Tap(t, S).

Informalmente, o conjunto de transi¸c˜oes ajust´aveis precedentes ´e composto por todas as transi¸c˜oes com intervalo ajust´avel que comp˜oem um caminho direto `a t incluindo t, se t ∈ Ta.

Outro conceito que ser´a bastante importante ´e o conjunto de transi¸c˜oes ajust´aveis sucessoras imediatas.

Defini¸c˜ao 34. (Conjunto de transi¸c˜oes ajust´aveis sucessoras imediatas) - Seja t uma transi¸c˜ao e Si uma classe de estados onde t ∈ D. Sj ´e uma classe de estados atingida a

partir de Si pela sequˆencia de disparos σ. O conjunto de transi¸c˜oes ajust´aveis sucessoras

imediatas de t em S ´e definido por:

Tasi(t, Si) = {∀ta∈ Ta|t  Tp(t, ta) ∩ σ  ta, Tp(t, ta) ∩ Ta= ∅, ta ∈ DSj},

onde Tp(t, ta) ´e o conjunto de todas as transi¸c˜oes que est˜ao em alguma sequˆencia de

disparos ap´os o disparo de t e antes do disparo de ta.

De maneira resumida, o conjunto Tasi(t, Si) ´e o conjunto das transi¸c˜oes ajust´aveis que estruturalmente entre elas e t n˜ao h´a uma transi¸c˜ao com intervalo ajust´avel.

p0 t0 [0,1] p1 p2 t1 [1,2] t2 [2,4] p3 p4 p5 t3 [0,4] t4 [1,1] t5 [0,2] Figura 13: RPT do Exemplo 8

(39)

3.2 Algoritmo de C´alculo de Ajuste 27

Exemplo 8. Na Figura 13 ´e mostrada uma RPT com transi¸c˜oes ajust´aveis (t0, t1 e t5).

Seja S uma classe de estados atingida pela sequˆencia de disparos t0− t1− t2, onde t5 ∈ D.

Pela Defini¸c˜ao 33, Tap(t5) = {t0, t5}. J´a Tasi(t0, S0) = {t1, t5}.

Apesar de t1 ter intervalo ajust´avel e fazer parte da sequˆencia de disparo `a S, n˜ao faz parte de um caminho direto `a t5. Al´em disso, t5 ´e uma transi¸c˜ao ajust´avel sucessora imediata de t0 na classe S0 j´a que a transi¸c˜ao que h´a entre t0 e t5 (t2) n˜ao ´e ajust´avel.

A partir dos conjuntos de transi¸c˜oes ajust´aveis precedentes, s˜ao descritas as fun¸c˜oes “recuperar n´o dispar´avel precedente” (Algoritmo 2) e “recuperar n´os precedentes” (Al-goritmo 3).

A fun¸c˜ao “recuperar n´o dispar´avel precedente” recebe como parˆametros um n´o de um grafo de classes de estados e um conjunto de transi¸c˜oes ajust´aveis precedentes. Ela percorre a ´arvore recursivamente em dire¸c˜ao `a ra´ız da mesma, retornando uma tupla (transi¸c˜ao, n´o) quando encontra um n´o em que uma transi¸c˜ao pertencente ao conjunto passado como parˆametro ´e dispar´avel.

1 Fun¸c˜aorecuperar n´o dispar´avel precedente(n´o, transi¸c˜oes) 2 para cada transi¸c˜ao em transi¸c˜oes fa¸ca

3 se transi¸c˜ao ∈ D ent˜ao

4 retorna (transi¸c˜ao, n´o);

5 retorna recuperar n´o dispar´avel precedente(n´o→pai, transi¸c˜oes) Algoritmo 2: Fun¸c˜ao “recuperar n´o dispar´avel precedente”.

Exemplo 9. Na Figura 14 ´e mostrado um grafo de classes de estados onde em cada n´o s˜ao dispostas as transi¸c˜oes dispar´aveis nas respectivas classes de estados. Sejam o n´o ’t0−t1−t3’ e um conjunto formado pelas transi¸c˜oes t0 e t1 passados como parˆametros para

a fun¸c˜ao “recuperar n´o dispar´avel precedente”, esta percorrer´a o grafo recursivamente em dire¸c˜ao `a raiz e ao encontrar o n´o ’t0−’, retornar´a a tupla (t1, ’t0−’) porque t1´e dispar´avel

nesta classe de estados.

A fun¸c˜ao “recuperar n´os precedentes” recebe como parˆametros um n´o de um grafo de classes de estados e um conjunto de transi¸c˜oes ajust´aveis precedentes. Seu objetivo ´e retornar um conjunto de tuplas h transi¸c˜ao, n´os i com todos os n´os onde cada transi¸c˜ao do conjunto ´e dispar´avel. Esta busca ´e feita no grafo a partir do n´o passado como parˆametro em dire¸c˜ao `a ra´ız. Como mostrado na linha 7 no Algoritmo 3, a fun¸c˜ao coloca na vari´avel de retorno (“n´os”) todas as tuplas com n´os em que uma dada transi¸c˜ao seja dispar´avel at´e que encontre um n´o em que outra transi¸c˜ao do conjunto passado como parˆametro

(40)

D = {t0, t1} ... D = {t1, t2} ... D = {t2, t3} D = {t2} D = {t4} t2 ... t2 t3 t1 t2 t0 t1

Figura 14: Grafo de classes de estados do Exemplo 10.

seja disparada. As itera¸c˜oes continuam at´e que ou a ra´ız seja atingida ou n˜ao haja mais transi¸c˜oes no conjunto a serem verificadas.

1 Fun¸c˜aorecuperar n´os precedentes(n´o inicial, transi¸c˜oes) 2 n´o := n´o inicial;

3 n´os := [ ];

4 repita

5 (transi¸c˜ao, n´o) := recuperar n´o dispar´avel precedente(n´o, transi¸c˜oes); 6 retirar transi¸c˜ao de transi¸c˜oes;

7 adicionar a n´os (transi¸c˜ao, [n´o, todos os n´os entre n´o e outro n´o onde ´e disparada outro elemento de transi¸c˜oes]);

8 at´e transi¸c˜oes ser vazio; 9 retorna n´os;

Algoritmo 3: Fun¸c˜ao “recuperar n´os precedentes”.

Exemplo 10. Dado o grafo da Figura 14, sejam o n´o ’t0 − t1 − t3 − t2’ e o conjunto

formado por t1 e t2 os parˆametros da fun¸c˜ao “recuperar n´os precedentes”.

Partindo do n´o ’t0−t1−t3−t2’, a fun¸c˜ao adicionar´a `a lista de retorno (t2, [’t0−t1−t3’,

’t0−t1’]) j´a que t2´e dispar´avel em ambas classes de estados. Entretanto, n˜ao ´e adicionada

a classe ’t0−’ porque mesmo que t2 seja dispar´avel nela, ´e nesta classe em que t1 dispara.

Assim, t2 ´e retirada do conjunto, uma nova itera¸c˜ao ´e iniciada, a tupla (t1, [’t0−’, S0])

s˜ao adicionadas `a “n´os” e t1 ´e retirada do conjunto, tornando este vazio e a condi¸c˜ao

(41)

3.2 Algoritmo de C´alculo de Ajuste 29

3.2.2

alculo do Ajuste

O c´alculo do ajuste para uma transi¸c˜ao ´e feito por “calcular ajuste para transi¸c˜ao” (Algoritmo 4), que recebe uma lista de n´os ordenados do menos precedente ao mais precedente (do mais pr´oximo da folha ao mais pr´oximo da raiz), uma transi¸c˜ao e um valor de ajuste requerido ∈ Q+

. A fun¸c˜ao itera sobre a lista de n´os e retorna uma tupla (n´o, ajuste no intervalo est´atico da transi¸c˜ao, ajuste no intervalo de disparo da classe), que corresponde ao maior ajuste no intervalo de disparo poss´ıvel e que seja menor ou igual ao ajuste passado como parˆametro. Caso duas classes possam ter o intervalo de disparo ajustado em igual valor, ´e dada preferˆencia `a classe menos precedente. Isto tem como objetivo, como ficar´a mais claro nas pr´oximas se¸c˜oes, realizar os ajustes o mais pr´oximo poss´ıvel dos n´os que violam as restri¸c˜oes, modificando o m´ınimo poss´ıvel o grafo de classes de estados. Se um n´o que foi alvo original de um ajuste, ou seja, nunca foi passado como parˆametro da fun¸c˜ao “ajustar n´o” (ver Se¸c˜ao 3.2.3), estiver para ser verificado pela fun¸c˜ao, esta interrompe a itera¸c˜ao imediatamente e retorna o melhor ajuste calculado at´e ent˜ao. Este retorno prematuro da fun¸c˜ao tornar-se-´a mais claro nas Se¸c˜oes 3.2.3 e 3.2.4.

1 Fun¸c˜aocalcular ajuste para transi¸c˜ao(n´os, transi¸c˜ao, ajuste necess´ario) 2 ajuste := Nulo;

3 para cada n´o em n´os fa¸ca

4 se n´o foi alvo original de ajuste ent˜ao

5 retorna ajuste;

6 ajuste no intervalo disparo := ∆d(transi¸c˜ao)−(∆(transi¸c˜ao)−Ajmax(n´o, transi¸c˜ao));

7 se ajuste no intervalo disparo > ajuste necess´ario ent˜ao

8 retorna (n´o, ∆(transi¸c˜ao) − (∆d(transi¸c˜ao)− ajuste requerido,

ajuste necess´ario));

9 se ajuste no intervalo disparo > ajuste ent˜ao

10 ajuste := ((n´o, Ajmax(n´o, transi¸c˜ao), ajuste no intervalo disparo)); 11 retorna ajuste;

Algoritmo 4: Fun¸c˜ao “calcular ajuste para transi¸c˜ao”.

Exemplo 11. Tendo como base o grafo de classes de estados da Figura 15 e aplicando a fun¸c˜ao “calcular ajuste para transi¸c˜ao” com os n´os ’t0 − t2’ e ’t0−’ como parˆametro,

al´em da transi¸c˜ao t1 e o ajuste requerido igual a 50, o algoritmo ´e executado da seguinte

maneira:

Na primeira itera¸c˜ao o n´o ’t0− t2’ ´e escolhido e como Ajmax(′t0− t ′

2, t1) < 50, a tupla

(’t0 − t2, Ajmax(′t0 − t′2, t1), 10) ´e colocada como melhor ajuste at´e ent˜ao. Na itera¸c˜ao

posterior ´e escolhido o n´o ’t0−’. Assim como no n´o anterior, Ajmax(′t0−′, t1) < 50 e,

(42)

t0 = [5, 20] t1 = [10, 60] t2 = [35, 50] t1 = [10, 60] t3 = [35, 80] t1 → [35, 60] ... t1 → [10, 50] t2 → [35, 50] t0 → [5, 20]

Figura 15: Grafo de classes de estados do Exemplo 11.

contra 10), ´e escolhida a tupla (’t0−, Ajmax(′t0− ′

, t1), 40). Como n˜ao h´a mais itera¸c˜oes

poss´ıveis, ela ´e retornada pela fun¸c˜ao.

Caso o valor do ajuste requerido no Exemplo 11 fosse de 10 unidades o retorno da fun¸c˜ao aconteria logo na primeira itera¸c˜ao, j´a que o ajuste poss´ıvel no intervalo de disparo seria maior que 20, retornando a tupla (’t0− t2, 10, 10).

3.2.3

Ajuste em Um N´

o do Grafo de

Classes de Estados

Na Se¸c˜ao 3.2.2 foi definido de maneira informal o que caracteriza uma classe de estados como alvo original de um ajuste. Nesta se¸c˜ao, a partir da fun¸c˜ao “ajustar n´o” (Algoritmo 5) este conceito ser´a definido formalmente. Esta ´e respons´avel por estabelecer o ajuste em uma transi¸c˜ao, recalculando todos os elementos inerentes como o intervalo dinˆamico da transi¸c˜ao ajustada, os intervalos de disparo da classe e todas as classes que fazem parte da sub-´arvore com ra´ız na classe ajustada.

1 Fun¸c˜aoajustar n´o(n´o, transi¸c˜ao, ajuste) 2 ∆(transi¸c˜ao) := ∆(transi¸c˜ao) - ajuste; 3 guardar tupla (n´o, transi¸c˜ao, ajuste); 4 recalcular intervalos de disparo; 5 recalcular n´os filhos de n´o;

(43)

3.2 Algoritmo de C´alculo de Ajuste 31

Exemplo 12. Seja Sk uma classe de estados e Sk+1 e Sk+2 suas classes sucessoras pelo

disparo de t0 e t1 respectivamente. Sk=                        GC = [0, 0] I(t0) = [1, 15] I(t1) = [5, 10] id(t 0) = [1, 10] id(t 1) = [5, 10] Sk+1=                        GC = [1, 10] I(t1) = [5, 10] I(t2) = [6, 20] id(t 1) = [5, 10] id(t 2) = [6, 10] Sk+2 =                        GC = [5, 10] I(t0) = [5, 15] I(t3) = [10, 20] id(t 0) = [5, 15] id(t 3) = [10, 15]

Executando a fun¸c˜ao “ajustar n´o” passando como parˆametros Sk, t0 e o ajuste igual

a 10, ∆(t0) ´e reduzido em 10. A tupla (Sk, transi¸c˜ao, ajuste) ´e guardada (isto tornar´a

poss´ıvel `a fun¸c˜ao “calcular ajuste para transi¸c˜ao” (Algoritmo 4) verificar se uma classe for alvo original de ajuste). O valor dos intervalos de disparo de Sk s˜ao recalculados como

mostrado na classe SkA, onde i

d(t

1) ´e tamb´em modificado j´a que min{∆(t)} = 5, ∀t ∈ H.

SkA =                        GC = [0, 0] I(t0) = [1, 5] I(t1) = [5, 10] id(t 0) = [1, 5] id(t 1) = [5, 5]

(44)

As classes filhas tamb´em s˜ao recalculadas segundo o ajuste em t0 em SkA. SkA+1 =                        GC = [1, 5] I(t1) = [5, 10] I(t2) = [6, 15] id(t 1) = [5, 10] id(t 2) = [6, 10] SkA+2 =                  GC = [5, 5] I(t0) = [5, 5] I(t3) = [10, 15] id(t 0) = [10, 15]

Em SkA+1 a ´unica mudan¸ca efetiva em rela¸c˜ao `a Sk+1´e no rel´ogio global (GC). Por´em,

devido `a semˆantica das classes de estados ajust´aveis (Defini¸c˜ao 30), o ajuste em t0 ´e

herdado por SkA+2, fazendo com que o novo i

d(t

0) retire t3 do conjunto de transi¸c˜oes

dispar´aveis j´a que δ(t3) > ∆(t0).

No Exemplo 12 a classe Sk´e passada como parˆametro para fun¸c˜ao “ajustar n´o”, assim ela ´e o alvo original do ajuste a ser implementado. Deste modo, tem-se a Defini¸c˜ao 35.

Defini¸c˜ao 35. (Classe de estados alvo original do ajuste) - Seja υ uma tupla armazenada pela fun¸c˜ao “ajustar n´o” e Υ o conjunto de tuplas υ. A classe de estados S ´e alvo original de um ajuste se, e somente se, S ∈ υ, υ ∈ Υ.

3.2.4

alculo do Grafo Controlado

Nas subse¸c˜oes anteriores foram descritas algumas fun¸c˜oes que realizam etapas inter-medi´arias do c´alculo dos ajustes para que uma (ou mais) transi¸c˜ao(˜oes) satisfa¸cam uma (ou mais) restri¸c˜ao(˜oes) de tempo limite. Nesta subse¸c˜ao ´e mostrado o algoritmo de c´alculo, que ordena a execu¸c˜ao das fun¸c˜oes anteriores. Na Figura 16 ´e mostrado o flu-xograma simplificado do algoritmo e no Algoritmo 6 ´e descrito seu pseudoc´odigo (fun¸c˜ao “calcular grafo controlado”).

A fun¸c˜ao “calcular grafo controlado” tem como parˆametro uma lista de restri¸c˜oes em forma de tupla (transi¸c˜ao, tempo limite). Ela ´e executada de maneira iterativa at´e que

Referências

Documentos relacionados

Este trabalho busca reconhecer as fragilidades e potencialidades do uso de produtos de sensoriamento remoto derivados do Satélite de Recursos Terrestres Sino-Brasileiro

é bastante restrita, visto que tanto suas duas entradas, quanto as galerias e condutos que interligam os pequenos salões são bastante estreitos, e a umidade na maioria dos salões

Se dispuser de uma peça de mão X-Smart IQ ® , você pode operar o localizador apical Propex IQ ® no modo combinado para o monitoramento simultâneo da progressão da lima

[r]

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...

A partir deste resultado, a empresa então teve condições de analisar as causas do problema e partir para melhorias buscando sua solução, além de tomar a decisão

1- Indica com P, se a frase estiver na voz passiva e com A se estiver na ativa. Depois, passa-as para a outra forma. a) Vimos um cisne moribundo.. Assinala com um X o

1- Indica com P, se a frase estiver na voz passiva e com A se estiver na ativa. Depois, passa-as para a outra forma.. Assinala com um X o retângulo correspondente.. Derivada