grafos cordais e árvores de eliminação

Propaganda
A pesquisa Operacional e os Recursos Renováveis
4 a 7 de novembro de 2003, Natal-RN
GRAFOS CORDAIS E ÁRVORES DE ELIMINAÇÃO
Maximiliano Pinto Damas
Instituto Militar de Engenharia
Depto. de Engenharia de Sistemas
Praça General Tibúrcio 80
CEP 22290-270 Rio de Janeiro – RJ
e-mail: [email protected]
Claudia Marcela Justel
Instituto Militar de Engenharia
Depto. de Engenharia de Sistemas
Praça General Tibúrcio 80
CEP 22290-270 Rio de Janeiro – RJ
e-mail: [email protected]
RESUMO
Neste trabalho serão apresentados resultados obtidos por LIU utilizando o conceito de
árvore de eliminação para grafos cordais. O conceito de árvore de eliminação foi introduzido
para definir uma estrutura utilizada no método multifrontal de DUFF e REID que resolve
eficientemente sistemas de equações algébricas lineares esparsos.
Supondo um grafo cordal e utilizando a árvore de eliminação definido pelo método
multifrontal para resolver o sistema de equações correspondente, pode-se obter um O(m½)separador do grafo cordal e descrever o mesmo como grafo de intersecção de subárvores.
Palavras-Chave: grafos cordais, grafo de intersecção, conjunto separador, sistemas de equações
lineares esparsos, método multifrontal.
ABSTRACT
In this work we present the results obtained by LIU using the elimination tree for chordal
graphs. This concept was introduced to define a structure used in the multifrontal method of
DUFF e REID which solves efficiently sparse linear systems.
Given a chordal graph we can define the elimination tree used by the multifrontal method
to solve the subjacent equation systems. With this elimination tree, a O(m½)-separator of the
chordal graph can be obtained. Thus, it is possible to describe the original graph as the
intersection graph of a family of subtrees of the elimination tree.
Keywords: chordal graphs, intersection graphs, separator set, sparse linear systems, multifrontal.
method.
1. INTRODUÇÃO
O método de fatorização de matrizes de Cholesky determina um algoritmo O(n3) para
resolver sistemas de equações lineares algébricas, onde a matriz de coeficientes é simétrica e
definida positiva. Na atualidade, algoritmos iterativos mais complexos, por exemplo algoritmos
de pontos interiores em Programação Linear, utilizam o método de Cholesky para inverter
matrizes a cada iteração. É importante então obter melhoras na performance de Cholesky
quando a matriz de coeficientes for esparsa. O método multifrontal proposto por (DUFF e
REID, 1983) procura este objetivo computando a fatorização de uma matriz de maneira
adequada para minimizar o espaço de armazenamento e os cômputos realizados durante a
mesma.
Nos últimos anos, estudos sobre treewidth e tree-decomposition provaram que a eficiência
do método multifrontal (tamanho do menor front = tamanho da menor matriz frontal = treewidth
do grafo) depende da estrutura do grafo associado à matriz de coeficientes do sistema de
equações lineares (BODLAENDER, GILBERT et al. 1995) e (DAMAS, 2003).
Grafos cordais são uma classe importante de grafos perfeitos (SZWARCFITER 1986).
Diversos resultados e algoritmos tem sido propostos para esta classe de grafos. Um grafo
G=(V,E), sendo n = |V| e m = |E|, é cordal se qualquer ciclo de tamanho maior que quatro não
possui cordas. No caso da matriz de coeficientes para um sistema de equações lineares
algébricas esparsas, deve-se observar que quando o grafo associado a essa matriz de coeficientes
for cordal é possível utilizar algoritmos eficientes para realizar a fatorização da matriz (LIU,
1992) e (DAMAS, 2003).
Um conjunto separador de vértices de um grafo conexo G = (V,E) é um conjunto de
vértices S ⊆ V tal que o grafo G[V-S] obtido pela remoção S de G torna-se desconexo. Se F é
uma família de conjuntos, então o grafo G sobre F com XY ∈ E(G) ⇔ X ∩Y = ∅ é chamado de
grafo de intersecção de F. Referências sobre conceitos básicos em teoria de grafos podem ser
encontradas em (SZWARCFITER, 1986) e (DIESTEL, 2000).
Alguns resultados podem ser obtidos da utilização da árvore de eliminação definida no
método multifrontal para o caso particular em que o grafo associado à matriz de coeficientes do
sistema de equações lineares é um grafo cordal. O objetivo deste trabalho é apresentar
resultados conhecidos na literatura que permitem determinar um O(m½)-separador do grafo
cordal e descrever o mesmo como grafo de intersecção de subárvores a partir da árvore de
eliminação.
O trabalho está organizado da seguinte maneira. A Seção 2 apresenta uma breve descrição
do método de fatorização de Cholesky e do método Multifrontal.
Na Seção 3 é definido o conceito de árvore de eliminação e apresentada a sua obtenção a
partir da matriz de fatorização.
A Seção 4 apresenta algumas informações obtidas a partir da árvore de eliminação que
serão utilizadas nas seções seguintes.
As Seções 5 e 6 introduzem os resultados obtidos por Liu para grafos cordais utilizando
árvore de eliminação.
2. FATORIZAÇÃO DE CHOLESKY E MÉTODO MULTIFRONTAL
Seja dado o seguinte Sistemas de Equações Algébricas Lineares
(1) Ax = b,
onde a matriz de coeficientes A ∈ Rn×n é esparsa, simétrica e definida positiva, o vetor solução x
∈ Rn e o vetor lado direito b ∈ Rn. Uma representação que explora plenamente a característica
esparsa de uma matriz A, é considerá-la na forma de um grafo GA (não-orientado) onde cada
aresta unindo os vértices xi e xj indica a existência de elemento não nulo na posição aij (e aji por
simetria). Consideram-se x1, x2, ..., xn os vértices do grafo, onde o vértice xj corresponde a jésima linha/coluna da matriz A. Na Figura 1 tem-se um exemplo de uma matriz de coeficientes
A e o grafo associado GA.
2454
a
●
●
b
●
●
●
c
●
d
A=
●
e
f
●
●
●
●
●
●
●
●
●
●
g
●
●
●
●
●
i
●
●
h
●
●
j
FIG. 1 - Exemplo de uma matriz de coeficientes A e seu respectivo grafo GA.
Quando a matriz de coeficientes é simétrica, ela é geralmente decomposta como segue:
(2) PAPT = LDLT,
onde P é uma matriz de permutação que reorganiza a matriz A para preservar a esparsidade, e L
e D são matrizes triangulares e diagonais, respectivamente.
O processo de fatorizacão de uma matriz pode ser pensado como o processo de eliminação
de vértices no grafo correspondente GA. O processo de eliminação repete os seguintes passos até
não existirem mais vértices: determinar um vértice v, removê-lo do grafo, e adicionar arestas
entre os vizinhos de v que ainda não são adjacentes. As arestas adicionadas durante o processo
de eliminação são chamadas de arestas de preenchimento (também chamadas como elemento
de preenchimento). O grafo GFπ é obtido pela adição no grafo GA de todas as arestas de
preecnhimento que surgem quando a eliminação é realizada de acordo com uma ordenação π
sobre os vértices de GA. No decorrer deste trabalho denominaremos grafo de preenchimento ao
grafo GFπ correspondente ao processo de eliminação de vértices dado pela ordenação π descrito
para um grafo G. Quando não mencionarmos a seqüência de vértices π, significa que estaremos
abordando o grafo de preenchimento de um modo amplo, e nos referiremos a ele como GF.
Uma seqüência de vértices cuja eliminação na ordem estabelecida produz zero elementos
(arestas) de preenchimento é também chamada de um esquema de eliminação perfeita (ROSE,
TARJAN , LUEKER, 1976).
Um método muito utilizado na literatura para resolver sistemas de equações lineares
algébricas quando a matriz de coeficiêntes A é simétrica e definida positiva é o método de
fatorização de Cholesky que consiste em obter o fator de Cholesky denominado L, matriz
triangular inferior, tal que A = LLT. A partir desta fatorização da matriz A pode-se solucionar o
sistema (1) pela solução de dois sistemas triangulares equivalentes
(3) Ly = b e LTx = y.
2455
O primeiro passo de um procedimento iterativo para obter a fatorização de Cholesky pode
ser descrito da maneira seguinte:
(4)
A
=
d
wT
w
C
=
d1/2
0
I
0
d1/2
wT/d1/2
w/d1/2
I
0
C –wwT/d
0
I
Em (4), d denota a primeira entrada da diagonal e w é um vetor com dimensão (n-1). C é
uma matriz com dimensão (n-1)(n-1). O vetor w e o valor d1/2 juntos formam a primeira coluna
de L. As colunas restantes de L podem ser obtidas aplicando recursivamente a equação acima
para a submatriz C – wwT/d. Esta submatriz é densa e deve ser armazenada para uso nas
eliminações posteriores. Além disso, o vetor w é formado pelos elementos não nulos abaixo da
diagonal na coluna que está sendo eliminada. A equação (4) também mostra que um elemento
nulo em A pode tornar-se num elemento não nulo em L, pois se consideramos w = (w1...wi...wj...
wn-1) com wi e wj ≠ 0, e então, wij ≠ 0 em wwT e, deste modo um elemento na matriz C – wwT/d
pode ser não nulo mesmo que o correspondente elemento aij seja igual a 0. Em geral, a matriz L
tem muitos mais elementos não nulos do que a matriz A e este fato influencia enormemente a
performance de todo processo de fatorização. A quantidade de elementos não nulos introduzidos
pela fatorização (ou elementos de preenchimento no grafo correspondente) pode ser reduzida
reordenando as linhas e colunas de A antes da fatorização.
Supondo que j–1 passos da fatorização foram realizados, sendo j > 1, tem-se:
(5) A =
B
VT
V
C
=
LB
0
I
0
VLB-T
I
0 C – VB-1VT
LBT
LB-1VT
0
I
A partir da equação (5) obtém-se a igualdade B = LBLBT , que corresponde a fatorização de
Cholesky para a submatriz B da matriz A cuja dimensão é (j-1)x(j-1). O Complemento de
Schur definido como C – VB-1VT representa a parte da matriz A que resta para ser fatorizada
após (j-1) passos.
Observe na equação (5) a submatriz –VB-1VT cuja dimensão é (n-j+1)x(n-j+1) e que
representa as atualizações já computadas com as (j-1) linhas e colunas na submatriz C para
formar a submatriz C - VB-1VT. A submatriz de atualizações pode-se expressar em termos das
primeiras (j-1) colunas do fator LB da seguinte forma:
lj,k
j-1
–VB-1VT = -(VLB-T) (LB-1VT) = - Σ
(lj,k ... ln,k)
k=1
ln,k
Um método eficiente para computar a fatorização de uma matriz esparsa é o método
multifrontal desenvolvido por Duff e Reid (DUFF e REID, 1983) que reorganiza a fatorização
de Cholesky de uma matriz esparsa numa seqüência de fatorizações parciais de pequenas
matrizes densas. A característica inovadora deste método é que as contribuições da atualização
de uma coluna da matriz de fatores para a submatriz restante são computadas, mas não aplicadas
diretamente às entradas da matriz. Antes da atualização da matriz ser efetivamente realizada o
método espera que as demais contribuições de outras colunas do fator LB sejam calculadas, para
só assim dar prosseguimento às atualizações.
Assim, a matriz de atualizações é simplesmente a soma dos produtos de porções
apropriadas das (j-1) colunas do fator LB. O método multifrontal oferece um gerenciamento
efetivo desta soma de produtos na submatriz –VB-1VT quando a matriz A for esparsa.
2456
3. ÁRVORE DE ELIMINAÇÃO
No sistema (1) a matriz A é irredutível, portanto cada uma das primeiras (n-1) colunas de L
em (2) tem no mínimo um elemento não-nulo fora da diagonal principal. Denota-se por Lt a
matriz resultante da remoção de todos os elementos não-nulos da coluna j < n de L com exceção
do primeiro elemento fora da diagonal principal, e denota-se por Ft = Lt + LtT a matriz da árvore
de eliminação. A árvore de eliminação T (ou TA quando for necessário identificar a matriz
correspondente ao grafo) consiste de n nós, cada um correspondente a uma coluna na matriz L, e
é definida da seguinte forma: O nó p é pai do nó j em T se e somente se
p = min {i > j | lij ≠ 0}.
Na Figura 2 temos um exemplo da matriz de preenchimento F e a matriz da árvore de
eliminação Ft correspondentes à matriz de coeficientes A da Figura 1. Os elementos não-nulos
fora da diagonal são indicados por “●” enquanto que “o” é usado para denotar um elemento de
preenchimento na matriz.
a
●
●
b
●
●
●
c
●
o
d
F=
●
●
e
●
●
●
●
●
●
g
o
o
●
o
h
●
●
●
●
●
i
o
●
●
●
o
j
●
b
●
●
c
●
d
Ft =
●
f
●
a
●
●
●
e
●
●
●
●
f
●
●
g
o
o
h
●
●
i
O
o
j
FIG. 2 - A matriz de preenchimento F e a matriz Ft da árvore de eliminação, relativas a matriz
de coeficientes A da Figura 1.
2457
Na Figura 3 temos um exemplo do grafo de preenchimento GF e a árvore de eliminação TA
correspondentes às matrizes da Figura 2.
FIG. 3 - O grafo de preenchimento GF e a árvore de eliminação TA correspondentes as matrizes
F e Ft apresentadas na figura anterior.
Para um grafo G e um vértice v em G, utiliza-se AdjG(v) para denotar o conjunto de vértices
adjacentes a v no grafo. Pode-se estender este operador Adj para subconjuntos de vértices. Para
um subconjunto de vértices S, define-se que o conjunto adjacente de S em G é
AdjG(S) = {x ∉ S | x ∈ Adj(v) para qualquer v ∈ S}.
4. INFORMAÇÕES OBTIDAS DA ÁRVORE DE ELIMINAÇÃO
4.1 CARACTERIZAÇÃO DAS ARESTAS DE PREENCHIMENTO
Assumiremos que i, j e k são índices e satisfazem a condição i > j > k.
Teorema 1 (LIU, 1992). Se lij ≠ 0, então o nó xi é um ancestral de xj na árvore de
eliminação.
Teorema 2 (ROSE, TARJAN e LUEKER, 1976). Seja i > j. Temos lij ≠ 0 se e somente se
existir um caminho xi, xp1, ..., xpt, xj no grafo GA tal que todos índices em {p1, ..., pt} forem
menores que j.
Corolário 1 (LIU, 1990). O subconjunto de vértices AdjGA (T [xj]) ∪ {xj} corresponde a uma
clique no grafo de preenchimento GF.
4.2. ESTRUTURA DAS LINHAS NO FATOR DE CHOLESKY
Define-se Tr[xi] como a estrutura da i-ésima linha do fator de Cholesky L, isto é
Tr[xi] = {xi | lij ≠ 0, j ≤ i}.
Assim, deduz-se pelo Teorema 1 que Tr[xi] ⊆ T[xi], e do Teorema 2 que se aik ≠ 0, a
estrutura Tr[xi] incluirá todos os nós sobre o caminho entre xk e xi na árvore de eliminação. Em
(LIU, 1990) denominou-se Tr[xi] a subárvore da i-ésima linha de L.
2458
5. REPRESENTAÇÃO DOS GRAFOS DE INTERSECÇÃO DE GRAFOS CORDAIS
Seja a matriz de coeficientes A, definida em (1), com o seu grafo GA e o respectivo grafo
de preenchimento GF. Consideremos x1, x2, ..., xn a seqüência de eliminação de vértices. Seja TA
a árvore de eliminação correspondente, com Tr[x1], ...,Tr[xn] como a seqüência de subárvores de
linha, como definida na Seção 4.2.
Lema 1 (LIU, 1990). lij ≠ 0 se e somente se Tr[xi] ∩ Tr[xj] ≠ ∅.
Prova:
⇒) Assumir i > j. Pela definição tem-se que lij ≠ 0 se e somente se xj ∈ Tr[xi] ∩ Tr[xj] e
conseqüentemente Tr[xi] ∩ Tr[xj] ≠ ∅.
⇐) Por outro lado, se a intersecção das duas subárvores de linha é não vazia, digamos xs ∈
Tr[xi] ∩ Tr[xj], isto implica que o nó xj situa-se no caminho entre xs e xi na árvore de eliminação.
Assim xj ∈ Tr[xi] e isto implica que lij ≠ 0. □
Teorema 3 (LIU, 1990). O grafo cordal GF é o grafo de intersecção das subárvores de linha
na árvore de eliminação TA.
Prova: O resultado é obtido diretamente da aplicação do Lema 1. □
O resultado do Teorema 3 oferece um método construtivo para determinar a representação
do grafo de intersecção de qualquer grafo cordal. Na verdade, para um dado grafo cordal G,
primeiramente deve-se encontrar um esquema de eliminação perfeita x1, ..., xn para G. Após,
obtém-se a árvore de eliminação desta seqüência de nós e as subárvores de linha associadas
Tr[x1], ..., Tr[xn]. Assim o grafo cordal G é determinado pelo grafo de intersecção destas
subárvores de linha na árvore de eliminação.
Na Figura 4 apresentamos um exemplo de subárvore de linha para o grafo de
preenchimento GF e árvore de eliminação TA apresentados na Figura 3. Sabe-se que o grafo de
preenchimento GF é um grafo cordal, ou seja, um dos possíveis supergrafos do grafo associado à
matriz A completado com as arestas que faltavam para ele ser considerado um grafo cordal.
FIG. 4 – As subárvores de linha para a matriz A do exemplo da Figura 1. Para cada subárvore
está associado um identificador (vi, 1 ≤ i ≤ 10) que será utilizado para rotular os vértices do
grafo de intersecção que será gerado.
2459
Na Figura 5 tem-se o grafo de intersecção das subárvores de linha apresentadas na Figura
4.0
FIG. 5 – Grafo de intersecção das subárvores de linha da Figura 4.
Comparando o grafo obtido na Figura 5 com o grafo de preenchimento da Figura 3
verifica-se que eles são isomorfos, ou seja, estão de acordo com o resultado do Teorema 3.
6. SEPARADORES PARA GRAFOS CORDAIS
Seja a matriz F, apresentada na Figura 4, onde GF é um grafo cordal. Assume-se que as
linhas e colunas da matriz são ordenadas de maneira tal que não existam elementos de
preenchimento. Considere-se TA a árvore de eliminação correspondente. Supor, para o exemplo,
o grafo GF e a árvore de eliminação TA apresentadas na Figura 3.
O algoritmo separador definido por Gilbert, Rose e Edenbrandt em 1984, encontra um
conjunto com no máximo O(m½) vértices, cuja remoção divide um grafo cordal em
componentes conexos, sendo cada u3.82 1s0s1ada u3. exia u3a
F
F
2460
7. REFERÊNCIAS BIBLIOGRÁFICAS
BODLAENDER, H., GILBERT, J., HAFSTEINSSON, H e KLOKS, T. Approximating
Treewidth, Pathwidth, Frontsize and Shortest Elimination Tree, Journal of Algorithms
18, 238-255, 1995.
DAMAS, M. Sobre a solução eficiente de problemas em grafos utilizando treewidth e treedecomposition, Dissertação de Mestrado, Instituto Militar de Engenharia, Rio de Janeiro,
Brasil, 2003.
DIESTEL, R. Graph Theory, 2a edição, Springer, 2000.
DUFF, I. S. e REID, J. K. The multifrontal solution of indefinite sparse symmetric linear
equations, ACM Transaction Math. Software 9, p. 302-325, 1983.
LIU, J. W. H. The role of elimination trees in sparse factorization, SIAM Journal Matrix Anal.
Appl., Volume 11, Número 1, p. 134-172, 1990.
LIU, J. W. H. The multifrontal method for sparse matrix solution: Theory and Practice,
SIAM Review 34, p. 82-109, 1992.
ROSE, D. J., TARJAN, R. E. e LUEKER, G. S. Algorithmic aspects of vertex elimination on
graphs, SIAM Journal Comput. 5, p. 266-283, 1976.
SZWARCFITER, J. Grafos e Algoritmos Computacionais, 2a edição, Editora Campus Ltda,
1986.
2461
Download