• Nenhum resultado encontrado

Neste cap´ıtulo, apresenta-se o conceito dos grafos de processo de um autˆomato celular

seguido de uma t´ecnica de busca de estruturas que surgem nos grafos de processo para

diferentes itera¸c˜oes de uma mesma regra, bem como um m´etodo para detectar a existˆencia de poss´ıveis padr˜oes de crescimento de tais grafos, com o objetivo de poder inferir os grafos para itera¸c˜oes maiores sem a necessidade de comput´a-los diretamente.

3.1 Grafos de processo dos autˆomatos celulares

ele-mentares (ACEs)

Em (Wolfram, 1984) foi sugerido o estudo de uma medida de complexidade dos ACEs por meio dos grafos de processo que descrevem as poss´ıveis equa¸c˜oes obtidas como imagem da regra para diferentes n´umeros de itera¸c˜oes.

Nesta se¸c˜ao essa representa¸c˜ao das regras por meio dos grafos de processo ´e apresen-tada.

3.1.1 Grafos de De Bruijn e o m´etodo iterativo

Dado um AC unidimensional, ´e poss´ıvel representar sua regra local atrav´es de segrafo de De Bruijn (de Bruijn, 1946).

Defini¸c˜ao 3.1. Seja f : Sn −→ n a regra local de um AC unidimensional, com

S = {0,· · · , k −1}. O grafo de De Bruijn de f ´e o grafo direcionado rotulado Gf = (Vf, Ef, S, Lf) tal que:

Figura 3.1: Grafo de De Bruijn representando a regra 150 do espa¸co dos ACEs. Se conside-rado como um grafo de processo, as cadeias aceitas pelo grafo de De Bruijn correspondem `

as configura¸c˜oes que podem ser obtidas aplicando-se essa regra sobre todas as poss´ıveis sequˆencias bin´arias.

• O conjunto Vf dos v´ertices ´e o conjuntoSn−1;

• O conjunto Ef das arestas ´e constru´ıdo da seguinte forma: h´a uma aresta orientada de um v´ertice v para o v´ertice v0 se os valores das ´ultimas n−2 posi¸c˜oes de v s˜ao iguais aos das primeiras n−2 posi¸c˜oes de v0. Mais formalmente, todas as arestas s˜ao da forma (s1s2· · ·sn1, s2· · ·sn1sn), comsi ∈S,∀1≤i≤n;

• O conjunto de r´otulos corresponde ao conjunto de estados S;

• O r´otulo da aresta (s1s2· · ·sn−1, s2· · ·sn−1sn) corresponde ao valor def(s1,· · · , sn),

isto ´e, corresponde ao valor de f calculada na n-upla formada sobrepondo-se as

partes idˆenticas das sequˆencias contidas nos v´ertices de onde a aresta sai e no qual a aresta chega, nesta ordem.

Exemplo 3.1. A fim de deixar mais clara a maneira de construir o grafo de De Bruijn,

considere a regra 150 do espa¸co dos ACEs dada porf(a1, a2, a3) = (a1+a2+a3)mod 2,∀(a1, a2, a3)∈ {0,1}3. Temos:

• Vf ={00,01,10,11};

• Ef ={(00,00),(00,01),(01,10),(01,11),(10,00),(10,01),(11,10),(11,11)};

• L(a1a2, a2a3) = f(a1, a2, a3) = (a1+a2+a3)mod 2. A Figura 3.1 representa tal grafo de De Bruijn.

O grafo de De Bruijn pode ser visto como um grafo de processo. A linguagem por ele

aceita corresponde exatamente `aquela formada pelas subcadeias que podem ser obtidas

aplicando-se a regra global sobre todas as configura¸c˜oes iniciais poss´ıveis. Isto ´e, o grafo de

De Bruijn de um AC unidimensionalf aceita exatamente as subcadeias das configura¸c˜oes

do conjuntoF(SZ) = Ω1

f.

Al´em disso, para saber a imagem de uma configura¸c˜ao pela fun¸c˜ao global F, pode-se percorrer o caminho formado pelos v´ertices que definem a configura¸c˜ao. Os r´otulos das

arestas do caminho definem essa imagem. Dessa maneira, a imagem de uma configura¸c˜ao

