Você está na página 1de 123

Esparsidade, Estrutura, Estabilidade e Escalamento em Algebra Linear Computacional

por

Julio M. Stern

Departamento de Ci^ encia de Computac~ ao do Instituto de Matematica e Estat stica da Universidade de S~ ao Paulo

Abril de 1994

Conteudo
Prefacio para a IX Escola de Computac~ ao
0.1 0.2 0.3 0.4 0.5 0.6 Import^ ancia da Area . . . . . . . . . . . . . Interdisciplinaridade . . . . . . . . . . . . . Serventia do Livro Texto . . . . . . . . . . . Plano de Aulas . . . . . . . . . . . . . . . . Comentario sobre a Bibliogra a de Suporte . Agradecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 2 3 3 3 4

~O 1 INTRODUCA

1.1 Panorama do Livro e seu Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Notac~ oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Representac~ ao de Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . Permutac~ oes e Operac~ oes Elementares Metodo de Gauss . . . . . . . . . . . . Pivoteamento . . . . . . . . . . . . . . Lema da Fatorac~ ao . . . . . . . . . . . O Metodo de Doolittle . . . . . . . . . Complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 6 9

~ O LU 2 FATORACA
2.1 2.2 2.3 2.4 2.5 2.6

13
13 15 16 18 19 21

3 RESUMO DE TEORIA DOS GRAFOS

3.1 Conceitos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Relac~ oes de Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 i

23

ii

Conteudo

3.3 Busca em Profundidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4 Grafos Simetricos e Casamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.5 O Algoritmo Hungaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

~ O ASSIMETRICA 4 ELIMINACA

4.1 Preenchimento Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2 Pre-Posicionamento de Piv^ os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.1 5.2 5.3 5.4 5.5 5.6 5.7 Matrizes Ortogonais . . . . . . . . . . Fatorac~ ao QR . . . . . . . . . . . . . . Espacos Vetoriais com Produto Interno Projetores . . . . . . . . . . . . . . . . Quadrados M nimos . . . . . . . . . . Programac~ ao Quadratica . . . . . . . . Fatorac~ ao de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

~ ES SIMETRICAS e ORTOGONAIS 5 FATORACO

45
45 45 47 47 48 48 49

~ O SIMETRICA 6 ELIMINACA

6.1 Grafos de Eliminac~ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 6.2 Grafos Cordais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.3 Ordenac~ oes por Dissecc~ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Estrutura Triangular Blocada Estrutura Angular Blocada . . Partic~ ao de Hipergrafos . . . . Paralelismo . . . . . . . . . . Fatorac~ oes Blocadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 73 74 75 76

53

7 ESTRUTURA
7.1 7.2 7.3 7.4 7.5

65

8 ESCALAMENTO

8.1 O Sistema de Ponto Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 8.2 Erros no Produto Escalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 8.3 Escalamento de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

79

Conteudo

9 ESTABILIDADE

9.1 Normas e Condic~ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.2 Perturbac~ oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.3 Erro na Fatorac~ ao LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Formulas de Modi cac~ ao Atualizac~ oes Estaveis . . Preservando Esparsidade Preservando Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

10 MUDANCA de BASE
10.1 10.2 10.3 10.4

97 100 101 105

97

Matlab Bibliogra a

113 119

Conteudo

Propomos, para a IX Escola de Computac~ ao, o curso acompanhado de livro texto: Esparsidade, Estrutura, Escalamento e Estabilidade em Algebra Linear Computacional. Embora abrangente o su ciente para a compreens~ ao dos principais problemas da area, a t^ onica do curso e a soluc~ ao de sistemas lineares esparsos e-ou estruturados. Na primeira sec~ ao da introduc~ ao damos uma vis~ ao panor^ amica sobre o tema e a organizac~ ao do livro. Neste prefacio ressaltamos algumas motivac~ oes para a inclus~ ao do curso na IX Escola de Computac~ ao, e esclarecemos a forma e o conteudo das palestras a serem dadas durante o mesmo.

0.1 Import^ ancia da Area


Grande parte do processamento de dados em ci^ encia envolve computac~ ao numerica, e a maior parte desta computac~ ao numerica s~ ao rotinas basicas de algebra linear. Varias aplicac~ oes em engenharia, f sica, pesquisa operacional, administrac~ ao ou matematica, geram problemas lineares cujas matrizes s~ ao esparsas (entre tantos outros: resoluc~ ao de equac~ oes diferenciais, analise de sistemas, circuitos ou estruturas, programac~ ao linear e n~ ao linear, otimizac~ ao de uxos em redes, etc...). Ademais, observa-se que a densidade destas matrizes decresce com a dimens~ ao do 3 problema: tipicamente apenas n 2 ou n log(n) de seus n elementos s~ ao n~ ao nulos. Assim, quanto maiores e mais complexas os problemas (e usuarios sempre querem resolver modelos maiores), mais importante se torna usar e cientemente a esparsidade e a estrutura das matrizes envolvidas. Por exemplo, na area de otimizac~ ao, problemas hoje considerados de grande porte envolvem milh~ oes de equac~ oes, sendo a maioria destes problemas altamente estruturados, muito esparsos, e usando mais de 99% do tempo de resoluc~ ao em rotinas basicas de algebra linear!
2

0.2 Interdisciplinaridade
Um aspecto que, a nosso ver, torna o tema interessante para um evento como a Escola de Computac~ ao e sua interdisciplinaridade, vejamos: A resoluc~ ao dos problema de algebra linear envolve os aspectos classicos de complexidade, converg^ encia e estabilidade de analise numerica. O tratamento de esparsidade e estrutura e um problema essencialmente combinatorio, envolvendo teoria de grafos, hipergrafos, e heur sticas para soluc~ ao de problemas de programac~ ao matematica discreta. A paralelizac~ ao destes algoritmos, ou o desenvolvimento de novos metodos, em ambientes t~ ao diversos como maquinas de memoria compartilhada ou redes de estac~ oes de trabalho, vem liderando as pesquisas na area nos ultimos anos.

0.3. Serventia do Livro Texto

0.3 Serventia do Livro Texto


O curso que se segue foi recentemente montado como a disciplina MAC-795, Metodos Computa-cionais da Algebra Linear, no programa de mestrado do Departamento de Ci^ encia da Computac~ ao da Universidade de S~ ao Paulo. Cursos de metodos computacionais da algebra linear tem se popularizado nos ultimos anos em muitos departamentos de computac~ ao, engenharia e matematica aplicada. Era minha intenc~ ao escrever mais um cap tulo sobre metodos iterativos mas, ao perceber que meu rascunho duplicava o tamanho do presente livro, resolvi postergar a tarefa para outra ocasi~ ao.

0.4 Plano de Aulas


Em cinco palestras de 90 minutos e poss vel dar um bom panorama da area, sua import^ ancia, problemas, metodos, e perspectivas. O material das palestras foi distribu do da seguinte forma: 1. Introduc~ ao: Vis~ ao geral da area, sua import^ ancia, origem de problemas de grande porte, e aspectos essenciais para a sua soluc~ ao. 2. Esparsidade, Eliminac~ ao Assimetrica: Minimizac~ ao de preenchimento local, outras heur sticas, atualizac~ oes de base. 3. Esparsidade, Eliminac~ ao Simetrica: Arvores de eliminac~ ao, heur sticas de ordenac~ ao, heur sticas de dissecc~ ao. 4. Estrutura: Esparsidade macroscopica, metodos de blocos, heur sticas de reduc~ ao a formas blocadas. 5. Paralelismo: Uso de esparsidade uso de estrutura, granularidade, e potencialidades de ambientes com diferentes coe cientes entre velocidade de processamento e velocidade de comunicac~ ao.

0.5 Comentario sobre a Bibliogra a de Suporte


Para a parte classica de analise numerica ha uma farta variedade de livros texto, como: Stewart-73] e Golub-83]. Existem alguns livros ou colet^ aneas sobre matrizes esparsas em ambiente sequencial, sendo os principais: Rose-72], Tewarson-73], Bunch-76], Du -79], George-81] e tambem Pissan84] e Du -86]. Com excec~ ao dos dois ultimos, estes livros ja est~ ao bastante desatualizados e esgotados. Algebra Linear Computacional, sob o enfoque de Computac~ ao Paralela, e um campo de intensa pesquisa atual: Exclusivamente para matrizes densas ha varias obras publicadas, x1como:

Conteudo

Bertsekas-89] e Dongarra-91]. Colet^ aneas de artigos sobre algebra linear computacional em ambiente paralelo, trazendo alguns artigos sobre matrizes esparsas, s~ ao muito poucos; como: Carey89], Vorst-89] e Gallivan-90]. Nestas resenhas encontra-se tambem uma extensiva bibliogra a comentada da area.

0.6 Agradecimentos
No DCC-IME-USP, Departamento de Ci^ encia da Computac~ ao da Instituto de Matematica e Estat stica da Universidade de S~ ao Paulo, contei sempre com a ajuda e o encorajamento de muitos colegas, como os Professores Marcos D. Gubitoso, Arnaldo Mandel, Kunio Okuda, Siang W. Song e Routo Terada. Sou especialmente grato ao coordenador do grupo de Programac~ ao Matematica, Professor Carlos Humes Jr. No CEMCAP-IME-USP, Centro de Matematica e Computac~ ao Aplicadas, tive sempre o apoio dos Professores Marco Antonio Raupp, Pedro A. Morettin e Carlos A. B. Pereira. No NOPEFUSP, Nucleo de Otimizac~ ao e Processos Estocasticos Aplicados a Economia e Financas, contei com o companheirismo dos Professores Marcos Eug^ enio da Silva, Jose Carlos Santos e Jo~ ao Carlos Prandini. Em varias oportunidades recebi a colaborac~ ao do Eng. Fabio Nakano e do Prof. Jacob Zimbarg sobrinho. Partes deste livro baseiam-se em trabalhos feitos com o Professor Stephen A. Vavasis, da Universidade de Cornell. A apresentac~ ao de alguns topicos foi inspirada em disciplinas ministradas pelo Professor Thomas F. Coleman, na mesma Universidade. Em 1992 montamos a disciplina MAC-795, Metodos Computacionais da Algebra Linear, para o programa de mestrado do DCCIME-USP. A apostila que acompanhou o curso serviu de base para este livro. Devo a Paulo Regis Zanjacomo, presentemente na Universidade de Cornell, e a Professora Celma O. Ribeiro, da Escola Politecnica da USP, varias cr ticas, comentarios, e sugest~ oes que em muito melhoraram aquela primeira vers~ ao deste texto. Dos promotores da IX Escola de Computac~ ao, inclusive do an^ onimo, cr tico e bem humorado referee, e da Universidade Federal de Pernambuco (UFP-Recife), recebi todo o necessario suporte. A todos estes amigos, a minha esposa, Marisa, e a meus lhos, Rafael, Ana Carolina e Deborah, minha gratid~ ao.

Cap tulo 1 ~O INTRODUCA


1.1 Panorama do Livro e seu Tema
O objetivo deste curso e o estudo de metodos computacionais para a resoluc~ ao de sistemas lineares, Ax = b. Enfatizaremos quatro aspectos da construc~ ao de bons metodos computacionais: dade de elementos n~ ao nulos.

Esparsidade: Como resolver e cientemente sistemas cujas matrizes tenham baixa densi-

Estrutura: Como resolver e cientemente sistemas esparsos cujos elementos n~ ao nulos est~ ao
dispostos com uma certa regularidade na matriz de coe cientes.

Escalamento: Como minimizar erros de arredondamento gerados ao operarmos com numeros


de ordem de grandeza muito diferente, numa representac~ ao de precis~ ao limitada. nal gerada pelo algoritmo.

Estabilidade: Como lidar com o efeito cumulativo dos erros de arredondamento na soluc~ ao
As ferramentas relevantes para a analise e implementac~ ao de algoritmos e cientes de algebra linear est~ ao espalhados entre diversas areas, areas estas a ns-mas-nem-tanto, como Teoria de Grafos e Hipergrafos, Algebra Linear, Analise Numerica, e Teoria de Processamento Paralelo. O proposito destas notas e apresentar este material de forma razoavelmente coerente e didatica. O Cap tulo 2 exp~ oe o metodo de Gauss para soluc~ ao de sistemas lineares, invers~ ao, ou fatorac~ ao de matrizes. Os metodos para matrizes esparsas lidam com a estrutura da disposic~ ao dos elementos n~ ao nulos dentro da matriz, e esta estrutura e convenientemente descrita e manipulada em termos da teoria de grafos. O Cap tulo 3 e um resumo de conceitos basicos desta teoria. Conceitos mais avancados (ou menos usuais) como grafos cordais, separadores, e hipergrafos, s~ ao tratados em outros cap tulos. 5

~ Cap tulo 1. INTRODUCAO

No Cap tulo 4 estudamos tecnicas para tratar sistemas esparsos assimetricos, principalmente preenchimento local, e a heur stica P3. Desenvolvimentos posteriores deste tema encontram-se tambem no cap tulo 7. O Cap tulo 5 exp~ oem as Fatorac~ oes QR e de Cholesky, e sua utilizac~ ao na soluc~ ao de problemas de quadrados m nimos, programac~ ao quadratica, e construc~ ao de projetores. No Cap tulo 6 estudamos tecnicas para tratar sistemas esparsos simetricos; incluindo toda a necessaria teoria de grafos cordais. O capitulo 7 trata da estrutura de um sistema, que pode ser vista como regularidades no padr~ ao de esparsidade, ou como a decomposic~ ao do sistema em sub-sistemas acoplados. Neste cap tulo estudamos brevemente a paralelizac~ ao de alguns dos algoritmos, tema que ja aparece implicitamente em cap tulos anteriores. O Capitulo 8 e dedicado a analise do efeito dos inevitaveis erros de arredondamento nos procedimentos computacionais. No Capitulo 9 analisamos quanto estes erros podem degradar a soluc~ ao nal de um problema. Estes dois cap tulos tratam dos aspectos de Analise Numerica que, embora n~ ao sendo a t^ onica do curso, n~ ao podem ser desprezados. O Cap tulo 10 trata do problema de mudanca de base, i.e., de atualizar a inversa de uma matriz quando nesta se substitui uma unica coluna. Este problema e de fundamental import^ ancia para muitos algoritmos de Otimizac~ ao. Parte da avaliac~ ao numa disciplina como a proposta deve ser feita com exerc cios-programa, como os dados ao longo das notas. E recomendavel o uso de uma linguagem estruturada, que inclua entre seus tipos basicos, numeros reais de precis~ ao simples e dupla, inteiros, campos de bits e ponteiros, que permita a facil construc~ ao e manipulac~ ao de estruturas, e para a qual haja compiladores em computadores dos mais diversos portes. As linguagens C, C++ e FORTRAN-90 s~ ao sugest~ oes naturais. Ambientes iterativos para calculo matricial, como Matlab, s~ ao um grande est mulo a experimentac~ ao e comparac~ ao de diversos de metodos numericos, facilitando a rapida prototipagem e teste de algoritmos. Apresentamos uma introduc~ ao a este tipo de ambiente como ap^ endice.

1.2 Notac~ oes


Utilizaremos letras maiusculas, A; B; : : :, para denotar matrizes, e letras minusculas, a; b; : : :, para vetores. Numa matriz ou vetor, os ndices de linha ou coluna ser~ ao, respectivamente, subscritos j ou superscritos a direita. Assim: Ai e o elemento na i-esima linha e na j -esima coluna da matriz A; bi e o elemento na i-esima linha do vetor-coluna b; e cj e o elemento na j -esima coluna do vetor-linha c. Indices ou sinais a esquerda, superscritos ou subscritos, identi cam vetores ou matrizes distintas. Assim:A, 0A, j A, iA, j ao matrizes distintas. Tambem a letra forma, a esquerda de i A, : : : s~ uma letra latina o nome de um vetor ou matriz, como a ou A. As demais letras gregas usaremos geralmente para escalares ou func~ oes. Frequentemente nos referimos aos blocos componentes de vetores ou matrizes, como por ex-

1.2. Notac~ oes


h i

emplo: se b e c s~ ao vetores linha a = b c e um vetor linha cujos primeiros elementos s~ ao os elementos de b, e os elementos seguintes s~ ao os elementos de c. Analogamente, A A A A= A A A A A A representa uma matriz blocada, desde que as dimens~ oes dos blocos sejam compat veis. Se A e uma matriz, Ai representa a i-esima linha de A, e Aj sua j -esima coluna, de modo que se A e mxn, A A A = A A : : : An = .. . Am
2 1 1 6 6 1 4 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 3 7 7 5 2 6 6 6 6 6 4 3 7 7 7 7 7 5 1 2 h 1 2 i

Uma matriz diagonal sera denotada como


2 6 6 6 6 6 4

3 1

diag(d) = D =

...

dn

7 7 7 7 7 5

d d ; d = .. . dn
2 6 6 6 6 6 4 1

7 7 2 7 7 7 5

O vetor unitario, 1, e o vetor, linha ou coluna, em que todos os elementos s~ ao iguais a 1, isto e, 1 = 1 1 : : : 1 . Assim a matriz identidade e I = diag(1). O j -esimo versor de dimens~ ao n e I j , a j -esima coluna da matriz identidade de dimens~ ao n. A transposta, a inversa e a transposta da inversa de uma matriz A s~ ao denotadas, respectivamente, por A0, A e A t. O determinante de uma matriz A, nxn, e
h i 1

det(A) =
h 1 2 i

S (p)Ap Ap : : : An pn
1 (1) 2 (2)

( ) h i

onde p = p p : : : pn e uma permutac~ ao dos elementos de p = 1 2 : : : n . O sinal de permutac~ ao, S (p), e +1 ou -1 conforme o numero de trocas de pares de elementos que e necessario fazer em p para retornar a p, seja par ou mpar. O conjunto dos elementos em cada um dos termos na somatoria da de nic~ ao do determinante e denominado uma diagonal da matriz. A diagonal correspondente a pemutac~ ao p e denominada diagonal principal. Uma matriz quadrada e singular se tiver determinante nulo. O posto de uma matriz A, rank(A), e a dimens~ ao de sua maior sub-matriz quadrada n~ ao singular. Dado um sistema Ax = b, com matriz de coe cientes A nxn n~ ao singular, a Regra Cramer nos diz que o sistema tem por unica soluc~ ao
0 0 0

x j xi = det( A : : : Ai
1

b Ai

+1

An )=det(A):

~ Cap tulo 1. INTRODUCAO

O traco de uma matriz A; nxn, e a soma de seus elementos na diagonal principal:

tr(A) =

i=1

Aii :

A matriz booleana associada a matriz A; B (A), e a matriz, da mesma dimens~ ao de A, em j j j j que B (A)i = 1 se Ai 6= 0, e B (A)i = 0 se Ai = 0. O complemento de uma matriz booleana B , e a matriz booleana B , da mesma dimens~ ao de B , tal que Bij = 1 , Bij = 0. Os conjuntos N = f1; 2; :::; ng e M = f1; 2; :::; mg ser~ ao frequentemente usados como dom nios de ndices. Assim, se A e uma matriz mxn, faz sentido falar dos elementos Aji ; i 2 M; j 2 N , O numero de elementos n~ ao nulos, ENNs, numa matriz A, mxn, e

enn(A) =

m;n X i;j =1

B (A)ji = 10B (A)1

de modo que enn(Ai) e enn(Aj ) s~ ao, respectivamente, o numero de elementos n~ ao nulos na i-esima linha e na j -esima coluna de A. Dada uma func~ ao '(), de nida num dom nio D, e X D, de nimos seu argumento m nimo V = arg minx2X '(x) e argumento maximo U = arg maxx2X '(x) como, respectivamente, os conjuntos V; U D que minimizam ou maximizam a func~ ao ' em X . Assim, se por exemplo, ' = x ; x 2 <, X = 5; 5] e Y =] 5; 5 , ent~ ao arg minX '(x) = arg minY '(x) = f0g, arg maxX '(x) = f 5; 5g, arg maxY '(x) = ;. Para realizar experi^ encias computacionais utilizaremos por vezes os sistemas lineares de dimens~ ao n e soluc~ ao x = 1, com as seguintes matrizes de coe cientes e vetores independentes:
2

Binomial:
nB j i

8 > > < > > :

j 1 0

2 , j = 1; 2; : : : i ; n b = 2 . . . , j>i 2n
1 6 6 6 6 6 4 X

7 2 7 7 7 7 5

Hilbert: Tridiagonal:
nT j i

nH j i

= 1=(i + j 1) ; n hi =

j =1

1=(i + j 1)

8 > > < > > :

2 , i=j 1 , i 2 f1 ; n g ; nt = 0 1 , ji j j = 1 caso contrario 0 caso contrario


(

1.3. Representac~ ao de Matrizes Esparsas

1.3 Representac~ ao de Matrizes Esparsas


Ao representarmos uma matriz esparsa gostar amos de utilizar o m nimo de memoria, idealmente apenas a posic~ ao e o valor dos ENNs, mas ao mesmo tempo ter a maior exibilidade poss vel para acessar, modi car, inserir ou remover um elemento qualquer. Estes objetivos s~ ao algo con itantes, o que motiva o uso de diversas representac~ oes: Representac~ ao estatica por linhas: Para uma matriz A; m n com enn(A) = l, s~ ao utilizados um vetor real, aias(k) k 2 L, um vetor inteiro aijs(k); k 2 L = f1; : : : lg, e um segundo vetor de inteiros, aif (i); i 2 M . Os vetores aias e aijs listam os valores e os ndices de coluna dos ENN's, linha por linha. aif (i) nos da o m, ou a posic~ ao do ultimo elemento da linha i em aias e aijs. Representac~ ao estatica por colunas: Para uma matriz A; m n com enn(A) = l, s~ ao utilizados um vetor real, ajas(k) k 2 L, um vetor inteiro ajis(k); k 2 L, e um segundo vetor de inteiros, ajf (j ); j 2 N . Os vetores ajas e ajis listam os valores e os ndices de linha dos ENNs, coluna por coluna. ajf (i) nos da a posic~ ao do ultimo elemento da coluna j em ajas e ajis. Representac~ ao de lista ligada por linhas: Cada ENN corresponde a uma celula contendo: O valor do ENN, o ndice de coluna e um ponteiro para a celula do proximo ENN na linha. As celulas dos ultimos ENNs em cada linha contem o ponteiro nulo, e um vetor de m ponteiros, ancorai(i), nos da a primeira celula de cada linha. Representac~ ao de lista ligada por colunas: Cada ENN corresponde a uma celula contendo: O valor do ENN, o ndice de linha e um ponteiro para a celula do proximo ENN na coluna. As celulas dos ultimos ENNs em cada coluna contem o ponteiro nulo, e um vetor de n ponteiros, ancoraj (j ), nos da a primeira celula de cada coluna. Representac~ ao de rede: Cada ENN corresponde a uma celula contendo o valor do ENN Aj i, os ndices i e j , e ponteiros para a celula do proximo ENN na linha e na coluna. Dois vetores ancorai(i) e ancoraj (j ) contem ponteiros para as primeiras celulas em cada linha e coluna. Representac~ ao de rede dupla: Analoga a representac~ ao de rede, mas cada celula contem alem de ponteiros para as proximas celulas ao sul (proximo ENN na coluna) e ao leste (proximo ENN na linha), tambem ponteiros para as celulas ao oeste e ao norte, i.e. para os ENN anteriores na linha e na coluna. No exemplo 1 temos as diversas representac~ oes da matriz:
2 6 6 6 6 6 6 6 4

201 A = 301 304 501 502 503

102

104 405

3 7 7 7 7 7 7 7 5

; l = enn(A) = 9 :

10
h

~ Cap tulo 1. INTRODUCAO

Representac~ ao estatica por linhas: aias = 102 104 201 301 304 405 501 502 503 ; aijs = 2 4 1 1 4 5 1 2 3 ; aif = 2 3 5 6 9 :
i h i h i

Representac~ ao estatica por colunas: ajas = 201 301 501 102 502 503 104 304 405 ; ajis = 2 3 5 1 5 5 1 3 4 ; ajf = 3 5 6 8 9 : Representac~ ao de lista ligada por linhas:
h i h i h i

ancorai(1) ! (2, 102, !) (4, 104, a) ancorai(2) ! (1, 201, a) ancorai(3) ! (1, 301, !) (4, 304, a) ancorai(4) ! (5, 405, a) ancorai(5) ! (1, 501, !) (2, 502, !) (3, 503, a) Representac~ ao de lista ligada por colunas: ancoraj(1) ancoraj(2) ancoraj(3) ancoraj(4) ancoraj(5) (2, 201, #) (1, 102, #) (5, 503, ?) (1, 104, #) (4, 405, ?) (3, 301, #) (5, 502, ?) (3, 304, ?) (5, 501, ?) Representac~ ao em rede: ancoraj(1) ancoraj(2) ancoraj(3) ancoraj(4) ancorai(1) ! ancorai(2) ! ancorai(3) ! ancorai(4) ! ancorai(5) !

1 2 102
!

2 1 201 3 1 301

# !

1 4 104

ancoraj(5)

# !

# a

# !

3 4 304

? a

4 5 405

5 1 501

? !

5 2 502

? !

5 3 503

? a

? a

1.3. Representac~ ao de Matrizes Esparsas

11

Exerc cios
1. Prove que (a) (AB )0 = B 0A0. (b) (AB ) = A B . (c) (A0) = (A )0.
1 1 1 1 1

2. Na representac~ ao estatica por linhas, e realmente necessario termos aif alem de aias e aijs? 3. Considere uma matriz esparsa de estrutura regular e conhecida, por exemplo tri-diagonal, para a qual bastaria conhecermos o valor dos ENNs numa dada sequ^ encia, por exemplo linha por linha. Suponha que um inteiro ou ponteiro ocupa 2 bytes e que um real ocupa 4 bytes. D^ e o coe ciente de uso de memoria de cada uma das outras representac~ oes em relac~ ao a esta representac~ ao minimal. 4. (a) Considere uma matriz esparsa A de densidade, i.e. frac~ ao de elementos n~ ao nulos, . Suponha que A esta representada em rede. Queremos adicionar um novo ENN Aj i a matriz. Supondo que os ENN est~ ao aleatoriamente distribu dos, e tomando acesso a uma celula como operac~ ao elementar, qual a complexidade esperada desta operac~ ao? Explique sucintamente como realizar a operac~ ao. (b) Nas mesmas condic~ oes, queremos substituir duas linhas Ai e Ai , respectivamente, ~i = c Ai + s Ai e A ~i = c Ai s Ai. Novamente pelas combinac~ oes lineares A queremos um algoritmo, descrito sumaria mas claramente, e a complexidade esperada. Dicas e curiosidades: i. Assumindo que << 1, o caso em que estamos interessados, a densidade esperada das novas linhas e 2 . Por qu^ e? ii. O algoritmo para a segunda quest~ ao deve ser algo melhor que a mera repetic~ ao do algoritmo da primeira quest~ ao. iii. Esta transformac~ ao linear, tomando as constantes c e s como o coseno e o seno de um ^ angulo , e uma \rotac~ ao de Givens", a ser estudada no cap tulo 3.
2 +1 +1 +1 +1

5. Dados u e w n 1, A e B n n, e k 2 N , prove que (a) tr(A + B ) = tr(A) + tr(B ). (b) tr(AB ) = tr(BA). (c) tr(uw0) = w0u. (d) tr(Auw0) = tr(uw0A) = w0Au. (e) (uw0A)k = (tr(uw0A))k (uw0A). (f) (Auw0)k = (tr(Auw0))k (Auw0).
1 1

12

~ Cap tulo 1. INTRODUCAO

Cap tulo 2 ~ O LU FATORACA


Soluc~ ao de Sistemas Lineares

2.1 Permutac~ oes e Operac~ oes Elementares


Uma matriz de permutac~ ao e uma matriz obtida pela permutac~ ao de linhas ou colunas na matriz identidade. Realizar, na matriz identidade, uma dada permutac~ ao de linhas, nos fornece a correspondente matriz de permutac~ ao de linhas; Analogamente, uma permutac~ ao de colunas da identidade fornece a correspondente matriz de permutac~ ao de colunas. Dada uma (matriz de) permutac~ ao de linhas, P e uma (matriz de) permutac~ ao de colunas, Q, o correspondente vetor de ndices de linha (coluna) permutados s~ ao 1 2 p = (P .. )0 . m
6 6 6 6 6 4 7 7 7 7 7 5 2 3

q = 1 2 ::: n Q
~, equivale a multiplica-la, a esquerda (a direita), pela correspondente obter a matriz permutada A matriz de permutac~ ao de linhas (de colunas). Ademais, se p (q ) e o correspondente vetor de ndices de linha (de coluna) permutados,
j j ~j A i = (PA)i = Ap i
( )

Lema 2.1 Realizar uma permutac~ ao de linhas (de colunas) numa matriz qualquer A, de modo a

qj j ~j A i = (AQ)i = Ai :
( )

13

14 Exemplo 1: Dadas as matrizes 11 12 13 A = 21 22 23 31 32 33


2 6 6 4 h i 3 7 7 5

~ LU Cap tulo 2. FATORACAO

0 0 1 ; P= 1 0 0 0 1 0
6 6 4 2 6 6 4

3 7 7 5

0 1 0 ; Q= 0 0 1 1 0 0
6 6 4 2 6 6 4

3 7 7 5

;
3 7 7 5

31 32 33 p = q = 3 1 2 ; PA = 11 12 13 21 22 23

3 7 7 5

13 11 12 ; AQ = 23 21 22 33 31 32

Uma matriz quadrada, A, e simetrica sse for igual a transposta, isto e, sse A = A0. Uma ~ = PAP 0, permutac~ ao simetrica de uma matriz quadrada A e uma permutac~ ao da forma A onde P e uma matriz de permutac~ ao. Uma matriz quadrada, A, e ortogonal sse sua inversa for igual a sua transposta, isto e, sse A = A0.
1

matriz simetrica e ainda uma matriz simetrica.

Lema 2.2 (a) Matrizes de permutac~ ao s~ ao ortogonais. (b) Uma permutac~ ao simetrica de uma
Estudaremos a seguir alguns algoritmos para soluc~ ao do sistema Ax = b. Tais algoritmos s~ ao denominados diretos pois, a menos do erro de arredondamento, fornecem diretamente a soluc~ ao do sistema. A ess^ encia destes algoritmos s~ ao transformac~ oes sobre o sistema que deixam inalteradas sua soluc~ ao. S~ ao operac~ oes elementares sobre uma matriz, n m, qualquer: 1. Multiplicar uma linha por um escalar n~ ao nulo. 2. Adicionar, a uma linha, uma outra linha da matriz. 3. Subtrair de uma linha, uma outra linha da matriz multiplicada por um escalar n~ ao nulo. Uma operac~ ao elementar aplicada a matriz identidade I , n n, produz a matriz elementar correspondente, E .
la, a esquerda, pela matriz elementar correspondente.

Lema 2.3 Realizar uma operac~ ao elementar sobre uma matriz qualquer, A, equivale a multiplicaExemplo 3. 1 0 0 11 12 13 A = 21 22 23 ; E = 0 1 0 ; 31=11 0 1 31 32 33 11 12 13 : EA = 21 22 23 0 32 12 31=11 33 13 31=11
6 6 4 7 7 5 6 6 4 7 7 5 2 6 6 4 3 7 7 5 2 3 2 3

2.2. Metodo de Gauss

15

Lema 2.4 Toda matriz elementar e invers vel. Ademais, Ax = b , EAx = Eb.
A matriz aumentada correspondente ao sistema Ax = b, A n n e a matriz A b], n n + 1. Obviamente a matriz aumentada do sistema EAx = Eb e a matriz E A b]. Uma matriz quadrada A e dita triangular superior se todos os elementos abaixo da diagonal principal s~ ao nulos, e e dita triangular estritamente superior se tambem os elementos da diagonal s~ ao nulos. Analogamente, de nimos matriz triangular inferior e estritamente inferior. Assim, A e Triangular Superior , (i > j ) Aj i = 0). Triangular Estritamente Superior , (i j ) Aj i = 0). Triangular Inferior , (i < j ) Aj i = 0). Triangular Estritamente Inferior , (i j ) Aj i = 0). Os metodos diretos que estudaremos funcionam por ser facil resolver um sistema Ux = b se U e triangular superior, isto e Em um tal sistema podemos calcular por substituic~ ao, nesta ordem, as componentes xn; xn ; : : :; x , pois
1 1

