• Nenhum resultado encontrado

3.3 As Redes de Petri Coloridas (RPC)

3.3.5 Componentes de uma RPC

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

1. A estrutura da rede; 2. As declarac¸ ˜oes da rede;e 3. As inscric¸˜oes da rede.

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

transic¸˜oes, interconectados por arcos, 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 e i). O uso de conjuntos de cor em RPC ´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 cor U cont´em dois elementos (p e q) enquanto o conjunto Icont´em os inteiros. O conjunto de cor P ´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: nomes e 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 de RPC, isso implica que duas mar- cas num mesmo lugar podem ter cores idˆenticas. Por convenc¸˜ao, omitem-se express˜oes de inicializac¸˜ao que s˜ao multi-conjuntos vazios.

A guarda de uma transic¸˜ao ´e uma express˜ao booleana que deve ser satisfeita antes da transic¸˜ao ocorrer (disparar). A express˜ao de um arco pode conter vari´aveis, constan- tes, func¸˜oes e operac¸˜oes que s˜ao definidas nas declarac¸˜oes. Quando as vari´aveis de uma

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 RPC pode 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 forma f(x), onde a func¸˜ao f seria definida na parte declarac¸˜oes. Outra opc¸˜ao seria representar todos os recursos atrav´es de um ´unico lugar, RES por 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 B e C tˆem conjunto de cor (tipo) P, significando que estes lugares s´o podem conter marcas desta cor (U (processo p ou q), I (inteiro)). A inscric¸˜ao do lugar B, 2‘(p,0), indica que temos duas marcas de cor P, onde o ap´ostrofo (‘) nos diz que se trata de um multi-conjunto, ou seja, duas ocorrˆencias do mesmo elemento. Analoga- mente, o lugar S tem cor E, inicialmente com trˆes marcas de cor e, 3‘e. O par (x,i) ´e uma dupla de vari´aveis, x e i, onde x pode assumir qualquer elemento de cor U, e i, de cor I. As inscric¸˜oes de arco podem conter express˜oes case e/ou if. Do nosso exemplo, a express˜ao case x of p => 2‘e | q => 1‘e ´e equivalente a express˜ao if x = p then 2‘e else 1‘e, ou seja, caso se trate de um processo p, ser˜ao consumi- das duas marcas de cor e; caso o processo seja q, ser´a consumida apenas uma marca de cor e, obviamente.

A transic¸˜ao T2 tem duas vari´aveis (x e i) e antes de considerarmos uma ocorrˆencia dela, essas vari´aveis tˆem de ser unificadas a cores dos tipos correspondentes (i.e., elemen- tos dos conjuntos U e I, respectivamente). Isso pode ser feito de v´arias maneiras: uma possibilidade ´e unificar x a p e i a 0. Ent˜ao, teremos um elemento de unificac¸˜ao④⑤✙ , dado

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 unificar x a q e i a 40. 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) e 2‘e, respectivamente. Conclu´ımos, ent˜ao, que ④❥✙ habilita T2 - porque

cada um dos lugares de entrada cont´em marcas que T2 requer para sua habilitac¸˜ao (uma marca (p,0) em B e duas marcas e em S). 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 pode disparar e 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) de S e adiciona uma marca 1‘(p,0) em C. Como④❝✛ n˜ao habilita T2, 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

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 habilitados e 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

para B e uma marca (p,0) de B para C, e uma marca e ´e removida de R e trˆes marcas e de S. 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

RPC, usado neste trabalho, e ´e ela tamb´em que torna poss´ıvel desenvolver os m´etodos de

an´alise pelos quais podemos provar que uma dada RPC tem certas propriedades, como ausˆencia de deadlocks. Assim, daremos uma sucinta definic¸˜ao formal das RPC e em seguida explicaremos seus m´etodos de an´alise.

Documentos relacionados