c contendo a sequˆencia 11010 pela fun¸c˜ao global F150 da regra descrita no Exemplo 3.1 pode ser obtida percorrendo-se, nessa ordem, as arestas do v´ertice 11 para o v´ertice 10 (r´otulo 0), do v´ertice 10 para o v´ertice 01 (r´otulo 0) e do v´ertice 01 para o v´ertice 10 (r´otulo 1), resultando numa configura¸c˜aoF150(c) contendo a sequˆencia 001.

A seguir, a ideia discutida nos ´ultimos dois par´agrafos ´e generalizada.

Defini¸c˜ao 3.2. Sejac uma configura¸c˜ao e Gum grafo de processo (ou AFD). Dizemos queGaceita a configura¸c˜ao cquando, para quaisquer ´ındices i, j ∈Zcomj ≥i, a cadeia

c(i)c(i+ 1)· · ·c(j) ´e aceita por G.

Agora conv´em fazer a conex˜ao entre os conjuntos de configura¸c˜ao e as linguagens. Defini¸c˜ao 3.3. Seja S um conjunto de estados de um AC e L uma linguagem fatorial sobre S. O conjunto de configura¸c˜oes induzido por L´e o conjunto

L={c∈SZ :c(i)c(i+ 1)· · ·c(j)∈L,∀i, j ∈Z, j ≥i},

isto ´e, L ´e o conjunto das configura¸c˜oes sobre S que possuem como subcadeias apenas

elementos de L

Pelas duas ´ultimas defini¸c˜oes, fica claro que uma configura¸c˜ao ´e aceita por um grafo de processo (ou AFD) se, e somente se, pertence ao conjunto induzido pela linguagem associada a esse grafo de processo (ou AFD). A pr´oxima defini¸c˜ao junta essas duas no¸c˜oes de uma maneira mais f´acil de expressar.

Defini¸c˜ao 3.4. Um conjunto de configura¸c˜oesC ⊆SZ´edescrito pelo grafo de processo

(ou AFD)G quando C ´e o conjunto induzido pela linguagem deG.

Wolfram (1994) estudou uma generaliza¸c˜ao do processo de constru¸c˜ao do grafo de

Figura 3.2: Fluxograma do m´etodo iterativo. do conjunto Ωt

f para qualquer t finito, uma vez que tais conjuntos s˜ao induzidos por

linguagens regulares (Wolfram, 1994).

J´a em (Wolfram, 2002) um m´etodo para gerar grafos de processo descrevendo os

conjuntos Ωtf paratfinito foi exibido. Esse m´etodo baseia-se em trˆes fun¸c˜oes, denominadas NetCAStep, MinNet e TrimNet no referido trabalho. Tais fun¸c˜oes s˜ao descritas a seguir:

• NetCAStep: Dada a regra local f de um AC unidimensional e o grafo de processo descrevendo o conjunto Ωt

f, gera o grafo de processo descrevendo o conjunto Ωtf+1;

• MinNet: Dado um grafo de processo, devolve um AFD m´ınimo equivalente;

• TrimNet: Dado um AFD equivalente a um grafo de processo, devolve tal grafo de processo.

Ao longo do texto usa-se a nota¸c˜ao G(Ωt

f) para indicar o grafo de processo m´ınimo descrevendo o conjunto Ωtf.

O m´etodo utilizado em (Wolfram, 2002) encontra-se esquematizado no fluxograma na

Figura 3.2. Esse m´etodo ´e denominado m´etodo iterativo, pelo fato da fun¸c˜ao NetCAStep

atuar iterativamente para obter um grafo de processo descrevendo o conjunto Ωt

f.

As fun¸c˜oesMinNeteTrimNet correspondem a minimiza¸c˜oes e convers˜oes entre autˆomatos finitos e s˜ao algoritmos cl´assicos descritos na literatura. Por outro lado, ´e necess´ario que

a fun¸c˜aoNetCAStep seja descrita aqui.

A descri¸c˜ao a seguir corresponde ao espa¸co dos ACEs et= 2, mas o m´etodo ´e an´alogo

para qualquer caso unidimensional k-´ario e t finito qualquer. Dada uma regra local f

do espa¸co dos ACEs, o grafo de sa´ıda da fun¸c˜aoNetCAStep para tempo t apresenta 22t v´ertices.

Sejam G1 e G2 os grafos de processo de uma regra f (ainda n˜ao minimizados) para