n xn = bn =Un xn k = (bn k

j =n k+1

j x )=U n Un k j n
Q

k k

j ao equivale a Tal metodo funciona se Ujj 6= 0; 8j 2 N . Como det(U ) = n j Uj , esta condic~ termos um sistema bem determinado. Estudaremos a seguir como levar, atraves de operac~ oes elementares, um sistema qualquer a forma triangular.
=1

2.2 Metodo de Gauss


O metodo de Gauss leva o sistema a forma triangular atraves de operac~ oes elementares do tipo 3. Tentaremos faz^ e-lo usando, nesta ordem, a primeira linha para anular os elementos abaixo da diagonal na primeira coluna, a segunda linha para anular os elementos abaixo da diagonal na segunda coluna, etc... O exemplo 2 ilustra o processo. Indicamos tambem os fatores pelos quais multiplicamos cada linha antes de subtra -la de outra. Exemplo 4.
h 0

2 1 3 1 A b = 2 3 6 2 4 4 6 6
0 i 6 6 4

3 7 7 5

1 ! 2

2 1 3 1 A b = 0 2 3 1 0 2 0 4
1 i 6 6 4

3 7 7 5

16
h 2

~ LU Cap tulo 2. FATORACAO

2 1 A b = 0 2 0 0
2 i 6 6 4

3 1 3 1 3 3

3 7 7 5

! x=

6 6 4

1 2 1

3 7 7 5

Em cada etapa denominaremos a linha que esta sendo multiplicada e subtra da as demais de linha piv^ o, seu elemento diagonal de elemento piv^ o e os fatores de multiplicac~ ao de multiplicadores. Posteriormente faremos uso dos multiplicadores utilizados no processo e, portanto, devemos armazena-los. Com este m, de nimos as matrizes, n n, M , M , . . . n M = M , onde: Se j k e i > j , ent~ ao k Mij e o multiplicador utilizado na k-esima etapa para anular o elemento na i-esima linha e j -esima coluna; Caso contrario, k Mij = 0. Observe que os elementos n~ ao nulos de k M correspondem a elementos nulos em k A, e vice-versa. Podemos pois poupar memoria, guardando uma unica matriz, k A + k M . Assim, no Exemplo 4, k A +k M j k b ; k = 0; 1; 2, pode ser representado como:
1 2 1 h i 2 6 6 4

2 1 3 1 2 3 6 2 4 4 6 6

3 7 7 5

6 6 4

2 1 3 1 1 2 3 1 2 2 0 4

3 7 7 5

6 6 4

2 1 1 2 2 1

3 1 3 1 3 3

3 7 7 5

2.3 Pivoteamento
Consideremos a hipotese do surgimento de um zero na posic~ ao do piv^ o da etapa seguinte do k Ak k k processo de triangularizac~ ao, isto e, em A anula-se o elemento Ak k . Se na coluna houver algum elemento n~ ao nulo na linha l, l > k, podemos permutar as linhas k e l e continuar o processo de triangularizac~ ao. Uma permutac~ ao de linhas, para trocar o elemento piv^ o a ser utilizado, denomina-se um pivoteamento. A cada etapa queremos lembrar-nos de quais os pivoteamentos realizados durante o processo. Para tanto, guardamos os vetores de ndices de linha permutados da permutac~ ao corrente em relac~ ao ao sistema original. Estes s~ ao os vetores de n permutac~ ao, p, p, . . . p = p. No que tange ao armazenamento dos multiplicadores, devemos convencionar se estes ser~ ao ou n~ ao permutados, junto com as respectivas linhas de A + M , nas operac~ oes de pivoteamento. Adotaremos, por hora, a convenc~ ao de SIM, permuta-los, junto com os pivoteamentos. O exemplo 5 ilustra o processo para uma matriz de dimens~ ao k = 4, apresentando a matriz k A +k M juntamente com o vetor de permutac~ k ao, p para cada etapa da triangularizac~ ao:
1 1 1 1 2 1 h i 2 6 6 6 6 4

2 1 2 3

1 3 8 9

9 7 4 6

1 7 2 6

3 7 7 7 7 5

1 2 ! 3 4

2 6 6 6 6 4

3 1 =3 2 =3 2 =3

9 0 2 5

6 5 0 5

6 5 2 5

3 7 7 7 7 5

4 2 ! 3 1

2.3. Pivoteamento
2 6 6 6 6 4

17 9 5 2 =5 0 6 5 2 5 6 5 4 5
3 7 7 7 7 5

3 2 =3 2 =3 1 =3

4 1 ! 3 2

2 6 6 6 6 4

3 2 =3 1 =3 2 =3

9 6 5 5 0 5 2 =5 2 =5

6 5 5 6

3 7 7 7 7 5

4 1 2 3

prosseguimento do processo de triangularizac~ ao e sempre poss vel: Se na k-esima etapa, para l = k : : : n, k Ak = 0, isto e o elemento na posic~ ao piv^ o e todos os elementos abaixo dele l k k k na coluna A se anulam, ent~ ao as linhas Al, l = k : : : n, s~ ao linearmente dependentes e k det( A) = 0 ) det( A) = 0, o que contraria a hipotese do sistema ser bem determinado.
1 1 1 1 0

Observac~ ao 2.1 Note que se o sistema e bem determinado, um pivoteamento que permite o

processo de triangularizac~ ao de um dado sistema A b]. Neste caso, poder amos permutar as linhas do sistema original como indicado no vetor de permutac~ ao, obtendo um novo sistema P A b], cujas equac~ oes s~ ao as mesmas que as do sistema original, a menos da ordem em que est~ ao escritas. Poder amos ent~ ao triangularizar este sistema sem necessidade de nenhum pivoteamento, obtendo ao nal o mesmo sistema equivalente, n A n b].
0 0 0 0 1 1

Observac~ ao 2.2 Assuma sabermos de antem~ ao um vetor de permutac~ ao, n p = p, viavel no


1

Note que a triangularizac~ ao da matriz dos coe cientes de um sistema e completamente independente do vetor dos termos independentes. Suponha termos triangularizado o sistema A b], isto e, que temos um sistema equivalente e triangular n A = U n b], tendo sido preservados os multiplicadores e as permutac~ oes utilizadas, M e p. Se for necessario resolver um segundo sistema A b], que difere do primeiro apenas pelo vetor dos termos independentes, n~ ao sera necessario retriangularizar a matriz A; Bastara efetuar no novo vetor de termos independentes, c, as operac~ oes indicadas pelo vetor de permutac~ ao p e pela matriz de multiplicadores M . Uma pol tica, que mais tarde demonstraremos util, e realizarmos pivoteamentos para colocar como elemento piv^ o, em cada etapa, o elemento de maximo modulo. Esta estrategia, o pivoteamento parcial, garante termos todos os multiplicadores j Mij j 1. O pivoteamento parcial e de fundamental import^ ancia para a estabilidade numerica do processo, controlando a propagac~ ao de erros de arrendondamento.
0 0 1 1 0 0 0

mutar linhas da matriz A: Basta, na k-esima etapa da triangularizac~ ao utilizar o ndice k p(i) ao inves do ndice de linha i.
1

Observac~ ao 2.3 Para realizar uma operac~ ao de pivoteamento n~ ao e necessario efetivamente per-

armos a coluna j permutamos para a posic~ ao de pivo (linha j ) o elemento na linha i. O vetor de 0 pivoteamentos do exemplo anterior e 4 1 2 3 . Com o vetor de pivoteamentos adotaremos ~ O permutar os multiplicadores na coluna j M , nos pivoteamentos k > j . a convenc~ ao de NA
h i

Observac~ ao 2.4 Uma maneira alternativa de guardar pivoteamentos realizados ao longo do processo de triangularizac~ ao e o vetor de pivoteamentos, t, onde t(j ) = i signi ca que ao elimin-

18

~ LU Cap tulo 2. FATORACAO

2.4 Lema da Fatorac~ ao


sem nenhum pivoteamento e sejam, conforme a nomenclatura adotada, A = o A; 1A; : : : n 1 A, e 1 M; 2M; : : : n 1 M = M , respectivamente, a k-transformada da matriz A e a k-esima matriz dos multiplicadores. Fazendo U = n 1 A e L = M + I , temos que L e U s~ ao matrizes triangulares, respectivamente inferior e superior, e que A = LU .

Lema 2.5 (da Fatorac~ ao) Seja A uma matriz invers vel triangularizavel pelo metodo de Gauss
0

Demonstrac~ ao. Veri quemos inicialmente que a transformac~ ao linear que leva k A em k A e dada por k T , i.e. k A =k T k A, onde 1 0 . 0 .. . . 1 . ; kT = ... Mkk . ... 0 . . k 0 Mn 1 de modo que U = n A = n T n T : : : T T A = TA. Observando ainda que k T e invers vel e que 1 0 . 0 .. . . 1 . ; kT = kL = . . . +Mkk . ... 0 . . k 1 0 +Mn Ademais, temos que T = T T : : : n T = L : : : n L e e facil veri car que L L : : : n L = L, donde A = LU . Q.E.D.
1 1 2 6 6 6 6 6 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 7 7 7 7 7 5 +1 1 1 2 2 1 2 6 6 6 6 6 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 7 7 7 7 7 5 1 +1 1 1 1 2 1 1 1 1 1 1 2 1

Teorema 2.1 (LU) Seja A uma matriz invers vel n n. Ent~ ao existe uma (matriz de) per~ = PA e triangularizavel pelo metodo de Gauss e A ~ = LU . mutac~ ao de linhas P de modo que A Demonstrac~ ao. O teorema segue trivialmente do lema da fatorac~ ao e das observac~ oes 2.1 e 2.2. A soluc~ ao de um sistema linear Ax = b pode ser expressa diretamente em termos da fatorac~ ao 0 ~ = PA = LU , ent~ LU da matriz dos coe cientes, i.e., se A ao P LUx = b, e x = U L Pb. Assim, em muitas aplicac~ oes, o conhecimento expl cito de A pode ser substitu do com vantagem pelo conhecimento da fatorac~ ao da matriz.
1 1 1

2.5. O Metodo de Doolittle

19

Observac~ ao 2.5 Considere os dois algoritmos seguintes, o de substituic~ ao e o de multilpicac~ ao


pela inversa, para soluc~ ao do sistema Ux = b: O primeiro algoritmo acessa a matriz U por linha, enquanto o segundo acessa a matriz U por coluna.
x = b ; x(n) = x(n) / U(n,n) ; for i = n-1:-1:1 x(i) = ( x(i) - U(i,i+1:n)*x(i+1:n) ) / U(i,i) ; end x = b ; for j = n:-1:2 x(j) = x(j) / U(j,j) ; x(1:j-1) = x(1:j-1) - x(j)*U(1:j-1,j) ; end x(1) = x(1) / U(1,1) ;

2.5 O Metodo de Doolittle


Usando o Teorema LU podemos determinar L e U diretamente da equac~ ao de decomposic~ ao, LU = A, tomando, nesta ordem, para i = 1 : : : n, as equac~ oes das componentes de A na i-esima linha e na i-esima coluna, isto e,

Li U = Ai para i = 1 : : : n LU i = Ai
(

temos

para j = i : : :n Uij = Aji para i = 1 : : : n para j = i + 1 : : : n Mji = (Aij


(

P P

i 1 MkUj k=1 i k i 1 M k U i )=U i k=1 j k i

Note que so escrevemos as equac~ oes para os termos incognitos, isto e, ou acima da diagonal em U, e abaixo da diagonal em L. Tambem as somatorias foram interrompidas quando os termos remanescentes s~ ao todos nulos. O calculo do elemento (M + U )j i , envolve, na ordem prescrita, apenas elementos ja calculados ao em que se necessita os elementos Aj de (M +U ). Ademais, o calculo de (M +U )j i; i e a ultima ocasi~ j j n portanto podemos armazenar (M + U )i no lugar de Ai . Estas s~ ao as matrizes A = D; : : : ; D = M + U. Exemplo 6 - Usando o metodo de Doolittle para triangularizar a matriz do Exemplo 4, onde n~ ao ha necessidade de pivoteamento, temos
0

20 2 1 3 D=A= 2 3 6 4 4 6
6 6 4 3 7 7 5 2 2 3 7 7 5

~ LU Cap tulo 2. FATORACAO

!
3

2 6 6 4

2 1 3 2 3 6 4 4 6 2 1 3 1 2 3 2 4 6
2

2 1 3 7 6 6 = 1D ! ! 41 3 67 5 2 4 6 2 1 3 7 6 = 2D ! ! 6 2 3 7 5 4 1 2 1 6 3 3 3
3 7 7 5 2 3

2 6 6 4

3 7 7 5

2 1 6 6 1 2 4 2 1

= D =M +U
3 +1

Para realizar os pivoteamentos necessarios a passagem de k D a k D e necessario examinar os poss veis elementos piv^ os nas linhas i = k : : : n, isto e, os elementos em k Ak . Para tanto, basta calcular, para i = k : : :n,
kv k i = Ai
0

k 1 X l=1

MilUlk :

Exemplo 7 - Triangularizando pelo metodo de Doolittle a matriz, A, com pivoteamento parcial, temos os k p; k D; k v, para k = 0 : : : n, como segue: 1 2 3 4 4 1 3 2
2 2 6 6 6 6 4

2 1 2 3

1 3 8 9

9 7 4 6
6 5 4 7

1 7 2 6

3 7 7 7 7 5

4 2 1 ! 2 3 2 1 3
3 7 7 7 7 5

2 6 6 6 6 4

3 1 =3 2 =3 2 =3
2 6 6 6 6 4

9 3 8 1

6 7 4 9

6 7 2 1

3 7 7 7 7 5

0 ! 2 5
6 5 5 2
3 7 7 7 7 5

3 6 6 2 =3 6 6 4 2 =3 1 =3

9 5 2 =5 0

6 5 2 7

4 1 ! 2 2 3 5

3 2 =3 1 =3 2 =3 6 5 5 6

9 6 5 5 0 5 2 =5 2 =5
3 7 7 7 7 5

4 1 2 3

3 6 6 2 =3 6 6 4 1 =3 2 =3

9 6 5 5 0 5 2 =5 2 =5

2.6. Complexidade

21

2.6 Complexidade
Contemos agora o numero de operac~ oes aritmeticas necessarias a triangularizac~ ao de uma matriz de coe cientes e a soluc~ ao de um sistema linear. Na fase de triangularizac~ ao da matriz dos k k coe cientes, vemos que o calculo de A a partir de A requer (n k) divis~ oes e (n k) somas e produtos. No total s~ ao portanto requeridos
1 2

n 1 X n 1 X k=1 k=1
2

(n k) = n(n 1)=2 1)=3 + n(n 1)=2


3 2

divis~ oes, e produtos e subtrac~ oes.


2

(n k ) = n(n

isto e, s~ ao necessarios da ordem de n =3 + O(n ) produtos e subtrac~ oes, e n =2 + O(n) divis~ oes. Analogamente, dada a matriz dos multiplicadores e o vetor das permutac~ oes, M e p, o tratamento de um vetor de termos independentes requer n(n 1)=2 produtos e subtrac~ oes. Finalmente, a soluc~ ao do sistema linear triangularizado requer n divis~ oes e n(n 1)=2 produtos e subtrac~ oes.

Exerc cios
1. Comente como cada forma de representac~ ao da matriz A, por linhas ou por colunas, favorece o uso de um dos algoritmos apresentados na observac~ ao 2.5. Escreva algoritmos similares para a soluc~ ao do sistema Lx = b. 2. Programe e implemente, em linguagem C, C++, ou FORTRAN-90, func~ oes para: (a) Fatorac~ ao LU com pivoteamento parcial. (b) Soluc~ ao dos sistemas Lx = b e Ux = b, (c) Um argumento adicional deve indicar a forma de representac~ ao das matrizes, densa, estatica por linha, ou estatica por coluna. (d) No caso da representac~ ao densa, um segundo argumento deve indicar o uso do vetor de permutac~ oes ou pivoteamentos. No caso das representac~ oes estaticas, escreva o programa como lhe parecer mais conveniente. 3. Mostre que calcular explicitamente a inversa de A implica saber resolver n sistemas lineares, Ax = I j . Dada a fatorac~ ao A = LU , qual o custo de computar explicitamente a inversa A ?
1

22

~ LU Cap tulo 2. FATORACAO

Cap tulo 3 RESUMO DE TEORIA DOS GRAFOS


3.1 Conceitos Basicos
Um grafo e um par ordenado G = (VG ; G ) onde o primeiro elemento e um conjunto nito, o conjunto de vertices, e o segundo elemento e uma func~ ao G : VG 7! P (VG ),no conjunto das partes de VG , a func~ ao de liac~ ao. Tomaremos VG um conjunto indexado, VG = fv ; v ; : : : vng ou ent~ ao tomaremos VG como sendo o proprio conjunto dos n primeiros inteiros positivos, N = f1; 2; : : : ng. Para n~ ao sobrecarregar a notac~ ao escreveremos, quando n~ ao houver ambiguidade, (VG; G ) como (V; ). E comum representarmos um grafo por conjunto de pontos (os vertices) e um conjunto de arestas (setas) que v~ ao de cada vertice para os seus lhos, isto e, de cada v 2 V para os elementos em (v). Podemos de nir o grafo atraves dos seus vertices e de suas arestas, G = (VG ; AG), onde cada aresta e um par ordenado de vertices e (i; j ) 2 AG , j 2 G (i). Uma terceira maneira de de nir um grafo e pelo par G = (VG ; BG ) onde BG e a matriz de adjac^ encia, a matriz Booleana j tal que Bi = 1 , j 2 (i). Exemplo 1: Considere o grafo de vertices N = f1; 2; 3; 4; 5; 6g e func~ ao de liac~ ao (1) = ;, (2) = f2g, (3) = ;, (4) = f3; 5; 6g, (5) = f3; 4; 5g e (6) = f5g. Suas arestas e matriz de adjac^ encia s~ ao, AG = f(2; 2); (4; 3); (4; 5); (4; 6); (5; 3); (5; 4); (5; 5); (6; 5)g, e
1 2

0 0 0 BG = 0 0 0
6 6 6 6 6 6 6 6 6 6 4

0 1 0 0 0 0

0 0 0 1 1 0

0 0 0 0 1 0

0 0 0 1 1 1

0 0 0 1 0 0

3 7 7 7 7 7 7 7 7 7 7 5

,! 2

" %. " 4 ! 6
w 2W

5 -

Dado um subconjunto de vertices W

V , de nimos (W )
23

(w). De nimos tambem

24
0 1

Cap tulo 3. RESUMO DE TEORIA DOS GRAFOS


1

(i) = fig, (i) (i) e, para k > 1, k (i) ( k (i)). Estes s~ ao, para k = 1; 2; 3; : : : os lhos, netos, bisnetos, etc. do vertice i. Finalmente de nimos os descendentes de i por k (i), e o fecho transitivo G = (VG ; G ). ( i) = 1 k Exemplo 2: Damos a matriz de adjac^ encia de um grafo, e do respectivo fecho transitivo:
=0

0 0 B= 0 0
2 6 6 6 6 4

1 1 0 0

0 1 0 0

0 0 1 0
1

3 7 7 7 7 5

1 0 ; B= 0 0
2 6 6 6 6 4 1

1 1 0 0

1 1 1 0

1 1 1 1

3 7 7 7 7 5

Dado o grafo G = (V; ) de nimos a func~ ao de paternidade i 2 De nimos tambem seu grafo inverso, G = (V; ).
e G 1 = (N; B 0 ).

(j ) , j 2 (i).

Lema 3.1 Dado um grafo de nido por sua matriz de adjac^ encia, G = (N; B ), seu grafo inverso

Um sub-grafo de G = (V; A) e um grafo G0 = (V 0; A0), onde V 0 V e A0 e um subconjunto de arestas de A que tem ambos os vertices em V 0. O sub-grafo induzido por um subconjunto de vertices V 0 e G = (V 0; A0) onde A0 e maximo, e o sub-grafo induzido por um subconjunto de arestas A0 e G = (V 0; A0) onde V 0 e m nimo. Uma aresta que parte e chega no mesmo vertice e dita um loop. Duas arestas, (i; j ) e (k; h), s~ ao ditas cont guas se a primeira chega no vertice de que parte a segunda, isto e se j = k. Um passeio e uma sequ^ encia n~ ao vazia e nita de arestas cont guas. Um circuito e um passeio que parte e chega no mesmo vertice, isto e, o primeiro vertice da primeira aresta e o segundo vertice da ultima aresta. Uma trilha e um passeio onde n~ ao se repete nenhuma aresta e um caminho e uma trilha na qual n~ ao ha (subsequ^ encias que sejam) circuitos. Uma trilha na qual o unico circuito e toda a trilha e uma ciclo. Notemos que um passeio C = (w ; w ); (w ; w ); : : : (wk ; wk )), e igualmente bem determinado pela sequ^ encia de seus vertices C = (w ; w ; w ; : : :wk ). Ter amos assim, no Exemplo 1, exemplos de:
0 1 1 2 1 0 1 2

loop: ((2; 2)). passeio: ((4; 5); (5; 5); (5; 5); (5; 4); (4; 5). circuito: (5; 5; 4; 6; 5; 5). trilha: (5; 4; 6; 5; 5; 3). caminho: (6; 5; 4; 3).

3.2. Relac~ oes de Ordem

25

ciclo: (5; 4; 6; 5)ou(5; 5). Um grafo e ac clico se n~ ao contem ciclos. Uma arvore de raiz v e um grafo ac clico, H = (VH ; H ) ; v 2 VH , onde todos os vertices t^ em no maximo um pai e apenas a raiz n~ ao tem pai. Os vertices sem lhos de uma arvore dizem-se folhas da arvore. Uma colec~ ao de arvores e denominada oresta. Uma oresta cobre um grafo G sse e um subgrafo de G que contem todos os seus vertices. Seguem exemplos de orestas que cobrem o grafo do Exemplo 1, estando assinaladas as ra zes.

1 2

" . " 4 6

1 2
2

" % 4 ! 6
(w );
1

que parte de v e termina em w, a saber, (v; e um caminho.

Lema 3.2 Dada uma arvore, H = (V; ), de raiz v, e um vertice w 2 V , existe um unico passeio
k (w ); : : :

(w); w). Ademais, este passeio

3.2 Relac~ oes de Ordem


Uma ordem num conjunto S e uma relac~ ao, , tal que 8a; b; c 2 S , temos que 1. a a. 2. a b ^ b c ) a c. i.e., uma relac~ ao re exiva e transitiva. Alternativamente denotaremos a b por b a. Sendo = a relac~ ao identidade e 6 a negac~ ao da relac~ ao de ordem, dizemos que a ordem e

total, sse a 6 b ) b a. parcial, sse (a b ^ b a) ) a = b. boa, se e parcial e total. Lema 3.3 Dado um grafo, G = (N; ), a func~ ao de descend^ encia, , de ne uma ordem em seus vertices, a ordem natural, , de nida por por j i , j 2 (i). Note, porem, que a ordem natural
Exemplo 3:

n~ ao e, em geral, nem parcial nem total.

26
2 6 6 6 6 4 3 7 7 7 7 5 2 6 6 6 6 4

Cap tulo 3. RESUMO DE TEORIA DOS GRAFOS


1 2 3 4 3 7 7 7 7 5 2 6 6 6 6 4 3 7 7 7 7 5 2 6 6 6 6 4

Nos grafos seguintes, de matrizes de adjac^ encia B , B , B e B , 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 ; 1 0 0 0 ; 0 0 0 1 ; 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 temos ordens naturais


1

0 0 0 0

1 0 0 0

0 1 0 0

0 0 1 0

3 7 7 7 7 5

em G : Nem parcial, pois 1 2 1, nem total, pois 1 6 3 6 1. em G : Total, mas n~ ao parcial, pois 1 4 1. em G : Parcial, mas n~ ao total, pois 2 6 3 6 2. em G : Boa.
2 3 4

Uma equival^ encia num conjunto S e uma relac~ ao, , tal que 8a; b; c 2 S : 1. a a. 2. a b ^ b c ) a c. 3. a b ) b a. i.e., uma relac~ ao re exiva, transitiva e simetrica. A classe de equival^ encia de um elemento qualquer, a 2 S , e o sub-conjunto de S : a] = fx 2 S j x ag. Uma partic~ ao de um conjunto S e uma colec~ ao P de sub-conjuntos n~ ao vazios de S tal que: 1. 8X; Y 2 P; X 6= Y ) X \ Y = ;. 2. X 2P X = S . i.e., uma colec~ ao de conjuntos disjuntos que reunidos e igual a S .

Lema 3.4 Dado S , um conjunto munido de uma ordem, 8a; b 2 S , a b , a b ^ b a, de ne

uma relac~ ao de equival^ encia. Esta e a equival^ encia induzida pela ordem. Dado S um conjunto munido de uma equival^ encia, o conjunto das classes de equival^ encia em S e uma partic~ ao de S .

As componentes fortemente conexas, CFC, de um grafo G s~ ao as classes de equival^ encia induzida pela ordem natural nos vertices de G. G e dito fortemente conexo sse possui uma unica CFC. Exemplo 4: As CFC dos grafos do Exemplo 3 s~ ao:

3.2. Relac~ oes de Ordem

27

~ = ff1; 2g; f3g; f4gg. em G : V


1

~ = ff1; 2g; f3; 4gg. em G : V ~ = ff1g; f2g; f3g; f4gg. em G e G : V


2 3 4

