Deseja-se modelar um sistema a eventos discretos que consistem em um processo sequencial único. Nesse sistema podem chegar e sair clientes. O estado do sistema deve ser a quantidade de clientes que estão esperando atendimento no sistema. O sistema comporta até 2 clientes, ou seja, o sistema possui três estados, sendo estado o valor do número de clientes (conjunto de estados X=\{0,1,2\} ). O conjunto de eventos é \Sigma=\{a, b\}. O evento “a” configura a chegada de um cliente e o evento " b " configura a saída de um cliente. O sistema inicia com nenhum cliente (estado " 0 ").
a) Faça um modelo RP que possui três posições (tipo máquina de estados);
b) Faça um modelo de RP que possui duas posições: uma para armazenar o valor da quantidade de clientes, uma para armazenar a capacidade do sistema.

Passo 1

O enunciado pede para modelar um sistema de atendimento com capacidade máxima de 2 clientes usando Rede de Petri (RP). Há dois eventos: chegada a e saída b, o conjunto de estados do número de clientes é \{0,1,2\} e o estado inicial é “0”. No item (a) faremos um modelo tipo máquina de estados com três lugares; no item (b) faremos um modelo que usa dois lugares: um para contar clientes e outro para controlar a capacidade.

Passo 2

Para o modelo (a) com três lugares representando cada estado de \{0,1,2\} definimos a RP
N_a = (P_a, T_a, Pre_a, Post_a)
com
P_a = \{p_0,\,p_1,\,p_2\}, \quad T_a = \{t_{a}^0,\,t_{a}^1,\,t_{b}^1,\,t_{b}^2\}.
Os arcos de entrada e saída são
Pre_a(p_0,t_{a}^0)=1,\quad Post_a(p_1,t_{a}^0)=1,
Pre_a(p_1,t_{a}^1)=1,\quad Post_a(p_2,t_{a}^1)=1,
Pre_a(p_1,t_{b}^1)=1,\quad Post_a(p_0,t_{b}^1)=1,
Pre_a(p_2,t_{b}^2)=1,\quad Post_a(p_1,t_{b}^2)=1,
sendo todas as demais entradas e saídas nulas. A função de rotulagem é
L(t_{a}^0)=L(t_{a}^1)=a, \quad L(t_{b}^1)=L(t_{b}^2)=b,
e a marcação inicial é
M_0(p_0)=1,\;M_0(p_1)=0,\;M_0(p_2)=0.
Nesse modelo, disparar t_{a}^0 ou t_{a}^1 corresponde a um evento de chegada, e t_{b}^1 ou t_{b}^2 a um evento de saída, respeitando a capacidade máxima 2.

Passo 3

Para o modelo (b) com apenas dois lugares, um para contar clientes e outro para controlar capacidade, definimos
N_b = (P_b, T_b, Pre_b, Post_b)
com
P_b = \{p_c,\,p_k\}, \quad T_b = \{t_a,\,t_b\}.
As funções Pre e Post são
Pre_b(p_k,t_a)=1, \quad Post_b(p_c,t_a)=1,
Pre_b(p_c,t_b)=1, \quad Post_b(p_k,t_b)=1,
e todas as outras entradas/saídas valem zero. A marcação inicial é
M_0(p_c)=0,\;M_0(p_k)=2.
Aqui p_c guarda o número de clientes e p_k a capacidade disponível. Disparar t_a consome uma unidade de capacidade e adiciona um cliente, e t_b remove um cliente e libera uma unidade de capacidade.

Resposta

a) Rede de Petri N_a=(P_a,T_a,Pre_a,Post_a) com
P_a=\{p_0,p_1,p_2\},\; T_a=\{t_{a}^0,t_{a}^1,t_{b}^1,t_{b}^2\},
arcos definidos em Pre _a e Post _a conforme o passo 2, rótulo L(t_{a}^i)=a, L(t_{b}^j)=b e marcação inicial M_0(p_0)=1, M_0(p_1)=M_0(p_2)=0.
b) Rede de Petri N_b=(P_b,T_b,Pre_b,Post_b) com
P_b=\{p_c,p_k\},\; T_b=\{t_a,t_b\},
Pre_b(p_k,t_a)=1,\;Post_b(p_c,t_a)=1, \quad Pre_b(p_c,t_b)=1,\;Post_b(p_k,t_b)=1,
e marcação inicial M_0(p_c)=0, M_0(p_k)=2.

Exercícios relacionados