t= 1 e t= 2, respectivamente.

Para t= 1, os v´ertices 00, 01, 10 e 11 (derivados do grafo de De Bruijn da regra) s˜ao numerados 1, 2, 3 e 4, respectivamente. Parat= 2, o grafo possu´ıra 16 v´ertices, nomeados 001,011,101,111,002,012,· · · ,104,114, nos quais o ´ındice em subscrito representa de qual v´ertice do grafo anterior (t = 1) os v´ertices do novo grafo (t = 2) derivaram. O sistema de numera¸c˜ao para valores maiores det ´e an´alogo.

Para cada v´ertice (a1a2)i de G2, as arestas saindo desse v´ertice s˜ao calculadas da seguinte maneira:

1. Calcule L0 =f(a1, a2,0), L1 =f(a1, a2,1), j0 ej1;

2. Sejam K0 e K1 os conjuntos dos v´ertices de G1 alcan¸cados por arestas saindo de

a1a2 com r´otulos L0 eL1, respectivamente;

3. Construa arestas (a1a2i, a20k0), k0 ∈K0 e (a1a2i, a21k1), k1 ∈K1 em G2.

Para facilitar o entendimento do algoritmo descrito acima, uma regra do espa¸co dos ACEs ´e analisada a seguir.

Exemplo 3.2. Considere a regra 126 do espa¸co dos ACEs, dada por

f126(a1, a2, a3) =      0, se a1 =a2 =a3

1, caso contr´ario

Como exemplo, considere o c´alculo das arestas saindo do v´ertice 004. Como a sequˆencia 00 possui apenas doisbits e a regra f126 atua sobre uma vizinhan¸ca com trˆes bits, preci-samos considerar as duas possibilidades para o terceirobit da sequˆencia.

Se o bit for 0, temos L0 =f126(0,0,0) = 0 e, portanto, teremos uma aresta do v´ertice 004 (dois primeiros bits) para o(s) v´ertice(s) 00k, k ∈ K0 (dois ´ultimos bits) com r´otulo 0. Para calcular K0, basta observar o grafo do passo anterior (Figura 3.3) e verificar a

Figura 3.3: Grafo gerado pela fun¸c˜ao NetCAStep para a regra f126 e t = 1. Esse grafo corresponde ao grafo de De Bruijn da regra.

Figura 3.4: Grafo gerado pela fun¸c˜ao NetCAStep para a regraf126 et = 2.

aresta com r´otulo 0 saindo do v´ertice 4 (11 parat = 1): tal aresta leva ao pr´oprio v´ertice 4, logo temos K0 ={4} e esse processo gerou uma aresta com r´otulo 0 ligando o v´ertice 004 com ele pr´oprio.

