• No results found

Além da compactação do modelo obtida com o uso de uma RdPC, é possível tornar a representação desse modelo ainda mais “amigável” ao usuário por meio da técnica de hierarquização. A ideia é a mesma usada na evolução das linguagens de programação, quando se propõe o uso de rotinas para modularizar o código original. No caso da modela­ gem, é possível estender uma RdPC, ao adicionar-lhe a ideia de hierarquias, culminando, assim, nas RdPCH [23]. O que se faz é decompor o modelo global da RdPC em sub­ redes secundárias, denominadas de “páginas”. Portanto, uma rede principal estará em um nível hierárquico mais abstrato, caracterizando a estrutura mais geral, e esta poderá

se comunicar com as outras sub-redes situadas nas páginas (níveis hierárquicos menos abstratos).

A comunicação do nível mais abstrato do modelo com as páginas só é possível por meio de uma “transição abstrata” (ou transição de substituição) representada por bordas duplas. Quando uma transição abstrata é criada em uma rede principal, ela é automati­ camente clonada em uma sub-rede (página), formando um link entre elas.

Como funciona a evolução dinâmica entre uma rede principal e uma sub-rede? Consi­ derando o modelo da Figura 16(a), no qual a marcação inicial mostra uma ficha no lugar

p1 sem cor pré-definida, observa-se que há uma rede principal chamada Main e uma sub­

rede chamada Secundary. A transição abstrata link estabelece o elo entre elas. Nota-se que, na sub-rede Secundary, há um lugar com borda dupla (e) associado a um socket de entrada (In) e há outro lugar com borda dupla (s) associado a um socket de saída (Out). Conforme mostrado na Figura 16(b), quando uma ficha é produzida no lugar e da rede

Main, ela também é produzida no lugar e da sub-rede Secundary função da transição

abstrata link. Em seguida, com o disparo da transição link da sub-rede Secundary, é produzida uma ficha no lugar p3 (Figura 16(c)). Ao disparar a transição t3, a ficha que é produzida no lugar s da sub-rede Secundary, também é produzida no lugar s da rede

Main, refletindo o elo formado entre a rede principal e a sub-rede (Figura 16(d)). Por

fim, a transição t2 da rede Main é disparada e a ficha finalmente é produzida no lugar

p2 (Figura 16(e)). Vale destacar que, com a criação da transição abstrata link, os sockets In e Out foram inseridos na sub-rede Secundary para permitirem as fichas de entrarem

e saírem dessa sub-rede.

Além de a RdPCH permitir que uma rede principal se comunique com uma sub-rede, é possível uma sub-rede se comunicar com outra sub-rede (em qualquer nível hierárquico). Isso é similar à comunicação existente entre uma rotina e outra em uma linguagem de programação. No modelo, o recurso que permite tal efeito é chamado de “lugar de fusão”. O que se faz é associar uma fusão (link) de um lugar situado em uma sub-rede a outro lugar situado em outra sub-rede. A fusão faz com que ambos os lugares se comportem como clones um do outro, ou seja, se uma ficha é produzida em um dos lugares, imediatamente ela é produzida no outro lugar com a mesma fusão. O mesmo vale para a remoção dessa ficha em tais lugares.

A Figura 17 (a) mostra um exemplo no qual duas sub-redes (Secundaryl e Secundary2) comunicam-se por meio de lugares de fusão. Quando um ficha é produzida no lugar de fusão p3 (Fusionl) da sub-rede Secundaryl (Figura 17 (b)), uma cópia dela também é produzida no lugar de fusão p3 (Fusionl) da sub-rede Secundary2. Isso reflete o fato de que o fluxo da ficha passou da sub-rede Secundaryl para a sub-rede Secundary2. É importante observar que tal mudança fez com que a transição t3 da sub-rede Secundary2 se tornasse apta ao disparo (Figura 17 (c)). Quando a transição t3 for disparada, a ficha será produzida no lugar de fusão p4 (Fusion2) de ambas as sub-redes (Secundaryl e

2.6. Redes de Petri 57

(a)

(b) (c)

(d) (e)

Secundary2), indicando que o fluxo da ficha voltará para a sub-rede Secundaryl.

Figura 17 - Exemplo de Comunicação entre Duas Sub-Redes.

2.6.6 C PN Tools

Um ambiente de modelagem e simulação que tem contribuído muito com a “popu­ larização” do uso das RdPC e de suas extensões é o CPN Tools [24]. Esse ambiente é composto por um conjunto de ferramentas que permitem ações, tais como editar, simular, analisar espaços de estados e avaliar o desempenho dos modelos criados. A Figura 18 mos­ tra a versão 4.0.0 do CPN Tools onde o usuário pode trabalhar explorando um ambiente gráfico com diversos recursos. Além disso, é possível o uso combinado da programação funcional com o modelo a ser criado de forma bem intuitiva e prática. Outro diferencial dessa ferramente é que ela é distribuição na forma free.

Detalhando melhor a Figura 18, observa-se que o CPN Tools possui uma aba principal de edição que se apresenta de forma quadriculada permitindo a unificação dos elementos que irão compor o modelo de maneira mais organizada. Além disso, o ambiente disponi­ biliza as seguintes abas: Aux, Create, Declare, Hier, Net, View e Style que auxiliam na construção dos modelos; Sim que permite a execução passo a passo ou ininterrupta dos modelos criados; e Mon e SS que permitem o acompanhamento detalhado e análise dos estados obtidos com as simulações dos cenários. Em [41], mostrou-se através de exemplos práticos, as vantagens obtidas pelo usuário do CPN Tools no processo de modelagem e análise de desempenho dos modelos. Em especial, os autores citaram exemplos de como obter uma análise do espaço de estados obtido com a execução do modelo, bem como, os seus respectivos relatórios contendo dados estatísticos.

2.6. Redes de Petri 59

Figura 18 - Versao 4.0.0 do CPN Tools.