• Nenhum resultado encontrado

DETERMINAÇÃO EFICIENTE DE VÉRTICES SIMPLICIAIS EM GRAFOS CORDAIS

N/A
N/A
Protected

Academic year: 2021

Share "DETERMINAÇÃO EFICIENTE DE VÉRTICES SIMPLICIAIS EM GRAFOS CORDAIS"

Copied!
7
0
0

Texto

(1)

DETERMINAÇÃO EFICIENTE DE VÉRTICES SIMPLICIAIS EM GRAFOS CORDAIS

Lilian Markenzon Oswaldo Vernet

Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro e-mail: {markenzon,oswaldo}@nce.ufrj.br

Paulo Renato da Costa Pereira Instituto Militar de Engenharia e-mail: prenato@de9.ime.eb.br

RESUMO

Neste trabalho, detalhamos um algoritmo com complexidade linear para a determinação de todos os vértices simpliciais de um grafo cordal, com base em uma nova representação que desenvolvemos para esta família de grafos.

Palavras-Chave: Grafo cordal; Representação; Vértices simpliciais. ABSTRACT

In this paper, we outline a linear-time algorithm for determining all simplicial vertices in a chordal graph, based on a new representation that we developed for this family.

Keywords: Chordal graph; Representation; Simplicial vertices.

1. INTRODUÇÃO

Os grafos cordais constituem uma família bastante estudada, com propriedades estruturais bem particulares. Em sua estrutura, as cliques obedecem a condições bastante específicas, favorecendo a solução de inúmeros problemas algorítmicos. Justamente para a solução destes problemas, outras informações, além das habitualmente fornecidas por conjuntos ou matriz de adjacência, são necessárias.

A determinação eficiente de todos os vértices simpliciais ocorre com freqüência como etapa intermediária na solução de problemas envolvendo grafos cordais. Assim, vários pesquisadores mencionam a possibilidade de resolvê-la em tempo polinomial, explicitando muitas vezes a complexidade envolvida, sem, no entanto, detalhar algoritmos para a solução. Golumbic(1980), que nos forneceu respostas a diversas outras questões, não tratou da citada determinação. Mais recentemente, Chandran et al. (2003) mencionam a elevada complexidade de O(n2) para determinar se um vértice é simplicial e, por conseguinte, O(n3) para determinar todos. Por sua vez, Habib et al. (2003) apenas afirmam a complexidade linear, sugerindo uma modificação no percurso por vizinhança máxima estudado em Blair e Peyton(1993), sem especificá-la. Uehara (2004) demonstra a possibilidade de resolver o problema em tempo linear utilizando a árvore de cliques do grafo cordal.

Neste trabalho, propomos uma nova representação para grafos cordais, baseada em um esquema de eliminação perfeita do grafo. A partir dela, as cliques maximais podem ser eficientemente obtidas, levando à solução, em tempo linear, do problema da determinação de todos vértices simpliciais.

(2)

2. CONCEITOS BÁSICOS

Sejam G = (V, E) um grafo, com n = |V|, e v ∈ V um vértice qualquer de G. Dizemos que v é simplicial quando Adj(v) é uma clique em G (i.e., o subgrafo G[Adj(v)] de G induzido por Adj(v) é um grafo completo).

Um esquema de eliminação perfeita (EEP) de G é uma função bijetora σ: {1, ..., n} → V tal que σ(i) é um vértice simplicial em G[{σ(j) | i ≤ j ≤ n}], para i = 1, ..., n. Um EEP pode ser melhor visualizado se percebermos que sua definição induz a dispor os vértices em uma seqüência σ(G) = [σ(1), ..., σ(n)], de maneira que todo vértice seja simplicial no subgrafo de G induzido por ele e pelos que o seguem na seqüência σ. Assim, dada uma posição i na seqüência, σ(i) denota o vértice que a ocupa e a inversa, σ-1

(v), corresponde à posição ocupada pelo vértice v.