Caso contr´ario, se obit `a direita for 1, temosL1 =f126(0,0,1) = 1 e haver´a uma aresta com r´otulo 1 conectando 004 ao(s) v´ertice(s) 01k, k∈K1. Para calcular K1, observa-se a aresta com r´otulo 1 a partir do v´ertice 4 (11 para t = 1) que leva ao v´ertice 3 (10 para

t= 1). Logo K1 ={3} e tem-se uma aresta conectando 004 a 013 com r´otulo 1.

A constru¸c˜ao do restante do grafo ´e an´aloga e o resultado encontra-se na Figura 3.4. Wolfram (1994) obteve uma tabela relacionando a quantidade de v´ertices e de arestas dos grafos de processo descrevendo os conjuntos Ωtf para os ACEs com valores detvariando

entre 1 e 5 (n˜ao alcan¸cando o valor m´aximo para todas as regras). Essas quantidades

Como alternativa ao m´etodo iterativo proposto por Wolfram, um m´etodo direto de

c´alculo dos grafos gerados pela NetCAStep foi proposto inicialmente em (De Oliveira,

Ruivo, Costa, Miki, & Trafaniuc, 2016), incluindo altera¸c˜oes nas fun¸c˜oes de minimiza¸c˜ao e convers˜ao de maneira a tornar o algoritmo mais eficiente e possibilitar o c´alculo de grafos de processo at´e ent˜ao n˜ao computados, conforme descrito na pr´oxima se¸c˜ao.

Coment´arios a respeito das fun¸c˜oes MinNet e TrimNet

Em seu trabalho, Wolfram (1984) usa uma terminologia um pouco diferente da padr˜ao

utilizada aqui, chamando os grafos de processo e os AFDs ambos por AFDs. Considerando o caso espec´ıfico do trabalho (um estudo de representa¸c˜oes das linguagens de ACEs para um n´umero finito de itera¸c˜oes) n˜ao h´a problemas em utilizar o mesmo termo para os dois casos, pelas seguintes raz˜oes:

1. As linguagens definidas pelos grafos de processo s˜ao um subconjunto das linguagens

regulares, ent˜ao todo grafo de processo pode ser visto, de maneira natural, como

um AFD;

2. No caso de ACs unidimensionais, se uma cadeia est´a contida em alguma configura¸c˜ao

gerada pelo AC e, todas as suas subcadeias tamb´em est˜ao. Logo, se uma cadeia

qualquer ´e aceita pelo AFD descrevendo uma certa regra em tempo finito, todas

as suas subcadeias tamb´em ser˜ao aceitas (Hedlund, 1969). Isto ´e justamente a

defini¸c˜ao de uma linguagem de processo (linguagem regular fatorial). Portanto,

todo AFD descrevendo uma regra de AC unidimensional em tempo finito pode ser visto naturalmente como um grafo de processo.

Em resumo, ´e importante notar que em todos os passos do m´etodo iterativo descrito por Wolfram (2002), os objetos tratados pelas fun¸c˜oes s˜aoAFDs que podem ser converti-dos em grafos de processo. Al´em disso, Wolfram (2002) descreve brevemente as fun¸c˜oes MinNet e TrimNet em termos das opera¸c˜oes que estas realizam.

A MinNet ´e uma fun¸c˜ao cl´assica de minimiza¸c˜ao de AFDs: ela recebe um grafo de

processo, que ´e visto como um AFD e realiza a minimiza¸c˜ao de um AFD.

A TrimNet realiza uma tarefa simples: recebe o AFD dado pela MinNet e remove os v´ertices que n˜ao podem ser alcan¸cados a partir dos demais de maneira iterativa de modo

que, ao final do processo, s´o restem v´ertices que podem ser acessados a partir de algum dos v´ertices restantes.

´

E importante descrever a raz˜ao disso fazer sentido, ito ´e: por que, ao remover v´ertices sem arestas que chegam a eles, a linguagem descrita pelo grafo ´e mantida?

Como descrito acima, se uma cadeia pertence ao conjunto Ωt

f, parat finito ef um AC unidimensional, ent˜ao todas as suas subcadeias pertencem.

Assim, suponha que exista um v´ertice v de um grafo G descrevendo um AC f para

um tmepo finito t que seja proveniente da fun¸c˜ao MinNet que n˜ao possa ser removido,

isto ´e, que exista uma cadeia w de comprimento L que ´e aceita pelo grafo G mas n˜ao ´e aceita por seu subgrafoG0 obtido de G pela remo¸c˜ao de v e de suas arestas.

Se w ´e aceita por G, ent˜ao existe uma configura¸c˜ao c gerada contendo w. Suponha, sem perda de generalidade, que w = c1c2· · ·cL. Tome agora w0 = c0w, isto ´e, w0 ´e a cadeia obtida a partir de w prefixada pelo s´ımboloc0 que a antecede na configura¸c˜aoc.

Como w0 pertence a uma configura¸c˜ao gerada pela regraf, deve ser aceita pelo grafo

G. Sendo assim, o s´ımboloc0 far´a com que uma aresta saindo devseja percorrida, fazendo com que os s´ımbolosc1c2· · ·cL definam um caminho exclusivamente contido em G0, uma vez que n˜ao h´a arestas levando dos demais v´ertices para o v´ertice v.

Portanto, a cadeia w =c1c2· · ·cL pode ser percorrida exclusivamente dentro de G0 e ent˜ao, n˜ao existe tal v´ertice v que n˜ao possa ser removido.

3.1.2 Composi¸c˜ao de regras e o m´etodo direto

Sejaf uma regra local de um AC unidimensional qualquer e F sua respectiva fun¸c˜ao

global. Podemos definir os conjuntos Ωt

f iterativamente da seguinte maneira:

1f =F(SZ); Ωtf =F(Ωtf), t >1.

Dessa maneira, temos Ωtf =Ft(SZ). Portanto, Ωtf corresponde ao conjunto induzido pelo grafo de De Bruijn da regraft, obtida pela composi¸c˜ao def consigo mesma t vezes. O m´etodo direto para c´alculo dos grafos de processo leva essa propriedade em conta

e dispensa o uso da fun¸c˜ao NetCAStep, calculando diretamente o grafo de De Bruijn da

Figura 3.5: Fluxograma do m´etodo direto.

Al´em disso, para ambos os m´etodos, o custo computacional impossibilitou a

cons-tru¸c˜ao, minimiza¸c˜ao e convers˜ao dos grafos de processo para algumas regras. Esse pro-blema foi contornado utilizando-se fun¸c˜oes equivalentes no lugar das fun¸c˜oes MinNet e TrimNet originais. No caso da minimiza¸c˜ao utilizou-se o pacote“Automata”desenvolvido por Sutner (2004). Para a regra 22, por exemplo, utilizando-se as fun¸c˜oes originais, s´o era

poss´ıvel obter o grafo de processo para t = 1 enquanto que com as vers˜oes modificadas

foi poss´ıvel calcular os grafos de processo parat= 1 at´e t= 4.

O fluxograma na Figura 3.5 mostra o algoritmo envolvido nom´etodo direto.

Utilizando o m´etodo direto, a tabela de complexidade original que consta em (Wolfram,

1984) foi refeita. As Tabelas 3.1 and 3.2 apresentam uma compara¸c˜ao dos resultados em

(Wolfram, 1984) (`a esquerda) e os resultados obtidos neste trabalho (`a direita) para as regras representantes das 88 classes de equivalˆencia dinˆamica do espa¸co dos ACEs. Re-sultados que divergem daqueles em (Wolfram, 1994) encontram-se destacados em laranja e os novos resultados obtidos aparecem destacados em verde.

Quanto aos resultados divergentes (em laranja), cabem as seguintes observa¸c˜oes:

• Os resultados na tabela de Wolfram (1994) dizem respeito a AFDs enquanto os

resultados aqui apresentados dizem respeito aos grafos de processo (AFNDs);

• Os grafos de processo que puderam ser computados para ambos os m´etodos eram

• Alguns resultados obtidos em (Wolfram, 2002) tamb´em diferem daqueles em (Wolfram, 1994) e coincidem com os resultados obtidos aqui, como por exemplo os grafos das regras 108, 110 e 126 (Wolfram, 2002, p. 958);

• Alguns grafos exibidos em (Wolfram, 1994) que n˜ao coincidem com os grafos

cor-respondentes obtidos neste trabalho, n˜ao descrevem precisamente a linguagem da

regra. Por exemplo, o grafo mostrado em (Wolfram, 1994, p. 188)para a regra 72 com t = 1 n˜ao aceita a configura¸c˜ao c= [0]000001101010[0], a qual ´e a imagem de

Tabela 3.1: Tabela de complexidade dos grafos de processo dos ACEs (1/2).

Tabela 3.2: Tabela de complexidade dos grafos de processo dos ACEs (2/2).

Figura 3.6: Exemplo da opera¸c˜ao de diferen¸ca de grafos utilizada em (Trafaniuc, 2004). Apesar dos grafos serem estruturalmente idˆenticos, a diferen¸ca entre eles n˜ao ´e nula.

A partir da observa¸c˜ao da tabela e da varia¸c˜ao na quantidade de v´ertices e arestas dos grafos ao longo do tempo, surgem naturalmente duas perguntas:

1. Como calcular as estruturas que s˜ao adicionadas no grafo entre valores consecutivos de t?

2. Existe algum padr˜ao entre as estruturas adicionadas? O restante do cap´ıtulo aborda essas duas quest˜oes.

3.2 Complementos de grafos

Com o intuito de detectar o surgimento de estruturas recorrentes nos grafos de processo ao longo do tempo, ´e necess´ario definir uma opera¸c˜ao capaz de, dados dois grafos, fornecer quais estruturas est˜ao presentes em um mas n˜ao no outro. E ainda antes disso ´e necess´ario definir como dizer quais estruturas est˜ao ou n˜ao presentes em ambos os grafos.

Anteriormente, em (Trafaniuc, 2004), foi utilizada uma fun¸c˜ao de diferen¸ca entre grafos sens´ıvel `a nomenclatura dos v´ertices. A Figura 3.6 mostra o problema nesse m´etodo: estruturas idˆenticas (isomorfas) existentes em ambos os grafos s´o s˜ao detectadas se os v´ertices possu´ırem o mesmo nome.

Conforme sugerido em (Costa, 2013), a opera¸c˜ao de diferen¸ca deveria se basear em iso-morfismos entre grafos, de maneira a torn´a-la independente da nomenclatura dos v´ertices. Posteriormente, a opera¸c˜ao foi definida e utilizada em (De Oliveira et al., 2016).

Antes de abordar a opera¸c˜ao de diferen¸ca em si, conv´em enunciar algumas defini¸c˜oes sobre grafos.

Defini¸c˜ao 3.5. UmsubgrafoG0de um grafoG= (V, E,Σ, L) ´e um grafoG0 = (VG0, EG0,Σ, LG0) tal queVG0 ⊆V, EG0 ⊆E eLG0 ´e a restri¸c˜ao de LaEG0. Sendo assim, um subgrafo pode ser visto como umaparte ousubestrutura do grafo original. Aqui,Sn

Gdenotar´a oconjunto de subgrafos de G com n v´ertices.

Defini¸c˜ao 3.6. Dois grafosG1 = (V1, E1,Σ, L1) eG2 = (V2, E2,Σ, L2) s˜ao ditos isomor-fos se existe uma fun¸c˜aoφ :V1 −→V2 bijetora tal que:

1. (v, v0)∈E1 ⇔(φ(v), φ(v0))∈E2;

2. L1(v, v0) =L2(φ(v), φ(v0)),∀(v, v0)∈E1.

Nesse caso,φ ´e dito um isomorfismo de G1 em G2.

De maneira mais informal, dois grafos s˜ao isomorfos se existe um jeito de renomear

os v´ertices de um deles de modo a corresponder `a nomenclatura dos v´ertices do outro e, simultaneamente, preservar a estrutura de arestas e r´otulos j´a existentes.

Defini¸c˜ao 3.7. Um subisomorfismo entre grafos G1 e G2 ´e um isomorfismo entre um

subgrafo de G1 e um subgrafo de G2. Um subisomorfismo ´e dito de tamanho n se os

subgrafos isomorfos tem n v´ertices. Denotamos por Φn(G1, G2) o conjunto dos subiso-morfismos de tamanho n entre G1 e G2 e por Φ(G1, G2) o conjunto de subisomorfismos de tamanho m´aximo entreG1 e G2.

Dado um subisomorfismoφentreG1 eG2, ossubgrafos definidos por φs˜ao os subgrafos

G1φ eG2φ de G1 eG2, respectivamente, que s˜ao isomorfos por φ.

Defini¸c˜ao 3.8. Sejam G= (V, E,Σ, L) um grafo eE0 ⊆E um subconjunto de arestas, osubgrafo gerado por E0 ´e o grafo G(E0) = (VE0, E0,Σ, LE0) com:

• VE0 ={v ∈V : (v, vx)∈E0 ou (vx, v)∈E0};

• LE0 ´e a restri¸c˜ao de L aE0.

Assim, o subgrafo gerado por um conjunto de arestas do grafo original apresenta as arestas desse conjunto e os v´ertices definidos por elas.

Defini¸c˜ao 3.9. Dado um grafo G = (V, E,Σ, L), E0 ⊆ E e um subgrafo G(E0), o subgrafo complementar de G(E0), ´e o subgrafo G(E0)C =G(E−E0) gerado porE −E0. O subgrafo complementar nada mais ´e que a estrutura que resta no grafo original quando as arestas do subgrafo s˜ao removidas.

Figura 3.7: Grafo e subgrafo gerados por um conjunto de arestas (acima) e subgrafo complementar gerado (abaixo).

Para deixar isso mais claro, a Figura 3.7 mostra um exemplo dessa complementa¸c˜ao.

Defini¸c˜ao 3.10. Dados dois grafos G1 e G2, o complemento de G1 por G2, denotado porC(G1, G2) ´e calculado da seguinte maneira:

• Considera-se o maior n poss´ıvel para o qual o conjunto Φn(G2, G1) dos subisomor-fismos de G2 em G1 ´e n˜ao-vazio. Caso n˜ao exista tal n, isso indica que n˜ao h´a uma estrutura que apare¸ca em ambos os grafos, portanto define-se C(G1, G2) =G1. Se, por outro lado, G1 eG2 s˜ao isomorfos, diz-se que o complemento ´e nulo;

• Para cada φ ∈ Φn(G2, G1), sejam G1φ e G2φ os subgrafos de G1 e G2, respectiva-mente, para os quais φ´e um isomorfismo e seja Eφ o conjunto de arestas deG;

• Define-se C(G1, G2) =S

φ∈Φn(G2,G1)G(Eφ)C.

Dito de outra maneira, cada G(Eφ) corresponde a um “encaixe” de uma

subestru-tura de G2 em G1 (subgrafo induzido pelo subisomorfismo φ) e o complemento G(Eφ)C corresponde `a remo¸c˜ao dessa subestrutura. Como podem haver diversos subisomorfismos entre dois grafos (isto ´e, diversas maneiras de “encaixar” subestruturas), os complementos tamb´em podem ser diversos.

A Figura 3.8 mostra o c´alculo do complemento do grafoG(Ω2184) porG(Ω1184) da regra 184 para t= 2 e t= 1, respectivamente.

Figura 3.8: C´alculo do complementoC(G(Ω2

184), G(Ω1

184)) dos grafos de processo da regra 184 para t= 2 e t= 1.

A opera¸c˜ao de diferen¸ca em (De Oliveira et al., 2016) emprega a no¸c˜ao de complemen-tos definida acima e gera umconjunto de diferen¸cas entre os grafos, conforme ´e detalhado na Se¸c˜ao 3.3.

Entretanto, vale observar que os complementos continuam apresentando estruturas que aparecem em ambos os grafos, conforme exemplificado na Figura 3.9. As estruturas

destacadas em azul e verde em ambos os grafos s˜ao isomorfas separadamente, mas n˜ao

existe um isomorfismo entre os grafos exibidos que inclua as duas estruturas, por conta do v´ertice destacado em vermelho no grafo para t= 1 (`a esquerda) fazer parte das duas estruturas destacadas, enquanto no grafo para t = 2 (`a direita) n˜ao h´a intersec¸c˜ao entre as estruturas, como se o v´ertice para t = 1 fosse “duplicado” para cada estrutura.

Para solucionar essa limita¸c˜ao devida aos isomorfismos, foi utilizado um m´etodo para encontrarcoberturas entre dois grafos, conforme ser´a discutido na pr´oxima se¸c˜ao.

3.3 Coberturas e conjuntos de diferen¸cas

Defini¸c˜ao 3.11. Dados dois grafos G1 = (V1, E1,Σ, L1) e G2 = (V2, E2,Σ, L2), com #V2 ≥#V1, uma cobertura de G2 por G1 ´e uma sequˆencia finita φ1,· · ·, φk calculada da seguinte maneira:

Figura 3.9: Estruturas isomorfas (destacadas em azul e em verde) nem sempre podem constar no mesmo isomorfismo. Nesse caso isso se deve ao fato de as estruturas terem intersec¸c˜ao no grafo `a esquerda (v´ertice destacado em vermelho) mas n˜ao no grafo `a direita (duplica¸c˜ao e separa¸c˜ao do v´ertice de intersec¸c˜ao).

de G2 porG1);

2. Defina G11 =G1 e G12 =G2;

3. Cada φi,i >1, ´e definido recursivamente da seguinte maneira:

• Toma-se Gi1 ∈C(Gi11, Gi11φ

i−1) e Gi2 ∈ C(Gi21, Gi21φ

i−1) com Φ(Gi1, Gi2) 6=∅

(se n˜ao existir, o procedimento ´e interrompido);

• Toma-se φi ∈Φ(Gi

1, Gi

2) qualquer;

4. O processo no passo (2) ´e repetido at´e que uma das diferen¸cas seja nula (caso no qual a cobertura ´e denominadacompleta) ou at´e que n˜ao haja mais subisomorfismos entre os grafos (cobertura incompleta).

Uma sequˆencia definida acima fornece “encaixes” sucessivos de subestruturas comuns

entre os grafos. A Figura 3.10 mostra um exemplo de c´alculo de cobertura (completa) do

grafoG(Ω2

184) pelo grafo G(Ω1 184).

Obviamente podem existir diversas coberturas diferentes para cada par de grafos, uma

Documentos relacionados