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.