Baixe o app para aproveitar ainda mais
Prévia do material em texto
ANALISE DE ALGORITMOS PARA DETERMINAÇÃO DE CAMINHOS MINIMOS ENTRE TODOS OS P W S DE NÕS DE UM W F O ORIENTADO C a r l o s A l b e r t o da S i l v a Franco TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAÇÃO DOS PROGRAMAS DE pós-GRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO R I O DE JANEIRO COMO PARTE DOS REQUI- S I T O S NECESSARIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIA (M. Sc. ) A p r o v a d a por : / P r e s i d e n t e H' R I O DE JANEIRO ESTADO DO R I O DE JANEIRO - BRASIL JUMHO D.E 1975 A G R A D E C I M E N T O S De forma e s p e c i a l a Nelson Naculan F i l h o p e l a conf iança em que minha atuação s e j a Ú t i l ao Programa de Sistemas e também por s eu cons tan te i n - cen t ivo . A ~ o ã o Lizardo, não s ó po r admi t i r s e r o r e s p o n s ~ v e l p e l o de - senvolvimento d e s t e t r a b a l h o menor, mas também por s e r o modêlo de capacidade que todos nós, seus a lunos , procuramos a lcançar . A Paulo Boaventura p o r t e r concordado, em c i r c u n s t ~ n c i a s espe - c í a i s , e m f a z e r par te , :da banca examinadora. iii S U M A R I O A presen te exposiGão t r a t a do problema de determinasão do me- nor caminho e n t r e cada par de v é r t i c é s de um grafo or ien tado . Primeiramente s ão d i s c u t i d o s e comparados os t ra tamentos que d iversos a u t o r e s dão aos procedimentos considerados mais e f i c i e n t e s p a r a a solução daquele problema. - Em seguida do i s processos são ana l izados com maior d e t a l h e e é proposta em um d e l e s , uma modificaGão que r e s u l t a em uma diminuição s i g n i - f i c a t i v a do e s fo rço computacional. são apresentadas l i s t a g e n s dos programas e s c r i t o s p a r a cada processo, bem como pa ra a s modificações d i s c u t i d a s , anexando-se a inda os r e - su l t ados d a v e r i f i c a ç ã o experimental . The present worlc i s concerned wi th t h e problem of de te rmining the s h o r t e s t pa th between each p a i r of modes i n a d i r e c t e d grpph. A t f i r s t we d iscuss and compare the approaches followed by severa1 au thors t o t he procedures considered t o be the moçt e f f i c i e n t f o r t h e s o l u t i o n o£ t h a t problem. FJe then proceed t o ana lyse two procedures i n g r e a t e r d e t a i l ; f o r one o£ them we propose a modi f ica t ion t h a t s i g n i f i c a n t l y decreases compu - t a t i o n a l e f f o r t . Program l i s t i n g s a r e o f f e red f o r th.e procedures and modif i - c a t i o n s d iscussed , a s w e l l as t h e r e s u l t s of experimental v e r i f i c a t i o n . CAPÍTULO I 1. ~ n t r o d u ~ ã o 2. Pre l iminares CAPÍTULO 11 1. introdução 2. ~~Úmero de operaGões do Procedimento de Ployd 3. Tratamento computacional do Procedimento 4. ~ o n c l u s Õ e s CAPÍTULO 111 1. 1n tradução 2. ~Úmero de operaSÕes no procedimento de ~ i j l c s t r a 3 . Tratamento computacional do procedimento CAPÍTULO IV 1. ~ e r a ~ ã o d e Grafos 2. ~ b t e n ~ ã o de tempos 3. ~ x t e n s õ e s APÊNDICE I A - FLOYD (IBM-1130) B - FLOYD (B-6700) C - F.E.L.C.C. (IBM-1130) D - F.E.L.C.C. (B-6700) E - F.E.L.C.D. (IBM-1130) P - F.E.L.C.D. (B-6700) G - P.E.L.C.V. (IBM-1130) H - F.E.L.C.V. (B-6700) APÊLJICE 11 A - Dijkstra (IBM-1130) R - Dijkstra (B-6700) C A P Í T U L O I O problema de determinação de caminhos mínimos em g r a f o s , tem s ido extensamente abordado em l i v r o s e a r t i g o s sobre t e o r i a de g ra fos , a p l i - cações de grafos , pesquisa operac iona l , e t c . Nas r e f e r ê n c i a s consul tadas pa - r a execução d e s t e t r aba lho , duas l i n h a s de procedimento foram claramente ob - sewadas : uma é a que s e ao estabelecimento d e pxovas formais p a r a o s d iversos métodos de busca e apresentam, eventualmente, indicações mais ou me nos p r e c i s a s sobre a forma computacional dos métodos. A ou t r a , mais o b j e t i - v a , apresenta (algumas vezes em v i r t u d e de observação das provas fo rma i s )d i s - cussões informais sobre os métodos e desc r i ção , na maior p a r t e das vezes com p l e t a mas nem sempre c o r r e t a , dos passos dos a lgor i tmos pro je tados pa ra r e so - lução daquele problema e , muitas vezes , o algori tmo completo já programado em uma linguagem de a l t o n í v e l . A i d é i a o r i g i n a l que ocasionou a p r e s e n t e apresentação, sur - g iu da observação de um t r aba lho de Minieka 1 l 2 1 , que s e enquadra no segun - do grupo d e s c r i t o acima. A s s i m , todo o desenvolvimento que s e segue, tem aspec to emi - nentemente p r á t i c o quando examina métodos de busca p ro j e t ados para problemas p a r t i c u l a r e s , métodos e s ses com provas formais em uma ou mais das r e f e r ê n c i a s apresentadas . O t r aba lho de Hinieka 1 l 2 1 , ap resen ta do i s a lgor i tmos pa ra determinação dos K menores caminhos e n t r e cada p a r de v é r t i c e s d e um g r a f o or ien tado , com arcos de comprimento p o s i t i v o e/ou negat ivo . O s d o i s p r c cessos propostos no r e f e r i d o t r aba lho são de dois a lgor i tmos proje tados para deter&nação do menor camiriho e n t r e cada par de v é r t i c e s de um grafo o r i en t ado com arcos de c u s t o p o s i t i v o e lou negat ivo . Como os procedimentos propostos naquele t r aba lho são gene ra l izaçÕes d e ou t ros , dos qua is d i z o a u t o r serem correntemente considerados como os mais e f i c i e n t e s pa ra reso luGão do problema de determinação do menor caminho e n t r e todos os pa re s de v é r t i c e s , procurou-se (com base nessa a s s e r - v a t i v a ) determinar s e e r a p o s s í v e l , pa ra e s t e problema: a ) a c e l e r a r os r e f e r i d o métodos, ou b) p r o j e t a r ,um algori tmo mais e f i c i e n t e . Assim, o~desenvolv imento d e s t e t r aba lho tem como segunda ca - r a c t e r í s t i c a , o t ra tamento do problema de determinação do menor caminho en - t r e todos os pa re s d e v é r t i c e s de um g ra fo o r i en t ado . No es tudo das r e f e - r ênc i a s d i sponIve i s , t r a t ando desse problema algumas conclusÕes in t e re s san - t e s são ob t idas e r e l a t a d a s na seção seguin te . 2 . Pre l iminares P a r a reso lução do problema de determinação do caminho mínimo e n t r e cada par . .de . v é r t i c e s de um g ra fo o r i en t ado , d o i s t i p o s de processos podem s e r i den t i£ i cados : I - os pro je tados especif icamente para e s t e t i p o de problema e 11- os pro je tados para determinar o menor caminho e n t r e um p a r de v é r t i c e s e que ap l icados uma vez 2 cada p a r do grafo , resolvem o mesmo problema. ~ l é m d i s s o , e s s e s processos podem envolver o t ra tamento d e es- t r u t u r a d e á rvore , métodos i t e r a t i v o s ou m a t r i c i a i s (produto de ma t r i ze s ) . Os processos mais e f i c i e n t e s do t i p o I são o de Floyd 1 1, o d e Dantzig (ambos d i s c u t i d o s em Dreyfus 1 1 e nos qua i s s e b a s e i a o t r a b a - l h o de Minieka 1 l 2 I), o de Bi lde and Krarup I ' I (desenvolvido como aper - feigoamento do processo d e Farbey, Landand Murchland 1 1 ) e o chamado "Revised Cascade Method" (RCM) apresentado por Elmaghraby I ' I. Destes , o d e Dantzig e os das r e f e rênc ia s 1 1 , I I e 1 1 são métodos i t e r a t i v o s e o de 1 1 é apresentado como r e s u l t a d o de operaGÕes de produto m a t r i c i a 1 , f e i - t o seguado r e g r a s p a r t i c u l a r e s . Do t i p o LI os processos mais e f i c i e n t e s são o de I h i t i n g and 2 4 H i l l i e r 1 1 e o de D i j k s t r a (como ana l i sado nas r e f e r ê n c i a s I 1 , I I e a / l 0 I ) , ambos apresentados or ig ina lmente como processos d e busca em a rvo re . Do exame dessas r e f e r ê n c i a s , observa-se primeiramente que t o - das apresentam algokitmos p ro j e t ados p a r a determinar o comprimento (ou cus to ) dos menores caminhos e não os caminhos em s i ( i s t o é: uma sequência ordenada d e nós in te rmediár ios e n t r e um nÕ origem e um nó t e rmina l ) ; embora os cami - nhos possam s e r ob t idos t r i b i a l m e n t e em todos os processos , i s t o ex ige sempre pequenas modif icaçÕes nos mesmos. Assim, mantendo-se ao lado d e s t a posiSão g e r a l , o desenvolvimento a s e g u i r a n a l i s a processos ( e f ina lmente uma modificação) que ieveriam s e r com mais r i g o r chamados de processos de de te rmi - nação de cus to mInimo, não s e ~ r e o c u p a n d o em d i s c u t i r o cus to computacional de modificações in t roduz idas para o b t e q ã o do caminho. I s t o f ina lmente s e r e - v e l a r á de nenhuma importância , uma vez que os do i s processos que s e r ã o compa - r ados , permitem a mesma modificagão (ocasionando exatamente o mesmo c u s t o com - pu tac iona l ) pa ra ob tengão dos caminhos. O segundo ponto observado, relaciona-se com a s r e f e r ê n c i a s I 1 , 1 1 , 1 1 e 1 1 . Floyd 1 1 apresentou em 1962, um processo pa- r a determinação do c u s t o mín&mo, em forma de um a lgor i tmo de nove l i n h a s es- c r i t o em linguagem Algol. O desconhecimento d e s t e t r a b a l h o (que s e mostrat-2 experimentalmente no ~ a ~ í t u l o I1 s e r o mais e f i c i e n t e ) levou Farbey, Land e Murchland 1 1 e p u b l i c a r em 1967, um procedimento que tem alguma semelhança com o de Floyd, porém bem i n e f i c i e n t e s e comparado com o mesmo, uma vez que ex ige maior número d e comparaçÕes e ad i&es , mais memória, além de e x i g i r uma programasão mais complexa. Es te procedimento recebeu dos a u t o r e s o nome de "Cascade Algorithm". Tendo po r base o t r a b a l h o d e I , Bilde e Krarup I 1 , r e i - vindicando uma prova mais simples para a mesma i d é i a , introduzem uma modif ica - ção que reduz em 50% o número de "operaçoes" requer idas pa ra de te rminar uma ma t r i z de cus to D, onde cada d i j é o c u s t o do menor caminho do nó i ao nó j em um grafo o r i en t ado . Uma "operação" Dara Bi lde e Krarup é uma a p l i c a ç ã o da forma que envolve uma soma e uma comparação. e A. u t i l i z a s ã o do termo "operagao" no s e n t i d o acima, também & u - t i l i z a d a em 1 1 e 1 1 e conduz, senão 2 i-ncorregoes, pe lo menos p o s s i b i - l i d a d e de uma i n t e r p r e t a ç ã o imprecisa quando da comparacão e n t r e a lgor i tmos , tomando po r base o número de operações. Com e f e i t o , Elmaghraby 1 1 na pggi - na 4 de seu t r aba lho , re fere-se ao &todo d e Floyd, dizendo que o mesmo r e - quer n(n - 1 ) (n - 2) operasÕes elementares; mais a d i a n t e na mesma página r e f e - re-se ao método de D i j k s t r a dizendo que o mesmo requer 3n3 (o que em grandeza .- A j a e i nco r re to ) operacÔes .e lementares , onde uma operação elementar é uma soma ou uma comparaçao, consideração e s t a Última que torna i n c o r r e t a a afirmação sobre o número d e operações requer idas pe lo método de Floyd. Dreyfus 1 1 , u t i l i z a por vezes uma forma imprecisa quando £a - 4 l a do número de operaçÕes. Na 403 daquele t r aba lho por exemplo, e - a firmado que o método de Floyd requer n(n-l)(n-2) adicÕes e comparaçÕes; i s t o é verdade uma vez que s e cons idere a ap l icação de 1.2.1, mas é i n c o n s i s t e n t e - s e comparado com o r e s t a n t e do t r a b a l h o , quando ad ições e comparaçÕes sao consideradas sempre isoladamente, e O método de Bi lde e Krarup I ' I é essencialmente i g u a l ao me todo de Floyd e recebeu dos a u t o r e s a denominação de "Modified Cascade Algo - r i thm" . Elmaghraby 1 1 ap resen ta em 1970 o método de Floyd, com a denominação d e "Revised Cascade Method". Neste t r a b a l h o , como em I I e - 1 1, aquele método é apresentado como requerendo n(n-1) (n-2) operaçoes. Essas observações sobre i n c o n s i s t e n c i a ou incor reções menores não são f e i t a s como t e n t a t i v a de i n v a l i d a r os t r aba lhos em que e l a s ocorrem, mas s i m com o o b j e t i v o de e s t abe l ece r com maior exa t idão o número d e opera - ções requeridas por procedimentos d i f e r e n t e s (visando um mesmo resu1tado)que é e m r e a l i d a d e o que o usuá r io u t i l i z a para uma tomada d e dec isão . No c a p í t u l o segu in t e , o método de Floyd, doravante chamado de "procedimento de Floyd" s e r á apresentado por completo, determinando-se o nÚ - mero de adições e comparações requer idas , juntamente com re su l t ados e x p e r i - mentais da modificação do processo segundo I ' I e / 1 , que mostrarão s e r a s r e f e r i d a s a ~ r e s e n t a ç õ e s i n e f i c i e n t e s quando comparadas com o t r aba lho o r i - g ina l 1 ti 1 . Deve-se observar que o processo de Dantzig como apresentado em 1 1 e 1 l 2 1 requer o mesmo número de adições e cornparaçÕes que o processo d e Floyd, exce to p a r a casos p a r t i c u l a r e s como examinados por BrasSin e Minoux 1 ' 1 por exemplo (grafos não o r i en t ados e de a r cos com c u s t o s p o s i - t i v o s ) . porém po r e x i g i r programaCão mais compaexa, e s t e processo p r a t i c a - mente não é u t i l i z a d o . A gene ra l i zação do método de D i j k s t r a , doravante chamado "pro - 4 cedimento d e D i jk s t r a " , s e r á apresen tado no ~ a ~ z t u l o 111, mostrando-se o nu - mero de adicÕes e comparaçÕes por e l e r eque r ido e uma modificação, que toma por base a apresen tação f e i t a por Dreyfus 1 1 , será d i s c u t i d a com s e u s re- su l t ados computacionais . Na apresen tação des se s d o i s procedimentos, empre - - gar-se-: o termo "operaçao" como uma ad i ção - ou uma comparação. O motivo de s e f a z e r a a n á l i s e tomando por base e s s e s d o i s t i p o s de operação é p o r serem e l a s realmente dominantes em termos de tempo de máquina, quando comparadas com o u t r a s (assumindo-se uma equ iva l ênc i a e n t r e o número de operações d e i n - dexação nos processos comparados). O f a t o r considerado para comparação en - t r e procedimentosserá o tempo, embora alguma observação sob re memória s e j a f e i t a eventualmente. O r e s u l t a d o f ina lmente ob t ido , d i z r e s p e i t o 2 a c e l e r a - $20 de um procedimento que já e x i s t e . Superar a s impl ic idade e e f i c i ê n c i a do procedimento de Floyd p a r a o problema e m ques tão , p e l o desenvolvimento de um novo a lgor i tmo, revelou-se uma t a r e f a complexa o s u f i c i e n t e pa ra ser aban - donada em um p r ime i ro ataque, embora cont inue sendo uma p o s s i b i l i d a d e de algum i n t e r e s s e . 7 C A P Í T U L O I1 O procedimento de Floyd, r e so lve o problema d e determinação do menor cus to e n t r e cada par de nós de um grafo or ien tado , com a rcos de cus to p o s i t i v o e/ou negat ivo . Como apresentado por I ' I, 1 1 , 1 1 e pe lo p ró - 4 p r i o Floyd 1 1, c i r c u i t o s de cus to negat ivo não são permit idos , porem uma pequena modificasão no procedimento conduz a r e s u l t a d o s c o r r e t o s em t a l caso. A a£ irmação cont ida em 1 1 , de que o número de operações requeridas pe lo - procedimento é n(n-l)(n-2) para o cado d i j 2 O não é p r e c i s a , uma vez que sao ob t idos r e s u l t a d o s c o r r e t o s com um ou mais dos d tendo v a l o r nega t ivo , e x i s i j - t i ndo apenas a r e s t r i ç ã o da não e x i s t ê n c i a de c i r c u i t o s . Pa ra um grafo o r i en t ado com n nós, cons t ró i - se uma ma t r i z de d i s t â n c i a s D(n x n ) com a s s egu in t e s c a r a c t e r í s t i c a s : b ) d.ij = C , onde c é o c u s t o associado ao a rco que une os nós i e j ( i # j ) c ) d . . = oo s e não e x i s t e a r co unindo os nós i e j . 1- 3 O procedimento determina o cus to do caminho mínimo . i n s e r i n d o 4 nos , quando apropriado, e m caminhos menores. Começando com a ma t r i z D de d i s t â n c i a s d i r e t a s , n mat r izes s ão cons t r u i d a s sequencialmente (em r e a l i d a d e as modificaçÕes s e r ã o e fe tuadas sobre a mat r iz o r i g i n a l ) . A ma t r i z de ordem K é i n t e r p r e t a d a como contendo os cus tos dos menores caminhos e n t r e os pares ( i , j ) , onde apenas caminhos com nós in te rmediár ios pertencendo ao conjunto de nós de 1 2 K são permi t idos . A mat r i z de ordem K é constnuida da de or- dem (K - 1 ) p e l a u t i l i z a s ã o de : o d . . = d . . são os elementos da mat r iz d e d i s t â n c i a s d i r e t a s . K é i n i c i a l - 1 3 1.1 mente 1 e é incrementado de 1 depois de i e j (nes t a ordem) terem assumido va - lares de 1 N, a t é I< = n no f i n a l . Como exem?lo, é apresentado um grafo com a rcos de cus to ' p o s i t i - # vo, com c inco nos; para cada mat r iz de ordem K os elementos d modificados i j são indicados em separado. Um ponto i n t e r e s s a n t e é que o procedimento inde - pende da numeração dos nós. ~1 = O 5 , aqui d42 = d41 + d14 1 2 w o 1 D2 = O 5 , aqui d I 3 = dI2 f dZ3 aqui não houve modificaGão de nenhm elemento, donde se pode c o n c l u i r que o 10 nÕ d e nÜmero 3 não é i n t e rmed iá r io d e nenhum caminha. aqui : d15 = d14 + d45 m o 1 a3 1 aqui : - 3 0 1 2 1 d 2 1 - d25 + $51 Como K = n , interrompe-se o processo. 0 s caminhos (P) obt idos : a ) a p a r t i r do nó 1 P12 = 1 ,2 (a rco d i r e t o ) P13 = 1 , 2 , 3 b) a p a r t i r do nó 2 Psl = 2 ,5 ,4 ,1 '23 = 2,3 c ) a p a r t i r do nÕ 3 P31 = 3,5,4,1 P32 = 3,5 ,4 ,1 ,2 P34 = 3,5,4 = 3,5 d) a p a r t i r do nó 4 = 4 , l P42 = 4 , 1 * 2 P43 = 4'1,2,3 P45 = 4,5 e ) a p a r t í r d o nÕ 5 P51= 5 , 4 , 1 = 5 ,4 ,1 ,2 P53 = 5 , 4 , 1 , 2 , 3 = 5 , 4 2. ~Úmero d e operações d o procedimento d e Floyd A a p l i c a ç ã o d a forma 2.1 .1 é f e i t a n 2 v e z e s p a r a cada K. Lem- s e e n t ã o , no t o t a l , n 3 apl icaçÕes que correspondem ã 2n3 operações r e a l i z a d a s s o b r e a m a t r i z d e c u s t o s d i r e t o s p a r a que se obtenha a m a t r i z d e c u s t o s mos. E s t e r e s u l t a d o pode ser o b t i d o por inspeGão em Ployd 1 é a p r e s e n t a d o também p o r Xi-nieka 1 l 2 1 . Nas r e f e r ê n c i a s I ' 1, 1 1 e I e 4 1 4 1 f a l a - s e em n(n-1) (n-2) operar,Ões, o que e menos p e c i s o . Fiais c o r r e t o seria d i z e r 2n(n-1) (n-2) operaFÕes, quando algumas apl icaçÔes d e 2 .1 .1 s ã o e v i t a - d a s , em vir tude das cons ideraçÕes s e g u i n t e s . Para cada K, os &lementos d a K-ési.ma l i n h a e da K-ésirna coluna não precisàm s e r examinados, uma vez que não podem s o f r e r a l t e r a ç ã o dado O £a - t o de s e r o nó I<, um nó t e rmina l em d ( i ) e o nó i n i c i a l em d ( j) ; as i k K j - sim é desnecessár io v e r i f i c a r s e e x i s t e redução do cus to p e l a in t rodução de um nó em um caminho onde e l e é o nó i n i c i a l ou te rmina l . Tal f a t o s ó ocor re - r i a caso fos se permit ido c i r c u i t o negat ivo. Para cada K tem-se en tão (n-1) apl icações d e 2.1.1. ~amhém em v i r t u d e de s e t e r condiderado d . = O i e não s e admitindo c i r c u i t o s n e g a t i ii - vos , os elementos d a d iagonal p r i n c i p a l não so f r e rão , em todo o processo,qual - quer t i p o de a l t e r a ç ã o . Po r t an to , em cada K, onde já s e e s t á fazendo apenas (n-1)* aplicacÕes de 2.1.1, mais (n-1) podem s e r e v i t a d a s . Assim, em termos de operações, o processo i n t e i r o requer : 2n((n-i) * - [n-1) ) = 2n(n-1) (n-2) = 2n3 - 6n2 + 4n operações (2.2.1) O que não é observado em I ' 1, 1 1 e 1 1 é que embora 2.. 2.1 s e j a teoricamente c o r r e t o , e necessá r io i n t r o d u z i r um c e r t o número de operações do tj-po comparação e/ou indexaGão para que s e possa e v i t a r algumas ap l icações de 2.1.1; o número dessas operações e x t r a o r d i n á r i a s , quando cons i deradas no processo, a l t e r am 2.2.1. Na seção segu in t e , são apresentadas duas formas de introdução dessas operações e seus r e s u l t a d o s p r á t i c o s s ão apresen - tados. 3. Tratamento computacional do procedimento A ve r são o r i g i n a l do procedimento de Floyd, requerendo 2n3 o- - peraçoes, f o i programada em linguagem FORTUN. Com base nessa programação, t r e s modificações foram t en tadas , visando o b t e r o r e su l t ado 2.2.1 : a ) in t rodução de comparações pa ra e v i t a r aplicaçÕes de 2.1.1 aos elementos de l i n h a s e colunas. b ) in t rodução de comparaçÕes pa ra e v i t a r ap l icações de 2.1.1 aos elementos de l i n h a s , colunas e d iagonal . c ) c r i a ç ã o de uni v e t o r a u x i l i a r para e v i t a r ap l icações de 2.1.1 aos elementos de l i n h a s e colunas. A s modificaçÕes do pr imei ro t i p o d e s c r i t o acima, requerem n 3 comparações ad i c iona i s ; a s do segundo t i p o requerem 2n3 - 2n2 + n compara - $Ões a d i c i o n a i s ( i s t 0 é t r i v i a lmen te obt ido por inspeção das l i s t a g e n s apre- sen tadas no Apendice I, p a r t e s C e D - pa ra o i tem a - e p a r t e s E e F - p 2 r a o i tem b ) . Temos en tão para o procedimento de Floyd: 3 I - o r i g i n a l (sem el iminações) = 2n operações I1 - evi tando l i n h a s e co lunas(por comparaqão) = 3n3 - 6n2 + 4n operações 111- evi tando l i n h a s , colunas e diagonal (por comparação) = 4n3 - 8n2 + 5n operações O t ratamento do Último i t e m , não requer operações ad i c iona i s de comparação. A i d é i a é c r i a r um v e t o r de n posiçÕes ( s e j a IND o nome do v e t o r ) e i n i c i a l i z á - 1 0 com LhQ(N) = N. Para cada I< no procedimento, I N D (K) = IED ( i ) I N D (1) = K. Para va r i ação dos i e j em 2.1.1, consideram-se agora o s e l e - mentos ( a p a r t i r do segundo>., do v e t o r IED. Assim, todas a s l i n h a s e co1u.- nas e s t ã o sendo cons ideradas , exce to a s de ordem K pa ra cada K (as l i s t a g e n s correspondentes 2 e s t a modificação e s t ã o no ~ ~ ê n d i c e I, p a r t e s G e H) . O nÚ - 2 mero de operações de indexaGão in t roduz idas , é de n 3 - n . são apresen tadas a s e g u i r , duas t a b e l a s que indicam o tempo g a s t o em processarnento somente para a l t e r a ç ã o da ma t r i z de d i s t â n c i a s d i r e - t a s a t é s e ob t e r a ma t r i z de cus to s mznimos. Como se pode n o t a r nos progra- - mas apresentados no ~ ~ ê n d i c e I, es t e tempo não envolve l e i t u r a ou impressa0 de dados, ou chamada de qualquer t i p o de sub-programa ou s u b - ~ o t i n a . O p r o - d ces so o r i g i n a l e a s m ~ d i f i c a ~ õ e s aplicam-se sempre ao mesmo g ra fo , que e ge- rado pe los programas com c a r a c t e r É s t i c a s que s e r ã o v i s t a s no c a p I t u - 10 IV. Nas t a b e l a s 1 e 2 dadas a s e g u i r empregou-se: FLOYD - procedimento de Ployd sem modificaçÕes . P.E.L.C.C.- procedimento de Floyd ev i tando l i n h a s e colunas - por coniparaçoes . F.E.L.C.D.- procedimento de Floyd ev i tando l i n h a s , colunas e d iagonal . F.E.L.C.V.- procedimento de Floyd ev i tando l i n h a s e colunas po r v e t o r . A t a b e l a 1 o r e s u l t a d o de processamentos no s i s t ema IBM- 1130 e a t a b e l a 2, no s i s t ema B-6700. Em todos os casos a unidade de tempo é o segundo. T A B E L A 1 ~Ümero de nós FLOYD F.E.L.C.D. P.E.L.C.V. T A B E L A 2 PLOYD F.E.L.C.D. F.E.L.C.V. f? i n t e r e s s a n t e observar que a t e n t a t i v a d a não ap l i cação de 2.1.1 2 l i n h a s e colunas, p e l a c r i a ç ã o de um v e t o r a u x i l i a r , envolve n3 - n 2 operações do t i p o que s e ap re sen t a (pa ra o scstema IBV-1130)bem p i o r que o esperado. Aqui a ' e x p e c t a t i v a e r a de que o r e s u l t a d o ob t ido , e s t i v e s s e d a forma 11, - i s t o porque as operaGÕes de indexação simples sao , com f r equênc i a , conside- radas como requerendo o mesmo tempo que as operações de comparação; e n t r e - t a n t o , e s t a modificação s e r e v e l a p i o r que a d a forma 111. Deve-se observar a inda , que as modificaçÕes sobre o processo o r i g i n a l , podem t e r alguma vantagem pa ra grafos de a t é um p o r t e determina - do. A s s i m o P.E.L.C.C. (modificação mais v a n t a j o s a ) , consome menos tempo para grafos com a t é 75 nós , p a r a a máquina u t i l i z a d a n a determinação d a t a - b e l a l , e g ra fos com aproximadamente 40 nós , pa ra 'a máquina u t i l i z a d a n a de- terminação d a t a b e l a 2 . O ponto pa ra que s e deve a t e n t a r é que e s s a "vantagem" pa ra g ra fos de pequeno p o r t e (com l i m i t e e m funr$o do s i s tema computacional e m - pregado) não é s i g n i f i c a t i v a a não s e r em casos extremos. Com e f e i t o ve ja - s e que no caso do s i s tema IBK-1130, p a r a o t r a b a l h o em 1000 grafos de 42 4 . nos, ter iamos um ganho aproximado de 35 minutos e m 27 horas s e f o s s e u t i l i - zado o F.E.L.C.C. e m l u g a r de PLOYD. O que se t en tou mos t ra r en tão , é que e m g e r a l a forma mais e f i - c i e n t e (que. consome menos tempo, uma vez que a memória para. a s modif i cações dos pr iméi ro e segundo t i p o s é a mesma e pa ra o t e r c e i r o t i p o apenas é ne- c e s s á r i o mais um v e t o r de n posiçÕes) do procedimento de FLOYD é a que a p l i c a 2.1.1 todos os elementos d a ma t r i z de d i s t â n c i a s o r i g i n a l . Assim a compara - ção com ou t ros procedimentos deve tomar por base o f a t o de que o procedimento de FLOYD requer 2n3 operações e não 2n3 - ~ n * + 4n como é usualmente apresen - tado. O procedimento de Di jks t ra f o i originalmente proposto pe lo mes- mo como um método de busca que permite determinar uma solução (um caminho) para um problema e m que se d e f i n e um es tado i n i c i a l (um nó r a i z ) e um es tado ob je t ivo (com um nó ob je t ivo ou mais). O mesmo processo f o i proposto Por Whiting and H i l l i e r '1' l7 1 sem re fe rênc ia ao t rabalho de Di jks t ra e também por Nilsson 1 1 com o nome de "Uniform-Cost Method". A apl icação do procedimento, o r ig ina uma "árvore de busca" on- de são u t i l i z a d o s apontadores em cada nó, para que o caminho-solução s e j a re- construido a t é o nó origem quando s e a t inge um nó obje t ivo . Uma p r o p o s i ç ~ o sobre a forma mais e f i c i e n t e de s e t rabalhar com a s e s t r u t u r a s provenientes da aplicação d e s t e prwédimento é f e i t a por Johnson 1 l 0 1 . Uma pequena modifica - ção no método o r i g i n a l permite que s e t rabalhe também em grafos orientados ou - nao. O cus to de t r ans ição e n t r e estados (valores associados aos arcos que li- gam os nós) pode s e r p o s i t i v o ou negativo (aqui ou t ra modificação deve ser f e i t a ) , porém após a pùblicação de um t rabalho de Johnson 1 1 , observa- s e que apenas com custos pos i t ivos são obtidos resul tados super iores outros processos. Johnson 1 1, quest iona a af i rmat iva de Elmaghraby 1 1 de que o procedimento de Di jks t ra requer 3n3 operações para resolver o problema de determinar os menores caminhos e n t r e um nó e todos os outros e m um grafo o r i en - tado, com arcos de cus to p o s i t i v o e/ou negativo; é proposta uma e s t r u t u r a com n .., arcos de cus to negativo e se prova que são requeridas n2 operaçoes. A s eons8 - derações f e i t a s a segui r , e s t a rão , por e s t e motivo r e s t r i t a s a o caso de arcos de custo p o s i t i v o em grafos orientados. Fixando um nó com r a i z e estabelecendo-se como nó ob je t ivo -ca - da um dos n-1 r e s t a n t e s de cada vez, a apl icação do procedimento de Di jks t ra n-1 vezes r e s u l t a na determinação dos menores caminhos e n t r e um nó e todos os out ros . Neste nzvel de generalização do procedimento observa-se que um t r a t a - mento i t e r a t i v o é p o s s ~ v e l e vantajoso. A forma proposta p o r Elmaghraby 1 ( é i n t e ressan te , mas como apresentada por Dreyfus 1 1 é mais c l a r a e bastan - t e simples: a ) a t r i b u i r ao nó r a i z o cus to zero e aos n-1 r e s t a n t e s , i n f i n i t o . O cus to do nó r a i z é considerado permanente . b) comparar o cus to de cada nó (exceto o do r a i z ) com a soma do cus to do nó r a i z com o cus to do arco d i r e t o do nó r a i z ao nó em questão. Se a soma f o r menor, s u b s t i t u i r o cus to presente pe lo va lo r da soma. c ) determinar qual o menor dos cus tos (excetuando-se os perma - nentes) e tomá-lo como permanenee. d) comparar o cus to de cada nó r e s t a n t e com a soma do cus to do nó f e i t o permanente no passo a n t e r i o r e o cus to do ar - co d i r e t o do nó permanente ao nó em questão. Se a soma fo r menor, s u b s t i t u i r o cus to presente pelo v a l o r da soma. e ) v o l t a r ao passo c e r e p e t i r os passos c e d. Com n-1 execuções do passo c , interrompe-se o processo. Para exemplif i c a r o procedimento, tome-se o graf o apresentado no ~ a ~ í t u l o I1 onde s e quer determinar os menores caminhos e n t r e o nó 1 e os 4 demais. Na representação a segu i r , um nó de cus to permanente, s e r a represen - tado com um t r a ç o sob o ~ u s t o . nós ( i ) 1 2 3 4 5 k custo (dli) ' 0 - w w w w K = l Assim: d = 1, d13 = 2, d14 = 0.5 e d15 = 1.5 são os custos 12 dos caminhos mínimos. Os caminhos são obtidos na seguinte ordem: 2. ~Úmero d e operações no procedimento de D i jkstra "(" - adições e 2 "(" - comparações para tenrati- 2 va de modif icaç~o dos custos. n(n - 1) 2 cornparaçÓes para determinar qual cus to se- rá permanente. 3 ~ n t ã o : - 2 n(n - 1 ) operações para determinar os menores caminhos e n t r e um nó e todos os outros. Se o processo é aplicado aos n nós, 4 n2 (n - 1) operações. ~ l é m d i s s o é necessá2io ind ica r os nos tem-se - 2 que vão tendo os custos considerados como permanentes. A forma sugerida co- mo e f i c i e n t e p or Dreyfus 1 1 , é assoc ia r cada nó,; um índice que v a r i a de zero 5 um quando o custo é tomado como permanente. Nos passos b e d a n t e r i - ormente d e s c r i t o s , inc lu i -se um t e s t e de ve r i f i cação do índice associado ao no em exame: s e o índice é zero, o processo é aplicado normalmente; s e o ín- d ice é um (cus to permanente), examina-se o nó seguinte. Desta forma, n(n - 1) 4 comparaçÕes adic ionais são necessár ias na aplicação do processo 2 cada no; para determinar os menores caminhos e n t r e cada pa r de n&, n2(n,-- 1) compara - çÕes de índ ices são por tanto necessár ias . O processo todo envolve então: n2(n - 1) + n2(n - 1 ) = 2 2.5 n3 - 2.5 n2 operaç&s (3.2.1) ~ambém n2(n - 1 ) operaSÕes de indexação são efetuadas. Se comparada com o procedimento de Floyd, a apresentação do procedimento de R i j k s t r a nessa forma é realmente menos e f i c i e n t e , jus t i f i can- do uma indicação negativa para e s t e Último f e i t a por Dreyfus 1 1 . A memória requerida pelo procedimento de ITijkstra é também maior que a requerida por Floyd. Mesmo que as modificaçÕes de custo sejam efetuadas diretamente sobre a matriz de custos d i r e t o s é necessár io um conjunto de n elementos para o t r a balho com os índices que indicam s e o cus to é ou não permanente em um dado i n s t a n t e . 3. Tratamento computacional do procedimento Uma a n á l i s e no procedimento de D i j k s t r a como apresentado por Dreyfus 1 ] r e v e l a do i s pontos que s e convenientemente toatados devem melho - r a r a sua e f i c i ê n c i a . O primeiro ponto d i z r e s p e i t o aos passos a e b d e s c r i t o s na seção 2. Resulta da aplicação do passo b , que a a t r i b u i ç ã o temporária LFeita no passo a , i r á se reduz i r aos cus tos apresentados pela matr iz de cus tos d i r e - t o s . Assim é desnecessário t r a b a l h a r com um conjunto a u x i l i a r de cus tos , on- de são efe tuadas a s modificações; a u t i l i z a ç ã o desse comjunto de n elementos, juntamente com a s n posiçÕes ad ic iona i s para os índ ices que indicam s e o cus- t o é ou não permanente, r e s u l t a em 2n posiçÕes de memória a mais em D i j k s t r a com re lação a Floyd. A s modificaçÕes podem s e r f e i t a s então d i ~ t a m e n t e so- b re a matriz de d i s t â n c i a s , considerando-se inicialmente o cus to do nó r a i z - como permanente e eliminando-se os passos a e b d a descrição f e i t a na seçao 1 des te ~ a p g t u l o . C O segundo ponto s e r e l ac iona com a forma de i n d i c a r qual no tem custo permanente pe la u t i l i zação de índices zero ou um como sugerido por Dreyfus 1 1 . A forma aqui proposta se revela mais e f i c i e n t e , uma vez que não são necessár ios n2 (n - 1) comparaçÕes de índices , a l t e rando 3.2.1 de ma- n e i r a s ign i f i can te . É formado um v e t o r IM), de n com IND(1) contendo o número do nó ra iz ; a cada vez que o c u s t o de um nó f o r tomado como permanen - t e , o seu número é deslocado para a posição seguinte ao Último elemento em I N D que f o i tomado como permanente. Desta posição de I N D , a t é IND(N) e s t ã o os números dos nós de cus to não permanente. Como exemplo, s e j a a l i n h a I d a matr iz D O do grafo apresenta- do no ~ a ~ T t u l o 11. O ve to r associado aquela l i n h a será : Com 13-2 comparações determina-se que IND(4) (que contém o nÚ- mero do nó 4) é o que t e m menor cus to associado, então ele é tomado como per- manente e f &-se com: Aplica-se agora d =min(dli , d + d .) para 3 < i ZN, onde p = IND(2). F i li i~ PI ca-se com o menor é IND(4) (que contêm o número de nó 2) . ~ n t ã o : agora d = m i n ( d d + d ) para 4 1 i Z N , onde p =IND(3). li li' l p p i - - Fica-se com e o menor é IND(5) (que contém o número do nó 5 ) . ~ n t ã o : a g o r a d = m i n ( d d + d ) p a r a i = N e p = I N D ( 4 ) . li li' l p p i Neste ponto o processo pode s e r interrompido. O número de operações com e s t a s duas modif icações é: (n - 1) (n - 2) adi.,~es e 2 - - 2, comparaçÕes pa ra t e n t a t i v a de 2 modificação dos custos. (n - 1) (n - 2) 2 comparações para determinar o menor custo. 3 C ~ n t ã o : -(n - 1) (n - 2) para determinar os menores caminhos e n t r e um no 2 e todos os out ros . A aplicação do procedimento aos n nós r e s u l t a e m 1.5 n L 4.5 n2 + 3n operações (3.3.1). O número de operações de indexação está e$ torno de - - para todo o processo. Observe-se que e s t e Último nÚmero,mes 2 - mo s e somado à 3.3.1, ainda r e s u l t a em um t o t a l que é i n f e r i o r aos 2n3 do procedimento de Floyd. Na tabela apresentada a segu i r , indica-se o tempo gas to em processamento sõmente para a l t e ração da matriz de d i s t â n c i a s d i r e t a s até s e obter a matr iz de custos mínimos. Êste tempo não envolve l e i t u r a ou impres- são de dados, ou chamada de qualquer função ou sub-rot ina ; os procedimentos comparados aplicam-se sempre ao mesmo grafo, que é gerado pelos p r 2 gramas com c a r a c t e r ~ s t i c a s que se rão v i s t a s no c a p í t u l o I V . Aqui empregou-se: FLOYD - procedimento de Floyd modif icaGÓes. DIJKSTRA - procedimento d e D i jks t r a com modif icaçÕes. O s sitemas u t i l i z a d o s s ã o o IBM-1130 e o B-6700; a unidade de tempo é o segundo. O s programas e s t ã o l i s t a d o s no ~ ~ ê n d i c e I, parees A e B p a r a o p r ime i ro procedimento e no ~ ~ ê n d i c e 11, para o segundo procedimento. T A B E L A 3 IBM - 1130 FLOYD D I JKSTRA B - 6700 FLOYD D I JKSTRA 0.002 0.001 o. 017 0.011 0.058 0.041 O. 144 0.097 0.272 0.186 O. 454 0.316 O. 730 0.517 1.055 0. 746 1.541 1.073 2.089 1.469 2.805 1.923 3.601 2.477 4.474 3.148 5.786 4.057 6.974 4.897 4. ~ o n c l u s õ e s Na t a b e l a 3, observa-se que a menos de uma f lu tuação nas medi- das f e i t a s em grafos de pequeno por te devido imprecisão dos mecanismos de determinação do tempo, já para quinze nós tem-se um ganho super ior v i n t e por cento em Di jks t ra . Para noventa nós, o ganho já e s t a bem próximo à v i n t e e c inco por cento e quase es t ab i l i zado . - A s modif icações propostas no procedimento de D i j k s t r a , sao re- almente s i g n i f i c a n t e s , embora tenha-se reduzido o campo de aplicação aos gra- f o s com arcos de cus to pos i t ivo . ~ l é m d i s s o a memória requerida é um pouco maior (mais um ve to r de n e a complexidade do programa também aumen - t a . Essas "desvantagens" em D i j k s t r a são compensadas pe lo f a t o de se t e r um procedimento que s e p r e s t a 3 solução de do i s problemas: a - determinação do menor caminho e n t r e todos os pares b - determinação do menor caminho e n t r e um nó e todos os ou- t r o s , e também por se poder, e m D i j k s t r a , t r aba lha r com a matriz o r i g i n a l em arqui - vo e em cada passo opexar com apenas uma l i n h a na memória cen t ra l . A s s i m o que s e f a z é resolver n problemas do t i p o b acima. Embora &se tratamento tam - bém possa s e r dispensado ao procedimento de Floyd, e l e é mais oneroso e m v i r tude de s e r necessár io t r a n s f e r i r n vezes cada l i n h a da matr iz o r i g i n a l em a r - quivo para a memória c e n t r a l . Para grafos de médio e grande por te a "vanta - gem" do procedimento de D i j k s t r a deve se acentuar ao ganho de tempo na opera- - çao com arquivos . 1. ~ e r a ~ ã o dos Grafos Para comparação dos tempos gastos pelos procedimentos apresenta - dos nos do i s c a p í t u lo s an te r io res , o mesmo conjunto de grafos f o i gerado em cada programa. 'Eohou-se o va lo r 3 como razoável pa ra o incremento n a dimensão dos grafos. Assim o processo é gerar um grafo de n nós ( inicialmente n toma 4 o v a l o r 3) e a p l i c a r o procedimento; gerar novo grafo com n + 3 nos e a p l i - c a r novamente o procedimento continuando-se des ta forma a t é s e esgotar o tem- po s o l i c i t a d o ao sis tema computacional. Como s e es tuda sempre o caso de grafos or ientados , é necessár io para cada grafo de n nós, ge ra r uma matriz D(n x n ) . Essa matriz tem tres t i p o s de elementos: I - elementos da diagonal p r i n c i p a l igua i s à zero. 11- elementos com um va lo r igua l ao cus to do arco ligando do i s nós. 111-elementos igua i s "infini to1 ' , o que s i g n i f i c a não haver arco l igando dois 1 nos. Para os elementos do t i p o 11, optou-se (sem nenhum motivo p a r t i - c u l a r ) p e l a f a i x a dos r e a i s de um 2 dez. Para os t i p o 111, & s u f i c i e n t e f a z e r para cada grafo, cada um des tes elementos 'tomar o va lo r ~xTf.3;~ i s t o porque ha- bendo no máximo n - 1 arcos ligando do i s nós e o cus to de cada arco sendo no máximo igua l a dez, aquele v a l o r é super ior ao cus to de qualquer caminho que s e venha a obter . Para a t r i b u i r um custo r e a l ou i n f i n i t o 2 cada arco, o processo C e : I .- gera r um número a l e a t ó r i o e n t r e zero e um. 11 - se o número é i n f e r i o r 2 0.5, a t r i b u i r "inf i n i t o t f (n x 10) ao elemento em questão, caso c o n t r á r i o 111- gerar números a l e a t ó r i o s a t é s e obter um igua l ou superior à 0 .I. Quando i s t o acontecer, mul t ip l ica- lo por dez e a t r i b u i r e s t e v a l o r ao elemento e m questao. I V - r e p e t i r a p a r t i r de I , a t é que a matr iz D(n x n) e s t e j a completa. A geração de a l e a t ó r i o s s e f e z no sistema B-6700 pe la chamada da função RANDOM. No sistema IBM-1130 f o i necessár io i n t r o d u z i r uma r o t i n a de geração (ver programas dos apêndices) . ~ambém para &se sis tema, embora fos- sem gerados números a l e a t ó r i o s e n t r e zero e um, os va lo res a t r ibu idos aos ele - mentes da matriz de d i s t ânc ias eram sempre intei-ros; i s t o porque o processa- mento de quantidades r e a i s no IBM-1130 é f e i t o por software e e s t e f a t o oca- s iona d i ferenças s i g n i f i can tes nos tempos obtidos em cada procedimento, além de aumentar em muito o tempo global de u t i l i z a ç ã o da mgquina. Na t a b e l a apresentada a segu i r , mostra-se o námero de arcos que foram considerados como " in f in i to" (n xlO), para cada grafo pelos s is temas B- 6700 e IBM-1130. T A B E L A 4 B-6700 2 12 33 2 . 00tenção de tempos Em todos os programas 02 tempo medido relaciona-se apenas com a s -modificaçÕes da matriz de d i s t anc ias o r i g i n a i s a t é s e r obt ida . a matr iz de custos mínimos, não eseando envolvida nenhuma l e i t u r a ou impressão ou chama- das de ':£ unçães ou subrot inas , ~ambém e m nenhum dos programas apresentados é f e i t a obtenção dos caminhos mznimos mas tão sÕmente do custo. No sis tema IBM-1130 a medição é f e i t a p e l a chamada de r o t i n a s que trabalham com pulsos da impressora 1132. A unidade é o milisegundo e em tempos superiores dez segundos o ê r r o é i n f e r i o r 1%. No sistema B-6700, u t i l izou-se uma r o t i n a que fornece o tempo de processamento em unidades de 2.4 microsegundos. Es te s is tema t r aba lha com de memória e pa ra s e obter tempos com ê r r o i n f e r i o r 2 5% em d i f e r e n - t e s tomadas é necessár io a u t i l i z a ç ã o de uma opção do compilador que aloca toda a matriz sem segmentação. Sem a u t i l i z a ç ã o dessa opção, o tempo para d i f e r e n t e s tomadas é totalmente f lu tuan te , não poss ib i l i t ando nenhuma compa- raçao . Uma c~rn~lementação d i r e t a do presente t rabalho, é a já c i t a d a na Última seção do c a p í t u l o an te r io r . Sendo imprescindível o t rabalho com arquivos para grafos de grande por te , a determinação da var iação de tempo gas - t o pelos do i s processos com a inclusão das operações de t r ans fe rênc ia arquivo- memória c e n t r a l é de espec ia l i n t e r ê s s e para o usuário. Como os resul tados aqui obt idos , dizem r e s p e i t o ã d i f e r e n t e s tratamentos em têrmos de programação para procedimentos já conhecidos, um t r a - balho in te ressan te é a t a c a r outros procedimentos para determinação de caminhos &nimos, visando torná-los mais e f i c i e n t e s apenas por um mais bem estudado t r a - tamento computacional. É p o s s ~ v e l que procedimentos já abandonados sejam na rea l idade melhores que outros usualmente considerados como mais ef i c i e n t e s ,bas - tando u t i l i z a r naqueles alguns de ta lhes de programação p o s s ~ v e i s e m modernos sis temas computacionais. Finalmente, uma extensão n a t u r a l d e s t e estudo em que s e mostra s e r o procedimento d e - D i j k s t r a mais e f i c i e n t e que o procedimento de Floyd, & a ve r i f i cação do comportamento do procedimento A* como apresentado por H a r t , N i l s - son e Raphael 1 1 e por Nilsson 1 l 3 I . Nestas r e fe rênc ias prova-se que pa- r a o problema de determinação do menor caminho e n t r e do i s pontos, o procedimen - t o A$k é mais e f i c i e n t e que o procedimento de Di jks t ra ; dispondo-se então de u- ma informação adic ional sobre o grafo, que permita o estabeleciménto de uma "função de avaliação1', é aparentemente p o s s ~ v e l e s t abe lece r r eg ras pa ra a a p l i - cação e f i c i e n t e do procedimento A* a cada p a r do grafo(n2 aplicações) e deter - minar então s e para e s se problema(de determinação do menor cus to e n t r e cada par de v é r t i c e s de um grafo orientado com arcos de custo pos i t ivo) a e f i c i ê n c i a a in - da é superior do procedimnho de Di jks t ra . observação espec ia l - Es te trabalho es tava terminado, quando por uma re f erên- c i a de Grassirn e Minoux 1 ' Idescobriu-se o t rabalho de Yen 1 l 5 ] e pos te r i - ormente Williams e White / l 8 1 e ainda Yen 1 l 6 1 . A i d é i a desenvolvida por Yen e m 1 l 5 1 e 1 l6 1 é a mesma aqui apresentada, embora a s m o d i f i c a ç ~ e s não sejam f e i t a s sobre a ma t r i z o r i g i n a l de cus tos e s&m sÔbre um v e t o r a u x i l i a r , O procedimento d e Yen u t i l i z a por- t a n t o um v e t o r ad i c iona l (n posiçÕes a mais d e memória) e d i z o a u t o r t e r ob - t i d o r e s u l t a d o s próximos ao teoricamente esperado. 36 R E P E R Ê M C I A S I ' I B i l d e , Ole and Krarup, Jakob, "A Modified Cascade Algor i thm f o r shorstest Pahhs (C)". FETPA, v o l . V I I I , n? 2 , p.231.-241 (1969). 1 1 Dreyfus , S t u a r t E., "A.n A p p r a i s a l o f Some Shor tes t -Pa th Algor i thms" . OPERATIONS RESEARCH, v o l . 17 , no 3, p.395-412 (Maio-1969). 1 1 Edmondç , J a c k and Karp , Richard M. , " T h e o r e t i c a l Improvenients i n Algor i thmic E f f i c i e n c y f o r Network Flow Problems". JOURKAL OF THE ACM, v o l . 19 , n' 2 , p.248-264 ( a b r i l - 1972) . 1 1 Elmaghraby , S a l a h E . , "The Theory o£ Networks and Management Sc ience" . P a r t I . 1-fANAGE?fENT SCIENCE, v o l . 1 7 , no 1, p.1-34 (Setembro - 1970) . 1 1 Farbey, E.A., Land, A.1-I. and Yurchl-and, J . D . , "The Cascade Algor i thm Por F i n d i n g A11 S h o r t e ç t D i s t a n c e s I n a Di r e c t e d Craph". MANAGEMENT SCIENCE, v o l . 1 4 , no 1, p..1.9-25 (Setembro - 1967) . 1 1 Ployd , Rober t W . , "Algorithm 97 - S h o r t e s t Path" . COMMiJPJICATIONS OP TBE ACY, v01 . 5 , n? 6 , p. 345 (Junho - 1962) . 1 ' 1 G r a s s i n , J . e % Yinoux, 'r-. , " V a r i a t i o n s Sur Un Algoritlime D e D a n t z i g - A ~ p l i c a t i o n A La Recherche Des P lus C o u r t s Chemins Dans Les Grands Reseaux". R.A.I.R.O., v o l . 1, p. 53-61 (Yarço - 1973). 1 1 Hart , Pe te r E . , Nilsson, Nils J. and Raphael, Bertram, "A Formal Basis For The Heuris t i c Determination o£ Minimum Cos t Paths". IEE TP&I'JSACTTC)FS OP S.S.C., vo l . SSC-4, n? 2 , p. 100-107 (Julho-1968). 1 1 Johnson, Donald B . , "A Note on ~ i . j . k s t r a ' s Shor tes t Path Algorithm". JOURNAL OF THE ACT4, vo l . 20, n? 3, p . 385-388, (Julho - 1973). 1 ' O 1 Johnson, E l l i s L . , "On Shor tes t Paths and Sor t ingt t . I B M - RC 3691 ( 16719) - V-THEXATICS (Janei ro - 1972). I 1 ' Kniith, Donald E . , "The A r t O£ Computer Programming", vo l . I , "Fundamental A1 gorithms ", ADDISON WESLEY P .C. (1968) 1 l 2 1 Minieka, Edward, "On Com~uting Sets o£ Shor tes t Paths I n a Graph". COWNICATIONS OP THE ACY, vo l . 17, n? 6 , p . 351-353 (Junho - 1974). / l 3 1 Nilsson, Nils J . , "Problern - Solving Methods I n A r t i f i c i a l In t e l l igence" . YcGPAW-HILL , Inc . (19 71) . 1 l 4 1 Roy, B. , "hlpjébre Noderne e t ~ h é o r i e des Graphes" - Tome 2 - "Applications e t ~ r o b l è m e s Specifiq,ues". Pasc icule 2. DUNOD (1970). 1 l 5 1 Yen, J i n Y . , "Finding The Lengths o£ A 1 1 Shor tes t Paths I n N-Node N~ Additions Nonnegative - Distance Complete Network Using --- 2 and N~ Comparisons". JOURfiJAL OP THE ACY, vol . 19, n? 3 , p. 423-424, (Julho - 1972). I 'v , "Reply t o Williams and White's ~ o t e " . JOURNAL OF THE ACM., vo l . 20, n? 3, p. 390 (Julho - 1973). ( l 7 ( Whiting, P.D. and H i l l i e r , J . A . , "A Method For Finding the Shor t e s t Route Through A Road Network". OPERATIONAL RESEARCH QUARTERLY, v o l . 11, n? 1 /2 , p. 37-40 (1960). 1 l 8 1 Williams, Thomas h., and TJhite , Gregory P . , "A Note On Yen's Algorithm f o r Finding The Length of A 1 1 Shor t e s t Paths I n N-Node Nonnegative - Distance Networkst'. JOURNAL OF TI-IE ACM, vo l . 20, n? 3, p. 339-390, (Jul.ho - 1973) OBS : ~ e f e r ê n c i a s 1 1 , I I e 1 l 4 1 não são c i t adas no t ex to . A P E N D I C E I FLOYD - Procedimento de Floyd sem modif icaGÕes (IBM-1130) / / F C F * L I S T SCLPCE P P C C R D P " C P E kCFC IhTECfRS 5LCPCtTfRE PLEPtIX1IY7YFL) lL=IX*E1C IF(IY)?,t,E 5 lY=1?+?2767+1 t Y F L = I Y YFL=YFL/?27Éi I X = I? P E T L F N EhC / / C L F "STCPE h S U P ALEP / / FCIF * L l S T SCbPCE PFCGRFP "ChE h C F t IhTECERS SLEFCUTIRE P D N C Ib7ECEF C(9CySC) CCFPCh hpCqhPP4 hPP4=C I X = 3 L 7 C 7 StF=h*lC [C 1 I=111\: CC L J= l , l t S CPLL bLE!t 1 x 9 IYVYFL IF(YFL-a5)4?4,3 4 IF(f-J)e,.?E e C ~ L J I = ~ U P bFF4=NPP4+1 C C T C L 3 CLLL PLEB(IX,IY,LFL) IF ( Y F L - * 1 1 3 ~ 37 11 11 CI19J)=YFL*1C. 2 CCPTIRLE 1 C(I,I)=C.C FETLFP E\ C I / LUF *STCPE hS U P PPRC / / FCF " L I S T 5 C L P C E FFCGPPP *ChE kCPC IRTECER5 "ICCSt L 5 f l F E P C E P ~ 1 4 ~ 3 P P I N T E R ~ O I S K ) r FFCCFbP! FPIhCIFfL FLt??C S f P MCCIFICPCCES IPTECEF CISC1ÇC)rCt CCPPCR h? C, h b P 4 h = 3 1C CDLL FPNC CPLL S T b R T E C 1 K = l , [ \ i c c i I=lln EC 1 J = l , R CL=C(I,K)+C(KpJ) FLOYJI - Procedimento de Ployd sem m6dificaGÕes (B-6700) CCMP I C SUBR * S E T L L E FLOYD FURTRAN . C T I N A PARA GERAR n b T t\ ELEMEkJTnS DA V A T R I Z DE D I S T A N C I A S 9 XAt~ l t t C h C S U e R C U T I N E RAND C O P P C N N , Q ( 99999 EkC E S T E PROGRAMA T f P ? C1 LONG ET LCNG P R O G R A P A P R I N C I P A L F L O Y D SEK R E A L MENOR LOPPCN N 01 9 Ç T 99 1 , NAV4 h=? l g C P ~ L R A N D T E P P C = T I M E ( 1 2 ) CC 1 K = l r N UMERO D E ARCOS I G U A I S A ' r / I I N F I N I T O 80 h=IV+3 GO T C 10 90 STCP EN C EPiC JCE!. P.E.L.C.C. - Procedimento de Floyd ev i tando l i nhas e colunas p o r comparações (IFIB-1130) U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç Ã O E L E T R O N IC A U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N ~ C L E O D E C O M P U T A Ç Ã O E L E T R O N IC A U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ù C L E O D E C O M P U T A Ç Ã O E L E T R O N IC A U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç Ã O E L E T R ~ N IC A X CJ rn -I r - C I C L rn O r> O c r h J P \ > 1 \ 1 0 C . 15 3 .B. m n m m 7 - II n ~ 4 n n t - i m n ~ m u m 7 h h n 1 1 -r i - ~ n r n h P , n ~ - n ? n n C ) F r 7 - r 7 J w T Y 7 7 7 M - I I - r r - t . l - 7 c 7 - i T 7 r 4 4 4 r n m L - n w l b h m n U U W C - - t h * m r i \ n u 4 - i1 4 7 7 7 - M U X X b r r i \ - \ n - w C C c I I u * - L M Ã ~ C ~ u - - r x ~ r n n r n ~ ~ ~ r II 4 m m - 4 \ m C - U ~ J U O ; ? * ? r - I & * V r 4 r - O X t / 1 7 r l \ n r n ? 7 0 - r ~ . r nr ~ i 7 m r r , u X * .# T X Z r C - '- c. i 4 .? I . 7 b . u h > C I J O 11 7 r - r m h C , - m * n, n - i .O r 2 r r7 w s-3 c7 2 A b < n T I ( L ) n * II - .. .# tn w rn h > m r C \ 2 '- D - n tn 7 - r .. 7 rn - .o 8 7 w m F.E.L.C.C. - Procedimento de Floyd evitando linhas e colunas por comparações (B-6 700) U N I V ~ K ~ I U A U ~ I - t U t K A L U U K IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç Á O E L E T R O N IC A O O * O & r ) V , V , O rn ~ u r n y ' r n m a 7 a m 4 + - r I - r I - n w + w + c ? = r ; O a O W N N S Z 'W r 3 x n -I v fu a co L- LU O c o 8 n m r m r - X W C m ~ ~ 7 w l l n ~ - i 0 0 ~ 0 ~ n u m ~ r ) n i ~ ] / 2 o m b ; 0 t i r n m ~ ~ n w X A 7 m ~ ~ x n m W ~ 7 0 ~ , n ~ ~ o z -I n 1 1 t l - O w r n o c c - - n t n o n n n m ~ b 11 C m l o P 7 v Z n i - n - n - I ~ D - n n 4 O n C Z ~ O C ~ i m m r ln Z - u W 1 4 7 Z a Z u - l l c. . 7 f '- l ~ '2 'b b . ~ ~ X r i - i w Z u - I I ? I - - - ll T ! I1 ? r -j r C O W 7 3 -1 + 67 c iX -I -n -i -i 4 * T i n L w ~ N w - c r T f 0 3 2 C 3 C * - I* X ;J d & - u X ;O l\ .) w li l V & P c T X Z n T ]l d I & D m C Ic ic c L -- I N I O O O Ci ) Ã 3 u w L - lD r i II C I 4 P 7 - 5 11 0 0 ?>I- 4 - 4 - ll Z Z Z - u u F it 7 ;k X 11 F 2 X r ;' iU k Z - Z - l Z 2 - C I Z L H % , + + O Z C O C . ~ \c .o \c .C C C 1 1 - -L - II 11 - i > m m C n n , li C 1 1 I - n N b 11 - 0 n 11 i1 r a -4 - 1 4 U - 4 0 - - im m r n c ~ tK r ll r r r ~ Z Z Z w X o ~ X * C- i 3 m ~ u i G ç l ' r d C j ~ Z W b 0 m - -J w r ., , c ~ .- W i' r- - 30 1 3 Z E - 4 . 3 . 7 & C * - 3 - * .rZ ;o i-. Z O X I +* u Z 2 : v r3 73 O C 3 -- + v ~ > w -z L ' o rn 3 r -7 -i ~ -r n 0 ;7 r Z r u - - w 4 m ri v * - H C , a r n ~ r - C -N - r \D u m * Z & w Z 9 P 0 % B II cr n .r w - X * r N \O P Lz C , .. a b . 6 1 - 1 * -O ? J r( V v - L J W Y 4 r * .'& CC Z m x ' a o a P - P J C ir , \O 3 a w \ U f l T 1 b O 11 x 1 .. < v 4 f i 0 w a F LP - D a 4 v w * rn - rn r,) .a & e rr ! O n 4 X .. z .< ;7 z r & w z. n 7 C 7 P ' ç . = o 13 , ! T 4 - 3 3 2 0 iZ I - 2 I D . * ( n u - c. r! i i' ri 1 CP r n ', 4 .k < L[ . -4 II 5 ) I" -i - i . - i n L J - -C D V i .b ui V 7 4 \ :z m ~ .3 r 3 U 3 - r'? (7 G' c\ :. Z u 3. r T 0 - u' W p. C ) ": 4 C A Z I F - C 3 u - x V i P u '.m - 7 3 v i t? O rn O r ; o a m i- W C V > D Z - i X? P 3' n V ) z ,r l n V > 10 u c - ( C P 73 V > I; , C P W V 1 P.E.L.C.D. - Procedimento de Floyd evi tando l i n h a s , colunas e diago - na1 (IBM-1130) U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç A O E L E T R d N IC A U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç Ã O E L E T R ~ N IC A F.E.L.C.D. - Procedimento de Ployd evitando l inhas , colunas e diago - na1 (B-6700) C C P P I L E FLGYD FOKTKPN 13ATA C SUf?KCTINA P A R A G E R A R fLkFl';.ilT@S DA F'ATRIZ DE D I S T A N C I A S P S E T 1 CNG S U P = N C0 1 CC 2 XT=RA I F ( X T 3 I F ( I - 4 LIIVJ N A V 4 = G C TC; 8 XT=RB I F ( X T 9 C(I,J 2 C U N T I 3. C ( I , 1 RETUR f k C E S T E PROG PROGRAPA ET L O N G R EbL COPPC; R P M 6 P R I N C .CVIT I \NDO LINHAS, COLUNAS E D I 4 AGONAL 1\=3 13 C 4 L L RANC 2)-7fMPU)"~2.4/lf~*~6 t \ lAP4 9 TEMPC1 KCI CE NOS = ' , I 2 , / , ' N PU=', F10.69 ' SEGUNDOS r 90 DE ARCOS I G U A I S A f N F I N P T O h=b!+3 G O T C 10 . S T C P E N E JUB e END F.E.L.C.V. - Procedimento de FLOYD evi tando l i n h a s e colunas por v e t o r (IBM-1130) . - . - U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç Ã O E L E T R ~ N IC A U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç Ã O E L E T R 6 N lC A 7 6 n i t . ~ $ A % & . c , Z C \ .+ O ' * , u ~ l r \ m z c n r - \ t n \ f - lr - x - n n 7 w -i 7 u - - I 7 u I-J w x in r n m - n n r ? C L m < n n n n m m - n r O n t n 4 n m r P R ) ~ ( ( J M J - . \O - I D X C m t n - i n a - r m m - n s z m u s- x i m ~ n n ~ 7 n m w r n f u n ~ m m m n m r n A 7 m u ~ n n n m w 7 n m m n ~ n r n n u ~ ~ ~ ~ ~ ~ m ~ n n 7 n - h I I n ~ i 7 b ~ n m n 7 m - m - ~ b n a - n n b n n C x b ~ , 7 C m m 7 r n x - 1 - 1 n - C n 4 C m n r i I - I - I ~ ~ ? T ~ ? C J ~ ~ n 4 ~ 7 ~ + - . ~ 7 u * - r -n li ? ? -i -n t- iC E m - 4 11 i- r I1 - I 1 m n C r - r r r T r n r n b w a C - 4 - - < r d ~ u r d - C T N r 11 t d h ? m f l 7; i r u II II u w w x x u w m 7 f i m u n T l r u C n í 7 l i ~ l n 7 1 \ i 11 n n n d n ? i d - e ~ - e - c x n ~ r > X - ( n z 7 ~ m u ~ r 7 r n 7 - 7 - r b 7 e ~ r b . ~ ~ a - , ~ r > 7 m C 7 r n Z - n < + - & . C 7 m Il II Y 4 h u n x e . 4 r 11 r- i1 I I - ~ b 11 - I r 1 1 i1 -r n 70 4 - i 5 - r i g i n a - i - 4 ~ u i l b 7 z n u ~ 7 m - n tn ~ " ir r - r : * m 7 t ~ f ! 5 * r n r r e s 4 1 7 ~ m u (n zc \O - m a * * = r i * 7 [ 1 7 M O X ) n & ? . r t n b * .r - m 7 c f) n í LJ J 4 m a 7 n w 7 * - I r? - o ; c i r r i n O r- -- + Ü ~ - - P Z r i - r n m n n, m * r r ir ii a 7 V ç - i \ D u - 7 5 ~ 3 C 3 i- 1 3 n C u I c w * .i3 7 0 0 C 4 4 C - P W 0 7 7 t 7 U r V ) h ) h c -i - X a * x z I " > W W X 'E . CI \ + b W 7 3 b r ? r - h b c ! ( L ) u A v b - b b I u r h ? - a r - 7 a i. u - - t . n z 7 rn 7 h a r a td ;t W 4 1 0 -C h r i C7 b b o - n u 'D w .. .. - r - -.. r h ) 7 4 -C rn Y r i n ~ r- ~ -n n 'D x C 4 7 r i- .. ;7 4 V - ií? 4 ri 1 W -. -C H c - 4 4 r 3 ; n - .c x 0 - O r W 7 I P tn rn O n r r 2 5 V , u n 75 < rn -I r ) X I U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N VC LE O D E C O M P U T A Ç Á O E L E T R ~ N IC A U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N VC LE O D E C O M P U T A Ç Ã O E L E T R ~ N IC A F.E.L.C.V. - Procedimento de PLOYD &ií%tando l inhas e colunas por vetor (B-6 700) A P E N D I C E 11 DIJKSTRA - P~ocedimento de Dijkstra com modifícaçÕes (IBM-1130) U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç A O E L E T R ~ N IC A U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç A O E L E T R 6 N IC A 1L .& A r - \ 7 u m m n C P \ n -I n U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N O C LE O D E C O M P U T A Ç Ã O E L E T R ~ N IC A U N IV E R S ID A D E F E D E R A L D O R IO D E J A N E IR O N Ú C L E O D E C O M P U T A Ç Ã O E L E T R ~ N IC A X \D rn -1 rn O 0 r , w d l 4 L n m < r ) & rn m n n m 7 u ~ ~ ~ b ~ n ~ n ~ ~ i n ~ n ~ ~ ~ ~ ~ u ~ n 7 n W ~ ~ - r ) ~ ~ ~ ~ 7 h h ~ I ~ n r C \ ' I - l m ~ ~ ~ ~ x m ~ h f i w n m m ~ 7 L n r i n r i m n t n r , T X r n L 7 n l - r 7 ' 7 - m w - i p l - 7 7 11 7 A Y - I1 I1 7 I1 II t l I1 I1 7 I1 7 - I! II 7 II m I - I - - ~ + ~ U - P - - I T I ~ - - I - - I X ~ R Y m n ~ \ n n , , c - ~ ~ 7 - r c n n ~ i ~ ~ > n ~ - r ~ ( ~ ~ l h b r n r i u u m - u - - 7 z 7 n u 7 l w - m - 7 m 7 w r n T a - - 4 .- -I l 4 7 Z I1 M Y W Y ~ X I I ~ + ? ; C J C W ~ 11 U ~ C II T J - X b i - ~ r ) \ - \ n - u C T r l v - r . i c II m - r - - n C m w 6 I1 n - 11 1 - 1 7 3 0 -- a-. X X W m - U I I M L X U - H II u II rn -- w C W * C - N W 4 m - -. ~ \m U H ~ M L + X ~ X U X N W C - Y W - (3 7 n r - U -7 u c I u C 7 t - rn Y 7 n 30 - i3 4 13 .. ir) DIJKSTRA - Procedimento de Dijks tra com modif icacÕes (B-6700) LCNG G C C CIJMSTRA M O C I F 1 C A i i O R E A L MENOR U N IV E R S ID A D E F E D E R A L D O R 1 0 D E J A N E IR O N ~ C L E O D E C O M P U T A Ç Ã O E L E T R ~ N IC A . U N IV tK Ù .I U A U k k k U k K A L U U K I U U k J A N C IK U N Ú C L E O D E C O M P U T A Ç Ã O E L E T R ~ N IC A
Compartilhar