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
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.