~ ; ~ ), que tem por vertices as O grafo reduzido, de um grafo G = (V; ), e o grafo G = (V ~ = fV ; V ; : : : Vk g, e a func~ CFCs de G: V ao de liac~ ao, ~ , de nida por
1 2

Vs 2 ~ (Vr ) , 9i 2 Vr ; j 2 Vs j j 2 (i); (Vr 6= Vs ) :


Exemplo 5: As matrizes de adjac^ encia dos grafos reduzidos dos grafos do Exemplo 3, com os vertices ~ ,B ~ ,B ~ eB ~: correspondendo as CFCs na ordem em que aparecem no exemplo anterior, s~ ao B
1 2 3 4 2 6 6 4

0 1 0 0 0 0 ; 0 0 0
7 7 5

2 "

0 0 ; 0 0

6 6 6 6 4

0 0 0 0

1 0 0 0

1 0 0 0

0 1 ; 1 0
3 7 7 7 7 5

2 6 6 6 6 4

0 0 0 0

1 0 0 0

0 1 0 0

0 0 : 1 0
3 7 7 7 7 5

Dado um conjunto S e uma ordem em S , a ordem reduzida e a relac~ ao de ordem no ~ conjunto das classes (da equival^ encia induzida pela ordem ), S , de nida por ~ ; X Y , 9x 2 X; ^9y 2 Y j x y : 8X; Y 2 S

Lema 3.5 A ordem reduzida (nas CFCs) de um grafo G = (V; ), e a ordem natural do grafo ~ = (V ~ ; ~ ), i.e., se V ~ = fV ; : : :Vk g, reduzido G
1

Vr Vs , Vs 2 ~ (Vr ) , 9i 2 Vr ; j 2 Vs j j 2 (i) , 9i 2 Vr ; j 2 Vs j j i :
Ademais, 1. A ordem natural de G e parcial sse, a menos de loops, G e ac clico. 2. Grafos reduzidos s~ ao ac clicos e ordens reduzidas s~ ao parciais.

Teorema 3.1 (Ho man) : Um grafo G = (V; ) e fortemente conexo sse dado qualquer subconjunto proprio dos vertices W V , W = 6 V , houver uma aresta de um vertice em W para um
vertice fora de W .

28

Cap tulo 3. RESUMO DE TEORIA DOS GRAFOS

Demonstrac~ ao: Se houver W um subconjunto proprio de V tal que (W ) = ;, ent~ ao n~ ao ha caminho de nenhum vertice w 2 W para nenhum vertice v 2 V , e G n~ ao e fortemente conexo. Presupondo a condic~ ao 6 9W 6= V j (W ) = ;, provemos que existe um caminho do vertice w ao vertice v, 8w; v 2 V . Tomemos inicialmente W = fwg. A condic~ ao garante a exist^ encia de um caminho de comprimento (numero de arestas) 1 de w a algum vertice x 6= w. Se x = v a prova esta completa. Caso contrario tomemos W = fw; x g. A condic~ ao garante a exist^ encia de um caminho c de comprimento jc j 2 de w para algum vertice x 6= w; x . Repetindo o argumento ate obtermos xk = v, k < n, conclu mos a demonstrac~ ao, QED. Dado um conjunto S , munido de uma ordem , a ordem de S , uma boa ordem, <=, em S e dita uma ordem coerente (com ) sse:
0 1 1 1 1 2 2 2 1

1. 8a; b 2 S; a b ^ b 6 a ) a <= b : 2. 8a; b; c 2 S; a <= b <= c ^ a c ) a b c : O primeiro criterio de coer^ encia determina que o reordenamento se subordine a ordem parcial do grafo reduzido; O segundo criterio determina que se discriminem (n~ ao se misturem) vertices em CFCs incomparaveis porem distintas. Uma boa ordem, ou reordenamento, no conjunto N = f1; 2; : : : ng, q <= q <= : : : <= qn, corresponde a um vetor de permutac~ ao q = q ; q ; : : : qn] = (1); (2); : : : (n)]. Um reordenamento coerente dos vertices de um grafo G e um reordenamento coerente com a ordem natural do grafo. Um reordenamento coerente num grafo ac clico e tambem dito um (re)ordenamento topologico (dos vertices) deste grafo. Exemplo 6: Listamos a seguir alguns reordenamentos nos grafos do Exemplo 3, indicando se satisfazem aos dois criterios de coer^ encia. No grafo G : q = 4; 1; 2; 3] (1; 2), q = 1; 3; 2; 4] (1), q = 3; 4; 1; 2] (2), q = 1; 3; 4; 2] (). No grafo G : q = 3; 4; 1; 2] (1; 2), q = 1; 3; 2; 4] (1). No grafo G : q = 1; 3; 2; 4] (1; 2), q = 1; 2; 3; 4] (1; 2), e estes s~ ao os unicos reordenamentos coerentes. No grafo G : O unico reordenamento coerente e q = 1; 2; 3; 4]. Para reordenar coerentemente os vertices de um grafo precisamos pois determinar o grafo reduzido, e no grafo reduzido uma ordem topologica. Esta tarefa pode ser levada a cabo com o algoritmo de Tarjan, a ser visto a seguir.
1 2 1 2 1 2 3 4

3.3 Busca em Profundidade


A busca em profundidade e um procedimento que nos permite visitar, a partir de um determinado vertice v de G = (N; ), todos os seus descendentes. Cada vertice sera marcado como \ja visitado" ou \n~ ao visitado", sendo \n~ ao visitado" o estado inicial de todos os vertices.

3.3. Busca em Profundidade

29

Na busca em profundidade, partindo de v, seguiremos um caminho, sempre por vertices n~ ao visitados, o mais longe poss vel. Ao passar por um vertice, marca-lo-emos como \ja visitado". N~ ao sendo mais poss vel prosseguir de um dado vertice, isto e, quando estivermos num vertice sem lhos n~ ao visitados, retornaremos ao vertice de onde este foi atingido e prosseguimos na busca em profundidade. Quando tivermos voltado ao vertice inicial, v, e ja tivermos visitado todos os seus lhos, teremos terminado a busca em profundidade. Os vertices visitados e as arestas utilizadas para ating -los formam uma arvore de raiz v, que e a arvore da busca. Iniciando novas buscas em profundidade, nas quais consideramos \n~ ao visitados" apenas os vertices que n~ ao pertencem a nenhuma arvore previamente formada, teremos uma oresta que cobre o grafo G, a oresta de busca. Uma maneira de rotularmos (ou reordenarmos) os vertices de G durante a busca em profundidade e pela ordem de visitac~ ao, Ov(), onde Ov(i) = k signi ca que o vertice i foi o k-esimo vertice a ser visitado na formac~ ao da oresta de busca. Uma maneira alternativa de rotular (reordenar) os vertices de uma oresta de busca e a ordem de retorno: Or(), e a ordem em que veri camos ja termos visitado todos os lhos de um vertice e retornamos ao seu pai na arvore (ou terminamos a arvore se se tratar de uma raiz). Estando os vertices de um grafo bem ordenados por algum criterio, por exemplo pelos seus ndices, a oresta de busca em profundidade can^ onica e aquela em que tomamos os vertices, tanto para ra zes de novas arvores quando para visitac~ ao dentro de uma busca, na ordem estabelecida por este criterio. No exemplo 7, a primeira e a oresta can^ onica. Exemplo 7: Um grafo G, e varias das poss veis orestas de busca que o cobrem, est~ ao dadas na gura seguinte. Apresentamos estas orestas com os vertices numerados primeiro pela ordem de visitac~ ao, depois pela ordem de retorno. Indicamos com um circun exo as raizes da busca. 3 ! 6

. # - # 1 ! 4 7 . # 2 5 ! 8
^ 6 ! 7 ^ 1 ! 2 3 ^ 1 ! 7 2 ^ 6 ! 7 ^ 5 ^ 1 4 ^ 2 ! 3

#
8

. #

6 3

. # . #

#
8

4 ! 5

4 ! 5

30 ^ 8 ! 7 ^ 5 ! 4 1

Cap tulo 3. RESUMO DE TEORIA DOS GRAFOS

#
6

. #

5 1

. # . #
4

^ 8 ! 7

#
6

^ 8 ! 7 ^ 5 ^ 1 2 ^ 4 ! 3

3 ! 2

3 ! 2

Descrevemos agora o algoritmo de Tarjan para determinac~ ao das componentes fortemente conexas de um grafo G. 1. Considerando a boa ordem dos ndices, construa a oresta de busca can^ onica em G, marcando seus vertices pela ordem de retorno; 2. Considere G com os vertices reordenados, isto e rotulados, na ordem inversa da ordem de retorno estabelecida no passo 1;
1

3. Considerando a boa ordem estabelecida no passo 2, construa a oresta de busca can^ onica em G .
1

cobre os vertices de exatamente uma componente fortemente conexa de G. Mais ainda, a ordem de visitac~ ao (bem como a ordem de retorno), na oresta can^ onica do passo 3 do Algoritmo de Tarjan, e um reordenamento coerente dos vertices de G.

Teorema 3.2 (Tarjan) : Cada arvore em G constru da no passo 3 do algoritmo de Tarjan


1

Demonstrac~ ao: Se v; w 2 V est~ ao numa mesma componente de G ent~ ao certamente pertencem a uma mesma arvore em G (bem como em G). Se x e um vertice de G, denotaremos o numero que marca o vertice x, pela ordem de retorno em G, por Or(x). Se w e um vertice de uma arvore de raiz v, em G , ent~ ao:
1 1

1. v descende de w, em G, pois w descende de v em G .


1

2. w descende de v, em G. Para justi car a segunda a rmac~ ao notemos que, por construc~ ao Or(v) > Or(w). Isto signi ca que ou w foi visitado durante a busca em profundidade a partir de v, ou w foi visitado antes de v. A primeira hipotese implica em (2) enquanto a segunda hipotese e imposs vel pois, como por (1) v descende de w, jamais poder amos ter deixado v \n~ ao visitado" apos concluir uma busca em profundidade que visitasse w. Q.E.D. Exemplo 8: A gura seguinte apresenta os passos na determinac~ ao pelo algoritmo de Tarjan, das CFCs do exemplo 7, e nos da um reordenamento coerente de seus vertices. A oresta de BEP em G esta

3.4. Grafos Simetricos e Casamentos


1

31

rotulada pela ordem de retorno, e a oresta em G pela ordem de visitac~ ao. O reordenamento coerente dos vertices do grafo original obtido neste exemplo e q = 3; 6; 7 j 1 j 4; 5; 8 j 2].

. # - # 1 ! 4 7 . # 2 5 ! 8 % " & " 4 5 ! 3 % " & 8 ! 6 7


1 2

3 ! 6

^ 8 ! 7 ^ 5 ! 4 1 ^ 4 ^ 8

#
6

. #
^ 5 7

3 ! 2 ^ 1 3

& " &


2 6

3.4 Grafos Simetricos e Casamentos


Um grafo G = (N; ) e dito simetrico sse 8i; j 2 N; j 2 (i) ) i 2 (j ). E usual representarmos um grafo simetrico substituindo cada par de arestas, (i; j ) e (j; i), por uma aresta sem orientac~ ao ou lado, fi; j g. Podemos de nir um grafo simetrico atraves de seus vertices e dos seus lados, G = (N; E ), onde cada lado e um conjunto de dois vertices e fi; j g 2 E , i 2 (j ). Um m-casamento, num grafo simetrico, e um conjunto de m lados onde s~ ao distintos todos os vertices; M = ffu ; u g; fu ; u g; : : : fu m ; u mgg. Os vertices em M dizem-se casados, os de mesmo lado dizem-se companheiros, e os vertices fora do casamento dizem-se solteiros. Um m-casamento e maximo em G se n~ ao houver em G um m + 1 casamento e e perfeito se n~ ao deixar nenhum vertice solteiro. Dado um grafo simetrico G = (V; E ) e nele um m-casamento, M , um caminho M -alternado e um caminho C = (fw ; w g; fw ; w g; : : : fwk ; wk g) que tem lados, alternadamente, dentro e fora do casamento. Um caminho M -alternado diz-se um caminho de aumento se comeca e termina em vertices solteiros.
1 2 3 4 2 1 2 0 1 1 2 1

Teorema 3.3 (Berge) : Dado um grafo simetrico, G = (V; E ) e nele um m-casamento, M = ffu ; u g; fu ; u g; : : : fu m; u mgg, este casamento e maximo se n~ ao houver caminho de aumento.
1 2 3 4 2 2

Demonstrac~ ao: Suponha que existe um caminho de aumento C = (fw ; w g; fw ; w g; : : : fw k ; w k g) ent~ ao


0 1 1 2 2 1 2 +1

M 0 = M C = M ffw ; w g; fw ; w g; : : : fw k ; w k gg +ffw ; w g; fw ; w g; : : : fw k ; w k gg
1 2 3 4 2 1 2 0 1 2 3 2 2 +1

32

Cap tulo 3. RESUMO DE TEORIA DOS GRAFOS

e um m + 1-casamento. Se, por outro lado, M n~ ao e maximo, seja M 'um m+1-casamento e considere o grafo auxiliar 0 H de lados EH = M M , sendo VH = VG . Cada vertice de H e isolado, ou pertence a algum lado de EH e no maximo a dois lados, um de M e outro de M 0. Cada componente de H e pois, ou um vertice isolado, ou um ciclo de lados alternadamente em M e M 0, ou um caminho de lados alternadamente em cada um dos casamentos. Como H tem mais lados de M 'que de M , ha ao menos uma componente de tipo caminho que comeca e termina com lados de M 0. Este caminho e M -alternado e seus vertices extremos s~ ao,por construc~ ao, solteiros em M . Temos assim um caminho de aumento para M . Q.E.D. Exemplo 9: Apresentamos agora: Na primeira linha: M : um m-casamento num grafo, C : um caminho de aumento, e M 0: o m + 1-casamento M 0 = M C . Na segunda linha: M : um m-casamento, M 0: um m + 1-casamento, e H : o grafo H = M 0 M . 1 4 . . . 7 1 4 . . . 7

2 5 . . . 8 2 5 . . . 8

3 . . . 6 9 3 . . . 6 9

1 4 . . . 7 1 . . . 4 . . . 7

2 5 8 2 . . . 5 . . . 8

3 6 9 3 6 . . . 9

1 . . . 4 7 1 4 7

2 . . . 5 . . . 8 2 5 8

3 . . . 6 . . . 9 3 . . . 6 9

Um grafo G = (V; ) e bipartido se houver uma bipartic~ ao de seus vertices tal que todos os lados tenham um vertice em cada pedaco da bipartic~ ao, i.e. se for poss vel encontrar conjuntos X; Y j V = X Y ^ X \ Y = ; ^ 8e 2 E; e = fx; yg x 2 X; y 2 Y .

Teorema 3.4 (Hall) : Dado G = (V; ) um grafo simetrico e bipartido, com bipartic~ ao V =
X Y , existe em G um casamento que casa todos os vertices de X sse vale a condic~ ao de Hall: 8S X; # (S ) #S . isto e, qualquer subconjunto de X tem, coletivamente, ao menos tantos
lhos quanto elementos.

Demonstrac~ ao Se existe um casamento M que casa todos os vertices em X , ent~ ao os lados do casamento garantem ao menos a igualdade na condic~ ao de Hall. Por outro lado, se houver um casamento maximo, M , que deixe algum x 2 X solteiro, exibiremos um S X que viola a condic~ ao de Hall.

3.5. O Algoritmo Hungaro

33

Seja Z o conjunto dos vertices conexos a x por caminhos M-alternados. Pelo teorema de Berge sabemos que n~ ao ha solteiro em Z , pois caso contrario ter amos um caminho de aumento e M n~ ao seria maximo. Assim, um caminho M-alternado maximal, isto e, que n~ ao pode ser continuado, que comeca no solteiro x 2 S X , deve necessariamente terminar, com um numero par de lados, num casado x0 2 S X . Considerando, pois, S = (Z \ X ) + x e T = Z \ Y , temos que #S = #T + 1 e (S ) = T , donde # (S ) = #T = #S 1 < #S , mostrando que S viola a condic~ ao de Hall. Q.E.D.

3.5 O Algoritmo Hungaro


Dado um grafo simetrico G = (V; E ), bipartido em conjuntos de mesma cardinalidade X e Y , o algoritmo hungaro fornece um casamento perfeito ou encontra um conjunto S X que viola a condic~ ao de Hall. Seja M um casamento que deixa x 2 X solteiro. Uma arvore de raiz x, H = (VH ; EH ), subgrafo de G, e M-alternada se for uma arvore onde qualquer caminho partindo de x, C = (x; w ; w ; : : :) for M-alternado. Observemos que se uma dada arvore M-alternada de raiz x tiver uma folha solteira, ent~ ao o caminho C que vai da raiz a esta folha e um caminho de aumento e M 0 = M C e um novo casamento onde, alem de todos os vertices casados em M , x tambem e casado. Se, todavia, encontrarmos uma arvore M-alternada de raiz solteira, onde todas as folhas s~ ao casadas e que seja maxima, isto e, tal que n~ ao exista nenhum vertice em VG VH , adjacente a uma folha de H teremos encontrado um S X que viola a condic~ ao de Hall, S = VH \ X e T = VH \ Y = (S ). O algoritmo Hungaro faz o seguinte: dado um grafo bipartido e simetrico com um casamento que deixa x 2 X solteiro, gerar a arvore can^ onica de busca em profundidade M-alternada, ate encontrar um caminho de aumento, isto e, uma folha solteira. Caso isto n~ ao seja poss vel constatarmos a violac~ ao da condic~ ao de Hall. Exemplo 10: No exemplo 10 temos dois exemplos de grafo e casamento, nos quais esta assinalado um vertice w solteiro e sem mais nenhum pretendente dispon vel. Temos as respectivas arvores Malternadas, marcadas pela ordem de visitac~ ao, os caminhos de aumento, C , e os novos casamentos, 0 M = M C , que casam o vertice w. O algoritmo Hungaro, bem como qualquer algoritmo casamenteiro conhecido, n~ ao e linear; Portanto vale a pena procurar heur sticas mais e cientes para a procura de um casamento perfeito. Dado um grafo e um casamento, os pretendentes de um vertice solteiro s~ ao os solteiros em seu conjunto de adjac^ encia, e o peso de um solteiro, (x), e seu numero de pretendentes. A ideia subjacente em todas estas heur sticas e a de casar primeiro os vertices mais exigentes, i.e. de menor peso, de modo a preservar o maximo de pretendentes para os vertices ainda solteiros.
1 2

34

Cap tulo 3. RESUMO DE TEORIA DOS GRAFOS

Na Heur stica do M nimo Simples, HMS, dado um m-casamento imperfeito, procuraremos obter um m+1-casamento adicionando ao casamento um lado que una vertices ainda solteiros. Escolhemos este lado, de modo a casar um vertice de m nimo peso, entre os ainda solteiros, com um de m nimo peso dentre seus pretendentes. Sempre que houver um vertice isolado, i.e. sem pretendentes ou de peso zero, procuraremos casa-lo pelo algoritmo Hungaro. Na Heur stica do M nimo Par, HMP, escolhemos um lado a ser acrescentado ao casamento onde um dos vertices e de peso m nimo, e o outro tenha peso m nimo dentre todos os pretendentes a vertices de peso m nimo. Como a HMP pode ser bem mais custosa podemos, por exemplo, utilizar a HMS enquanto o peso m nimo dos vertices ainda solteiros for grande, i.e. acima de um dado limite, e a HMP caso contrario. Exemplo 11: O exemplo seguinte ilustra aaplicac~ ao do algoritmo hungaro com a heur stica min-min. No exemplo indicamos o peso, ou numero de pretendentes, de cada vertice. Indicamos ainda, a cada passo, o vertice de n nimo peso a ser casado, bem como, em italico, seu pretendente de m nimo peso. 3 y 3 3 y

2 2 3 y

2 2 2 y

2 2 2 y

x 2
-

@ @ @ A A A @ A@ A A@ @ A @ A A @ @A @A A @ @A @A A @ @ @ @ A A A
1

x 2 1

2
-

x 4 4 3

x 3 3 3

A arvore M-alternada com raiz em x , que cou isolado, nos fornece o caminho de aumento
2

c= x

de modo que podemos recomecar a heurr stica em M c:

3.5. O Algoritmo Hungaro

35 y
1

2 y

1 2
5

x -

A @ A @ @ A A@ @ A@ A A @ @ A @ A A @ @A @A A @ @A @A A @ A @ @ A
1

x -

x -

2
-

x 2

36

Cap tulo 3. RESUMO DE TEORIA DOS GRAFOS

Cap tulo 4 ~ O ASSIMETRICA ELIMINACA


Esparsidade na Fatorac~ ao LU
A maioria dos sistemas lineares encontrados na pratica, especialmente os sistemas grandes, s~ ao esparsos, isto e, apenas uma pequena parte dos coe cientes do sistema n~ ao s~ ao nulos. Ao tratar um sistema esparso, devemos tentar manter a esparsidade do sistema ao longo das tranformac~ oes necessarias a sua soluc~ ao. Tal medida visa, primordialmente, minimizar o numero de operac~ oes aritmeticas a serem realizadas, na propria transformac~ ao e na soluc~ ao do sistema. Economia de memoria tambem e um fator importante.

4.1 Preenchimento Local


No metodo de Gauss as tranformac~ oes k A ! k A podem diminuir o numero de elementos nulos. Se tal ocorrer, dizemos que houve preenchimento de algumas posic~ oes. Queremos escolher o k elemento piv^ o em A de modo a minimizar este preenchimento.
+1

Teorema 4.1 (Tewarson) Seja


2 6 6 6 6 6 6 6 6 6 4

k A1

0 . . .

...

:::
k Ak+1 k+1 k Ak+1 n

k An
1

0 . . . 0

. . .

: : : k An k :::
. . .

k An n

7 7 7 7 7 7 +1 7 7 7 5

seja k B , (n k ) (n k ), a matriz Booleana associada a submatriz das n k ultimas linhas e colunas de k A, i.e. k B = B (Ak+1:n); ou k B q = 1 , k Ak+q 6= 0 ; p k+1:n k +p

37

38
e seja

~ ASSIMETRICA Cap tulo 4. ELIMINACAO


k G = k B ( k B )0 k B

onde o operador complemento aplicado a matriz B , B , troca 0's por 1's e vice-versa. +j k j A escolha do piv^ o k Ak oes. k+i 6= 0 implica no prenchimento de exatamente Gi posic~

Demonstrac~ ao: ~ a matriz obtida de k A por permutac~ Seja k A ao da k + 1-esima linha e coluna com, respectivamente, a k + i-esima linha e a k + j -esima coluna. Os novos elementos de k A ser~ ao, para p; q = 2 : : : (n k),
+1

k+1 Ak+q = k +p +q ~k = kA k +p +q ~k = kA k +p +s = k Ak k +r

k +q k+1 M k+1 k A k+p ~k+1 +1 k ~k +q k ~k+1 kA ~k k+1 k+1 = A k +p A k Ak +j k Ak +s = k Ak +j k +r k +i k +i

onde

r = p se p 6= i; e r = 1 se p = i ; e s = q se q 6= j; e s = 1 se q = j :
+1

Havera preenchimento de uma posic~ ao em k A sempre que, para r; s = 1 : : : (n k), r 6= i e s 6= j ,


k Bs = 0 r n k X

^ k Brj = 1 ^ k Bis = 1
n k X kBs kBj kBs r r i

e portanto o total de preenchimentos, correspondente ao piv^ o (k + i; k + j ), e:


r=1; r6=i s=1; s6=j n k X k B j (( k B )0 )r k B s = r s i r;s=1 j = ( k B ( k B )0 k B )j i = Gi

Na penultima passagem usamos que os termos r = i ou s = j s~ ao todos nulos, q q pois Bp Bp = 0. QED.

Observac~ ao 4.1 Uma aproximac~ ao para a matriz k G e a matriz de Markowitz: k F j = ( k B 1 k B )j ; i i onde denotamos por 1 a matriz quadrada de 1's. A aproximac~ ao F e exatamente o numero de
multiplidores n~ ao nulos vezes o numero de elementos n~ ao nulos, fora o piv^ o, na linha piv^ o. Esta k aproximac~ ao e bastante boa se B e muito esparsa.

4.1. Preenchimento Local


0

39

Exemplo 1: Dada a matriz A, cujos elementos n~ ao nulos est~ ao indicados na matriz boleana associada B ( A), indique uma escolha de piv^ os que minimize preeenchimentos locais. Assuma que ao longo do processo de triangularizac~ ao n~ ao ha cancelamentos, i.e., que um elemento n~ ao nulo uma vez preenchido, n~ ao volta a se anular. Tomando 0 3 1 5 3 1 1 1 0 0 0 1 0 3 2 0 1 1 0 0 B = B ( A) = B = 0 1 0 1 0 ; G = 2 3 3 1 2 3 6 5 1 1 0 0 0 1 1 1 6 3 6 3 1 1 1 0 1
0 2 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 5 2 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 5 0 0 0 0

Assim, arg min i;j j 1B Gj i = f(1; 2)g. Escolhendo (i; j ) = (1; 2), i.e. A como piv^ o, temos o preenchimento de G = 0 posic~ oes em A, 1 1 1 0 0 1 1 2 0 1 1 0 0 B = B( A + M ) = 0 0 1 1 0 ; G = 2 1 1 1 2 1 0 0 0 1 1 1 1 1 0 1 Assim, arg min i;j j 2B Gj i = f(1; 1); (1; 2); (2; 2); (2; 3); (3; 1); (3; 3)g. Escolhendo (i; j ) = (1; 1), i.e. A como piv^ o, temos o preenchimento de G = 1 posic~ oes em A, 1 1 1 0 0 0 1 1 0 0 1 1 B = B( A + M ) = 0 0 1 1 0 ; B = 1 1 0 0 0 1 1 1 1 1 1 1
( )
j =1 i

Assim, arg min i;j j 0B Gj i = f(1; 1); (2; 3)g. oes em o, temos o preenchimento de G = 0 posic~ Escolhendo (i; j ) = (1; 1), i.e. A como piv^ A, 1 1 1 0 0 1 0 3 2 0 1 1 0 0 2 1 2 B = B( A + M ) = 0 1 0 1 0 ; G = 2 4 3 1 1 0 0 0 1 1 3 1 4 2 1 1 1 0 1
( )
j =1 i

1 1

1 1

2 6 6 6 6 6 6 6 4

3 7 7 7 7 7 7 7 5

2 6 6 6 6 4

3 7 7 7 7 5

3 2

2 1

2 6 6 6 6 6 6 6 4

3 7 7 7 7 7 7 7 5

2 6 6 4

3 7 7 5

j =1 i

3 3

1 1

2 6 6 6 6 6 6 6 4

3 7 7 7 7 7 7 7 5

"

Como B = 1, e obvio que n~ ao havera mais preenchimento, quaisquer que que sejam os piv^ os ao doravante selecionados. Tomando, por exemplo, o piv^ o A , temos nalmente temos a fatorac~
3 3 4 5

40 ~ = PAQ = LU , com A
2 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 5

~ ASSIMETRICA Cap tulo 4. ELIMINACAO


2 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 5

1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 ~ B (A) = 0 0 1 1 0 ; B (M + U ) = 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 sendo os vetores de indices permutados p = 1; 2; 3; 5; 4] e q = 1; 3; 2; 4; 5]. Neste processo de triangulazirac~ ao, tivemos assim o preenchimento de apenas 1 posic~ ao, em A . //
4 4 3 4 5

preenchimento local, desprezando assim completamente os apectos de estabilidade numerica, podemos \vetar" escolhas de piv^ os muito pequenos, i.e., que impliquem no uso de multiplicadores muito j grandes, jMi j multmax 1. Se nosso sistema for bem equilibrado, podemos usar como criterio de veto o tamanho do proprio piv^ o, jUiij pivomin 1.

Observac~ ao 4.2 Para n~ ao fazer a selec~ ao de piv^ os apenas pelos criterios para minimizac~ ao de

4.2 Pre-Posicionamento de Piv^ os


Minimizar o preenchimento local e um processo custoso, tanto no numero de operac~ oes envolvidas k k no calculo de G, como por termos de acessar toda a matriz A, o que e um grande inconveniente para o armazenamento e ciente da matriz. Ademais, minimizar o preenchimento local, i.e. aquele causado por cada piv^ o individualmente, e uma estrategia gulosa que pode ter um fraco desempenho global, i.e. causar muito mais preenchimento que a sequ^ encia otima de n piv^ os. Visando superar as de ci^ encias dos metodos locais estudaremos a heur stica P3, ou Procedimento de Pre-determinac~ ao de Piv^ os. A heur stica P3 procura uma permutac~ ao de linhas e colunas, B = PAQ, que reduza o preenchimento na fatorac~ ao B = LU . O procedimento que implementa a heur stica P3 posiciona as colunas de A em B e numa matriz temporaria, S , e permuta linhas de todas as colunas, tentando produzir uma B que seja quase triangular inferior. As colunas de B que n~ ao tem ENNs acima da diagonal denominam-se colunas triangulares. Colunas triangulares s~ ao sempre posicionadas com um ENN na diagonal, que sera usado como piv^ o da coluna na fatorac~ ao B = LU . As colunas de B que tem ENNs acima da diagonal denominam-se espinhos. Na fatorac~ ao LU de B , somente podera ocorrer preenchimento dentro dos espinhos. Ademais, n~ ao havera preenchimento acima do mais alto (menor ndice de linha) ENN num espinho. Portanto, queremos minimizar o numero de espinhos e, como objetivo secundario, minimizar a altura dos espinhos acima da diagonal. A heur stica P3 procede como segue: 1. Compute o numero de ENNs em cada linha e coluna de A, ou os pesos de linha e coluna, respectivamente, pr(i) e pc(j ).