Pela definição, é fácil determinar um EEP para um dado grafo. Inicia-se com uma seqüência vazia de vértices, que conterá um EEP ao final do processo. A cada passo, um vértice simplicial é escolhido, acrescentado à seqüência e excluído do grafo. Para o grafo da Figura 1, possíveis EEPs são [i, a, h, g, f, b, e, c, d] e [h, c, i, f, g, e, d, a, b].

Figura 1: Um grafo cordal.

Um grafo G = (V,E) é cordal quando todo ciclo de comprimento maior ou igual a 4 possui uma corda (i.e. uma aresta ligando dois vértices não consecutivos do ciclo). A cordalidade equivale à existência de um EEP, conforme estabelecido no Teorema 1.

Teorema 1 (Golumbic(1980)). Um grafo é cordal se, e somente se, ele admite um esquema de eliminação perfeita, que pode iniciar-se com qualquer vértice simplicial.

Os algoritmos de reconhecimento de grafos cordais mais conhecidos e mais eficientes baseiam-se no Teorema 1 e constam de dois passos. Primeiramente, um percurso especial (por vizinhança máxima ou em largura lexicográfica) determina uma seqüência de vértices; em seguida, deve-se verificar se esta seqüência é um EEP. Esses dois passos podem ser implementados em algoritmos de complexidade linear em tempo e espaço. Se o grafo fornecido como entrada for sabidamente cordal, as seqüências de vértices produzidas pelos percursos citados constituirão esquemas de eliminação perfeita para ele.

Neste artigo, consideramos conhecidos o grafo cordal e um de seus EEPs.

3. ESQUEMA DE REPRESENTAÇÃO

Em última análise, um EEP dispõe os vértices de um grafo cordal em uma seqüência, garantindo que cada um deles esteja ligado a uma clique formada por um subconjunto de seus sucessores. Esta estrutura sugere um processo de construção para grafos cordais, formalizado no Teorema 2.

i b e f h g c d a i b e f h g c d a

(3)

Teorema 2. Seja G = (V,E) um grafo cordal, v ∉ V um novo vértice e Q ⊆ V uma clique de G. O grafo

G' = (V ∪ {v}, E ∪ {{v, x} | x ∈ Q} ) é também cordal.

Prova: Basta observar que v é um vértice simplicial de G'. Então, se [v1, v2, ..., vn] é um EEP de

G, [v, v1, v2, ..., vn] é um EEP de G' e, pelo Teorema 1, G' é cordal.

A partir do Teorema 2, é possível conceber um processo indutivo de construção para grafos cordais: iniciando com um grafo trivial (composto por apenas um vértice), acrescenta-se, a cada passo, um novo vértice ligado a uma clique do grafo já existente. Em relação ao EEP, este novo vértice é acrescentado sempre como prefixo. A Figura 2 ilustra esta construção para o grafo da Figura 1, utilizando o EEP [i, a, h, g, f, b, e, c, d].

Figura 2: Construção indutiva de um grafo cordal.

Não é difícil constatar que um EEP é insuficiente para representar um grafo cordal, uma vez que, a partir dele, o conjunto de arestas não pode ser restabelecido. Para a reconstrução do grafo é necessário o conhecimento das cliques às quais cada vértice do EEP foi ligado durante o processo construtivo.

Sejam o grafo cordal G = (V, E), σ um EEP de G e v ∈ V um vértice qualquer. O conjunto Xσ(v) = {x ∈ Adj(v) | σ-1(v) < σ-1(x)}

é denominado conjunto de adjacência restrito de v.

i b e f h g c d a d c d e c d b e c d b e f c d b e f g c d b e f h g c d b e f h g c d a i b e f h g c d a d c d e c d b e c d b e f c d b e f g c d b e f h g c d b e f h g c d a

(4)

