Um Sistema de Numeração
Aplicado a Grafos a Eventos
A Numbering System Applied to Event Graphs
José Carlos Magossi Universidade Estadual de Campinas [email protected]Resumo O objetivo deste artigo é exibir um sistema de numeração para grafos a eventos. Para tal apresenta-se duas aplicações do sistema de numeração. Uma em aritmética, para clarear o sistema de numeração, e outra em sistemas dinâmicos a eventos discretos. Esse sistema considera as ex-pressões obtidas a partir de um alfabeto, as quais, também conhecidas como strings, associam-se a números inteiros. Para cada alfabeto fornecido, cada expressão corresponde de modo único, a um número inteiro positivo. Para exemplificar esse sistema de numeração, a primeira aplicação é em aritmética. Expõe-se uma aritmética que não utiliza o símbolo zero e a compara com o sistema decimal de numeração utilizado no ensino fundamental. Nessa aritmética há um símbolo diferen-te, o zero quadrado. Uma das consequências desse sistema é que os zeros quadrados à esquerda de um número mudam o valor do número que está sendo representado. A segunda aplicação, objetivo principal deste texto, consiste em utilizar esse sistema de numeração para representar sistemas dinâmicos a eventos discretos modelados via grafos a eventos. Como consequência, estima-se que propriedades de grafos a eventos possam ser analisadas via teoria de números, haja vista que cada expressão, que, por sua vez, determina um grafo a eventos de uma classe particular, está associada a um único número inteiro.
Palavras-chave grafos, eventos; sistemasdinâmicos; redesde Petri.
AbstRAct The objective of this paper is to show a numbering system directed to event graphs. To do so, we show two applications of this numbering system, the first one in arithmetic, to clarify the numbering system, and the other one in discrete event dynamic systems. This num-bering system takes expressions from an alphabet. These expressions, also known as strings, are associated with integers. For each given alphabet, each expression can be put in unique cor-respondence with a positive integer. To illustrate this numbering system, the first application is in arithmetic. We show an arithmetic without the traditional zero symbols and compare it with the decimal numbering system used in elementary school. A different symbol is introduced, the square zero. One of the consequences of this system is that leading square zeros change the number being represented. The second application – the main objective in this paper – consists in using this numbering system to represent discrete event dynamic systems modeled by event graphs. As a consequence of this we hope that the properties of event graphs can be analyzed through the number theory since each expression, which determines a particular event graph, is associated to a single integer.
70 jul./dez. • 2009
I
NTRODUÇÃOA era da informática nos trouxe uma forte relação entre sistemas de numeração e seqüências de símbolos, as expressões, ou strings, como são denominadas pelos profissionais da área de informática. Essa relação ocorre, pois em um computador, o que se vê na tela é diferente daquilo que se processa dentro do equipamento. Os dígitos que se observam numa tela são representações de processos que ocorrem na parte eletrônica do computador, os quais representam strings de Ͳƍݏ e ͳƍݏ. Desse modo, aprender a lidar com sequências de símbolos que representam números, que por sua vez representam sequências de 0’s e 1’s, é extremamente importante para pesquisas na área de informática, sejam elas relacionadas aos limites dos computadores, ao desenvolvimento de softwares, circuitos eletrônicos ou à Teoria da Computação.
Uma expressão (ou string) é uma sequência finita de símbolos obtida a partir de um alfabeto. Por exemplo, se ൌ ሼܽǡ ܾǡ ܿሽ é um alfabeto, então ܽǡ ܾܾܽܽǡ ܾܾܽܿܿǡ ܾܾܽܽǡ ܾܽܽǡ ܾܾܿܽǡ são exemplos de expressões obtidas a partir do alfabeto . A relação entre expressões e números facilita a tradução destas para os sistemas de numeração utilizados na parte eletrônica dos computadores. Dentro de um computador, uma expressão, grosso modo, é traduzida em números ͳƍݏ e Ͳƍݏ, o que por sua vez caracteriza toda a parte dos circuitos eletrônicos associados ao funcionamento dos computadores. Estabelecer correspondências biunívocas entre expressões (a partir de um alfabeto qualquer) e números é importante seja para a área de informática, seja para a área da engenharia, haja vista que trabalhar com números torna-se, em muitos casos, mais fácil do que se trabalhar com expressões. Além disso, as propriedades da teoria dos números podem ser utilizadas na maioria das vezes.
O objetivo principal contido neste texto é o de exibir um sistema de numeração posicional que se adapte à enumeração de grafos a eventos. Para atingir tal objetivo, duas aplicações associadas a esse sistema de numeração são expostas. Uma em aritmética e outra em sistemas dinâmicos a eventos discretos. A primeira tem o objetivo de familiarizar1 o
leitor com o processo de enumeração, a segunda, mostrar que grafos a eventos podem ser enumerados de modo unívoco.
Na primeira aplicação mostra-se como eliminar o símbolo zero na aritmética tradicional que se aprende nos cursos do ensino fundamental. Utiliza-se um símbolo diferente, o zero quadrado Ƒ. A eliminação do símbolo tradicional Ͳ elimina também a característica dos zeros não significativos à esquerda de um número qualquer. Os zeros quadrados à esquerda mudam o valor do número que está sendo representado. O zero quadrado se assemelha ao número ͳͲ, mas não admite zeros não significativos. Para o zero
tradicional, Ͳ ൌ Ͳͳ ൌ ͲͲͳ ൌ ͲͲͲͳ, já para o zero quadrado, esses valores são diferentes: Ƒ ് Ƒͳ ് ƑƑͳ ് ƑƑƑͳ.
Na segunda aplicação estabelece-se um sistema de numeração para classes de grafos a eventos. Associa-se a cada grafo a eventos uma expressão (string) obtida a partir de um alfabeto previamente definido, que por sua vez associa-se a um e um único número inteiro.
ͳComo motivação para a elucidação do sistema de numeração exposto neste texto, um exemplo associado à
aritmética tradicional será exibido. Mostra-se que, a partir dos fundamentos das relações entre números e expressões, é possível elaborar uma aritmética que não utiliza o símbolo Ͳ e mesmo assim se pode somar, subtrair, multiplicar e dividir.
Estima-se que é possível analisar propriedades de grafos a eventos via Teoria de Números. Não se pretende neste texto expor provas de unicidade e existência do sistema de numeração associado a grafos a eventos, nem analisar as propriedades deles a partir do sistema exposto.
D
ESENVOLVIMENTO
Uma maneira de associar expressões a números pode ser feita do seguinte modo: Seja ܣ ൌሼݑଵǡ ݑଶǡ ݑଷǡ ǥ ǡ ݑሽ um alfabeto finito e seja ߛ ൌ ݑೖݑೖషభݑೖషమǥ ݑమݑభݑబ uma
expressão obtida a partir dos símbolos do alfabeto ܣ.
x Um número inteiro ݔ associado à expressão ߛ é produzido da seguinte forma: ݔ ൌ ݅݊ ݅ିଵ݊ିଵ ݅ିଶ݊ିଶ ݅ିଷ݊ିଷ ڮ ݅ଷ݊ଷ ݅ଶ݊ଶ ݅ଵ݊ଵ ݅݊Ǥ
Nesse sistema de numeração os valores ݅, que multiplicarão ݊(a base do sistema de
numeração) representam a posição dos elementos na definição do alfabeto e não simplesmente o seu valor. Nesse sistema é possível trabalhar com quaisquer alfabetos, independente do símbolo utilizado. Para mais detalhes sobre esse sistema de numeração consultar Davis et al, capítulo 5, (1983).
Exemplo 1: Qual é o número inteiro associado à expressão ࢇ࢈ࢇ obtida a partir do
alfabeto ܣ ൌሼܽǡ ܾሽ?
O alfabeto consiste de ܣ ൌ ሼݑଵǡ ݑଶሽ ൌሼܽǡ ܾሽ. Logo, o valor de ݊ é ʹ. Esse número
será a base do sistema de numeração que fornecerá o número inteiro ݔ. A expressão ߛéܾܽܽ ൌ ݑమݑభݑబ. Segue-se que: x ݑଵൌ ܽ ൌ ݑమ e então ݅ଶൌ ͳ. x ݑଶൌ ܾ ൌ ݑభ e então ݅ଵൌ ʹ. x ݑଵൌ ܽ ൌ ݑబ e então ݅ൌ ͳ. Assim, ݔ ൌ ݅ଶ݊ଶ ݅ଵ݊ଵ ݅݊ൌ ͳǤʹଶ ʹǤ ʹଵ ͳǤ ʹൌ ͻǤ
Portanto, a expressão ܾܽܽ corresponde ao número inteiro ͻ.
A ordem dos elementos contidos no conjunto que define o alfabeto é significativa. Fica ao leitor mostrar que a expressão ߛ ൌ ܾܽܽ corresponde ao número inteiro ͳʹ, se for considerado o alfabeto ܤ ൌሼܾǡ ܽሽ. De modo análogo, a expressão ߛ ൌ ͲͳͲestá associada ao número ͳʹ, se for considerado o alfabeto ܥ ൌ ሼͳǡͲሽ, e está associado ao número ͻ se considerarmos o alfabeto ܦ ൌ ሼͲǡͳሽ. Observa-se que a posição (a ordem) dos elementos no conjunto que define o alfabeto é mais importante que a "cara" dos componentes do alfabeto. Desse modo, não existem zeros não significativos como ocorre num sistema tradicional que se aprende nos cursos elementares. Por exemplo, num sistema tradicional, Ͳͳ ൌ ͲͲͳ. Já, nessa nova aritmética, Ƒͳ ് ƑƑͳ.
72 jul./dez. • 2009
P
RIMEIRA APLICAÇÃO:
A
RITMÉTICA
A seguir, expõe-se uma aritmética que não contém zeros não significativos, ou seja, os zeros à esquerda de um número alteram o seu valor. Esse exemplo mostra que é possível se ter uma aritmética sem o símbolo tradicional zero.
Exemplo 2: Seja o alfabeto ܧ ൌሼͳǡ ʹǡ ͵ǡ Ͷǡ ͷǡ ǡ ǡ ͺǡͻǡ Ƒሽ. Qual é o número que
corresponde à expressão ߛ ൌ ͵ƑƑƑ?
O alfabeto consiste de
ሼݑଵǡ ݑଶǡ ݑଷǡ ݑସǡ ݑହǡ ݑǡ ݑǡ ݑ଼ǡ ݑଽǡ ݑଵሽ ൌ ሼͳǡ ʹǡ ͵ǡ Ͷǡ ͷǡ ǡ ǡ ͺǡ ͻǡ Ƒሽ.
É importante ressaltar que, nesse alfabeto, ݑଵൌ ͳ, ݑଶൌ ʹ, ݑଷൌ ͵, ݑସൌ Ͷ, ݑହൌ ͷ,
ݑൌ , ݑൌ , ݑ଼ൌ ͺ, ݑଽൌ ͻ e ݑଵ ൌ Ƒ. Desse modo, o valor de ݊ é ͳͲ. Esse número
será a base do sistema de numeração que fornecerá o número inteiro ݔ. A expressão ߛ ൌ ͵ƑƑƑ ൌ ݑయݑమݑభݑబ. x ݑଷൌ ͵ ൌ ݑయ e então ݅ଷൌ ͵. x ݑଵ ൌ Ƒ ൌ ݑమ e então ݅ଶൌ ͳͲ. x ݑଵ ൌ Ƒ ൌ ݑభ e então ݅ଵൌ ͳͲ. x ݑଵ ൌ Ƒ ൌ ݑబ e então ݅ൌ ͳͲ. Assim, ݔ ൌ ݅ଷ݊ଷ ݅ଶ݊ଶ ݅ଵ݊ଵ ݅݊ൌ ͵ǤͳͲଷͳͲǤͳͲଶ ͳͲǤ ͳͲଵ ͳͲǤ ͳͲൌ ͶͳͳͲ.
Portanto, a expressão ͵ƑƑƑ corresponde ao número inteiro ͶͳͳͲ, na base 10 tradicional. Por procedimentos análogos obtém-se:
x Ƒcorresponde ao número inteiro ͳͲǡ x ͳƑcorresponde ao número inteiro ʹͲǡ x ʹƑ corresponde ao número inteiro ͵Ͳǡ x ͵Ƒ corresponde ao número inteiro ͶͲǡ ǥ
A potenciação pode ser definida da seguinte forma: x Ƒ؝ ͳ x Ƒ ؝ ͻͻͻ ǥ ͻƑ (n-1) vezes Nota-se que: x Ƒଶ؝ ͻƑ. x Ƒଷ؝99ƑǤ x Ƒସ؝99ͻƑǤ
Segue-se que a raiz quadrada de Ƒଶ é dada por Ƒǡ pois Ƒ×Ƒ é igual a ͻƑ. Ou seja,
O processo inverso, de encontrar a expressão no alfabeto ܧ a partir de um número inteiro na base 10 tradicional, é explicado por meio de exemplos. O objetivo é encontrar os valores dos índices ݅ǡ ݅ିଵǡ ݅ିଶǡ ǥ ǡ ݅ଶǡ ݅ଵǡ ݅. Como o alfabeto ܧ é de base ͳͲ, deve-se,
então, tomar o número inteiro ݔ e ir dividi-lo sucessivamente, guardando os restos. O primeiro resto da divisão de ݔ por ͳͲserá o valor ݅, o segundo resto na divisão do
quociente de ଵ௫ por ͳͲ será o valor ݅ଵ, o terceiro resto na divisão de
ೣ భబ
ଵ por 10 será ݅ଶ, e
assim sucessivamente.
Um detalhe importante neste processo, que difere dos processos tradicionais da aritmética elementar, é que o resto em uma divisão por ͳͲ , em um alfabeto ሼݑଵǡ ݑଶǡ ݑଷǡ ݑସǡ ݑହǡ ݑǡ ݑǡ ݑ଼ǡ ݑଽǡ ݑଵሽ ൌ ሼͳǡ ʹǡ ͵ǡ Ͷǡ ͷǡ ǡ ǡ ͺǡ ͻǡ Ƒሽ, deve ser maior ou igual a
ͳe menor ou igual a ͳͲ (na aritmética tradicional, que se aprende nos cursos elementares, numa divisão por ݊, o resto varia de Ͳ até ݊ െ ͳ). Nessa aritmética, o resto não pode ser , os índices associados aos símbolos do alfabeto variam de até . O resto será, para qualquer alfabeto finito ሼݑଵǡ ݑଶǡ ݑଷǡ ǥ ǡ ݑሽ, maior ou igual a 1 e menor ou igual a ݊. Note
que ݊ é a base do sistema de numeração. Uma expressão sem elementos (uma expressão vazia) pode ser representada pelo símbolo İ.
Exemplo 3: Qual é a expressão do alfabeto ܧ ൌሼͳǡ ʹǡ ͵ǡ Ͷǡ ͷǡ ǡ ǡ ͺǡ ͻǡ Ƒሽ que
corresponde ao número inteiro ʹͲ?
Os índices ݅ଶ, ݅ଵ e ݅ são, respectivamente, ͳǡ ͳͲ e . Assim, a expressão
ߛ ൌ ݑమݑభݑబൌ ݑଵݑଵݑൌ ͳƑ. Portanto, a expressão que foi utilizada para obter ʹͲ é
ͳƑ.
Exemplo 4: Qual é a expressão do alfabeto ܧ ൌሼͳǡ ʹǡ ͵ǡ Ͷǡ ͷǡ ǡ ǡ ͺǡ ͻǡ Ƒሽ que corresponde
ao número inteiro ͵ͲͲ?
207 10
10
10
20
1
7
i
0i
1i
274 jul./dez. • 2009
Os índices ݅ଷǡ ݅ଶ, ݅ଵe ݅ são, respectivamente, ͵ǡ ǡͻ e ͳͲǤ Assim, a expressão
ߛ ൌ ݑయݑమݑభݑబൌ ݑଷݑݑଽݑଵൌ ͵ͻƑ. Portanto, a expressão que foi utilizada para obter
͵ͲͲ é ͵ͻƑ.
O leitor pode utilizar esse processo para obter a expressão ܾܽܽ do exemplo 1, a partir do número inteiro ͻ. Na divisão de 9 por 2, obtém-se resto ݅ൌ ͳ e quociente 4; na divisão
de Ͷ por ʹ, obtém-se o resto ݅ଵൌ ʹ e quociente 1; na divisão de ͳ por ʹ, obtém-se
resto ݅ଶൌ ͳ e quociente 0. Desse modo, a expressão a ser obtida é ߛ ൌ ݑమݑభݑబ ൌ
ݑଵݑଶݑଵൌ ܾܽܽ, pois no alfabeto ܣ ൌ ሼܽǡ ܾሽ se tem que ݑଵൌ ܽ e ݑଶൌ ܾǤ Não se deve
esquecer que, no exemplo 1, as divisões por 2 devem ter resto maior ou igual a 1 e menor ou igual a 2, não podem ter resto zero.
Tabelas para soma e produto com o zero quadrado, com as expressões do alfabeto ܧǡsão apresentadas a seguir:
Ϊ ͳ ʹ ͵ Ͷ ͷ ͺ ͻ ᇝ ͳ ʹ ͵ Ͷ ͷ ͺ ͻ ᇝ ͳͳ ʹ ͵ Ͷ ͷ ͺ ͻ ᇝ ͳͳ ͳʹ ͵ Ͷ ͷ ͺ ͻ ᇝ ͳͳ ͳʹ ͳ͵ Ͷ ͷ ͺ ͻ ᇝ ͳͳ ͳʹ ͳ͵ ͳͶ ͷ ͺ ͻ ᇝ ͳͳ ͳʹ ͳ͵ ͳͶ ͳͷ ͺ ͻ ᇝ ͳͳ ͳʹ ͳ͵ ͳͶ ͳͷ ͳ ͺ ͻ ᇝ ͳͳ ͳʹ ͳ͵ ͳͶ ͳͷ ͳ ͳ ͺ ͻ ᇝ ͳͳ ͳʹ ͳ͵ ͳͶ ͳͷ ͳ ͳ ͳͺ ͻ ᇝ ͳͳ ͳʹ ͳ͵ ͳͶ ͳͷ ͳ ͳ ͳͺ ͳͻ ᇝ ͳͳ ͳʹ ͳ͵ ͳͶ ͳͷ ͳ ͳ ͳͺ ͳͻ ͳᇝ
Tabela 1: Adição com zero quadrado
3700 10
10
10
9
369
36
6
10
3
10
0
i
0i
1i
2i
3ൈ ͳ ʹ ͵ Ͷ ͷ ͺ ͻ ᇝ ͳ ͳ ʹ ͵ Ͷ ͷ ͺ ͻ ᇝ ʹ ʹ Ͷ ͺ ᇝ ͳʹ ͳͶ ͳ ͳͺ ͳᇝ ͵ ͵ ͻ ͳʹ ͳͷ ͳͺ ʹͳ ʹͶ ʹ ʹᇝ Ͷ Ͷ ͺ ͳʹ ͳ ͳᇝ ʹͶ ʹͺ ͵ʹ ͵ ͵ᇝ ͷ ͷ ᇝ ͳͷ ͳᇝ ʹͷ ʹᇝ ͵ͷ Ͷͷ Ͷͷ Ͷᇝ ͳʹ ͳͺ ʹͶ ʹᇝ ͵ Ͷʹ Ͷͺ ͷͶ ͷᇝ ͳͶ ʹͳ ʹͺ ͵ͷ Ͷʹ Ͷͻ ͷ ͵ ᇝ ͺ ͺ ͳ ʹͶ ͵ʹ ͵ᇝ Ͷͺ ͷ Ͷ ͵ ᇝ ͻ ͻ ͳͺ ʹ ͵ Ͷͷ ͷͶ ͵ ʹ ͺͳ ͺᇝ ᇝ ᇝ ͳᇝ ʹᇝ ͵ᇝ Ͷᇝ ͷᇝ ᇝ ᇝ ͺᇝ ͻᇝ
Tabela 2: Multiplicação com zero quadrado
As tabelas acima não utilizam o símbolo tradicional . As outras operações
podem ser efetuadas de modo análogo ao que se faz numa aritmética elementar, inclusive com "vai um".
Exemplos de operações aritméticas básicas no alfabeto E com o zero quadrado (à esquerda) e o correspondente na notação do zero tradicional (à direita) são expostos na sequência. ͷ Ͷ ͷ Ͷ Ϊ Ƒ Ƒ Ϊ ͳ ͳ Ͳ ͳ Ͷ ͳ Ͷ ͻ ʹ ͻ ʹ Ǧ ʹ Ƒ Ǧ ͵ Ͳ ʹ ʹ ͵ Ͷ Ƒ ͵ ͷ Ͳ ʹ ʹ ͵ ʹ ʹ ͵ Ƒ Ͷ Ƒ ͳ Ͳ ͷ Ͳ ͻ Ƒ Ϊ Ͳ Ͳ Ϊ ͻ Ƒ Ϊ Ͳ Ͳ Ϊ Ƒ Ͷ Ƒ ͺ Ͳ ͷ Ͳ
76 jul./dez. • 2009 Ƒ4Ƒ 34Ƒ ͺͲͷͲ ͵ͷͲ ǦͻƑ ʹʹ͵ ǦͲͲ ʹʹ͵ ƑͶ ͺͲͷ ǦͻƑ ǦͲͲ ƑͶƑ ͳͲͷͲ ǦƑͶƑ ǦͳͲͷͲ ɂȋα Ȍ Ͳ
SEGUNDA APLICAÇÃO:GRAFOS A EVENTOS
Nesta seção, o objetivo é associar números inteiros a grafos a eventos, de tal forma que a cada um destes corresponda um e um único número inteiro, a partir do sistema de numeração exposto anteriormente. Associa-se a cada classe de grafos a eventos um alfabeto, o qual vai gerar strings associadas a eles. Cada string, pelo modo de construção, determina um único grafo a eventos. Por outro lado, a cada número inteiro fornecido é possível determinar se a ele corresponde ou não um grafo a eventos. Como consequência desta abordagem espera-se utilizar (não neste texto) a teoria de números inteiros para demonstrar propriedades acerca de grafos a eventos e, por consequência, redes de Petri. No que se segue, uma descrição de como se dá a correspondência entre grafos a eventos e números inteiros positivos é exposta, bem como uma breve exposição sobre grafos a eventos2.
GRAFOS A EVENTOS
Os grafos a eventos parametrizados constituem uma classe particular de redes de Petri. As redes de Petri, desenvolvidas por Carl Adam Petri em 1962, são de grande utilidade tanto na solução de problemas práticos como teóricos. Elas são muito utilizadas na modelagem de sistemas dinâmicos a eventos discretos3. Na literatura, exposições sobre redes
de Petri podem ser encontradas em textos como Murata (1989) e Peterson (1981). Ultimamente, o desenvolvimento associado às redes de Petri tem crescido muito, haja vista as aplicações que esses modelos têm tido em diversos campos do conhecimento, tais como informática, matemática, ciência da computação, engenharia, etc. Na literatura, exposições sobre grafos a eventos podem ser encontrados em Cohen et al, (1989) e Baccelli et al, (1992). Um grafo a eventos parametrizado é uma estrutura matemática que contém cinco componentes, a saber: um conjunto de lugares4, um conjunto de transições (associadas aos eventos), um conjunto de arcos, uma marcação inicial e uma temporização. Em grafos a
2 Não se pretende neste texto fazer uma exposição sobre modelagem de sistemas dinâmicos a eventos discretos
via grafos a eventos.
3 Para um estudo sobre redes de Petri e sistemas dinâmicos a eventos discretos consultar Cassandras e
Lafortune (1999).
4 Os lugares são utilizados para representar o estado do sistema e as condições que habilitam as ocorrências dos
eventos temporizados, as ocorrências de eventos estão associadas aos disparos das transições.
Seja, por exemplo, uma transição ݐ. Nessa transição há lugares de entrada de ݐ e lugares de saída de ݐ. O disparo5 de uma transição poderá ocorrer desde que as informações
contidas nos lugares de entrada dessa transição sejam satisfeitas. Desse modo a transição estará apta a disparar. As condições contidas nos lugares de saída dessa transição serão afetadas com o disparo da transição. Um grafo a eventos é constituído por lugares, transições e as relações entre eles.
A Figura 1 mostra uma típica representação gráfica de um grafo a eventos temporizado com dois lugares (p1 e p2) e três transições (t1, t2 et3).
Figura 1: Grafo a eventos
A t1 é chamada de transição de entrada do grafo a eventos e também transição de
entrada do lugar p1; a transição de saída do grafo é representada por t3, que é a transição de
saída do lugar p2. A t2 é a transição de saída do lugar p1 e de entrada do lugar p2. Os arcos
estabelecem relações entre lugares e transições. Por exemplo, para que a transição ݐଶ esteja
habilitada a disparar, as informações contidas no lugar ଵ devem ser satisfeitas. Em geral, a
ação representada por uma transição está associada às informações contidas no lugar (ou lugares) de entrada dessa transição. Por outro lado, as informações contidas no lugar p2 serão
alteradas assim que ocorrer o disparo da transição t2. As marcações no lugar p1 representam a
condição de habilitação da transição t2, simbolizada pela ficha x, e o tempo de espera gasto
antes da habilitação da transição t2, simbolizado pelas duas barras ~ e ~. Essas marcações são
parametrizações, formalmente representadas como pares de números inteiros (n, t), em que n representa a condição de habilitação (fichas) e t o tempo de espera (barras). O grafo a eventos acima pode, por exemplo, representar uma fila em uma loja de eletrodomésticos. O comprador fica na fila para pagar o produto comprado (ଵሻ, onde aguarda duas unidades de
tempo, e após o pagamento dirige-se à seção de pacotes para pegar o produto já embrulhado, aguardando, então, uma unidade de tempo.
5 O disparo de uma transição representa a ocorrência do evento (de mesmo nome da transição) associado à
transição.
t
1p
1t
2p
2t
3x
x
78 jul./dez. • 2009 A definição formal de um grafo a eventos é dada a seguir.
Definição 1: Um grafo a eventos parametrizado é uma quíntupla <P, T, A, w, X >, de tal
forma que:
x P é um conjunto finito de lugares; x T é um conjunto finito de transições;
x A é um conjunto de arcos, o qual é um subconjunto de (P u T) (T u P); x w é uma função peso, w: A o {1};
x X é uma parametrização. X: PoNuN.
Em grafos a eventos, diferentemente de redes de Petri, a função peso é uma função constante igual a 1 e, para cada lugar no grafo, existe um único arco chegando e um único arco saindo. Para mais detalhes, consultar Cohen et al. (1989).
O deslocamento de fichas no grafo a eventos caracteriza o sistema dinâmico (a eventos discretos). Seja o grafo a eventos da Figura 1. Em relação à transição t2 se tem:
Grafo A Grafo B Grafo C
Figura 2: Processo dinâmico em um grafo a eventos
Na Figura 2, o processo dinâmico associado à transição t2 do grafo a eventos é
exposto. No grafo A, a transição t2 está habilitada a disparar, pois contém ao menos uma
ficha no lugar de entrada da transição. Após aguardar duas unidades de tempo, o disparo pode ocorrer. Ao ocorrer o disparo da transição, uma ficha do lugar p1 é transportada para o
lugar p2, como exposto no grafo B. Ainda a transição t2 está habilitada, pois contém uma
ficha. Novamente, após a espera de duas unidades de tempo, a transição está apta a disparar. Após o disparo, uma ficha do lugar p1 é consumida e alocada no lugar p2, conforme mostra o
grafo C. Procedimentos análogos podem ser obtidos para a transição t3. A união dos disparos
de todas as transições de um grafo a eventos caracteriza seu movimento, seu dinamismo.
t
1t
1t
1p
1t
2p
2t
3x
x
p
1t
2p
2t
3x
x
p
1t
2p
2t
3x
x
Um grafo a eventos é uma ferramenta que se adapta à modelagem de sistemas dinâmicos a eventos discretos.
U
MS
ISTEMA DEN
UMERAÇÃO PARAG
RAFOS AE
VENTOSA seguir exibe-se o modo como se associa expressões obtidas a partir de um alfabeto com grafos a eventos e números inteiros às expressões que determinam um grafo a eventos.
O objetivo é associar a uma determinada classe de grafos a eventos, uma expressão escrita a partir de um alfabeto que determina essa classe. Por exemplo, seja um alfabeto ܨଵൌ ሼݐǡ ݐଵǡ ݃ଵǡ ݃ଶǡ ݀ଵǡ Ͳሽ nessa ordem, o qual representa uma classe de grafos a eventos
caracterizados por terem duas transições (t0 e t1), um lugar (p1), duas fichas (g1 e g2), uma
temporização (d1) e o símbolo Ͳ para representar a quantidade nula de fichas ou barras,
quando necessário. O índice inferior 1 na letra F indica o número de lugares.
Desse modo, qualquer sequência obtida a partir do alfabeto acima determina um número inteiro, conforme exposto anteriormente.
Exemplo 5: Qual é o número inteiro associado ao grafo a eventos da Figura 3?
Figura 3: Grafo a eventos do exemplo 5
As expressões simples associadas a grafos a eventos são quádruplas do tipo ݐ݃ఈ݀ఉݐ
em que:
x ݐ representa a transição de entrada,
x ݃ఈ representa a quantidade de fichas contidas no lugar que conecta ݐ a ݐ.
O valor numérico ߙ é determinado na definição do alfabeto.
x ݀ఉ representa a quantidade de barras contidas no lugar que conecta ݐ a ݐ. O valor numérico ߚ é determinado na definição do alfabeto.
x ݐ representa a transição de saída do lugar que conecta ݐ a ݐ.
A expressão simples ߛ ൌ ݐ݃ଶͲݐଵ representa o grafo a eventos do exemplo 5.
De um modo geral, para o alfabeto ܨଵ, as quádruplas de quatro símbolos representam
cada grafo a eventos que tenha um lugar, duas transições, duas fichas (no máximo) e uma barra (no máximo).
O alfabeto consiste de ܨଵൌ ሼݐǡ ݐଵǡ ݃ଵǡ ݃ଶǡ ݀ଵǡ Ͳሽ ൌ ሼݑଵǡ ݑଶǡ ݑଷǡ ݑସǡ ݑହǡ ݑሽ. Logo, o
valor de ݊ é . Esse número será a base do sistema de numeração que fornecerá o número
t
1t
080 jul./dez. • 2009 inteiro ݔ. O símbolo Ͳ é utilizado para representar a quantidade nula de fichas ou barras. A expressão associada ao grafo da Figura 3 é:
ߛ ൌ ݐ݃ଶͲݐଵൌ ݑయݑమݑభݑబ. Segue-se que: x ݑଵൌ ݐൌ ݑయ e então ݅ଷൌ ͳ. x ݑସൌ ݃ଶൌ ݑమ e então ݅ଶൌ Ͷ. x ݑൌ Ͳ ൌ ݑభ e então ݅ଵൌ . x ݑଶൌ ݐଵൌ ݑబ e então ݅ൌ ʹ. Assim, ݔ ൌ ݅ଷ݊ଷ ݅ଶ݊ଶ ݅ଵ݊ଵ ݅݊ൌ ͳǤ ଷ ͶǤଶ Ǥ ଵ ʹǤ ൌ ͵ͻͺǤ
Portanto, a expressão ݐ݃ଶͲݐଵ corresponde ao número inteiro ͵ͻͺ ,
consequentemente, o grafo da Figura 3 está associado ao número ͵ͻͺ.
Exemplo 6: Qual é o grafo a eventos associado ao número ͷͺ͵, cujo alfabeto seja
ܩଵൌ ሼݐǡ ݐଵǡ ݃ଵǡ ݃ଶǡ ݃ଷǡ ݀ଵǡ Ͳሽ?
Para encontrar o grafo a eventos que está associado ao número ͷͺ͵ e cujo alfabeto seja ܩଵൌ ሼݐǡ ݐଵǡ ݃ଵǡ ݃ଶǡ ݃ଷǡ ݀ଵǡ Ͳሽ procede-se como exposto nos exemplos 3 e 4 desse
artigo. A base desse sistema de numeração é , logo se deve dividir o número ͷͺ͵ por e guardar o resto, dividir o quociente por e guardar o resto, e assim sucessivamente, como exposto na seqüência.
x ͷͺ͵ ൊ ൌ ͺ͵ ൈ ʹ, neste caso, ݅ൌ ʹ. x ͺ͵ ൊ ൌ ͳͳ ൈ , neste caso, ݅ଵൌ . x ͳͳ ൊ ൌ ͳ ൈ Ͷ, neste caso ݅ଶൌ Ͷ. x ͳ ൊ ൌ Ͳ ൈ ͳ, neste caso ݅ଷൌ ͳǤ
Os índices ݅ଷǡ ݅ଶ, ݅ଵ e ݅ são, respectivamente, ͳǡ Ͷǡ e ʹ. Assim, a expressão
ߛ ൌ ݑయݑమݑభݑబൌ ݑଵݑସݑݑଶൌ ݐ݃ଵ݀ଵݐଵ. Portanto, a expressão que foi utilizada para obter
ͷͺ͵ é ݐ݃ଵ݀ଵݐଵ que, por sua vez corresponde ao grafo a eventos da Figura 4.
Figura 4: Grafo a eventos do exemplo 6
É possível definir classes de grafos a eventos de acordo com a quantidade de transições, lugares, fichas e barras presentes. Essas quantidades variam conforme a
t
1t
0necessidade de modelagem de problemas advindos de sistemas dinâmicos a eventos discretos. Propriedades dessas classes podem ser avaliadas (não neste texto) por meio de teoremas da Teoria de Números.
As expressões compostas, conforme a Figura 5, associadas a grafos a eventos são do tipo: ሧ ܣ
୬ ୩ୀଵ
ൌ ܣଵڀܣଶڀ ǥ ڀܣ
Em que:
x Cada ܣ é uma quádrupla do tipo ݐ݃ఈ݀ఉݐǡ ou seja, uma expressão
simples;
x ݊ representa a quantidade de lugares cujas transições de saída são transições de entrada em ݐ;
x ݐଵ ݐ ݐ e ଵ ;
x Se ݊ ൌ ͳ então a expressão composta é uma expressão simples.
Figura 5: Grafo a eventos para expressões compostas
Para grafos a eventos do tipo exposto na Figura 6, cujo alfabeto seja ܪଶൌ
ሼݐǡ ݐଵǡ ݐଶǡ ݃ଵǡ ݃ଶǡ ݀ଵǡ ݀ଶǡ ڀǡ ٿǡ Ͳሽ , a expressão associada é ݐ݃݀ݐଵڀݐଵ݃௨݀௩ݐଶ , em queͲ ݉ǡ ݊ ʹ e Ͳ ݑǡ ݒ ʹ.
Figura 6: Grafo a eventos de uma expressão composta
Os símbolos ̶ڀ̶ e ̶ٿ̶ não representam o “ou” e “e” da lógica clássica, mas sim operadores associados à rede que determina um grafo a eventos. Não são necessários pares de
p
1t
jt
nt
1...
t
2p
2p
n(ݑǡ ݒ)
(
݉ǡ ݊)
t
2t
1t
082 jul./dez. • 2009 parênteses, pois assume-se que o operador ̶ڀ̶ tem prioridade sobre o operador ̶ٿ̶ nas expressões que determinam o grafo a eventos.
Um grafo a eventos que contém expressões simples e compostas é representado por ሥ ܤ
ୀଵ
ൌ ܤଵٿܤଶٿ ǥ ٿܤ
em que cada expressão ܤ ൌ ڀ୬୩ୀଵܣ e ݊ representa o número de ܣ's (número de lugares
do grafo a eventos). Para grafos a eventos com apenas expressões simples, tem-se que ݉ ൌ ݊Ǥ Para cada grafo a eventos com, no mínimo, uma expressão composta tem-se que ݉ ൏ ݊Ǥ
Exemplo 7: Qual é a expressão que está associada ao grafo a eventos da Figura 7, cujo
alfabeto seja ܫସൌ ሼݐǡ ݐଵǡ ݐଶǡ ݐଷǡ ݃ଵǡ ݃ଶǡ ݀ଵǡ ڀǡ ٿǡ Ͳሽǫ
Figura 7: Grafo a eventos do exemplo 7
Esse grafo a eventos contém expressões simples e compostas, a saber: x ݐ݃ଶͲݐଵڀݐଶ݃ଵͲݐଵ é a expressão composta para a transição ݐଵ; x ݐଵͲ݀ଵݐଶ é a expressão simples entre as transições ݐଵ e ݐଶ; x ݐଶͲͲݐଷ é a expressão simples entre as transições ݐଶ e ݐଷ.
Portanto, a expressão associada é ݐ݃ଶͲݐଵڀݐଶ݃ଵͲݐଵ ٿ ݐଵͲ݀ଵݐଶ ٿ ݐଶͲͲݐଷ
Cada expressão simples e composta tem um número inteiro associado obtido pelo processo exposto anteriormente. Para que um grafo a eventos que contém expressões simples
x x
t
0t
1t
2x
t
3p
1p
3p
4p
2e compostas possa ter um e um único número inteiro associado, é necessário que o número associado ao grafo a eventos seja da forma
ෑ ߩڔೝ ୀଵ
ൌ ߩଵڔభǤ ߩଶڔమǤ ǥǤ ߩڔ
em que ߩ é o r-ésimo número primo6 e cada ڔ ܤ é o número associado a cada expressão
ܤ (simples ou composta) obtida no grafo a eventos. Neste caso, o ponto "." é a
multiplicação,
Exemplo 8: Qual é o número associado ao grafo a eventos da Figura 7?
Os números associados às expressões do grafo a eventos da Figura 7 são:
x A expressão ݐ݃ଶͲݐଵڀݐଶ݃ଵͲݐଵ está associada ao número ͳͲʹͺ͵ͲʹǤ
x A expressão ݐଵͲ݀ଵݐଶ está associada ao número ͵Ͳ͵Ǥ x A expressão ݐଶͲͲݐଷ está associada ao número ͶͳͲͶǤ
Para que o grafo a eventos determine um e um único número inteiro, o número associado a ele será da forma:
ʹଵଶ଼ଷଶǤ ͵ଷଷǤ ͷସଵସ
Como cada número inteiro tem uma única representação em sua decomposição em fatores primos, cada grafo a eventos corresponde a um e um único número inteiro.
C
ONCLUSÃOMostrou-se um sistema de numeração de expressões7 (strings) utilizado para
enumerar grafos a eventos a partir de um alfabeto finito qualquer. Como ilustração desse sistema apresentou-se uma aplicação em aritmética. Nessa aplicação estabelece-se que é possível se ter uma aritmética sem o símbolo Ͳ, a qual impede os zeros não significativos. Desse modo, abre-se espaço, com esse sistema de numeração, para desenvolvimentos em álgebras de expressões, trabalhos em criptografia, Teoria da Computação, ou setores acadêmicos que se valem da utilização de cálculos com expressões.
Na segunda aplicação mostrou-se como estabelecer uma correspondência entre grafos a eventos e números inteiros. Esta se dá a partir da associação de grafos a eventos com expressões obtidas de um alfabeto previamente estabelecido, que se associam a números inteiros. Para uma unicidade na decomposição, utiliza-se de números primos na construção
6 Ou seja, ߩ
1=2, ߩ2=3, ߩ3=5, ....
7 Existem outras maneiras de se estabelecer um sistema de numeração semelhante ao que foi feito neste texto.
Os excelentes livros de Davis (1983), Cutland (1980) e Rogers (1967) são próprios para demonstrações da unicidade da representação exposta neste texto e também para outras investigações sobre sistemas de numerações.
84 jul./dez. • 2009 dos números que se associam a um grafo a eventos. Assim, o sistema de numeração posicional exposto é adaptado a traduzir grafos a eventos em números inteiros. A partir dessa associação, é possível definir classes de grafos a eventos de acordo com as necessidades relativas à quantidade de transições, lugares, fichas e barras. Como consequência dessa associação, torna-se possível investigar, sob a ótica da Teoria de Números, propriedades de grafos a eventos, obtidas como modelos de sistemas dinâmicos a eventos discretos.
R
EFERÊNCIASBACCELLI, F.L., COHEN, G., OLSDER, G. J., QUADRAT, J. P.. Synchronization and Linearity - An Algebra for Discrete Event Systems. New York: John Wiley and Sons, 1992. CASSANDRAS, C. G., LAFORTUNE, S. Introduction to Discrete Event Systems. Boston: Kluwer Academic Press, 1999.
COHEN, G. , MOLER, P., QUADRAT, J.P., VIOT, M.. Algebraic tools for performance evaluation of discrete systems. Proceedings of IEEE, 77, pp. 39-58, 1989.
CUTLAND, N.J. Computability - An Introduction to Recursive Function Theory, Cambridge: Cambridge University Press, 1980.
DAVIS, M. D., SIGAL, R., WEYUKER, E.J.. Computability, Complexity, and Languages - Fundamentals of Theoretical Computer Science. New York: Morgan Kaufmann-Academic Press, 1983.
MURATA,T. Petri Nets: Properties, analysis and applications. Proceedings of the IEEE, 77, pp.541-580, 1989.
PETERSON, J.L. Petri Net Theory and the Modeling of Systems, New Jersey: Prentice-Hall, 1981.
ROGERS, H. Theory of Recursive Functions and Effective Computability, New York: McGraw-Hill, 1967.
Dados do autor JOSÉ CARLOS MAGOSSI Doutor em Engenharia Elétrica (Unicamp), professor
da Faculdade de Tecnologia (Unicamp). Recebido: 19/8/09 Aprovado: 23/11/09