4.2. Pre-Posicionamento de Piv^ os

41

2. Compute h = arg mini pr(i) e = pr(h). 3. Compute a -altura de cada coluna, (j ), o numero de ENNs na coluna j em linhas de peso . 4. Compute t = arg maxj (j ).

(a) Se = 1, seja h 2 fi j pr(i) = 1 ^ A(i; t) 6= 0g; posicione t como a primeira coluna de A, h como a primeira linha, e aplique P3 recursivamente a A(2:m,2:n). A coluna exclu da torna-se a ultima coluna de B . (b) Se > 1, posicione a coluna t como a ultima coluna de A, e aplique P3 recursivamente a A(:,1:n-1). A coluna exclu da torna-se a primeira coluna de S . (c) Se = 0, posicione h como a primeira linha, reposicione a primeira coluna de S (ultima a ser exclu da de A) como a ultima coluna de B , e aplique P3 recursivamente a A(2:m,:). Em P3, o caso = 1 corresponde ao posicionamento de uma coluna triangular em B .

> 1 corresponde a impossibilidade de posicionar uma coluna triangular. Assim (temporariamente) eliminamos uma coluna de A e prosseguimos com P3. O criterio de selec~ ao para a coluna a eliminar visa produzir o caso = 1 nos proximos passos de P3. Em caso de empate na -altura, poder amos usar como desempate a ( + 1)-altura.
= 0 corresponde a n~ ao haver em A uma coluna que pudessemos posicionar em B de modo a continuar formando B n~ ao singular. Ent~ ao reintroduzimos, como proxima coluna de B , a primeira coluna em S . Escolhemos a primeira em S visando minimizar a altura do espinho acima da diagonal. Existe o perigo de que este espinho n~ ao venha a prover um piv^ o n~ ao nulo, ou que apos cancelamentos, o piv^ o seja muito pequeno para garantir a estabilidade numerica da fatorac~ ao. Se A e esparsa e tivermos apenas alguns espinhos, a melhor soluc~ ao e intercalar a fatorac~ ao numerica e simbolica, o que nos da a chance de rejeitar piv^ os instaveis. Metodos para lidar com piv^ os inaceitaveis na fase de fatorac~ ao numerica, apos termos completado uma fase independente de fatorac~ ao simbolica, s~ ao discutidos posteriormente. Exemplo Apliquemos o P3 a matriz booleana A. A medida que o P3 prossegue representaremos a matriz particionada B; A; S , cujos ENNs ser~ ao denotados respectivamente b, a e s. Os ndices de linha e coluna est~ ao a esquerda e acima da matriz. Os pesos, , e as -alturas, , a direita e abaixo da matriz. Os piv^ os, ou espinhos, escolhidos a cada passo est~ ao em negrito.
h i

42

~ ASSIMETRICA Cap tulo 4. ELIMINACAO

pnq 1 2 3 4 5 1 a a a a 2 a a 3 a a a a a 4 a a a 5 1 1 1 1 0 1 3 1 3 : 2 4 2 4 :
2 3 4

4 2 2 3 ; 3

pnq 1 3 4 5 2 1 a a a s 2 a s 3 a a a a s 4 a a s 5 1 0 0 0 :
1

3 1 2 2 2

pnq 1 3 4 5 2 2 b s s 1 b a a 3 a a a a s 4 5 a a s : 2 4 2 :
2

: 2 2 ; 2 2

pnq 1 3 5 4 2 b s 1 b a 3 a s a s 4 5 a s : 2 2 :
1

2 s : s 1 1 s 1 s 1 :

pnq 1 3 5 4 2 b 1 b b s b s 3 4 a s a s 5

2 s : s : 0 ; s 1 s 1

pnq 1 3 4 5 2 2 b s 1 b b b s b b 3 4 b a s b a s 5 : : : 2 :
1

: : : 1 1

pnq 1 3 4 5 2 2 b b 1 b b b b 3 b b + b b b 4 5 b b b
Na permutac~ ao nal obtida pela P3, dada pelos vetores de permutac~ ao p e q, indicamos com um + as posicc~ oes a serem preenchidas no processo de eliminac~ ao. Uma notac~ ao mais compacta para o mesmo exemplo seria:

4.2. Pre-Posicionamento de Piv^ os

43 4

1 2 p nq 1 5 2 3 2 x x x x 1 x x x x 3 4 x x x x 5 1 1 1 1 1 3 1 3 : : 1 4
2 3 2

4 2 2 x 3 x 3 0 : 1

3 1 2 2 2

2 : 2 2 2

1 : 1 1 1

: : 0 1 1

: : : 1 1

No exemplo seguinte reintroduzimos um espinho com 0 na posic~ ao piv^ o. Todavia, no processo de eliminac~ ao, esta posic~ ao sera preenchida antes da sua utilizac~ ao como piv^ o.

s p nq 1 2 3 5 4 6
2 3 2 3

1 1 6 x x x x x x x 1 1 : :

2 x x 3 x x 3 x x x 4 0 x x 4 x x x x 4 1 0 0 0 0 3 : : : : : 2 0 2 2 : 4 : 3 3

2 4 5 3 2

1 2 2 4 3 3

: 2 2 3 2 3

: 1 1 2 2 2

: : 1 2 1 2

: : : 1 0 1

: : : : : 0

pnq 1 2 3 5 4 6

1 6 5 3 4 2 x x x x x x x x x x x x x x x x + x x x x

Observac~ ao 4.3 Da maneira como descrevemos o P3, poder amos aplica-lo tambem a uma matriz
retangular. No caso de Programac~ ao linear e comum ordenarmos pelo P3 todas as colunas da matriz de restric~ oes, A, e depois tomarmos, a cada reinvers~ ao, as colunas na base, B , conforme a ordem estabelecida por P3 em A Orchard-Hays68].

44

~ ASSIMETRICA Cap tulo 4. ELIMINACAO

Exerc cios
1. Implemente a fatorac~ ao LU usando a heur stica de Markowitz. Antes de aceitar um piv^ o, assegure-se que este tem modulo maior que pivmin = 10 , substituindo-o caso contrario. Use a representac~ ao estatica por colunas e de rede da matriz.
4

2. Implemente o P3 para ordenar as colunas de uma matriz retangular, conforme a observac~ ao 6.3. Use a representac~ ao estatica por coluna da matriz. 3. Considere a possibilidade de termos um espinho problematico que, apos o processo de eliminac~ ao das colunas precedentes, apresente um 0 na posic~ ao piv^ o. Mostre que necessariamente existe um espinho, a direita do problematico, cujo elemento na mesma linha do piv^ o do espinho problematico, neste estagio da fatorac~ ao da matriz, e diferente de zero. Descreva um procedimento para lidar com estes casos excepcionais atraves da permutac~ ao de colunas espinhos. Discuta a viabilidade de resolver o problema atraves de permutac~ ao de linhas.

Cap tulo 5 ~ ES SIMETRICAS e FATORACO ORTOGONAIS


Projetores e Problemas Quadraticos 5.1 Matrizes Ortogonais
Dizemos que uma matriz quadrada e real e ortogonal sse sua transposta e igual a sua inversa.Dada Q uma matriz ortogonal, suas colunas formam uma base ortonormal de <n , como pode ser visto da identidade Q0Q = I . O quadrado da norma quadratica de um vetor v,

kvk
2

permanece inalterada por uma transformac~ ao ortogonal, pois kQvk = (Qv)0(Qv) = v0Q0Qv = v0Iv = v0v = kvk :
2

i=1

(vi) = v0v
2

5.2 Fatorac~ ao QR
Dada uma matriz real A m n, m n, podemos existe uma matriz ortogonal Q tal que A = ao e dita uma Q R 0 , onde R e uma matriz quadrada e triangular superior. Esta decomposic~ fatorac~ ao QR, ou fatorac~ ao ortogonal, da matriz A. Descrevemos a seguir um metodo para fatorac~ ao ortogonal. A rotac~ ao de um vetor x angulo e dada pela transformac~ ao linear x 2 < por um ^ ) sin( ) x : rot( )x = cos( sin( ) cos( ) x
" # " # 1 2 2 " #" # 1 2

45

46
"

~ SIMETRICAS e ORTOGONAIS Cap tulo 5. FATORACOES

Notemos que a rotac~ ao e uma transformac~ ao ortogonal, pois

rot(

)0rot(

sin( ) 0 ) = cos( ) + 0 cos( ) + sin( )


2 2 2 2 1

0 : = 1 0 1

"

Alem disso podemos tomar o ^ angulo = arctan(x =x ) de modo que a rotac~ ao correspondente anule a segunda componente do vetor rodado (se x = 0, tome = =2). Como o produto de transformac~ oes ortogonais continua ortogonal (prove), podemos usar uma sequ^ encia de rotac~ oes para levar a matriz A a forma triangular superior, como veremos a seguir. A rotac~ ao de Givens e um operador linear cuja matriz coincide com a identidade, exceto num par de linhas onde imergimos uma matriz de rotac~ ao bidimencional:
1 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4

...

G(i; j; ) =

cos( ) sin( )

...

sin( ) cos( ) ...

7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

Dizemos que a aplicac~ ao deste operador numa matriz A, GA, roda as linhas i e j de A de um angulo . ^ Abaixo ilustramos uma sequ^ encia de rotac~ oes de linhas que leva uma matriz 5 3 a forma triangular superior. Cada par de ndices, (i; j ), indica que rodamos estas linhas do ^ angulo apropriado para zerar a posic~ ao na linha i, coluna j . Supomos que, inicialmente, a matriz e densa, i.e. todos os seus elementos s~ ao diferentes de zero, e ilustramos o padr~ ao de esparsidade da matriz nos estagios assinalados com um asterisco na sequ^ encia de rotac~ oes. (1; 5) (1; 4)(1; 3)(1; 2) (2; 5)(2; 4)(2; 3) (3; 5)(3; 4)
2 6 6 6 6 6 6 6 4

x x x x 0

x x x x x

x x x x x

3 7 7 7 7 7 7 7 5

2 6 6 6 6 6 6 6 4

x 0 0 0 0

x x x x x

x x x x x

3 7 7 7 7 7 7 7 5

2 6 6 6 6 6 6 6 4

x 0 0 0 0

x x 0 0 0

x x x x x

3 7 7 7 7 7 7 7 5

2 6 6 6 6 6 6 6 4

x 0 0 0 0

x x 0 0 0

x x x 0 0

3 7 7 7 7 7 7 7 5

Tomando Q como a produtoria das rotac~ oes de Givens, temos a fatorac~ ao A = QR, como procurada.

5.3. Espacos Vetoriais com Produto Interno

47

5.3 Espacos Vetoriais com Produto Interno


Dados dois vetores x; y 2 <n, o seu produto escalar e de nido como

< x j y > x0 y =

i=1

xi y i :

Com esta de nic~ ao, o produto escalar e um operador que satisfaz as propriedades fundamentais de produto interno, a saber: 1. < x j y >=< y j x >, simetria. 2. < x + y j z >= < x j z > + < y j z >, linearidade. 3. < x j x > 0 , n~ ao negatividade. 4. < x j x >= 0 , x = 0 , de nitividade. Atraves do produto interno, de nimos a norma:

kxk < x j x > = ;


1 2

e de nimos tambem o ^ angulo entre dois vetores n~ ao nulos: (x; y) arccos(< x j y > =kxkkyk):

5.4 Projetores
Consideremos o subespaco linear gerado pelas colunas de uma matriz A, m n, m n:

C (A) = fy = Ax; x 2 <n g:


Denominamos C (A) de imagem de A, e o complemento de C (A), N (A0), de espaco nulo de A0,

N (A0) = fy j A0y = 0g:


O fator ortogonal Q = C j N ] nos da uma base ortonormal de <m onde as n primeiras colunas s~ ao uma base ortonormal de C (A), e as m n ultimas colunas s~ ao uma base de N (A0), como pode ser visto diretamente da identidade Q0A = R 0 .
" #

De nimos a projec~ ao de um vetor b 2 <m no espaco das colunas de A, pelas relac~ oes:

y = PC A b , y 2 C (A) ^ (b y) ? C (A)
( )

48 ou, equivalentemente,

~ SIMETRICAS e ORTOGONAIS Cap tulo 5. FATORACOES

y = PC A b , 9x j y = Ax ^ A0(b y) = 0:
( )

No que se segue suporemos que A tem posto pleno, i.e. que suas colunas s~ ao linearmente independentes. Provemos que o projetor de b em C (A) e dado pela aplicac~ ao linear

PA = A(A0A) A0:
1

Se y = A((A0A) A0b), ent~ ao obviamente y 2 C (A). Por outro lado, A0(b A(A0A) A0)b = (A0 IA0)b = 0.
1 1

y ) = A0 ( I

5.5 Quadrados M nimos


Dado um sistema superdeterminado, Ax = b onde a matriz A m n tem m > n, dizemos que x \resolve" o sistema no sentido dos quadrados m nimos, ou que x e a \soluc~ ao" de quadrados m nimos, sse x minimiza a norma quadratica do res duo,

kAx bk; x = Arg x min 2<


n

Dizemos tambem que y = Ax e a melhor aproximac~ ao, no sentido dos quadrados m nimos de b em C (A). Como a multiplicac~ ao por uma matriz ortogonal deixa inalterada a norma quadratica de um vetor, podemos procurar a soluc~ ao deste sistema (no sentido dos quadrados m nimos) minimizando a transformac~ ao ortogonal do res duo usada na fatorac~ ao QR de A,

c k = kRx ck + k0x dk : x b)k = k R d 0 Da ultima express~ ao v^ e-se que a soluc~ ao, a aproximac~ ao e o res duo do problema original s~ ao dados, respectivamente, por 0 : x = R c ; y = Ax e z = Q d Como ja hav amos observado, as m n ultimas colunas de Q formam uma base ortonormal de N (A0), logo z ? C (A), de modo que conclu mos que y = PA b!

kQ0(Ax

"

"

"

5.6 Programac~ ao Quadratica


O problema de programac~ ao quadratica consiste em minimizar a func~ ao

f (y) (1=2)y0Wy + c0y ; W = W 0

5.7. Fatorac~ ao de Cholesky

49

sujeitos as restric~ oes

gi(y) Ni0y = di : Os gradientes de f e gi s~ ao dados, respectivamente, por

ry f = y0W + c0 ; e ry gi = Ni0 :
As condic~ oes de otimalidade de primeira ordem (condic~ oes de Lagrange) estabelecem que as restric~ oes sejam obedecidas, e que o gradiente da func~ ao sendo minimizada seja uma combinac~ ao linear dos gradientes das restric~ oes. Assim a soluc~ ao pode ser obtida em func~ ao do multiplicador de Lagrange, i.e. do vetor l de coe cientes desta combinac~ ao linear, como

N 0y = d ^ y0W + c0 = l0N 0 ; y = d : N0 0 c l W N Este sistema de equac~ oes e conhecido como o sistema normal. O sistema normal tem por matriz de coe cientes uma matriz simetrica. Se a forma quadratica W for positiva de nida, i.e.se 8x x0Wx 0 ^ x0Wx = 0 , x = 0, e as restric~ oes N forem lineramente independentes, a matriz de coe cientes do sistema normal sera tambem positiva de nida. Estudaremos a seguir como adaptar a fatorac~ ao de Gauss a matrizes simetricas e positivas de nidas.
" #" # " #

ou em forma matricial,

5.7 Fatorac~ ao de Cholesky


Apos a fatorac~ ao de Gauss de uma matriz simetrica, S = LU , podemos p^ or em evid^ encia os 0 elementos diagonais de U obtendo S = LDL . Se S for positiva de nida assim o sera D, de modo que podemos escrever D = D = D = , D = a matriz diagonal contendo a raiz dos elementos em D. De nindo C = LD = , temos S = CC 0, a fatorac~ ao de Cholesky de S . Analisemos agora algumas relac~ oes entre as fatorac~ oes de Cholesky e ortogonal (QR), e de que maneiras a fatorac~ ao ortogonal nos da uma representac~ ao da inversa. Primeiramente observemos que se A = QR, A0A = (QR)0QR = R0Q0QR = R0IR = L0L i.e., o fator triangular da fatorac~ ao ortogonal e o transposto do fator de Cholesky da matriz 0 simetrica A A. Veremos agora que, no caso de termos A quadrada e de posto pleno, o produto pela inversa, y = A x, pode ser calculado sem o uso expl cito do fator Q: Transpondo AR = Q obtemos Q0 = R t A0, donde y = A x = (QR) x = R Q0x = R R tA0x :
1 2 1 2 1 2 1 2 1 1 1 1 1 1

50

~ SIMETRICAS e ORTOGONAIS Cap tulo 5. FATORACOES

Exerc cios
1. Use as propriedades fundamentais do produto interno para provar: (a) A desigualdade de Cauchy-Scwartz: j < x j y > j kxkkyk. Sugest~ ao: Calcule kx yk para =< x j y > =kyk. (b) A Desigualdade Triangular: kx + yk kxk + kyk. (c) Em que caso temos igualdade na desigualdade de Cauchy-Schwartz? Relacione sua resposta com a de nic~ ao de ^ angulo entre vetores.
2 2

2. Use a de nic~ ao do produto interno em <n para provar a Lei do Paralelogramo: kx + yk + kx yk = 2kxk + 2kyk .
2 2 2 2

3. Uma matriz P e idempotente, ou um projetor n~ ao ortogonal, sse P = P . Se P e idempotente prove que:


2

(a) R = (I P ) e idenpotente. (b) <n = C (P ) + C (R). (c) Todos os autovalores de P s~ ao 0 ou +1. Sugest~ ao: Mostre que se 0 e uma ra z do polin^ omio caracter stico de P , 'P ( ) det(P I ), ent~ ao (1 ) = 1 e ra z de 'R( ). 4. Prove que 8P idempotente e simetrico, P = PC P . Sugest~ ao: Mostre que P 0(I P ) = 0.
( )

5. Prove que o operador de projec~ ao num dado sub-espaco vetorial V , PV , e unico e simetrico. 6. Prove o teorema de Pitagoras: 8b 2 <m; u 2 V temos que kb uk = kb PV bk + kPV b uk .
2 2 2

7. Formule o problema de quadrados m nimos como um problema de programac~ ao quadratica. (a) Assuma dada uma base N de N (A0). (b) Calcule diretamente o res duo, z = b y, em func~ ao de A. 8. O traco de uma matriz A e de nido por tr(A)
P

i i Ai .

Mostre que

(a) Se A, m n, tem posto pleno (A) = n, ent~ ao tr(PA ) = n. (b) Nas condic~ oes do item anterior, de nindo RA = (I PA ), temos que tr(RA) = m n. 9. Metodo de Hauseholder: A re ex~ ao de nida por um vetor unitario u j u0u = 1, e a transformac~ ao linear H = I 2uu0. (a) Interprete geometricamente a opereac~ ao de re ex~ ao. (b) Prove que H = H 0, H 0 = H , e H = I .
1 2

5.7. Fatorac~ ao de Cholesky

51
2 6 6 6 6 6 4 3 7 7 7 7 7 5

(c) Dado x 6= 0 um vetor em Rn , tome 1 0 v = x kxk .. . 0


1

; u = v=kvk e H = I 2uu0 :

Mostre que (Hx) = kxk, e que todas as demais componentes de Hx se anulam. (d) Discuta como poderiamos usar uma serie de re ex~ oes para obter a fatorac~ ao QR de uma matriz.

52

~ SIMETRICAS e ORTOGONAIS Cap tulo 5. FATORACOES

Cap tulo 6 ~ O SIMETRICA ELIMINACA


Esparsidade na Fatorac~ ao de Cholesky. 6.1 Grafos de Eliminac~ ao
Na eliminac~ ao assimetrica, estudada no cap tulo 4, procuramos uma permutac~ ao geral, QPAQ0 que minimizasse o preenchimento durante a fatorac~ ao QPAQ0 = LU . No caso simetrico queremos qj = preservar a simetria da matriz, e restringir-nos-emos a permutac~ oes simetricas, QAQ0 = Aq i 0 LL . Exemplo 1: Neste exemplo mostramos as posic~ oes preenchidas na fatorac~ ao de Cholesky de uma matriz simetrica A, bem como o preenchimento na fatorac~ ao de duas permutac~ oes simetricas da mesma matriz: 5 x 1 x x x 1 x x x 1 4 x x 3 0 x x x 2 x 0 2 2 x x x 0 6 0 0 x x x 3 x 0 3 x 6 x x x 0 2 0 0 x 4 0 4 x x 3 x x 0 0 4 0 5 x 5 x x x 1 x 0 0 5 x 0 0 0 x 6 6
( ) ( ) 2 6 6 6 6 6 6 6 6 6 6 4 3 2 7 7 7 7 7 7 7 7 7 7 5 6 6 6 6 6 6 6 6 6 6 4 3 2 7 7 7 7 7 7 7 7 7 7 5 6 6 6 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 7 7 7 5

Assim como no cap tulo 4 a linguagem de teoria de grafos foi util para descrever o processo de eliminac~ ao simetrica, usaremos agora grafos simetricos para estudar a eliminac~ ao simetrica. O primeiro destes conceito a ser de nido e o de grafos de eliminac~ ao, que nada mais s~ ao que k os grafos que tem por matriz de adjac^ encia as submatrizes A do processo de fatorac~ ao (veja cap tulo 2): Dado um grafo simetrico G = (N; E ), N = f1; 2; : : : ng, e uma ordem de eliminac~ ao q = (1); : : : (n)], onde e uma permutac~ ao de 1; 2; : : : n], de nimos o processo de eliminac~ ao dos vertices de G na ordem q como a sequ^ encia de grafos de eliminac~ ao Gi = (Ni; Ei) onde, para 53

54

~ SIMETRICA Cap tulo 6. ELIMINACAO


1

Ni = fq(i); q(i + 1); : : : q(n)g; E = E; e, para i > 1 ; fa; bg 2 Ei , fa; bg 2 Ei ou fq(i 1); ag; fq(i 1); bg 2 Ei De nimos tambem o inverso ordem de eliminac~ ao, q(i) = k , q(k) = i, signi cando que i foi o k-esimo vertice de G a ser eliminado. O grafo preenchido e o grafo P = (N; F ), onde F = n Ei. Os lados originais e os lados preenchidos em F s~ ao, respectivamente, os lados em E e em F E .
1 1 1

i = 1 : : : n,

Observac~ a o 6.1 Ao eliminar a j -esima coluna na fatorac~ ao de Cholesky da matriz QAQ0 = qj


Aq i = LL0 preenchemos exatamente as posic~ oes correspondentes aos lados preenchidos em F quando da eliminac~ ao do vertice q(j ).
( ) ( )

Exemplo 2: Os grafos de eliminac~ ao e o grafo preenchido correspondentes a segunda ordem de eliminac~ ao do exemplo 1, q = 1; 3; 6; 2; 4; 5], s~ ao:

1 j
2 5

n 6 j
4

3 = j n 2 6 j
5

2 5

6 j
4

2 j n
5

1 4 5

2 5

j n 6 j j =

Lema 6.1 (Parter) Se f = fi; j g 2 F , ent~ ao ou f e um lado original, i.e. F 2 E , ou f foi preenchido quando da eliminac~ ao de um vertice k j q (k ) < minfq(i); q(j )g. Lema 6.2 (do caminho) Considere a eliminac~ ao dos vertices de G = (N; E ) na ordem q . Temos que fi; j g 2 F sse existe um caminho de i a j em G, passando apenas por vertices eliminados antes de i ou j , i.e., 9C = (i; v ; v ; : : :vp ; j ), em G, com q (1) : : : q(p) < minfq(i); q(j )g.
1 2

Demonstrac~ ao: (: trivial. ): por aplicac~ ao recursiva do lema de Parter. Dada a matriz A, G = (N; E ) = (N; B (A)), a ordem de eliminac~ ao q, e o respectivo grafo preenchido, consideremos o conjunto de ndices de linha de ENNs na coluna j do fator de Cholesky, Lj j QAQ0 = LL0: enn(Lj ) = fi j i > j ^ fq(i); q(j )g 2 F g + fj g :

6.1. Grafos de Eliminac~ ao

55
(

De nimos a arvore de eliminac~ ao, H, por

j; se enn(Lj ) = fj g; ou ; caso contrario ( j ) = H minfi > j j i 2 enn(Lj )g


1

Para n~ ao sobrecarregar a notac~ ao usaremos h() = H ( ) e g() = H ( ). Assim h(j ), o pai de j em H , e simplesmente o primeiro ENN (n~ ao diagonal) na coluna j de L. Exemplo 3: As as arvores de eliminac~ ao correspondentes ao exemplo 1 s~ ao:
1

6 ! 5 & 4 ! 3 ! 2 ! 1 ;

6 ! 5 ! 4 1 2

% 2 # ; 6 ! 5 ! 3 : 3 & 4 ! 1

Teorema 6.1 (da arvore de eliminac~ ao) Dado i > j , i 2 enn(Lj ) ) j 2 g(i) ;
i.e., qualquer ndice de linha abaixo da diagonal na coluna j de L e um ascendente de de j na arvore de eliminac~ ao.

Demonstrac~ ao: 1 ...

j . . . ... x ::: k

...

l . . . ... x ::: i

...

n
+1

Se i = h(j ) o resultado e trivial. Caso contrario (vide gura 1) seja k = h(j ). Mas Lj i 6= j k 0 ^ Lk 6= 0 ) Li 6= 0, pois fq(j ); q(i)g; fq(j ); q(k)g 2 Gj ) fq(k); q(i)g 2 Gj . Agora, ou i = h(k), ou aplicamos o argumento recursivamente, reconstruindo o ramo de H , (i; l; : : :k; j ), i > l > : : : > k > j . QED. Pela demonstrac~ ao do teorema vemos que a arvore de eliminac~ ao retrata as depend^ encias entre as colunas para o processo de fatorac~ ao numerica da matriz. Mais exatamente, podemos eliminar

56

~ SIMETRICA Cap tulo 6. ELIMINACAO

a coluna j de A (i.e. calcular todos os multiplicadores na coluna j , denotados por M j no cap tulo 2, e atualizar os elementos afetados por estes multiplicadores) sse ja tivermos eliminado todos os descendentes de j na arvore de eliminac~ ao. Se pudermos realizar processamento paralelo (veja cap tulo 8), podemos eliminar simultaneamente todas as colunas em um mesmo n vel da arvore de eliminac~ ao, comecando pelas folhas, e terminando por eliminar a raiz. Exemplo 4: Consideremos a eliminac~ ao de uma matriz com o mesmo padr~ ao de esparsidade da ultima permutac~ ao do exemplo 1. Sua arvore de eliminac~ ao e a ultima apresentada no exemplo 3. Esta arvore tem 3 n veis que, das folhas para a raiz s~ ao: f1; 3; 2g, f4; 5g, e f6g. Assim, podemos fatorar uma matriz com este padr~ ao de esparsidade em apenas 3 etapas, como ilustrado no exemplo numerico seguinte: 1 7 1 7 1 7 2 8 2 8 2 8 3 6 9 3 6 9 3 6 9 7 4 2 7 4 2 7 53 2 4 2 5 5 4 2 5 5 8 6 49 23 1 3 2 1 6 3 2 5 12 9 2 23 39
2 6 6 6 6 6 6 6 6 6 6 4 32 76 76 76 76 76 76 76 76 76 76 54 32 76 76 76 76 76 76 76 76 76 76 54 3 7 7 7 7 7 7 7 7 7 7 5

O proximo teorema mostra uma forma computacionalmente mais e ciente de obter o grafo preenchido, P = (N; F ), e a arvore de eliminac~ ao, H , dado o padr~ ao de esparsidade da matriz original, G = (N; E ), e a ordem de eliminac~ ao, q. Nesta vers~ ao simpli cada dos grafos de eliminac~ ao, Gj , ao eliminarmos o vertice q(j ), preenchemos apenas os lados incidentes ao seu vizinho mais proximo de ser eliminado.

Teorema 6.2 (da fatorac~ ao simbolica) De nimos agora a vers~ ao simpli cada do processo de
eliminac~ ao:

Gj E h (j ) Ej
1 +1

(Nj ; Ej ); E; minfi > j j fq(j ); q(i)g 2 Ej g ffa; bg 2 Ej j q(a); q(b) > j g ffq(h(j )); vg; v j q(v) j ^ fq(j ); vg 2 Ej g F = n Ej = = = =
1

A rmamos que o grafo preenchido e a arvore de eliminac~ ao obtidos no processo simpli cado coincidem com a de nic~ ao anterior, i.e., F = F e h = h.