Observe que, para todo vértice v ∈ V, os elementos do conjunto Xσ(v) são exatamente os elementos da clique à qual o vértice v é ligado no decorrer da construção segundo o EEP σ. Dado um EEP σ, a representação de um grafo cordal G = (V, E) por conjuntos de adjacência restritos consiste em uma seqüência de pares

Rσ(G) = [(σ(i), Xσ(σ(i)) | i = 1, ..., n].

Vale observar que esta representação é única para um dado grafo e um EEP.

Considerando o EEP [i, a, h, g, f, b, e, c, d], o grafo da Figura 1 tem a seguinte representação: [(i,{a,d}), (a,{b,d,e}), (h,{b,f,g}), (g,{b,e,f}), (f,{b,e}), (b,{d,e}), (e,{c,d}), (c,{d}), (d,∅)]. Em uma representação obtida por este esquema, devem ser mencionados, ao todo,

Σ

v∈V

[

1+ |Xσ(v)|

]

= n + m

símbolos. Pode-se notar que esta representação é mais econômica do que a tradicional representação por conjuntos de adjacência, que demanda n + 2m símbolos.

O armazenamento em memória desta representação consiste em uma estrutura ortogonal em que os nós da lista principal (vertical), obrigatoriamente seqüencial, armazenam informações sobre os vértices do grafo; a ordem em que os vértices aparecem nesta lista principal é a mesma do EEP. De cada um dos nós da lista vertical emerge uma lista secundária (horizontal), que possui um nó para cada elemento do conjunto de adjacência restrito.

A Figura 3 mostra o armazenamento do grafo da Figura 1 na memória, considerando o EEP [i, a, h, g, f, b, e, c, d]. Note que a última lista horizontal é sempre vazia.

Figura 3: Armazenamento em memória.

Duas operações são fundamentais em algoritmos que utilizam esta representação: a determinação de σ(i) e a determinação de σ-1(v). A primeira delas tem solução imediata (em O(1)) no armazenamento ora proposto. Para que a segunda operação seja também eficiente, é necessário utilizar uma estrutura de dados auxiliar que, para cada vértice do grafo, indique sua posição no EEP. Se o conjunto dos vértices for V = {1, ..., n}, n ≥ 1, um vetor é suficiente para que a operação seja também executada em O(1).

i a h g f b e c d a b d b f b e b d c d d e e f g e d i a h g f b e c d a b d b f b e b d c d d e e f g e d

(5)

4. DETERMINAÇÃO DOS VÉRTICES SIMPLICIAIS

Conforme mencionado na Seção 1, a determinação dos vértices simpliciais de um grafo cordal G = (V, E) é um problema bastante importante, que tem sido negligenciado em função de sua aparente simplicidade. Nossa solução baseia-se na determinação prévia das cliques maximais de G, permitindo também deduzir o valor do tamanho da maior clique ω(G) e, conseqüentemente, do número cromático χ(G) = ω(G).

Etapa 1: Determinação das cliques maximais.

Teorema 3. Sejam G = (V, E) um grafo cordal e Rσ(G) = [(σ(i), Xσ(σ(i)) | i = 1, ..., n] uma

representação de G por conjuntos de adjacência restritos. Toda clique maximal de G é da forma {v} ∪ Xσ(v), onde v ∈ V.

Prova. Seja Q uma clique maximal de G. Seja v ∈ Q tal que σ-1(v) = min {σ-1

(w) | w ∈ Q}. Todos os vértices de Q − {v} são adjacentes a v, então Q − {v} ⊆ Xσ(v). Suponha que exista

x ∈ Xσ(v) − Q. Sabe-se, pela definição de EEP, que {v} ∪ Xσ(v) é uma clique; ora, esta clique conteria propriamente Q, o que contraria a hipótese de Q ser maximal.

Por observação do grafo da Figura 1 e seu EEP σ = [i, a, h, g, f, b, e, c, d], suas cliques maximais podem ser determinadas: {a, d, i}, {a, b, d, e}, {b, h, g, f}, {b, e, g, f} e {c, d, e}. Para os vértices i, a, h, g e e, o conjunto {v} ∪ Xσ(v) corresponde a uma clique maximal do grafo; para os

demais, não.

Considere a construção indutiva apresentada na Seção 3. Nesta construção, os vértices são acrescentados ao grafo cordal na ordem inversa à que aparecem no EEP. Ao acrescentarmos um novo vértice σ(i), este é ligado à clique Xσ(σ(i)) do grafo G[{σ(i+1), ..., σ(n)}], gerando o grafo

cordal G[{σ(i), ..., σ(n)}], com um EEP [σ(i), ..., σ(n)]. Por ser o primeiro vértice do esquema, a clique {σ(i)} ∪ Xσ(σ(i)) é obrigatoriamente maximal em G[{σ(i), ..., σ(n)}]. Quanto à clique

Xσ(σ(i)), à qual σ(i) foi ligado, duas situações podem ocorrer:

• Se Xσ(σ(i)) é maximal em G[{σ(i+1), ..., σ(n)}], então ela se transforma na clique maximal

{σ(i)} ∪ Xσ(σ(i)) em G[{σ(i), ..., σ(n)}];

• Se Xσ(σ(i)) é subconjunto de uma clique maximal Q de G[{σ(i+1), ..., σ(n)}], tanto Q quanto

{σ(i)} ∪ Xσ(σ(i)) serão cliques maximais em G[{σ(i), ..., σ(n)}].

A Etapa 1 do Algoritmo 1 determina as cliques maximais Q1, ..., Qt do grafo cordal G, utilizando

as idéias apresentadas acima. A cada vértice é associado um rótulo N que armazena o índice da primeira clique maximal obtida durante o processo à qual ele pertence. Os vértices são processados na ordem reversa à que aparecem na representação por conjuntos de adjacência restritos. Para cada vértice σ(i), são executados os seguintes passos:

• Passo 1: determinar o vértice v de Xσ(σ(i)) de menor posição no EEP;

• Passo 2: reconhecer se a clique Xσ(σ(i)) é maximal em G[{σ(i+1), ..., σ(n)}]. O rótulo N(v)

armazena o número da primeira clique maximal Q obtida durante o processo à qual v pertence. Como Q contém todas as subcliques possíveis que possuem v como menor vértice, Xσ(σ(i)) é

maximal em G[{σ(i+1), ..., σ(n)}] se, e somente se, |Xσ(σ(i))| = |Q|.

Etapa 2: Deteminação dos vértices simpliciais.

Lema 4 (Blair e Peyton(1993)). Num grafo G = (V, E), v ∈ V é simplicial se e somente se v pertence somente a uma clique maximal.

(6)

Observe que, ao final da Etapa 1, não só as cliques maximais estão determinadas, como também o rótulo N(v) indica a clique maximal em que o vértice v foi alocado pela primeira vez. Ora, se v pertence somente a uma clique maximal Q, então seu grau no grafo deve ser |Q| − 1, garantindo que ele seja vizinho apenas dos vértices de Q. A Etapa 2 implementa este teste. Os graus dos vértices são determinados ainda na Etapa 1, quando do percurso dos conjuntos de adjacência restritos do grafo.

Algoritmo: Determinação das cliques maximais e dos vértices simpliciais de um grafo cordal; Entrada: Um grafo cordal G = (V, E), representado por Rσ(G) = [(σ(i), Xσ(σ(i)) | i=1, ..., n];

Saída: As cliques maximais Q1, ..., Qt de G e o conjunto Simpliciais;

Início Etapa 1: t ← 1; Q1 ← {σ(n)}; grau(σ(n)) ← 0; N(σ(n)) ← 1; Para i ← n − 1, ..., 1 faça grau(σ(i)) ← 0; v ← σ(n);

Para w ∈ Xσ(σ(i)) faça grau(σ(i)) ← grau(σ(i)) + 1; grau(w) ← grau(w) + 1; Se σ-1(w) < σ-1(v) então v ← w; k ← N(v); Se |Xσ(σ(i))| < |Qk| então k ← t ← t + 1;

Qk ← {σ(i)} ∪ Xσ(σ(i)); % Uma nova clique maximal é criada

caso contrário

Qk ← {σ(i)} ∪ Qk; % A clique maximal antiga é estendida N(σ(i)) ← k;

Etapa 2:

Simpliciais ← ∅;

Para i ← 1, ..., n faça

k ← N(σ(i));

Se grau(σ(i)) = |Qk| − 1 então Simpliciais ← Simpliciais ∪ {σ(i)};

Fim.

Supondo que as operações sobre conjuntos sejam implementadas de modo a tomarem tempo O(1), a complexidade do algoritmo é claramente O(m), pois, para cada vértice considerado, seu conjunto de adjacência restrito é percorrido.

5. CONSIDERAÇÕES FINAIS

Uma nova representação, com base em um esquema de eliminação perfeita (EEP), foi apresentado para grafos cordais. A idéia de associar a cada vértice de um EEP a clique à qual ele foi ligado durante a correspondente construção do grafo, além de redundar em uma forma mais econômica de representação, viabiliza a resolução de um problema algorítmico de extrema relevância: a determinação do conjunto de cliques maximais. Obtido este conjunto, mostramos como explicitar, de maneira bastante simples, o conjunto de todos os vértices simpliciais do grafo. O algoritmo apresentado tem complexidade linear, em tempo e espaço, no tamanho do grafo.

(7)

6. REFERÊNCIAS BIBLIOGRÁFICAS

Blair, J. R. S., Peyton, B. (1993). An Introduction to Chordal Graphs and Clique Trees in J. A. George, J. R. Gilbert, J. W. Liu editors, Graph Theory and Sparse Matrix Computation, IMA Volumes in Mathematics and its Applications 56, 1-29, Springer-Verlag.

Chandran L.S., Ibarra, L., Ruskey, F., Sawada, J. (2003). Generating and Characterizing the Perfect Elimination Orderings of a Chordal Graph, Theoretical Computer Science 307, 303-317.

Gavril, F. (1972). Algorithms for Minimum Coloring, Minimum Clique, Minimum Covering by Cliques, and Maximum Independent Set of a Chordal Graph, SIAM J. of Comput. 1, 180-187. Golumbic, M.C. (1980). Algorithmic Graph Theory and Perfect Graphs, New York: Academic Press.

Habib, M., Paul, C., Telle, J.A. (2003). A Linear-time Algorithm for Recognition of Catval Graphs, Proc. of EUROCOMB 2003.

Uehara, R. (2004). Canonical Data Structure for Interval Probe Graphs, Proc. of ISAAC 2004, Lecture Notes in Computer Science 3341, 859-870.

Referências

Documentos relacionados

No capítulo 4 são abordados os principais resultados obtidos diante das restrições impostas à coleta de dados, bem como a avaliação dos dados obtidos caracterizando os períodos

O Conselho Federal de Psicologia (CFP) apresenta à categoria e à sociedade em geral o documento de Referências Técnicas para a Prática de Psicólogas(os) em Programas de atenção

45 Figure 18 - Study of the extract concentration in the phycobiliproteins extraction and purification using the mixture point composed of 10 wt% Tergitol 15-S-7 + 0.3

Na experiência em análise, os professores não tiveram formação para tal mudança e foram experimentando e construindo, a seu modo, uma escola de tempo

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Apesar dos esforços para reduzir os níveis de emissão de poluentes ao longo das últimas décadas na região da cidade de Cubatão, as concentrações dos poluentes

Como objetivos específicos, pretende-se, através do presente trabalho efetuar a: - Caracterização molecular das mutações no gene KRAS (codões 12 e 13) de pacientes com

Also due to the political relevance of the problem of repressing misguided employment relationships, during the centre-left Prodi Government (2006-2008) and the