Esparsidade, Estrutura, Escalamento e Estabilidade em Algebra Linear Computacional
Sparsity, Structure, Scaling and Stability in Computational Linear Algebra - Textbook from the IX School of Computer Science, held on July 24-31 of 1994 at Recife, Brazil. Esparsidade, Estrutura, Escalamento e Estabilidade em Algebra Linear Computa…
Authors: Julio M. Stern
Esparsi dade, Estrutura, Estabili dade e Es cal amen to em ´ Algebra L inear Computacional IX Escola de Computa¸ c˜ ao 24 a 31 de J ulho de 1994, Recife. Julio M. Stern Departamen to de Ci ˆ encia de Computa¸ c˜ ao do Instituto de Matem´ a tica e Estat ´ ıstica da Univ ersidade de S˜ ao P aulo ii Con te ´ udo Pref´ acio para a IX Escola de Compu ta¸ c˜ ao 5 0.1 Imp ortˆ ancia da ´ Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 0.2 In terdisciplinaridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 0.3 Serv entia do Livro T exto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 0.4 Plano de Aulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 0.5 Comen t´ ario sobre a Bibliografia de Sup orte . . . . . . . . . . . . . . . . . . . . . . 9 0.6 Agradecimen tos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 INTRODUC ¸ ˜ AO 11 1.1 P a norama do Livro e seu T ema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 Nota¸ c˜ oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 1.3 Represen ta¸ c˜ ao de Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 F A TORAC ¸ ˜ AO LU 19 2.1 P ermuta¸ c˜ oes e Op era¸ c˜ oes Elemen tares . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 M ´ eto do de G auss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 2.3 Piv ot eamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4 Lema da F atora¸ c˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.5 O M ´ eto do de D o olittle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6 Complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3 RESUMO DE TEORI A DOS GRAFOS 29 3.1 Conceitos B´ asicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Rela¸ c˜ oes de Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 iii iv CONTE ´ UDO 3.3 Busca em Profundidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.4 Grafos Sim´ etricos e Casamen tos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5 O Algoritmo H´ ungaro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4 ELIMINA C ¸ ˜ AO ASSIM ´ ETRICA 43 4.1 Preenc himen to Lo cal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2 Pr ´ e-P osicionamen to de Pivˆ os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5 F A TORAC ¸ ˜ OES SIM ´ ETRICAS e OR TOGONAIS 51 5.1 Matrizes Ort ogonais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2 F atora¸ c˜ ao QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1 5.3 Espa¸ cos V etoriais com Pro duto Interno . . . . . . . . . . . . . . . . . . . . . . . . 53 5.4 Pro jetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.5 Quadrados M ´ ınimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4 5.6 Programa¸ c˜ ao Q ua dr ´ atica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.7 F atora¸ c˜ ao de Cholesk y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6 ELIMINA C ¸ ˜ AO SIM ´ ETRICA 59 6.1 Grafos de Elimina¸ c˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.2 Grafos Cordais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 6.3 Ordena¸ c˜ oes p or Dissec¸ c˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7 ESTRUTURA 71 7.1 Estrutura T riangular Blo cada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 7.2 Estrutura Angular Blo cada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 7.3 P a rti¸ c˜ ao de Hip ergrafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 0 7.4 P a ralelismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.5 F atora¸ c˜ oes Blo cadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8 ESCALAMEN TO 85 8.1 O Sistema de P on to Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 8.2 Erros no Pro duto Escalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 CONTE ´ UDO 5 8.3 Escalamen to de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9 EST ABILIDADE 95 9.1 Normas e Condi¸ c˜ a o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.2 P erturba ¸ c˜ oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 7 9.3 Erro na F atora¸ c˜ ao LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 10 MUD AN C ¸ A de BASE 103 10.1 F ´ orm ulas de Mo difica¸ c˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 10.2 Atualiza¸ c˜ oes Est´ av eis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 10.3 Preserv ando Esparsidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 10.4 Preserv ando Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Matlab 119 Bibliografia 125 6 CONT E ´ UDO Pref´ acio par a a IX Es cola de Computa¸ c ˜ ao Prop omos, para a IX Escola de Computa¸ c˜ ao , o curso acompanhado de livro t exto: Esparsidade, Estrutura, Escalam en to e Est abilidade em ´ Algebra Linear Computacional . Embora abrangen te o suficien te para a compreens˜ ao dos principais problemas da ´ ar ea, a tˆ onica do curso ´ e a solu¸ c˜ ao de sistemas line ares es parsos e-ou estruturados. N a primeira se¸ c˜ ao da intro du¸ c˜ ao damos uma vis˜ ao panorˆ amica sobre o tema e a organiza¸ c˜ ao do livro. Nes te pref´ acio ressaltamos algumas motiv a¸ c˜ oes para a inclus˜ ao do curso na IX Escola de Computa¸ c˜ ao, e esclarecemos a forma e o con te´ udo das palestras a serem dadas duran te o mes mo. 0.1 Imp ortˆ ancia da ´ Area Grande parte do pro cessamen to de dados em ci ˆ encia en volv e computa¸ c˜ ao n um ´ erica, e a maior parte desta computa¸ c˜ ao n um ´ eric a s˜ ao rotinas b´ asicas de ´ algebra linear. V´ arias aplica¸ c˜ oes em engenharia, f ´ ısica, pesquisa op eracional, administra¸ c˜ ao ou matem´ atica, g era m problemas lineares cujas matrizes s˜ ao esparsas (en tre tantos outros: re solu¸ c˜ ao de e qua¸ c˜ oes diferenciais, an´ alise de sistemas, circuitos ou e struturas, programa¸ c˜ ao line ar e n˜ a o linear, otimiza¸ c˜ ao de fluxos em re- des, etc...). Ademais, observ a-se que a de nsidade de stas matrizes de cresce com a dimens˜ ao do problema: tipicamen te ap enas n 3 2 ou n lo g( n ) de seus n 2 elemen tos s˜ ao n˜ ao nulos. Assim, quan to maiores e mais complex as os problemas (e usu´ arios sempre querem resolv er mo delos maiores), mais imp ortante se torna usar eficien temen te a esparsidade e a estrutura das matrizes en volvidas. P o r exemplo, na ´ area de otimiza¸ c˜ ao, problemas ho je considerados de grande p orte en v olv em milh˜ oes de equa¸ c˜ oes, sendo a maioria destes problemas altamen te estruturados, muito esparsos, e usando mais de 99% do tempo de resolu¸ c˜ ao em rotinas b´ asicas de ´ algebra linear! 0.2 In t e rdiscipl i naridade Um asp ecto que, a nosso v er, torna o tema in teressan te para um even to como a Escola de Computa¸ c˜ ao ´ e sua in t erdisciplinaridade, v ejamos: 7 8 Pref´ acio • A resolu¸ c˜ ao dos problema de ´ algebra linear en v olv e os asp ectos cl´ assicos de complexidade, con v ergˆ encia e estabilidade de an´ alise n um´ erica. • O tratamento de esparsidade e estrutura ´ e um problema essencialme n te combinat´ orio, en v ol- v endo teoria de grafos, hip ergr afos, e heur ´ ısticas para solu¸ c˜ ao de problemas de prog rama¸ c˜ ao matem´ atica discreta. • A paraleliza¸ c˜ ao destes algoritmos, ou o desen v olvimen to de no v os m ´ eto dos, em am bientes t˜ ao div ersos como m´ aquinas de mem´ oria compartilhada ou redes de esta¸ c˜ oes de trabalho , v em liderando as p esquisas na ´ area nos ´ ultimos anos. 0.3 Serv en tia do L i vro T e xto O curso que se segue foi recen t emente mon tado como a disciplina MAC -795, M ´ eto dos Computa- cio- nais da ´ Algebra Linear, no programa de mestrado do Departamen to de Ci ˆ encia da Computa¸ c˜ ao da Univ ersidade de S˜ a o P aulo. Cursos de m´ eto dos computacionais da ´ algebra linear tem se p opularizado nos ´ ultimos anos em muitos departamentos de computa¸ c˜ ao, engenharia e matem´ atica aplicada. Era minha inten¸ c ˜ ao escrev er mais um cap ´ ıtulo sobre m´ eto dos iterativ os mas, ao p erceb er que meu rascunho duplica v a o t a manho do presen te livro, resolvi p o stergar a tarefa para outr a o casi˜ ao. 0.4 Plano de Au las Em cinco palestras de 90 min utos ´ e p o ss ´ ıv el dar um b om panorama da ´ area, sua imp ortˆ ancia, problemas, m ´ e to dos, e p ersp ectiv as. O material das palestras foi distribu ´ ıdo da seguin te f o rma: 1. In t ro du¸ c˜ ao: Vis˜ ao geral da ´ area, sua imp o r t ˆ ancia, origem de problemas de grande p orte, e asp ectos esse nciais para a sua solu¸ c˜ ao. 2. Esparsidade, Elimina¸ c˜ ao Assim´ etrica: Minimiza¸ c˜ ao de preenc himen to lo cal, outras heur ´ ısticas, atualiza¸ c˜ oes de base. 3. Esparsidade, Elimina¸ c˜ ao Sim´ etrica: ´ Arv o res de elimina¸ c˜ ao, heur ´ ısticas de or dena¸ c˜ ao , heur ´ ısticas de dissec¸ c˜ ao. 4. Estrutura: Esparsidade macrosc´ opica, m ´ eto dos de blo cos, heur ´ ısticas de redu¸ c˜ ao a formas blo cadas. 5. P aralelism o: Uso de esparsidade × uso de estrutura, gra n ularidade, e p otencialidades de am bien tes com diferen tes co eficien tes entre v elo cidade de pro cess amen to e v elo cidade de com unica¸ c˜ ao. 0.5. COMENT ´ ARIO SOBRE A BIBLIOG R AFIA DE SUPOR TE 9 0.5 Comen t´ ario s obre a Bibli o grafia de Sup orte P a ra a parte cl´ assica de an´ alise num ´ erica h´ a uma farta v ariedade de livros texto, como: [Stew art -73] e [G olub-83]. Existem alguns livros ou coletˆ aneas sobre matrizes esparsas em am bien te seq ¨ uencial, sendo os principais: [Rose-72], [T ew arson- 73], [Bunch-76], [Duff-79 ], [Georg e-81] e ta m b´ em [Pissan- 84] e [Duff- 86]. Com exce¸ c˜ ao dos dois ´ ult imos, estes livros j´ a est˜ ao bastante desatualizados e esgotados. ´ Algebra Linear Computacional, sob o enfo que de Computa¸ c ˜ ao P aralela, ´ e um camp o de in- tensa p esquis a at ual: Exclusiv amente para matrizes densas h´ a v arias obras publicadas, x1como: [Bertsek as-89 ] e [Dongarra-9 1]. Coletˆ aneas de a rtigos sobre ´ algebra linear computacional em am- bien te paralelo, trazendo alguns a r t igos sobre matrizes es parsas, s˜ ao m uito p oucos; como: [Carey- 89], [V o rst-89] e [G a lliv an-90]. Nestas resenhas encon tra-se tam b ´ em uma exten siv a bibliografia comen ta da da ´ area. 0.6 Agradecimentos No DCC-IME-USP , Departamen to de Ciˆ encia da Computa¸ c˜ ao da Instituto de Matem´ atica e Es- tat ´ ıstica da Univ ersidade de S˜ ao P aulo , con tei sempre com a a j uda e o encora j a men to de muitos colegas, como os Profess ores Marcos D. Gubitoso, Arna ldo Mandel, Kunio Okuda, Siang W. Song e Routo T erada . Sou esp ecialmen te grato ao co ordenador do grupo de Programa¸ c˜ ao Matem´ atica, Professor Carlos Humes Jr. N o CEMCAP-IME -USP , Cen tro de Matem´ atica e Computa¸ c˜ ao Apli- cadas, tiv e sempre o ap oio dos Professores Marco An tonio Raupp, P edro A. Morettin e Carlos A. B. P ereira. No NOPEF-USP , N ´ ucleo de Ot imiza¸ c˜ ao e Pro cessos Estoc´ asticos Aplicados ` a Econo- mia e Finan¸ cas, con tei com o companheirismo dos Professores Marcos Eug ˆ enio da Silv a, Jos ´ e Carlos Santos e Jo˜ ao C arlos Prandini. Em v´ arias o p ortunidades re cebi a cola b ora¸ c˜ ao do Eng. F´ abio Nak ano e do Prof. Jacob Zim barg sobrinho. P a rtes deste livro baseiam-se em trabalhos feitos com o Professor Stephen A. V av asis, da Univ ersidade de Cornell. A apresen ta ¸ c˜ ao de alguns t´ opicos foi inspirada em disciplinas ministradas p elo Professor T homas F . C oleman, na mesma Univ ersidade. Em 1992 montamos a disciplina MA C-7 95, M ´ etodo s Computacionais da ´ Algebra Linear, para o programa de mestrado do DCC- IME-USP . A ap ostila que acompanhou o curso serviu de base para este livro. D ev o a P aulo R ´ egis Zanj´ acomo, presen temen te na Univ ersidade de Cornell, e a Professora Celma O. Rib eiro, da Esc ola Polit ´ ecnica da USP , v´ arias cr ´ ıticas, comen t´ arios, e sugest˜ oes que em m uito melhoraram aquela primeira v ers˜ a o deste texto. Dos pr o motores da IX Escola de Computa¸ c˜ ao, inclusiv e do anˆ onimo, cr ´ ıtico e b em h umor a do referee, e da Univ ersidade F ederal de P ernam buco (UF P-Recife), recebi to do o necess´ ario suporte. A to dos estes amigos, ` a minha esp osa, Marisa, e a meus filhos, Ra fael, Ana Carolina e Deb orah, minha gra tid˜ ao. 10 Pref´ acio Cap ´ ıtulo 1 INTR ODUC ¸ ˜ AO 1.1 P anorama do Livro e s eu T ema O o b jetiv o deste curso ´ e o estudo de m´ eto dos computacionais para a resolu¸ c˜ ao de sistemas lineares, Ax = b . Enfatizaremos quatro asp ectos da constru¸ c˜ ao de b ons m ´ eto do s computacionais: • E sparsidade : Como resolv er eficien temen te sistemas cujas matrizes tenham baixa densi- dade de elemen tos n˜ ao n ulo s. • E strutura : Como resolv er eficien temen te sistemas esparsos cujos elemen tos n˜ a o nulos est˜ ao disp ostos com uma certa regularidade na matriz de co eficien tes. • E scalamen to : Como minimizar erros de arredondamen to gerados ao op era r mos com n´ umeros de ordem de grandeza m uito diferen te, numa represen ta¸ c˜ a o de precis˜ ao limitada. • E stabilidade : Como lidar c om o efeito cum ulativ o dos e rros de arredondamen to na solu¸ c˜ ao final gera da p elo alg oritmo. As ferramen tas relev antes para a an´ alise e implemen ta¸ c˜ ao de algoritmos eficien tes de ´ algebra linear est˜ a o espalhados en tre divers as ´ areas, ´ a r eas estas afins-mas-nem-tanto, como T eoria de Grafos e Hip ergrafos, ´ Algebra Linear, An´ alise Num ´ erica, e T eoria de Pro cessamen to P a ralelo. O prop´ osito destas notas ´ e apresen tar este material de forma razoa v elmen te co eren t e e did´ atica. O Cap ´ ıtulo 2 exp˜ oe o m´ eto do de Gauss para solu¸ c˜ a o de sistemas lineares, inv ers˜ ao, o u fat o ra¸ c˜ ao de matrizes. Os m ´ eto do s para matrizes esparsas lidam com a estrutura da disp osi¸ c˜ ao dos elemen tos n˜ ao nulos den tro da matriz, e esta estrutura ´ e conv enien temen te desc rita e manipulada em termos da teoria de g rafos. O Cap ´ ıtulo 3 ´ e um resumo de conceitos b´ asicos desta teoria. Conceitos mais a v a n¸ cados (ou menos usuais) como grafos corda is, separadores, e hiperg r afos, s˜ ao tratados em outros cap ´ ıtulos. 11 12 CAP ´ ITULO 1. INTRODUC ¸ ˜ AO No Cap ´ ıtulo 4 estudamos t´ ecnicas para t r atar sistemas esparsos assim ´ etricos, principalmen te preenc himen to lo cal, e a heur ´ ıstica P3. Desen volvime n tos p osteriores deste tema encon tram-se tam b ´ em no cap ´ ıtulo 7. O Cap ´ ıt ulo 5 exp˜ oem as F atora¸ c˜ oes QR e de Cholesky , e sua utiliza¸ c˜ ao na solu¸ c˜ ao de problemas de q uadrados m ´ ınimos, programa¸ c˜ ao quadr´ atica, e constru¸ c˜ ao de pro jetores. No Cap ´ ıtulo 6 estudamos t ´ ecnicas par a trata r sistemas esparsos sim ´ etric os; incluindo to da a necess´ aria teoria de gr afos cordais. O capitulo 7 trata da estrutura de um sistema, que p o de ser vista como r egula r idades no padr˜ ao de esparsidade, ou como a decomp osi¸ c˜ ao do sistema em sub-sistemas acopla do s. Neste cap ´ ıtulo estudamos brev emen te a pa r aleliza¸ c˜ ao de alguns dos algoritmos, tema que j´ a aparece implicita- men te em cap ´ ıtulos an teriores. O Capitulo 8 ´ e dedicado ` a a n´ alise do efeito dos inevit´ av eis erros de a r r edondamen to nos pro cedimen tos computacionais. No Capitulo 9 analisamos quan to estes erros p o dem degradar a solu¸ c˜ ao final de um problema. Estes do is cap ´ ıtulos tratam dos asp ectos de An´ alise Num ´ erica que, em b ora n˜ ao sendo a tˆ onica do curso, n˜ ao p o dem ser desprez ados. O C ap ´ ıtulo 10 tra t a do problema de m udan¸ ca de bas e, i.´ e., de atualizar a inv ersa de uma matriz quando nesta se substitui um a ´ unica coluna. Este problema ´ e de fundamental imp ort ˆ ancia para muitos algoritmos de Otimiza¸ c˜ ao. P a rte da av alia¸ c˜ ao n uma disciplina como a prop osta dev e ser feita com exerc ´ ıcios-programa, como os dados ao longo das notas. ´ E recomend´ av el o uso de uma linguagem estruturada, que inclua en tre seus tipos b´ asicos, n ´ umeros reais de pr ecis˜ ao simples e dupla, in teiros, camp o s de bits e po nteiros, que p ermita a f´ acil constru¸ c˜ ao e manipula¸ c˜ ao de estruturas, e para a qual ha ja compiladores e m computadores dos mais div ersos p ortes. As linguagens C, C++ e F OR TRAN-90 s˜ ao sugest˜ oes natura is. Am bientes iterativ os para c´ alculo matricial, como Mat la b, s˜ ao um grande est ´ ımulo ` a exp erimen ta¸ c˜ a o e compara¸ c˜ ao de div ersos de m ´ etodos num ´ ericos, facilitando a r´ apida prototipagem e teste de algoritmos. Apresen tamos uma introdu¸ c˜ ao a este tip o de am bien te como ap ˆ endice. 1.2 Nota¸ c˜ oes Utilizaremos letras mai´ usculas, A, B , . . . , para denotar matrizes, e letras min ´ usculas, a, b, . . . , para v eto r es. Numa matriz ou v etor, os ´ ındices de linha ou coluna ser˜ ao, resp ectiv amen te, subscritos ou sup erscritos ` a direita . Assim: A j i ´ e o elemen to na i -´ esima linha e na j - ´ esima coluna da matriz A ; b i ´ e o elemen to na i -´ esima linha do ve tor-coluna b ; e c j ´ e o elemen to na j -´ esima coluna do v eto r - linha c . ´ Indices ou sinais ` a es querda, sup erscritos ou subscritos, iden tificam v etores ou matrizes distin- tas. Assim: A , ′ A , j A , i A , j i A , . . . s˜ ao matrizes distin tas. T am b ´ em a letra δ forma, ` a esquerda de uma letra latina o no me de um v etor ou matriz, como δ a ou δA . As demais letras grega s us aremos geralmen te para escalares ou fun¸ c˜ oes. F req ¨ uen temen te nos referimos aos blo cos comp onen tes de v etores ou matrizes, como p or ex- 1.2. NOT AC ¸ ˜ OES 13 emplo: se b e c s˜ a o ve tores linha a = h b c i ´ e um v etor linha cujos primeiros eleme n tos s˜ ao os elemen tos de b , e o s elemen tos seguintes s˜ ao os elemen t o s de c . Analogamen te, A = 1 1 A 2 1 A 3 1 A 1 2 A 2 2 A 3 2 A 1 3 A 2 3 A 3 3 A represen ta uma matriz blo cada, desde que as dimens˜ oes dos blo cos sejam compat ´ ıv eis. Se A ´ e uma matriz, A i represen ta a i - ´ es ima linha de A , e A j sua j - ´ esima coluna, de mo do que se A ´ e mxn , A = h A 1 A 2 . . . A n i = A 1 A 2 . . . A m Uma matriz diagonal ser´ a denota da como diag ( d ) = D = d 1 d 2 . . . d n , d = d 1 d 2 . . . d n O v etor unit´ ario , 1 , ´ e o v etor, linha ou coluna, em que to dos os elemen tos s˜ ao iguais a 1, isto ´ e, 1 = h 1 1 . . . 1 i . Assim a matriz identidade ´ e I = diag ( 1 ). O j - ´ esimo v ersor d e dimens˜ ao n ´ e I j , a j - ´ esima coluna da matriz iden tidade de dimens˜ ao n . A tr a nsp osta, a in versa e a transp osta da inv ersa de uma matriz A s˜ ao denotada s, resp ectiv amente, p or A ′ , A − 1 e A − t . O deter minan te de uma matriz A , nxn , ´ e det ( A ) = X p S ( p ) A 1 p (1) A 2 p (2) . . . A n p ( n ) onde p = h p 1 p 2 . . . p n i ´ e uma p erm uta¸ c˜ ao dos e lemen tos de 0 p = h 1 2 . . . n i . O sinal de p erm uta¸ c˜ ao , S ( p ), ´ e +1 ou -1 conforme o n ´ umero de tro cas de pares de elemen tos que ´ e necess ´ ario fazer em p pa ra retornar a 0 p , seja par ou ´ ımpar. O c onjun to dos eleme n tos em cada um dos termos na somat´ oria da defini¸ c˜ ao do determinan te ´ e denominado uma diagonal da matriz. A diago na l corr esp ondente a pem uta¸ c˜ ao 0 p ´ e denominada diagona l principal . Uma matriz quadrada ´ e singular se tiv er determinan te nulo. O p osto de uma matriz A , r ank ( A ), ´ e a dimens˜ ao de sua maior sub-matriz quadrada n˜ ao singular. Dado um sistema Ax = b , com matriz de co eficien tes A nxn n˜ a o singular, a R egra Cramer nos diz que o siste ma tem p or ´ unica solu¸ c˜ ao x | x i = det ( h A 1 . . . A i − 1 b A i +1 A n i ) /det ( A ) . 14 CAP ´ ITULO 1. INTRODUC ¸ ˜ AO O t ra¸ co de uma matriz A, nxn , ´ e a soma de seus elemen tos na diagonal principal: tr ( A ) = n X i =1 A i i . A matriz b o oleana asso ciada ` a matriz A, B ( A ), ´ e a matriz, da mesm a dimens˜ ao de A , em que B ( A ) j i = 1 se A j i 6 = 0 , e B ( A ) j i = 0 se A j i = 0 . O complemen to de uma ma t r iz bo oleana B , ´ e a matriz b o oleana ¯ B , da mesm a dimens˜ ao de B , t a l que ¯ B j i = 1 ⇔ B j i = 0. Os conjun to s N = { 1 , 2 , ..., n } e M = { 1 , 2 , ..., m } ser˜ ao freq ¨ uente men t e usados como dom ´ ın ios de ´ ındices . Assim, se A ´ e uma ma t r iz mxn , faz sen t ido falar dos elemen tos A j i , i ∈ M , j ∈ N , O n ´ umero de elemen tos n˜ ao nulos , ENNs, n uma matriz A, mxn, ´ e enn ( A ) = m,n X i,j =1 B ( A ) j i = 1 ′ B ( A ) 1 de mo do que enn ( A i ) e enn ( A j ) s˜ ao , respectiv amente , o n ´ umero de elemen tos n˜ ao nulos na i - ´ esima linha e na j -´ esima coluna de A . Dada uma f un¸ c˜ ao ϕ (), definida n um dom ´ ınio D , e X ⊂ D , definimos seu argumen to m ´ ınimo V = ar g min x ∈ X ϕ ( x ) e argumen to m ´ aximo U = arg max x ∈ X ϕ ( x ) como, respectiv amen te, os conjun tos V , U ⊂ D que minimizam ou maximizam a fun¸ c˜ ao ϕ em X . Assim, se p or exemplo, ϕ = x 2 , x ∈ ℜ , X = [ − 5 , 5] e Y =] − 5 , 5[, ent˜ ao ar g min X ϕ ( x ) = ar g min Y ϕ ( x ) = { 0 } , ar g ma x X ϕ ( x ) = {− 5 , 5 } , ar g max Y ϕ ( x ) = ∅ . P a ra realizar exp eriˆ encias computacionais utilizaremos por vez es os s istemas lineares de d i- mens˜ ao n e solu¸ c˜ ao x = 1 , com as seguin tes matr izes de co eficien tes e v etores indep enden tes: • B inomial : n B j i = i j − 1 ! ⇔ j = 1 , 2 , . . . i 0 ⇔ j > i , n b = 2 1 2 2 . . . 2 n • H ilb ert : n H j i = 1 / ( i + j − 1) , n h i = n X j =1 1 / ( i + j − 1) • T ridiagonal : n T j i = − 2 ⇔ i = j − 1 ⇔ | i − j | = 1 0 caso con trario , n t = ( 1 ⇔ i ∈ { 1 , n } 0 caso con trario 1.3. REPRESENT AC ¸ ˜ AO D E MA TRIZES ESP ARSAS 15 1.3 Representa¸ c˜ ao de Matrizes Esparsas Ao represen tarmos uma matriz esparsa gostar ´ ıamos de utilizar o m ´ ınimo de mem´ oria, idealmen te ap enas a p osi¸ c˜ ao e o v alo r dos ENNs, mas ao mesmo temp o ter a maior flexibilidade poss ´ ıv el para acessar, mo dificar, ins erir ou remo v er um elemen to qualquer. Estes ob jetiv os s ˜ ao algo conflitan tes, o que motiv a o uso de div ersas represen ta¸ c˜ oes: Represen ta¸ c˜ ao est´ atica p or linhas : P ara uma matriz A, m × n com enn ( A ) = l , s˜ a o utilizados um ve tor real, aias ( k ) k ∈ L , um v etor in t eiro aij s ( k ) , k ∈ L = { 1 , . . . l } , e um segundo vetor de in teiros, aif ( i ) , i ∈ M . Os ve tores aias e aijs listam os v alo res e os ´ ındices de coluna dos ENN’s, linha p or linha. aif ( i ) nos d´ a o fim, ou a p osi¸ c˜ ao do ´ ultimo elemen to da linha i em aias e aij s . Represen ta¸ c˜ ao est´ atica p or colunas : P ar a uma matriz A, m × n com enn ( A ) = l , s˜ ao utilizados um v etor r eal, aj as ( k ) k ∈ L , um vetor in teiro aj is ( k ) , k ∈ L , e um segundo v etor de in teiros, aj f ( j ) , j ∈ N . Os vetores aj as e aj is listam os v alor es e o s ´ ındices de linha dos ENNs, coluna p or coluna. aj f ( i ) nos d´ a a p osi¸ c˜ ao do ´ ultimo elemen to da coluna j em aj as e aj is . Represen ta¸ c˜ ao de lista ligada p or linhas : Cada EN N corresp onde a uma c ´ elula con tendo: O v alor do ENN, o ´ ındice de coluna e um p on teiro para a c ´ elula do pr´ oximo ENN na linha. As c´ elulas dos ´ ultimos ENNs em cada linha con t´ em o p on t eiro n ulo, e um v etor de m p onte iros, ancor ai ( i ), nos d´ a a primeira c ´ elula de cada linha. Represen ta¸ c˜ ao de lista ligada p or colunas : Cada ENN corresponde a uma c ´ elula con tendo: O v alo r do ENN, o ´ ındice de linha e um p on teiro para a c ´ elu la do pr´ oximo ENN na coluna. As c ´ elulas dos ´ ultimos ENNs em c ada coluna cont ´ em o p onte iro n ulo, e um v etor de n p on t eiro s, ancor aj ( j ), nos d´ a a primeira c ´ elula de cada coluna. Represen ta¸ c˜ ao de rede : Cada ENN correspo nde a uma c ´ elula con tendo o v alor do ENN A j i , os ´ ındices i e j , e po n teiros para a c´ elula do pr´ oximo ENN na linha e na coluna. Dois vetores ancor ai ( i ) e ancor aj ( j ) con t´ em p onteiros para as primeiras c´ elulas em cada linha e coluna. Represen ta¸ c˜ ao de rede dupla : An´ aloga a repres en ta ¸ c˜ ao de rede , mas cada c ´ e lula con t ´ em al´ em de p o n teiros para a s pr ´ oximas c ´ elulas ao sul (pr´ o ximo E NN na coluna) e ao leste (pr´ oximo ENN na linha), ta mb ´ e m p on teiros para as c´ elulas ao o este e ao nort e , i.e. para os ENN anteriores na linha e na coluna. No exemplo 1 temos as div ersas represe n ta¸ c˜ oes da matriz: A = 102 104 201 301 304 405 501 502 503 , l = enn ( A ) = 9 . 16 CAP ´ ITULO 1. INTRODUC ¸ ˜ AO Represen ta¸ c˜ ao est´ atica p o r linhas: aias = h 102 104 201 301 304 405 501 502 503 i , aij s = h 2 4 1 1 4 5 1 2 3 i , aif = h 2 3 5 6 9 i . Represen ta¸ c˜ ao est´ atica p o r colunas: aj as = h 201 301 501 102 50 2 503 104 304 4 05 i , aj is = h 2 3 5 1 5 5 1 3 4 i , aj f = h 3 5 6 8 9 i . Represen ta¸ c˜ ao de lista ligada p or linhas: ancorai(1) → (2, 102, → ) (4, 104, ⊣ ) ancorai(2) → (1, 201, ⊣ ) ancorai(3) → (1, 301, → ) (4, 304, ⊣ ) ancorai(4) → (5, 405, ⊣ ) ancorai(5) → (1, 501, → ) (2, 50 2, → ) (3, 503, ⊣ ) Represen ta¸ c˜ ao de lista ligada p or colunas: ancora j(1) ancora j(2) ancora j(3) a ncora j (4) ancora j(5) ↓ ↓ ↓ ↓ ↓ (2, 2 01, ↓ ) (1, 102, ↓ ) (5, 503, ⊥ ) (1, 104, ↓ ) (4 , 405, ⊥ ) (3, 3 01, ↓ ) (5, 502, ⊥ ) (3, 304, ⊥ ) (5, 501, ⊥ ) Represen ta¸ c˜ ao em rede: ancora j(1) ancora j(2) ancora j(3) ancora j(4) ancora j(5) ↓ ↓ ↓ ↓ ↓ ancorai(1) → 1 2 102 ↓ → ! 1 4 10 4 ↓ → ! ancorai(2) → 2 1 201 ↓ ⊣ ! ancorai(3) → 3 1 301 ↓ → ! 3 4 304 ⊥ ⊣ ! ancorai(4) → 4 5 405 ⊥ ⊣ ! ancorai(5) → 5 1 501 ⊥ → ! 5 2 502 ⊥ → ! 5 3 503 ⊥ ⊣ ! 1.3. REPRESENT AC ¸ ˜ AO D E MA TRIZES ESP ARSAS 17 Exerc ´ ıcios 1. Pro ve que (a) ( AB ) ′ = B ′ A ′ . (b) ( AB ) − 1 = A − 1 B − 1 . (c) ( A ′ ) − 1 = ( A − 1 ) ′ . 2. Na represen ta¸ c˜ ao est´ a tica p or linhas, ´ e realmen te necess´ ario termos aif al ´ em de aias e aij s ? 3. Considere uma matriz esparsa de estrutura regular e conhecida, p or exemplo tri-diagonal, para a qual ba star ia conhecermos o v alor dos ENNs n uma dada seq¨ u ˆ encia, p or exemplo linha p or linha. Sup onha que um inteiro ou p on teiro o cupa 2 byte s e que um real o cupa 4 bytes . D ˆ e o co eficien te de uso de mem´ o ria de cada uma das outr as represen ta¸ c˜ oes em rela¸ c˜ ao a est´ a represen ta¸ c˜ ao minimal. 4. (a) Considere uma matriz esparsa A de densidade , i.e. fra¸ c˜ ao de elemen tos n˜ a o n ulos, α 2 . Sup onha que A est´ a r epresen tada em rede. Queremos adicionar um no v o ENN A j i ` a matriz. Supondo que os ENN est˜ ao aleatoriamen te distribu ´ ıdos, e tomando acesso a uma c ´ elula como o p era¸ c˜ ao elemen tar, qual a complexidade esperada desta op era¸ c˜ ao? Explique sucin tamen te como realizar a op era¸ c˜ ao. (b) Na s mesmas condi¸ c ˜ oes, queremos substituir duas linhas A i e A i +1 , resp ectiv amente, p elas com bina¸ c˜ oes lineares ˜ A i = c ∗ A i + s ∗ A i +1 e ˜ A i +1 = c ∗ A i +1 − s ∗ A i . Nov amen te queremos um algoritmo, descrito sum´ aria mas claramen te, e a complexidade espera da . Dicas e curiosidades: i. Assumindo que α << 1, o caso em que es tamos in teressados, a densidade esperada das nov as linhas ´ e 2 ∗ α . P or qu ˆ e? ii. O alg oritmo para a s egunda quest˜ ao dev e ser algo melhor que a mera rep eti¸ c˜ ao do algoritmo da primeira ques t˜ ao. iii. Esta transforma¸ c˜ ao linear, tomando as constantes c e s como o coseno e o seno de um ˆ angulo θ , ´ e uma “rota¸ c˜ ao de Giv ens”, a ser estudada no cap ´ ıtulo 3 . 5. Dados u e w n × 1, A e B n × n , e k ∈ N ∗ , prov e que (a) tr ( A + B ) = tr ( A ) + tr ( B ) . (b) tr ( AB ) = tr ( B A ). (c) tr( uw ′ ) = w ′ u . (d) t r( Auw ′ ) = tr( uw ′ A ) = w ′ Au . (e) ( u w ′ A ) k = (tr( uw ′ A )) k − 1 ( uw ′ A ). (f ) ( Auw ′ ) k = (tr( Auw ′ )) k − 1 ( Auw ′ ). 18 CAP ´ ITULO 1. INTRODUC ¸ ˜ AO Cap ´ ıtulo 2 F A TORAC ¸ ˜ AO L U Solu¸ c˜ ao de Sistemas Lineares 2.1 P erm uta¸ c ˜ oes e Op era¸ c˜ oes Elemen tares Uma matriz de p erm uta¸ c˜ ao ´ e uma matr iz obtida p ela p erm uta¸ c˜ ao de linhas ou colunas na matriz iden tidade. Realizar, na matriz iden tida de, uma dada p erm uta¸ c˜ ao de linhas, nos fornece a correspondente matriz de p ermuta¸ c ˜ ao de linhas; Analogamente , uma p erm uta¸ c˜ ao de colunas da iden tida de f ornece a correspo ndente matriz de p erm uta¸ c˜ ao de colunas. Dada uma (matriz de) permuta¸ c˜ ao de linhas, P e uma (matriz de) p erm uta¸ c˜ ao de colunas, Q , o corresp onden te v etor de ´ ındices de linha (coluna) p erm utados s˜ ao p = ( P 1 2 . . . m ) ′ q = h 1 2 . . . n i Q Lema 2.1 R e alizar uma p ermuta¸ c˜ ao de linhas (de c olunas) numa matriz qualquer A , de mo do a obter a matriz p ermutada ˜ A , e q uivale a multiplic´ a-la, ` a esquer da (` a dir eita), p ela c orr esp ondente matriz de p ermuta¸ c˜ ao de linha s (de c olunas). A d emais, se p ( q ) ´ e o c orr es p ondente vetor de ´ ındic es de linha (de c ol una ) p ermutados, ˜ A j i = ( P A ) j i = A j p ( i ) ˜ A j i = ( AQ ) j i = A q ( j ) i . 19 20 CAP ´ ITULO 2. F A TORAC ¸ ˜ AO LU Exemplo 1: Dadas a s matrizes A = 11 12 13 21 22 23 31 32 33 , P = 0 0 1 1 0 0 0 1 0 , Q = 0 1 0 0 0 1 1 0 0 , p = q = h 3 1 2 i , P A = 31 32 33 11 12 13 21 22 23 , AQ = 13 11 12 23 21 22 33 31 32 . Uma matriz quadrada, A, ´ e sim ´ etrica sse for igual a transp osta, is to ´ e, ss e A = A ′ . Uma p erm uta¸ c˜ ao sim ´ etrica de uma matriz quadrada A ´ e uma p ermuta¸ c ˜ ao da f o rma ˜ A = P AP ′ , onde P ´ e uma matriz de p erm uta¸ c˜ ao. Uma mat r iz quadrada, A , ´ e ortogonal sse sua in v ersa for igual a sua transp osta, isto ´ e, sse A − 1 = A ′ . Lema 2.2 ( a ) Matrizes de p ermuta¸ c˜ ao s˜ ao orto gonais. (b) Uma p ermuta¸ c˜ ao sim´ etric a de u ma matriz sim´ e tric a ´ e ainda uma matriz s im´ etric a. Estudaremos a seguir alguns alg o ritmos para solu¸ c˜ ao do sistema Ax = b . T ais algoritmos s˜ ao denominados diretos p ois, a menos do erro de arredondamen to, fornecem diretamen te a solu¸ c˜ ao do sistema. A ess ˆ encia destes algoritmos s˜ ao transforma¸ c˜ oes sobre o sistema que deixam inalteradas sua solu¸ c˜ ao. S˜ ao op era¸ c˜ oes elemen tares sobre uma mat riz, n × m , qualquer: 1. Multiplicar uma linha p or um escalar n˜ ao nulo. 2. Adicionar, a uma linha, uma outra linha da matriz. 3. Subtrair de uma linha, uma outra linha da mat r iz mu ltiplicada p or um escalar n˜ ao n ulo. Uma op era¸ c˜ ao elemen tar aplicada ` a matriz identidade I , n × n , pro duz a matriz elemen tar corresp onden t e, E . Lema 2.3 R e alizar uma op er a¸ c˜ ao elem entar so b r e uma m atriz qualquer, A , e quiva l e a multiplic´ a- la, ` a esquer da, p ela matriz e lementar c orr esp o ndente. Exemplo 3. A = 11 12 13 21 22 23 31 32 33 , E = 1 0 0 0 1 0 − 31 / 11 0 1 , E A = 11 12 13 21 22 23 0 32 − 12 ∗ 31 / 11 33 − 13 ∗ 31 / 11 . 2.2. M ´ ETODO D E GA USS 21 Lema 2.4 T o da matriz elementar ´ e invers ´ ıvel. A d emais, Ax = b ⇔ E Ax = E b . A matriz a umen tada corresp ondente ao sistema Ax = b , A n × n ´ e a matriz [ A b ], n × n + 1. Ob viamen te a matriz aumen tada do sistema E Ax = E b ´ e a matriz E [ A b ]. Uma matriz quadrada A ´ e dita triangular sup erior se to dos os elemen tos abaixo da diagonal principal s˜ ao n ulos, e ´ e dita triangular estritamen te sup erior se tamb ´ em os eleme n tos da diagonal s˜ ao n ulos. Analogamen te, definimos matriz triangular inferior e e stritamen te inferior . Assim, A ´ e • T riangular Sup erior ⇔ ( i > j ⇒ A j i = 0). • T riangular Estritamen te Sup erio r ⇔ ( i ≥ j ⇒ A j i = 0). • T riangular Inferior ⇔ ( i < j ⇒ A j i = 0). • T riangular Estritamen te Inferior ⇔ ( i ≤ j ⇒ A j i = 0). Os m ´ etodos diretos que estudaremos funcionam p or ser f ´ acil resolv er um sis tema Ux = b se U ´ e triangula r superior, isto ´ e Em um tal siste ma p o demos calcular p or substitui¸ c˜ ao, nesta ordem, as comp onentes x n , x n − 1 , . . . , x 1 , p ois x n = b n /U n n x n − k = ( b n − k − n X j = n − k + 1 U j n − k x j ) /U n − k n − k T al m´ eto do funciona se U j j 6 = 0 , ∀ j ∈ N . Como det ( U ) = Q n j =1 U j j , esta condi¸ c˜ ao eq uiv a le a termos um sistema b em determinado. Estudaremos a seguir c omo lev ar, atrav ´ es de op era¸ c˜ oes elemen tares, um sistema qualquer ` a forma triangular. 2.2 M ´ eto do de Gauss O m ´ etodo de Gauss lev a o sistema ` a forma triangular atrav ´ es de op era¸ c˜ o es elemen ta r es do tip o 3. T en ta remos faz ˆ e- lo us ando, nesta ordem, a primeira linha pa r a an ular os elemen t o s abaixo da diagonal na primeira coluna, a segunda linha pa ra a n ular o s eleme n tos abaixo da diagonal na segunda coluna, etc... O exemplo 2 ilustra o pro cesso. Indicamos tam b ´ em os fa tores p elos quais m ultiplicamos cada linha antes de subtra ´ ı-la de outra. Exemplo 4. h 0 A 0 b i = 2 1 3 1 2 3 6 2 4 4 6 6 1 2 → h 1 A 1 b i = 2 1 3 1 0 2 3 1 0 2 0 4 1 → 22 CAP ´ ITULO 2. F A TORAC ¸ ˜ AO LU h 2 A 2 b i = 2 1 3 1 0 2 3 1 0 0 − 3 3 → x = 1 2 − 1 Em cada etapa denominaremos a linha que est´ a sendo m ultiplicada e subtra ´ ıda ` as demais de linha pivˆ o , seu elemen to diagonal de elemen to pivˆ o e os fatores de m ultiplica¸ c˜ ao de m ulti- plicadores . Posteriormen te fa r emos uso dos multiplicadores utilizados no pro cesso e, p ortanto, dev emos armazen´ a- los. Com este fim, defin imos as matrizes, n × n , 1 M , 2 M , . . . n − 1 M = M , onde : Se j ≤ k e i > j , en t˜ ao k M j i ´ e o multiplic ador utilizado na k - ´ esima etapa pa r a anular o elemen to na i -´ esima linha e j -´ esima coluna; Caso con trario, k M j i = 0. Observ e que os elemen tos n˜ a o n ulos de k M correspondem a elemen tos n ulo s em k A , e vice-v ersa. P o demos p ois p oupar mem´ oria, guardando uma ´ unica matriz, k A + k M . Assim, no Exemplo 4, h k A + k M | k b i , k = 0 , 1 , 2 , p o de ser r epresen tado como: 2 1 3 1 2 3 6 2 4 4 6 6 → 2 1 3 1 1 2 3 1 2 2 0 4 → 2 1 3 1 1 2 3 1 2 1 − 3 3 2.3 Piv ot e amen to Consideremos a hip´ otese do surgimen to de um zero na p osi¸ c˜ ao do pivˆ o da etapa seguin te do pro cesso de triangula riza¸ c˜ ao, isto ´ e, em k − 1 A a n ula-se o elemen to k − 1 A k k . Se na coluna k − 1 A k houv er algum eleme n to n˜ a o nulo na linha l , l > k , p o demos p erm utar as linhas k e l e con tinuar o pro cess o de triangulariza¸ c˜ ao. Uma p ermuta¸ c˜ ao de linhas, para tro car o e lemen to pivˆ o a ser utilizado, denomina- se um piv oteamen to . A cada etapa queremos lem br a r-nos de quais os piv o teamen to s realizados duran te o processo. P ara tan to, gua rdamos os vetores de ´ ındices de linha p erm utados da p erm uta¸ c˜ ao corren te em rela¸ c˜ a o ao sistema original. Es tes s˜ ao os v etores de p erm uta¸ c˜ ao, 1 p , 2 p , . . . n − 1 p = p . No que ta nge ao armazenamen t o dos m ultiplicadores, dev emos con v encionar se estes ser˜ ao ou n˜ ao p ermutados, junto com as resp ectiv a s linhas de A + M , nas op era¸ c˜ oes de piv oteamento. Adota r emos, p or ho ra, a conv en¸ c˜ ao de SIM, p erm ut´ a-los, junto com os pivoteame n tos. O exemplo 5 ilustra o pro cesso pa r a uma matriz de dimens˜ a o k = 4, apresen tando a matriz h k A + k M i jun tamen te com o v etor de p erm uta¸ c˜ ao, k p para cada etapa da triangulariza¸ c˜ ao: 2 1 9 − 1 1 3 7 7 2 8 4 2 3 9 6 6 1 2 3 4 → 3 9 6 6 1 / 3 0 5 5 2 / 3 2 0 − 2 2 / 3 − 5 5 − 5 4 2 3 1 → 2.3. PIV OTEAMENTO 23 3 9 6 6 2 / 3 − 5 5 − 5 2 / 3 − 2 / 5 2 − 4 1 / 3 0 5 5 4 1 3 2 → 3 9 6 6 2 / 3 − 5 5 − 5 1 / 3 0 5 5 2 / 3 − 2 / 5 2 / 5 − 6 4 1 2 3 Observ a¸ c˜ ao 2.1 Note que se o sistema ´ e bem determinado, um piv oteamen to que p ermite o prosseguimen to do pro cesso de triangulariza¸ c˜ ao ´ e sempre p oss ´ ıvel: Se na k - ´ esima etapa, para l = k . . . n , k − 1 A k l = 0, isto ´ e o elemen to na p o si¸ c˜ ao pivˆ o e to dos os elemen tos abaixo dele na coluna k − 1 A k se an ulam, en t˜ ao as linhas k − 1 A l , l = k . . . n , s˜ ao linearmen te dependen tes e det ( k − 1 A ) = 0 ⇒ det ( 0 A ) = 0, o que contraria a hip´ o tese do sistema ser b em determinado. Observ a¸ c˜ ao 2.2 Assuma sab ermos de antem˜ a o um v etor de permuta¸ c˜ ao, n − 1 p = p , vi´ av el no pro cesso de triang ula riza¸ c˜ ao de um dado sistema [ 0 A 0 b ]. Neste caso, po der ´ ıamos p ermutar as linhas do sistema orig inal como indicado no v etor de p erm uta¸ c˜ ao, obtendo um nov o sistema P [ 0 A 0 b ], cujas equa¸ c˜ oes s˜ ao a s mesmas que as do sistema original, a menos da ordem em que est˜ ao escritas. P o der ´ ıamos en t˜ ao triangularizar este sistema sem necessidade de nenh um piv o teamen to , obtendo ao final o mesmo sistema equiv alen te, [ n − 1 A n − 1 b ]. Note que a triangulariza¸ c˜ ao da matriz dos co eficien tes de um sistema ´ e completamen te inde- p enden t e do v etor dos termos indep enden tes. Sup onha termos triangular izado o sistem a [ 0 A 0 b ], isto ´ e, que temos um sistema equiv alen te e triangular [ n − 1 A = U n − 1 b ], tendo sido preserv ados os m ultiplicadores e as p erm uta¸ c˜ oes utilizadas, M e p . Se fo r necess´ ario resolv er um segundo sistema [ 0 A 0 b ], que difere do primeiro ap enas p elo vetor dos termos indep enden tes, n˜ ao ser´ a necess´ ario re- triangularizar a matriz A ; Bastar´ a efetuar no nov o v etor de termos indep enden tes, 0 c , as op era¸ c˜ oes indicadas pelo v etor de permuta¸ c ˜ ao p e p ela matriz de m ultiplicadores M . Uma p ol ´ ıtica, que mais tarde demonstraremos ´ ut il, ´ e realizarmos piv oteamen t o s para colo car como elemen to pivˆ o, em cada etapa, o elemen to de m´ aximo m´ odulo. Esta estrat´ egia, o piv otea- men t o parcial , garante termos to dos os m ultiplicador es | M j i | ≤ 1. O piv o t eamento parcial ´ e de fundamen tal imp ortˆ a ncia para a estabilidade n um´ erica do pro cesso, con trola ndo a propaga¸ c˜ ao de erros de arrendondamen to. Observ a¸ c˜ ao 2.3 P ara realizar uma op era¸ c˜ ao de pivoteamen to n˜ ao ´ e necess´ ario efetiv amen te per- m utar linhas da matriz A : Basta, na k - ´ esima etapa da triangulariza¸ c˜ ao utilizar o ´ ındice k − 1 p ( i ) ao inv ´ es do ´ ındice de linha i . Observ a¸ c˜ ao 2.4 Uma maneira alternativ a de guardar pivoteamen tos realizados ao longo do pro- cesso de triangulariza¸ c˜ ao ´ e o v etor de piv oteamen t os , t , onde t ( j ) = i significa que ao elimin- armos a coluna j p erm utamo s para a p osi¸ c˜ ao de piv o (linha j ) o elemen to na linha i . O ve tor de piv o teamen to s do exemplo an terior ´ e h 4 1 2 3 i ′ . Com o v etor de piv oteamen to s adotaremos a con v en¸ c ˜ ao de N ˜ AO p erm utar os m ultiplicadores na coluna j M , nos pivoteamen tos k > j . 24 CAP ´ ITULO 2. F A TORAC ¸ ˜ AO LU 2.4 Lema da F atora¸ c˜ ao Lema 2.5 (da F atora¸ c˜ ao) Seja 0 A uma matriz invers ´ ıvel tr iangulariz´ avel p elo m ´ eto do de Gauss sem nenhum pivote am e n to e sejam, c on f o rme a nomencla tur a adotada, A = o A, 1 A, . . . n − 1 A , e 1 M , 2 M , . . . n − 1 M = M , r e sp e ctivamen te, a k -tr a nsformada da matriz A e a k - ´ esima matriz dos multiplic ador es. F azend o U = n − 1 A e L = M + I , temos que L e U s˜ ao matrizes triangular es, r esp e c tivam ente inferior e sup erior, e que A = LU . Demonstra¸ c˜ ao. V erifiquemos inicialmen te que a transfor ma ¸ c˜ a o linear que lev a k − 1 A em k A ´ e da da p or k T , i.e. k A = k T k − 1 A , onde k T = 1 0 0 . . . 1 . . . . . . − M k k +1 . . . . . . 0 0 − M k n 1 , de mo do que U = n − 1 A = n − 1 T n − 2 T . . . 2 T 1 T A = T A . Observ ando ainda que k T ´ e in v ers ´ ıv el e que k T − 1 = k L = 1 0 0 . . . 1 . . . . . . + M k k +1 . . . . . . 0 0 + M k n 1 , Ademais, temos que T − 1 = 1 T − 1 2 T − 1 . . . n − 1 T − 1 = 1 L . . . n − 1 L e ´ e f´ acil v erificar que 1 L 2 L . . . n − 1 L = L , donde A = LU . Q.E.D. T eorema 2.1 ( LU) Seja A uma ma triz in v ers ´ ıvel n × n . Ent˜ ao existe uma (matriz de) p er- muta¸ c˜ ao de linhas P de mo do que ˜ A = P A ´ e triangulariz´ a vel p elo m´ eto do de Gauss e ˜ A = LU . Demonstra¸ c˜ ao. O teorema segue trivialmen te do lema da fatora ¸ c˜ ao e das observ a¸ c˜ oes 2.1 e 2.2. A solu¸ c˜ a o de um sis tema linear Ax = b p o de ser expressa diretamen te em termos da fatora¸ c˜ ao LU da matriz dos co eficien tes, i.e., se ˜ A = P A = LU , en t˜ ao P ′ LU x = b , e x = U − 1 L − 1 P b . As sim, em muitas aplica¸ c˜ oes, o conhecime n to expl ´ ıcito de A − 1 p o de ser substitu ´ ıdo com v an tagem pelo conhecimen to da fatora¸ c˜ ao da matriz. 2.5. O M ´ ETODO D E DOOLITTLE 25 Observ a¸ c˜ ao 2.5 Considere os dois algo r it mo s seguin tes, o de substitui¸ c˜ ao e o de multilpica¸ c ˜ ao p ela in v ersa, para solu¸ c˜ ao do sistema U x = b : O primeiro alg o ritmo acessa a matriz U p or linha, enquan to o segundo acessa a matriz U p or 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 M ´ e t o d o de Do olittle Usando o T eorema L U p o demos determinar L e U diretamen te da equa¸ c˜ ao de decomp osi¸ c˜ ao, LU = A , tomando, nesta ordem, para i = 1 . . . n , as equa¸ c˜ oes das comp o nen tes de A na i - ´ esima linha e na i -´ esima coluna, isto ´ e, para i = 1 . . . n ( L i U = A i LU i = A i temos para i = 1 . . . n ( para j = i . . . n U j i = A j i − P i − 1 k =1 M k i U j k para j = i + 1 . . . n M i j = ( A i j − P i − 1 k =1 M k j U i k ) /U i i Note que s´ o escrev emos as equa¸ c˜ oes para os termos inc´ o gnitos, isto ´ e, ou acima da diagonal em U, e a baixo da diago na l em L. T am b ´ em as somat´ orias fo r a m in terrompidas quando os termos remanescen tes s˜ ao to dos n ulos. O c´ a lculo do elemen to ( M + U ) j i , en v olv e, na ordem prescrita, ap enas elemen tos j´ a calculados de ( M + U ). Ademais, o c´ alculo de ( M + U ) j i ´ e a ´ ultima o casi˜ ao em que se necessita os elemen tos A j i ; p ortanto p o demos armazenar ( M + U ) j i no lugar de A j i . Estas s˜ ao as matrizes A = 0 D , . . . , n D = M + U . Exemplo 6 - Usando o m´ eto do de Do olittle para triangularizar a matriz do Exemplo 4, onde n˜ ao h´ a necessidade de piv oteamen to, temos 26 CAP ´ ITULO 2. F A TORAC ¸ ˜ AO LU 0 D = A = 2 1 3 2 3 6 4 4 6 → 2 1 3 2 3 6 4 4 6 → 2 1 3 1 3 6 2 4 6 = 1 D → 2 1 3 1 2 3 2 4 6 → 2 1 3 1 2 3 2 1 6 = 2 D → 2 1 3 1 2 3 2 1 − 3 = 3 D = M + U P a ra realizar os piv oteamentos nec ess´ arios ` a passagem de k D a k +1 D ´ e neces s´ ario examinar o s p oss ´ ıveis elemen tos pivˆ os nas linhas i = k . . . n , isto ´ e, os elemen tos em k A k . P ara tan to, basta calcular, para i = k . . . n , k v i = 0 A k i − k − 1 X l =1 M l i U k l . Exemplo 7 - T riangularizando p elo m ´ eto do de Do o lit t le a matriz, A , com piv oteamen to par cial, temos os k p, k D , k v , para k = 0 . . . n , como segue: 1 2 3 4 2 1 9 − 1 1 3 7 7 2 8 4 2 3 9 6 6 2 1 2 3 → 4 2 3 1 3 9 6 6 1 / 3 3 7 7 2 / 3 8 4 2 2 / 3 1 9 − 1 ∗ 0 2 − 5 → 4 1 3 2 3 9 6 6 2 / 3 − 5 5 − 5 2 / 3 − 2 / 5 4 2 1 / 3 0 7 7 ∗ 2 5 → 4 1 2 3 3 9 6 6 2 / 3 − 5 5 − 5 1 / 3 0 5 5 2 / 3 − 2 / 5 2 / 5 2 → 4 1 2 3 3 9 6 6 2 / 3 − 5 5 − 5 1 / 3 0 5 5 2 / 3 − 2 / 5 2 / 5 − 6 2.6. COMPLEXID ADE 27 2.6 Complexidade Con temos agora o n´ umero de op era¸ c˜ oes a ritm ´ eticas necess´ a rias ` a triangulariza¸ c˜ ao de uma matriz de co eficien tes e ` a solu¸ c˜ ao de um sistema linear. Na fa se de triangulariza¸ c˜ ao da matriz dos co eficien tes, ve mos que o c´ alculo de k A a partir de k − 1 A requer ( n − k ) divis˜ oes e ( n − k ) 2 somas e pro dutos. No total s˜ ao p ortanto requeridos n − 1 X k =1 ( n − k ) = n ( n − 1) / 2 divis˜ oes, e n − 1 X k =1 ( n − k ) 2 = n ( n 2 − 1) / 3 + n ( n − 1) / 2 pro dutos e subtra¸ c˜ oes. isto ´ e, s˜ a o necess ´ arios da ordem de n 3 / 3 + O ( n 2 ) pro dutos e subtra¸ c˜ oes, e n 2 / 2 + O ( n ) divis˜ oes. Analogamen te, dada a matriz dos multiplic adores e o v etor das p ermuta¸ c˜ oes, M e p , o trata- men to de um v etor de termos indep enden tes requer n ( n − 1) / 2 pro dutos e subtra¸ c˜ oes. Finalmen te, a solu¸ c˜ ao do sistema linear triangularizado requer n divis˜ oes e n ( n − 1) / 2 pro dutos e subtra¸ c˜ oes. Exerc ´ ıcios 1. Comen te como cada forma de represen ta¸ c˜ ao da matriz A , por linhas ou p o r colunas, fa vorec e o uso de um dos algoritmos apresen tados na observ a¸ c˜ ao 2 .5 . Escrev a algoritmos similares para a solu¸ c ˜ ao do sistema Lx = b . 2. Programe e implemen te, em lingua gem C, C++, ou FOR TRAN-90, fun¸ c˜ oes para: (a) F atora¸ c˜ ao LU com piv oteamento parcial. (b) So lu¸ c˜ ao dos siste mas Lx = b e U x = b , (c) Um argumen to adicional dev e indic ar a forma de represen ta¸ c˜ ao das matrizes, dens a, est´ atica por linha, ou est´ a t ica p o r coluna. (d) No caso da represen ta¸ c˜ ao densa, um segundo argumen to dev e indicar o uso do v etor de p ermuta¸ c˜ oes o u pivoteamen tos. No caso da s represen ta¸ c˜ oes est´ aticas, escrev a o programa como lhe parecer mais con v eniente . 3. Mostre que calcular explicitamen te a inv ersa de A implic a s ab er resolv er n sistemas lineares, Ax = I j . Dada a fatora¸ c˜ ao A = LU , qual o custo de computar explicitamen te a in v ersa A − 1 ? 28 CAP ´ ITULO 2. F A TORAC ¸ ˜ AO LU Cap ´ ıtulo 3 RESUMO DE TEORI A DO S GRAF O S 3.1 Concei t os B´ asi c os Um grafo ´ e um par ordenado G = ( V G , Γ G ) onde o primeiro elemen to ´ e um conjun to finito, o conjun to de v´ ert ices , e o segundo elemen to ´ e uma fun¸ c˜ ao Γ G : V G 7→ P ( V G ),no conjun to das partes de V G , a fun¸ c˜ ao de filia ¸ c˜ ao . T omaremos V G um conjun to indexado, V G = { v 1 , v 2 , . . . v n } ou ent˜ ao tomaremos V G como sendo o pr´ oprio conjun to dos n primeiros in teiros positivos , N = { 1 , 2 , . . . n } . P a ra n˜ ao sobrecarregar a nota¸ c˜ ao escre v eremos, quando n˜ ao houver a m big ¨ uidade, ( V G , Γ G ) como ( V , Γ). ´ E com um represen tarmos um grafo p or conjun to de p on tos (os v ´ e rtices) e um conjun to de arestas (setas) que v˜ ao de cada v ´ ertice para os seus filho s, is to ´ e, de cada v ∈ V para os elemen tos em Γ( v ). P o demos definir o grafo atr a v ´ es dos seus v ´ ertices e de suas arestas, G = ( V G , A G ), onde cada aresta ´ e um par ordenado de v´ ertices e ( i, j ) ∈ A G ⇔ j ∈ Γ G ( i ). Uma terceira maneira de definir um grafo ´ e p elo par G = ( V G , B G ) o nde B G ´ e a matriz de adjacˆ encia , a matriz Bo oleana tal que B j i = 1 ⇔ j ∈ Γ( i ). Exemplo 1: Considere o grafo de v ´ ertices N = { 1 , 2 , 3 , 4 , 5 , 6 } e fun¸ c˜ ao de filia¸ c˜ ao Γ(1) = ∅ , Γ(2) = { 2 } , Γ(3) = ∅ , Γ(4) = { 3 , 5 , 6 } , Γ(5) = { 3 , 4 , 5 } e Γ(6) = { 5 } . S uas arestas e matriz de adjac ˆ encia s˜ a o, A G = { (2 , 2) , (4 , 3) , (4 , 5) , (4 , 6) , (5 , 3 ) , (5 , 4) , (5 , 5) , (6 , 5) } , e B G = 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1 3 ← 5 ← ֓ ↑ ր ւ ↑ ֒ → 2 4 → 6 Dado um sub conjunto de v ´ ertices W ⊂ V , definimos Γ( W ) ≡ ∪ w ∈ W Γ( w ). Definimos tam b ´ em 29 30 CAP ´ ITULO 3. RESUMO DE TEORIA DO S GRAFOS Γ 0 ( i ) = { i } , Γ 1 ( i ) ≡ Γ( i ) e, para k > 1 , Γ k ( i ) ≡ Γ(Γ k − 1 ( i )). Estes s˜ ao, para k = 1 , 2 , 3 , . . . os filhos, netos, bisnetos, etc. do v ´ ertice i . F inalmen te definimos os descenden tes de i p or ¯ Γ( i ) = ∪ ∞ k =0 Γ k ( i ), e o fec ho transitiv o ¯ G = ( V G , ¯ Γ G ). Exemplo 2: Damos a matriz de adjac ˆ encia de um grafo , e do respectiv o fec ho tra nsitivo: B = 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 , ¯ B = 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 Dado o grafo G = ( V , Γ) definimos a fun¸ c˜ ao de paternidade i ∈ Γ − 1 ( j ) ⇔ j ∈ Γ( i ). Definimos tamb ´ e m seu grafo in v erso , G − 1 = ( V , Γ − 1 ). Lema 3.1 D ado um gr afo de fi nido p or sua matriz de adjacˆ encia , G = ( N , B ) , seu g r afo inverso ´ e G − 1 = ( N , B ′ ) . Um sub-grafo de G = ( V , A ) ´ e um grafo G ′ = ( V ′ , A ′ ), onde V ′ ⊂ V e A ′ ´ e um sub conjun to de arestas de A que tem ambos os v ´ ertices em V ′ . O s ub-grafo induzido por um subconjunto de v´ ertices V ′ ´ e G = ( V ′ , A ′ ) onde A ′ ´ e m´ aximo, e o sub-grafo induzido p or um subconjunto de arestas A ′ ´ e G = ( V ′ , A ′ ) onde V ′ ´ e m ´ ınimo. Uma aresta que parte e che ga no mesmo v´ ertice ´ e dita um loop . Duas arestas, ( i, j ) e ( k , h ), s˜ ao ditas cont ´ ıguas se a primeira c hega no v ´ ertice de que parte a segunda, isto ´ e se j = k . Um passeio ´ e uma seq¨ u ˆ encia n˜ ao v a zia e finita de arestas con t ´ ıguas. Um c ircuito ´ e um passeio que parte e chega no mesmo v´ ertice, isto ´ e, o primeiro v ´ ertice da primeira aresta ´ e o segundo v ´ e rtice da ´ ultima ar esta. Uma trilha ´ e um passeio o nde n˜ ao se rep ete nenh uma aresta e um caminho ´ e uma trilha na qual n˜ ao h´ a (subseq¨ u ˆ encias que sejam) circuitos. Uma trilha na q ual o ´ unico circuito ´ e to da a trilha ´ e uma ciclo . Notemos que um passeio C = ( w 0 , w 1 ) , ( w 1 , w 2 ) , . . . ( w k − 1 , w k )), ´ e igualmen te b em determinado p ela seq¨ u ˆ encia de seus v ´ ertices C = ( w 0 , w 1 , w 2 , . . . w k ). T er ´ ıamos assim, no Exemplo 1, exemplos de: • lo op: ((2 , 2)). • pa sseio: ((4 , 5) , (5 , 5) , (5 , 5) , (5 , 4 ) , (4 , 5). • circuito: (5 , 5 , 4 , 6 , 5 , 5). • t r ilha: (5 , 4 , 6 , 5 , 5 , 3). • caminho: (6 , 5 , 4 , 3). 3.2. RELAC ¸ ˜ OES DE ORDEM 31 • ciclo: (5 , 4 , 6 , 5) ou (5 , 5). Um grafo ´ e ac ´ ıclico se n˜ ao con t ´ em ciclos. Uma ´ arvore de raiz v ´ e um grafo ac ´ ıclico, H = ( V H , Γ H ) , v ∈ V H , onde to dos os v ´ e rtices t ˆ em no m´ aximo um pai e a p enas a raiz n˜ ao te m pai. Os v ´ ertices sem filhos de uma ´ arv ore dizem-se folhas da ´ a r v o r e. Uma cole¸ c˜ ao de ´ arvores ´ e denominada floresta . Uma floresta cobre um grafo G sse ´ e um subgraf o de G que con t ´ em to dos os seus v´ ertices. Seguem exemplos de florestas que cobrem o grafo do Exemplo 1, estando assinaladas as ra ´ ızes. 1 3 5 ↑ ւ ↑ 2 4 6 , 1 3 5 ↑ ր 2 4 → 6 Lema 3.2 D ada uma ´ arvo r e, H = ( V , Γ) , de r a i z v , e um v ´ ertic e w ∈ V , existe um ´ unic o p asseio que p arte de v e termina em w , a sab er, ( v , Γ − k ( w ) , . . . Γ − 2 ( w ) , Γ − 1 ( w ) , w ) . A de mais, este p ass e io ´ e um c aminho. 3.2 Rela¸ c ˜ o e s de Ordem Uma ordem n um conjun to S ´ e uma rela¸ c˜ ao, ≤ , tal que ∀ a, b, c ∈ S , temos que 1. a ≤ a . 2. a ≤ b ∧ b ≤ c ⇒ a ≤ c . i.e., uma rela¸ c˜ ao r eflexiv a e transitiv a . Alternativ amen te denotaremos a ≤ b p or b ≥ a . Sendo = a rela¸ c˜ ao iden tidade e 6≤ a nega¸ c˜ ao da rela¸ c˜ ao de ordem, dizemos que a ordem ´ e • t otal , sse a 6≤ b ⇒ b ≤ a . • parcial , sse ( a ≤ b ∧ b ≤ a ) ⇒ a = b . • b oa , se ´ e parcial e total. Lema 3.3 D ado um gr afo, G = ( N , Γ) , a fun¸ c˜ ao de desc end ˆ encia, ¯ Γ , define uma or dem em seus v´ ertic es, a or de m natur al, ≤ , definida p or p or j ≥ i ⇔ j ∈ ¯ Γ( i ) . N ote, p or´ em, que a or dem natur al n˜ ao ´ e, em ger al, nem p a r cial nem total. Exemplo 3: 32 CAP ´ ITULO 3. RESUMO DE TEORIA DO S GRAFOS Nos graf os seguin t es, de matrizes de adjac ˆ encia B 1 , B 2 , B 3 e B 4 , 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 , 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 , 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 , 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 temos ordens naturais • em G 1 : Nem parcial, p ois 1 ≤ 2 ≤ 1, nem total, po is 1 6≤ 3 6≤ 1. • em G 2 : T otal, mas n˜ ao parcial, p ois 1 ≤ 4 ≤ 1 . • em G 3 : P arcial, mas n˜ ao total, po is 2 6≤ 3 6≤ 2. • em G 4 : Boa. Uma equiv alˆ encia num conjun to S ´ e uma rela¸ c˜ ao, ∼ , tal que ∀ a, b, c ∈ S : 1. a ∼ a . 2. a ∼ b ∧ b ∼ c ⇒ a ∼ c . 3. a ∼ b ⇒ b ∼ a . i.e., uma rela¸ c˜ ao reflexiv a, transitiv a e sim ´ etrica . A classe de equiv alˆ encia de um elemen to qualquer, a ∈ S , ´ e o sub-conjunto de S : [ a ] = { x ∈ S | x ∼ a } . Uma parti¸ c˜ ao de um conjun to S ´ e uma cole¸ c˜ ao P de sub-conjun tos n˜ ao v azios de S tal que: 1. ∀ X, Y ∈ P , X 6 = Y ⇒ X ∩ Y = ∅ . 2. ∪ X ∈ P X = S . i.e., uma cole¸ c˜ a o de conjun t o s disjun tos que reunidos ´ e igual a S . Lema 3.4 D ado S , um c o njunto munido de uma or dem, ∀ a, b ∈ S , a ∼ b ⇔ a ≤ b ∧ b ≤ a , defin e uma r ela¸ c˜ ao d e e quivalˆ en c ia. Esta ´ e a e quivalˆ encia induzida p ela or dem . Dado S um c onjunto munido de uma e quivalˆ encia, o c onjunto das classes de e q uiva lˆ encia em S ´ e uma p arti¸ c˜ ao de S . As c omp onen t es fortemen te conexas , CF C, de um grafo G s˜ ao as classes de equiv al ˆ encia induzida p ela ordem natural nos v ´ ertices de G . G ´ e dito fortemen te conexo sse p ossui uma ´ unica CF C. Exemplo 4: As CFC dos gra fos do Exemplo 3 s˜ a o: 3.2. RELAC ¸ ˜ OES DE ORDEM 33 • em G 1 : ˜ V = {{ 1 , 2 } , { 3 } , { 4 } } . • em G 2 : ˜ V = {{ 1 , 2 } , { 3 , 4 }} . • em G 3 e G 4 : ˜ V = { { 1 } , { 2 } , { 3 } , { 4 }} . O grafo reduzido , de um gra fo G = ( V , Γ), ´ e o grafo G = ( ˜ V , ˜ Γ), que tem p or v´ ertices a s CF Cs de G : ˜ V = { V 1 , V 2 , . . . V k } , e a fun¸ c˜ ao de filia¸ c˜ ao, ˜ Γ, definida p or V s ∈ ˜ Γ( V r ) ⇔ ∃ i ∈ V r , j ∈ V s | j ∈ Γ( i ) , ( V r 6 = V s ) . Exemplo 5: As matrizes de adjacˆ encia dos grafo s reduzidos dos g rafos do Exemplo 3, com o s v´ ertices corresp ondendo as CF Cs na ordem em que aparecem no exemplo anterior, s˜ ao ˜ B 1 , ˜ B 2 , ˜ B 3 e ˜ B 4 : 0 1 0 0 0 0 0 0 0 , " 0 0 0 0 # , 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 , 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 . Dado um conjun to S e ≤ u ma ordem em S , a ordem reduzida ´ e a rela¸ c˜ ao de ordem no conjun to das classes (da equiv al ˆ encia induzida p ela ordem ≤ ), ˜ S , definida p or ∀ X, Y ∈ ˜ S , X ≤ Y ⇔ ∃ x ∈ X , ∧∃ y ∈ Y | x ≤ y . Lema 3.5 A or dem r e duzida (n a s CFCs) de u m gr a fo G = ( V , Γ) , ´ e a or de m natur al do gr afo r e duzido ˜ G = ( ˜ V , ˜ Γ) , i.e., se ˜ V = { V 1 , . . . V k } , V r ≤ V s ⇔ V s ∈ ¯ ˜ Γ( V r ) ⇔ ∃ i ∈ V r , j ∈ V s | j ∈ ¯ Γ( i ) ⇔ ∃ i ∈ V r , j ∈ V s | j ≥ i . A demais, 1. A or dem natur al de G ´ e p a r cial sse, a menos de l o ops, G ´ e ac ´ ıclic o. 2. Gr afos r e duzidos s˜ ao ac ´ ıclic os e or den s r e duzidas s˜ ao p ar ciais. T eorema 3.1 ( H offman) : Um gr af o G = ( V , Γ) ´ e fort emente c onexo sse dado q ualq uer sub- c onjunto pr´ oprio dos v´ ertic es W ⊂ V , W 6 = V , houver uma ar esta de um v´ ertic e em W p ar a um v´ ertic e for a de W . 34 CAP ´ ITULO 3. RESUMO DE TEORIA DO S GRAFOS Demonstra¸ c˜ ao: Se houv er W um subconjunto pr´ oprio de V tal que Γ( W ) = ∅ , en t˜ ao n˜ ao h´ a caminho de nenh um v ´ ertice w ∈ W para nenhu m v ´ ertice v ∈ V , e G n˜ ao ´ e fortemen te conexo. Presup ondo a condi¸ c˜ ao 6 ∃ W 6 = V | Γ( W ) = ∅ , pro vem os que existe um caminho do v ´ ertice w ao v´ ertice v , ∀ w , v ∈ V . T omemos inicialmen te W 0 = { w } . A condi¸ c˜ ao garante a exist ˆ encia de um caminho de comprimen to (n ´ umero de arestas) 1 de w a algum v´ ertice x 1 6 = w . Se x 1 = v a pr ov a est´ a completa. Caso con t r´ ario tomemos W 1 = { w , x 1 } . A condi¸ c˜ ao gara n te a exist ˆ encia de um caminho c 2 de comprimen to | c 2 | ≤ 2 de w para algum v ´ ertice x 2 6 = w , x 1 . Rep etindo o argumento at´ e obtermos x k = v , k < n , conclu ´ ımos a demonstra¸ c˜ a o, QED. Dado um conjun to S , m unido de uma o r dem ≤ , a ordem de S , uma b o a ordem, < =, em S ´ e dita uma ordem co eren te (com ≤ ) sse: 1. ∀ a, b ∈ S, a ≤ b ∧ b 6≤ a ⇒ a < = b . 2. ∀ a, b, c ∈ S, a < = b < = c ∧ a ∼ c ⇒ a ∼ b ∼ c . O primeiro crit ´ erio de co erˆ encia determina que o reordenamen to se subor dine ` a ordem parcial do grafo reduzido; O segundo crit´ erio determina que se discriminem (n˜ ao se misturem) v ´ ertices em CFC s incompar´ av eis p or ´ em distin tas. Uma b oa ordem, ou reordenamen to, no conjunto N = { 1 , 2 , . . . n } , q 1 < = q 2 < = . . . < = q n , corresp onde a um ve tor de p erm uta¸ c˜ ao q = [ q 1 , q 2 , . . . q n ] = [ σ ( 1 ) , σ (2) , . . . σ ( n )]. Um reordena- men to co eren te dos v´ ertices de um grafo G ´ e um reordenamen to coerente com a ordem natural do grafo. Um reordenamen to co eren te num gra fo ac ´ ıclico ´ e tamb ´ em dito um (re) ordenamen to top ol´ ogico ( do s v ´ ertices) deste graf o . Exemplo 6: Listamos a seguir alguns reordenamen tos nos grafo s do Exemplo 3, indicando s e satisfazem aos dois crit ´ erios de co erˆ encia. No grafo G 1 : 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 2 : q = [3 , 4 , 1 , 2] (1 , 2), q = [1 , 3 , 2 , 4] (1). No grafo G 3 : q = [1 , 3 , 2 , 4] (1 , 2), q = [1 , 2 , 3 , 4] (1 , 2), e este s s˜ ao os ´ unicos reordenamen tos co erentes . No g rafo G 4 : O ´ unico reordenamen to co eren te ´ e q = [1 , 2 , 3 , 4]. P a ra reordenar co erentem en te os v´ ertices de um grafo precisamos p o is determinar o graf o reduzido, e no grafo reduzido uma ordem t o p ol´ ogica. Esta tarefa p o de ser lev ada a cab o com o algoritmo de T arjan, a ser visto a seguir. 3.3 Busca e m Profun didade A busca em profundidade ´ e um pro cedimen to que nos p ermite v isitar, a partir de um de terminado v ´ ertice v de G = ( N , Γ), to dos os seus descenden t es. Cada v´ ertice ser´ a marcado como “j´ a visitado” ou “ n˜ ao visitado”, sendo “n˜ ao visitado” o estado inicial de to dos os v ´ ertices. 3.3. BUSCA EM PROFUNDID ADE 35 Na busca em profundidade, partindo de v , seguiremos um caminho, sempre p or v ´ ertices n˜ ao visitados, o mais longe p oss ´ ıv el. Ao pa ssar por um v ´ ertice, marc´ a-lo- emos como “j ´ a visitado”. N˜ ao sendo mais p oss ´ ıve l p rosseguir de um dado v´ ertice, is to ´ e, quando estiv ermos num v´ ertice sem filhos n˜ ao visitados, retornaremos a o v ´ ertice de onde este fo i atingido e prosseguimos na busca em pro f undidade. Quando tiv ermos v oltado ao v ´ e rtice inicial, v, e j´ a tiv ermos visitado to dos os seus filho s, teremos terminado a busca em profundidade. Os v´ ertices visitados e as arestas utilizadas para at ing ´ ı-los formam uma ´ arvore de raiz v, que ´ e a ´ arv ore da busca . Iniciando nov as buscas em pro fundidade, nas quais consideramos “n˜ a o visitados” apenas os v ´ ertices que n˜ ao p ertencem a nenh uma ´ arv o re previamen te formada, teremos uma floresta que cobre o grafo G , a floresta de busca. Uma maneira de rotularmos (o u reordenarmos) os v´ ertices de G duran te a busca em profun- didade ´ e p ela ordem de visita¸ c˜ ao , O v (), onde O v ( i ) = k significa que o v ´ ertice i fo i o k -´ esimo v ´ ertice a ser visitado na f orma¸ c˜ ao da floresta de busca. Uma maneira alternativ a de rotular (re- ordenar) o s v ´ ertices de uma floresta de busca ´ e a ordem de ret orno : O r (), ´ e a ordem em que v erificamos j ´ a termos visitado to do s os filhos de um v ´ ertice e retornamos ao seu pai na ´ arv ore (ou terminamos a ´ arv ore se se trata r de uma raiz). Estando os v ´ ertices de um gr a fo b em ordenados p or a lgum crit´ erio, por exemplo p elos seus ´ ındices, a flor esta de busca em profundidade canˆ onica ´ e aquela em que tomamos os v´ ertices, tanto para ra ´ ızes de nov as ´ arv ores quando pa ra visita¸ c˜ ao den tro de uma busca, na ordem estab elecida p or este crit ´ erio. No exemplo 7 , a primeira ´ e a floresta canˆ onica. Exemplo 7: Um gr afo G , e v´ aria s das p o ss ´ ıv eis florestas de busca que o cobrem, est˜ a o dadas na figura seguin te. Apres en t a mos estas florestas com os v ´ ertices numerados primeiro p ela ordem de visita¸ c ˜ ao, dep ois p ela ordem de retorno. Indicamos com um circunflexo as raizes da busca. 3 → 6 ւ ↓ տ ↓ 1 → 4 ← 7 ւ ↓ տ 2 ← 5 → 8 ˆ 6 → 7 ↓ ˆ 1 → 2 8 ւ ↓ 3 4 → 5 ˆ 1 → 7 ւ ↓ ↓ 6 2 8 ւ ↓ 3 4 → 5 ˆ 6 → 7 ↓ ˆ 5 4 8 տ ˆ 1 ˆ 2 → 3 36 CAP ´ ITULO 3. RESUMO DE TEORIA DO S GRAFOS ˆ 8 → 7 ↓ ˆ 5 → 4 6 ւ ↓ 1 3 → 2 ˆ 8 → 7 ւ ↓ ↓ 5 4 6 ւ ↓ 1 3 → 2 ˆ 8 → 7 ↓ ˆ 5 2 6 տ ˆ 1 ˆ 4 → 3 Descrev emos agora o algoritmo de T arjan para determina¸ c˜ ao das comp onen t es fortemen te conexas de um grafo G . 1. Considerando a b oa ordem dos ´ ındices, construa a floresta de busca canˆ onica em G , marcando seus v ´ ertices p ela o r dem de retorno; 2. Considere G − 1 com os v ´ ertices reordenados, isto ´ e rotulados, na ordem in v ersa da o r dem de retorno estab elecida no passo 1; 3. Considerando a b oa ordem estab elecida no passo 2, construa a floresta de busca canˆ onica em G − 1 . T eorema 3.2 ( T arjan) : Cada ´ arvor e em G − 1 c onstru ´ ıda no p asso 3 do algoritmo de T arjan c obr e os v´ ertic es de exatamente uma c omp onente fortemente c onexa de G . Mais ainda, a or dem de visita¸ c˜ ao ( b em c omo a or dem de r etorno) , na flor e s ta c anˆ o nic a do p asso 3 do Algoritmo de T arjan, ´ e um r e or denamento c o er ente dos v ´ e rtic es de G . Demonstra¸ c˜ ao: Se v , w ∈ V est˜ ao n uma mesm a componente de G en t˜ ao certamen te p ertencem a uma mesma ´ arv ore em G − 1 (b em como em G ) . Se x ´ e um v´ ertice de G , denotar emos o n ´ umero que marca o v ´ ertice x , p ela ordem de retorno em G , p or O r ( x ). Se w ´ e um v ´ ertice de uma ´ arv ore de raiz v , em G − 1 , en t˜ ao: 1. v descende de w , em G , p o is w descende de v em G − 1 . 2. w descende de v , em G . P a ra justificar a segunda a firma¸ c˜ ao notemos que, p or constru¸ c˜ ao O r ( v ) > O r ( w ). Isto significa que ou w fo i visitado durante a busca em profundidade a partir de v , o u w foi visitado a n tes de v . A primeira hip´ otese implica em (2) enquanto a segunda hip´ otese ´ e impo ss ´ ıv el p ois, como p o r (1) v descende de w , jamais p o der ´ ıamos ter deixado v “n˜ ao visitado” ap´ o s concluir uma busca e m profundidade que visitasse w . Q .E.D. Exemplo 8: A figura se guin te apresen ta o s passos na determina¸ c˜ ao p elo algoritmo de T arjan, das CFCs do exemplo 7, e no s d´ a um reordenamen to co eren te de seus v´ ertices. A floresta de BEP em G est´ a 3.4. GRAFOS SIM ´ ETRICOS E CASAMENT OS 37 rotulada p ela ordem de retorno, e a floresta em G − 1 p ela o r dem de visita¸ c˜ ao . O r eordenamen to co eren te dos v ´ ertices do grafo original obtido neste exemplo ´ e q = [3 , 6 , 7 | 1 | 4 , 5 , 8 | 2]. 3 → 6 ւ ↓ տ ↓ 1 → 4 ← 7 ւ ↓ տ 2 ← 5 → 8 ˆ 8 → 7 ↓ ˆ 5 → 4 6 ւ ↓ 1 3 → 2 1 ← 2 ր ↑ ց ↑ 4 ← 5 → 3 ր ↑ ց 8 → 6 ← 7 ˆ 1 3 ց ↑ ˆ 4 ˆ 5 2 ց ˆ 8 7 ← 6 3.4 Grafos Sim ´ et ricos e Cas amentos Um grafo G = ( N , Γ) ´ e dito sim´ etrico sse ∀ i, j ∈ N , j ∈ Γ( i ) ⇒ i ∈ Γ( j ). ´ E usual represen tarmos um grafo sim ´ etrico substituindo cada par de arestas, ( i, j ) e ( j, i ), p or uma aresta sem orienta¸ c˜ ao ou lado , { i, j } . P o demos de finir u m grafo sim ´ e trico atra v´ es de seus v´ ertices e dos seus lados, G = ( N , E ), o nde cada lado ´ e um conjun to de dois v ´ ertices e { i, j } ∈ E ⇔ i ∈ Γ( j ). Um m - casamen to , n um grafo sim ´ etrico, ´ e um conjun t o de m lado s onde s˜ ao distin tos to dos os v ´ ertices; M = {{ u 1 , u 2 } , { u 3 , u 4 } , . . . { u 2 m − 1 , u 2 m }} . Os v ´ ertices em M dizem-se casados, os de mesmo lado dizem-se companheiros, e os v ´ ertices fora do casamen to dizem-se solteiros. Um m -casamen to ´ e m´ aximo em G s e n˜ ao houv er em G um m + 1 casame n to e ´ e p erfeito se n˜ ao deixar nenh um v ´ ertice solteiro. Dado um grafo sim ´ etrico G = ( V , E ) e ne le um m -casamen to, M , um caminho M -alternado ´ e um caminho C = ( { w 0 , w 1 } , { w 1 , w 2 } , . . . { w k − 1 , w k } ) que tem lados, alternadamente, den tro e fora do casamen to. Um caminho M -alternado diz-se um caminh o de aumen to se come¸ ca e termina em v ´ ertice s solteiros. T eorema 3.3 ( B erge) : Dado um gr a f o sim´ etric o, G = ( V , E ) e nele um m -c asa mento, M = {{ u 1 , u 2 } , { u 3 , u 4 } , . . . { u 2 m , u 2 m }} , este c asam ento ´ e m´ aximo se n˜ ao houver c am inho de aumento. Demonstra¸ c˜ ao: Sup onha que existe um caminho de aumen to C = ( { w 0 , w 1 } , { w 1 , w 2 } , . . . { w 2 k − 1 , w 2 k + 1 } ) ent˜ ao M ′ = M ⊕ C = M − {{ w 1 , w 2 } , { w 3 , w 4 } , . . . { w 2 k − 1 , w 2 k }} + {{ w 0 , w 1 } , { w 2 , w 3 } , . . . { w 2 k , w 2 k + 1 }} 38 CAP ´ ITULO 3. RESUMO DE TEORIA DO S GRAFOS ´ e um m + 1-casamen to. Se, po r outro lado, M n˜ ao ´ e m´ aximo, seja M ’um m+1-casamen to e considere o grafo auxiliar H de lados E H = M ′ ⊕ M , sendo V H = V G . Cada v ´ ertice de H ´ e isolado , ou p ertence a algum lado de E H e no m´ aximo a dois lados, um de M e outro de M ′ . Cada comp onente de H ´ e p o is, ou um v ´ ertic e isolado, ou um ciclo de lados alternadamen te em M e M ′ , ou um caminho de lados alternadamen te em cada um dos casamen tos. Como H tem mais lados de M ’que de M , h´ a ao menos uma comp onen te de tip o caminho que come¸ ca e termina com lados de M ′ . Este caminho ´ e M -alternado e se us v ´ ertices extremos s˜ ao,p or c onstru¸ c˜ ao, solteiros em M . T emos as sim um caminho de aumen to para M . Q.E.D. Exemplo 9: Apresen tamos ag o ra: Na primeira linha: M : um m -casamen to num grafo, C : um caminho de aumen t o , e M ′ : o m + 1-casamen t o M ′ = M ⊕ C . Na segunda linha: M : um m -casamen t o, M ′ : um m + 1 -casamen to , e H : o grafo H = M ′ ⊕ M . 1 · · · 2 · · · 3 | | . . . 4 · · · 5 · · · 6 . . . . . . | 7 · · · 8 · · · 9 1 · · · 2 3 | | 4 5 · · · 6 . . . | 7 8 · · · 9 1 − 2 · · · 3 . . . . . . . . . 4 · · · 5 − 6 | . . . . . . 7 · · · 8 − 9 1 · · · 2 · · · 3 | | . . . 4 · · · 5 · · · 6 . . . . . . | 7 · · · 8 · · · 9 1 − 2 · · · 3 . . . . . . | 4 − 5 · · · 6 . . . . . . . . . 7 · · · 8 − 9 1 · · · 2 3 | | . . . 4 · · · 5 6 | 7 8 · · · 9 Um grafo G = ( V , Γ) ´ e bipartido se houv er uma biparti¸ c˜ ao de seus v ´ e rtices tal que to dos o s lados tenham um v ´ ertice em cada p eda¸ co da bipar t i¸ c˜ ao, i.e. se for p oss ´ ıve l encon trar conjuntos X , Y | V = X ∪ Y ∧ X ∩ Y = ∅ ∧ ∀ e ∈ E , e = { x, y } x ∈ X , y ∈ Y . T eorema 3.4 ( H all) : Dado G = ( V , Γ) um gr afo sim´ etric o e bip artido, c om bip arti¸ c˜ a o V = X ∪ Y , existe em G um c asamento que c asa to dos os v´ ertic es de X sse vale a c ondi¸ c˜ ao de Hal l: ∀ S ⊆ X , #Γ( S ) ≥ # S . isto ´ e , qualquer sub c on junto de X tem, c oletivamente, ao meno s tantos filhos quanto elementos. Demonstra¸ c˜ ao Se existe um casamen to M que casa to dos os v ´ ertices em X , en t˜ ao os lados do casamen to garan tem ao menos a igualdade na condi¸ c˜ ao de Hall. P or outro lado, se houv er um casamen to m´ aximo, M , que deixe algum x ∈ X solteiro, exibiremos um S ⊆ X que viola a condi¸ c ˜ ao de Hall. 3.5. O ALGORITMO H ´ UNGAR O 39 Seja Z o conjun to dos v ´ ertices conexos a x p or caminhos M-alternados. P elo teorema de Berge sab emos q ue n˜ ao h´ a solteiro em Z , p ois caso con tr´ ario ter ´ ıamos um caminho de aumen to e M n˜ ao seria m´ aximo. Ass im, um caminho M-a lternado maximal, isto ´ e, que n˜ ao p o de ser con tin uado, que come¸ ca no solteiro x ∈ S ⊆ X , dev e neces sariamen te terminar, com um n ´ umero par de lados, n um casado x ′ ∈ S ⊆ X . Considerando, p ois, 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 condi¸ c˜ ao de Hall. Q.E.D. 3.5 O Al goritmo H ´ ungaro Dado um grafo sim ´ etrico G = ( V , E ), bipartido em conjun t os de mesma cardinalidade X e Y , o algoritmo h ´ ungaro fornece um casamen to p erfeito ou encon tra um conjun to S ⊂ X que viola a condi¸ c˜ ao de Hall. Seja M um casamento que deixa x ∈ X solteiro. U ma ´ arv ore de raiz x , H = ( V H , E H ), subgrafo de G , ´ e M-alternada se fo r uma ´ arvore onde qualquer caminho partindo de x , C = ( x, w 1 , w 2 , . . . ) for M-alternado. Observ emos que se uma dada ´ a rv o re M-alternada de r a iz x tive r uma folha solteira, en t˜ ao o caminho C que v ai da r aiz a esta folha ´ e um caminho de aumen to e M ′ = M ⊕ C ´ e um no v o casamen to onde, al´ em de to dos os v ´ ertices casados em M , x tam b´ em ´ e casado. Se, to davia, encon trarmos uma ´ ar vore M-alternada de raiz solteira, onde to das as folhas s˜ ao casadas e que seja m´ axima, isto ´ e , tal que n˜ ao exista nenh um v ´ ertice em V G − V H , adjacen te a uma folha de H teremos encontrado um S ⊂ X que viola a condi¸ c˜ a o de Hall, S = V H ∩ X e T = V H ∩ Y = Γ( S ). O a lg oritmo H ´ ungaro fa z o seguin te: dado um grafo bipartido e sim´ etrico com um casamen to que deixa x ∈ X solteiro, gerar a ´ arv ore canˆ onica de busca em pro fundidade M-alternada, at ´ e encon tr a r um caminho de aumen to, isto ´ e, uma folha solteira. Caso isto n˜ ao seja p oss ´ ıv el con- statarmos a viola¸ c˜ ao da condi¸ c˜ ao de Hall. Exemplo 10 : No exemplo 1 0 temos dois exemplos de grafo e casamen to, nos quais est´ a assinalado um v ´ ertice w solteiro e sem mais nenh um pretenden te disp on ´ ıv el. T emos as resp ectiv as ´ arv ores M- alternadas, marcadas p ela ordem de visita¸ c˜ ao, os caminhos de aumen t o, C , e os nov os casamen tos, M ′ = M ⊕ C , que casam o v ´ ertice w . O algoritmo H ´ ungaro, b em como qualquer algoritmo casamen teiro conhecido, n˜ ao ´ e linear; P o rtan to v ale a p ena pro curar heur ´ ısticas ma is eficien tes para a pro cura de um casamen to p erfeito. Dado um grafo e um casamen t o , os pretende n tes de um v ´ ertice solteiro s˜ a o os solteiros em seu conjun to de adjac ˆ e ncia, e o peso de um solteiro, ρ ( x ), ´ e se u numero de pretenden tes. A id ´ eia sub j a cen te em to das estas heur ´ ısticas ´ e a de casar primeiro os v´ ertices mais e xigen t es, i.e. de menor p eso, de mo do a preserv ar o m´ aximo de pretenden tes para os v ´ e rtices ainda solteiros. 40 CAP ´ ITULO 3. RESUMO DE TEORIA DO S GRAFOS Na Heur ´ ıstica d o M ´ ınimo Simp les , HMS, dado um m-casamen to imp erfeito, pro curaremos obter um m+1-casamento adicionando ao casamen to um lado que una v ´ ertice s ainda solteiros. Escolhemos este lado, de mo do a casar um v´ ertice de m ´ ınimo p eso, en tre os ainda solteiros, com um de m ´ ınimo p eso den tre seus pretenden tes. Sempre que houver um v ´ ertice isolado, i.e. sem pretenden tes ou de p eso zero, pro curaremos cas´ a- lo p elo algoritmo H ´ ungaro. Na Heur ´ ıstica do M ´ ın imo Par , HMP , escolhemos um lado a ser acrescen tado ao casamen to onde um dos v ´ ertices ´ e de p eso m ´ ınimo, e o outro tenha p eso m ´ ınimo den tre to dos os pretenden tes a v ´ ertices de p eso m ´ ınimo. Como a HMP p o de ser b em mais custosa p o demos, p or exemplo, utilizar a HMS enquan to o p eso m ´ ınimo do s v´ ertices ainda solteiros for grande, i.e. acima de um dado limite, e a HMP caso contr´ a rio. Exemplo 11 : O exemplo seguin te ilustra a aplica¸ c˜ ao do a lgoritmo h ´ unga ro com a heur ´ ıstica min-min. No exemplo indicamos o peso, ou n ´ umero de pretenden tes, de cada v ´ e rtice. Indicamos ainda, a cada passo, o v ´ ertice de n ´ ınimo p eso a ser casado, b em como, em it´ alico, seu pretenden te de m ´ ınimo p eso. y 1 y 2 y 3 y 4 y 5 x 1 x 3 x 4 x 5 3 3 3 2 2 - 3 2 2 2 - - 2 2 2 2 2 2 4 3 1 1 - 4 3 - 0 - 3 3 ❆ ❆ ❆ ❆ ❆ ❆ ❅ ❅ ❅ ❅ ❅ ❅ ✁ ✁ ✁ ✁ ✁ ✁ x 2 ❆ ❆ ❆ ❆ ❆ ❆ ❅ ❅ ❅ ❅ ❅ ❅ ❆ ❆ ❆ ❆ ❆ ❆ ✁ ✁ ✁ ✁ ✁ ✁ ❅ ❅ ❅ ❅ ❅ ❅ A ´ arv ore M-alternada com raiz em x 2 , que ficou isolado, nos fornece o caminho de aumen to c = x 2 − y 1 − x 3 − y 3 de mo do que p o demos recome¸ car a heurr ´ ıstica em M ⊕ c : 3.5. O ALGORITMO H ´ UNGAR O 41 y 1 y 2 y 3 y 4 y 5 x 1 x 3 x 4 x 5 - - - 2 2 - - - - 1 - - - 2 2 - - - - 1 ❆ ❆ ❆ ❆ ❆ ❆ ✁ ✁ ✁ ✁ ✁ ✁ ❅ ❅ ❅ ❅ ❅ ❅ x 2 ❆ ❆ ❆ ❆ ❆ ❆ ❅ ❅ ❅ ❅ ❅ ❅ ❆ ❆ ❆ ❆ ❆ ❆ ✁ ✁ ✁ ✁ ✁ ✁ ❅ ❅ ❅ ❅ ❅ ❅ 42 CAP ´ ITULO 3. RESUMO DE TEORIA DO S GRAFOS Cap ´ ıtulo 4 ELIMIN AC ¸ ˜ AO ASSIM ´ ETRICA Esparsidade na F atora¸ c˜ ao LU A maioria dos sistemas lineares encontrados na pr´ atica, esp ecialmen t e os sistemas grandes, s˜ ao esparsos, isto ´ e, a p enas uma p equena parte dos co eficien tes do sistema n˜ ao s˜ ao n ulos. Ao tratar um sistema esparso, dev emos tentar man ter a esparsidade do sistema ao longo das tranfo r ma ¸ c˜ o es necess´ aria s ` a sua solu¸ c˜ ao. T al medida visa, primordialmen te, minimizar o n´ umero de op era¸ c˜ oes aritm ´ eticas a serem realizadas, na pr´ opria transforma¸ c˜ ao e na solu¸ c˜ ao do sistema. Economia de mem´ oria tam b´ em ´ e um fator imp ortante. 4.1 Preenc himen to Lo c al No m´ eto do de Gauss as tranforma¸ c˜ oes k A → k +1 A p o dem dimin uir o n ´ umero de elemen tos nulos . Se tal o correr, dizemos que houv e p reenc himen to de algumas p o si¸ c˜ oes. Queremos escolher o elemen to pivˆ o em k A de mo do a minimizar este preenc himen to. T eorema 4.1 ( T ew arson) Seja k A 1 1 . . . k A n 1 0 . . . . . . 0 k A k +1 k +1 . . . k A n k +1 . . . . . . . . . 0 0 k A k +1 n . . . k A n n seja k B , ( n − k ) × ( n − k ) , a matriz Bo ole ana asso ciada a submatriz das n − k ´ ultimas linhas e c olunas de k A , i.e. k B = B ( A k +1: n k +1: n ) , ou k B q p = 1 ⇔ k A k + q k + p 6 = 0 , 43 44 CAP ´ ITULO 4. ELIMINAC ¸ ˜ AO ASSIM ´ ETRICA e seja k G = k B ( k ¯ B ) ′ k B . onde o op er ador c om plemento aplic ado ` a matriz B , ¯ B , tr o c a 0’s p or 1’s e vic e-ve rs a . A esc o lha d o pivˆ o k A k + j k + i 6 = 0 implic a no pr e nchimento de exatamente k G j i p osi¸ c˜ oes. Demonstra¸ c˜ ao: Seja k ˜ A a matriz obtida de k A p or permuta¸ c˜ ao da k + 1- ´ esima linha e coluna com, resp ectiv a - men te, a k + i -´ esima linha e a k + j -´ esima coluna. Os nov os elemen tos de k +1 A ser˜ ao, para p, q = 2 . . . ( n − k ), k +1 A k + q k + p = = k ˜ A k + q k + p − k +1 M k +1 k + p k ˜ A k + q k +1 = k ˜ A k + q k + p − k ˜ A k +1 k + p k ˜ A k + q k +1 / k ˜ A k +1 k +1 = k A k + s k + r − k A k + j k + r k A k + s k + i / k A k + j 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 . Ha v er´ a preenc himen to de uma p osi¸ c˜ ao em k +1 A sempre que, para r, s = 1 . . . ( n − k ), r 6 = i e s 6 = j , k B s r = 0 ∧ k B j r = 1 ∧ k B s i = 1 e p o r t a n to o tota l de preenc himentos, correspo nden te a o pivˆ o ( k + i, k + j ), ´ e: n − k X r =1 , r 6 = i n − k X s =1 , s 6 = j k ¯ B s r k B j r k B s i = = n − k X r,s =1 k B j r (( k ¯ B ) ′ ) r s k B s i = ( k B ( k ¯ B ) ′ k B ) j i = G j i Na p en ´ ultima pa ssagem usamos que os termos r = i ou s = j s˜ a o to dos n ulos, p ois B q p ¯ B q p = 0. QED. Observ a¸ c˜ ao 4.1 Uma aprox ima¸ c˜ ao para a matriz k G ´ e a matriz de Mark o wit z : k F j i = ( k B 1 k B ) j i , onde denotamos po r 1 a matriz quadrada de 1 ’s. A aprox ima¸ c˜ ao F ´ e exatamen te o n ´ umero de m ultiplidores n˜ ao nulos v ezes o n ´ umero de elemen tos n˜ ao n ulos, fo r a o pivˆ o, na linha pivˆ o. Esta apro xima¸ c˜ ao ´ e bastante b oa se k B ´ e m uito esparsa. 4.1. PREENCHIME NTO LOCAL 45 Exemplo 1: Dada a matriz 0 A , cujos elemen tos n˜ ao n ulos est˜ ao indicados na mat r iz b oleana associada B ( 0 A ), indique uma escolha de pivˆ os que minimize preeenc himen tos lo cais. As suma q ue ao lo ngo do pro cesso de triangulariza¸ c˜ ao n˜ ao h´ a cancelamen tos, i.e., que um elemen to n˜ ao n ulo uma v ez preenc hido, n˜ ao v olta a se anular. T omando 0 B = B ( 0 A ) = 0 B = 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 , 0 G = 0 3 1 5 3 0 1 0 3 2 2 3 3 1 2 3 6 5 1 1 1 6 3 6 3 Assim, ar g min ( i,j ) | 0 B j i =1 0 G j i = { (1 , 1) , (2 , 3) } . Escolhendo ( i, j ) = (1 , 1), i.e. 0 A 1 1 como pivˆ o , temos o preenc himen to de 0 G 1 1 = 0 p osi¸ c˜ o es em 1 A , 1 B = B ( 1 A + 1 M ) = 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 , 1 G = 1 0 3 2 2 2 1 2 4 3 1 1 3 1 4 2 Assim, ar g min ( i,j ) | 1 B j i =1 1 G j i = { (1 , 2) } . Escolhendo ( i, j ) = (1 , 2), i.e. 1 A 3 2 como pivˆ o , temos o preenc himen to de 1 G 2 1 = 0 p osi¸ c˜ o es em 2 A , 2 B = B ( 2 A + 2 M ) = 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 , 1 G = 1 1 2 2 1 1 1 2 1 Assim, ar g min ( i,j ) | 2 B j i =1 2 G j i = { (1 , 1) , (1 , 2) , (2 , 2) , (2 , 3) , (3 , 1 ) , (3 , 3) } . Escolhendo ( i, j ) = (1 , 1), i.e. 2 A 3 3 como pivˆ o , temos o preenc himen to de 2 G 1 1 = 1 p osi¸ c˜ o es em 3 A , 3 B = B ( 3 A + 3 M ) = 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 , 3 B = " 1 1 1 1 # Como 3 B = 1 , ´ e ob vio que n˜ ao ha ve r´ a mais preench imen t o , quaisquer que que sejam o s pivˆ os dora v an te selecionados. T omando, p o r exemplo, o pivˆ o 3 A 4 5 , temos finalmen te temos a fatora¸ c˜ a o 46 CAP ´ ITULO 4. ELIMINAC ¸ ˜ AO ASSIM ´ ETRICA ˜ A = P AQ = LU , com B ( ˜ A ) = 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 , B ( M + U ) = 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 sendo os vetores de indices p erm utados 4 p = [1 , 2 , 3 , 5 , 4] e 4 q = [1 , 3 , 2 , 4 , 5]. Neste pro cesso de triangulazira¸ c˜ ao, tiv emos assim o preenc himento de ap enas 1 p osi¸ c˜ ao, em 3 A 4 5 . // Observ a¸ c˜ ao 4.2 P ara n˜ ao fazer a sele¸ c˜ ao d e pivˆ os ap enas p elos crit ´ erios para minimiza¸ c ˜ ao de preenc himen to lo cal, desprezando assim completamen te os ap ectos de estabilidade num ´ erica, p o de- mos “v etar” escolhas de pivˆ os muito p equenos, i. ´ e., que impliquem no uso de multiplic adores muito grandes, | M j i | ≥ mul tmax ≫ 1 . Se nosso sistema for b em equilibrado, p o demos usar como crit ´ erio de v eto o tamanho do proprio pivˆ o , | U i i | ≤ piv omin ≪ 1. 4.2 Pr ´ e-P osicio n amen to de Pivˆ os Minimizar o pre enc himento local ´ e um processo cus toso, tan to no n ´ umero de op era¸ c˜ oes en v olvidas no c´ a lculo de k G , como por termos de a cessar to da a matriz k A , o que ´ e um grande incon v enien te para o armazename n to efic ien te da mat riz. Ademais, minimizar o preenc himen to lo cal, i.e. aquele causado po r cada pivˆ o individualmen te, ´ e uma estrat´ egia gulosa que po de ter um fraco desem- p enho global, i.e. causar m uito mais preench imen t o que a seq ¨ u ˆ encia ´ ot ima de n pivˆ os. Visando sup erar as defici ˆ enc ias dos m´ eto dos locais estudaremos a heur ´ ıstica P3 , ou P ro cedimen to de Pr ´ e-determina¸ c˜ ao de Pivˆ os. A heur ´ ıstica P3 pro cura uma p erm uta¸ c˜ ao de linhas e colunas, B = P AQ , que reduza o preenc hi- men to na f a tora¸ c˜ ao B = LU . O pro cedimen t o que implemen ta a heur ´ ıstica P3 p osiciona as colunas de A em B e numa matriz temp or´ aria , S , e p erm uta linhas de to das a s colunas, tentando pro duzir uma B que seja quase tr ia ngular inferior. As colunas de B que n˜ ao tem ENNs a cima da diagona l denominam-se colunas triangulares . Colunas triangulares s˜ ao sempre p osicionadas com um ENN na diag onal, que ser´ a usado como pivˆ o da coluna na fatora¸ c˜ ao B = LU . As colunas de B que tem ENNs acima da diagonal denominam-se espinhos . Na fatora¸ c˜ ao LU de B , somen te p o der´ a ocor r er pree nc himen to dentro dos e spinhos. Ade mais, n˜ ao ha ve r´ a preenc himen to acima do mais alto (menor ´ ındice de linha) ENN n um espinho. Portan to , queremos minimizar o n´ umero de espinhos e, como ob jetiv o secund´ a r io , minimizar a altura dos espinh os acima da dia gonal. A heur ´ ıstica P3 pro cede como segue: 1. Compute o n ´ umero de ENNs em cada linha e coluna de A , ou os p esos de linha e coluna, resp ectiv amente, pr ( i ) e pc ( j ). 4.2. PR ´ E-POSICIONAMENT O DE PIV ˆ OS 47 2. Compute h = ar g min i pr ( i ) e ρ = pr ( h ). 3. Compute a ρ - altura de cada coluna, Θ ρ ( j ), o n umero de ENNs na coluna j em linhas de p eso ρ . 4. Compute t = ar g max j Θ ρ ( j ). (a) Se ρ = 1, seja h ∈ { i | pr ( i ) = 1 ∧ A ( i, t ) 6 = 0 } ; p osicione t como a primeira coluna de A , h como a primeira linha, e aplique P3 recursiv a men te a A (2:m,2:n). A coluna exclu ´ ıda torna-se a ´ ultima coluna de B . (b) Se ρ > 1, p osicione a coluna t como a ´ ultima coluna de A , e apliq ue P3 re cursiv amente a A (:,1:n-1) . A coluna exc lu ´ ıda torna-se a primeira coluna de S . (c) Se ρ = 0, p osicione h como a primeira linha, repo sicione a primeira coluna de S ( ´ ultima a ser exclu ´ ıda de A ) como a ´ ultima coluna de B , e aplique P3 recursiv amen te a A (2:m,:). Em P3, o caso • ρ = 1 correspo nde a o p osicionamen t o de uma coluna triangular em B . • ρ > 1 corresponde a imp ossibilidade de p osicionar uma coluna triangular. Assim (temp o- rariamen te) eliminamos um a c oluna de A e pros seguimos com P3. O crit´ erio de sele¸ c˜ ao para a coluna a eliminar visa pro duzir o c aso ρ = 1 nos pr´ oximos passos de P3. Em caso de empate na ρ -altura, p o der ´ ıamos usar como dese mpate a ( ρ + 1 )-altura. • ρ = 0 corresp o nde a n˜ ao ha ver em A uma coluna q ue pud ´ es semos p osicionar em B de modo a con tin uar for mando B n˜ ao singular. En t˜ ao reintroduzimos, como pr´ oxima coluna de B , a primeira coluna em S . Escolhemos a primeira em S visando minimizar a altura do espinho acima da diag onal. Existe o p erigo de que este espinho n˜ a o v enha a pro v er um pivˆ o n˜ a o n ulo, ou que ap´ os cancelamen tos, o pivˆ o seja m uito p equeno para gar an tir a estabilidade n um ´ erica da fatora¸ c˜ ao . Se A ´ e esparsa e tivermos ap enas alguns espinhos, a melhor solu¸ c˜ ao ´ e interc alar a fatora ¸ c˜ ao nu m ´ erica e sim b´ olica, o que nos d´ a a c hance de rejeitar pivˆ o s ins t´ av eis. M ´ eto dos para lidar com pivˆ os inaceit´ aveis na fase de fa tora¸ c˜ ao n um ´ erica, ap´ os termos completado uma fa se independente de fatora¸ c˜ ao sim b´ olica, s˜ ao discutidos p osteriormen te. Exemplo Apliquemos o P3 ` a matr iz b o oleana A . ` A medida que o P3 prossegue represen taremos a matriz particionada h B , A, S i , cujos ENNs ser˜ ao denotado s resp ectiv a mente b , a e s . Os ´ ındices de linha e coluna est˜ ao a esquerda e acima da ma t riz. Os p esos, ρ , e as ρ -alt ur a s, Θ ρ , a direita e abaixo da matr iz. Os pivˆ os, ou espinhos, escolhidos a cada passo est˜ ao em negrito. 48 CAP ´ ITULO 4. ELIMINAC ¸ ˜ AO ASSIM ´ ETRICA p \ q 1 2 3 4 5 ρ 1 a a a a 4 2 a a 2 3 a a 2 4 a a a 3 5 a a a 3 Θ 2 1 1 1 1 0 Θ 3 1 3 1 3 . Θ 4 2 4 2 4 . , p \ q 1 3 4 5 2 ρ 1 a a a s 3 2 a s 1 3 a a 2 4 a a s 2 5 a a s 2 Θ 1 1 0 0 0 . p \ q 1 3 4 5 2 ρ 2 b s . 1 b a a s 2 3 a a 2 4 a a s 2 5 a a s 2 Θ 2 . 2 4 2 . , p \ q 1 3 5 4 2 ρ 2 b s . 1 b a s s 1 3 a s 1 4 a s s 1 5 a s s 1 Θ 1 . 2 2 . . p \ q 1 3 5 4 2 ρ 2 b s . 1 b b s s . 3 b s 0 4 a s s 1 5 a s s 1 , p \ q 1 3 4 5 2 ρ 2 b s . 1 b b b s . 3 b b . 4 b a s 1 5 b a s 1 Θ 1 . . . 2 . p \ q 1 3 4 5 2 2 b b 1 b b b b 3 b b + 4 b b b 5 b b b Na p erm uta¸ c˜ ao final obtida p ela P3, dada p elos v eto r es de p erm uta¸ c˜ a o p e q , indicamos com um + as p o sicc˜ oes a serem preenc hidas no pro cesso de elimina¸ c˜ ao. Uma nota¸ c˜ ao mais compacta para o mesmo exemplo seria: 4.2. PR ´ E-POSICIONAMENT O DE PIV ˆ OS 49 s 1 2 ¯ p \ ¯ q 1 5 2 3 4 ρ 2 x x x x 4 3 2 1 . . 1 x x 2 1 . . . . 3 x x 2 2 2 1 0 . 4 x x x 3 2 2 1 1 1 5 x x x 3 2 2 1 1 1 Θ 2 1 1 1 1 0 Θ 3 1 3 1 3 . Θ 2 . . 1 4 1 No exemplo seguin te reintroduzimos um espinho com 0 na p osi¸ c˜ ao pivˆ o. T o da via, no pro cesso de elimina¸ c˜ ao, esta p osi¸ c˜ a o ser´ a preenc hida antes da sua utiliza¸ c˜ ao como pivˆ o. s 1 2 ¯ p \ ¯ q 1 6 4 5 3 2 1 x x 2 1 . . . . . 2 x x x 3 2 2 1 . . . 3 x x x 3 2 2 1 1 . . 5 x x x x 4 4 3 2 2 1 . 4 x x 0 x x 4 3 2 2 1 0 . 6 x x x x 4 3 3 2 2 1 0 Θ 2 1 1 0 0 0 0 Θ 3 1 3 . . . . Θ 2 . . 2 0 2 2 Θ 3 . . 4 . 3 3 p \ q 1 6 5 3 4 2 1 x x 2 x x x 3 x x x 5 x x x ⊕ x 4 x x x x + 6 x x x x Observ a¸ c˜ ao 4.3 Da maneira como descrev emos o P3, p o der ´ ıamos aplic´ a -lo tamb ´ e m a uma matriz retangular. No caso de Programa¸ c˜ ao linear ´ e comu m ordenarmos pelo P3 to das as colunas da matriz de restri¸ c˜ o es, A , e depois tomarmos, a cada rein v ers˜ ao , as colunas na base, B , conf o rme a ordem estab elecida p or P3 em A [Orc ha r d-Ha ys68]. 50 CAP ´ ITULO 4. ELIMINAC ¸ ˜ AO ASSIM ´ ETRICA Exerc ´ ıcios 1. Implemen te a f a tora¸ c˜ ao LU usando a heur ´ ıstica de Mark owitz. Antes de aceitar um pivˆ o , assegure-se que este tem m´ odulo maior que piv min = 1 0 − 4 , substituindo-o caso con tr ´ ario. Use a represen ta¸ c˜ ao est´ atica p or colunas e de rede da matriz. 2. Implemen te o P3 para ordenar as colunas de uma matriz retangular, conforme a o bserv a¸ c˜ ao 6.3. Use a represen ta¸ c˜ ao est´ atica p o r coluna da matriz. 3. Considere a p ossibilidade de termos um espinho problem´ atico que, ap´ os o pro cesso de elim- ina¸ c˜ ao das colunas preceden tes, aprese n te um 0 na p osi¸ c˜ ao pivˆ o . M ostre que necessariamen te existe um espinho, ` a direita do problem´ atico, cujo elemen to na mesma linha do pivˆ o do es- pinho problem´ atico, neste est´ ag io da fat o ra¸ c˜ ao da mat r iz, ´ e diferen te de zero. D escrev a um procedimen to para lidar com estes casos excep cionais atra v ´ e s da p ermuta¸ c ˜ ao de colunas espinhos. Discuta a viabilidade de resolv er o problema atra v ´ es de permuta¸ c ˜ ao de linhas. Cap ´ ıtulo 5 F A TORAC ¸ ˜ OES SIM ´ ETRICAS e OR TO GONAIS Pro jetores e Problema s Quadr´ aticos 5.1 Matrizes Ortogonais Dizemos que uma matriz quadrada e real ´ e ortogonal sse sua transp osta ´ e igual a sua in vers a.Dada Q uma mat r iz ortogonal, suas colunas f o rmam uma ba se or t o normal de ℜ n , como p o de ser visto da identidade Q ′ Q = I . O quadrado da norma quadr´ atica de um v etor v , k v k 2 ≡ n X i =1 ( v i ) 2 = v ′ v p ermanece ina lt era da p or uma transforma¸ c˜ ao ortogonal, p o is k Qv k 2 = ( Qv ) ′ ( Qv ) = v ′ Q ′ Qv = v ′ I v = v ′ v = k v k 2 . 5.2 F atora¸ c˜ ao QR Dada uma matriz real A m × n , m ≥ n , po demos existe uma matriz ort ogonal Q tal que A = Q " R 0 # , onde R ´ e uma matriz quadrada e triangular sup erior. Esta decomposi¸ c˜ ao ´ e dita uma fatora¸ c˜ ao QR, ou fatora¸ c˜ ao ort ogonal , da matriz A . Descrev emos a seguir um m´ eto do para fatora¸ c˜ ao ortogonal. A rot a¸ c˜ ao de um v etor " x 1 x 2 # ∈ ℜ 2 p or um ˆ angulo θ ´ e dada p ela transforma¸ c˜ ao linear r ot ( θ ) x = " cos( θ ) sin( θ ) − sin( θ ) cos( θ ) # " x 1 x 2 # . 51 52 CAP ´ ITULO 5. F A TORAC ¸ ˜ OES SIM ´ ETRICAS E OR TOGONAIS Notemos que a ro ta¸ c˜ ao ´ e uma transforma¸ c˜ ao ortogonal, p o is r ot ( θ ) ′ r ot ( θ ) = " cos( θ ) 2 + sin( θ ) 2 0 0 cos( θ ) 2 + sin( θ ) 2 # = " 1 0 0 1 # . Al ´ em disso p o demos t o mar o ˆ angulo θ = − arctan( x 2 /x 1 ) de mo do que a rota¸ c˜ ao corresp on- den te anule a segunda compo nen te do v etor ro dado (se x 1 = 0, tome θ = π / 2). Como o pro duto de transforma¸ c˜ oes ortogonais con tin ua ortogona l (pro v e), p o demos usar uma seq¨ u ˆ encia de rota¸ c˜ o es para lev ar a matriz A ` a forma triangular sup erior , como v eremos a seguir. A rota¸ c˜ ao de Giv ens ´ e um op erador linear cuja matriz coincide com a identidade, exceto n um par de linhas o nde imergimos uma matriz de rota¸ c˜ a o bidimencional: G ( i, j, θ ) = 1 . . . cos( θ ) sin( θ ) . . . − sin( θ ) cos( θ ) . . . 1 . Dizemos que a aplica¸ c˜ ao deste op erador n uma matriz A , GA , ro da as linhas i e j de A de um ˆ angulo θ . Abaixo ilustramos uma seq¨ u ˆ encia de rota¸ c˜ oes de linhas que lev a uma matriz 5 × 3 ` a forma triangular sup erior. Cada pa r de ´ ındices, ( i, j ), indica que ro damos estas linha s do ˆ angulo apro- priado para zerar a po si¸ c˜ ao na linha i , coluna j . Sup omos que, inicialmen te, a matriz ´ e densa, i.e. to dos os seus elemen tos s˜ ao diferen tes de zero, e ilus tramos o padr˜ ao de esparsidade da matriz nos est´ agios assinalados com um asterisco na seq¨ u ˆ encia de rota ¸ c˜ oes. (1 , 5) ∗ (1 , 4)(1 , 3 ) (1 , 2) ∗ (2 , 5)( 2 , 4)(2 , 3) ∗ (3 , 5)(3 , 4) ∗ x x x x x x x x x x x x 0 x x x x x 0 x x 0 x x 0 x x 0 x x x x x 0 x x 0 0 x 0 0 x 0 0 x x x x 0 x x 0 0 x 0 0 0 0 0 0 T omando Q como a pro dut´ oria das r ota¸ c˜ oes de Giv ens, temos a fat o ra¸ c˜ ao A = QR , como pro cu- rada. 5.3. ESP AC ¸ OS VETORIAIS COM PR OD UTO INTERNO 53 5.3 Espa¸ cos V etoriais co m Pro duto In terno Dados dois v etores x, y ∈ ℜ n , o seu pro duto escalar ´ e definido como < x | y > ≡ x ′ y = n X i =1 x i y i . Com esta defini¸ c˜ ao, o pro duto esc alar ´ e um op erador que satisfaz a s pro priedades fundamen tais de pro duto interno , a sab er: 1. < x | y > = < y | x > , simetria . 2. < α x + β y | z > = α < x | z > + β < y | z > , linearidade . 3. < x | x > ≥ 0 , n˜ ao negatividade. 4. < x | x > = 0 ⇔ x = 0 , definitividade . A tra v ´ es do pro duto in terno, definimos a norma: k x k ≡ < x | x > 1 / 2 ; e definimos tam b ´ em o ˆ angulo en tre dois v etores n˜ ao n ulos: Θ( x, y ) ≡ arccos( < x | y > / k x kk y k ) . 5.4 Pro jet ores Consideremos o subespa¸ co linear g era do p elas colunas de uma matriz A , m × n , m ≥ n : C ( A ) = { y = Ax, x ∈ ℜ n } . Denominamos C ( A ) de imagem de A , e o c omplemen to de C ( A ), N ( A ′ ), de espa¸ co n ulo de A ′ , N ( A ′ ) = { y | A ′ y = 0 } . O fa t o r ortogona l Q = [ C | N ] nos d´ a 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 ( A ′ ), como po de ser visto diretamen te da identidade Q ′ A = " R 0 # . Definimos a pro je¸ c˜ ao de um v etor b ∈ ℜ m no espa¸ co das colunas de A , p elas rela¸ c˜ oes: y = P C ( A ) b ⇔ y ∈ C ( A ) ∧ ( b − y ) ⊥ C ( A ) 54 CAP ´ ITULO 5. F A TORAC ¸ ˜ OES SIM ´ ETRICAS E OR TOGONAIS ou, equiv alen temen te, y = P C ( A ) b ⇔ ∃ x | y = Ax ∧ A ′ ( b − y ) = 0 . No que se segue suporemos que A tem p osto pleno, i.e. que suas c olunas s˜ ao linearmen te indep enden tes. Pro v emos que o pro jetor de b em C ( A ) ´ e dado p ela a plica¸ c˜ ao linear P A = A ( A ′ A ) − 1 A ′ . Se y = A (( A ′ A ) − 1 A ′ b ), en t˜ ao o bviamen te y ∈ C ( A ). P or outro la do , A ′ ( b − y ) = A ′ ( I − A ( A ′ A ) − 1 A ′ ) b = ( A ′ − I A ′ ) b = 0. 5.5 Quadrados M ´ ıni mos Dado um sistema sup erdeterminado, Ax = b onde a mat r iz A m × n tem m > n , dizemos que x ∗ “resolv e” o sistema no sen tido dos quadrad os m ´ ın imos , ou que x ∗ ´ e a “solu¸ c˜ ao” de quadrados m ´ ınimos, sse x ∗ minimiza a norma quadr´ atica do res ´ ıduo, x ∗ = Ar g min x ∈ℜ n k Ax − b k , Dizemos tamb ´ em que y = Ax ∗ ´ e a melhor apro xima¸ c˜ ao, no sen tido dos quadrados m ´ ınimos de b em C ( A ). Como a m ultiplica¸ c˜ ao p or uma matriz ortogo nal deixa inalterada a norma quadr´ atica de um v eto r , p o demos pro curar a solu¸ c˜ a o deste sistema (no sen t ido dos quadrados m ´ ınimos) minimizando a transforma¸ c˜ ao ortogona l do res ´ ıduo usada na fatora¸ c˜ ao QR de A , k Q ′ ( Ax − b ) k 2 = k " R 0 # x − " c d # k 2 = k Rx − c k 2 + k 0 x − d k 2 . Da ´ ultima express˜ ao v ˆ e-se que a solu¸ c˜ ao, a apro xima¸ c˜ ao e o res ´ ıduo do problema original s˜ ao dados, resp ectiv amen te, p or x ∗ = R − 1 c , y = Ax ∗ e z = Q " 0 d # . Como j´ a hav ´ ıamos observ ado, as m − n ´ ultimas colunas de Q formam uma base ortonor mal de N ( A ′ ), log o z ⊥ C ( A ), de mo do que conclu ´ ımos que y = P A b ! 5.6 Programa¸ c˜ ao Quadr´ atic a O problema de programa¸ c˜ ao quadr´ atica consiste em minimizar a fun¸ c˜ ao f ( y ) ≡ (1 / 2) y ′ W y + c ′ y , W = W ′ 5.7. F A TORAC ¸ ˜ AO D E CHOLESKY 55 sujeitos ` as restri¸ c˜ oes g i ( y ) ≡ N ′ i y = d i . Os gra dientes de f e g i s˜ ao dados, resp ectiv amen te, p or ∇ y f = y ′ W + c ′ , e ∇ y g i = N ′ i . As condi¸ c˜ oes de otima lidade de primeira ordem (condi¸ c˜ oes de Lagrange) estab elecem que as restri¸ c˜ oes sejam ob edecidas, e que o gradien te da fun¸ c˜ ao sendo minimizada seja uma combina¸ c ˜ ao linear dos gr a dien tes das restri¸ c˜ oes. As sim a solu¸ c˜ ao p o de ser obtida em fun¸ c˜ ao do multiplica dor de Lagrange , i.e. do vetor l de co eficien tes desta combina¸ c ˜ ao linear, como N ′ y = d ∧ y ′ W + c ′ = l ′ N ′ , ou em forma matricial, " N ′ 0 W N # " y l # = " d c # . Este sistema de equa¸ c˜ oes ´ e c onhecido como o sistema normal . O sistema normal tem p or matriz de co eficien tes uma matriz sim ´ etric a. Se a forma quadr´ atica W for p ositiv a definida , i.e.se ∀ x x ′ W x ≥ 0 ∧ x ′ W x = 0 ⇔ x = 0, e a s restri¸ c˜ oes N forem lineramen te independente s, a matriz de co eficien tes do sistema normal ser´ a tamb ´ e m p ositiv a definida. Es tudaremos a seguir como ada pt a r a fa t o ra¸ c˜ ao de Gauss a matr izes sim ´ etricas e p ositiv as definidas. 5.7 F atora¸ c˜ ao de Chole sky Ap´ os a fatora¸ c˜ ao de Gauss de um a matriz sim ´ e trica, S = LU , p o demos pˆ or em evid ˆ e ncia os elemen tos diagonais de U obtendo S = LD L ′ . S e S for p ositiv a definida assim o ser´ a D , de m o do que p o demos escrev er D = D 1 / 2 D 1 / 2 , D 1 / 2 a matriz diagonal con tendo a raiz dos elemen tos em D . Definindo C = LD 1 / 2 , temos S = C C ′ , a fatora¸ c˜ ao de Cholesky de S . Analisemos agora algumas rela¸ c˜ oes en tre as fatora¸ c˜ oes de Cholesky e ortogonal (QR ), e de que maneiras a fatora¸ c˜ ao orto gonal nos d´ a uma represen ta¸ c˜ ao da inv ersa. Primeiramen te observ emos que se A = QR , A ′ A = ( QR ) ′ QR = R ′ Q ′ QR = R ′ I R = L ′ L i.e., o f a tor triang ular da fator a ¸ c˜ ao ortogonal ´ e o tr a nsp osto do fator de Cholesky da matriz sim ´ etrica A ′ A . V eremos agora que, no caso de termos A quadrada e de p osto pleno, o pro duto pela in v ersa, y = A − 1 x , p o de ser calculado sem o uso expl ´ ıcito do fator Q : T ranspo ndo AR − 1 = Q obtemos Q ′ = R − t A ′ , donde y = A − 1 x = ( QR ) − 1 x = R − 1 Q ′ x = R − 1 R − t A ′ x . 56 CAP ´ ITULO 5. F A TORAC ¸ ˜ OES SIM ´ ETRICAS E OR TOGONAIS Exerc ´ ıcios 1. Use as propriedades fundamen tais do pro duto in terno para pro v ar : (a) A desigualda de de Cauc hy- Scw artz : | < x | y > | ≤ k x kk y k . Sugest˜ a o: Calcule k x − αy k 2 para α = < x | y > 2 / k y k . (b) A Desigualda de T riangular : k x + y k ≤ k x k + k y k . (c) Em que caso te mos igualdade na desigualdade de Cauc h y-Sc hw artz? Relacione sua resp osta com a defini¸ c˜ ao de ˆ angulo en tre v etores. 2. Use a defini¸ c˜ ao do pro duto in terno em ℜ n para pro v a r a Lei do Paralelogramo: k x + y k 2 + k x − y k 2 = 2 k x k 2 + 2 k y k 2 . 3. Uma matriz P ´ e idemp otente , o u um pro jetor n˜ ao or togonal, sse P 2 = P . Se P ´ e idem- p oten te prov e que: (a) R = ( I − P ) ´ e idenp otente. (b) ℜ n = C ( P ) + C ( R ) . (c) T o dos os autov alores de P s˜ ao 0 ou + 1 . Sugest˜ ao: Mostre que se 0 ´ e uma ra ´ ız do p olinˆ omio caracter ´ ıstico de P , ϕ P ( λ ) ≡ det ( P − λI ), en t˜ ao (1 − λ ) = 1 ´ e ra ´ ız de ϕ R ( λ ). 4. Pro ve que ∀ P idemp oten te e sim ´ etrico, P = P C ( P ) . S ugest˜ ao: Mostre que P ′ ( I − P ) = 0. 5. Pro ve que o operador de pro je¸ c˜ ao n um dado sub-espa¸ c o v etorial V , P V , ´ e ´ unico e sim ´ etrico. 6. Pro ve o teorema de Pit´ agor a s: ∀ b ∈ ℜ m , u ∈ V temos que k b − u k 2 = k b − P V b k 2 + k P V b − u k 2 . 7. F orm ule o problema de quadrados m ´ ınimos como um problema de programa¸ c˜ ao quadr´ atica. (a) Assuma dada uma base N de N ( A ′ ). (b) Calcule diretamen te o res ´ ıduo, z = b − y , em fun¸ c˜ ao de A . 8. O tra¸ co de uma matriz A ´ e definido p or tr ( A ) ≡ P i A i i . M ostre que (a) Se A , m × n , tem p osto pleno ρ ( A ) = n , en t ˜ ao tr ( P A ) = n . (b) Na s condi¸ c˜ oes do item anterior, definindo R A = ( I − P A ), temos que tr ( R A ) = m − n . 9. M ´ etodo de Ha useholder: A reflex˜ ao definida p or um ve tor unit´ ario u | u ′ u = 1, ´ e a transforma¸ c˜ ao linear H = I − 2 uu ′ . (a) In terprete geometricamen te a op erea¸ c˜ ao de reflex˜ ao. (b) Prov e que H = H ′ , H ′ = H − 1 , e H 2 = I . 5.7. F A TORAC ¸ ˜ AO D E CHOLESKY 57 (c) D ado x 6 = 0 um v etor em R n , tome v = x ± k x k 1 0 . . . 0 , u = v / k v k e H = I − 2 uu ′ . Mostre que ( H x ) 1 = k x k , e que to das as demais comp onen tes de H x se an ulam. (d) D iscuta como p o deriamos usar uma s ´ erie de reflex˜ oes para obter a fato r a¸ c˜ ao QR de uma matriz. 58 CAP ´ ITULO 5. F A TORAC ¸ ˜ OES SIM ´ ETRICAS E OR TOGONAIS Cap ´ ıtulo 6 ELIMIN AC ¸ ˜ AO SIM ´ ETRICA Esparsidade na F atora¸ c˜ ao d e Ch o l es ky . 6.1 Grafos de E l i mina¸ c˜ ao Na elimina¸ c˜ ao assim´ etrica, estudada no cap ´ ıtulo 4, pro curamos uma p erm uta¸ c˜ ao geral, QP AQ ′ que minimizasse o preenc himen to duran te a fa tora¸ c˜ ao QP AQ ′ = LU . No caso sim ´ e trico queremos preserv ar a simetria da matriz, e restringir-no s- emos a permuta¸ c˜ oes sim ´ etricas, QAQ ′ = A q ( j ) q ( i ) = LL ′ . Exemplo 1: Neste exe mplo mostramos as p o si¸ c˜ o es preenc hidas na f a tora¸ c˜ ao de Cholesky de uma matriz sim ´ etrica A , b em como o preenc himento na fatora¸ c˜ ao de duas p erm uta¸ c˜ oes sim ´ etricas da mesma matriz: 1 2 3 4 5 6 1 x x x x 2 x 0 x x 3 x 0 x 4 0 5 x x 0 0 0 x 6 1 x x x x 3 0 x x x 0 6 0 0 x x x 0 2 0 0 x 0 0 4 0 x 0 0 5 5 x 4 x 2 x x x 6 x x x 3 x x x x 1 Assim como no cap ´ ıtulo 4 a linguagem de teoria de gra fos foi ´ util para descrev er o pro cesso de elimina¸ c˜ ao sim´ etrica, usaremos agora grafos sim ´ etricos para e studar a elimina¸ c˜ ao sim ´ etrica. O primeiro destes conceito a ser definido ´ e o de grafos de eli mina¸ c˜ ao , que nada mais s˜ ao que os grafos que tem p or matriz de a djac ˆ encia as submatrizes k A do pro cesso de fatora¸ c˜ ao (v eja cap ´ ıtulo 2): D ado um grafo sim ´ etrico G = ( N , E ), N = { 1 , 2 , . . . n } , e uma ordem de elimina¸ c˜ ao q = [ σ (1) , . . . σ ( n )], onde σ ´ e uma p erm uta¸ c˜ ao de [1 , 2 , . . . n ], definimos o pro cesso de elimina¸ c˜ ao dos v´ ertices de G na ordem q como a seq¨ u ˆ encia de grafos de elimina¸ c˜ ao G i = ( N i , E i ) onde, para 59 60 CAP ´ ITULO 6. ELIMINAC ¸ ˜ AO SIM ´ ETRICA i = 1 . . . n , N i = { q ( i ) , q ( i + 1) , . . . q ( n ) } , E 1 = E , e, para i > 1 , { a, b } ∈ E i ⇔ { a, b } ∈ E i − 1 ou { q ( i − 1) , a } , { q ( i − 1) , b } ∈ E i − 1 Definimos tam b ´ em o in v erso ordem de elimina¸ c˜ ao , ¯ q ( i ) = k ⇔ q ( k ) = i , significando que i foi o k -´ esimo v ´ ertice de G a ser eliminado. O grafo preenc hido ´ e o gra fo P = ( N , F ), onde F = ∪ n 1 E i . Os lados o riginais e os lados preenc hidos em F s˜ ao, respectiv amen te, os la dos em E e em F − E . Observ a¸ c˜ ao 6.1 Ao eliminar a j -´ esima coluna na f a tora¸ c˜ ao de Cholesky da matr iz QAQ ′ = A q ( j ) q ( i ) = LL ′ preenc hemos exatamen te as p osi¸ c˜ oes corresponden tes aos lados pree nc hidos em F quando da elimina¸ c˜ ao do v ´ ertice q ( j ). Exemplo 2: Os grafos de elimina¸ c˜ ao e o graf o preenc hido correspo nden tes ` a segunda ordem de elimina¸ c˜ ao do exemplo 1, q = [1 , 3 , 6 , 2 , 4 , 5], s˜ ao: 1 − 3 | × \ 2 6 | / / 5 4 3 / | \ 2 − 6 | / / 5 4 2 − 6 × | 5 4 2 | \ 5 − 4 5 − 4 1 − 3 | × | \ 2 − 6 | | × | / 5 − 4 Lema 6.1 (P arter) Se f = { i, j } ∈ F , ent˜ ao ou f ´ e u m lado original, i.´ e. F ∈ E , ou f foi pr e enchid o quando da elimina¸ c˜ ao de um v´ ertic e k | ¯ q ( k ) < min { ¯ q ( i ) , ¯ q ( j ) } . Lema 6.2 (do caminho) Consid e r e a elimina¸ c˜ a o dos v´ ertic es de G = ( N , E ) na o r dem q . T emos que { i, j } ∈ F sse e x i s te um c aminho de i a j em G , p assando a p enas p or v´ ertic es elimi - nados antes de i ou j , i.e., ∃ C = ( i, v 1 , v 2 , . . . v p , j ) , em G , c om ¯ q (1) . . . ¯ q ( p ) < min { ¯ q ( i ) , ¯ q ( j ) } . Demonstra¸ c˜ ao: ⇐ : trivial. ⇒ : por aplica¸ c˜ ao recursiv a do lema de Parter. Dada a matriz A , G = ( N , E ) = ( N , B ( A )), a ordem de elimina¸ c˜ a o q , e o resp ectiv o grafo preenc hido, c onsideremos o conjunto de ´ ındices de linha de ENNs na coluna j do f a tor de Cholesky , L j | QAQ ′ = LL ′ : enn ( L j ) = { i | i > j ∧ { q ( i ) , q ( j ) } ∈ F } + { j } . 6.1. GRAFOS DE ELIMINAC ¸ ˜ AO 61 Definimos a ´ arvore de elimina¸ c˜ ao , H, p or Γ − 1 H ( j ) = ( j, se enn ( L j ) = { j } , ou min { i > j | i ∈ enn ( L j ) } , caso con tr´ ario P a ra n˜ ao sobrecarregar a nota¸ c˜ ao usaremos h () = Γ − 1 H ( ) e g () = Γ H ( ). Assim h ( j ), o pai de j em H , ´ e simplesmen te o primeiro ENN (n˜ ao diagona l) na coluna j de L . Exemplo 3: As a s ´ arv ores de elimina¸ c˜ ao corresp ondentes ao exemp lo 1 s˜ ao: 6 → 5 ց 4 → 3 → 2 → 1 , 6 → 5 → 4 ↓ 1 ← 2 ← 3 , ր 2 6 → 5 → 3 ց 4 → 1 . T eorema 6.1 ( da ´ arvore de elimina¸ c˜ ao) Dad o i > j , i ∈ enn ( L j ) ⇒ j ∈ ¯ g ( i ) , i.e., qualquer ´ ındic e d e linha ab a ixo da diagona l na c oluna j de L ´ e um asc e n dente de de j na ´ arvor e de elimina ¸ c˜ ao. Demonstra¸ c˜ ao: 1 . . . j . . . . . . x . . . k . . . l . . . . . . • • x . . . i . . . n Se i = h ( j ) o resultado ´ e trivial. Caso con tr´ a r io (vide figura 1) seja k = h ( j ). Mas L j i 6 = 0 ∧ L j k 6 = 0 ⇒ L k i 6 = 0, p o is { q ( j ) , q ( i ) } , { q ( j ) , q ( k ) } ∈ G j ⇒ { q ( k ) , q ( i ) } ∈ G j +1 . Agora , ou i = h ( k ), ou aplicamos o argumen to recursiv amen te, reconstruindo o ra mo de H , ( i, l, . . . k , j ), i > l > . . . > k > j . QED. P ela demons tra¸ c˜ ao do teorema v emos que a ´ arv ore de elimina¸ c˜ ao retra ta as dep end ˆ e ncias en tre as colunas para o pro cesso de fatora¸ c˜ ao n um ´ erica da matriz. Mais exatamen te, p o demos eliminar 62 CAP ´ ITULO 6. ELIMINAC ¸ ˜ AO SIM ´ ETRICA a coluna j de A (i.e. calcular to dos os m ultiplicadores na coluna j , denotados p or M j no cap ´ ıtulo 2, e atualizar os elemen tos afetados p or estes m ultiplicadores) sse j ´ a tiv ermos eliminado to dos os descende n tes de j na ´ arvore de elimina¸ c˜ ao. Se pudermos realizar pro cessamen to paralelo (v eja cap ´ ıtulo 8), p o demos eliminar sim ultanea- men te to das as colunas em um mesmo n ´ ıve l da ´ arv ore de elimina¸ c˜ ao, come¸ cando p elas folhas, e terminando p or eliminar a raiz. Exemplo 4: Consideremos a elimin a¸ c˜ ao de uma matriz com o mesmo padr˜ ao de es parsidade da ´ ultima p erm uta¸ c˜ ao do exemplo 1. Sua ´ a rv o re de elimina¸ c˜ ao ´ e a ´ ultima apresen tada no exemplo 3. Esta ´ arv ore tem 3 n ´ ıv eis que, das folhas para a raiz s˜ ao: { 1 , 3 , 2 } , { 4 , 5 } , e { 6 } . Assim, p o demos fatorar uma matriz com este padr˜ ao de esparsidade em ap enas 3 etapas, como ilustrado no exemplo n um ´ erico seguin te: 1 7 2 8 3 6 9 7 53 2 8 6 49 23 9 2 23 39 1 7 2 8 3 6 9 7 4 2 4 2 5 5 3 2 5 12 1 7 2 8 3 6 9 7 4 2 4 2 5 5 3 1 2 1 6 O pr´ o ximo teorema mostra uma forma computacionalmen te mais eficien te de obter o gra fo preenc hido, P = ( N , F ), e a ´ arvore de elimina¸ c˜ ao, H , dado o padr˜ ao de esparsidade da matriz original, G = ( N , E ), e a ordem de elimina¸ c˜ ao, q . Nesta v ers˜ a o simplificada dos grafo s de elim- ina¸ c˜ ao, G ∗ j , ao eliminarmos o v ´ ertice q ( j ), preenc hemos a p enas os lados inciden tes ao seu vizinho mais pr´ o ximo de ser eliminado. T eorema 6.2 ( da fatora¸ c˜ ao sim b´ olica) Definimos agor a a vers˜ ao simplific ada do pr o c ess o de elimina¸ c˜ ao: G ∗ j = ( N j , E ∗ j ) , E ∗ 1 = E , h ∗ ( j ) = min { i > j | { q ( j ) , q ( i ) } ∈ E ∗ j } E ∗ j +1 = {{ a, b } ∈ E ∗ j | ¯ q ( a ) , ¯ q ( b ) > j } ∪ {{ q ( h ( j ) ) , v } , v | ¯ q ( v ) ≥ j ∧ { q ( j ) , v } ∈ E ∗ j } F ∗ = ∪ n 1 E ∗ j Afirmamos que o gr afo pr e enchido e a ´ arvor e de elimina¸ c˜ ao obtidos no pr o c esso simplific ado c o- incidem c om a de fini¸ c˜ ao anterior, i.e., F ∗ = F e h ∗ = h . Exemplo 5: Os grafo s de elimina¸ c˜ ao simplificados e o grafo preenc hido referen tes a segunda ordem de elimina¸ c˜ ao no exemp lo 1, q = [1 , 3 , 6 , 2 , 4 , 5], s ˜ ao: 6.1. GRAFOS DE ELIMINAC ¸ ˜ AO 63 1 − 3 | × \ 2 6 | / / 5 4 3 / | \ 2 6 | / / 5 4 2 − 6 / | 5 4 2 | \ 5 4 5 − 4 1 − 3 | × | \ 2 − 6 | | × | / 5 − 4 O lema seguin te demonstra o teorema da fatora¸ c˜ ao sim b´ o lica: Lema 6.3 enn ( L j ) = ∪ k ∈ g ( j ) enn ( L k ) ∪ enn ( A j ) − J + { j } , J = { 1 , 2 , . . . j } . Demonstra¸ c˜ ao: ⊇ : 1 . . . k − x . . . . . . | x . . . j . . . • • • . . . n Consideremos k ∈ g ( j ) (vide figura 2). Se i > j ∈ enn ( L k ), en t˜ ao se L j i j´ a n˜ ao ´ e um ENN, ser´ a preenc hido a o eliminarmos L k . ⊆ : 1 . . . l − • . . . . . . x . . . h ( l ) . . . . . . | x . . . h 2 ( l ) . . . − − − − j . . . 7→ . . . 7→ . . . · · · . . . . . . n 64 CAP ´ ITULO 6. ELIMINAC ¸ ˜ AO SIM ´ ETRICA Seja l < j | j ∈ enn ( L l ), i.e., consideremos uma coluna e cuja elimina¸ c˜ a o po deria causar preenc hi- men to s na coluna j (vide figura 3). Pelo teorema da ´ a rv o re de elimina¸ c˜ ao, j ´ e um ascenden te de l , i.e., ∃ p ≤ n | j = h p +1 ( l ) . Mas p ela primeira parte da prov a, enn ( L l ) − J ⊆ en n ( L h ( l ) ) − J ⊆ . . . ⊆ enn ( L h p ( j ) ) ⊆ enn ( L j ) − { j } , de mo do que qualquer v ´ ertice que p o deria causar, duran te a elimina¸ c˜ ao da coluna l , uma preench i- men to na coluna j , deve necessariamen t e aparecer em h p ( l ) ∈ g ( j ). QED. 6.2 Grafos Co rdais Em um dado grafo sim ´ etrico, G = ( N , E ), definimos os seguin tes t ermos: G = ( N , E ) ´ e c or dal sse para qualquer cic lo C = ( v 1 , v 2 , . . . v p , v 1 ) , p ≥ 3, e xiste uma corda, i.e., um lado e ∈ E ligando dois v ´ ertices n˜ ao consecutiv os em C . Um v ´ ertice ´ e simplicial sse sua elimina¸ c˜ ao n˜ ao causa preenc himen to. Uma ordem de elimina¸ c˜ ao, q , ´ e perfeita ss e a elimina¸ c˜ ao de nenhum dos v ´ ertices, na ordem q , causa preenc himen to. Um sub conjunto dos v ´ ertices, S ⊂ N , ´ e um sep ar ad or en tre os v ´ ertices a e b , sse a remo¸ c˜ ao de S deixa a e b em compo nentes conexas distin tas. Dizemos que S ⊂ N ´ e um separador en tre A ⊂ N e B ⊂ N sse, ∀ a ∈ A, b ∈ B , S separa a de b . Um conjun to , C , satisfazendo uma propriedade, P , ´ e minimal (em re la¸ c˜ ao a P ) sse nenhum sub conjun to pr´ oprio de C satisfaz P . Analogamen te, um conjun to ´ e maximal , em rela¸ c˜ ao a P , sse nenh um conjunto que o contenha propriamen te s atisfaz P . Um clique ´ e um conjun to de v ´ ertices C ⊂ N onde to dos os v´ ertices s˜ ao adjacen tes, i.e., ∀ i, j ∈ C, { i, j } ∈ E . indexClique Exemplo 6: No 1o grafo do exemplo 2 v emos que 5 e 6 s˜ ao v´ ertices simpliciais, q = [5 , 4 , 2 , 6 , 3 , 1] ´ e uma ordem de elim ina¸ c˜ ao p erfeita. No ´ ultimo grafo do exem plo 2 v emos que S = { 2 , 3 , 6 , 4 } ´ e um separador en tre os v ´ ertices a = 1 e b = 5 (n˜ ao minimal), S ′ = S − { 3 } ´ e um separador minimal, e C = { 1 , 2 , 3 , 6 } ´ e um clique. T eorema 6.3 ( da caracteriza¸ c˜ ao de grafos cordais) D ado G = ( N , E ) , a s tr ˆ e s pr oprie dades se guintes s˜ ao e quivale n tes: 1. Existe em G uma or dem de elimi n a¸ c˜ ao p erfeita. 2. G ´ e c or dal. 3. Se S ´ e um sep ar a dor minimal entr e a, b ∈ N , ent˜ ao S ´ e um cl i q ue. Demonstra¸ c˜ ao: 1 ⇒ 2: 6.2. GRAFOS CORD AIS 65 Seja q = [ σ (1) , σ (2) , . . . σ ( n )] uma ordem de elimina¸ c ˜ ao p erfeita em G , e seja C = ( v 1 , v 2 , . . . v p , v 1 ) um ciclo em G . Consideremos v k o primeiro v ´ ertice de C a ser eliminado, k = ar g min 1 ≤ i ≤ p { ¯ q ( v i ) } . Como q ´ e uma ordem de elimina¸ c˜ ao p erfeita, a corda { v k − 1 , v k +1 } ∈ E . 2 ⇒ 3: Seja S um separador minimal entre A e B , a ∈ A , b ∈ B , v , w ∈ S . Como S ´ e minimal, existe um caminho C = ( a, c 1 , . . . c p , v ) | c 1 , . . . c p ∈ A , p ois, caso contr´ a rio, S − v contin uaria separando a de b . Analogamente existe um caminho D conectando a a w , c om os v´ ertices intermedi´ ario s to dos em A . Existe pois um caminho de v a w , cujos v ´ e rtices in termedi´ arios est˜ ao to dos em A . Seja P um tal caminho de comprimen to m ´ ınimo, P = ( v , a 1 , . . . a p , w ). Analogamen te seja Q = ( w , b 1 , . . . b q , v ) um caminho de w a v atrav ´ es de B com comprimen to m ´ ınimo. Concatenando P e Q obtemos um ciclo R = ( v , a 1 , . . . a p , w , b 1 , . . . b q , v ). Como G ´ e cordal, R con t ´ em ao menos uma corda, { x, y } . Como S ´ e um separador , n˜ ao p o demos ter x ∈ A e y ∈ B . Como P tem comprimen t o m ´ ınimo, n˜ ao p o demos ter x, y ∈ P e, analogamente n˜ ao p o demos ter x, y ∈ Q . Assim, { v , w } ´ e a ´ unica corda p oss ´ ıv el em R , e conclu ´ ımos que ∀ v , w ∈ S, { v , w } ∈ G . An tes de 3 ⇒ 1, pro vem os 2 lemas auxiliares: Lema 6.4 (hereditariedade) Se G satisfaz a p r oprie dade 3, ent˜ ao qualquer sub g r afo de G in - duzido p or um sub c onjunto de v´ ertic es tamb´ em a satisfaz. Demonstra¸ c˜ ao: Seja ˜ G = ( ˜ N , ˜ E ) o subgrafo de G induzido p or ˜ N ⊂ N , e ˜ S minimal em ˜ G separando a de b . P o demos, em G , completar ˜ S , com v ´ ertices de N − ˜ N , de mo do a obter S , um separador minimal em G entre a e b . Mas se G satisfaz a propriedade 3, S ´ e um clique, e como ˜ S ´ e um subgraf o de S , ˜ S tamb ´ em ´ e um clique. Lema 6.5 (Ga vril) Se G satisfaz a pr oprie dade 3 ent˜ ao ou G ´ e c ompleto, ou G tem a o men os dois v´ ertic es simplic iais n ˜ ao adjac entes. Demonstra¸ c˜ ao: Pro v emos o lema p o r indu¸ c˜ a o no n ´ umero de v ´ ertices de G , n . Para n = 1 o lema ´ e t rivial. Se G = ( N , E ) , n > 1 , n˜ ao ´ e completo, ∃ a, b ∈ G | { a, b } / ∈ E . Seja S um separador minimal en tre a e b , partindo G − S em ao menos 2 comp onen t es conexas distin ta s, A e B , a ∈ A , b ∈ B . G ( S ∪ A ), o subgrafo induzido p elos v ´ ertice s de S ∪ A , hereditari- amen te satisfaz a propriedade 3, e pela hip´ otese de indu¸ c˜ ao, ou G ( S ∪ A ) ´ e um clique, ou con t ´ em (ao menos) 2 v ´ ertices simpliciais n˜ ao adjacentes . Se G ( S ∪ A ) n˜ ao for completo, en t˜ ao um dos seus 2 v ´ ertices simpliciais n˜ ao adjacen t es dev e estar em A (p ois S ´ e um clique). Se G ( S ∪ A ) ´ e completo, en t˜ ao qu alquer v ´ ertice de A ´ e simplicial 66 CAP ´ ITULO 6. ELIMINAC ¸ ˜ AO SIM ´ ETRICA (p ois S ´ e um separador). Logo, existe ao menos um v ´ ertice simplicial, v ∈ A . Analogamen te, existe um v ´ ertice simplicial w ∈ B , e v n˜ ao ´ e adja cen te a w (p ois S separa v de w ). 3 ⇒ 1: Seja G = ( N , E ) satisfazendo a propriedade 3. Se G ´ e completo, qualquer ordem q ´ e p erfeita. Caso contr´ ario, existem 2 v ´ ertices simpliciais n˜ ao adjacen tes. Podemos p ois eliminar um deles , q (1), sem preenc himen to, e pelo lema da here ditariedade o subgrafo resultan te contin ua satis- fazendo a propriedade 3. P o demos en t˜ a o usar o argumen to recursiv amen te para obter uma ordem de elimina¸ c˜ ao p erfeita. QED. 6.3 Ordena¸ c˜ oes p or D i ssec¸ c˜ ao Consideremos em G = ( N , E ) um separador S que parte N − S com comp onente s conexas N 1 , N 2 , . . . , N k . Em cada uma desta comp onentes p o demos considerar um no v o separador que a r epart e, e assim recursiv a mente. P o demos represe n tar este pro cess o pela ´ arv ore de dissec¸ c˜ ao , D , onde S ´ e a raiz, uma comp onen te separada po r S , ou o separador dentro dela, ´ e filha de S , e as comp onentes n˜ ao repartidas s˜ a o as folhas da ´ arv ore. Uma p´ os-ordem dos v´ ertices de uma ´ arv ore H de raiz r ´ e uma ordem q , dos v ´ ertices de H , que lista os v´ ertices de cada uma das ´ arvores de H − r , recursiv a men te em p´ os-ordem, e, finalmen te, r . Seja ˜ q uma p´ os-ordem numa ´ arvore de dissec¸ c˜ ao, D , de G . Substituindo em ˜ q cada n´ o, d , de D p elos v´ ertices de G em d , temos uma ordem de dissec¸ c˜ ao , q . Lema 6.6 (Dissec¸ c˜ ao) Consider em os a elimi n a¸ c˜ ao dos v ´ ertic es de G na o r dem de disse c¸ c˜ ao q . A e l i m ina¸ c˜ ao de um dado v´ eric e, v ∈ d , s´ o p o de pr e en cher lad o s dentr o do seu n ´ o em D , d , ou entr e (v´ ertic es de) d e (v ´ ertic es em) n´ os anc e s tr a is de d (em D ), ou ainda entr e (v ´ ertic es em) asc endente de d (em D ). Demonstra¸ c˜ ao: T rivial, p elo lema do caminho. Exemplo 7: V ejamos um exem plo de elimina¸ c˜ ao usando uma ordem de dissec¸ c˜ ao − − − 1 2 / / | | \ 3 | 4 5 6 7 | | | | \ | \ 8 − 9 − 10 1 1 12 13 { 1 , 2 } / | \ { 3 , 4 } { 5 , 6 } { 7 } | | \ { 8 , 9 , 10 } { 11 , 1 2 } { 13 } 6.3. ORDENAC ¸ ˜ OES POR DISSECC ¸ ˜ AO 67 1 2 3 4 5 6 7 8 9 10 11 12 13 9 x x x x 8 0 x 0 x 0 10 0 x 0 x 0 3 0 0 x 0 4 x 11 x 12 x x 13 x x x 5 0 x x x 0 6 0 x 7 x x 0 0 0 x x 0 1 0 x x 0 2 O ´ ultimo conjun to da parti¸ c˜ a o, S k ou a raiz de ˜ G , ´ e em, G , um separador entre cada u ma das comp onentes de ˜ G − k . Para minimizar a regi˜ ao de p oss ´ ıvel preenc himento (em G ou QAQ ′ ) gostar ´ ıamos de ter o separador S k “p equeno e balanceado”, i.e. tal que • # S k seja o menor p o ss ´ ıv el. • Sub- ´ arv ores tenham aprox imadamen t e o mesmo n ´ umero de v ´ ertices de G . Recursiv amente , gostar ´ ıa mos de ter como raiz de cada uma das sub-´ arv ores um b om separador, i.e., p equeno e balanceado. V eremos a seguir v´ arias heur ´ ısticas para obter n um grafo qualquer, G , um b om separador. Heur ´ ıstica de B usca em Largura : Uma busca em la rgura, BEL, a pa r tir uma raiz v ∈ N , particiona os v ´ ertice s de G em n ´ ıv eis L 0 , L 1 , . . . L k , definidos p or L 0 = { v } , L i +1 = ad j ( L i ) − L i − 1 . A profundida de do n ´ ıv el L i ´ e i , e a largura do n ´ ıv el L i ´ e # L i . A profundidade e a larg ura da BEL s˜ ao , resp ectiv amen te, a m´ axima profundidade e a m´ axima largura nos n ´ ıv eis da BEL. Lema 6.7 O n ´ ıvel L i sep ar a, em G , os v ´ ertic es em n ´ ıv e is mais pr ofundos dos em n ´ ıveis men o s pr ofundos que i . A heur ´ ıstica de BEL pro cura um separador balanceado S ⊆ L i , tomando i ≈ k / 2, ou en t˜ a o tomando i | P i − 1 1 # L j < n/ 2 ∧ P n i +1 # L j < n/ 2 . P a ra obter um separador p equeno a heur ´ ıstica pro cura uma raiz, v , que gere uma BEL de m´ axima pro f undidade, com o in tuito de reduzir a largura da BEL. A distˆ ancia (em G ) de um 68 CAP ´ ITULO 6. ELIMINAC ¸ ˜ AO SIM ´ ETRICA v ´ ertice v a um v´ ertice w , dist ( v , w ), ´ e o comprimen to, ou n ´ umero de lados, do caminho mais curto en t r e ambos os v ´ ertice s. A excen tricidade de um v ´ ertice v ´ e exc ( v ) = max w ∈ N dist ( v , w ). Um v ´ ertice de m´ axima excen t ricidade se diz p erif ´ erico , e sua excen tricidade ´ e o diˆ ametro de G . Uma BEL com raiz v ter´ a profundidade ig ual a excen tr icidade de v . Isto motiv a querermos iniciar a BEL p o r um v´ ertice p erif´ erico. Encontrar um v´ ertice p erif´ erico ´ e um pro blema com- putacionalmen te dif ´ ıcil. A heur ´ ıst ic a de Gibbs encon tra um v ´ ertice quase-p erif´ erico como segue: 1. Escolha como r a iz um v ´ ertice de gra u m ´ ınimo. 2. F orme os n ´ ıv eis da BEL com raiz v , L 1 . . . L k . P articione o n ´ ıv el mais profundo em suas comp onen tes conexas, L k = ∪ l 1 S j , e tome um v ´ ertice de grau m ´ ınimo, v j , em cada comp o- nen te. 3. P ara j = 1 : l • T ome v j como nov a r a iz e encon tre os n ´ ıv eis da BEL, L 1 . . . L k ′ A te que k ′ > k ou j = l . 4. Se o pass o 3 terminou com k ′ > k , v olte ao pass o 2 . Caso con tr´ ario a atual ra iz ´ e um v´ ertice quase-p erif ´ erico. Exemplo 8: Retomando o exemplo 7, a heuristica de G ibbs encon tra 3 como v´ ertice quase-p erif ´ erico. T omando 3 como raiz geramos a ´ arv ore H p or BEL: 10 − 4 13 / / H = 3 − 8 − 9 − 1 − 5 − 12 − 6 − 2 − 7 L = 1 2 3 4 5 6 7 8 9 Escolhendo S 1 = L 5 como primeiro separador, e dep ois S 2 = L 3 e S 3 = L 7 como sepa- radores dentro de cada uma das comp onetes separadas po r S 1 , obtemos a odem p or dissec¸ c˜ ao q = [3 , 8 , 1 , 10 , 9 , 11 , 1 2 , 2 , 13 , 7 , 6 , 4 , 5]. 6.3. ORDENAC ¸ ˜ OES POR DISSECC ¸ ˜ AO 69 1 2 3 4 5 6 7 8 9 10 11 12 13 3 x x 8 x 1 x x 10 x x x x 9 0 11 x 12 x x 2 x x 13 x x 7 0 x x x 0 6 0 x x 0 4 0 x x x 0 0 5 Note que nas linha s (colunas) corresp onden t es aos v ´ ertices do primeiro separador, S 1 = { 1 } , p o de ha v er ENN’s em q ualquer p o si¸ c˜ a o . No te tam b´ em que o resto da matriz est´ a em forma diag- onal blo cada (vide defini¸ c˜ ao no cap ´ ıtulo 8), onde cada blo co correspnde a uma das comp o nen tes separadas por S 1 . Esta e strutura se rep ete em cada blo co, formando a estrutura “espinha de p eixe” caracter ´ ıstica de ordens po r dissec¸ c˜ ao. Note que esta estrutura ´ e preserv ada p ela fa tora¸ c˜ ao de Cholesky . Exerc ´ ıcios 1. Implemen te a elimina¸ c˜ ao sim b´ olica n um grafo G , com a ordem q , computando F e H , em temp o O (# enn ( L )). 2. Qu˜ ao eficien te ( k em temp o O ( n k )) p o der ´ ıa mos implemen tar o algoritmo impl ´ ıcito na ´ ultima parte do teorema de caracteriza¸ c˜ ao de gr a fos cordais? 3. Considere o seguin te alg o ritmo para n umerar o s v ´ ertice s de um grafo na ordem n, n − 1 , . . . 2 , 1: Ordenamen to Rev erso p or Grau M ´ aximo (OR GM): (a) Escolha, como v ´ e rtice n , um v´ ertice qualquer. (b) Escolha, como v ´ ertice seguin te um v ´ ertice ainda n˜ ao nume rado adjacen te a um n ´ umero m´ aximo de v ´ ertices j´ a num erados Pro v e que OR G M define uma ordem p erfeita. 4. Qu˜ ao eficien temen te p o demos implemen t a r o ORGM? 5. De um exemplo de v ´ ertice quase-p erif´ erico que n˜ ao seja p erif´ erico. 70 CAP ´ ITULO 6. ELIMINAC ¸ ˜ AO SIM ´ ETRICA Cap ´ ıtulo 7 ESTR UTURA Acoplamen to de Sub- S i s tem a s Estrutur as B lo cadas Consideraremos neste cap ´ ıtulo matrizes com blo cos de elemen to s n ulos disp ostos de forma regular. Estudaremos duas estruturas: a triangular-blocada sup erior, e a angular blo cada p or colunas. O blo co r s B tem dimens˜ ao m ( r ) × n ( s ), e na estrutura triangular blo cada m ( k ) = n ( k ). 1 1 B 2 1 B 3 1 B . . . h 1 B 0 2 2 B 3 2 B . . . h 2 B 0 0 3 3 B . . . h 3 B . . . . . . . . . 0 0 0 . . . h h B , 1 1 B 0 . . . 0 h 1 B 0 2 2 B 0 h 2 B . . . . . . . . . 0 0 h − 1 h − 1 B 0 0 . . . 0 h h B Estas estruturas blo cadas propiciam grandes facilidades computacionais. Em particular tri- angulariz´ a-la s corresp onde a triangularizar os blo cos diagonais, sendo que nenh um elemen to n˜ ao n ulo ´ e criado, dura nte a triangula riza¸ c˜ ao, no s blo cos nulos. 7.1 Estrutur a T riangular B lo cada Como j´ a visto no estudo de mat r izes de p erm uta¸ c˜ a o, dado G = ( N , B ), N = { 1 , . . . n } , B , n × n , sua matriz de adjac ˆ en cia, e um reordenamento de seus v ´ e rtices, q = [ q 1 , . . . q n ], q i ∈ N , en t˜ ao a matriz de adja c ˆ encia do graf o G com os v ´ ertices reordenados (i.e., reindexados) p or q ´ e ˜ B = B q ( j ) q ( i ) = QB Q ′ . Lema 7.1 C onsider e o r e o r denamento c o er e n te dos v´ ertic es de G = ( N , B ) numa or dem c o er ente 71 72 CAP ´ ITULO 7. ESTRU TURA q = [ 1 q , 2 q . . . h q ] . Co n forme a defini¸ c˜ ao de or dem c o e r ente, c ada blo c o , k q = [ k q 1 , . . . k q n ( k ) ] , c ont´ em os v ´ ertic es de uma CFC (c omp o n ente fort emente c onexa) de G , v k , e ( v 1 , . . . v h ) est˜ ao top olo gic amente or de n ados. Neste c aso a matriz de adjacˆ encia do gr af o r e or denado, ˜ B = QB Q ′ , ´ e triangular blo c ad a sup erior, de b l o c os r s B , n ( r ) × n ( s ) . Uma matriz q ue n˜ ao possa ser, p or perm uta¸ c˜ oes de linhas e de colunas, reduzid a, isto ´ e, p osta na fo rma triangular- blo cada, ´ e dita ir redut ´ ıv el . Dada uma matriz A , n˜ ao singular, pro curaremos p erm uta¸ c˜ oes de linhas e colunas, isto ´ e, p or matrizes de p erm ut a ¸ c˜ ao R e Q , encontrar ˜ A = RAQ que seja a “mais fina” parti¸ c˜ ao p oss ´ ıv el de A . O bserv emos que a hip´ otese de n˜ ao singularidade de A implica na n˜ ao singularidade dos blo cos diagonais, po is det ( A ) = det ( ˜ A ) = h Y k =1 det ( k k ˜ A ) . Sejam R e Q matrizes de permuta¸ c˜ ao e seja P = QR , ˜ A = RAQ = Q − 1 QRAQ = Q ′ P AQ ou seja, p o demos escrev er qualquer transforma¸ c˜ ao do tip o RAQ como uma perm uta¸ c˜ ao de linhas, P A , seguida de uma p erm uta¸ c˜ ao sim ´ etrica Q ′ ( P A ) Q . Consideremos agora o g rafo asso ciado ` a matriz P A , G ( P A ), q ue tem p or matriz de adjacˆ encia o padr˜ a o de esparsidade de P A , B ( P A ), i.e., G ( P A ) = ( N , B ( P A )) = ( N , Γ) , j ∈ Γ( i ) ⇔ ( P A ) j i 6 = 0 . Do ´ ultimo lema sab emos que a permuta¸ c ˜ ao sim ´ etrica que d´ a a mais fina parti¸ c˜ ao de P A ´ e um ordenamen t o co eren te dos v ´ ertices de G ( P A ). Ademais, P A ´ e irr edut ´ ıv el se G ( P A ) ´ e fortemen te conexo. Resta, p ortan to, ana lisar o pap el da p erm uta¸ c˜ ao de linhas, P , na p erm uta¸ c˜ ao geral de linhas e colunas de ˜ A = Q ′ P AQ , onde a permuta¸ c˜ ao sim ´ etrica ´ e dada p or um ordenamen to co eren te em G ( P A ). P ela n˜ ao singularidade, A dev e p o ssuir ao menos uma diagonal de elemen tos n˜ ao nulos (n˜ ao necessariamen te a diagonal principal, v eja as defini¸ c˜ o es de determinan te e diagona l). P ortanto existe uma p ermuta¸ c ˜ ao de linhas, P , que p osiciona esta dia g onal de elemen tos n˜ ao n ulos na diagonal principal de P A . Uma tal p erm uta¸ c˜ ao P ser´ a dita uma p ermuta¸ c˜ ao pr´ o pria , ao passo que uma p erm uta¸ c˜ ao que colo que alg um elemen t o n ulo na diag o nal principal ser´ a dita impr´ opria . Isto p o sto, mostraremos que: 7.1. ESTR UTURA TRIANGULAR BLOCAD A 73 T eorema 7.1 1. Qualquer p ermuta¸ c˜ ao pr´ op ria induz a mesm a estrutur a de p arti¸ c˜ ao, isto ´ e, h blo c o s de di- mens˜ oes n (1) . . . n ( h ) , c om os mesmos ´ ındic es em c ada blo c o . 2. Qualquer p ermuta¸ c˜ ao impr´ opria n˜ ao p o d e ind uzir uma p arti¸ c˜ ao mais fina em ˜ A . Demonstra¸ c˜ ao: P elo lema de Hoffmann G ( P A ) ´ e f o rtemen te c onexo, i.e., P A ´ e irredut ´ ıv el s e qualquer conjun to de k < n linhas tiv er elemen tos n˜ ao nulos em ao menos k + 1 colunas. Como esta caracteriza¸ c ˜ ao indep ende da ordem das linhas, mostramo s que a irredutibilidade da matriz P A indep ende da p erm uta¸ c˜ ao pr´ opria considerada. Da mesma forma, a irredutibilidade do blo co sudeste, h h ˜ A b em como a exist ˆ encia da CFC v h en t r e as “ ´ ultimas” (no se n tido da ordem nat ur a l do grafo reduzido) comp onentes asso ciadas a qualquer outra perm uta¸ c˜ ao pr´ opria, P , est´ a garan tida, de mo do que a in v ariˆ ancia da estrutura de ˜ A segue po r indu¸ c˜ ao no n ´ umero de comp onen te fortemen te conexas (blo cos). Mostramos agora que se A tiv er a lg um elemen to diagonal n ulo, en t˜ ao as comp onen tes forte- men te conexas de G ( A ) s˜ a o fus˜ oes de comp onen tes fo r t emen te conexas de G ( P A ): Distinguamos os zeros na diagonal de A e considere mos o grafo G + ( P A ) obtido de G ( P A ) ao adicionarmos a s arestas corresponden tes aos zeros distinguidos e m P A . As CF Cs em G ( A ) s˜ ao e xatamen te as CF Cs em G + ( P A ), sendo que as arestas adicionais (se quando adicionadas ao grafo r eduzido de G ( P A ) formarem ciclos) s´ o p o dem tornar equiv alen tes alguns v ´ ertices antes em CF Cs distin tas. QED. A p erm uta ¸ c˜ a o pr´ opria, P , p o de ser vista como um casamen to p erfeito en tre linhas e colunas, onde casamos a coluna j com a linha p ( j ), en tre seus pretenden tes Γ − 1 ( j ) = { i | B j i 6 = 0 } . P o demos p o rtan to encon tr´ a-la atra v ´ es do algoritmo H´ ungaro, de preferˆ encia com o emprego de alguma heur ´ ıstica eficien te para evitar a fr eq ¨ uen te gera¸ c˜ ao de ´ arvores de caminhos de aumento. Exemplo 1: Considere as matrizes de adjac ˆ encia B , sua p ermuta¸ c˜ ao pr´ opria P B , e o p osterior ordenamen to co eren te Q ′ P B Q . B = 0 1 0 0 1 1 1 1 1 , P B = B j p ( i ) = 1 1 1 0 1 0 0 1 1 , Q ′ P AQ = B q ( j ) p ( q ( i )) = 1 1 1 0 1 1 0 0 1 . Observ e que G ( B ) ´ e fortemen te conexo. Em B destacamos a diago nal a ser p osicionada p or P na diagonal principal de P B , e o zero inicialmen te na diagonal principal. Em P B destacamos o mesmo zero o r ig inalmen te na diagonal de B . G ( P B ) tem 3 CF Cs, que v olta riam a fundir-se 74 CAP ´ ITULO 7. ESTRU TURA n uma s´ o, caso adicion´ assemos a aresta correspondente ao zero destacado em P B . Nes te exemp lo tiv emos p = [3 , 1 , 2 ], q = [1 , 3 , 2]. O pro cedimen t o P4 (P arti¸ c˜ ao e Pr ´ e-P osicionamen to de Pivˆ os) explora esparsidade estrutural, e p o steriormente a esparsidade lo cal a cada blo co, como segue: 1. Encon tre uma permuta¸ c˜ ao pr´ opria, P A , atra v ´ es do algoritmo h ´ ungaro complemen t a do com uma heur ´ ıstica eficien te. 2. Encon tre, atrav ´ es do algorit mo de T arjan, um ordenamen to co eren te Q ′ P AQ . 3. In ve rta este ´ ultimo ordenamen to, QP AQ ′ , de mo do a colo car a matriz na forma triangular blo cada inferior. Em seguida aplique a heur ´ ıstica P3 a cada blo co diagonal. S˜ ao apresen tados tr ˆ es exemplos de aplica¸ c˜ a o do P4. A dis p osi¸ c˜ ao original dos ENN s da matriz original, A , corresp onde aos sinais +, ∗ , ou n´ umeros de 1 a 9 no corpo da matriz. Como prescrito no primeiro passo do P4, primeiramen te encon tra mo s uma diagonal n˜ ao n ula, ou equiv a len temente uma p erm uta¸ c˜ ao pr´ opria P A . O v etor in v erso de ´ ındices de linha p erm utados, ¯ p , ´ e dado ` a esquerda da numera¸ c ˜ ao original das linhas. Os asteriscos indicam os elemen tos desta diagonal. Como prescrito no segundo passo do P4, dev emos em seguida encontrar um reordenamen to co eren te, q , em G ( P A ). P ara tan t o aplicamos o algoritmo de T arjan: Primeiramen te fazemos a busca em profundidade canˆ onica em G ( P A ). P ara tan to p ercorremos a s linhas de P A , gerando a primeira floresta de cada exemplo. As ra ´ ızes desta busca s˜ ao assinaladas p or um acen to circunflexo, tan to na floresta como no v etor ¯ p . Os n ´ umeros no corp o da ma t r iz corresp ondem a ordem de visita¸ c˜ ao nesta busca. A in v ersa da ordem de r eto r no ´ e dada p elo v etor ¯ b . O algoritmo de T arja n exige em seguida a busca em profundidade canˆ onica no gr a fo inv erso reordenado p or b , G (( B P AB ) ′ ); na verdade basta tomarmos as ra ´ ızes desta busca na o rdem canˆ onica. P ercorrendo as colunas da ma t r iz, constru ´ ımos a segunda flo resta em cada ex emplo, cu- jas ra ´ ızes est˜ ao assinaladas p or um acen to circunflexo, tan to na flor esta como no v etor ¯ b . A ordem de visita¸ c˜ ao nesta segunda busca em profundidade nos d´ a o reordenamen to co erente QP AQ ′ ; ap- resen tado explicitamen te em cada ex emplo para que se reconhe¸ ca a estrutura triangular sup erior. Finalmen te, a o final dos exemplos, apresen ta mos o terceiro passo do P4: a in v ers˜ ao deste ordenamen t o coeren te, Q ′ P AQ , (port a n to triangular inferior), com p osterior aplica¸ c˜ ao do P3 a cada blo co diagonal. Neste p on to fica claro que o segundo e o terceiro exemplos diferem ap enas p ela perm uta¸ c˜ ao original da matriz. Neste p on to indicamos tam b ´ em os zeros preenc hidos duran te a fatora ¸ c˜ ao. 7.1. ESTR UTURA TRIANGULAR BLOCAD A 75 Exemplo 2: ¯ q 1 9 4 7 2 3 5 8 6 ¯ b ˆ 1 9 3 ˆ 7 4 2 6 ˆ 8 5 ¯ q ◦ ¯ p ¯ b ◦ ¯ p ¯ p 1 2 3 4 5 6 7 8 9 7 7 4 1 ∗ 6 2 4 5 2 + ∗ 4 8 6 5 9 3 + + ∗ 1 1 ˆ 1 4 ∗ 2 9 + 8 8 8 5 7 ∗ 5 6 7 6 + + 5 ∗ 3 2 6 7 + + ∗ + 4 3 3 8 ∗ 3 + 9 9 2 9 ∗ + ˆ 1 → 3 → 5 → 7 → 4 → 8 → 2 ↓ ↓ 6 9 ˆ 1 ˆ 7 ˆ 8 ↓ ↓ 4 → 3 9 ↓ ↓ 2 6 → 5 p/q 1 2 3 4 5 6 7 8 9 1 ∗ + + + 2 + ∗ + + 3 + ∗ + + 4 + ∗ + 5 + + ∗ + 6 + ∗ + 7 ∗ + 8 ∗ + 9 + ∗ 76 CAP ´ ITULO 7. ESTRU TURA Exemplo 3: ¯ q 1 3 4 2 5 8 7 9 6 ¯ b ˆ 1 6 2 9 3 ˆ 7 5 8 ˆ 4 ¯ q ◦ ¯ p ¯ b ◦ ¯ p ¯ p 1 2 3 4 5 6 7 8 9 1 1 ˆ 1 1 ∗ 2 + 9 8 8 2 + ∗ 6 4 9 3 9 + ∗ 3 6 2 4 ∗ 4 5 2 9 4 5 + + ∗ 7 5 7 6 ∗ + 8 7 6 7 ∗ 6 5 3 5 8 + ∗ 8 4 2 3 9 3 ∗ + 7 ˆ 1 → 3 → 2 → 4 ↓ ↓ 6 → 8 5 → 9 → 7 ˆ 1 ˆ 4 ˆ 7 ↓ ↓ ↓ 9 5 8 ↓ 6 ↓ 2 → 3 p/q 1 2 3 4 5 6 7 8 9 1 ∗ + + 2 + ∗ + 3 + ∗ + 4 + + ∗ + 5 + ∗ + 6 ∗ + + 7 + ∗ 8 ∗ + 9 + ∗ 7.1. ESTR UTURA TRIANGULAR BLOCAD A 77 Exemplo 4: ¯ q 6 1 4 5 8 2 7 3 9 ¯ b ˆ 6 ˆ 1 2 5 ˆ 8 4 7 3 9 ¯ q ◦ ¯ p ¯ b ◦ ¯ p ¯ p 1 2 3 4 5 6 7 8 9 1 1 ˆ 2 1 ∗ 6 + 8 8 5 2 ∗ 4 7 7 7 3 + 3 ∗ 3 3 8 4 + ∗ + 2 4 6 5 + + ∗ 6 6 ˆ 1 6 ∗ 2 9 9 9 7 + ∗ 5 5 4 8 + ∗ + 4 2 3 9 ∗ 7 8 9 ˆ 1 → 7 → 5 → 9 ˆ 2 → 3 → 4 ↓ ց 6 8 ˆ 1 ˆ 6 ˆ 8 ↓ ↓ ↓ 4 7 9 ↓ 3 ↓ 2 → 5 p/q 1 2 3 4 5 6 7 8 9 1 ∗ + + 2 + ∗ + 3 + ∗ + 4 + + ∗ + 5 + ∗ + 6 ∗ + 7 + ∗ + 8 ∗ + 9 + ∗ 78 CAP ´ ITULO 7. ESTRU TURA Exemplos 2 a 4; P asso 3 do P4: p/q 1 2 3 4 5 6 7 8 9 1 ∗ + 2 + ∗ 3 + ∗ 4 + 0 ∗ + 5 + ∗ + + 6 ∗ + + 7 + + + 0 + 8 + + + 0 ∗ 0 9 + + + ∗ p/q 1 2 3 4 5 6 7 8 9 1 ∗ + 2 + ∗ 3 ∗ + 4 + 0 + ∗ 5 + ∗ + 6 + ∗ + + 7 + + ∗ 0 8 + ∗ + 9 + + ∗ p/q 1 2 3 4 5 6 7 8 9 1 ∗ + 2 + ∗ 3 + ∗ + 4 + ∗ 5 + 0 ∗ + 6 + ∗ + + 7 + 0 ∗ + 0 8 + ∗ + 9 + + ∗ 7.2. ESTR UTURA ANGULAR BLOCADA 79 7.2 Estrutur a An g ular Blo cada Sup onhamos dada uma mat riz quadrada e n˜ ao singular na forma a ngular blo cada, com blo cos diagonais 1 B , . . . h B , k B m ( k ) × n ( k ) , d ( k ) ≡ m ( k ) − n ( k ) ≥ 0, e os cor r esp ondentes blo cos nas colunas r esiduais 1 C . . . h C , k C m ( k ) × n ( h + 1). Podemos usar rota ¸ c˜ o es de Giv ens para fatorar cada um dos blo cos diagonais, k B = h Q " k V 0 # , onde k V ´ e triangula r superior n ( k ) × n ( k ), e o blo co de zeros ´ e d ( k ) × n ( k ). 1 B 1 C . . . . . . h B h C , 1 V 1 W 0 1 Z . . . . . . h V h W 0 h Z . P a ra completar a fatora¸ c˜ ao QR da matriz original, resp eitando a estrutura de blo cos, p ermu- tamos os blo cos k Z para as ´ ultimas linhas da matriz, formando o blo co quadrado Z de dimens˜ ao P h 1 d ( k ) = n ( h + 1). Finalmen te completamos a f atora¸ c˜ ao QR do blo co sudes te, Z = QS . 1 V 1 W . . . . . . h V h W 1 Z . . . h Z , 1 V 1 W . . . . . . h V h W S . Como p erm uta¸ c˜ o es s˜ ao apenas um tip o esp ecial de transforma¸ c˜ oes ortogonais, obtiv emos o fator triangular da fato ra¸ c˜ ao QR resp eitando a es trutura diagonal blocada da matriz original, B = QU . A in vers a da matriz original seria dada por B − 1 = U − 1 Q ′ , mas usando que Q ′ = U − t B ′ temos B − 1 = U − 1 U − t B ′ . Isto ´ e, obtiv emos uma fatora¸ c˜ ao de B onde to dos o s fator es herdam (e s˜ ao computados de a cor do com) a estrutura angula r blo cada da matriz orig ina l. Observ ando que B ′ B = U ′ Q ′ QU = U ′ U , v emos que uma maneira a lt ernat iv a de computar o fator tr ia ngular da fatora¸ c˜ a o ortogonal de B , ´ e computar o f a tor de Cholesky da matriz simetrizada B ′ B : 1 B ′ 1 B 1 B ′ 1 C . . . . . . h B ′ h B h B ′ h C 1 C ′ 1 B . . . h C ′ h B 0 Z . Ao eliminarmos os h blo cos das linhas residuais de B ′ B , formamos o blo co sudeste Z = 0 Z + P h 1 k Z , a ser fatorado na ´ ultima etapa do pro cesso, Z = S ′ S . Ao final, obtemos exatamen te o fator 80 CAP ´ ITULO 7. ESTRU TURA triangular da fatora¸ c˜ ao QR da matriz original. 7.3 P arti¸ c˜ ao d e Hip ergrafos Um hipergrafo ´ e um pa r ordenado G = ( V , C ) onde o primeiro elemen to ´ e um conjun to finito, o conjunto de v ´ ertice s, e o segundo elemen to ´ e uma matriz bo oleana, a matriz de in cidˆ encia . Se | V | = m , cada coluna de C , m × n , nos d´ a os v´ ertices sobre os quais incide o correspondente (hip er)lado. No caso particular de to dos as colunas terem exatamen te 2 ENN’s temos na matriz de incid ˆ enc ia mais uma represen ta¸ c˜ ao de um grafo sim ´ e trico. Em hip ergrafos to davia um lado gen ´ erico p o de incidir sobre mais de 2 v´ ertices. O problema de permutar P AQ para forma angular blocada p o de s er visto como um problema de parti¸ c˜ ao no hip ergrafo G = ( M , B ( A )) , M = { 1 , . . . m } , B ( A ) a matriz b o oleana asso ciada ` a matriz A , m × n . No problema de parti¸ c˜ ao damos a cada linha i ∈ M de B ( A ) uma cor p ( i ) ∈ H = { 1 , . . . h } . A cor de cada lado ´ e definida como o conjun to de cores dos v ´ ertices sobre os quais este incide, q ( j ) = { p ( i ) | A j i 6 = 0 } . Lados multicoloridos corresp ondem a colunas residuais na forma ang ular blo cada, e os lados de cor q ( j ) = k corr esp ondem ` as colunas no blo co angular formado p elos ENN’s A j i | p ( i ) = k ∧ q ( j ) = { k } , k ∈ H = { 1 , . . . h } . P a ra de finir o problema de pa rti¸ c˜ ao falta - nos uma fun¸ c˜ ao o b jetiv o a ser minimizada. Em v ista das aplica¸ c˜ o es j´ a apresen tadas, e outras a serem apresen tadas no pr´ oximo capitulo, queremos ter: • Aproximadamen te o mesmo n ´ umero de linhas em cada blo co. • Poucas colunas residuais. Com estes prop´ ositos ´ e nat ura l considerar a seguin te fun¸ c˜ ao de custo de uma dada parti¸ c˜ ao de linhas em cores p : M 7→ H : f ( p ) = c ( p ) + α h X k =1 ( m/h − s ( k )) 2 , onde c ( p ) = |{ j ∈ N | | q ( j ) | ≥ 2 }| , e s ( k ) = |{ i ∈ M | p ( i ) = k }| . Mesmo casos esp eciais deste problema s˜ ao NP-dif ´ ıceis. P o r exemplo: Seja A a matriz de incid ˆ encia de um g rafo, m um m ´ ultiplo exato de h = 2, e faca α suficien temen te gr a nde para garan tir que to dos os blo cos tenham exatamen te m/h linhas. Este ´ e o pro blema exato de 2- parti¸ c˜ ao em gra f os, e a v ers˜ a o de reconhecimen to deste problema ´ e NP-Completa; v eja problema ND14 em [Garey79]. Um algo ritmo de an ulamen to sim ulado com p erturba¸ c˜ o es m ´ etricas para resolv er este problema ´ e apresen ta do em [Stern92]. 7.4. P ARALELISMO 81 7.4 P aralelis mo Um dos fato res mais imp ortantes no desen v olvimen to de algoritmos ´ e a p ossibilidade de realizar v´ arias etapas de um pro cedimen to em para lelo. No restan te deste cap ´ ıtulo ada pta remos a lgumas das fatora ¸ c˜ oes an teriormen te estudadas para as estruturas blo cadas, visando paralelizar etapas indep enden tes. V ejamos a seguir alguns conceitos b´ asicos de computa¸ c˜ ao paralela. Existem v´ arios mo delos te´ o ricos de computador paralelo, e in ´ umeras instˆ ancias e implemen ta¸ c˜ oes destes mo delos em m´ a quinas reais. O mo delo mais simples ´ e o de mem´ oria compartilhada . Neste mo delo v´ arios processadores, t ˆ em ace sso a uma mem´ oria com um. Neste mo delo, a descri¸ c˜ ao de uma algoritmo para lelo en volv e basicamen te dois fatores: • Como distribuir o trabalho entre os pro cessadores. • Como sincronizar as div ersas etapas do algoritmo. Este mo delo ´ e conceitualmen te simples e elegan te; to dav ia limita¸ c˜ oes da nossa tec nologia in viabi- lizam a constru¸ c˜ ao de m´ aquinas de mem´ or ia compartilhada com mais de uns p oucos (da ordem de dez) pro cessadores. O mo delo de rede ´ e mais gen´ erico. Nele o computador ´ e visto como um grafo: cada v ´ ertic e, n´ o , ou pro cessador represen ta: um pro cessador propriamen te dito, uma mem´ oria lo cal , i.e., acess ´ ıv el somen te a este pro cessador, e po r tas de comu nica¸ c˜ ao. Cada a r esta represen ta uma via de com unica¸ c˜ ao in ter-n´ os. Note que no mo delo de mem´ oria compartilhada, a com unica¸ c˜ ao en tre os pro cessadores po dia ser feita de maneira trivial atra v´ es da mem´ oria ; todavia no mo delo de rede ´ e preciso saber os detalhes da arqu itetura da m´ a quina para es p ecificar um terce iro aspecto d o algoritmo: • A com unica¸ c˜ ao en tre os pro cessadores. Estes detalhes incluem a disp osi¸ c˜ ao das vias de comunica¸ c˜ ao, ou top ologia , a v elo cidade de com unica¸ c˜ ao em rela¸ c˜ ao a v elo cidade de pro cessamen to, a p o ssibilidade ou n˜ a o de ha ver com u- nica¸ c˜ oes sim ultˆ a neas em vias distin tas, etc. Algumas destas top ologias com umen te empregadas, s˜ ao: Estrela , Barra , Anel , Grade , T oro , Hip ercub o e Borb oleta . Como exe mplo de algoritmo pa ralelo, calculemos a m ´ edia de n n´ umeros n uma rede com p pro cessadores. Sup onhamos que inicialmen te tenhamos n/p destes n´ umeros em cada uma das mem´ orias lo cais. Por simplicidade suponhamos que n ´ e um m ´ ultiplo de p , e que n >> p . Na primeira fa se do algoritmo cada pro cessador, k , calcula a m´ edia dos n/p n´ umeros em sua mem´ oria lo cal, m ( p ). Se os pro cessadores s˜ ao to dos iguais (rede homogˆ enea), cada pro cessador completa sua tarefa em 1 / p do temp o necess´ ar io para calcular a m´ edia geral num computador com ap enas um pro cessador deste mesmo tip o. Na segunda f ase do algoritmo r eunimos as m ´ edias parciais para calcular a m´ edia geral, m (0) = (1 /p ) P p k =1 m ( k ). Examinemos como calcular esta m´ edia geral em duas redes com top o logia de anel, onde cada qual: 82 CAP ´ ITULO 7. ESTRU TURA 1. N˜ ao p ermite com unica¸ c˜ o es em paralelo. 2. P ermite com unica¸ c˜ oes em paralelo via segmen tos de a rco n˜ ao sup erp ostos. No v amente p or simplicidade , sup oremos que p = 2 q . Na primeira rede, para k = 1 : p , 1. Calcule no, n´ o k , s ( k ) = s ( k − 1) + m ( k ). 2. T ransmita s ( k ) ao pro cessador k + 1. Neste pro cedimen to temos as somas parciais das m ´ edias s ( k ) = P k i =1 m ( k ), a condi¸ c˜ ao de inicial- iza¸ c˜ ao ´ e s (0) = 0, e ao t´ ermino do algoritmo p o demos computar, no n´ o p , a m ´ edia m (0) = s ( p ) /p . Na segunda rede, par a i = 1 : q , • j = 2 i ; em paralelo, para k = j : p , 1. Calcule, no n´ o k , r ( i, k ) = r ( i − 1 , k ) + r ( i − 1 , k − j / 2). 2. T ransmita r ( i, k ) do n´ o k para o n´ o k + j . Neste pro cedime n to temos as somas parciais das m ´ edias r ( i, k ) = P k l = k − j +1 m ( l ), a condi¸ c˜ ao de inicializa¸ c˜ ao ´ e r (0 , k ) = m ( k ), e a o t ´ ermino do algoritmo p o demos computar, no n´ o p , a m ´ edia m (0) = r ( q , p ) /p . Em geral, a transmiss˜ ao de dados en tre n´ os ´ e m uito mais len t a que a manipula¸ c˜ ao destes dados lo calmen te e, ao medir a complexidade de um algoritmo, con ta mos separadamen te os trabalhos de pro cess amen to e com unica¸ c˜ ao . 7.5 F atora¸ c˜ oes Blo cadas Das se¸ c˜ oes an teriores v emos que quase to do o trabalho na fator a ¸ c˜ ao QR de uma matriz angular blo cada, A = QU , ou da fatora¸ c˜ ao de Cholesky A ′ A = U ′ U , consiste na aplica¸ c˜ ao rep etitiv a de algumas o p era¸ c˜ oes simples sobre os blo cos. P ara tira r v an tagem desta mo dularidade em algor it mo s para fatora¸ c˜ ao e atualiza¸ c˜ ao de matrizes com estrutura a ng ular blo cada, definimos a seguir algumas destas op era¸ c˜ oes, e da mos sua complexidade em n ´ umero de op era¸ c˜ oes de p on to flutuante. 1. Compute a fator a ¸ c˜ ao de Cholesky p ar cial , eliminando as primeiras n colunas da matriz blo cada " F G G t 0 # 7.5. F A TORAC ¸ ˜ OES BLOCADAS 83 para obter " V W 0 Z # onde F = F t ´ e n × n , e G ´ e n × l . Isto requer (1 / 6) n 3 + ( 1 / 2) n 2 l + (1 / 2) nl 2 + O ( n 2 + l 2 ) FLOPs. 2. Compute a tr ansform a¸ c˜ ao inversa p ar ci a l , i.e. u , em " V W O I # t " u 1 u 2 # = " y 1 y 2 # onde V ´ e n × n triangular sup erior, W ´ e n × l , 0 e I s˜ a o as matrizes zero e iden tidade, e u e y s˜ ao ve tores coluna. Is to requer (1 / 2) n 2 + nl + O ( n + l ) FLOPs. 3. R e duza a triangular sup erio r uma matriz de Hessen b erg, i.e., aplique a seq¨ u ˆ encia de rota ¸ c˜ oes de Given s G (1 , 2 , θ ) , G (2 , 3 , θ ) . . . G ( n − 1 , n, θ ) ` a matriz blo cada h V W i onde V ´ e n × n He ssen b erg sup erior, e W ´ e n × l , para reduzir V a triangular sup erior. Isto requer 2 n 2 + 4 nl + O ( n 2 + l 2 ) F L O Ps. 4. R e duza a triangular sup erior uma matriz blo cada coluna – triˆ angulo sup erior, i.e., aplique a seq¨ u ˆ encia de rota¸ c˜ oes de Giv ens G ( n − 1 , n, θ ) , G ( n − 2 , n − 1 , θ ) , . . . G (1 , 2 , θ ) ` a matriz blo cada h u V i onde u ´ e um v etor coluna n × 1 , e V ´ e n × n tr ia ngular sup erior, de mo do a reduzir u ` a um ´ unico ENN na primeira linha, assim transformando V de t r iangular para Hessen b erg sup erior. Isto requer 2 n 2 + O ( n ) F L OPs. Em amb as as fatora¸ c˜ oes, A = QU e A ′ A = U ′ U , m uitas das op era¸ c˜ oes nos blo cos p o dem ser feitas indep enden temente . P ortan to a estrutura a ng ular blo cada n˜ a o s´ o nos d´ a a p ossibilidade de preserv ar esparsidade, mas tamb ´ em a op o rtunidade de fazer v´ aria s op era¸ c˜ oes em paralelo. Descrev eremos uma forma de paralelizar a fa t ora¸ c˜ ao de Cholesky num a rede de h + 1 n´ os. P ara k = 1 . . . h alo camos blo cos das matrizes A e U a n´ o s esp ec ´ ıficos, como segue: • O s blo cos D k E k , V k e W k s˜ ao alo cados ao n´ o k . • O s blo cos sudeste, Z e S , s˜ ao alo cados ao n´ o 0 (ou h + 1). Expressaremos a complex idade do algoritmo em termos da soma e do m´ aximo das dimens˜ o es dos blo cos. dbsum = h X 1 m ( k ) 84 CAP ´ ITULO 7. ESTRU TURA dbmax = max { m (1) , . . . , m ( h ) , n ( h + 1) } . Na an´ alise de complexidade contabilizaremos o temp o de pro cessamen to, medido em FL OPs, pT ime , bem como a com unica¸ c˜ a o in ter-n´ os, I N C . Quando h op era¸ c˜ oes sobre blo cos, bop 1 . . . bop h , p o dem ser efetuadas em paralelo (em n´ os distin t o s), con tamos seu t emp o de pro cessamen to p o r ∧ h 1 f l ops ( bop k ) = f l ops ( bop 1 ) ∧ . . . ∧ f lo ps ( bop h ) , onde ∧ ´ e o op erador m´ aximo , e f l o ps ( bop k ) ´ e o n umero de op era¸ c˜ oes de p onto flutuan te necess´ ario para a op era¸ c˜ ao no blo co k , bop ( k ). Nas equa¸ c˜ o es que seguem, ∧ tem preced ˆ encia menor que qualque r op erador m ultiplicativ o ou aditiv o. As e xpress˜ o es “No n´ o k=1:h compute” ou “Do n´ o k=1:h en vie” significam, “Em (de) to dos os n´ os 1 ≤ k ≤ h , em paralelo, compute (envie )”. Nas express ˜ oes de complexidade ignoraremos termos de ordem inferior. Damos agora uma descri¸ c˜ ao algor ´ ıtmica da fatora¸ c˜ ao de Cholesk y blo cada bch (): 1. No n´ o k=1:h compute o s blo cos ( B k ) t B k , ( B k ) t C k , e ( C k ) t C k . pT ime = m ( k ) n ( k ) 2 + m ( k ) n ( k ) n ( h + 1) + m ( k ) n ( h + 1) 2 ≤ 3 dbmax 3 , I N C = 0. 2. En vie ( C k ) t C k do n´ o k para o n´ o 0, onde acum ulamos Z 0 = P h 1 ( C k ) t C k . pT ime = h n ( h + 1) 2 ≤ h d bmax 2 , I N C = h n ( h + 1) 2 ≤ h d bmax 2 3. No n´ o k compute a fatora¸ c˜ ao de Cholesky parcial, eliminando as primeiras n ( k ) colunas, da matriz blo cada " ( B k ) t B k ( B k ) t C k ( C k ) t B k 0 # obtendo " V k W k 0 Z k # pT ime = (1 / 6) n ( k ) 3 + (1 / 2) n ( k ) 2 n ( h + 1) + (1 / 2) n ( k ) n ( h + 1) 2 ≤ (7 / 6 ) dbmax 3 , I N C = 0. 4. En vie Z k do n´ o k para o n´ o 0, onde acum ulamos Z = P h 0 Z k . pT ime = h n ( h + 1) 2 ≤ h dbmax 2 , I N C = h n ( h + 1) 2 ≤ h d bmax 2 . 5. No n´ o 0 fatore o blo co sudeste S = chol ( Z ), onde chol () indica a fator a¸ c˜ ao de Cholesky padr˜ ao. pT ime = (1 / 6) n ( h + 1 ) 3 ≤ (1 / 6) dbmax 3 , I N C = 0. T eorema 7.2 A fator a¸ c˜ ao de Cholesky blo c ada, bch () , r e quer n˜ a o mais d e (4 + 1 / 3) dbmax 3 + h dbmax 2 temp o de pr o c es samento, e h dbmax 2 temp o de c om unic a¸ c˜ ao inter-n´ os. Nos passos 2 e 4, se a red e p ermite com unica¸ c˜ oes em paralelo, a reuni˜ ao da matriz acum ulada p o de ser feita em log ( h ) passos, e p o demos substituir h p or log ( h ) no ´ ultimo teorema. Cap ´ ıtulo 8 ESCALAMENTO Represen ta¸ c˜ ao em P onto F lutuan te 8.1 O S i stema de P o n to Flutuan te A represen ta¸ c˜ a o de um n´ umero real, ζ ∈ R , em um computador tem, usualmente , precis˜ a o finita. A inexatid˜ ao desta represen t a ¸ c˜ ao in t ro duz erro s no resultado final do pro cessamen to e o ob jetiv o desta s e¸ c˜ ao ´ e obter limites m´ aximos para estes e rros quando da aplica¸ c˜ ao do m´ eto do de Gauss. A represen ta¸ c˜ ao normalmen te utilizada para n ´ umeros reais ´ e o sistema de represen ta¸ c˜ ao em p on t o flutuan te nor malizado de t d ´ ıgito s e base b , SPF, isto ´ e, f l ( ζ ) = ± 0 .d 1 d 2 . . . d t ∗ b ± n , ou ± 0 .d 1 d 2 . . . d t E ± n onde d k , n, b ∈ N 0 ≤ d k ≤ b, d 1 6 = 0 0 ≤ n ≤ em ax, b 6 = 0 . Dado um real ν com repres en ta¸ c˜ ao exata nu m dado SPF, a fra¸ c˜ a o normalizada ser´ a denominada man tissa. A man tissa e o exp o en te de ν ser˜ ao denotados, resp ectiv amen te, mant ( ν ) = ± 0 .d 1 . . . d t , expo ( ν ) = ± n H´ a dua s maneiras normalmen te empregados par a obter f l ( ζ ) a partir de ζ : truncamen to e arredondamen to . Para tr u nc ( ζ ) s implesmen te truncamos a represen ta¸ c˜ ao em base b de ζ 85 86 CAP ´ ITULO 8. ESCALAMENTO obtendo uma man tissa de t digit o s. No ar redondamen to tomamos a man tissa de t digitos que melhor aprox ima ζ . Assim, para ζ = Π = 3 . 1415 92653 . . . , e o SPF com b = 10 e t = 5, tr unc ( ζ ) = +0 . 3 1415 E + 1 e r ound ( ζ ) = +0 . 31416 E + 1. Note que ζ = 0 n˜ ao p o de ser represen tado devido a condi¸ c˜ ao d 1 6 = 0. P ortanto, a lguma represen ta¸ c˜ ao inam b ´ ıgua dev e ser conv encionada, p or exemplo, f l (0) = +0 . 0 0 . . . 0 E + 0 . Se n > emax n˜ ao h´ a represen ta¸ c˜ ao p o ss ´ ıv el no SPF, e dizemos que houv e “o v erflow” ou transb ordamento. 8.2 Erros no Pro duto Escalar Definimos a unidade de err o do SPF, u , como b 1 − t no caso de usarmos truncamen to, e b 1 − t / 2 no caso de usarmos arredondamen to. Lema 8.1 D ado ζ ∈ R e f l ( ζ ) sua r epr esenta¸ c˜ ao, num dad o SPF de unidade de err o u , ∃ δ ∈ [ − u, u ] | f l ( ζ ) = ζ (1 + δ ) . Demonstra¸ c˜ ao: P ela defini¸ c˜ ao de SPF, se expo ( f l ( ζ )) = e , vˆ e-se que | f l ( ζ ) − ζ | | ζ | = | δ | ≤ ub e − 1 b e − 1 = u . Se ν e µ s˜ ao n ´ umeros em p o n to flutuan te, isto ´ e n ´ umeros reais com represen ta¸ c˜ ao exata n um dado SPF, ´ e perfeitamen te p o ss ´ ıv el que uma o p era¸ c˜ ao aritm´ etica ele men ta r en tre eles resulte num n ´ umero sem repres en ta¸ c˜ ao exata. Do lema a nterior, por´ em, s ab emos q ue, qualquer que s eja a op era¸ c˜ ao a ritm ´ etica, ⋆ ∈ { + , − , ∗ , / } , f l ( ν ⋆ µ ) = ( ν ⋆ µ )(1 + δ ), para algum δ | | δ | ≤ u . QED. Exemplo 1: Consideremos um computador que armazena um n ´ umero real em 4 by tes, sendo 3 b ytes para os d ´ ıgitos da man tissa e 1 b yte pa ra o sinal do n ´ umero, o sinal do exp o en te e os 6 bits restan tes para o m´ odulo do exp o en te como um in teiro em base 2. Supondo que to dos os c´ alculos s˜ ao feitos com arredondamen t o , calculamos, a unidade de erro do SPF, u , e o maior real represen t´ av el, r max = b emax , no caso de usarmos base b = 256, b = 16 ou b = 2. b t u = b t − 1 / 2 r max = b 64 2 24 2 − 24 < 10 − 7 2 64 > 10 19 16 = 2 4 6 2 − 21 < 10 − 6 2 256 > 10 75 256 = 2 8 3 2 − 17 < 10 − 5 2 512 > 10 150 Um r ecurso freq¨ uen temen te disp on ´ ıv el, concomitante men t e ao uso de um SPF de base b e t d ´ ıg itos, ´ e o siste ma de repre sen ta¸ c˜ a o em p on to flutuan te normalizado de precis˜ ao dupla , SPFD, com mantiss a de 2 t d ´ ıgitos, que denotamos f l d ( ζ ). 8.2. ERR OS NO PRODUTO ESCALAR 87 Este recurso ´ e extremamen te ´ util, se utilizado parcimoniosamen te. P o demos trabalhar com a maior parte dos dados no SPF, de precis˜ ao simples, e utilizar a precis˜ ao dupla ap enas nas passagens mais cr ´ ıticas do pro cedimen to. Em analogia ao SPF, definimos a unidade de erro do SPFD, ud como b 1 − 2 t no caso de usarmos truncamen to, e b 1 − 2 t / 2 no caso de usarmos arredondamen to. ´ E interes san t e notar que se ν e µ s˜ ao n ´ umeros reais com represen ta¸ c˜ ao exata no SFP , de precis˜ ao simples, a represen ta¸ c˜ ao do pro duto destes n ´ umeros no SPFD ´ e exata, isto ´ e f ld ( ν ∗ µ ) = ν ∗ µ , p ois o pro duto de dois in teiros de t d ´ ıgitos tem, no m´ aximo, 2 t d ´ ıg itos. Estudamos agora o efeito cum ula t iv o dos erros de represen ta¸ c˜ ao, em to das as passagens in- termedi´ arias num pro duto in terno. Sejam x , 1 × n e y , n × 1, v etores c ujas comp onentes tˆ em represen ta¸ c˜ ao exata, n um dado SPF. Definimos f l ( xy ) = f l ( f l ( x n y n ) + f l ( f l ( x n − 1 y n − 1 ) + . . . + f l ( f l ( x 2 y 2 ) + f l ( x 1 y 1 )) . . . )) . Lema 8.2 D ados u ∈ [0 , 1[ , n ∈ N tq nu ≤ α < 1 , e δ i | | δ i | ≤ u, i = 1 . . . n , ent˜ a o 1 − nu ≤ n Y 1 (1 + δ i ) ≤ 1 + (1 + α ) nu . Demonstra¸ c˜ ao: Como (1 − nu ) n ≤ n Y 1 (1 + δ i ) ≤ (1 + nu ) n , basta prov ar que • ( 1 − u ) n ≥ 1 − nu . • ( 1 + u ) n ≤ 1 + nu + αnu . Considerando a fun¸ c˜ ao f ( u ) = ( 1 − u ) n temos que ∃ θ ∈ ]0 , 1[ | f ( u ) = f ( 0 ) + uf ′ ( u ) + u 2 f ′′ ( θ u ) / 2 = 1 − nu + n ( n − 1)(1 − θu ) n − 2 u 2 / 2 . Da n˜ ao negatividade do ´ ultimo termo segue a primeira inequa¸ c˜ ao. Considerando que ∀ β ∈ [0 , α ], 1 + β ≤ e β ≤ 1 + β + αβ , temos que (1 + u ) n ≤ e ( nu ) ≤ 1 + nu + αnu . QED. 88 CAP ´ ITULO 8. ESCALAMENTO Corol´ ario: Nas condi¸ c˜ oes do lema 2, ∃ θ ∈ [ − 1 , 1] tq n Y 1 (1 + δ i ) = 1 + θ (1 + α ) nu . Lema 8.3 S e x , 1 × n e y , n × 1 , s˜ ao vetor es cujas c omp onentes tem r epr esenta¸ c˜ ao exata n um dado SPF, de unidade de e rr o u , c om nu < 1 , ent˜ ao f l ( xy ) = n X i =1 x i y i (1 + θ i (1 + α )( n − i + 2) u ) . Demonstra¸ c˜ ao: ∃ δ i , | δ i | ≤ ud , e θ i , | θ i | ≤ 1 | f l ( xy ) = f l ( f l ( x n y n ) + f l ( f l ( x n − 1 y n − 1 ) + . . . +( x 3 y 3 (1 + δ 4 ) + ( x 2 y 2 (1 + δ 2 ) + x 1 y 1 (1 + δ 1 ))(1 + δ 3 ))(1 + δ 5 ) . . . )) = f l ( f l ( x n y n ) + f l ( f l ( x n − 1 y n − 1 ) + . . . + x 3 y 3 (1 + δ 4 )(1 + δ 5 ) + x 2 y 2 (1 + δ 2 )(1 + δ 3 )(1 + δ 5 ) + x 1 y 1 (1 + δ 1 )(1 + δ 3 )(1 + δ 5 ) . . . )) = x n y n (1 + δ 2 n − 2 )(1 + δ 2 n − 1 ) + + x n − 1 y n − 1 (1 + δ 2 n − 4 )(1 + δ 2 n − 3 )(1 + δ 2 n − 1 ) + . . . + x 2 y 2 (1 + δ 2 )(1 + δ 3 ) . . . (1 + δ 2 n − 3 )(1 + δ 2 n − 1 ) + x 1 y 1 (1 + δ 1 )(1 + δ 3 ) . . . (1 + δ 2 n − 3 )(1 + δ 2 n − 1 ) = x n y n (1 + θ n (1 + α )2 u ) + x n − 1 y n − 1 (1 + θ n − 1 (1 + α )3 u ) + . . . + x 2 y 2 (1 + θ 2 (1 + α ) nu ) + x 1 y 1 (1 + θ 1 (1 + α )( n + 1) u ) . Lema 8.4 S e x , 1 × n e y , n × 1 , s˜ ao vetor es cujas c omp onentes t ˆ e m r e p r esenta¸ c˜ ao exata num SPF, em pr e cis˜ a o sim ples, de unidade de err o u , sendo n ∗ u d ≤ γ < 1 , ent˜ ao f l d ( xy ) ≡ f l d ( f l d ( x n y n ) + f l d ( f l d ( x n − 1 y n − 1 ) + . . . + f l d ( f l d ( x 2 y 2 ) + f l d ( x 1 y 1 )) . . . )) = n X 1 x i y i (1 + θ i (1 + γ )( n − i + 1) ud ) Demonstra¸ c˜ ao: ∃ ǫ i , | ǫ i | ≤ ud , e θ i , | θ i | ≤ 1 | f l d ( xy ) = f l d ( x n y n + f l d ( x n − 1 y n − 1 + . . . +( x 3 y 3 + ( x 2 y 2 + x 1 y 1 )(1 + ǫ 1 ))(1 + ǫ 2 ) . . . )) = x n y n (1 + ǫ n − 1 ) + x n − 1 y n − 1 (1 + ǫ n − 2 )(1 + ǫ n − 1 ) + . . . x 2 y 2 (1 + ǫ 1 ) . . . (1 + ǫ n − 1 ) + x 1 y 1 (1 + ǫ 1 ) . . . (1 + ǫ n − 1 ) = x n y n (1 + θ n (1 + γ ) ud ) + x n − 1 y n − 1 (1 + θ n − 1 (1 + γ )2 ud ) + x 2 y 2 (1 + θ 2 (1 + γ )( n − 1) ud ) + x 1 y 1 (1 + θ 1 (1 + γ ) nud ) 8.3. ESCALAMENT O DE MA TRIZES 89 ´ E freq ¨ uen te o c´ alculo em dupla precis˜ ao, de pro dutos de v etores armazenados em precis ˜ ao sim- ples, e o p osterior armazenamen to do resultado em precis˜ ao simples, isto ´ e o c´ alculo f l ( f l d ( xy )). Do ´ ultimo lema v emos que f l ( f l d ( xy )) = (1 + δ ) n X 1 x i y i (1 + θ i (1 + γ )( n − i + 1) ud ) . Observ a¸ c˜ ao 8.1 Se xy ≫ P x i y i θ i (1 + γ )( n − i + 1) ud , o que o corre se nu ≪ 1 e n˜ ao ho uver “cancelamen tos c r ´ ıticos” na somat´ o ria, o resultado final do pr o duto ´ e afetado de um erro da ordem do erro in tro duzido p or uma ´ unica op era¸ c˜ a o aritm ´ etica, em precis˜ ao simples. Assumiremos esta hip´ otese no restan te do cap ´ ıtulo. Exemplo 2: Calculemos, no SPF decimal de 2 d ´ ıgitos com arredondamen to, f l ( xy ), f l d ( xy ) e f l ( f l d ( xy )), onde x = [7 . 5 , 6 . 9 , 1 . 3] e y = [0 . 38 , − 0 . 41 , 0 . 011] ′ . f l d ( xy ) = f l d (2 . 85 − 2 . 829 + 0 . 0143 ) = f l d (0 . 021 + 0 . 0143) = 0 . 0353 . f l ( f l d ( xy )) = f l (0 . 035 3) = 0 . 035 . f l ( xy ) = f l (2 . 9 − 2 . 8 − 0 . 014) = f l (0 . 1 + 0 . 014) = 0 . 1 1 . 8.3 Escalamen to d e Matrize s Da an´ alise de erros no pro duto in terno, e considerando que a maioria das op era¸ c˜ oes nos alg oritmos de triang ula riza¸ c˜ ao p o dem ser agrupadas na forma de pro dutos in t ernos, fica eviden te que ´ e con v enien te termos to dos o s elemen tos da matriz d a mesma o r dem de grandeza, i.e ., termos a matriz b em equilibrada . Evitamos a ssim ter m ultiplicadores m uito p equenos e soma de termos de ordem de grandeza m uito diferen tes. Se tal n˜ ao o corr e par a a matr iz de um da do sistema, Ax = b , po demos pro curar x atrav ´ es da solu¸ c˜ ao de um outro sistema melhor equilibrado. Se E = diag ( e 1 , e 2 , . . . e n ) e D = d iag ( d 1 , d 2 , . . . d n ), onde e i , d i 6 = 0, o sistema E AD y = E b ´ e obtido m ultiplicando- se a i - ´ esima equa¸ c˜ ao do sistema p or e i , e efetuando-se a substitui¸ c˜ ao de v ari´ ave is x = D y , o que equiv ale a m ultiplicar a j- ´ esima coluna de A p or d j . U ma t r ansforama¸ c˜ ao ˜ A = E AD , A m × n , E e D diago nais com e i , d i 6 = 0, ´ e um escalamen to da ma t r iz A . Exemplo 3: E AD = 1 0 0 0 2 0 0 0 3 1 1 1 1 1 1 1 1 1 11 0 0 0 12 0 0 0 13 = 11 12 13 22 24 26 31 36 39 90 CAP ´ ITULO 8. ESCALAMENTO Estudaremos o problema de escolher um escalamen to que “melhor equilibre” uma dada matriz. Em primeiro luga r, v ale notar que, estando n um SPF de base b , a escolha de E e D da forma E i i = b e i . D j j = b d j , onde e e d s˜ ao v etores de elemen tos inte iros, ´ e m uito con v enien te, p ois ˜ A = E AD e A ter˜ ao elemen tos de mesma man tissa, sendo o efeito do escalamen to ap enas o de alterar os expo en tes dos elemen tos da matriz, mant ( ˜ A j i ) = mant ( A j i ) , expo ( ˜ A j i ) = expo ( A j i ) + e i + d j . Observ a¸ c˜ ao 8.2 P ara implemen ta r eficien temen te a fun¸ c˜ ao expo () e a op era¸ c˜ ao de soma de um in teiro ao expo ente de um n ´ umero r eal, dev emos conhec er d etalhadamen te o SPF usado e manipular diretamente os campos de bits en v olvidos. Uma ma neira de medir o grau de dese quilibrio de uma matriz, A ´ e atra ve z da m ´ edia e da v ariˆ ancia dos exp o entes de seus elemen tos: mex ( A ) = X i,j | A j i 6 =0 expo ( A j i ) /enn ( A ) , v ex ( A ) = X i,j | A j i 6 =0 ( expo ( A j i ) − mex ) 2 /enn ( A ) . Nas somat´ or ias que definem mex e v ex excluimos os elemen tos nulos da mat riz, os elemen tos n ulos da matr iz p o dem ser eliminados das op era¸ c˜ oes de pro duto in terno. P a ra n˜ ao sobrecarregar a not a¸ c˜ ao, dorav ante escrev emos X i ′ = m X i =1 | A j i 6 =0 , X j ′ = n X j =1 | A j i 6 =0 , X i,j ′ = m,n X i,j =1 | A j i 6 =0 . O primeiro m ´ eto do de escalamen to que estudaremos ´ e justamente o m ´ eto do da redu¸ c˜ ao de v ariˆ ancia em que pro curamos minimizar a v ariˆ ancia dos exp o en tes de E AD . T omemos as matrizes de escalamen to esquerda e direita como , resp ectiv amen te, E = diag ( r ound ( e ∗ i )) e D = d iag ( r ound ( d ∗ j )), sendo os v etores e ∗ e d ∗ argumen tos que minimiz˜ ao a v ariˆ ancia do s ex- p o ente s da matriz escalada, v ex ( E AD ) = X i,j ′ ( expo ( A j i ) + e i + d j − mex ( A )) 2 . Um p o nto de m ´ ınimo dev e ob edecer a o sistema ∂ v ex ( E AD ) ∂ e ∗ i = 0 = 2 X j ′ ( expo ( A j i ) + e ∗ i + d ∗ j − mex ( A )) ∂ v ex ( E AD ) ∂ d ∗ j = 0 = 2 X i ′ ( expo ( A j i ) + e ∗ i + d ∗ j − mex ( A )) 8.3. ESCALAMENT O DE MA TRIZES 91 ou, fa zendo a substituicao e + i = e ∗ i − mex ( A ) / 2, d + j = d ∗ j − mex ( A ) / 2 X j ′ e + i + d + j = − X j ′ expo ( A j i ) X i ′ e + i + d + j = − X i ′ expo ( A j i ) Se a matriz A n˜ ao tiver elemen tos nulos, en t˜ ao a solu¸ c˜ ao e ∗ , d ∗ do sistema ´ e imediata: e ∗ i = (1 /n ) X j ( mex ( A ) − expo ( A j i )) d ∗ i = (1 /m ) X i ( mex ( A ) − expo ( A j i )) Esta equa¸ c˜ ao p o de nos dar uma b oa aproxima¸ c˜ ao da solu¸ c˜ a o e m ma t r izes densas, i. ´ e, com p oucos elemen tos n ulos, como se consider´ assemos o “ exp o en te dos elemen tos n ulos” como sendo exp o en t e m´ edio de A. Este ´ e o m ´ eto do apro ximado da redu¸ c˜ ao de v ariˆ ancia . Pro curemos agora m ´ etodo s heur ´ ısticos para determina¸ c˜ ao de escalamen tos, que sejam menos trabalhosos que o m ´ eto do da redu¸ c˜ ao de v ariˆ ancia. O m´ eto do da m´ edia geom´ etrica consiste em toma r d j = − int (( X i ′ expo ( A j i )) /enn ( A j )) e i = − int (( X j ′ ( expo ( A j i ) + d j )) /enn ( A i )) Assim os fat o res de quilibramen to s˜ ao uma apro xima¸ c˜ ao do in v erso da m ´ edia geom´ etrica dos elemen tos n˜ ao n ulos das colunas, o u linhas, i.e., d j = − int (( X i ′ log( | A j i | )) /enn ( A j )) e i = − int (( X j ′ (log( | A j i | ) + d j )) /enn ( A i )) Uma v ariante do m ´ eto do da m´ edia geom ´ etrica ´ e o m´ et o do da m ´ edia max-min , no qual tomamos d j = − int ((max i ′ expo ( A j i ) + min i ′ expo ( A j i )) / 2) e i = − int ((max j ′ ( expo ( A j i ) + d j ) + min j ′ ( expo ( A j i ) + d j )) / 2) Finalmen te, o m´ et o do da norma infinito consiste em tomar e i = − max j ′ expo ( A j i ) d j = − max i ′ ( expo ( A j i ) + e i ) 92 CAP ´ ITULO 8. ESCALAMENTO A escolha do part icular m ´ eto do a ser empregado de p ende bastante do tip o de matriz a s er equilibrada e da exig ˆ encia que temos sobre v ex ( A ). Em pacot es comerciais de otimiza¸ c˜ ao ´ e comum a aplica¸ c˜ ao do m ´ eto do max-min um n´ umero pr´ e-determinado de v ezes, ou at ´ e que v a riˆ ancia dos exp o en t es se reduza a um v alor limite aceit´ av el. Este limite dev e ser tomado em fun¸ c˜ ao das condi¸ c˜ oes do problema, como p or exemplo o n ´ umero de condi¸ c˜ ao da matriz, ser definido no cap ´ ıtulo 9, e da unidade de erro do SPF. Exemplo 4: Equilibremos a matriz A , dada a ba ixo, n um SPF de base 10, 1. p elo m´ eto do aprox imado de redu¸ c˜ ao de v a riˆ ancia, 2. p elo m´ eto do da m ´ edia geom ´ etrica, 3. p elo m´ eto do max-min, 4. p elo m´ eto do da norma ∞ . P a ra A e para cada um dos esc alamen tos, calculemos mex , v ex , e o diˆ ametro da matriz, definido como a diferen¸ ca en tre o maior e o menor exp o en te dos eleme n tos de A . A = 1 0 . 7 E − 4 0 . 5 E − 1 0 . 9 E 0 − 0 . 2 E 2 0 0 0 . 3 E − 1 0 0 . 3 E 4 1 − 0 . 8 E − 3 0 0 0 . 3 E 6 0 0 . 3 E − 1 − 0 . 8 E 0 0 . 1 E 3 0 . 7 E 9 expo ( A ) = 0 − 4 − 1 0 2 x x − 1 x 4 0 − 3 x x 6 x − 1 0 3 9 +1 160 13 P elo m ´ eto do aproximado de redu¸ c˜ a o de v ariˆ ancia, t emos e , d , expo ( E AD ) e [ mex, v ex, diam ], resp ectiv amente int (8 / 5) = 2 int (2 / 5) = 0 int (2 / 5) = 0 int ( − 6 / 5) = − 1 int (4 / 4) = 1 int (12 / 4) = 3 int (6 / 4) = 2 int (1 / 4) = 0 int ( − 17 / 4) = − 4 3 1 3 2 0 x x 1 x 0 0 0 x x 2 x 3 1 2 4 1 . 57 23 . 4 4 Analogamen te, pelo m ´ eto do da m ´ edia geom ´ etrica, temos − int (4 / 5) = 1 − int ( − 1 / 2) = 1 − int (1 / 3) = 0 − int (8 / 4) = − 2 − int (0 / 2) = 0 − int ( − 8 / 3) = 3 − int ( − 2 / 4) = 1 − int (3 / 2) = − 2 − int (21 / 4) = − 5 1 0 1 1 − 2 x x 1 x 0 0 0 x x 1 x 0 − 1 − 1 2 0 . 214 14 . 4 4 8.3. ESCALAMENT O DE MA TRIZES 93 Analogamen te, pelo m ´ eto do max-min, temos − int ( − 4 / 2) = 2 − int ( − 2 / 2) = 1 − int (0 / 2) = 0 − int (4 / 2) = − 2 − int (0 / 2) = 0 − int ( − 5 / 2) = 3 − int ( − 1 / 2) = 1 − int (3 / 2) = − 2 − int (11 / 2) = − 6 2 1 2 − 2 x x 1 x − 1 0 0 x x 0 x 0 − 1 1 0 . 143 14 . 3 4 Analogamen te, pelo m ´ eto do da norma- ∞ , temos 0 1 0 0 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 − 1 . 64 59 . 2 7 Escalamen tos visando equilibrar as matrizes do problema s˜ ao uma etapa imp ortante na solu¸ c˜ ao de sistemas lineares de grande porte. Note que opera¸ c˜ oes de escalamen to n˜ ao afetam o s elemen tos n ulos de uma matriz, e porta n to n˜ ao alteram s ua estrutura e esparsidade. O desemp enho das heur ´ ısticas estudadas v ariam conforme a ´ area de aplica¸ c˜ ao; v ale p ois testar experimen talmen te as heur ´ ıstcas escalamen to e suas v aria ¸ c˜ oes. 94 CAP ´ ITULO 8. ESCALAMENTO Cap ´ ıtulo 9 EST ABIL ID ADE Erros e P erturba ¸ c˜ oes d a Solu¸ c˜ ao 9.1 Normas e Con di¸ c˜ ao Uma norma , n um dado espa¸ co v eto r ia l E , ´ e uma fun¸ c˜ ao || . || : E ⇒ R | ∀ x, y ∈ E , α ∈ R : 1. || x || ≥ 0 , e || x || = 0 ⇔ x = 0. 2. || αx || = | α | || x || . 3. || x + y || ≤ || x || + || y | | , a desigualdade triangular. S˜ ao de grande interes se em R n as p -normas || x || p = ( n X 1 | x i | p ) 1 /p , e de particular in teresse a norma 1, a norma 2 (ou norma quadr´ atica, ou Euclidiana) e a norma p = + ∞ . No caso da norma infinito, dev emos tomar o limite da defini¸ c˜ ao de p -norma para p → + ∞ , ou seja, || x || p = n max i =1 | x i | . Dado um espa¸ co v etorial normado ( E , || || ) definimos a norm a induzida sobre as trans- forma¸ c˜ oes lineares limitadas, T : E → E tq ∃ α ∈ R | ∀ x ∈ E , || T ( x ) || ≤ α || x || como sendo || T || ≡ max x 6 =0 ( | | T ( x ) | | / || x || ) 95 96 CAP ´ ITULO 9. EST ABILID ADE ou equiv alen temen te, p or linearidade || T || ≡ max x | || x || =1 || T ( x ) || . Em ( R n , | | || ) fa la mos da norma induzida sobre as matrizes n × n como sendo a norma da transforma¸ c˜ ao asso ciada , isto ´ e || A || = || T || , onde T ( x ) = Ax , Lema 9.1 A norma induzida sobr e as m atrizes em ( R n , || | | ) , goza das pr oprie dades, p ar a ∀ A, B n × n, α ∈ R , 1. || A || ≥ 0 e || A || = 0 ⇔ A = 0 2. || A + B || ≤ || A || + || B || 3. || AB || ≤ || A || || B || Lema 9.2 Pa r a a norma 1 e p ar a norma ∞ temos as se guintes expr ess˜ oes expl ´ ıcitas da norma induzida sobr e as tr ansf orma¸ c˜ oes, ou matrizes, || A || 1 = n max j =1 n X i =1 | A j i | || A || ∞ = n max i =1 n X j =1 | A j i | Demonstra¸ c˜ ao: P a ra verificar a v a lidade das express ˜ oes observ e que || Ax || 1 = n X i =1 | n X j =1 A j i x j |≤ n X i =1 n X j =1 | A j i | | x j | ≤ n X j =1 | x j | n max j =1 n X i =1 | A j i | = || A || 1 || x || 1 || Ax || ∞ = n max i =1 | n X j =1 A j i x j |≤ n max i =1 n X j =1 | A j i | | x j | ≤ n max j =1 | x j | n max i =1 n X j =1 | A j i | = || x || ∞ || A || ∞ e que, se k ´ e o ´ ındice que realiza o m´ aximo na defini¸ c˜ ao da norma, en t˜ ao as igualdades s˜ ao realizadas p elos v etores x = I k , para a norma 1, e x | x j = sig ( A j i ), par a a norma ∞ . Definimos o n ´ umero de c ondi¸ c˜ ao de uma matriz como cond ( A ) = || A | | || A − 1 || . 9.2. PER TURBAC ¸ ˜ OES 97 Exemplo 1: Calcule a norma da matriz de bino mial de dimens˜ ao 3, e de sua inv ersa, nas normas 1 e ∞ . P ara cada uma das normas calculadas exiba um vetor x que, m ultiplicado pela matriz, seja “esticado” de um fator igual ` a pr´ opria norma, i.e. x | k Ax k = k A kk x k . 3 B = 1 0 ! 1 1 ! 0 2 0 ! 2 1 ! 2 2 ! 3 0 ! 3 1 ! 3 2 ! 3 B = 1 1 0 1 2 1 1 3 3 3 B − 1 = 3 − 3 1 − 2 3 − 1 1 − 2 1 P a ra 3 B a soma da no rma dos elemen tos | A j i | p o r linha e p or coluna s˜ ao, resp ectiv amen te, h 7 6 4 i e h 6 8 3 i . Para 3 B − 1 , a nalogamen te, temos h 7 6 4 i e h 7 6 4 i . Assim, para a nor ma 1, || 3 B || , || 3 B − 1 || , e cond ( 3 B ) s˜ ao respectiv amen te 6, 8, e 48. Analoga mente, para norma ∞ , temos 7, 7, e 49. Finalmente, h 0 1 0 i ′ e h 1 − 1 1 i ′ s˜ ao v etores como os pro cu- rados. 9.2 P ert u rba¸ c ˜ o e s Estudaremos agora uma maneira de limitar o efeito de uma p ertuba¸ c˜ a o nos d ados do sistema linear, Ax = b , sobre a sua solu¸ c˜ ao. T eorema 9.1 ( da p ertuba¸ c˜ ao) Se os dados do sistema Ax = b for em p ertub ados, isto ´ e, alter- ados de uma matriz δ A d e um vetor δ b , a r esp osta ser´ a p ertub ad a p or um δ x , isto ´ e ( A + δ A )( x + δ x ) = ( b + δ b ) , tal que, se || δ A || || A − 1 || < 1 , ent˜ ao || δ x || || x || ≤ cond ( A ) 1 − cond ( A ) || δ A || / || A || || δ b || || b || + || δ A || || A || ! . Demonstra¸ c˜ ao. ( A + δ A )( x + δ x ) = Ax + Aδ x + δ Ax + δ Aδ x = b + δ b , p o rtan to Aδ x = δ b − δ Ax − δ Aδ x , e δ x = A − 1 ( δ b − δ Ax − δ Aδ x ). As sim, || δ x || ≤ || A − 1 || ( || δ b || + || δ A | ||| x || + || δ A || || δ x || ) . 98 CAP ´ ITULO 9. EST ABILID ADE Como tamb ´ e m || b || ≤ || A || || x || , temos que 1 − || A − 1 |||| δ A || || δ x || || x || ≤ || A − 1 || || δ b || || x || + || δ A || ! ≤ || A − 1 || || A |||| δ b || || b || + || δ A || ! . Usando a hip´ otese || δ A || || A − 1 || ≤ 1, temos o teorema, QED. Exemplo 2: Considere o sistema ( B + δ A ) x = ( b + δ b ), onde a matriz de co eficien tes, e o v etor de termos indep enden tes corres p ondem ` a matriz bino mia l de dimens˜ ao 3, 3 B , e 3 b | 3 B 1 = 3 b . Os elemen tos da matriz e do ve tor de p ertuba¸ c˜ ao, δ A j i e δ b i , s˜ ao aleat´ or io s. A distribui¸ c˜ ao de cada um destes elemen tos de p erturba¸ c˜ ao ´ e indep enden te e ´ e uma fun¸ c˜ ao de dois parametros ( α , p ): T omemos cada elemen to da perturba ¸ c˜ a o ´ e no co jun to { 0 , − α, α } com probabilidade, respectiv amen te, [1 − p, p/ 2 , p/ 2]. Com os dados do Exemp lo 1, determine um limite m´ aximo para 0 ≤ α ≤ al f amax que garan ta a hip´ otese do teorema da p ertuba¸ c˜ a o . F a¸ ca uma experiˆ encia comparando limites de erro e p ertuba¸ c˜ ao da solu¸ c˜ ao do sistema prop osto. Na norma 1, || δ A || ≤ 3 α , e do Exemplo 1 sab emos que | | B − 1 || ≤ 7. Assim, a condi¸ c˜ ao || δ A |||| A − 1 || ≤ 1 est´ a garantida para α ≤ 0 . 04 < 1 / 21. T omando como experimento de p erturba¸ c˜ ao, δ A = 0 0 . 01 − 0 . 01 0 0 . 01 0 0 0 . 01 − 0 . 01 e δ b = 0 − 0 . 01 0 a solu¸ c˜ ao do sistema p ertubado ´ e x = [1 . 040 8 , 0 . 93 8 8 , 1 . 0 6 22] ′ , i.e. δ x = [0 . 04 , − 0 . 06 , 0 . 06] ′ e || δ x || = 0 . 16. P o r outr o lado, o T eorema da p ertuba¸ c˜ ao nos d´ a o limite || δ x || || x || ≤ 49 1 − 49 ∗ 0 . 03 / 7 ( 0 . 01 7 + 0 . 03 7 ) = 0 . 35 um limite superior de acordo com o resultado obtido no exp erimento. 9.3 Erro na F atora¸ c˜ ao LU Consideremos a resolu¸ c˜ ao de um sistema, Ax = b , p elo m´ eto do de Do olittle, isto ´ e , a decomp osi¸ c˜ ao A = LU , e a solu¸ c˜ ao do sistema Ly = b e U x = b . 9.3. ERR O NA F A T ORAC ¸ ˜ AO LU 99 T eorema 9.2 ( W ilkinson) A solu¸ c˜ ao, afetada p elos err os de arr e dondamento, p o de ser escrita c omo a solu¸ c˜ ao exata, x , mais um termo de p ertub a¸ c˜ ao δ x . Assumir e mos que um pr o duto esc alar em dupla pr e cis˜ ao ´ e afetado de um err o da or dem do err o de p assagem p ar a pr e c i s ˜ ao simples, c onforme a observa¸ c˜ ao 8.1 . Nestas c ondi¸ c˜ oe s,, a solu¸ c˜ ao c alculada, ( x + δ x ) , ´ e so l u¸ c˜ ao exata de um sistema. ( A + δ A )( x + δ x ) = b , tal que | | δ A || ∞ ≤ (2 n + 1) g u , onde g = max i,j | U j i | . Demonstra¸ c˜ ao. Consideremos as linhas da matr iz A j ´ a o r denadas de mo do a n˜ ao hav er necessidade de piv- oteamen tos. A decompo si¸ c˜ ao da matriz A ser´ a dada p or, para i = 1 . . . n L i U = A i LU i = A i ou, par a i = 1 . . . n , para j = i . . . n U j i = A j i − i − 1 X k =1 M k i U j k j = i + 1 . . . n M i j = ( A i j − i − 1 X k =1 M k j U i k ) /U i i Na realida de, obteremos a s matrizes a fetadas de erro, para i = 1 . . . n , para j = i . . . n ˜ U j i = f l ( f l d ( A j i − i − 1 X k =1 ˜ M k i ˜ U j k )) j = i + 1 . . . n ˜ M i j = f l ( f l d (( A i j − i − 1 X k =1 ˜ M k j ˜ U i k ) / ˜ U i i ))) Como sup omos desprez ´ ıve is os termos de O ( ud ) (vide observ a¸ c˜ ao 8.1) temos, para i = 1 . . . n , para j = i . . . n ˜ U j i = (1 + δ j i )( A j i − i − 1 X k =1 ˜ M k i ˜ U j k ) j = i + 1 . . . n ˜ M i j = (1 + δ i j )( A i j − i − 1 X k =1 ˜ M k j ˜ U i k ) / ˜ U i i P o rtan to, par a i = 1 . . . n , para j = i . . . n i − 1 X k =1 ˜ M k i ˜ U j k + 1 U i i = ˜ L i ˜ U j = A j i + ˜ U j i δ j i / (1 + δ i i ) j = i + 1 . . . n i − 1 X k =1 ˜ M k j ˜ U i k + ˜ M i j ˜ U i i = ˜ L j ˜ U i = A i j + ˜ M i j ˜ U i i δ i j / (1 + δ i j ) 100 CAP ´ ITULO 9. EST ABILID ADE Notemos agora que: | δ j i | / (1 + δ j i ) ∼ | δ j i | ≤ u , que | M j i | ≤ 1 , p elo piv oteamen to parcial, e definindo g = max i,j | U j i | , t emos que ˜ L ˜ U = A + E , onde | E j i | ≤ g u , donde | | E || ∞ ≤ ng u . Na solu¸ c˜ ao do sistema ˜ Ly = b e ˜ U x = y calculamos, par a i = 1 . . . n , ˜ y i = f l ( f l d (( b i − i − 1 X j =1 ˜ L j i ˜ y j ) / ˜ L i i )) e nov amen te, para i = 1 . . . n , ˜ x i = f l ( f l d (( ˜ y i − n X j = i +1 ˜ U j i ˜ x j ) / ˜ U i i )) . Sup ondo desprez ´ ıv eis os termos de 0( ud ) ˜ y i = (1 + δ i )( b i − i − 1 X j =1 ˜ L j i ˜ y j ) / ˜ L i i ˜ x i = (1 + δ ′ i )( y i − n X j = i +1 ˜ U j i ˜ x j ) / ˜ U i i ou i X j =1 ˜ L j i ˜ y j = ˜ L i ˜ y = b i + ˜ L j i ˜ y i δ i / (1 + δ i ) n X j = i ˜ U j i ˜ x j = ˜ U i ˜ x = ˜ y i + U j i ˜ x i δ i ′ / (1 + δ ′ i ) isto ´ e ( ˜ L + δ L ) ˜ y = b ( ˜ U + δ U ) ˜ x = ˜ y onde para as matrizes diagonais δ L e δ U , temos | δ L i i | ≤ u e | δ U i i | ≤ g u . Em suma, b = ( ˜ L + δ L ) ˜ y = ( ˜ L + δ L )( ˜ U + δ U ) ˜ x = ( ˜ L ˜ U + ˜ Lδ U + δ L ˜ U + δ Lδ U ) ˜ x = ( A + E + ˜ Lδ U + δ L ˜ U + δ Lδ U ) ˜ x = ( A + δ A ) ˜ x Desprezando o termo δ Lδ U , de O ( ud ), δ A = E + ˜ Lδ U + δ L ˜ U , donde || δ A || ∞ = || E || + || ˜ Lδ U + δ LU ˜ U || ≤ ng u + ( n + 1) g u 9.3. ERR O NA F A T ORAC ¸ ˜ AO LU 101 p ois || ˜ Lδ U + δ L ˜ U || ∞ ≤ ≤ 1 0 . . . 1 1 g u 0 . . . 0 g u + u 0 . . . 0 u g g . . . 0 g ∞ ≤ g u 0 . . . g u g u + g u g u . . . 0 g u ≤ 2 g u g u . . . g u 2 g u = ( n + 1) g u QE D . P a ra frisar a imp ortˆ ancia do uso conjugado do m ´ eto do de Do olittle e dup la precis˜ ao da remos, sem demonstra¸ c˜ ao, a v ers˜ ao do teorema ora demonstrado para o m ´ eto do de Gauss, que equiv ale ao m ´ eto do de Do olittle sem o recurso da dupla precis˜ ao: Definindo h = max i,j,k | k A j i | , ter ´ ıamos || E || ∞ ≤ O ( n 2 hu ) e | | δ A || ∞ ≤ O ( n 3 hu ). Estes resultados tornam eviden te a obrigatoriedade de calcularmos os pro dutos escalares env olvidos no processo, sempre em dupla pre cis˜ ao, a me nos que tratemos de sistemas de p equena dimens˜ ao. Al ´ em do piv oteamento parcial, isto ´ e, da escolha como elemen to pivˆ o do maio r elemen to em m´ odulo na coluna, p o der ´ ıamos usar o piv oteamen to total , isto ´ e, encolher como elemen to pivˆ o o maior elemen to em m´ odulo em qualquer linha o u coluna utiliz´ a v el (isto ´ e , p o deriamos tomar p or pivˆ o da transforma¸ c˜ ao k − 1 A → k A , um elemen to em ar g max k ≤ i,j ≤ n | k − 1 A j i . Usando pivoteamen to total, po demos demonstrar a exist ˆ encia de um limite sup erior para a constante h , sup ondo que a matriz o riginal A ´ e tal que | A j i | ≤ 1 , da ordem de O ( n (1 / 4) ln( n ) ), con tra limites de O (2 n ) para piv o teamen to parcial. O uso do piv oteamento total ´ e to dav ia, extremamen te custoso, p o is exige a cada passo da O ( n 2 ) compara¸ c˜ oes, con tra O ( n ) no piv o teamen to par cial. Ademais, estes limites de h tendem a ser extremamen te p essimistas, principalmen t e se A for b em equilibrada. Exerc ´ ıcios 1. Estabilidade de F atora¸ c˜ oes Sim ´ etricas. (a) Adapte os resultados de estabilidade da faor a¸ c˜ ao LU para o caso particular da fa tora¸ c˜ ao de Cholesky . (b) Q ual o n ´ umero de condi¸ c˜ ao de uma matriz ortogonal? Usando a rela¸ c˜ ao en tre o fa- tor triangular da fator a¸ c˜ ao QR e a fato ra¸ c˜ ao de Cholesky , dis cuta a estabilidade da fatora¸ c˜ ao QR. 102 CAP ´ ITULO 9. EST ABILID ADE 2. Pro ve que || || 1 , || || 2 e || || ∞ s˜ ao efetiv amen te normas. 3. Desenhe em R 2 a regiao || x || ≤ 1, para as normas 1, 2 e ∞ . 4. Pro ve o Lema 1. 5. Equiv alˆ encia das no rmas 1, 2 e ∞ : Prov e em R n que (a) || x || ∞ ≤ || x || 1 ≤ n || x || ∞ (b) | | x || ∞ ≤ || x || 2 ≤ n 1 / 2 || x || ∞ (c) | | A || 2 = λ , onde λ 2 ´ e o maior autov alor de A ′ A . (d) | | A ′ A || 2 = || A || 2 2 (e) | | A || 2 ≤ ( || A || 1 || A || ∞ ) 1 / 2 6. Calcule computacionalmente cond ( A ), para as matrizes de teste n T , A = n B e A = n H , para n = 2 , 4 , 8 , 16. Estime graficamen te o crescimen to do n ´ umero de condi¸ c˜ ao das matrizes teste em fun¸ c˜ ao da dimens˜ ao . 7. Resolv a computacionalmen te os sistemas teste 8 T x = 8 t , 8 B x = 8 b e 8 H x = 8 h . (a) P elo m ´ eto do de Gauss com piv oteamen to parcial; (b) Pelo m ´ eto do de Gauss com piv oteamen to to t a l; (c) Pelo m ´ eto do de Do olittle com piv oteamen to parcial e dupla precis˜ ao; (d) Pelo m ´ eto do de Do olittle com piv oteamen to total e dupla precis˜ ao. No item c, v erifique se o erro final est´ a den tro do esp erado, em fun¸ c˜ ao da unidade de erro do SPF utilizado. Cap ´ ıtulo 10 MUD ANC ¸ A de BASE A tualiza¸ c˜ oes de P osto 1 Em Otimiza¸ c˜ ao , principalmen te em Programa¸ c˜ ao Linear, o termo base significa uma matriz quadrada de p osto pleno. Estudaremos agora o pro blema de muda n¸ ca de base , aqui p osto na seguin te forma: Seja ˆ A a nov a base, o btida da base o riginal, A , substituindo-se a coluna A s p or uma no v a coluna, a , isto ´ e ˆ A = [ A 1 , . . . A s − 1 , a, A s +1 , . . . A n ]. Se j´ a dispusermos da in v ersa de A (ou na pr´ atica mais com umente de uma fatora¸ c˜ ao de A ), como atualizar a inv ersa (ou a fatora¸ c˜ ao)? Isto ´ e, como, a partir da in v ersa de A obter a in ve rsa de ˆ A com um trabalho m uito menor que o necess´ ario para rein verter ˆ A , i.e., computar a in v ersa de no v o , sem aprov eitar a informa¸ c˜ ao con tida em A − 1 ou, na fatora¸ c˜ ao A = LU ou A = QR ? 10.1 F´ orm ulas de Mo d ifica¸ c˜ ao T eorema 10.1 ( f´ ormula geral de mo difica¸ c˜ ao) D ada A , n × n e invers ´ ıvel, V = A − 1 , δ A , n × n , e α ∈ R suficientemente p e queno, p o d emos fazer a exp ans ˜ ao ( A + αδ A ) − 1 = V + ∞ X k =1 ( − α ) k ( V δ A ) k V . Demonstra¸ c˜ ao: Em virtude da regra de Cramer p o demos, para α ∈ [0 , alphamax], escrev er a s ´ erie de T a ylor para cada elemen to de ( A + α δ A ) − 1 , ( A + δ A ) − 1 = V + ∞ X k =1 α k k ! δ k V P a ra determinar a ma t r iz que d´ a a p erturba¸ c˜ ao de ordem k da inv ersa δ k V observ emos que ( A + αδ A )( V + α δ V + α 2 2 δ 2 V + α 3 3! δ 3 V + . . . ) = I 103 104 CAP ´ ITULO 10. MUDA NC ¸ A DE BASE donde α ( δ A V + A δ V ) + α 2 ( 1 2 A δ 2 V + δ A δ V ) + α 3 ( 1 6 A δ 3 V + 1 2 δ A δ 2 V ) + . . . = 0 de mo do que δ V = − V δ A V , δ 2 V = 2 V δ A V δ A V , δ 3 V = ( V δ A ) 3 V , . . . δ k V = ( − 1) k k ! ( V δ A ) k V . Substituindo esta f´ ormula geral de δ k V na s ´ erie de T a ylor de ( A + α δ A ), segue diretamen te o teorema. QED. T eorema 10.2 ( f´ ormula de Sherman e Morrison) Dada A , n × n e invers ´ ı v e l, u e w n × 1 , e α ∈ R ∗ , ent˜ a o a inversa de ˆ A = A + α uw ′ ´ e dada p or ˆ A − 1 = A − 1 + β A − 1 uw ′ A − 1 , β = − ( α − 1 + w ′ A − 1 u ) − 1 . Demonstra¸ c˜ ao: Da f´ orm ula geral de mo difica¸ c˜ ao, supo ndo que α < alfamax, e das propriedades do op erador tra¸ co (exerc ´ ıcio 1 .5 ) temos: ( A + αuw ′ ) − 1 = = V + ∞ X k =1 ( − α ) k ( V uw ′ ) V = V − αV uw ′ V X k ( − α tr( V uw ′ )) k = V − αV uw ′ V 1 + α tr( V uw ′ ) = V − V uw ′ V α − 1 + tr( V uw ′ ) = V − ( α − 1 + w ′ V u ) − 1 V uw ′ V . o que pro v a o teorema para 0 < α < a lpha ma x. A f´ ormula de Sherman e Morrison ´ e to davia uma iden tidade que po demos pro v ar diretamente para qualquer α > 0 | ( α − 1 + w ′ A − 1 u ) 6 = 0: Usando a form ula de Sherman e Morisson para desen v olv er a identidade ˆ A − 1 ˆ A = I , obtemos, ( V + β V uw ′ V )( A + αuw ′ ) = I ⇔ β V uw ′ + αβ ( V uw ′ ) 2 = − α V uw ′ ⇔ ( α − 1 + w ′ V u ) αV uw ′ = − β − 1 αV uw ′ 10.1. F ´ ORMULAS D E MODIFICAC ¸ ˜ AO 105 sendo esta ´ ultima iden tidade trivialmen te verdadeira. Q.E.D. Exemplo 1: T omando A = " 1 0 2 1 # , u = " 1 2 # , w = " 3 4 # , α = 1 , p o demos calcular a inv ersa de ˆ A = " 1 0 2 1 # + " 3 4 6 8 # = " 4 4 8 9 # calculando β = − (1 + 3) − 1 = − 1 / 4 , ˆ A − 1 = " 1 0 − 2 1 # − (1 / 4) " − 5 4 0 0 # = " 9 / 4 − 1 − 2 1 # Observ a¸ c˜ ao 10.1 Note que uma m udan¸ ca de base p o deria ser feita p ela f´ orm ula de Sherman e Morrison, p ois se ˆ A = [ A 1 , . . . A j − 1 , a, A j +1 , . . . A n ], en t˜ ao, ˆ A = A + ( a − A j ) I j , de mo do que a in v ersa da no v a base seria, tomando V = A − 1 , ˆ A − 1 = V + β V ( a − A j ) I j V = V + V β ( a − A j ) V j onde β = − (1 − I j V ( a − A j )) − 1 = − ( V j a ) − 1 . Exemplo 2: Se A = " 1 0 2 1 # , a = " 1 3 # e j = 2 , en t ˜ ao a in v ersa da no v a base, ˆ A − 1 , p ose ser calculada como segue β = − ( h − 2 1 i " 1 3 # ) − 1 = − 1 ˆ A − 1 = ( " 1 1 2 3 # ) − 1 = = " 1 0 − 2 1 # + " 1 0 − 2 1 # ( − 1)( " 1 3 # − " 0 1 # ) h − 2 1 i = " 1 0 − 2 1 # + " − 1 0 # h − 2 1 i = " 3 − 1 − 2 1 # 106 CAP ´ ITULO 10. MUDA NC ¸ A DE BASE 10.2 A tualiza¸ c˜ oes Est´ av e is O Algoritmo de Bartels e Golub , que apresen taremos a seguir, nos d´ a uma atualiza¸ c˜ ao est´ ave l da fa tora¸ c˜ ao LU de uma matriz. T omando T = L − 1 , A = L U , T ˆ A = [ U 1 , . . . U s − 1 , T a, U s +1 , . . . U n ] . Consideremos ag o ra a p ermuta¸ c ˜ ao de colunas que com uta a s -´ esima e a n -´ esima colunas, ˆ Q Esta p ermuta¸ c ˜ ao lev a ˆ A em ¯ A = ˆ A ˆ Q , e T ˆ A em T ˆ A ˆ Q = U 1 1 . . . U s − 1 1 T 1 a U s +1 1 . . . U n 1 . . . . . . . . . . . . . . . 0 U s − 1 s − 1 T s − 1 a U s +1 s − 1 U n s − 1 0 0 T s a U s +1 s U n s 0 0 T s +1 a U s +1 s +1 U n s +1 . . . . . . . . . 0 . . . 0 T n a 0 . . . U n n Q = H = U 1 1 . . . U s − 1 1 U s +1 1 . . . U n − 1 1 U n 1 T 1 a 0 . . . . . . . . . . . . U s − 1 s − 1 U s +1 s − 1 U n − 1 s − 1 U n s − 1 T s − 1 a 0 0 U s +1 s U n − 1 s U n s T s a 0 0 U s +1 s +1 . . . U n − 1 s +1 U n s +1 T s +1 a . . . . . . . . . . . . 0 0 0 U n − 1 n − 1 U n n − 1 T n − 1 a 0 . . . 0 0 . . . 0 U n n T n a H ´ e uma matriz de Hessen b erg sup erior, isto ´ e, ap enas os elemen tos para lelos ` a diagonal principal p o dem ser n˜ ao n ulos no t r iˆ angulo inferior. O m ´ etodo de Bartels e Golub consiste na aplica¸ c˜ ao de m ´ eto do de Gauss, com piv ota men to parcial, ` a matriz H . Observ emos que a aplica¸ c˜ ao do m ´ eto do de Ga uss ` a matriz H ´ e ex tremamen te simple s, p ois 1. As primeiras s − 1 etapas de transforma¸ c˜ ao n˜ ao s˜ ao necess ´ arias, p ois nas colunas 1 , . . . s − 1, H j´ a ´ e triangular sup erior. 2. As etapas j = s, . . . n − 1, que transformam 0 H = s − 1 H → s H → . . . j H → . . . n − 1 H = ˆ U resumem-se em (a) P ermutar as linhas j e j + 1 se | j − 1 H j j +1 | > | j − 1 H j j | , obtendo uma no v a matriz j − 1 ˜ H . 10.3. PRESER V ANDO ESP ARSID ADE 107 (b) Calcular um ´ unico m ultiplicador j N j j +1 = j − 1 ˜ H j j +1 / j − 1 ˜ H j j . (c) Atualizar uma ´ unica linha j H j +1 = j − 1 ˜ H j +1 − j N j j +1 j − 1 ˜ H j . A aplica¸ c˜ ao do meto do de Gauss nos d´ a a fatora¸ c˜ ao ˜ H = ˆ L ˆ U , onde ˜ H = ˆ RH ´ e a mat riz obtida de H p elas permuta¸ c ˜ oes de linhas realizadas durante a triangulariza¸ c˜ ao. As sim, ˜ H = ˆ RH = ˆ RT ¯ A = ˆ L ˆ U , donde ¯ A = L ˆ R t ˆ L ˆ U , ou ˆ V = ¯ A − 1 = ˆ U − 1 ˆ T ˆ RT Ap´ os uma seq ¨ uˆ encia de m udan¸ cas de base, nossa represen ta ¸ c˜ a o da in v ersa teria a forma k V = k U − 1 k T k R . . . 1 T 1 R T . 10.3 Preserv ando Esparsi dade O algoritmo de Saunders , que agora examinamos, p o de ser visto como uma adapta¸ c˜ ao do algoritmo de Bartels e G olub vis ando apro v eitar a pr ´ ev ia estrutura¸ c˜ ao da base p elo a lgoritmo P4. Sup onhamos termos a fato r a ¸ c˜ ao A = LU obtida p ela aplica¸ c˜ a o do m´ eto do de G a uss ( sem piv o tamen t o de linhas mas com p oss ´ ıveis p erm uta¸ c˜ oes de colunas) ` a matriz A previamen t e estru- turada p elo P4, p or 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 7 x x x x x x 8 x 0 x x x 9 x x x x x x 10 x x x x 0 No Exemplo 3, “x” indica as p osi¸ c˜ oes orig ina lmen te n˜ a o n ulas de A e “0” indica as p osi¸ c˜ oes preenc hidas durante a t r ia ngulariza¸ c˜ ao. 108 CAP ´ ITULO 10. MUDA NC ¸ A DE BASE Seja ˜ U a matriz obtida de U p ela p ermuta¸ c˜ ao sim ´ etrica, Q ′ U Q , que lev a os espinhos, preser- v ando sua ordem de p osicionamen to , para as ´ ultimas colunas ` a direita. No Exemplo 3, ter ´ ıamos, ˜ U = Q ′ U Q = 1 2 3 5 6 7 9 4 8 10 1 x 2 x x 3 x x 5 x 6 x 7 x x 9 x x x 4 x 8 x x 10 x Esta matriz tem estrutura ˜ U = " D E 0 F # , onde D ´ e diagonal e F ´ e triangular sup erior. O a lg oritmo de Saunders atualiza a decomp osi¸ c˜ ao A = LQ ˜ U Q ′ para a no v a base ˆ A = h A 1 . . . A s − 1 a A s +1 . . . A n i ou ˆ A ˆ Q = h A 1 . . . A s − 1 A s +1 . . . A n a i como segue: 1. F orma, p ela p erm uta ¸ c˜ a o ˜ U ˆ Q , e substitui¸ c ˜ ao da ´ ultima coluna, W = T ˆ A ˆ Q = Q ′ T AQ ˆ Q = h ˜ U 1 . . . ˜ U s − 1 ˜ U s +1 . . . ˜ U n Q ′ T a i . 2. F orma, p ela p erm uta ¸ c˜ a o sim ´ etrica, ˆ W = ˆ Q ′ T ˆ A ˆ Q == ˆ Q ′ Q ′ T ˆ AQ ˆ Q = ˆ W = h ( W 1 ) ′ . . . ( W s − 1 ) ′ ( W s +1 ) ′ . . . ( W n ) ′ ( W s ) ′ i ′ . Note que ˆ W tem uma estrutura do tip o ˆ W = ˆ D ˆ E ˆ W n 1: n − c − 1 0 ˆ F ˆ W n n − c : n − 1 0 W s ˆ W n n onde ˆ D ´ e diagona l e W s s´ o p o de ter ele men t o s n˜ ao nulos nas ´ ultimas p osi¸ c˜ oes ` a direita (sob ˆ F e ˆ W n ). 10.3. PRESER V ANDO ESP ARSID ADE 109 3. T riangulariza ˆ W , isto ´ e, ˆ N , p elo m´ eto do de Gauss com piv otamen to parcial. A matriz ˆ N , constitu ´ ıda de ˆ F e dos ´ ultimos elemen to s da linha W s e da coluna ˆ W n , ´ e denominada n ´ ucleo de ˆ W . Nas r otinas num ´ ericas p o de ser con v enien te g uardar ap enas o n ´ ucleo, c × c, c << n como uma matriz densa na mem´ oria principal, enquan t o o resto da matriz, usada ap enas para leitura, p o de ser guardada em uma represen ta¸ c˜ ao esparsa, e na mem´ oria secund´ ar ia. No Exemplo 3 ter ´ ıamos, a o m udar a coluna 3 da base A, ˆ A = 1 2 3 4 5 6 7 8 9 1 0 1 x y 2 x x 3 x x 4 y x 5 x x x 6 x x x 7 x y x x x x x 8 x x x x 9 x x x x x x 10 x y x x x W = 1 2 5 6 7 9 4 8 10 3 1 x y 2 x x 3 x 5 x 6 x x 7 x x x y 9 x x 4 x y 8 x x 10 x y 110 CAP ´ ITULO 10. MUDA NC ¸ A DE BASE ˆ W = 1 2 5 6 7 9 4 8 10 3 1 x y 2 x x 5 x 6 x x 7 x x x y 9 x x 4 x y 8 x x 10 x y 3 x 0 Ap´ os a tr iangulariza¸ c˜ ao de ˆ W teremos, sendo ˆ R as p erm uta¸ c˜ oes de linhas realizadas ao trian- gularizar ˆ W , ˆ R ˆ W = ˆ L ˆ U = ˆ R ˆ Q ′ Q ′ T ˆ AQ ˆ Q p ortan to ˆ A = LQ ˆ Q ˆ R ′ ˆ L ˆ U ˆ Q ′ Q ′ e ˆ A − 1 = Q ˆ Q ˆ U − 1 ˆ T ˆ R ˆ Q ′ Q ′ T . Em geral, ap´ os uma seq ¨ uˆ encia de mu dan¸ cas de base, nossa represen ta¸ c˜ ao da in ve rsa te r´ a a forma k A − 1 = Q 1 Q . . . k Q k U − 1 k T k R k Q ′ . . . 1 T 1 R 1 Q Q T . Observ a¸ c˜ ao 10.2 1. A regi˜ ao dos preenc himen tos em k W est´ a restrita ao triˆ angulo superior do n ´ ucleo e sua ´ ultima linha. 2. A matriz k L s´ o ter´ a elemen tos n ulos na ´ ultima linha do n ´ ucleo. 3. A cada nov a m udan¸ ca de base, a dimens˜ ao do n ´ ucleo: (a) Aumen ta de 1, se a coluna que sai da base ´ e uma coluna tr ia ngular da base original. (b) Permanec e constan t e, se a coluna que s ai da base ´ e um espinho, ou uma coluna j´ a an teriormen te substitu ´ ıda. 4. Cada m udan¸ ca de base aumenta um termo na fatora ¸ c˜ ao da base, o que lev a a uma gradativ a p erda de efic i ˆ encia e ac ´ um ulo de erros. Depo is de um n´ umero pr ´ e-determinado de mudan¸ cas sobre uma base original, ou quando o ac ´ um ulo de erros assim o exigir, dev emos fazer uma reiv ers˜ a o, i.´ e., reiniciar o pro cesso aplicando a P4 e tr iangularizando a pr´ oxima base desejada. 10.4. PRESER V ANDO ESTR UTURA 111 10.4 Preserv ando Estru tura Consideraremos agora o problema de a tualizar a fatora¸ c˜ ao A = QU de uma base na forma ang ula r blo cada. Confor me argumen t amos no final do cap ´ ıtulo 7, e stamos a p enas in teressados no fator U , sendo as tr a nsforma¸ c˜ oes ortogonais descartadas lo g o ap´ os o seu uso. No que segue, a coluna a sair da base ser´ a a coluna outj do blo co outk , 1 ≤ outk ≤ h + 1. Em seu lugar ser´ a in tr o duzida na base uma coluna com a estrutura do blo co ink , 1 ≤ ink ≤ h + 1. Apresen tamos ag o ra um pro cedimen to de atualiza¸ c˜ ao de U p or blo cos, bup (), que usa explici- tamen te a es trutura angula r blo cada da base A e do fator U . Este procedimen to ser´ a descrito em termos das op era¸ c˜ oes simples em cada blo co apresen tadas na se¸ c˜ ao 7.5. Em bup () consideraremos cinco casos distin tos: Caso I ink 6 = ou tk , ink 6 = h + 1 , ou tk 6 = h + 1. Caso I I ink = ou tk , ink 6 = h + 1. Caso I I I ink 6 = h + 1 , outk = h + 1. Caso IV ink = h + 1 , outk 6 = h + 1. Caso V ink = outk , ink = h + 1. V ejamos em detalhe o caso I, quando ink and ou tk s˜ ao blo cos diagonais distin t o s, como mostrado na figura 1 . Neste caso os ´ unicos ENN’s na coluna saindo est˜ ao no blo co outk B outj • . Analogamen te os ´ unicos ENN’s na coluna en trando na base, a , est˜ ao em ink a . Definimos y ≡ A ′ a , e u ≡ Q ′ a = U − t A ′ a = U − t y . No tamos que os v etores y e u preserv a m a estrutura blo cada da ba se. A ssim, os ENN’s em u est˜ ao nos blo cos ink u e h +1 u , " ink u h +1 u # = " ink V ink W 0 S # − t " ink y h +1 y # P a ra at ua lizar U remov emos a coluna o utj do blo co outk , e inserimos u como a ´ ultima col- una de ink U . Dep ois ap enas temos que reduzir U a uma matriz triangular sup erior at ra v ´ es de transforma¸ c˜ oes or t o gonais. 1. Lev e h outk V outk W i de Hessen b erg a triangular sup erior. 2. Lev e h h +1 u S i a triangular. 3. Insira a primeira linha de h +1 U , como a ´ ultima linha de ink U . 4. Insira a ´ ultima linha de outk U como a primeira de h +1 U . 112 CAP ´ ITULO 10. MUDA NC ¸ A DE BASE 5. Lev e S de Hessen b erg a triangula r sup erior. Os outros casos s˜ ao bastan te similares. Os esq uemas nas figuras 2, 3 e 4 s˜ ao os a n´ alogos do esquema na figura 1, e d˜ ao uma descri¸ c˜ ao sum´ aria de cada um dos casos. Estes s˜ ao os pa ssos para o caso I : 1. No n´ o ink , compute y ink = ( B ink ) t a ink e y b +1 = ( C ink ) t a ink . pT ime = m ( ink ) n ( ink ) + m ( ink ) n ( b + 1 ) ≤ 2 dbmax 2 , I N C = 0 . 2. No n´ o ink , compute a transforma¸ c˜ a o in versa pa r cial " u ink z # = " V ink W ink 0 I # − t " y ink y b +1 # En t ˜ ao insira u ink como a ´ ultima coluna de V ink . pT ime = (1 / 2) n ( ink ) 2 + n ( ink ) n ( b + 1 ) ≤ (3 / 2) dbmax 2 , I N C = 0 . 3. Do n´ o ink en vie z ao n´ o 0. pT ime = 0 , I N C = n ( b + 1 ) ≤ dbmax . 4. No n´ o 0 compute u b +1 = S − t z . pT ime = (1 / 2) n ( b + 1) 2 ≤ (1 / 2 ) dbmax 2 , I N C = 0 . 5. (a) No n´ o outk , remov a a coluna V outk • ,outj de V outk . En t˜ ao reduza h V outk W outk i de Hes- sen b erg para triangular sup erior. (b) No n´ o 0, reduza h u b +1 S i para triangula r sup erior. Observ e que as op era¸ c˜ oes nos passos 5 a e 5 b s˜ ao indep enden tes, p ortanto pT ime = 2 n ( ink ) 2 + 4 n ( ink ) n ( b + 1) ∧ 2 n ( b + 1) 2 ≤ 6 dbmax 2 , I N C = 0. 6. Do n´ o 0 en vie o v etor S 1 , • ao n´ o ink , onde ele ´ e inserido como a ´ ultima coluna de W ink . Do n´ o 0 en vie o elemen to u b +1 1 ao n´ o ink , onde ele ´ e inserido como U ink n ( ink )+1 ,n ( ink )+1 . Do n´ o outk en vie v etor W outk n ( outk ) , • ao n´ o 0, onde ele ´ e inserido como a primeira linha de S . pT ime = 0 , I N C = 2 n ( b + 1) + n ( outk ) ≤ 3 d bmax . 7. No n´ o 0, reduza S de Hessen b erg para triangular superior. pT ime = 2 n ( b + 1) 2 ≤ 2 dbmax 2 , I N C = 0 . Estes s˜ ao os pa ssos para o caso I I : Os Pas sos 1—5 s˜ ao exatamen te como no caso I. 6. (a) Do n´ o ink envie V ink n ( ink ) ,n ( ink ) e W ink n ( ink ) , • ao n´ o 0. 10.4. PRESER V ANDO ESTR UTURA 113 (b) No n´ o 0 reduza para triangular sup erior a matriz 2 × n ( b + 1) + 1 " V ink n ( ink ) ,n ( ink ) W ink n ( ink ) , • u b +1 1 S 1 , • # pT ime = 4 n ( b + 1) ≤ 4 d bmax , I N C = n ( b + 1) ≤ dbm ax . 7. (a) Do n´ o 0 env ie o v etor mo dificado h V ink n ( ink ) ,n ( ink ) W ink n ( ink ) , • i de v olta ao n´ o ink . (b) No n´ o 0, reduza S de Hessen b erg para triangular sup erior. pT ime = 2 n ( b + 1) 2 ≤ 2 dbmax 2 , I N C = n ( b + 1) ≤ dbmax . Estes s˜ ao os pa ssos do caso I I I : Os passos 1—4 s˜ a o exatamen te como no caso I. 5. (a) No n´ o k = 1 : b remo v a a coluna W k • ,outj de W k . (b) No n´ o 0 reduza h u b +1 S i para triangula r sup erior. Remo v a S • ,outj de S . pT ime = 2 n ( b + 1) 2 ≤ 2 dbmax 2 , I N C = 0 . 6. Do n´ o 0 en vie ao n´ o ink , u b +1 1 para ser inserido em V ink como V ink n ( ink )+1 ,n ( ink )+1 , e S 1 , • para ser inserido como a ´ ultima coluna de W ink . pT ime = 0 , I N C = n ( b + 1 ) ≤ dbmax . 7. No n´ o 0, reduza S de Hessen b erg para triangular superior. pT ime = 2 n ( b + 1) 2 ≤ 2 dbmax 2 , I N C = 0 . Estes s˜ ao os pa ssos do caso IV : 1. No n´ o k=1:b , compute y k = ( B k ) t a k e x k = ( C k ) t a k . pT ime = ∧ b 1 m ( k ) n ( ink ) + m ( k ) n ( b + 1) ≤ 2 dbmax 2 , I N C = 0. 2. No n´ o k=1:b , compute a transforma¸ c˜ ao in ve rsa parcial " u k z k # = " V k W k 0 I # − t " y ink x k # e insira u k como a ´ ultima coluna de W k . pT ime = ∧ b 1 (1 / 2) n ( k ) 2 + n ( k ) n ( b + 1) ≤ (3 / 2) dbmax 2 , I N C = 0. 3. Do n´ o k=1:b en vie z k ao n´ o 0, onde acum ulamos z = P b 1 z k . pT ime = b n ( b + 1) ≤ b d bmax , I N C = b n ( b + 1) ≤ b dbmax . 4. No n´ o 0 compute u b +1 = S − t z , e insira u b +1 como a ´ ultima coluna de S . pT ime = (1 / 2) n ( b + 1) 2 ≤ (1 / 2 ) dbmax 2 , I N C = 0 . 114 CAP ´ ITULO 10. MUDA NC ¸ A DE BASE 5. remo v a a coluna V outk • ,outj de V outk , e r eduza h V outk W outk i para triangula r sup erior. pT ime = 2 n ( outk ) 2 + 4 n ( outk ) n ( b + 1) ≤ 6 dbmax 2 , I N C = 0. 6. En vie o v etor W outk n ( ouk ) , • do n´ o ou tk ao n´ o 0, onde o inserimos como a primeira linha de S , e reduza S a triangular. pT ime = 2 n ( b + 1) 2 ≤ 2 dbmax 2 , I N C = n ( b + 1) ≤ dbmax . Estes s˜ ao os pa ssos do caso V : Os passos 1—4 s˜ a o exatamen te como no caso IV. 5. No n´ o k=1:b , remo v a a coluna W k • ,outj de W outk , e insira u k como a ´ ultima coluna de W k . No n´ o 0 remov a a coluna S • ,outj de S , e insira u b +1 como a ´ ultima coluna de S . pT ime = 0 , I N C = 0. 6. No n´ o 0, reduza S de Hessen b erg para triangular superior. pT ime = 2 n ( b + 1) 2 ≤ 2 dbmax 2 , I N C = 0 . A complexidade do pro cedimen to de atualiza¸ c˜ ao de U p o r blo cos, bup (), ´ e dada p elo seguin te teorema: Como na se¸ c˜ ao 7.4, dbmax = max h k =1 n ( k ). T eorema 10.3 A c om plexidade d e bup () , desc onsid er amos term o s de or de m in ferior, tem os se guintes limitantes sup erio r es p ar a temp o de pr o c essa mento e c omunic a¸ c˜ ao : Caso Pr o c essamento Comunic a¸ c˜ ao I 12 dbmax 2 3 dbmax II 12 dbmax 2 3 dbmax III 8 dbmax 2 2 dbmax IV 12 dbmax 2 + b dbmax h dbmax V 6 dbmax 2 + b dbmax h dbmax Caso o am bien t e p ermita com unica¸ c˜ oes em pa r a lelo, p o demos substituir h p or l og ( h ) nas express˜ oes de complexidade. 10.4. PRESER V ANDO ESTR UTURA 115 B 1 V 1 S V 2 V 3 outk = 1 B 2 ink = 2 B 3 C 2 C 3 C 1 W 1 W 2 W 3 B U ✻ outj = 2 ❄ 0 0 0 0 x x u * * 0 0 ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ✲ ✲ Caso I 116 CAP ´ ITULO 10. MUDA NC ¸ A DE BASE ✲ * 0 0 0 0 x x x * 0 0 ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ ❅ 0 0 x x 0 0 0 Caso I I Caso I I I 10.4. PRESER V ANDO ESTR UTURA 117 ❅ ❅ ❅ ❅ ✲ 0 0 0 0 0 0 0 0 Caso IV Caso V 118 CAP ´ ITULO 10. MUDA NC ¸ A DE BASE Matlab Hist´ orico Matlab, de Matrix Lab oratory , ´ e um ambie n te interativ o para computa¸ c˜ ao en v olv endo matrizes. Matlab f o i desen volvido no inicio da d´ ecada de 80 p or Clev e Moler, no Departamen to de Ci ˆ encia da Computa¸ c˜ ao da Univ ersidade do Nov o M ´ ex ico, EUA. Matlab colo ca ` a disp osi¸ c˜ ao do usu´ ario , n um am bien te in terativo, as bibliotecas desen volv idas nos pro jetos LINP A CK e EISP A CK. Estes pro jetos elabor a ram bibliotecas de dom ´ ınio p ´ ublico para ´ Algebra Linear. LINP A CK tem rotinas para solu¸ c˜ ao de s istemas de eq ua¸ c˜ oes lineares, e EISP A CK tem rotinas para c´ alculo de autov alores. Os man uais destes pro jetos s˜ ao p ortanto do cumen ta¸ c˜ a o complemen tar ` a do cumen ta¸ c˜ ao do Matlab. V ers˜ oes posteriores de Matla b, atualmen te na v ers˜ ao 4.0, foram desen v olvidas na firma comer- cial MathW orks Inc., que detˆ em os direitos autorais destas implemen ta¸ c˜ oes. As v ers˜ oes recente s do pro duto Matlab melhoram significativ amen te o am bien te in terativ o, incluindo facilidades gr´ aficas de visualiza¸ c˜ ao e impress˜ ao; to da via a “Linguag em Matlab” mantev e-se quase inalterada. Existem v´ arios in terpretadores da linguagem Matlab em dom ´ ınio publico, como Matlab 1.0 , Octa v e e rlab. Existem ta mb ´ e m outros in t erpretadores comerciais de Matlab, como CLAM. Existem a inda v´ arias T o ol Boxes , bib liotecas vendidas pela MathW orks e p or terceiros, com rotinas em Matlab para ´ areas espec ´ ıficas. Usaremos a grafia de nome pr´ oprio, Matlab , como referˆ encia a linguagem, o nome em mai ´ usculas, MA TLAB , como refer ˆ encia ao pro duto comercial da MathW orks, e a grafia em min ´ usculas, mat- lab , como refer ˆ enc ia a um in terpretador gen´ erico da lingua gem Matlab. O Am bien te P a ra en tr a r no am biente matlab, simples men te digit e “matlab”. O prompt do matlab ´ e >> , que esp era p or comandos. P ara sair use o comando quit . D en tr o do ambien te matlab, um comando precedido do bang, ! , ´ e executado pelo sistema operacional, assim: usando !dir ou !ls ficaremos sab endo os arquiv os no diret´ orio corren t e, e usando !edit , !vi ou !emacs , seremos capazes de editar um arquiv o . Normalmen te Matlab distingue mai ´ usculas de min ´ usculas. 119 120 Matlab O comando help exibe to dos os comando s e s ´ ım bo los sint´ aticos disp on ´ ıv eis. O comando help nomecom fornece informa¸ c˜ oes sobre o comando de nome n ome c om . O comando diary nomearq abre um arquiv o de nome nom e ar q , e ec oa tudo que aparece na t ela para este arquiv o. Rep etindo o comando diary fec hamos este arquiv o . O formato dos n ´ umeros na tela po de ser alterado com o comando format . Os comandos who e whos listam as v a r i´ av eis em exist ˆ encia no espa¸ co de trabalho. O comando clear limpa o es pa¸ co de trabalho, extinguindo to das as v ari´ ave is. O comando save nomearq guarda o espa¸ c o de trabalho no arquiv o nome ar q , e o comando load nomearq carrega um espa¸ co de trabalho previamen te guardado com o comando save . Em Matlab h´ a do is terminadores de comando: a v ´ ırgula, , , e o p onto-e-v ´ ırgula, ; . O resultado de um comando terminado p or v ´ ırgula ´ e ecoado para a tela. O terminador p on to-e-v ´ ırgula n˜ ao causa eco. Resultados ecoados na tela s˜ ao atribu ´ ıdos a v ari´ av el do sistema ans (de answ er, ou resp osta). O te rminador v ´ ırgula p o de ser suprimido no ´ ultimo comando da linha. P ara con tin uar um comando na linha seguin te dev emos terminar a linha corren te com tr ˆ es p ontos, ... , o s ´ ım b o lo de contin ua¸ c˜ ao. O sinal de p o r cento, % , indica que o resto da linha ´ e comen t´ ario. Matrizes O tip o b´ asico do Matlab ´ e uma matriz de n ´ umeros complexos. Uma matriz re al ´ e uma matriz q ue tem a parte imagin´ aria de to dos os seus elemen tos nula. Um v etor linha ´ e uma matriz 1 × n , um v eto r coluna uma matriz n × 1, e um escalar uma matriz 1 × 1. As a tribui¸ c˜ oes A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; ou A = [1 2 3; 4 5 6; 7 8 9]; , s˜ ao equiv alen tes, e atribuem ` a v ari´ av el A o v alor A = 1 2 3 4 5 6 7 8 9 Matrizes s˜ ao delimitadas p or colc hetes, elemen tos de uma mesma linha s˜ a o separados p or v ´ ırgula s (ou ap enas p or espa¸ cos em branco), e linhas s˜ a o separadas p or p on to-e-v ´ ırgula (ou p elo caracter no v a-linha ) . O ap´ ostrofe, ’ , transp˜ oem uma matriz. ´ E f´ acil em Matlab compor matrizes blo cadas, desd e que os blo cos tenham dimens˜ oes compat ´ ıv eis! Por exemplo: A = " 1 2 3 4 # , B = " 5 6 # , C = 7 8 9 , D=[A,B;C’]; D = 1 2 5 3 4 6 7 8 9 Cuidado ao concatenar matrizes c om os espacos em branco, p ois estes s ˜ ao equiv alentes a v ´ ır gulas, separando elemen tos. Assim: [1,2+3] ==[1 5] mas [1,2 +3]==[1,2,3] . Matlab 121 H´ a v´ a rias fun¸ c˜ oes para gera r matrizes e v etores esp eciais: zeros(m,n ) , ones(m,n) e rand(m,n) s˜ ao matrizes de dimens˜ ao m × n com, resp ectiv amen te, zeros, uns, e n ´ umeros aleat´ orios em [0,1]. O v etor i:k:j ´ e o v etor linha [ i, i + k , i + 2 k , . . . i + nk ], onde n = max m | i + mk ≤ j . P o demos suprimir o “passo” k = 1, escrev endo o v etor i:1:j simples men te como i:j . Se v ´ e um v etor, diag(v) ´ e a matriz diagonal com diagonal v , se A ´ e uma matriz quadrada, diag(A) ´ e o v etor com os ele men t o s da dia g onal principal de A . A matriz iden tidade de ordem n ´ e eye(n) , o mesmo que diag(ones(1 ,n)) . A(i,j) ´ e o elemen to na i - ´ es ima linha, j -´ esima coluna de A , m × n . Se v i e v j s˜ a o v etores de ´ ındices em A , i.e. v etores linha com elemen tos inteiros p ositiv os, em v i n˜ a o excedendo m , e em v j n˜ ao excedendo n , A(vi,vj) ´ e a sub-matriz do elemen tos de A com ´ ındice de linha em v i e ´ ındice de coluna em v j . 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: A = 11 12 13 21 22 23 31 32 33 v i = " 3 1 # v j = " 2 3 # A ( v i, v j ) = " 32 33 12 13 # As op era¸ c˜ oes de adi¸ c˜ ao, subtra¸ c˜ ao , pro duto, divis˜ ao e p o tˆ encia, + - * / ^ , s˜ ao as usuais da ´ algebra linear. O op erador de divis˜ ao ` a esquerda, \ , fornece em x = A\b; uma solu¸ c˜ ao x | A ∗ x = b . O op erador de divis˜ ao a direita, / , fornece em a = b/A; uma solu¸ c˜ ao x | x ∗ A = b . Qua ndo o sistema ´ e b em determinado isto ´ e o mesmo que, resp ectiv a men te, i nv(A)*b ou b*inv(A) . (Quando o sistema ´ e sup er-determinado x ´ e uma solu¸ c˜ ao no sen tido dos m ´ ınimos quadrados.) Os op eradores aritm ´ eticos de pro duto, p ot ˆ encia e divis˜ ao tem a vers ˜ ao p ontual, .* .^ ./ .\ , que s˜ ao executados elemen to a elemen to. Exemplo: x = h 5 5 5 i , y = h − 1 0 1 i , x . ∗ y = h − 5 0 5 i Matlab ´ e uma linguagem declarativ a (em op osi¸ c˜ ao a imp erativ a) onde as v ari´ aveis s˜ ao declaradas, dimensionadas e redimensionadas dinamicamen te p elo interpretador. Assim, se A presen temen te n˜ ao existe, A=11; declara e inicializa uma matr iz 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 n ula ´ e [ ] . A atribui¸ c˜ ao A(:,2)=[]; an ularia a segunda coluna de A , t ornado-a a matriz 2 × 2 [11, 0; 0, 23] . Con trole d e Fluxo Os op eradores relaciona is da linguagem s˜ ao < <= > >= == ~= , que retornam v alor 0 ou 1 conforme a condi¸ c˜ a o seja v erdadeira ou falsa. Os op eradores l´ ogicos, n˜ ao e ou , s˜ ao, resp ectiv amen te, ~ & | . Matlab p ossui os comandos de fluxo for – end , while – end e if – elseif – else – e nd , que tem a mesma sintaxe do F ortran, exemplificada a seguir. Lem bre- se de n˜ ao escrev er a palavra elseif como duas pala vras separadas. 122 Matlab for i=1:n if(x<0) fatn=1; for j=1:m signx=-1; whil e(n>1) H(i,j)=1/(i +j-1); elseif(x>0) fatn=fatn*n ; end signx=1; n=n-1; end else end signx=0; end Uma considera¸ c ˜ ao sobre efici ˆ encia: Matlab ´ e uma linguagem in terpretada, e t emp o de in ter- preta¸ c˜ ao de um comando simples p o de ser b em maior que seu temp o de execu¸ c˜ ao. P ara torna r o prog rama r´ apido, ten t e op erar sobre matrizes ou blo cos, evitando lo ops expl ´ ıcitos que o p erem n uma matriz elemen to p or elemen to. Em outras palavras, ten te evitar lo ops q ue repetem um comando que atribui v alores a elemen tos, p or atribui¸ c˜ oes a v etores ou matrizes. As facilidades no uso de v etores de ´ ındices, os op eradores aritm ´ eticos p on tuais, e fun¸ c˜ oes como max , min , sort , etc., tornam esta tarefa f´ acil, e os programas b em mais curtos e leg ´ ıv eis. Scripts e F un¸ c˜ oe s O flux o do programa tam b ´ em ´ e desviado p ela in v o ca¸ c˜ ao de subrotinas. A subrotina de nome nomsubr dev e estar guardada no arquiv o nomsubr.m ; p or isto subrotinas s˜ ao tam b ´ em denominadas M-arquiv os (M-files). H´ a dois tip os de subrotinas: Scripts e F un¸ c˜ o es. Um script ´ e simplesm en te uma seq ¨ uˆ encia de comandos, que ser˜ ao executados como se fossem digitados ao prompt do matlab. Subrotinas p o dem in v o car outra s subrotinas, inclusiv e recursiv a- men te. Um M-arquivo de fun¸ c˜ ao em Matlab come¸ c a com a declara¸ c˜ ao da forma [ps1, ps2,... psm] = nomefunc( pe1, pe2,... pen ) A lista en tre parˆ en teses ´ e a lista de parˆ ametro s de en trada da fun¸ c˜ ao, e a lista en tre colc hetes s˜ a o os parˆ ametros de sa ´ ıda. P arˆ ametros s˜ ao v ari´ av eis lo cais, assim como s˜ ao v a ri´ av eis lo cais to das as v ari´ ave is no corp o da fun¸ c˜ ao. Ao inv o carmos a fun¸ c˜ ao nomefunc com o comando [as1,... asm] = nomefunc(ae1,. .. aen); Os argumen tos de en tra da, ae 1 , . . . aen , s˜ ao passados por v alo r aos (i.e. copiados nos) parˆ ametros de en trada, e ao fim do M-arquiv o , ou ao encon tra r o comando return , os parˆ ametros de sa ´ ıda s˜ ao passados aos a rgumen t o s 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 Matlab 123 %para operar sobre blocos, e nao elementos! [m,n]=size( v); if( m ~= 1 & n ~= 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 P a ra referir-mo-nos, den tro de uma fun¸ c˜ ao, a uma v ari´ ave l externa, esta deve ter sido declarada uma v ari´ a v el global com o comando global . A forma de esp ecificar uma v ari´ avel como global m uda um p ouco de in terpretador para in terpretador, e mesmo de v ers˜ ao para v ers˜ ao: Dig a help global para sab er os detalhes de como funciona a sua implemen ta¸ c˜ a o . Bibliog r afia [Colema-88] T.F.Coleman a nd C.F.v an Loan. A Matrix Comp utation Hand b o ok . SIAM Publica- tions, Philadelphia. [Moler-81] C.B.Moler. Matlab Manual . D epartmen t of Computer Science, Univ ersit y of New Mexico. [Dongar-7 9] J.J.Dongarra, J.R.Bunc h, C.B.Moler, G.W.Stew art. LINP ACK Users’ Guide . So ciety for Industrial and Applied Mathematics, Philadelphia. [Smith-76] B.T.Smith, J.M.Bo yle, J.J.Dongarra , B.S.G arb ow , Y.Ik eb e, V.C.Klema, C.B.Moler. Matrix Eigensystem R outines: EISP ACK Guide . Lecture No t es in Computer Science, v olume 6, second edition, Springer-V erlag. [Garb ow-77] B.S.Gar b o w, J.M.Bo yle, J.J.Dongarra , C.B.Moler. Matrix Eigensystem R outines: EISP ACK Guide Extension . Lecture Notes in Computer Science, v olume 51, Springer-V erlag. [Moler-92] C.B.Moler, J.N.Litte a nd S.Bangert. PC-MA TLAB User’s G uide . The MathW orks Inc. She rb orn, Massac h usetts. [Eaton-92] J.W.Eaton. Octave Manual . Chemical Engineering Departmen t, Univ ersit y of T exas at Austin. Austin, T exas. 124 Matlab Bibliografia Bibliografia Sum´ a ria de sup orte par a o curso: [Bertsek as-89 ] D.P .Bertsek a s J.N.Tsitsiklis. Par al lel and Distribute d C o mputation, Numeric al Metho ds . Pren tice Hall, 1989. [Bunc h- 76] J.R.Bunc h D.J.Rose. Sp arse Matrix Computations . Academic Press, 19 76. [Carey-89] G .F.Carey . Par al lel Sup er c omputing . Jo hn Wiley , 198 9 . [Dongarra- 91] J.J.Dongarra et all. Solvin g Line ar Systems on V e ctor and Shar e d Memo ry Com- puters . SIAM, 1991. [Duff-79] I.S.Duff G.W.Stew a rt. Sp arse Matrix Pr o c e e dings 1978 . SIAM, 1979. [Duff-86] I.S.Duff A.M.Erisman J.K.Reid. Dir e c t Metho ds for Sp arse Matric es . Oxford, 1 986 [Galliv an-90] K.A.G alliv an et all. Par al lel Algorithms for Matrix Computations . SIAM , 1990. [George-81] A.G eorge J.W.H.Liu. C o mputer Solution of L ar ge S p arse Positive-Definite Systems . Pren tice Hall, 1981. [Golub-83] G.H.Golub C.F.v an Loan. Matrix Computations . John Hopkins, 1 983. [Pissan-84] S.Pissanetzky . Sp arse Matrix T e chnolo gy . Academic Press 1984. [Rose-72] D.J.R ose R.A.Willoughb y . Sp arse Matric es . Plen um Press, 1 972. [Stern-92] J.M.Stern. Sim ulate d Anne aling with a T e m p er atur e Dep enden t Penalty F unction . ORSA Jour na l on Computing, V-4, N- 3, p-311- 319, 1992. [Stern-93] J.M.Stern S.A.V av asis. Neste d Disse c tion for Sp arse Nul lsp ac e Bases . SIAM Journal on Matrix Analysis and Applications, V-14, N-3, p-766 - 775, 1993. [Stern-94] J.M.Stern S.A.V a v asis. A ctive Set A lgorithms for Pr oblems in Blo ck A ngular F o rm . Computational and Applied Mathematics, V-13, 1994. [Stew ar t - 73] G.W.Stew art. Intr o d uction to Matrix Computations . Acade mic Press , 1973. [T ew arson-73 ] R.P .T ew arson. S p arse Matric e s . Academic Press, 1973. [V orst-89] H.A.v an der V orst P .v an Do oren. Par al lel Algorithms for Numeric al Line ar Algebr a . North Ho lla nd, 1989. 125
Original Paper
Loading high-quality paper...
Comments & Academic Discussion
Loading comments...
Leave a Comment