Exemplo 5: Os grafos de eliminac~ ao simpli cados e o grafo preenchido referentes a segunda ordem de eliminac~ ao no exemplo 1, q = 1; 3; 6; 2; 4; 5], s~ ao:

6.1. Grafos de Eliminac~ ao

57 1
4 5

1 j
2 5

3 6 2 = j n 2 n = j j n 6 j 6 j 2
4

4 2 j
5

3 4

j n 6 j j =

O lema seguinte demonstra o teorema da fatorac~ ao simbolica:

Lema 6.3
enn(Lj ) =
Demonstrac~ ao: :
k k2g(j ) enn(L )

enn(Aj ) J + fj g ; J = f1; 2; : : : j g :

...

k x . . . ... j x ::: j

... ...

n Consideremos k 2 g(j ) (vide gura 2). Se i > j 2 enn(Lk ), ent~ ao se Lj ao e um ENN, sera i ja n~ k preenchido ao eliminarmos L . : 1 ... l . . . ... x : : : h(l) . . j . ... x : : : h (l ) ... j . . . . . . . 7! . . 7! . . . ... n
2

58

~ SIMETRICA Cap tulo 6. ELIMINACAO

Seja l < j j j 2 enn(Ll), i.e., consideremos uma coluna e cuja eliminac~ ao poderia causar preenchimentos na coluna j (vide gura 3). Pelo teorema da arvore de eliminac~ ao, j e um ascendente de p l, i.e., 9p n j j = h (l). Mas pela primeira parte da prova,
+1

enn(Ll) J enn(Lh l ) J : : : enn(Lh j ) enn(Lj ) fj g ;


()
p

( )

de modo que qualquer vertice que poderia causar, durante a eliminac~ ao da coluna l, uma preenchip mento na coluna j , deve necessariamente aparecer em h (l) 2 g(j ). QED.

6.2 Grafos Cordais


Em um dado grafo simetrico, G = (N; E ), de nimos os seguintes termos: G = (N; E ) e cordal sse para qualquer ciclo C = (v ; v ; : : : vp; v ); p 3, existe uma corda, i.e., um lado e 2 E ligando dois vertices n~ ao consecutivos em C . Um vertice e simplicial sse sua eliminac~ ao n~ ao causa preenchimento. Uma ordem de eliminac~ ao, q, e perfeita sse a eliminac~ ao de nenhum dos vertices, na ordem q, causa preenchimento. Um subconjunto dos vertices, S N , e um separador entre os vertices a e b, sse a remoc~ ao de S deixa a e b em componentes conexas distintas. Dizemos que S N e um separador entre A N e B N sse, 8a 2 A; b 2 B , S separa a de b. Um conjunto, C , satisfazendo uma propriedade, P , e minimal (em relac~ ao a P ) sse nenhum subconjunto proprio de C satisfaz P . Analogamente, um conjunto e maximal, em relac~ ao a P , sse nenhum conjunto que o contenha propriamente satisfaz P . Um clique e um conjunto de vertices C N onde todos os vertices s~ ao adjacentes, i.e., 8i; j 2 C; fi; j g 2 E . indexClique Exemplo 6: No 1o grafo do exemplo 2 vemos que 5 e 6 s~ ao vertices simpliciais, q = 5; 4; 2; 6; 3; 1] e uma ordem de eliminac~ ao perfeita. No ultimo grafo do exemplo 2 vemos que S = f2; 3; 6; 4g e um separador entre os vertices a = 1 e b = 5 (n~ ao minimal), S 0 = S f3g e um separador minimal, e C = f1; 2; 3; 6g e um clique.
1 2 1

Teorema 6.3 (da caracterizac~ ao de grafos cordais) Dado G = (N; E ), as tr^ es propriedades
seguintes s~ ao equivalentes: 2. G e cordal. 3. Se S e um separador minimal entre a; b 2 N , ent~ ao S e um clique. 1. Existe em G uma ordem de eliminac~ ao perfeita.

Demonstrac~ ao: 1 ) 2:

6.2. Grafos Cordais


1 2 1

59
1

Seja q = (1); (2); : : : (n)] uma ordem de eliminac~ ao perfeita em G, e seja C = (v ; v ; : : :vp; v ) um ciclo em G. Consideremos vk o primeiro vertice de C a ser eliminado, k = arg min i p fq(vi)g. Como q e uma ordem de eliminac~ ao perfeita, a corda fvk ; vk g 2 E . 2 ) 3: Seja S um separador minimal entre A e B , a 2 A, b 2 B , v; w 2 S . Como S e minimal, existe um caminho C = (a; c ; : : :cp; v) j c ; : : :cp 2 A, pois, caso contrario, S v continuaria separando a de b. Analogamente existe um caminho D conectando a a w, com os vertices intermediarios todos em A. Existe pois um caminho de v a w, cujos vertices intermediarios est~ ao todos em A. Seja P um tal caminho de comprimento m nimo, P = (v; a ; : : :ap; w). Analogamente seja Q = (w; b ; : : :bq ; v) um caminho de w a v atraves de B com comprimento m nimo. Concatenando P e Q obtemos um ciclo R = (v; a ; : : : ap; w; b ; : : :bq ; v). Como G e cordal, R contem ao menos uma corda, fx; yg. Como S e um separador, n~ ao podemos ter x 2 A e y 2 B . Como P tem comprimento m nimo, n~ ao podemos ter x; y 2 P e, analogamente n~ ao podemos ter x; y 2 Q. Assim, fv; wg e a unica corda poss vel em R, e conclu mos que 8v; w 2 S; fv; wg 2 G. Antes de 3 ) 1, provemos 2 lemas auxiliares:
1 +1 1 1 1 1 1 1

duzido por um subconjunto de vertices tambem a satisfaz.

Lema 6.4 (hereditariedade) Se G satisfaz a propriedade 3, ent~ ao qualquer subgrafo de G inDemonstrac~ ao: ~ = (N; ~ E ~ ) o subgrafo de G induzido por N ~ N, e S ~ minimal em G ~ separando a de b. Seja G ~, com vertices de N N ~ , de modo a obter S , um separador minimal Podemos, em G, completar S ~ e um subgrafo de em G entre a e b. Mas se G satisfaz a propriedade 3, S e um clique, e como S ~ tambem e um clique. S, S

Lema 6.5 (Gavril) Se G satisfaz a propriedade 3 ent~ ao ou G e completo, ou G tem ao menos


dois vertices simpliciais n~ ao adjacentes.

Demonstrac~ ao: Provemos o lema por induc~ ao no numero de vertices de G, n. Para n = 1 o lema e trivial. Se G = (N; E ); n > 1, n~ ao e completo, 9a; b 2 G j fa; bg 2 = E. Seja S um separador minimal entre a e b, partindo G S em ao menos 2 componentes conexas distintas, A e B , a 2 A, b 2 B . G(S A), o subgrafo induzido pelos vertices de S A, hereditariamente satisfaz a propriedade 3, e pela hipotese de induc~ ao, ou G(S A) e um clique, ou contem (ao menos) 2 vertices simpliciais n~ ao adjacentes. Se G(S A) n~ ao for completo, ent~ ao um dos seus 2 vertices simpliciais n~ ao adjacentes deve estar em A (pois S e um clique). Se G(S A) e completo, ent~ ao qualquer vertice de A e simplicial (pois S e um separador). Logo, existe ao menos um vertice simplicial, v 2 A. Analogamente, existe um vertice simplicial w 2 B , e v n~ ao e adjacente a w (pois S separa v de w).

60

~ SIMETRICA Cap tulo 6. ELIMINACAO

3 ) 1: Seja G = (N; E ) satisfazendo a propriedade 3. Se G e completo, qualquer ordem q e perfeita. Caso contrario, existem 2 vertices simpliciais n~ ao adjacentes. Podemos pois eliminar um deles, q(1), sem preenchimento, e pelo lema da hereditariedade o subgrafo resultante continua satisfazendo a propriedade 3. Podemos ent~ ao usar o argumento recursivamente para obter uma ordem de eliminac~ ao perfeita. QED.

6.3 Ordenac~ oes por Dissecc~ ao


Consideremos em G = (N; E ) um separador S que parte N S com componentes conexas N ; N ; : : : ; Nk . Em cada uma desta componentes podemos considerar um novo separador que a reparte, e assim recursivamente. Podemos representar este processo pela arvore de dissecc~ ao, D, onde S e a raiz, uma componente separada por S , ou o separador dentro dela, e lha de S , e as componentes n~ ao repartidas s~ ao as folhas da arvore. Uma pos-ordem dos vertices de uma arvore H de raiz r e uma ordem q, dos vertices de H , que lista os vertices de cada uma das arvores de H r, recursivamente em pos-ordem, e, nalmente, r. Seja q ~ uma pos-ordem numa arvore de dissecc~ ao, D, de G. Substituindo em q ~ cada no, d, de D pelos vertices de G em d, temos uma ordem de dissecc~ ao, q.
1 2

entre (vertices de) d e (vertices em) nos ancestrais de d (em D), ou ainda entre (vertices em) ascendente de d (em D).

Lema 6.6 (Dissecc~ ao) Consideremos a eliminac~ ao dos vertices de G na ordem de dissecc~ ao q . A eliminac~ ao de um dado verice, v 2 d, so pode preencher lados dentro do seu no em D, d, ou

Demonstrac~ ao: Trivial, pelo lema do caminho. Exemplo 7: Vejamos um exemplo de eliminac~ ao usando uma ordem de dissecc~ ao

3 8

j j

= j 4 5
10

11

j n j n
12

j n

7 13

f1; 2g = j n f3; 4g f5; 6g f7g j j n f8; 9; 10g f11; 12g f13g

6.3. Ordenac~ oes por Dissecc~ ao

61

1 2 3 4 5 6 7 8 9 10 11 12 13

9 x x x 8 0 x x 0 10 0 x x 0 3 0 x 0 4

11

x 12 x x 13 x x x 5 0 x x 0 6

x 0 0 0 x

x 0 0 0 x

x 0 x 7 x x 0 1 0 x x 0 2

~ , e em, G, um separador entre cada uma O ultimo conjunto da partic~ ao, Sk ou a raiz de G ~ k. Para minimizar a regi~ das componentes de G ao de poss vel preenchimento (em G ou QAQ0) gostar amos de ter o separador Sk \pequeno e balanceado", i.e. tal que #Sk seja o menor poss vel. Sub-arvores tenham aproximadamente o mesmo numero de vertices de G. Recursivamente, gostar amos de ter como raiz de cada uma das sub-arvores um bom separador, i.e., pequeno e balanceado. Veremos a seguir varias heur sticas para obter num grafo qualquer, G, um bom separador. Heur stica de Busca em Largura: Uma busca em largura, BEL, a partir uma raiz v 2 N , particiona os vertices de G em n veis L ; L ; : : :Lk , de nidos por
0 1

L = fvg ; Li = adj (Li) Li :


0 +1 1

A profundidade do n vel Li e i, e a largura do n vel Li e #Li. A profundidade e a largura da BEL s~ ao, respectivamente, a maxima profundidade e a maxima largura nos n veis da BEL.

Lema 6.7 O n vel Li separa, em G, os vertices em n veis mais profundos dos em n veis menos
profundos que i.
P

A heur stica de BEL procura um separador balanceado S Li, tomando i k=2, ou ent~ ao i n tomando i j #Lj < n=2 ^ i #Lj < n=2 : Para obter um separador pequeno a heur stica procura uma raiz, v, que gere uma BEL de maxima profundidade, com o intuito de reduzir a largura da BEL. A dist^ ancia (em G) de um
1 1 P +1

62

~ SIMETRICA Cap tulo 6. ELIMINACAO

vertice v a um vertice w, dist(v; w), e o comprimento, ou numero de lados, do caminho mais curto entre ambos os vertices. A excentricidade de um vertice v e exc(v) = maxw2N dist(v; w). Um vertice de maxima excentricidade se diz periferico, e sua excentricidade e o di^ ametro de G. Uma BEL com raiz v tera profundidade igual a excentricidade de v. Isto motiva querermos iniciar a BEL por um vertice periferico. Encontrar um vertice periferico e um problema computacionalmente dif cil. A heur stica de Gibbs encontra um vertice quase-periferico como segue: 1. Escolha como raiz um vertice de grau m nimo. 2. Forme os n veis da BEL com raiz v, L : : : Lk . Particione o n vel mais profundo em suas componentes conexas, Lk = l Sj , e tome um vertice de grau m nimo, vj , em cada componente.
1 1

3. Para j = 1 : l Tome vj como nova raiz e encontre os n veis da BEL, L : : :Lk


1
0

Ate que k0 > k ou j = l. 4. Se o passo 3 terminou com k0 > k, volte ao passo 2. Caso contrario a atual raiz e um vertice quase-periferico. Exemplo 8: Retomando o exemplo 7, a heuristica de Gibbs encontra 3 como vertice quase-periferico. Tomando 3 como raiz geramos a arvore H por BEL:

H= L=
1

3 1
5

8 2

9 3

10 1 4

4 5 5 12 6
2

6 7

13 2 8
3 3

7 9
7

Escolhendo S = L como primeiro separador, e depois S = L e S = L como separadores dentro de cada uma das componetes separadas por S , obtemos a odem por dissecc~ ao q = 3; 8; 1; 10; 9; 11; 12; 2; 13; 7; 6; 4; 5].
1

6.3. Ordenac~ oes por Dissecc~ ao

63

3 x 1 x 8 x 2 1 x x 3 10 x x 4 x x 9 0 5 11 x 6 12 x x 7 2 x x 8 13 x 9 x 7 0 10 x x x 0 6 0 11 x x 0 4 0 12 x x x 0 0 5 13 Note que nas linhas (colunas) correspondentes aos vertices do primeiro separador, S = f1g, pode haver ENN's em qualquer posic~ ao. Note tambem que o resto da matriz esta em forma diagonal blocada (vide de nic~ ao no cap tulo 8), onde cada bloco correspnde a uma das componentes separadas por S . Esta estrutura se repete em cada bloco, formando a estrutura \espinha de peixe" caracter stica de ordens por dissecc~ ao. Note que esta estrutura e preservada pela fatorac~ ao de Cholesky.
1 1

Exerc cios
1. Implemente a eliminac~ ao simbolica num grafo G, com a ordem q, computando F e H , em tempo O(#enn(L)). 2. Qu~ ao e ciente (k em tempo O(nk )) poder amos implementar o algoritmo impl cito na ultima parte do teorema de caracterizac~ ao de grafos cordais? 3. Considere o seguinte algoritmo para numerar os vertices de um grafo na ordem n; n 1; : : : 2; 1: Ordenamento Reverso por Grau Maximo (ORGM): (a) Escolha, como vertice n, um vertice qualquer. (b) Escolha, como vertice seguinte um vertice ainda n~ ao numerado adjacente a um numero maximo de vertices ja numerados Prove que ORGM de ne uma ordem perfeita. 4. Qu~ ao e cientemente podemos implementar o ORGM? 5. De um exemplo de vertice quase-periferico que n~ ao seja periferico.

64

~ SIMETRICA Cap tulo 6. ELIMINACAO

Cap tulo 7 ESTRUTURA


Acoplamento de Sub-Sistemas Estruturas Blocadas
Consideraremos neste cap tulo matrizes com blocos de elementos nulos dispostos de forma regular. Estudaremos duas estruturas: a triangular-blocada superior, e a angular blocada por colunas. O bloco r ao m(r) n(s), e na estrutura triangular blocada m(k) = n(k). s B tem dimens~
2 6 6 6 6 6 6 6 6 4 1 1

B 0 0 . . . 0

2 1 2 2

B B ::: B B ::: 0 B ::: ... 0 0 :::


3 1 3 2 3 3

hB 1 hB 2 hB
3

3 7 7 7 7 7 7 7 7 5

2 6 6 6 6 6 6 6 6 4

1 1

. . . hB h

B 0 . . . 0 0

2 2

0 ::: B ... 0 0 :::

0 0
h h

hB 1 hB
2

3 7 7 7 7 7 7 7 7 5

1 1

. . .

hB h

Estas estruturas blocadas propiciam grandes facilidades computacionais. Em particular triangulariza-las corresponde a triangularizar os blocos diagonais, sendo que nenhum elemento n~ ao nulo e criado, durante a triangularizac~ ao, nos blocos nulos.

7.1 Estrutura Triangular Blocada


Como ja visto no estudo de matrizes de permutac~ ao, dado G = (N; B ), N = f1; : : : ng, B; n n, sua matriz de adjac^ encia, e um reordenamento de seus vertices, q = q ; : : : qn], qi 2 N , ent~ ao ~ a matriz de adjac^ encia do grafo G com os vertices reordenados (i.e., reindexados) por q e B = q j 0 Bq i = QBQ .
1 ( ) ( )

65

66
1 2

Cap tulo 7. ESTRUTURA


1 ( )

q = q; q : : : h q]. Conforme a de nic~ ao de ordem coerente, cada bloco, k q = k q ; : : : k qn k ], contem os vertices de uma CFC (componente fortemente conexa) de G, vk , e (v ; : : : vh ) est~ ao ~ topologicamente ordenados. Neste caso a matriz de adjac^ encia do grafo reordenado, B = QBQ0, e triangular blocada superior, de blocos r s B , n(r) n(s).
1

Lema 7.1 Considere o reordenamento coerente dos vertices de G = (N; B ) numa ordem coerente

Uma matriz que n~ ao possa ser, por permutac~ oes de linhas e de colunas, reduzida, isto e, posta na forma triangular-blocada, e dita irredut vel. Dada uma matriz A, n~ ao singular, procuraremos permutac~ oes de linhas e colunas, isto e, por ~ matrizes de permutac~ ao R e Q, encontrar A = RAQ que seja a \mais na" partic~ ao poss vel de A. Observemos que a hipotese de n~ ao singularidade de A implica na n~ ao singularidade dos blocos diagonais, pois ~) = det(A) = det(A
Y

k=1

~) : det(k kA

Sejam R e Q matrizes de permutac~ ao e seja P = QR, ~ = RAQ = Q QRAQ = Q0PAQ A


1

ou seja, podemos escrever qualquer transformac~ ao do tipo RAQ como uma permutac~ ao de linhas, 0 PA, seguida de uma permutac~ ao simetrica Q (PA)Q. Consideremos agora o grafo associado a matriz PA, G(PA), que tem por matriz de adjac^ encia o padr~ ao de esparsidade de PA, B (PA), i.e.,

G(PA) = (N; B (PA)) = (N; ); j 2 (i) , (PA)ji 6= 0 :


Do ultimo lema sabemos que a permutac~ ao simetrica que da a mais na partic~ ao de PA e um ordenamento coerente dos vertices de G(PA). Ademais, PA e irredut vel se G(PA) e fortemente conexo. Resta, portanto, analisar o papel da permutac~ ao de linhas, P , na permutac~ ao geral 0 ~ de linhas e colunas de A = Q PAQ, onde a permutac~ ao simetrica e dada por um ordenamento coerente em G(PA). Pela n~ ao singularidade, A deve possuir ao menos uma diagonal de elementos n~ ao nulos (n~ ao necessariamente a diagonal principal, veja as de nic~ oes de determinante e diagonal). Portanto existe uma permutac~ ao de linhas, P , que posiciona esta diagonal de elementos n~ ao nulos na diagonal principal de PA. Uma tal permutac~ ao P sera dita uma permutac~ ao propria, ao passo que uma permutac~ ao que coloque algum elemento nulo na diagonal principal sera dita impropria. Isto posto, mostraremos que:

7.1. Estrutura Triangular Blocada

67

Teorema 7.1
1. Qualquer permutac~ ao propria induz a mesma estrutura de partic~ ao, isto e, h blocos de dimens~ oes n(1) : : : n(h), com os mesmos ndices em cada bloco. ~. 2. Qualquer permutac~ ao impropria n~ ao pode induzir uma partic~ ao mais na em A

Demonstrac~ ao: Pelo lema de Ho mann G(PA) e fortemente conexo, i.e., PA e irredut vel se qualquer conjunto de k < n linhas tiver elementos n~ ao nulos em ao menos k + 1 colunas. Como esta caracterizac~ ao independe da ordem das linhas, mostramos que a irredutibilidade da matriz PA independe da permutac~ ao propria considerada. ~ bem como a exist^ Da mesma forma, a irredutibilidade do bloco sudeste, h encia da CFC vh hA entre as \ultimas" (no sentido da ordem natural do grafo reduzido) componentes associadas a qualquer outra permutac~ ao propria, P , esta garantida, de modo que a invari^ ancia da estrutura de ~ A segue por induc~ ao no numero de componente fortemente conexas (blocos). Mostramos agora que se A tiver algum elemento diagonal nulo, ent~ ao as componentes fortemente conexas de G(A) s~ ao fus~ oes de componentes fortemente conexas de G(PA): Distinguamos os zeros na diagonal de A e consideremos o grafo G (PA) obtido de G(PA) ao adicionarmos as arestas correspondentes aos zeros distinguidos em PA. As CFCs em G(A) s~ ao exatamente as CFCs em G (PA), sendo que as arestas adicionais (se quando adicionadas ao grafo reduzido de G(PA) formarem ciclos) so podem tornar equivalentes alguns vertices antes em CFCs distintas. QED. A permutac~ ao propria, P , pode ser vista como um casamento perfeito entre linhas e colunas, onde casamos a coluna j com a linha p(j ), entre seus pretendentes (j ) = fi j Bij 6= 0g. Podemos portanto encontra-la atraves do algoritmo Hungaro, de prefer^ encia com o emprego de alguma heur stica e ciente para evitar a frequente gerac~ ao de arvores de caminhos de aumento. Exemplo 1: Considere as matrizes de adjac^ encia B , sua permutac~ ao propria PB , e o posterior ordenamento 0 coerente Q PBQ. 1 1 1 0 1 0 j B = 0 1 1 ; PB = Bp i = 0 1 0 ; 0 1 1 1 1 1 1 1 1 q j 0 Q PAQ = Bp q i = 0 1 1 : 0 0 1 Observe que G(B ) e fortemente conexo. Em B destacamos a diagonal a ser posicionada por P na diagonal principal de PB , e o zero inicialmente na diagonal principal. Em PB destacamos o mesmo zero originalmente na diagonal de B . G(PB ) tem 3 CFCs, que voltariam a fundir-se
+ + 1 2 6 6 4 3 7 7 5 2 6 6 4 3 7 7 5 ( ) 2 6 6 4 3 7 7 5 ( ) ( ( ))

68

Cap tulo 7. ESTRUTURA

numa so, caso adicionassemos a aresta correspondente ao zero destacado em PB . Neste exemplo tivemos p = 3; 1; 2], q = 1; 3; 2]. O procedimento P4 (Partic~ ao e Pre-Posicionamento de Piv^ os) explora esparsidade estrutural, e posteriormente a esparsidade local a cada bloco, como segue: 1. Encontre uma permutac~ ao propria, PA, atraves do algoritmo hungaro complementado com uma heur stica e ciente. 2. Encontre, atraves do algoritmo de Tarjan, um ordenamento coerente Q0PAQ. 3. Inverta este ultimo ordenamento, QPAQ0, de modo a colocar a matriz na forma triangular blocada inferior. Em seguida aplique a heur stica P3 a cada bloco diagonal. S~ ao apresentados tr^ es exemplos de aplicac~ ao do P4. A disposic~ ao original dos ENNs da matriz original, A, corresponde aos sinais +, , ou numeros de 1 a 9 no corpo da matriz. Como prescrito no primeiro passo do P4, primeiramente encontramos uma diagonal n~ ao nula, ou equivalentemente uma permutac~ ao propria PA. O vetor inverso de ndices de linha permutados, p, e dado a esquerda da numerac~ ao original das linhas. Os asteriscos indicam os elementos desta diagonal. Como prescrito no segundo passo do P4, devemos em seguida encontrar um reordenamento coerente, q, em G(PA). Para tanto aplicamos o algoritmo de Tarjan: Primeiramente fazemos a busca em profundidade can^ onica em G(PA). Para tanto percorremos as linhas de PA, gerando a primeira oresta de cada exemplo. As ra zes desta busca s~ ao assinaladas por um acento circun exo, tanto na oresta como no vetor p. Os numeros no corpo da matriz correspondem a ordem de visitac~ ao nesta busca. A inversa da ordem de retorno e dada pelo vetor b. O algoritmo de Tarjan exige em seguida a busca em profundidade can^ onica no grafo inverso 0 reordenado por b, G((BPAB ) ); na verdade basta tomarmos as ra zes desta busca na ordem can^ onica. Percorrendo as colunas da matriz, constru mos a segunda oresta em cada exemplo, cujas ra zes est~ ao assinaladas por um acento circun exo, tanto na oresta como no vetor b. A ordem de visitac~ ao nesta segunda busca em profundidade nos da o reordenamento coerente QPAQ0; apresentado explicitamente em cada exemplo para que se reconheca a estrutura triangular superior. Finalmente, ao nal dos exemplos, apresentamos o terceiro passo do P4: a invers~ ao deste 0 ordenamento coerente, Q PAQ, (portanto triangular inferior), com posterior aplicac~ ao do P3 a cada bloco diagonal. Neste ponto ca claro que o segundo e o terceiro exemplos diferem apenas pela permutac~ ao original da matriz. Neste ponto indicamos tambem os zeros preenchidos durante a fatorac~ ao.

7.1. Estrutura Triangular Blocada

69

Exemplo 2:

q p b p 7 7 2 4 6 5 1 1 8 8 5 6 3 2 4 3 9 9

p 4 5 9 ^ 1 8 7 6 3 2

q 1 9 1 9 b ^ 1 2 1 2 + + 3 4 7 5 6 + 7 8 9

4 3 3

7 2 3 5 ^ 7 4 2 6 4 5 6 7

2 + 5 + + 3

8 6 ^ 8 5 8 9 6 4 8 + 9 + + + +

#
6

^ 1 ! 3 ! 5 ! 7 ! 4 ! 8 ! 2

#
9

# #
2

^ 1

^ 7

4 ! 3

#
9

^ 8

6 ! 5

p=q 1 2 3 4 5 6 7 8 9 1 + + + 2 + + + 3 + + + 4 + + 5 + + + 6 + + 7 + 8 + + 9

70 Exemplo 3:

Cap tulo 7. ESTRUTURA

q p b p 1 1 9 8 6 4 3 6 2 9 7 5 8 7 5 3 4 2

p ^ 1 8 9 2 4 7 6 5 3

q 1 3 b ^ 1 6 1 2 1 2 3 4 5 + 6 7 8 9 3

4 2 3 2 + +

2 5 8 7 9 9 3 ^ 7 5 8 4 5 6 7 8 + + 9 + 4 5 6 + 7

6 ^ 4 9

+ 8

^ 1 ! 3 ! 2 ! 4

^ 1 9 6

# # #
2 ! 3

^ 4 5

^ 7 8

6 ! 8

5 ! 9 ! 7

p=q 1 2 3 4 5 6 7 8 9 1 + + 2 + + 3 + + 4 + + + 5 + + 6 + + 7 + 8 + 9 +

7.1. Estrutura Triangular Blocada

71

Exemplo 4:

q p b p 1 1 8 8 7 7 3 3 2 4 6 6 9 9 5 5 4 2

p ^ 2 5 7 8 6 ^ 1 9 4 3

q 6 1 4 b ^ 6 ^ 1 2 1 2 3 1 6 2 3 + 4 5 + + 6 7 + 8 9

5 5 4

8 2 7 3 9 ^ 8 4 7 3 9 5 6 7 8 9 + 4 3 + + + 2 8 + 9

^ 1 ! 7 ! 5 ! 9 ^ 2 ! 3 ! 4

# # #

^ 1 4 3

#
7

^ 6

#
9

^ 8

# &
6

2 ! 5

p=q 1 2 3 4 5 6 7 8 9 1 + + 2 + + 3 + + 4 + + + 5 + + 6 + 7 + + 8 + 9 +

72 Exemplos 2 a 4; Passo 3 do P4:

Cap tulo 7. ESTRUTURA

p=q 1 2 3 4 5 6 7 8 1 + 2 + 3 + 4 + 0 5 + + + 6 + + + 0 7 8 + + + 0 9 + + + p=q 1 2 3 4 5 6 7 8 1 + 2 + 3 + 4 + 0 + 5 + 6 + + + + 7 8 + + + 9 p=q 1 2 3 4 5 6 7 8 1 + 2 + 3 + + 4 + 5 + 0 6 + + + 7 + 0 + 8 9 + +

+ + + + 0

+ + 0 +

+ + 0 +

7.2. Estrutura Angular Blocada

73

7.2 Estrutura Angular Blocada


Suponhamos dada uma matriz quadrada e n~ ao singular na forma angular blocada, com blocos h k diagonais B; : : : B , B m(k) n(k), d(k) m(k) n(k) 0, e os correspondentes blocos nas colunas residuais C : : : hC , k C m(k) n(h + 1). Podemos usar rotac~ oes de Givens para fatorar kV cada um dos blocos diagonais, k B = h Q 0 , onde k V e triangular superior n(k) n(k), e o bloco de zeros e d(k) n(k).
1 1 " # 2 2 6 6 4 1 1

