
Oi Cesar, Eu sei disso. Não deixei claro, mas estava pensando na parte do processamento da matriz. Seria, talvez, um quarto item na sua lista. Nem sempre o programa aceita ou a pessoa sabe programar para "eliminar" (evitar que o computador reserve espaço de memória) para uma matriz da qual só lhe interessam poucas células, neste caso, só uma das partes triangulares sem a diagonal. Posso ilustrar um pouco mais a importância dessa questão? Este problema, que simplificamos (distâncias euclidianas), fica maior quando consideramos que não existem ligações diretas (estradas) entre todos os pares de cidades. Aí o armazenamento dessa matriz cheia de zeros demanda cuidado, principalmente se for muito grande. Pode, também, não ser simétrica. No ambiente urbano, por exemplo, nem sempre a "distância" de i para j é a mesma de j para i. Na minha área de trabalho (planejamento de transportes), algumas vezes a diagonal principal pode estar preenchida com valores diferentes de zero, se eu considerar a extensão média das viagens. Os nós da minha rede representam centróides de zonas (setores censitários do IBGE, por exemplo) e ocorrem viagens dentro das zonas. Acima, coloquei distância entre aspas porque no meu caso, que trabalho com transportes, ela pode não ser representada pela extensão em km e sim pelo tempo em minutos, ou alguma misturas destes dois e/ou outros. A "distância" é expressada por um custo para percorrer determinado trecho da rede. Espero ter esclarecido. Obrigado por corrigir a confusão que a minha mensagem possa ter causado. Bom final de semana para todos. Mário 2011/11/4 Cesar Rabak <cesar.rabak@gmail.com>
Em 3/11/2011 23:31, Mario Azevedo escreveu:
A matriz será muito grande 5566 x 5566 = 30980356 elementos. Se cada
elemento for um número real, ele consumirá, no mínimo, 4 bytes de memória, totalizando algo perto de 118 Mbytes. Não sei quais são os limites, mas me parece que deve ficar difícil tratar de um "bicho" desse tamanho.
Mario,
A matriz só teria esse tamanho se você considerar três coisas:
1) Que as distâncias de cada cidade à ela mesma é diferente de zero; 2) que as distâncias são arcos orientados; e 3) em cada sentido desses arcos as distâncias podem ser diferentes.
caso você levante essas restrições o número real de distâncias seria aquele que já postei anteriormente.
Deixo como exercício como armazenar os dados sem precisar de uma matriz para os dados redundantes :-)
-- Cesar Rabak GNU/Linux User 52247. Get counted: http://counter.li.org/ ______________________________**_________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/**cgi-bin/mailman/listinfo/r-br<https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-**guia<http://www.leg.ufpr.br/r-br-guia>) e forneça código mínimo reproduzível.