C . ... . . hB hC
1

3 7 7 5

6 6 6 6 6 6 6 6 4

V 0

W Z . ... . . hV h W 0 hZ
1 1

3 7 7 7 7 7 7 7 7 5

Para completar a fatorac~ ao QR da matriz original, respeitando a estrutura de blocos, permuk tamos os blocos Z para as ultimas linhas da matriz, formando o bloco quadrado Z de dimens~ ao h d(k ) = n(h + 1). Finalmente completamos a fatorac~ ao QR do bloco sudeste, Z = QS .
P 1 2 6 6 6 6 6 6 6 6 6 6 6 4 1

W . ... . . hV hW Z . . . hZ
1 1

3 7 7 7 7 7 7 7 7 7 7 7 5 2 6 6 6 6 6 4 1

W . ... . . hV hW S
1

3 7 7 7 7 7 5

Como permutac~ oes s~ ao apenas um tipo especial de transformac~ oes ortogonais, obtivemos o fator triangular da fatorac~ ao QR respeitando a estrutura diagonal blocada da matriz original, B = QU . A inversa da matriz original seria dada por B = U Q0, mas usando que Q0 = U t B 0 temos B = U U tB 0. Isto e, obtivemos uma fatorac~ ao de B onde todos os fatores herdam (e s~ ao computados de acordo com) a estrutura angular blocada da matriz original. Observando que B 0B = U 0Q0QU = U 0U , vemos que uma maneira alternativa de computar o fator triangular da fatorac~ ao ortogonal de B , e computar o fator de Cholesky da matriz simetrizada B 0B : B0 B B0 C . ... . . hB 0hB hB 0hC : C 0 B : : : h C 0h B Z Ao eliminarmos os h blocos das linhas residuais de B 0B , formamos o bloco sudeste Z = Z + h k Z , a ser fatorado na ultima etapa do processo, Z = S 0S . Ao nal, obtemos exatamente o fator
1 1 1 1 2 6 6 6 6 6 4 1 1 1 1 3 7 7 7 7 7 5 1 1 0 0 P 1

74 triangular da fatorac~ ao QR da matriz original.

Cap tulo 7. ESTRUTURA

7.3 Partic~ ao de Hipergrafos


Um hipergrafo e um par ordenado G = (V; C ) onde o primeiro elemento e um conjunto nito, o conjunto de vertices, e o segundo elemento e uma matriz booleana, a matriz de incid^ encia. Se jV j = m, cada coluna de C , m n, nos da os vertices sobre os quais incide o correspondente (hiper)lado. No caso particular de todos as colunas terem exatamente 2 ENN's temos na matriz de incid^ encia mais uma representac~ ao de um grafo simetrico. Em hipergrafos todavia um lado generico pode incidir sobre mais de 2 vertices. O problema de permutar PAQ para forma angular blocada pode ser visto como um problema de partic~ ao no hipergrafo G = (M; B (A)), M = f1; : : : mg, B (A) a matriz booleana associada a matriz A, m n. No problema de partic~ ao damos a cada linha i 2 M de B (A) uma cor p(i) 2 H = f1; : : : hg. A cor de cada lado e de nida como o conjunto de cores dos vertices sobre os quais este incide, q(j ) = fp(i) j Aj i 6= 0g. Lados multicoloridos correspondem a colunas residuais na forma angular blocada, e os lados de cor q(j ) = k correspondem as colunas no bloco angular formado pelos ENN's Aj i j p(i) = k ^ q (j ) = fk g, k 2 H = f1; : : :hg. Para de nir o problema de partic~ ao falta-nos uma func~ ao objetivo a ser minimizada. Em vista das aplicac~ oes ja apresentadas, e outras a serem apresentadas no proximo capitulo, queremos ter: Aproximadamente o mesmo numero de linhas em cada bloco. Poucas colunas residuais. Com estes propositos e natural considerar a seguinte func~ ao de custo de uma dada partic~ ao de linhas em cores p : M 7! H :

f (p) = c(p) +

k=1

(m=h s(k)) ;
2

onde c(p) = jfj 2 N j jq(j )j 2gj ; e s(k) = jfi 2 M j p(i) = kgj : Mesmo casos especiais deste problema s~ ao NP-dif ceis. Por exemplo: Seja A a matriz de incid^ encia de um grafo, m um multiplo exato de h = 2, e faca su cientemente grande para garantir que todos os blocos tenham exatamente m=h linhas. Este e o problema exato de 2partic~ ao em grafos, e a vers~ ao de reconhecimento deste problema e NP-Completa; veja problema ND14 em Garey79]. Um algoritmo de anulamento simulado com perturbac~ oes metricas para resolver este problema e apresentado em Stern92].

7.4. Paralelismo

75

7.4 Paralelismo
Um dos fatores mais importantes no desenvolvimento de algoritmos e a possibilidade de realizar varias etapas de um procedimento em paralelo. No restante deste cap tulo adaptaremos algumas das fatorac~ oes anteriormente estudadas para as estruturas blocadas, visando paralelizar etapas independentes. Vejamos a seguir alguns conceitos basicos de computac~ ao paralela. Existem varios modelos teoricos de computador paralelo, e inumeras inst^ ancias e implementac~ oes destes modelos em maquinas reais. O modelo mais simples e o de memoria compartilhada. Neste modelo varios processadores, t^ em acesso a uma memoria comum. Neste modelo, a descric~ ao de uma algoritmo paralelo envolve basicamente dois fatores: Como distribuir o trabalho entre os processadores. Como sincronizar as diversas etapas do algoritmo. Este modelo e conceitualmente simples e elegante; todavia limitac~ oes da nossa tecnologia inviabilizam a construc~ ao de maquinas de memoria compartilhada com mais de uns poucos (da ordem de dez) processadores. O modelo de rede e mais generico. Nele o computador e visto como um grafo: cada vertice, no, ou processador representa: um processador propriamente dito, uma memoria local, i.e., acess vel somente a este processador, e portas de comunicac~ ao. Cada aresta representa uma via de comunicac~ ao inter-nos. Note que no modelo de memoria compartilhada, a comunicac~ ao entre os processadores podia ser feita de maneira trivial atraves da memoria; todavia no modelo de rede e preciso saber os detalhes da arquitetura da maquina para especi car um terceiro aspecto do algoritmo: A comunicac~ ao entre os processadores. Estes detalhes incluem a disposic~ ao das vias de comunicac~ ao, ou topologia, a velocidade de comunicac~ ao em relac~ ao a velocidade de processamento, a possibilidade ou n~ ao de haver comunicac~ oes simult^ aneas em vias distintas, etc. Algumas destas topologias comumente empregadas, s~ ao: Estrela, Barra, Anel, Grade, Toro, Hipercubo e Borboleta. Como exemplo de algoritmo paralelo, calculemos a media de n numeros numa rede com p processadores. Suponhamos que inicialmente tenhamos n=p destes numeros em cada uma das memorias locais. Por simplicidade suponhamos que n e um multiplo de p, e que n >> p. Na primeira fase do algoritmo cada processador, k, calcula a media dos n=p numeros em sua memoria local, m(p). Se os processadores s~ ao todos iguais (rede homog^ enea), cada processador completa sua tarefa em 1=p do tempo necessario para calcular a media geral num computador com apenas um processador deste mesmo tipo. Na segunda fase do algoritmo reunimos as medias parciais para calcular a media geral, m(0) = (1=p) p k m(k ). Examinemos como calcular esta media geral em duas redes com topologia de anel, onde cada qual:
P =1

76 1. N~ ao permite comunicac~ oes em paralelo.

Cap tulo 7. ESTRUTURA

2. Permite comunicac~ oes em paralelo via segmentos de arco n~ ao superpostos. Novamente por simplicidade, suporemos que p = 2q . Na primeira rede, para k = 1 : p, 1. Calcule no, no k, s(k) = s(k 1) + m(k). 2. Transmita s(k) ao processador k + 1. ao de inicialNeste procedimento temos as somas parciais das medias s(k) = k i m(k ), a condic~ izac~ ao e s(0) = 0, e ao termino do algoritmo podemos computar, no no p, a media m(0) = s(p)=p. Na segunda rede, para i = 1 : q,
P =1

j = 2i; em paralelo, para k = j : p,


1. Calcule, no no k, r(i; k) = r(i 1; k) + r(i 1; k j=2). 2. Transmita r(i; k) do no k para o no k + j . Neste procedimento temos as somas parciais das medias r(i; k) = k ao de l k j m(l), a condic~ inicializac~ ao e r(0; k) = m(k), e ao termino do algoritmo podemos computar, no no p, a media m(0) = r(q; p)=p. Em geral, a transmiss~ ao de dados entre nos e muito mais lenta que a manipulac~ ao destes dados localmente e, ao medir a complexidade de um algoritmo, contamos separadamente os trabalhos de processamento e comunicac~ ao.
P = +1

7.5 Fatorac~ oes Blocadas


Das sec~ oes anteriores vemos que quase todo o trabalho na fatorac~ ao QR de uma matriz angular 0 0 blocada, A = QU , ou da fatorac~ ao de Cholesky A A = U U , consiste na aplicac~ ao repetitiva de algumas operac~ oes simples sobre os blocos. Para tirar vantagem desta modularidade em algoritmos para fatorac~ ao e atualizac~ ao de matrizes com estrutura angular blocada, de nimos a seguir algumas destas operac~ oes, e damos sua complexidade em numero de operac~ oes de ponto utuante. 1. Compute a fatorac~ ao de Cholesky parcial, eliminando as primeiras n colunas da matriz blocada F G Gt 0
" #

7.5. Fatorac~ oes Blocadas

77
" #

V W t u = y y u O I onde V e n n triangular superior, W e n l, 0 e I s~ ao as matrizes zero e identidade, e u e y s~ ao vetores coluna. Isto requer (1=2)n + nl + O(n + l) FLOPs. 3. Reduza a triangular superior uma matriz de Hessenberg, i.e., aplique a sequ^ encia de rotac~ oes de Givens G(1; 2; ); G(2; 3; ) : : : G(n 1; n; ) a matriz blocada V W onde V e n n Hessenberg superior, e W e n l, para reduzir V a triangular superior. Isto requer 2n + 4nl + O(n + l ) FLOPs. 4. Reduza a triangular superior uma matriz blocada coluna { tri^ angulo superior, i.e., aplique a sequ^ encia de rotac~ oes de Givens G(n 1; n; ); G(n 2; n 1; ); : : : G(1; 2; ) a matriz blocada u V onde u e um vetor coluna n 1, e V e n n triangular superior, de modo a reduzir u a um unico ENN na primeira linha, assim transformando V de triangular para Hessenberg superior. Isto requer 2n + O(n) FLOPs.
" # " 1 2 # " 1 2 # 2 h i 2 2 2 h i 2

V W 0 Z onde F = F t e n n, e G e n l. Isto requer (1=6)n + (1=2)n l + (1=2)nl + O(n + l ) FLOPs. 2. Compute a transformac~ ao inversa parcial, i.e. u, em
3 2 2 2 2

para obter

Em ambas as fatorac~ oes, A = QU e A0A = U 0U , muitas das operac~ oes nos blocos podem ser feitas independentemente. Portanto a estrutura angular blocada n~ ao so nos da a possibilidade de preservar esparsidade, mas tambem a oportunidade de fazer varias operac~ oes em paralelo. Descreveremos uma forma de paralelizar a fatorac~ ao de Cholesky numa rede de h +1 nos. Para k = 1 : : : h alocamos blocos das matrizes A e U a nos espec cos, como segue: Os blocos Dk E k , V k e W k s~ ao alocados ao no k. Os blocos sudeste, Z e S , s~ ao alocados ao no 0 (ou h + 1). Expressaremos a complexidade do algoritmo em termos da soma e do maximo das dimens~ oes dos blocos. h dbsum = m(k)
X 1

78

Cap tulo 7. ESTRUTURA

dbmax = maxfm(1); : : :; m(h); n(h + 1)g:


Na analise de complexidade contabilizaremos o tempo de processamento, medido em FLOPs, pTime, bem como a comunicac~ ao inter-nos, INC . Quando h operac~ oes sobre blocos, bop : : :boph , podem ser efetuadas em paralelo (em nos distintos), contamos seu tempo de processamento por ^h flops(bopk ) = flops(bop ) ^ : : : ^ flops(boph ) , onde ^ e o operador maximo, e flops(bopk ) e o numero de operac~ oes de ponto utuante necessario para a operac~ ao no bloco k, bop(k). Nas equac~ oes que seguem, ^ tem preced^ encia menor que qualquer operador multiplicativo ou aditivo. As express~ oes \No no k=1:h compute" ou \Do no k=1:h envie" signi cam, \Em (de) todos os nos 1 k h, em paralelo, compute (envie)". Nas express~ oes de complexidade ignoraremos termos de ordem inferior. Damos agora uma descric~ ao algor tmica da fatorac~ ao de Cholesky blocada bch():
1 1 1

1. No no k=1:h compute os blocos (B k )tB k , (B k )tC k , e (C k )tC k . pTime = m(k)n(k) + m(k)n(k)n(h + 1) + m(k)n(h + 1) 3dbmax , INC = 0.
2 2 3

2. Envie (C k )tC k do no k para o no 0, onde acumulamos Z = 1) h dbmax , INC = h n(h + 1) h dbmax


0 2 2 2 2 " #

h (C k )t C k .
1

pTime = h n(h +

3. No no k compute a fatorac~ ao de Cholesky parcial, eliminando as primeiras n(k) colunas, da matriz blocada (B k )t B k (B k )t C k (C k )tB k 0 obtendo V k Wk 0 Zk pTime = (1=6)n(k) + (1=2)n(k) n(h + 1) + (1=2)n(k)n(h + 1) (7=6)dbmax , INC = 0.
" # 3 2 2 3

4. Envie Z k do no k para o no 0, onde acumulamos Z = h Z k . pTime = h n(h + 1) h dbmax , INC = h n(h + 1) h dbmax .
P 2 2 2 0 2

5. No no 0 fatore o bloco sudeste S = chol(Z ), onde chol() indica a fatorac~ ao de Cholesky padr~ ao. pTime = (1=6)n(h + 1) (1=6)dbmax , INC = 0.
3 3

Teorema 7.2 A fatorac~ ao de Cholesky blocada, bch(), requer n~ ao mais de (4 + 1=3)dbmax +


3

h dbmax tempo de processamento, e h dbmax tempo de comunicac~ ao inter-nos.


2 2

Nos passos 2 e 4, se a rede permite comunicac~ oes em paralelo, a reuni~ ao da matriz acumulada pode ser feita em log(h) passos, e podemos substituir h por log(h) no ultimo teorema.

Cap tulo 8 ESCALAMENTO


Representac~ ao em Ponto Flutuante 8.1 O Sistema de Ponto Flutuante
A representac~ ao de um numero real, 2 R, em um computador tem, usualmente, precis~ ao nita. A inexatid~ ao desta representac~ ao introduz erros no resultado nal do processamento e o objetivo desta sec~ ao e obter limites maximos para estes erros quando da aplicac~ ao do metodo de Gauss. A representac~ ao normalmente utilizada para numeros reais e o sistema de representac~ ao em ponto utuante normalizado de t d gitos e base b, SPF, isto e,

fl( ) =
onde

0:d d : : :dt b n ; ou 0:d d : : :dt E n


1 2 1 2

dk ; n; b 2 N 0 dk b; d 6= 0 0 n emax; b 6= 0 :
1

Dado um real com representac~ ao exata num dado SPF, a frac~ ao normalizada sera denominada mantissa. A mantissa e o expoente de ser~ ao denotados, respectivamente,

mant( ) = expo( ) =

0:d : : : dt; n
1

Ha duas maneiras normalmente empregados para obter fl( ) a partir de : truncamento e arredondamento. Para trunc( ) simplesmente truncamos a representac~ ao em base b de 79

80

Cap tulo 8. ESCALAMENTO

obtendo uma mantissa de t digitos. No arredondamento tomamos a mantissa de t digitos que melhor aproxima . Assim, para = = 3:141592653 : : :, e o SPF com b = 10 e t = 5, trunc( ) = +0:31415 E + 1 e round( ) = +0:31416 E + 1. Note que = 0 n~ ao pode ser representado devido a condic~ ao d 6= 0. Portanto, alguma representac~ ao inamb gua deve ser convencionada, por exemplo, fl(0) = +0:00 : : : 0 E + 0. Se n > emax n~ ao ha representac~ ao poss vel no SPF, e dizemos que houve \over ow" ou transbordamento.
1

8.2 Erros no Produto Escalar


De nimos a unidade de erro do SPF, u, como b no caso de usarmos arredondamento.
1

no caso de usarmos truncamento, e b t=2


1

Lema 8.1 Dado 2 R e fl( ) sua representac~ ao, num dado SPF de unidade de erro u, 9 2 u; u] j fl( ) = (1 + ).
Demonstrac~ ao: Pela de nic~ ao de SPF, se expo(fl( )) = e, v^ e-se que jfl( ) j = j j ube = u : jj be
1 1

Se e s~ ao numeros em ponto utuante, isto e numeros reais com representac~ ao exata num dado SPF, e perfeitamente poss vel que uma operac~ ao aritmetica elementar entre eles resulte num numero sem representac~ ao exata. Do lema anterior, porem, sabemos que, qualquer que seja a operac~ ao aritmetica, ? 2 f+; ; ; =g, fl( ? ) = ( ? )(1 + ), para algum j j j u. QED. Exemplo 1: Consideremos um computador que armazena um numero real em 4 bytes, sendo 3 bytes para os d gitos da mantissa e 1 byte para o sinal do numero, o sinal do expoente e os 6 bits restantes para o modulo do expoente como um inteiro em base 2. Supondo que todos os calculos s~ ao feitos com arredondamento, calculamos, a unidade de erro do SPF, u, e o maior real representavel, rmax = bemax, no caso de usarmos base b = 256, b = 16 ou b = 2.

b 2 16 = 2 256 = 2
4

t 24 6 3

u = b t =2 2 < 10 2 < 10 2 < 10


1 24 21 17

7 6 5

rmax = b 2 > 10 2 > 10 2 > 10


64 256 512

64

19 75 150

Um recurso frequentemente dispon vel, concomitantemente ao uso de um SPF de base b e t d gitos, e o sistema de representac~ ao em ponto utuante normalizado de precis~ ao dupla, SPFD, com mantissa de 2t d gitos, que denotamos fld( ).

8.2. Erros no Produto Escalar

81

Este recurso e extremamente util, se utilizado parcimoniosamente. Podemos trabalhar com a maior parte dos dados no SPF, de precis~ ao simples, e utilizar a precis~ ao dupla apenas nas passagens mais cr ticas do procedimento. Em analogia ao SPF, de nimos a unidade de erro do SPFD, ud como b t no caso de usarmos truncamento, e b t=2 no caso de usarmos arredondamento. E interessante notar que se e s~ ao numeros reais com representac~ ao exata no SFP, de precis~ ao simples, a representac~ ao do produto destes numeros no SPFD e exata, isto e fld( )= , pois o produto de dois inteiros de t d gitos tem, no maximo, 2t d gitos. Estudamos agora o efeito cumulativo dos erros de representac~ ao, em todas as passagens intermediarias num produto interno. Sejam x, 1 n e y, n 1, vetores cujas componentes t^ em representac~ ao exata, num dado SPF. De nimos
1 2 1 2

fl(xy) = fl(fl(xnyn) + fl(fl(xn yn ) + : : : + fl(fl(x y ) + fl(x y )) : : :)) :


1 1 2 2 1 1

Lema 8.2 Dados u 2 0; 1 , n 2 N tq nu


1 nu Demonstrac~ ao: Como basta provar que (1 u)n 1 nu. (1 + u)n 1 + nu + nu.
Y 1

< 1, e i j j ij u; i = 1 : : : n, ent~ ao
(1 + i) 1 + (1 + )nu :

(1 nu)n

Y 1

(1 + i) (1 + nu)n ;

Considerando a func~ ao f (u) = (1 u)n temos que 9 2]0; 1 j

f (u) = f (0) + uf 0(u) + u f 00( u)=2 = 1 nu + n(n 1)(1 u)n u =2 :


2 2 2

Da n~ ao negatividade do ultimo termo segue a primeira inequac~ ao. Considerando que 8 2 0; ], 1+ temos que QED.

e
(

1+ +

(1 + u)n e nu) 1 + nu + nu :

82 Corolario: Nas condic~ oes do lema 2, 9 2 1; 1] tq


Y 1

Cap tulo 8. ESCALAMENTO

(1 + i) = 1 + (1 + )nu :

dado SPF, de unidade de erro u, com nu < 1, ent~ ao

Lema 8.3 Se x, 1 n e y, n 1, s~ ao vetores cujas componentes tem representac~ ao exata num


fl(xy) =
X

i=1

xiyi(1 + i(1 + )(n i + 2)u) :

Demonstrac~ ao: 9 i; j ij ud, e i; j ij 1 j fl(xy) = fl(fl(xnyn) + fl(fl(xn yn ) + : : : +(x y (1 + ) + (x y (1 + ) + x y (1 + ))(1 + ))(1 + ) : : :)) = fl(fl(xnyn) + fl(fl(xn yn ) + : : : + x y (1 + )(1 + ) +x y (1 + )(1 + )(1 + ) + x y (1 + )(1 + )(1 + ) : : :)) = xnyn(1 + n )(1 + n ) + +xn yn (1 + n )(1 + n )(1 + n ) + : : : +x y (1 + )(1 + ) : : : (1 + n )(1 + n ) +x y (1 + )(1 + ) : : : (1 + n )(1 + n ) = xnyn(1 + n(1 + )2u) + xn yn (1 + n (1 + )3u) + : : : +x y (1 + (1 + )nu) + x y (1 + (1 + )(n + 1)u) :
1 1 3 3 4 2 2 2 1 1 1 3 5 1 1 3 3 4 5 2 2 2 3 5 1 1 1 3 5 2 2 2 1 1 1 2 4 2 3 2 1 2 2 2 3 2 3 2 1 1 1 1 3 2 3 2 1 1 1 1 2 2 2 1 1 1

Lema 8.4 Se x, 1 n e y, n 1, s~ ao vetores cujas componentes t^ em representac~ ao exata num


SPF, em precis~ ao simples, de unidade de erro u, sendo n ud < 1, ent~ ao fld(xy) fld(fld(xnyn) + fld(fld(xn 1yn 1 ) + : : : + fld(fld(x2y2) + fld(x1y1)) : : :))

X 1

xiyi(1 + i(1 + )(n i + 1)ud)

Demonstrac~ ao: 9 i; j ij ud, e i; j ij 1 j fld(xy) = fld(xn yn + fld(xn yn + : : : +(x y + (x y + x y )(1 + ))(1 + ) : : :)) = xn yn(1 + n ) + xn yn (1 + n )(1 + n ) + : : : x y (1 + ) : : : (1 + n ) + x y (1 + ) : : : (1 + n ) = xn yn(1 + n(1 + )ud) + xn yn (1 + n (1 + )2ud) + x y (1 + (1 + )(n 1)ud) + x y (1 + (1 + )nud)
1 1 3 3 2 2 1 1 1 2 1 1 1 2 1 2 2 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1

8.3. Escalamento de Matrizes

83

E frequente o calculo em dupla precis~ ao, de produtos de vetores armazenados em precis~ ao simples, e o posterior armazenamento do resultado em precis~ ao simples, isto e o calculo fl(fld(xy)). Do ultimo lema vemos que

fl(fld(xy)) = (1 + )

X 1

xiyi(1 + i(1 + )(n i + 1)ud) :

xiyi i(1 + )(n i + 1)ud, o que ocorre se nu 1 e n~ ao houver \cancelamentos cr ticos" na somatoria, o resultado nal do produto e afetado de um erro da ordem do erro introduzido por uma unica operac~ ao aritmetica, em precis~ ao simples. Assumiremos esta hipotese no restante do cap tulo.
P

Observac~ ao 8.1 Se xy

Exemplo 2: Calculemos, no SPF decimal de 2 d gitos com arredondamento, fl(xy), fld(xy) e fl(fld(xy)), onde x = 7:5; 6:9; 1:3] e y = 0:38; 0:41; 0:011]0 .

fld(xy) = fld(2:85 2:829 + 0:0143) = fld(0:021 + 0:0143) = 0:0353 : fl(fld(xy)) = fl(0:0353) = 0:035 : fl(xy) = fl(2:9 2:8 0:014) = fl(0:1 + 0:014) = 0:11 :

8.3 Escalamento de Matrizes


Da analise de erros no produto interno, e considerando que a maioria das operac~ oes nos algoritmos de triangularizac~ ao podem ser agrupadas na forma de produtos internos, ca evidente que e conveniente termos todos os elementos da matriz da mesma ordem de grandeza, i.e., termos a matriz bem equilibrada. Evitamos assim ter multiplicadores muito pequenos e soma de termos de ordem de grandeza muito diferentes. Se tal n~ ao ocorre para a matriz de um dado sistema, Ax = b, podemos procurar x atraves da soluc~ ao de um outro sistema melhor equilibrado. Se E = diag(e ; e ; : : : en) e D = diag(d ; d ; : : :dn ), onde ei; di 6= 0, o sistema EADy = Eb e obtido multiplicando-se a i-esima equac~ ao do sistema por ei, e efetuando-se a substituic~ ao de variaveis x = Dy, o que equivale a multiplicar a j-esima coluna de A por dj . Uma transforamac~ ao ~ A = EAD, A m n, E e D diagonais com ei; di 6= 0, e um escalamento da matriz A. Exemplo 3:
1 2 1 2

1 0 0 EAD = 0 2 0 0 0 3
6 6 4

32 76 76 54

1 1 1 1 1 1 1 1 1

32 76 76 54

11 12 13 11 0 0 0 12 0 = 22 24 26 31 36 39 0 0 13
7 7 5 6 6 4

3 7 7 5

84

Cap tulo 8. ESCALAMENTO

Estudaremos o problema de escolher um escalamento que \melhor equilibre" uma dada matriz. Em primeiro lugar, vale notar que, estando num SPF de base b, a escolha de E e D da forma Eii = be . Djj = bd , onde e e d s~ ao vetores de elementos inteiros, e muito conveniente, pois ~ A = EAD e A ter~ ao elementos de mesma mantissa, sendo o efeito do escalamento apenas o de alterar os expoentes dos elementos da matriz, j j j ~j ~j mant(A i ) = mant(Ai ) ; expo(A i ) = expo(Ai ) + ei + d :
i j

um inteiro ao expoente de um numero real, devemos conhecer detalhadamente o SPF usado e manipular diretamente os campos de bits envolvidos. Uma maneira de medir o grau de desequilibrio de uma matriz, A e atravez da media e da vari^ ancia dos expoentes de seus elementos:

Observac~ ao 8.2 Para implementar e cientemente a func~ ao expo() e a operac~ ao de soma de

mex(A) = vex(A) =
X

i;j jAj i 6=0

expo(Aji )=enn(A) ;
2

Nas somatorias que de nem mex e vex excluimos os elementos nulos da matriz, os elementos nulos da matriz podem ser eliminados das operac~ oes de produto interno. Para n~ ao sobrecarregar a notac~ ao, doravante escrevemos
X

i;j jAj 6=0 i

(expo(Aj i ) mex) =enn(A) :

0=

i=1 jA 6

j =0 i

0=

j =1 jA 6

j =0 i

i;j

0=

m;n X i;j =1 jA 6
j =0 i

O primeiro metodo de escalamento que estudaremos e justamente o metodo da reduc~ ao de vari^ ancia em que procuramos minimizar a vari^ ancia dos expoentes de EAD. Tomemos as matrizes de escalamento esquerda e direita como, respectivamente, E = diag(round(ei )) e D = diag(round(dj )), sendo os vetores e e d argumentos que minimiz~ ao a vari^ ancia dos expoentes da matriz escalada,

vex(EAD) =

i;j

0(expo(Aj ) + ei + dj i

mex(A)) :
2

Um ponto de m nimo deve obedecer ao sistema @vex(EAD) = 0 = 2 0(expo(Aj ) + e + d mex(A)) i i j @ei j @vex(EAD) = 0 = 2 0(expo(Aj ) + e + d mex(A)) i i j @dj i
X X

8.3. Escalamento de Matrizes

85
+ X

ou, fazendo a substituicao ei = ei mex(A)=2, dj = dj mex(A)=2


+ X

0e+ + d+ i j 0e+ + d+ i j

= =

0expo(Aj ) i 0expo(Aj ) i

Se a matriz A n~ ao tiver elementos nulos, ent~ ao a soluc~ ao e , d do sistema e imediata:

ei = (1=n) (mex(A) expo(Aji ))


X

di = (1=m) (mex(A) expo(Aji ))


X

Esta equac~ ao pode nos dar uma boa aproximac~ ao da soluc~ ao em matrizes densas, i.e, com poucos elementos nulos, como se considerassemos o \expoente dos elementos nulos" como sendo expoente medio de A. Este e o metodo aproximado da reduc~ ao de vari^ ancia. Procuremos agora metodos heur sticos para determinac~ ao de escalamentos, que sejam menos trabalhosos que o metodo da reduc~ ao de vari^ ancia. O metodo da media geometrica consiste em tomar

dj = ei =

int((

0 expo(Aj ))=enn(Aj )) i i X int(( 0(expo(Aji ) + dj ))=enn(Ai)) j


X

Assim os fatores de quilibramento s~ ao uma aproximac~ ao do inverso da media geometrica dos elementos n~ ao nulos das colunas, ou linhas, i.e.,

dj = ei =

int((

0 log(jAj j))=enn(Aj )) i i X int(( 0(log(jAji j) + dj ))=enn(Ai)) j


X

Uma variante do metodo da media geometrica e o metodo da media max-min, no qual tomamos

dj = ei =

0 expo(Aj ) + min 0 expo(Aj ))=2) int((max i i i i 0 (expo(Aj ) + d ) + min 0(expo(Aj ) + d ))=2) int((max j j i i j j

Finalmente, o metodo da norma in nito consiste em tomar

ei = dj =

0 expo(Aj ) max i j 0 (expo(Aj ) + ei ) max i i

86

Cap tulo 8. ESCALAMENTO

A escolha do particular metodo a ser empregado depende bastante do tipo de matriz a ser equilibrada e da exig^ encia que temos sobre vex(A). Em pacotes comerciais de otimizac~ ao e comum a aplicac~ ao do metodo max-min um numero pre-determinado de vezes, ou ate que vari^ ancia dos expoentes se reduza a um valor limite aceitavel. Este limite deve ser tomado em func~ ao das condic~ oes do problema, como por exemplo o numero de condic~ ao da matriz, ser de nido no cap tulo 9, e da unidade de erro do SPF. Exemplo 4: Equilibremos a matriz A, dada abaixo, num SPF de base 10, 1. 2. 3. 4. pelo metodo aproximado de reduc~ ao de vari^ ancia, pelo metodo da media geometrica, pelo metodo max-min, pelo metodo da norma 1.

Para A e para cada um dos escalamentos, calculemos mex, vex, e o di^ ametro da matriz, de nido como a diferenca entre o maior e o menor expoente dos elementos de A. 1 0:7E 4 0:5E 1 0:9E 0 0:2E 2 0 0:3E 1 0 0:3E 4 A = 1 0:80 E 3 0 0 0:3E 6 0 0:3E 1 0:8E 0 0:1E 3 0:7E 9 0 4 1 0 2 +1 x 1 x 4 expo(A) = x 160 0 3 x x 6 13 x 1 0 3 9 Pelo metodo aproximado de reduc~ ao de vari^ ancia, temos e, d, expo(EAD) e mex; vex;diam], respectivamente int(4=4) = 1 3 1 3 2 0 int(8=5) = 2 1:57 int (12 = 4) = 3 x x 1 x 0 int(2=5) = 0 23:4 int(6=4) = 2 0 0 x x 2 int(2=5) = 0 4 int(1=4) = 0 x 3 1 2 4 int( 6=5) = 1 int( 17=4) = 4 Analogamente, pelo metodo da media geometrica, temos int(0=2) = 0 1 0 1 1 2 int(4=5) = 1 0:214 int ( 8 = 3) = 3 x x 1 x 0 int( 1=2) = 1 14:4 int( 2=4) = 1 0 0 x x 1 int(1=3) = 0 4 int(3=2) = 2 x 0 1 1 2 int(8=4) = 2 int(21=4) = 5
2 6 6 6 6 4 3 7 7 7 7 5 2 6 6 6 6 4 3 7 7 7 7 5 2 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 5 2 6 6 6 6 4 3 7 7 7 7 5 2 6 6 6 6 4 3 7 7 7 7 5 2 6 6 6 6 6 6 6 4 3 7 7 7 7 7 7 7 5 2 6 6 6 6 4 3 7 7 7 7 5 2 6 6 6 6 4 3 7 7 7 7 5

8.3. Escalamento de Matrizes

87
2

Analogamente, pelo metodo max-min, temos


2 6 6 6 6 4

int( 4=2) = 2 int( 2=2) = 1 int(0=2) = 0 int(4=2) = 2

3 7 7 7 7 5

6 6 6 6 6 6 6 4

int(0=2) = 0 int( 5=2) = 3 int( 1=2) = 1 int(3=2) = 2 int(11=2) = 6


3 7 7 7 7 7 7 7 5 2 6 6 6 6 4

3 7 7 7 7 7 7 7 5 2 6 6 6 6 4

2 x 0 x

1 2 2 x 1 x 1 0 x x 0 0 1 1

3 7 7 7 7 5

0:143 14:3 4

Analogamente, pelo metodo da norma-1, temos


2 6 6 6 6 4

0 1 0 0

2 3 7 7 7 7 5 6 6 6 6 6 6 6 4

0 1 0 3 9

0 3 1 3 7 x x 0 x 4 0 2 x x 3 x 0 0 0 0

3 7 7 7 7 5

1:64 59:2 7

Escalamentos visando equilibrar as matrizes do problema s~ ao uma etapa importante na soluc~ ao de sistemas lineares de grande porte. Note que operac~ oes de escalamento n~ ao afetam os elementos nulos de uma matriz, e portanto n~ ao alteram sua estrutura e esparsidade. O desempenho das heur sticas estudadas variam conforme a area de aplicac~ ao; vale pois testar experimentalmente as heur stcas escalamento e suas variac~ oes.

88

Cap tulo 8. ESCALAMENTO

Cap tulo 9 ESTABILIDADE


Erros e Perturbac~ oes da Soluc~ ao 9.1 Normas e Condic~ ao
Uma norma, num dado espaco vetorial E , e uma func~ ao

jj : jj : E ) R j 8x; y 2 E; 2 R :
1. jjxjj 0; e jjxjj = 0 , x = 0. 2. jj xjj = j j jjxjj. 3. jjx + yjj jjxjj + jjyjj, a desigualdade triangular. S~ ao de grande interesse em Rn as p-normas

jjxjjp = ( jxijp) =p ;
X 1 1

e de particular interesse a norma 1, a norma 2 (ou norma quadratica, ou Euclidiana) e a norma p = +1. No caso da norma in nito, devemos tomar o limite da de nic~ ao de p-norma para p ! +1, ou seja, n jjxjjp = max jxij : i
=1

Dado um espaco vetorial normado (E; jj jj) de nimos a norma induzida sobre as transformac~ oes lineares limitadas, T : E ! E tq 9 2 R j 8x 2 E; jjT (x)jj jjxjj como sendo

jjT jj max ( jjT (x)jj = jjxjj ) x6


=0

89

90 ou equivalentemente, por linearidade

Cap tulo 9. ESTABILIDADE

jjT jj

xj jjxjj=1

max jjT (x)jj :

Em (Rn ; jj jj) falamos da norma induzida sobre as matrizes n n como sendo a norma da transformac~ ao associada, isto e jjAjj = jjT jj, onde T (x) = Ax,

Lema 9.1 A norma induzida sobre as matrizes em (Rn; jj jj), goza das propriedades, para 8A; B n n; 2 R;
1. jjAjj 0 e jjAjj = 0 , A = 0 2. jjA + B jj jjAjj + jjB jj 3. jjAB jj jjAjj jjB jj

Lema 9.2 Para a norma 1 e para norma 1 temos as seguintes express~ oes expl citas da norma
induzida sobre as transformac~ oes, ou matrizes,
1

n jj j A jjAjj = max i j
X =1

jAji j jjAjj1 = max i


X =1

i=1 n n

j =1

Demonstrac~ ao: Para veri car a validade das express~ oes observe que

jjAxjj =
1

i=1 j =1 i=1 j =1 n n X n X j jxj j max jA j = jjAjj1 j =1 i=1 i j =1 n


X

Aji xj j

XX

n n

jAji j jxj j jjxjj


1

jjAxjj1 = max j i
=1 =1

j =1

Aji xj
=1

n n max jxj j max j i

jAji j jxj j j max i


X =1

j =1

j =1

jAji j = jjxjj1 jjAjj1

e que, se k e o ndice que realiza o maximo na de nic~ ao da norma, ent~ ao as igualdades s~ ao j k realizadas pelos vetores x = I , para a norma 1, e x j xj = sig(Ai ), para a norma 1. De nimos o numero de condic~ ao de uma matriz como

cond(A) = jjAjj jjA jj :


1

9.2. Perturbac~ oes

91

Exemplo 1: Calcule a norma da matriz de binomial de dimens~ ao 3, e de sua inversa, nas normas 1 e 1. Para cada uma das normas calculadas exiba um vetor x que, multiplicado pela matriz, seja \esticado" de um fator igual a propria norma, i.e. x j kAxk = kAkkxk.
2 6 6 6 6 6 6 6 6 6 6 4

B=

1 0 2 0 3 0
3 7 7 5

1 1 2 1 3 1
1

0 2 2 3 2

7 7 7 ! 7 7 7 7 7 ! 7 7 5

1 1 0 3 3 1 B= 1 2 1 B = 2 3 1 1 3 3 1 2 1 ao, respectivamente, Para B a soma da norma dos elementos jAj i j por linha e por coluna s~ 7 6 4 e 6 8 3 . Para B , analogamente, temos 7 6 4 e 7 6 4 . Assim, para a norma 1, jj B jj, jj B jj, e cond( B ) s~ ao respectivamente 6, 8, e 48. Analogamente, para 0 0 ao vetores como os procunorma 1, temos 7, 7, e 49. Finalmente, 0 1 0 e 1 1 1 s~ rados.
3 6 6 4 3 6 6 4 7 7 5 h 3 i h i 3 1 h i h i 3 3 1 3 h i h i

9.2 Perturbac~ oes


Estudaremos agora uma maneira de limitar o efeito de uma pertubac~ ao nos dados do sistema linear, Ax = b, sobre a sua soluc~ ao.

Teorema 9.1 (da pertubac~ ao) Se os dados do sistema Ax = b forem pertubados, isto e, alterjj xjj cond(A) jj bjj + jj Ajj : jjxjj 1 cond(A) jj Ajj=jjAjj jjbjj jjAjj
!

ados de uma matriz A de um vetor b, a resposta sera pertubada por um x, isto e (A + A)(x + x) = (b + b), tal que, se jj Ajj jjA 1jj < 1, ent~ ao

Demonstrac~ ao. (A + A)(x + x) = Ax + A x + Ax + A x = b + b, portanto A x = b x = A ( b Ax A x). Assim,


1

Ax

A x, e

jj xjj jjA jj (jj bjj + jj Ajjjjxjj + jj Ajjjj xjj) :


1

92 Como tambem jjbjj jjAjjjjxjj, temos que

Cap tulo 9. ESTABILIDADE

xjj 1 jjA jjjj Ajj jj jjxjj


1

bjj + jj Ajj jjA jj jj jjxjj jjjj bjj + jj Ajj : jjA jj jjAjj bjj
! 1 ! 1

Usando a hipotese jj AjjjjA jj 1, temos o teorema, QED. Exemplo 2: Considere o sistema (B + A)x = (b + b), onde a matriz de coe cientes, e o vetor de termos independentes correspondem a matriz binomial de dimens~ ao 3, B , e b j B 1 = b. Os elementos j da matriz e do vetor de pertubac~ ao, Ai e bi, s~ ao aleatorios. A distribuic~ ao de cada um destes elementos de perturbac~ ao e independente e e uma func~ ao de dois parametros ( ; p): Tomemos cada elemento da perturbac~ ao e no cojunto f0; ; g com probabilidade, respectivamente, 1 p; p=2; p=2]. Com os dados do Exemplo 1, determine um limite maximo para 0 alfamax que garanta a hipotese do teorema da pertubac~ ao. Faca uma experi^ encia comparando limites de erro e pertubac~ ao da soluc~ ao do sistema proposto. Na norma 1, jj Ajj 3 , e do Exemplo 1 sabemos que jjB jj 7. Assim, a condic~ ao jj AjjjjA jj 1 esta garantida para 0:04 < 1=21. Tomando como experimento de perturbac~ ao,
1 3 3 3 3 1 1

0 0:01 A = 0 0:01 0 0:01


6 6 4

0:01 0 0:01

3 7 7 5

e b=

6 6 4

0 0:01 0

3 7 7 5

a soluc~ ao do sistema pertubado e x = 1:0408; 0:9388; 1:0622]0 , i.e. x = 0:04; 0:06; 0:06]0 e jj xjj = 0:16. Por outro lado, o Teorema da pertubac~ ao nos da o limite

jj xjj 49 0:01 + 0:03 ) = 0:35 ( jjxjj 1 49 0:03=7 7 7


um limite superior de acordo com o resultado obtido no experimento.

9.3 Erro na Fatorac~ ao LU


Consideremos a resoluc~ ao de um sistema, Ax = b, pelo metodo de Doolittle, isto e, a decomposic~ ao A = LU , e a soluc~ ao do sistema Ly = b e Ux = b.

9.3. Erro na Fatorac~ ao LU

93

como a soluc~ ao exata, x, mais um termo de pertubac~ ao x. Assumiremos que um produto escalar em dupla precis~ ao e afetado de um erro da ordem do erro de passagem para precis~ ao simples, conforme a observac~ ao 8.1. Nestas condic~ oes,, a soluc~ ao calculada, (x + x), e soluc~ ao exata de j um sistema. (A + A)(x + x) = b, tal que jj Ajj1 (2n + 1)gu, onde g = maxi;j jUi j.

Teorema 9.2 (Wilkinson) A soluc~ ao, afetada pelos erros de arredondamento, pode ser escrita

Demonstrac~ ao. Consideremos as linhas da matriz A ja ordenadas de modo a n~ ao haver necessidade de pivoteamentos. A decomposic~ ao da matriz A sera dada por, para i = 1 : : : n

LiU = Ai LU i = Ai
ou, para i = 1 : : : n, para

j = i:::n j = i+ 1:::n

Uij = Aji Mji = (Aij

1 X

k=1 i 1 X

Mik Ukj Mjk Uki )=Uii

k=1

Na realidade, obteremos as matrizes afetadas de erro, para i = 1 : : : n, para

j = i : : :n j = i + 1:::n

~ij = fl(fld(Aj U i ~ ji = fl(fld((Aij M

1 X

k=1 i 1 X

~kj )) ~ ik U M ~ jk U ~ki )=U ~ii ))) M

k=1

Como supomos desprez veis os termos de O(ud) (vide observac~ ao 8.1) temos, para i = 1 : : : n, para

j = i : : :n j = i + 1:::n
Portanto, para i = 1 : : : n, para

~ij = (1 + ij )(Aj U i ~ ji = (1 + ji )(Aij M

1 X

k=1 i 1 X

~ ik U ~kj ) M ~ jk U ~ki )=U ~ii M

k=1

j = i:::n j = i+ 1:::n

1 X

k=1 i 1 X k=1

~ iU ~ j = Aj ~ij ij =(1 + ii) ~ ik U ~kj + 1Uii = L M i +U ~ jk U ~ki + M ~ jiU ~ii = L ~j U ~ i = Aij + M ~ jiU ~ii ji =(1 + ji ) M

94

Cap tulo 9. ESTABILIDADE

Notemos agora que: j ij j=(1 + ij ) j ij j u, que jMij j 1, pelo pivoteamento parcial, e ~U ~ = A + E , onde jEij j gu, donde jjE jj1 ngu. de nindo g = maxi;j jUij j, temos que L ~ y = b e Ux ~ = y calculamos, para i = 1 : : : n, Na soluc~ ao do sistema L

y ~i = fl(fld((bi
e novamente, para i = 1 : : : n,

1 X

j =1 n

~j ~ ii )) L ~j )=L iy ~ij x ~ii )) : U ~j )=U

x ~i = fl(fld((~ yi
Supondo desprez veis os termos de 0(ud)

j =i+1

y ~i = (1 + i)(bi x ~i = (1 + i0)(yi
ou
X

1 X

j =1 n X

~j ~ ii L ~j )=L iy ~ii ~ij x ~ j )=U U

j =i+1

j =1 n

~j ~ iy ~j L ~j = L ~ = bi + L ~i i=(1 + i) iy iy

j =i

~i x ~ij x ~i i0=(1 + i0) ~j = U ~=y ~i + Uij x U

isto e ~ + L)~ (L y = b ~ + U )~ (U x = y ~ onde para as matrizes diagonais L e U , temos j Liij u e j Uiij gu. Em suma, ~ + L)~ ~ + L)(U ~ + U )~ b = (L y = (L x ~U ~ +L ~ U + LU ~ + L U )~ = (L x ~ U + LU ~ + L U )~ = (A + E + L x = (A + A)~ x ~ U + LU ~ , donde Desprezando o termo L U , de O(ud), A = E + L ~ U + LU U ~ jj ngu + (n + 1)gu jj Ajj1 = jjE jj + jjL

9.3. Erro na Fatorac~ ao LU

95

pois ~ U + LU ~ jj1 jjL


2 6 6 4

2 6 6 4

1 gu

... ...

0 1

32 76 76 54

gu
0 +
3 7 7 5 2 6 6 4

...

3 7 7 5

3 7 7 5

gu
0

gu
...

6 6 4

u
0

...

32 76 76 54

g
0

gu gu

3 7 7 5

...

g g

3 7 7 5

2 6 6 4

gu 2gu gu

...

gu gu

2gu

= (n + 1)gu QED:

Para frisar a import^ ancia do uso conjugado do metodo de Doolittle e dupla precis~ ao daremos, sem demonstrac~ ao, a vers~ ao do teorema ora demonstrado para o metodo de Gauss, que equivale ao metodo de Doolittle sem o recurso da dupla precis~ ao: De nindo h = maxi;j;k j k Aj i j, ter amos jjE jj1 O(n hu) e jj Ajj1 O(n hu). Estes resultados tornam evidente a obrigatoriedade de calcularmos os produtos escalares envolvidos no processo, sempre em dupla precis~ ao, a menos que tratemos de sistemas de pequena dimens~ ao. Alem do pivoteamento parcial, isto e, da escolha como elemento piv^ o do maior elemento em modulo na coluna, poder amos usar o pivoteamento total, isto e, encolher como elemento piv^ o o maior elemento em modulo em qualquer linha ou coluna utilizavel (isto e, poderiamos tomar por piv^ o da transformac~ ao k A ! k A, um elemento em arg maxk i;j n j k Aj i . Usando pivoteamento total, podemos demonstrar a exist^ encia de um limite superior para a constante h, supondo que j a matriz original A e tal que jAi j 1, da ordem de O(n = n ), contra limites de O(2n ) para pivoteamento parcial. O uso do pivoteamento total e todavia, extremamente custoso, pois exige a cada passo da O(n ) comparac~ oes, contra O(n) no pivoteamento parcial. Ademais, estes limites de h tendem a ser extremamente pessimistas, principalmente se A for bem equilibrada.
2 3 1 1 (1 4) ln( ) 2

Exerc cios
1. Estabilidade de Fatorac~ oes Simetricas. (a) Adapte os resultados de estabilidade da faorac~ ao LU para o caso particular da fatorac~ ao de Cholesky. (b) Qual o numero de condic~ ao de uma matriz ortogonal? Usando a relac~ ao entre o fator triangular da fatorac~ ao QR e a fatorac~ ao de Cholesky, discuta a estabilidade da fatorac~ ao QR.

96 2. Prove que jj jj , jj jj e jj jj1 s~ ao efetivamente normas.


1 2

Cap tulo 9. ESTABILIDADE

3. Desenhe em R a regiao jjxjj 1, para as normas 1, 2 e 1.


2

4. Prove o Lema 1. 5. Equival^ encia das normas 1, 2 e 1: Prove em Rn que (a) (b) (c) (d) (e)

jjxjj1 jjxjj njjxjj1 jjxjj1 jjxjj n = jjxjj1 jjAjj = , onde e o maior autovalor de A0A. jjA0Ajj = jjAjj jjAjj ( jjAjj jjAjj1) =
1 2 1 2 2 2 2 2 2 2 1 1 2

6. Calcule computacionalmente cond(A), para as matrizes de teste nT , A = nB e A = nH , para n = 2; 4; 8; 16. Estime gra camente o crescimento do numero de condic~ ao das matrizes teste em func~ ao da dimens~ ao. 7. Resolva computacionalmente os sistemas teste Tx = t, Bx = b e Hx = h.
8 8 8 8 8 8

(a) (b) (c) (d)

Pelo metodo de Gauss com pivoteamento parcial; Pelo metodo de Gauss com pivoteamento total; Pelo metodo de Doolittle com pivoteamento parcial e dupla precis~ ao; Pelo metodo de Doolittle com pivoteamento total e dupla precis~ ao.

No item c, veri que se o erro nal esta dentro do esperado, em func~ ao da unidade de erro do SPF utilizado.

Cap tulo 10 MUDANCA de BASE


Atualizac~ oes de Posto 1
Em Otimizac~ ao, principalmente em Programac~ ao Linear, o termo base signi ca uma matriz quadrada de posto pleno. Estudaremos agora o problema de mudanca de base, aqui posto na ^ a nova base, obtida da base original, A, substituindo-se a coluna As por seguinte forma: Seja A ^ = A ; : : :As ; a; As ; : : : An]. Se ja dispusermos da inversa de A (ou uma nova coluna, a, isto e A na pratica mais comumente de uma fatorac~ ao de A), como atualizar a inversa (ou a fatorac~ ao)? ^ Isto e, como, a partir da inversa de A obter a inversa de A com um trabalho muito menor que ^, i.e., computar a inversa de novo, sem aproveitar a informac~ o necessario para reinverter A ao contida em A ou, na fatorac~ ao A = LU ou A = QR ?
1 1 +1 1

10.1 Formulas de Modi cac~ ao


Teorema 10.1 (formula geral de modi cac~ ao) Dada A, n n e invers vel, V = A , A, n n, e 2 R su cientemente pequeno, podemos fazer a expans~ ao
1

( A + A) = V +
1

k=1

)k (V A)k V :

Demonstrac~ ao: Em virtude da regra de Cramer podemos, para 2 0; alphamax], escrever a serie de Taylor para cada elemento de (A + A) ,
1

kV k ! k Para determinar a matriz que da a perturbac~ ao de ordem k da inversa k V observemos que

( A + A) = V +
1

=1

(A + A)(V +

V+ 2

V + 3! V + : : :) = I
3

97

98 donde
2 2 3

Cap tulo 10. MUDANCA de BASE


3 2

1A V + 1 A V ) + : : : = 0 ( A V + A V ) + (1 A V + A V ) + ( 2 6 2 de modo que V = V A V ; V = 2V A V A V ; V = (V A) V ; : : : k V = ( 1)k k ! (V A)k V :


2 3 3

Substituindo esta formula geral de k V na serie de Taylor de (A + teorema. QED.

A), segue diretamente o

Teorema 10.2 (formula de Sherman e Morrison) Dada A, n n e invers vel, u e w n 1, ^ = A + uw0 e dada por e 2 R , ent~ ao a inversa de A
^ = A + A uw0A ; A = ( + w0A u) :
1 1 1 1 1 1 1

Demonstrac~ ao: Da formula geral de modi cac~ ao, supondo que < alfamax, e das propriedades do operador traco (exerc cio 1.5) temos: (A + uw0) = 1 = V + ( )k (V uw0)V
1 X

=V

k=1

V uw0V

uw0V = V 1 + Vtr( V uw0) V uw0V =V + tr(V uw0) = V ( + w0V u) V uw0V : o que prova o teorema para 0 < < alphamax. A formula de Sherman e Morrison e todavia uma identidade que podemos provar diretamente para qualquer > 0 j ( + w0A u) 6= 0: Usando a formula de Sherman e Morisson para ^ A ^ = I , obtemos, desenvolver a identidade A
1 1 1 1 1 1

tr(V uw0))k

(V + V uw0V )(A + uw0) = I , V uw0 + (V uw0) = V uw0 , ( + w0V u) V uw0 = V uw0


2 1 1

10.1. Formulas de Modi cac~ ao

99

sendo esta ultima identidade trivialmente verdadeira. Q.E.D. Exemplo 1: Tomando 0 ; u= 1 ; w= 3 ; A= 1 4 2 2 1


" # " # " #

=1 ;
#

podemos calcular a inversa de

^= 1 0 + 3 4 = 4 4 A 8 9 6 8 2 1 calculando ^ = A
1 1 " 1

"

"

"

= (1 + 3) = 1=4 ; 5 4 = 9=4 1 1 0 (1 = 4) 2 1 0 0 2 1
# " # " 1 +1

^ = A ; : : :Aj ; a; Aj ; : : : An], ent~ ^ = A + (a Aj ) Ij , de modo que a Morrison, pois se A ao, A inversa da nova base seria, tomando V = A , ^ = V + V ( a Aj ) Ij V A = V + V (a Aj )Vj
1 1

Observac~ ao 10.1 Note que uma mudanca de base poderia ser feita pela formula de Sherman e

onde Exemplo 2: Se

= (1 Ij V (a Aj )) = (Vj a) :
1 1

0 ; a= 1 e j =2; A= 1 3 2 1 ^ , pose ser calculada como segue ent~ ao a inversa da nova base, A
1

"

"

= (
" # 1 1

2 1

"

1 ) = 1 3
1

^ =( 1 1 ) = A 2 3 1 0 + 1 0 ( 1)( 1 = 2 1 2 1 3 1 0 + 1 = 2 1 = 2 1 0
" # " # " " # " # h i

"

0 ) 1 3 1 2 1

"

2 1

100

Cap tulo 10. MUDANCA de BASE

10.2 Atualizac~ oes Estaveis


O Algoritmo de Bartels e Golub, que apresentaremos a seguir, nos da uma atualizac~ ao estavel da fatorac~ ao LU de uma matriz. Tomando T = L , A = LU , ^ = U ; : : :U s ; Ta; U s ; : : :U n ] : TA
1 1 1 +1

^ Consideremos agora a permutac~ ao de colunas que comuta a s-esima e a n-esima colunas, Q ^ em A = A ^Q ^, e T A ^ em Esta permutac~ ao leva A U : : : Us T a Us : : : Un . . . . . . . . . . . ... . s s n 0 Us Ts a Us Us s ^ ^ 0 Tsa Us Usn Q = T AQ = 0 0 0 Ts a Uss Usn . . ... . . . . n 0 : : : 0 Tna 0 : : : Un
2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 1 1 1 1 1 1 +1 3 1 1 1 +1 1 +1 +1 +1 +1 7 7 7 7 7 1 7 7 7 7 7 7 +1 7 7 7 5 1

Un T a U : : : Us Us : : : Un . . . 0 ... . . . . . . Uss Uss Usn Usn Ts a Usn Tsa Usn 0 Uss H= 0 0 0 Uss . . . Usn Usn Ts a . . ... ... . . . . n n 0 0 0 Un Un Tn a n Tna 0 ::: 0 0 : : : 0 Un H e uma matriz de Hessenberg superior, isto e, apenas os elementos paralelos a diagonal principal podem ser n~ ao nulos no tri^ angulo inferior. O metodo de Bartels e Golub consiste na aplicac~ ao de metodo de Gauss, com pivotamento parcial, a matriz H . Observemos que a aplicac~ ao do metodo de Gauss a matriz H e extremamente simples, pois
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 1 1 1 1 1 +1 1 1 1 1 1 1 +1 1 +1 1 1 1 1 1 +1 +1 1 +1 +1 +1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

1. As primeiras s 1 etapas de transformac~ ao n~ ao s~ ao necessarias, pois nas colunas 1; : : :s 1, H ja e triangular superior. 2. As etapas j = s; : : :n 1, que transformam
0

resumem-se em ~. (a) Permutar as linhas j e j + 1 se j j Hjj j > j j Hjj j, obtendo uma nova matriz j H
1 +1 1 1

H=

H ! sH ! : : : j H ! : : :

^ H= U

10.3. Preservando Esparsidade

101
+1 1 +1 1 1 1

~ jj = j H ~ jj . (b) Calcular um unico multiplicador j Njj = j H jNj j H ~j ~j. (c) Atualizar uma unica linha j Hj = j H j
+1 +1 +1

~ =L ^U ^ , onde H ~ = RH ^ e a matriz obtida A aplicac~ ao do metodo de Gauss nos da a fatorac~ ao H de H pelas permutac~ oes de linhas realizadas durante a triangularizac~ ao. Assim, ~ = RH ^ = RT ^ A=L ^U ^ ; donde H ^t L ^U ^ ; ou A = LR ^ =A = U ^ T ^RT ^ V
1 1

Apos uma sequ^ encia de mudancas de base, nossa representac~ ao da inversa teria a forma
kV

= kU

k T k R : : :1 T

RT :

10.3 Preservando Esparsidade


O algoritmo de Saunders, que agora examinamos, pode ser visto como uma adaptac~ ao do algoritmo de Bartels e Golub visando aproveitar a previa estruturac~ ao da base pelo algoritmo P4. Suponhamos termos a fatorac~ ao A = LU obtida pela aplicac~ ao do metodo de Gauss (sem pivotamento de linhas mas com poss veis permutac~ oes de colunas) a matriz A previamente estruturada pelo P4, por exemplo Exemplo 3: 1 2 3 4 5 6 7 8 9 10 1 x 2 x x 3 x x x 0 4 x x 5 x x x 6 x x 0 x x x x x x x x 7 8 x 0 x x x x x x x x x 9 10 x x x x 0 No Exemplo 3, \x" indica as posic~ oes originalmente n~ ao nulas de A e \0" indica as posic~ oes preenchidas durante a triangularizac~ ao.

102

Cap tulo 10. MUDANCA de BASE

~ a matriz obtida de U pela permutac~ Seja U ao simetrica, Q0UQ, que leva os espinhos, preservando sua ordem de posicionamento, para as ultimas colunas a direita. No Exemplo 3, ter amos, 1 2 3 5 6 7 9 4 8 10 1 x 2 x x x x 3 5 x 0 ~ U = Q UQ = 6 x 7 x x x x x 9 4 x 8 x x x 10 ~ = D E , onde D e diagonal e F e triangular superior. Esta matriz tem estrutura U 0 F ~ 0 para a nova base O algoritmo de Saunders atualiza a decomposic~ ao A = LQUQ
" #

^ = A ^Q ^ = A como segue:

h h

A : : : As A : : : As
1 1

1 1

a As : : : An As : : : An a
+1 +1

i i

ou

~Q ^ , e substituic~ 1. Forma, pela permutac~ ao U ao da ultima coluna, ^Q ^ = Q0TAQQ ^= U ~ ::: U ~s W = TA


h 1 1

~s U

+1

~ n Q0Ta : ::: U
i

2. Forma, pela permutac~ ao simetrica,


h

^ =Q ^ 0T A ^Q ^ == Q ^ 0Q0T AQ ^ Q ^=W ^ = W 0 (W )0 : : : (Ws )0 (Ws )0 : : : (Wn)0 (Ws )0 :


i 1 1 +1

^ tem uma estrutura do tipo Note que W ^ D ^ = 0 W 0


2 6 6 4

^ E ^ F Ws

^ nn c W ^ nn c n W ^ nn W
1: :

3 1 7 7 1 5

^ e diagonal e Ws so pode ter elementos n~ onde D ao nulos nas ultimas posic~ oes a direita (sob n ^eW ^ ). F

10.3. Preservando Esparsidade

103

^ , isto e, N ^ , pelo metodo de Gauss com pivotamento parcial. A matriz N ^, 3. Triangulariza W ^ e dos ultimos elementos da linha Ws e da coluna W ^ n , e denominada nucleo constitu da de F ^ . Nas rotinas numericas pode ser conveniente guardar apenas o nucleo, c c; c << n de W como uma matriz densa na memoria principal, enquanto o resto da matriz, usada apenas para leitura, pode ser guardada em uma representac~ ao esparsa, e na memoria secundaria.

No Exemplo 3 ter amos, ao mudar a coluna 3 da base A, 1 2 3 1 x y x 2 3 x x 4 y ^= 5 x A 6 x 7 x y x 8 9 x y 10 x 4 5 6 7 8 9 10

x x x x x x x x x x x x x x x x x x x x x x

1 2 5 6 7 9 4 8 10 1 x x x 2 3 x 5 x W= 6 x x 7 x x x x x 9 4 x 8 x x 10 x

3 y

y y y

104

Cap tulo 10. MUDANCA de BASE

1 2 5 6 7 9 4 8 10 3 1 x y 2 x x 5 x 6 x x ^ W= 7 x x x y 9 x x 4 x y 8 x x 10 x y 3 x 0 ^ teremos, sendo R ^ as permutac~ Apos a triangularizac~ ao de W oes de linhas realizadas ao trian^ gularizar W , ^W ^ = L ^U ^ =R ^Q ^ 0Q0T AQ ^ Q ^ portanto R ^ = LQQ ^R ^0L ^U ^Q ^ 0 Q0 e A ^ = QQ ^U ^ T ^R ^Q ^ 0Q0T : A
1 1

Em geral, apos uma sequ^ encia de mudancas de base, nossa representac~ ao da inversa tera a forma k A = Q Q : : : k Q k U k T k R k Q0 : : : T R Q Q T :
1 1 1 1 1 1

Observac~ ao 10.2
1. A regi~ ao dos preenchimentos em k W esta restrita ao tri^ angulo superior do nucleo e sua ultima linha. 2. A matriz k L so tera elementos nulos na ultima linha do nucleo. 3. A cada nova mudanca de base, a dimens~ ao do nucleo: (a) Aumenta de 1, se a coluna que sai da base e uma coluna triangular da base original. (b) Permanece constante, se a coluna que sai da base e um espinho, ou uma coluna ja anteriormente substitu da. 4. Cada mudanca de base aumenta um termo na fatorac~ ao da base, o que leva a uma gradativa perda de e ci^ encia e acumulo de erros. Depois de um numero pre-determinado de mudancas sobre uma base original, ou quando o acumulo de erros assim o exigir, devemos fazer uma reivers~ ao, i.e., reiniciar o processo aplicando a P4 e triangularizando a proxima base desejada.

10.4. Preservando Estrutura

105

10.4 Preservando Estrutura


Consideraremos agora o problema de atualizar a fatorac~ ao A = QU de uma base na forma angular blocada. Conforme argumentamos no nal do cap tulo 7, estamos apenas interessados no fator U , sendo as transformac~ oes ortogonais descartadas logo apos o seu uso. No que segue, a coluna a sair da base sera a coluna outj do bloco outk, 1 outk h + 1. Em seu lugar sera introduzida na base uma coluna com a estrutura do bloco ink, 1 ink h + 1. Apresentamos agora um procedimento de atualizac~ ao de U por blocos, bup(), que usa explicitamente a estrutura angular blocada da base A e do fator U . Este procedimento sera descrito em termos das operac~ oes simples em cada bloco apresentadas na sec~ ao 7.5. Em bup() consideraremos cinco casos distintos:

Caso I ink 6= outk; ink 6= h + 1; outk 6= h + 1. Caso II ink = outk; ink 6= h + 1. Caso III ink = 6 h + 1; outk = h + 1. Caso IV ink = h + 1; outk = 6 h + 1. Caso V ink = outk; ink = h + 1.
Vejamos em detalhe o caso I, quando ink and outk s~ ao blocos diagonais distintos, como mostrado na gura 1. Neste caso os unicos ENN's na coluna saindo est~ ao no bloco outkB outj. Analogamente os unicos ENN's na coluna entrando na base, a, est~ ao em inka. De nimos y A0a, e u Q0a = U t A0a = U ty. Notamos que os vetores y e u preservam a estrutura blocada da base. Assim, os ENN's em u est~ ao nos blocos ink u e h u,
+1 "

ink u h+1 u

"

ink V

ink W

t " ink y h+1 y

Para atualizar U removemos a coluna outj do bloco outk, e inserimos u como a ultima coluna de ink U . Depois apenas temos que reduzir U a uma matriz triangular superior atraves de transformac~ oes ortogonais. 1. Leve 2. Leve
h

outk V h+1 u

outk W
i

de Hessenberg a triangular superior.


+1

S a triangular.
+1

3. Insira a primeira linha de h U , como a ultima linha de ink U . 4. Insira a ultima linha de outk U como a primeira de h U .

106 5. Leve S de Hessenberg a triangular superior.

Cap tulo 10. MUDANCA de BASE

Os outros casos s~ ao bastante similares. Os esquemas nas guras 2, 3 e 4 s~ ao os analogos do esquema na gura 1, e d~ ao uma descric~ ao sumaria de cada um dos casos. Estes s~ ao os passos para o caso I : 1. No no ink, compute yink = (B ink )taink e yb = (C ink )taink . pTime = m(ink)n(ink) + m(ink)n(b + 1) 2dbmax , INC = 0 .
+1 2

2. No no ink, compute a transformac~ ao inversa parcial


"

uink = V ink W ink z 0 I


# "

t " ink y yb+1


2

Ent~ ao insira uink como a ultima coluna de V ink . pTime = (1=2)n(ink) + n(ink)n(b + 1) (3=2)dbmax , INC = 0 .
2

3. Do no ink envie z ao no 0. pTime = 0 , INC = n(b + 1) dbmax . 4. No no 0 compute ub = S tz. pTime = (1=2)n(b + 1) (1=2)dbmax , INC = 0.
+1 2 2

outk . Ent~ 5. (a) No no outk, remova a coluna V outk ao reduza V outk W outk de Hes;outj de V senberg para triangular superior. (b) No no 0, reduza ub S para triangular superior. Observe que as operac~ oes nos passos 5a e 5b s~ ao independentes, portanto pTime = 2n(ink) + 4n(ink)n(b + 1) ^ 2n(b + 1) 6dbmax , INC = 0.
h +1 i 2 2 2

6. Do no 0 envie o vetor S ; ao no ink, onde ele e inserido como a ultima coluna de W ink . Do ink no 0 envie o elemento ub ao no ink, onde ele e inserido como Un ink ;n ink . Do no outk outk envie vetor Wn outk ; ao no 0, onde ele e inserido como a primeira linha de S . pTime = 0 , INC = 2n(b + 1) + n(outk) 3dbmax.
1 +1 1 ( )+1 ( )+1 ( )

7. No no 0, reduza S de Hessenberg para triangular superior. pTime = 2n(b + 1) 2dbmax , INC = 0.


2 2

Estes s~ ao os passos para o caso II : Os Passos 1|5 s~ ao exatamente como no caso I.


ink 6. (a) Do no ink envie Vnink ink ;n ink e Wn ink ; ao no 0.
( ) ( ) ( )

10.4. Preservando Estrutura

107
"

(b) No no 0 reduza para triangular superior a matriz 2 n(b + 1) + 1


ink Vnink ink ;n ink Wn ink ; ub S;
( ) ( +1 1 ) ( ) 1 #

pTime = 4n(b + 1) 4dbmax , INC = n(b + 1) dbmax. ink 7. (a) Do no 0 envie o vetor modi cado Vnink ink ;n ink Wn ink ; de volta ao no ink . (b) No no 0, reduza S de Hessenberg para triangular superior. pTime = 2n(b + 1) 2dbmax , INC = n(b + 1) dbmax.
h i ( ) ( ) ( ) 2 2

Estes s~ ao os passos do caso III : Os passos 1|4 s~ ao exatamente como no caso I. 5. (a) No no k = 1 : b remova a coluna W k;outj de W k . (b) No no 0 reduza ub S para triangular superior. Remova S ;outj de S . pTime = 2n(b + 1) 2dbmax , INC = 0.
h +1 i 2 2

6. Do no 0 envie ao no ink, ub para ser inserido em V ink como Vnink ink ser inserido como a ultima coluna de W ink . pTime = 0 , INC = n(b + 1) dbmax.
+1 1 (

)+1

;n(ink)+1 ,

e S ; para
1

7. No no 0, reduza S de Hessenberg para triangular superior. pTime = 2n(b + 1) 2dbmax , INC = 0.


2 2

Estes s~ ao os passos do caso IV : 1. No no k=1:b, compute yk = (B k )tak e xk = (C k)tak . pTime = ^b m(k)n(ink) + m(k)n(b + 1) 2dbmax , INC = 0.
1 2

2. No no k=1:b, compute a transformac~ ao inversa parcial


"

uk = V k W k 0 I zk
# "

t " ink y xk
2

e insira uk como a ultima coluna de W k . pTime = ^b (1=2)n(k) + n(k)n(b + 1) (3=2)dbmax , INC = 0.


1 2

3. Do no k=1:b envie zk ao no 0, onde acumulamos z = b zk . pTime = b n(b + 1) b dbmax , INC = b n(b + 1) b dbmax.
P 1

4. No no 0 compute ub = S tz, e insira ub como a ultima coluna de S . pTime = (1=2)n(b + 1) (1=2)dbmax , INC = 0.
+1 +1 2 2

108
h 2 2

Cap tulo 10. MUDANCA de BASE


i

outk , e reduza V outk W outk para triangular superior. 5. remova a coluna V outk ;outj de V pTime = 2n(outk) + 4n(outk)n(b + 1) 6dbmax , INC = 0.

6. Envie o vetor Wnoutk ouk ; do no outk ao no 0, onde o inserimos como a primeira linha de S , e reduza S a triangular. pTime = 2n(b + 1) 2dbmax , INC = n(b + 1) dbmax.
( ) 2 2

Estes s~ ao os passos do caso V : Os passos 1|4 s~ ao exatamente como no caso IV. 5. No no k=1:b, remova a coluna W k;outj de W outk , e insira uk como a ultima coluna de W k . No no 0 remova a coluna S ;outj de S , e insira ub como a ultima coluna de S . pTime = 0 , INC = 0.
+1

6. No no 0, reduza S de Hessenberg para triangular superior. pTime = 2n(b + 1) 2dbmax , INC = 0.


2 2

A complexidade do procedimento de atualizac~ ao de U por blocos, bup(), e dada pelo seguinte h teorema: Como na sec~ ao 7.4, dbmax = maxk n(k).
=1

Teorema 10.3 A complexidade de bup(), desconsideramos termos de ordem inferior, tem os


seguintes limitantes superiores para tempo de processamento e comunicac~ ao: Caso I II III IV V Tempo de Processamento 12dbmax2 12dbmax2 8dbmax2 12dbmax2 + b dbmax 6dbmax2 + b dbmax Comunicac~ ao 3dbmax 3dbmax 2dbmax

h dbmax h dbmax

Caso o ambiente permita comunicac~ oes em paralelo, podemos substituir h por log(h) nas express~ oes de complexidade.

10.4. Preservando Estrutura

109

B
outk

B C
1

V
6

W W V
3

=1

B
ink

=2

C B
3

outj = 2
2

u
0 0
? @ @ @

@ @ @

@ @

* 0 0

@ @ @ -

0 Caso I

110

Cap tulo 10. MUDANCA de BASE

* 0 0 0 0

x x x Caso II 0 0

@ @ @

0 @@ 0 @@ 0 0 0

@ @

Caso III

@ @ @ @

x@@ @

10.4. Preservando Estrutura

111

@ @ @ @

0 Caso IV

0 Caso V

112

Cap tulo 10. MUDANCA de BASE

Matlab
Historico
Matlab, de Matrix Laboratory, e um ambiente interativo para computac~ ao envolvendo matrizes. Matlab foi desenvolvido no inicio da decada de 80 por Cleve Moler, no Departamento de Ci^ encia da Computac~ ao da Universidade do Novo Mexico, EUA. Matlab coloca a disposic~ ao do usuario, num ambiente interativo, as bibliotecas desenvolvidas nos projetos LINPACK e EISPACK. Estes projetos elaboraram bibliotecas de dom nio publico para Algebra Linear. LINPACK tem rotinas para soluc~ ao de sistemas de equac~ oes lineares, e EISPACK tem rotinas para calculo de autovalores. Os manuais destes projetos s~ ao portanto documentac~ ao complementar a documentac~ ao do Matlab. Vers~ oes posteriores de Matlab, atualmente na vers~ ao 4.0, foram desenvolvidas na rma comercial MathWorks Inc., que det^ em os direitos autorais destas implementac~ oes. As vers~ oes recentes do produto Matlab melhoram signi cativamente o ambiente interativo, incluindo facilidades gra cas de visualizac~ ao e impress~ ao; todavia a \Linguagem Matlab" manteve-se quase inalterada. Existem varios interpretadores da linguagem Matlab em dom nio publico, como Matlab 1.0, Octave e rlab. Existem tambem outros interpretadores comerciais de Matlab, como CLAM. Existem ainda varias Tool Boxes, bibliotecas vendidas pela MathWorks e por terceiros, com rotinas em Matlab para areas espec cas. Usaremos a gra a de nome proprio, Matlab, como refer^ encia a linguagem, o nome em maiusculas, MATLAB, como refer^ encia ao produto comercial da MathWorks, e a gra a em minusculas, matlab, como refer^ encia a um interpretador generico da linguagem Matlab.

O Ambiente
Para entrar no ambiente matlab, simplesmente digite \matlab". O prompt do matlab e >> , que espera por comandos. Para sair use o comando quit. Dentro do ambiente matlab, um comando precedido do bang, !, e executado pelo sistema operacional, assim: usando !dir ou !ls caremos sabendo os arquivos no diretorio corrente, e usando !edit , !vi ou !emacs , seremos capazes de editar um arquivo. Normalmente Matlab distingue maiusculas de minusculas. 113

114

Matlab

O comando help exibe todos os comandos e s mbolos sintaticos dispon veis. O comando help nomecom fornece informac~ oes sobre o comando de nome nomecom. O comando diary nomearq abre um arquivo de nome nomearq, e ecoa tudo que aparece na tela para este arquivo. Repetindo o comando diary fechamos este arquivo. O formato dos numeros na tela pode ser alterado com o comando format. Os comandos who e whos listam as variaveis em exist^ encia no espaco de trabalho. O comando clear limpa o espaco de trabalho, extinguindo todas as variaveis. O comando save nomearq guarda o espaco de trabalho no arquivo nomearq, e o comando load nomearq carrega um espaco de trabalho previamente guardado com o comando save. Em Matlab ha dois terminadores de comando: a v rgula, , , e o ponto-e-v rgula, ; . O resultado de um comando terminado por v rgula e ecoado para a tela. O terminador ponto-e-v rgula n~ ao causa eco. Resultados ecoados na tela s~ ao atribu dos a variavel do sistema ans (de answer, ou resposta). O terminador v rgula pode ser suprimido no ultimo comando da linha. Para continuar um comando na linha seguinte devemos terminar a linha corrente com tr^ es pontos, ... , o s mbolo de continuac~ ao. O sinal de porcento, % , indica que o resto da linha e comentario.

Matrizes
O tipo basico do Matlab e uma matriz de numeros complexos. Uma matriz real e uma matriz que tem a parte imaginaria de todos os seus elementos nula. Um vetor linha e uma matriz 1 n, um vetor coluna uma matriz n 1, e um escalar uma matriz 1 1. As atribuic~ oes A = 1, 2, 3; 4, 5, 6; 7, 8, 9]; ou A = 1 2 3; 4 5 6; 7 8 9]; , s~ ao equivalentes, e atribuem a variavel A o valor 1 2 3 A= 4 5 6 7 8 9
2 6 6 4 3 7 7 5

Matrizes s~ ao delimitadas por colchetes, elementos de uma mesma linha s~ ao separados por v rgulas (ou apenas por espacos em branco), e linhas s~ ao separadas por ponto-e-v rgula (ou pelo caracter nova-linha). O apostrofe, ' , transp~ oem uma matriz. E facil em Matlab compor matrizes blocadas, desde que os blocos tenham dimens~ oes compat veis! Por exemplo: 1 2 5 7 5 1 2 A = 3 4 ; B = 6 ; C = 8 ; D= A,B;C']; D = 3 4 6 7 8 9 9 Cuidado ao concatenar matrizes com os espacos em branco, pois estes s~ ao equivalentes a v rgulas, separando elementos. Assim: 1,2+3]== 1 5] mas 1,2 +3]== 1,2,3].
" # " # 6 6 4 7 7 5 6 6 4 7 7 5 2 3 2 3

Matlab

115

Ha varias func~ oes para gerar matrizes e vetores especiais: zeros(m,n), ones(m,n) e rand(m,n) s~ ao matrizes de dimens~ ao m n com, respectivamente, zeros, uns, e numeros aleatorios em 0,1]. O vetor i:k:j e o vetor linha i; i + k; i + 2k; : : : i + nk], onde n = max m j i + mk j . Podemos suprimir o \passo" k = 1, escrevendo o vetor i:1:j simplesmente como i:j. Se v e um vetor, diag(v) e a matriz diagonal com diagonal v , se A e uma matriz quadrada, diag(A) e o vetor com os elementos da diagonal principal de A. A matriz identidade de ordem n e eye(n), o mesmo que diag(ones(1,n)). A(i,j) e o elemento na i-esima linha, j -esima coluna de A, m n. Se vi e vj s~ ao vetores de ndices em A, i.e. vetores linha com elementos inteiros positivos, em vi n~ ao excedendo m, e em vj n~ ao excedendo n, A(vi,vj) e a sub-matriz do elementos de A com ndice de linha em vi e ndice de coluna em vj . Em particular A(1:m,j), ou A(:,j) e a j -esima coluna de de A, e A(i,1:j), ou A(i,:), e a i-esima linha de A. Exemplo: 11 12 13 A = 21 22 23 31 32 33
6 6 4 2 3 7 7 5

vi = 3 1

"

vj = 2 3

"

33 A(vi; vj ) = 32 12 13

"

As operac~ oes de adic~ ao, subtrac~ ao, produto, divis~ ao e pot^ encia, + - * / ^, s~ ao as usuais da algebra linear. O operador de divis~ ao a esquerda, \, fornece em x = A\b; uma soluc~ ao x j A x = b. O operador de divis~ ao a direita, / , fornece em a = b/A; uma soluc~ ao x j x A = b. Quando o sistema e bem determinado isto e o mesmo que, respectivamente, inv(A)*b ou b*inv(A). (Quando o sistema e super-determinado x e uma soluc~ ao no sentido dos m nimos quadrados.) Os operadores aritmeticos de produto, pot^ encia e divis~ ao tem a vers~ ao pontual, .* .^ ./ .\ , que s~ ao executados elemento a elemento. Exemplo:

x= 5 5 5 ; y=

1 0 1 ; x: y =

5 0 5

Matlab e uma linguagem declarativa (em oposic~ ao a imperativa) onde as variaveis s~ ao declaradas, dimensionadas e redimensionadas dinamicamente pelo interpretador. Assim, se A presentemente n~ ao existe, A=11; declara e inicializa uma matriz real 1 1. Em seguida, o comando A(2,3)=23; redimensionaria A como a matriz 2 3 11, 0, 0; 0, 0, 23]. A nome da matriz nula e ]. A atribuic~ ao A(:,2)= ]; anularia a segunda coluna de A, tornado-a a matriz 2 2 11, 0; 0, 23].

Controle de Fluxo
Os operadores relacionais da linguagem s~ ao < <= > >= == ~=, que retornam valor 0 ou 1 conforme a condic~ ao seja verdadeira ou falsa. Os operadores logicos, n~ ao e ou, s~ ao, respectivamente, ~ & | . Matlab possui os comandos de uxo for { end, while { end e if { elseif { else { end, que tem a mesma sintaxe do Fortran, exempli cada a seguir. Lembre-se de n~ ao escrever a palavra elseif como duas palavras separadas.

116
for i=1:n for j=1:m H(i,j)=1/(i+j-1); end end if(x<0) signx=-1; elseif(x>0) signx=1; else signx=0; end fatn=1; while(n>1) fatn=fatn*n; n=n-1; end

Matlab

Uma considerac~ ao sobre e ci^ encia: Matlab e uma linguagem interpretada, e tempo de interpretac~ ao de um comando simples pode ser bem maior que seu tempo de execuc~ ao. Para tornar o programa rapido, tente operar sobre matrizes ou blocos, evitando loops expl citos que operem numa matriz elemento por elemento. Em outras palavras, tente evitar loops que repetem um comando que atribui valores a elementos, por atribuic~ oes a vetores ou matrizes. As facilidades no uso de vetores de ndices, os operadores aritmeticos pontuais, e func~ oes como max , min , sort , etc., tornam esta tarefa facil, e os programas bem mais curtos e leg veis.

Scripts e Func~ oes


O uxo do programa tambem e desviado pela invocac~ ao de subrotinas. A subrotina de nome nomsubr deve estar guardada no arquivo nomsubr.m ; por isto subrotinas s~ ao tambem denominadas M-arquivos (M- les). Ha dois tipos de subrotinas: Scripts e Func~ oes. Um script e simplesmente uma sequ^ encia de comandos, que ser~ ao executados como se fossem digitados ao prompt do matlab. Subrotinas podem invocar outras subrotinas, inclusive recursivamente. Um M-arquivo de func~ ao em Matlab comeca com a declarac~ ao da forma A lista entre par^ enteses e a lista de par^ ametros de entrada da func~ ao, e a lista entre colchetes s~ ao os par^ ametros de sa da. Par^ ametros s~ ao variaveis locais, assim como s~ ao variaveis locais todas as variaveis no corpo da func~ ao. Ao invocarmos a func~ ao nomefunc com o comando Os argumentos de entrada, ae1; : : :aen, s~ ao passados por valor aos (i.e. copiados nos) par^ ametros de entrada, e ao m do M-arquivo, ou ao encontrar o comando return , os par^ ametros de sa da s~ ao passados aos argumentos de sa da. Exemplos:
function mabel, mabin] = vmax(v) % procura o maior elemento, em valor absoluto, % dentro de um vetor, linha ou coluna. %Obs: Esta funcao NAO segue os conselhos as1,... asm] = nomefunc(ae1,... aen); ps1, ps2,... psm] = nomefunc( pe1, pe2,... pen )

Matlab
%para operar sobre blocos, e nao elementos! m,n]=size(v); if( m ~= 1 erro; else K=max( m,n]); mabel= abs(v(1)); mabin= 1; for k=2:K if( abs(v(k)) > mabel ) mabel= abs(v(k)); mabin= k; end%if end%for end%else & n ~= 1 )

117

Para referir-mo-nos, dentro de uma func~ ao, a uma variavel externa, esta deve ter sido declarada uma variavel global com o comando global. A forma de especi car uma variavel como global muda um pouco de interpretador para interpretador, e mesmo de vers~ ao para vers~ ao: Diga help global para saber os detalhes de como funciona a sua implementac~ ao.

Bibliogra a
Colema-88] T.F.Coleman and C.F.van Loan. A Matrix Computation Handbook. SIAM Publications, Philadelphia. Moler-81] C.B.Moler. Matlab Manual. Department of Computer Science, University of New Mexico. Dongar-79] J.J.Dongarra, J.R.Bunch, C.B.Moler, G.W.Stewart. LINPACK Users' Guide. Society for Industrial and Applied Mathematics, Philadelphia. Smith-76] B.T.Smith, J.M.Boyle, J.J.Dongarra, B.S.Garbow, Y.Ikebe, V.C.Klema, C.B.Moler. Matrix Eigensystem Routines: EISPACK Guide. Lecture Notes in Computer Science, volume 6, second edition, Springer-Verlag. Garbow-77] B.S.Garbow, J.M.Boyle, J.J.Dongarra, C.B.Moler. Matrix Eigensystem Routines: EISPACK Guide Extension. Lecture Notes in Computer Science, volume 51, Springer-Verlag. Moler-92] C.B.Moler, J.N.Litte and S.Bangert. PC-MATLAB User's Guide. The MathWorks Inc. Sherborn, Massachusetts. Eaton-92] J.W.Eaton. Octave Manual. Chemical Engineering Department, University of Texas at Austin. Austin, Texas.

118

Matlab

Bibliogra a
Bibliogra a SUMARIA de suporte para o curso: Bertsekas-89] D.P.Bertsekas J.N.Tsitsiklis. Parallel and Distributed Computation, Numerical Methods. Prentice Hall, 1989. Bunch-76] J.R.Bunch D.J.Rose. Sparse Matrix Computations. Academic Press, 1976. Carey-89] G.F.Carey. Parallel Supercomputing. John Wiley, 1989. Dongarra-91] J.J.Dongarra et all. Solving Linear Systems on Vector and Shared Memory Computers. SIAM, 1991. Du -79] I.S.Du G.W.Stewart. Sparse Matrix Proceedings 1978. SIAM, 1979. Du -86] I.S.Du A.M.Erisman J.K.Reid. Direct Methods for Sparse Matrices. Oxford, 1986 Gallivan-90] K.A.Gallivan et all. Parallel Algorithms for Matrix Computations. SIAM, 1990. George-81] A.George J.W.H.Liu. Computer Solution of Large Sparse Positive-De nite Systems. Prentice Hall, 1981. Golub-83] G.H.Golub C.F.van Loan. Matrix Computations. John Hopkins, 1983. Pissan-84] S.Pissanetzky. Sparse Matrix Technology. Academic Press 1984. Rose-72] D.J.Rose R.A.Willoughby. Sparse Matrices. Plenum Press, 1972. Stern-92] J.M.Stern. Simulated Annealing with a Temperature Dependent Penalty Function. ORSA Journal on Computing, V-4, N-3, p-311-319, 1992. Stern-93] J.M.Stern S.A.Vavasis. Nested Dissection for Sparse Nullspace Bases. SIAM Journal on Matrix Analysis and Applications, V-14, N-3, p-766-775, 1993. Stern-94] J.M.Stern S.A.Vavasis. Active Set Algorithms for Problems in Block Angular Form. Computational and Applied Mathematics, V-13, 1994. Stewart-73] G.W.Stewart. Introduction to Matrix Computations. Academic Press, 1973. Tewarson-73] R.P.Tewarson. Sparse Matrices. Academic Press, 1973. Vorst-89] H.A.van der Vorst P.van Dooren. Parallel Algorithms for Numerical Linear Algebra. North Holland, 1989. 119

120

Bibliogra a

Você também pode gostar