Escolar Documentos
Profissional Documentos
Cultura Documentos
Dourados - MS 2006
ii
Monografia apresentada ao Curso de Cincia da Computao da Universidade Estadual de Mato Grosso do Sul, como parte dos requisitos para obteno do ttulo de Bacharel em Cincia da Computao.
Dourados - MS 2006
iii
"Cincia da computao tem tanto a ver com o computador como a Astronomia com o telescpio, a Biologia com o microscpio, ou a Qumica com os tubos de ensaio. A Cincia no estuda ferramentas, mas o que fazemos e o que descobrimos com elas. Edsger Dijkstra
iv
Dedico esse trabalho minha me, Maria Jos dos Santos pelo apoio e incentivo em todos os momentos da minha vida. Dedico tambm Helena e Miguel de Freitas, pessoas fundamentais na minha caminhada e que certamente estariam muito felizes se pudessem compartilhar mais esta conquista.
AGRADECIMENTOS
Ao professor Fabrcio Srgio de Paula, pela orientao e o conhecimento que compartilhou, itens que foram fundamentais para o sucesso desse trabalho. Ao professor Odival Faccenda, pelo apoio e o vasto conhecimento que me concedeu nos projetos de Iniciao Cientfica em que trabalhei sob sua orientao. A der Comunello, pesquisador da Embrapa Agropecuria Oeste, pelo imenso conhecimento em Geoprocessamento e Sensoriamento Remoto que me proporcionou e que viabilizaram a execuo desse projeto. Ao colega e amigo Paulo Roberto Gomes Cunha, pelo companheirismo. Aos colegas de curso e de trabalho, em especial o professor Rubens Barbosa Filho, pela ajuda, apoio e compreenso durante a execuo desse trabalho. Aos meus familiares que ajudaram e apoiaram a minha caminhada no s na execuo desse projeto, mas como em toda a minha graduao. A todos aqueles que contriburam para o sucesso dessa caminhada e que de forma injusta no tiveram seus nomes includos aqui.
vi
RESUMO
Este trabalho tem como objetivo estudar a representao de malhas virias urbanas utilizando grafos com informaes georreferenciadas e assim aplicar tcnicas para obteno de caminhos mnimos. A modelagem baseada em grafos possibilita aplicar a teoria computacional conhecida para essas estruturas. Entretanto, a captura da informao geogrfica uma tarefa difcil e a sua associatividade com o mundo real no exceo. Portanto, necessrio estudar mtodos e ferramentas de modelagem, manipulao, visualizao e armazenamento de dados geogrficos. O mtodo utilizado para a gerao de caminhos mnimos, ou seja, o algoritmo utilizado resoluo desse problema tambm um dos pontos analisados. O estudo de caso escolhido foi a malha viria da cidade de Dourados e os resultados obtidos proporcionaram a criao de um aplicativo computacional que utiliza informaes georeferenciadas da cidade de Dourados para gerao de caminhos mnimos no quais os caminhos gerados so observados com o auxlio da interface do Google Earth. O estudo permitiu comparar a eficcia dos algoritmos de gerao de caminho mnimo e verificar o comportamento das estruturas de dados e mtodos de manipulao de dados geogrficos aplicados e a importncia do georreferenciamento para integrao de diferentes fontes de informao geogrfica. Palavras chave: caminhos mnimos em grafos, geoprocessamento, rede viria urbana de Dourados
vii
SUMRIO
I. INTRODUO ...........................................................................................................10
1.1. Objetivos........................................................................................................................11 1.2. Justificativas e Motivao .............................................................................................11 II. SISTEMAS DE INFORMAO GEOGRFICA (SIG).............................13 2.1. Natureza e representao de dados espaciais ................................................................14 2.2. Mtodos para captura de informao geogrfica...........................................................16 2.3. Armazenamento de dados geogrficos ..........................................................................17 2.4. Ferramentas Para Visualizao de Dados......................................................................19 III. MODELAGEM DE DADOS GEOGRFICOS .............................................21 3.1. Tcnicas e Ferramentas de Modelagem de Dados Geogrficos ....................................23 3.2. Modelagem de Vias Urbanas.........................................................................................25 IV. GRAFOS: A BUSCA DO MELHOR CAMINHO .........................................27 4.1. A Busca do Melhor Caminho ........................................................................................28 4.2. Algoritmos de Busca de Caminho Mnimo ...................................................................29 4.2.1 Algoritmo de Dijkstra..............................................................................................30 4.2.2 Algoritmo de Bellman-Ford ....................................................................................32 4.3.3 Algoritmo IDA* (Iterative Deepening A*) .............................................................33 V. IMPLEMENTAO E RESULTADOS ..........................................................40 5.1. Entrada de Dados e Digitalizao dos Eixos das Ruas..................................................40 5.2. Modelagem das Classes de Representao das Vias Urbanas.......................................44 5.3. O Software Desenvolvido..............................................................................................45 5.4 Entrada/Sada de dados...................................................................................................48 5.4.1 Formato de dados ASCII/Spring e os arquivos MVU.............................................48 5.4.2 Entrada/Sada de arquivos KML .............................................................................50 5.4.3 Base de Dados Completa e para Demonstrao ......................................................51 5.5 Outros Detalhes de Implementao................................................................................51 5.5.1 Gerao de Impedncias aleatrias..........................................................................51 5.5.2 Clculo de Endereos e Aproximao por coordenadas geogrficas ......................52 5.6. Testes .............................................................................................................................53 5.6.1 Testes de tempo de execuo dos algoritmos Dijkstra, Bellman-Ford e IDA*.......54 5.6.2 Teste do mtodo de Aproximao de Coordenadas para Vrtices ..........................57 5.6.3 Teste do mtodo de Estimativa de Endereos .........................................................60 5.6.3 Teste com simulao de impedncias......................................................................60 VI. CONSIDERAES FINAIS ...............................................................................63 6.1. Trabalhos Futuros ..........................................................................................................64 VII. REFERNCIAS .......................................................................................................66
viii
LISTA DE ILUSTRAES
Figura 1 - Esquema simplificado ilustrando geide e elipside...............................................14 Figura 2 - Arquitetura dual (FERREIRA, 2005) ......................................................................18 Figura 3 - Arquitetura integrada (FERREIRA, 2005) ..............................................................19 Figura 4 - Modelo do "Paradigma dos Quatro Universos".......................................................22 Figura 5 - Notao grfica para as classes do modelo Geo-OMT (DAVIS; BORGES, 2004, p. 20).............................................................................................................................................23 Figura 6 - Geo-campos pelo Geo-OMT (DAVIS; BORGES, 2004, p. 21)..............................23 Figura 7 - Geo-objetos pelo Geo-OMT (DAVIS; BORGES, 2004, p. 23). .............................24 Figura 8 - Esteretipos do modelo UML-GeoFrame (LISBOA; PEREIRA, 2002, p. 148).....24 Figura 9 - Diagrama de classes do padro "Malha Viria Urbana" (LISBOA; IOCHPE; BORGES, 2001, p. 110) ...........................................................................................................26 Figura 10 - Exemplos de grafos................................................................................................27 Figura 11 - Representao de vias com a Topologia Arco-N.................................................28 Figura 12 - Algoritmo de Dijkstra ............................................................................................30 Figura 13 - Algoritmo de inicializao dos atributos de estimativa de caminho mais curto....31 Figura 14 - Algoritmo de relaxamento de atributos de estimativas de caminho mais curto ....31 Figura 15 - Algoritmo de Bellman-Ford...................................................................................32 Figura 16 - O algoritmo IDA*..................................................................................................34 Figura 17 - Algoritmo que controla os limites de contorno de IDA*.......................................35 Figura 18 - Grafo das rodovias que ligam algumas cidades do estado do Paran....................36 Figura 19 - Tabela de distncias do grafo da Figura 18 ...........................................................36 Figura 20 - Execuo passo a passo do algoritmo IDA*..........................................................38 Figura 21 - Resultado encontrado pelo algoritmo IDA* para o exemplo das vias do Estado do Paran .......................................................................................................................................39 Figura 22 - Centro de Dourados (recorte do mapa de loteamentos da prefeitura) ...................41 Figura 23 - Mapa de lotes como plano de fundo no Spring .....................................................42 Figura 24 - Desenho das vias no Spring ...................................................................................42 Figura 25 - Malha viria de Dourados vista no Spring ............................................................43 Figura 26 - Corte na malha viria de Dourados (centro)..........................................................43 Figura 27 - Diagrama de classes da malha viria .....................................................................45 Figura 28 - Interface do YBY (alterando atributos de impedncia) .........................................46 Figura 29 - Interface do YBY (entrada de dados e seleo de algoritmos)..............................47 Figura 30 - Modelo arquitetural do aplicativo..........................................................................47 Figura 31 - Representao de uma aresta no formato de arquivo ASCII do Spring ................48 Figura 32 -Aproximao de uma coordenada para um vrtice do grafo ..................................53
ix
Figura 33 - Exemplo do clculo de estimativa de endereo .....................................................53 Figura 34 - Caminho entre a rua Indai n 45 e a rua Coronel Ponciano n 2500 ....................54 Figura 35 - Testes "curtos" realizados em um Pentium III 1.0 GHz com 192 MB .................56 Figura 36 - Grfico do tempo de execuo dos algoritmos para entradas pequenas................57 Figura 37 - Caminho gerado entre o Parque dos Ips e o Estdio Dourado ...........................58 Figura 38 - Coordenada do ponto central do Campo de Futebol do Dourado e o vrtice ajustado.....................................................................................................................................59 Figura 39 - Ponto central da quadra de esportes do Parque dos Ips .......................................59 Figura 40 - Vrtices dos grafos estimados para os endereos: Rua Tiet, n 429 e Monte Castelo, n 1513 ........................................................................................................................60 Figura 41 - Malha viria de Dourados com impedncias simuladas aleatriamente ...............61 Figura 42 - Caminho gerado entre a Av. Weimar Torres, n 2200 e Rua Joaquim Teixeira Alves n 1500 com impedncias no simuladas .......................................................................62 Figura 43 - Caminho gerado entre a Av. Weimar Torres, n 2200 e Rua Joaquim Teixeira Alves n 1500 com impedncias simuladas..............................................................................62
10
I.
INTRODUO
Um problema que vem desafiando administradores e planejadores municipais consiste em como melhorar a qualidade de vida da populao nas cidades. De acordo com Moura, Ribeiro, Tibiri e Soares (2002) um dos desafios dentro do permetro urbano atender s exigncias quanto s suas necessidades de circulao do cidado. Nesse contexto, onde se envolvem fatores como velocidade mxima permitida, condies de uso e de trfego, de suma importncia para algumas empresas, a melhor utilizao das vias urbanas disponveis. Com uma anlise prvia do melhor caminho a ser seguido entre duas localidades pode-se diminuir custos com combustvel e acelerar a entrega de mercadorias. Quando tratamos de dados espaciais surge um conceito novo. Diferentemente dos dados que tratamos comumente na computao, para tratar de ruas necessrio o georreferenciamento. Georreferenciar representar uma entidade geogrfica de forma que suas informaes espaciais, ou parte delas, sejam mantidas. Dados como a localizao, dimenso ou formato de uma entidade servem para preservar a associao do modelo virtual com o mundo externo. Isso possibilita a utilizao desse modelo no estudo de casos onde a informao espacial essencial. reas como a agricultura e servios de planejamento urbano beneficiam-se diretamente da implementao de tcnicas de georreferenciamento. O estudo de informaes geogrficas bastante amplo e a interdisciplinaridade algo inevitvel em alguns casos. Dentro da Cincia da Computao podem-se abordar tais informaes em desenvolvimento de software, modelagem, banco de dados, computao
11
grfica, estudo de programao paralela e distribuda e at mesmo na aplicao de teorias computacionais. Ao conjunto de aplicativos que permitem o armazenamento, a manipulao e a visualizao de informaes geogrficas denomina-se Sistema de Informao Geogrfica (SIG).
1.1. Objetivos
Estudar estruturas de dados para representao de uma malha viria urbana. Devero ser levantadas formas de representao de ruas com enfoque especial em grafos; Modelar uma poro do mapa da cidade de Dourados utilizando a estrutura definida; Implementar algoritmos para encontrar menor caminho entre duas localidades. Os algoritmos de menor caminho devero levar em conta alguns fatores a serem definidos, como velocidade mxima permitida na via, sentido e condies de trfego.
12
torna-se bastante complexa e interessante por parte das empresas contar com um embasamento tcnico mais apurado no sentido de cortar gastos referentes ao transporte. Alm desse mrito social, poltico ou econmico do geoprocessamento, ele nos possibilita a aplicao de teorias e conceitos computacionais em diversas escalas. Sendo assim, um interessante campo de pesquisa.
13
14
MONTEIRO, 2004).
Cada regio possui um elipside de referncia que escolhido a partir de critrios geodsicos de adequao ou conformidade regio da superfcie terrestre a ser mapeada (Figura 1). Define-se ento um dos conceitos bsicos para o sistema geodsico de um pas: o datum planimtrico. O datum uma superfcie de referncia elipsoidal posicionada com respeito a certa regio. Definido um ponto de referncia, toda a geografia de uma regio ou
1
Elipside: um slido que resulta da rotao de uma elipse em torno de um dos seus eixos.
15
pas realizada com relao a ele. Segundo INPE (2004), devido s incertezas na determinao do centro da Terra real, trabalha-se com translaes relativas entre diferentes datuns planimtricos. Outro conceito importante o datum vertical, que utilizado para definir as altitudes de pontos na superfcie terrestre. No Brasil, um problema tpico tem sido a existncia de dois sistemas de referncia: Crrego Alegre e SAD-69. O primeiro, mais antigo, utilizado por algumas cartas at os dias atuais. O problema em se usar um sistema de projeo e datuns diferentes que os sistemas de coordenadas utilizadas so calculados de acordo com esses parmetros, o que pode tornar alguns dados incompatveis (INPE, 2004). INPE (2004, p. 10) assegura que: Todos os mapas so representaes aproximadas da superfcie terrestre. Isso ocorre porque no se pode passar de uma superfcie curva para uma plana sem que haja deformaes. Nesse caso, necessrio um mtodo para estabelecer uma relao entre um ponto da superfcie terrestre e a sua representao num plano. Esse o conceito de sistema de projeo cartogrfica. Os sistemas de projeo diferem com relao superfcie de projeo adotada e o grau de deformao. No Brasil, o mapeamento sistemtico feito na projeo UTM. Na UTM (Projeo Universal Transversal de Mercator), usa-se uma superfcie tangente ou secante superfcie da Terra como superfcie de projeo. As zonas UTM so numeradas seqencialmente a partir do antimeridiano de Greenwitch (180 para E), tendo um meridiano central que se projeta no mapa em UTM como uma linha reta N-S enquanto que os meridianos extremos da zona (mltiplos de 6) mostram a curvatura. Esses meridianos acabam se encontrando nos plos N e S geogrficos (INPE, 2004). Distores so diminudas pelo fato de que o cilindro terico de projeo, ao invs de ser tangente ao meridiano central, secante, distribuindo os erros da projeo que so maiores
16
nas reas de limites de zona. Os mapas com projeo UTM so de muito uso local e apresentam um sistema de coordenadas (INPE, 2004) que mtrico e cartesiano prprio para cada zona UTM. A cidade de Dourados se encontra na zona 21 da UTM.
17
pontos do mapa so indicados com o uso de um mouse especfico a um software que os processa e cria os polgonos referentes. Para manter o georeferenciamento dos dados, necessrio fornecer as coordenadas geogrficas de alguns pontos. Informadas algumas referncias, o modelo de projeo utilizado e o datum pela carta, possvel calcular corretamente a localizao geogrfica dos demais objetos. As coordenadas reais referentes aos pontos do mapa podem ser facilmente obtidas atravs de uma regra de trs simples. Basta utilizar os pontos de referncia inseridos como base.
18
grande quantidade de informao. necessrio organizar os dados em estruturas mais organizadas, a fim de facilitar a insero, remoo e principalmente a consulta. Nessas ocasies, interessante recorrer a um SGBD (Sistema Gerenciador de Banco de Dados). A integrao entre SIG e SGBD pode ser feita de duas formas: arquitetura dual (Figura 2) e arquitetura integrada(Figura 3). O que as difere a maneira como so trabalhados os dados espaciais e os no espaciais (FERREIRA, 2005).
Na arquitetura dual, a informao geogrfica armazenada separadamente dos atributos convencionais. Alguns SIGs, por exemplo, utilizam o formato de arquivo dbf para os registros enquanto a informao grfica georreferenciada fica em arquivos vetoriais, como o shape ou o map. Em geral, o que predomina em sistemas com arquitetura dual o uso de SGBD j popularmente consagrados, que empregam o modelo relacional e que so associados a arquivos de representao grfica. Segundo Ferreira (2005), essa arquitetura apresenta dificuldade no controle e manipulao dos elementos e na manutenibilidade entre os componentes espaciais e os componentes alfanumricos. A separao das informaes obriga o aplicativo a manter a associao entre as partes, funo que deveria ser executada apenas pelo SGBD.
19
A orientao a objeto uma metodologia que permite uma modelagem mais precisa das entidades do mundo real. Nesse contexto, a criao de SGBD que implementam solues orientadas a objetos facilitam o armazenamento de dados espaciais e alfanumricos em uma s base. Esse o conceito de arquitetura integrada. A principal vantagem deixar para o SGBD as responsabilidades referentes integridade, manutenibilidade e concorrncia (DATE, 2005). O Oracle Spatial (ORACLE) e o Postgis (REFRACTIONS RESEARCH) so exemplos de SGBDs geogrficos.
20
O Spring um GIS bastante utilizado no meio acadmico. Foi desenvolvido pelo INPE (Instituto Nacional de Pesquisa Espacial). Possui uma verso apenas para visualizao, o Spring Web, um Applet Java (HORSTMANN, 2001) para disponibilizao de mapas na internet. Assim como Mapserver, o Spring no uma ferramenta de cdigo aberto (SPRING). O Jump um framework Java para geoprocessamento. Possui pacotes para visualizao de mapas e leitura e gravao em arquivos GML. O projeto foi desenvolvido pela empresa canadense Vivid Solutions e open source. Foi descontinuado em 2004 (VIVID SOLUTIONS). O Alov uma aplicao semelhante ao Spring Web. Tambm possui cdigo fechado e por ser bastante simples utilizado para apresentao de mapas pequenos (ALOV). O Terralib a resposta livre do INPE para a comunidade de geotecnologias. Aps o sucesso do Spring, foi desenvolvida essa API (Application Programming Interface, Interface de Programao de Aplicativo) em ANSI2 C++. Por esse motivo, o Terralib considerado multiplataforma, ou seja, sua execuo no se limita a um sistema operacional apenas. H vrios projetos no Brasil e em outros pases que o utilizam. Os projetos Terracrime e Terraview so exemplos (DPI/INPE, 2006). O Google Earth, apesar de no ser um framework ou biblioteca para visualizao de informaes geogrficas, possui uma interessante base de dados com fotos de boa parte da superfcie terrrestre. Alm disso possui um padro aberto de arquivos que permite que sua interface seja utilizada para usos diversos (GOOGLE).
American National Standards Institute: uma organizao estado-unidense que tem por objetivo facilitar a padronizao de trabalhos. semelhante Associao Brasileira de Normas Tcnicas (ABNT).
21
III.
Um modelo de dados uma representao do mundo real dentro do domnio que um sistema computacional deseja processar informaes. Esse conceito est diretamente ligado idia de abstrao.
A abstrao de conceitos e entidades existentes no mundo real uma parte importante da criao de sistemas de informao. To importante que o sucesso da implementao de um sistema informatizado diretamente dependente da qualidade do trabalho de modelagem. Se os conceitos forem excessivamente simplificados, corre-se o risco de deixar de lado algum aspecto importante da realidade, com conseqncias sobre as aplicaes. Se, por outro lado, as representaes se tornarem complexas demais, corre-se o risco de gerar sistemas lentos, sobrecarregados, difceis e caros de manter. (DAVIS; BORGES, 2004, p. 1)
Baseando-se no chamado paradigma dos quatro universos, o processo de representao do mundo real para o ambiente computacional pode ser classificado em quatro universos conceituais (GOMES e VELHO, 1995). De acordo com esse paradigma: o universo do mundo real representa as entidades da realidade a serem modeladas; o universo matemtico compreende as definies formais das entidades; o universo de representao mapeia as entidades conceituais para representaes geomtricas e alfanumricas no computador; por fim, o universo de implementao engloba as aes referentes definio de estruturas de dados, algoritmos e demais mtodos computacionais (Figura 4). Os fenmenos do mundo real podem ser representados por diversos tipos de dados: temticos, cadastrais, redes, numricas e imagens. Os dados temticos descrevem a distribuio espacial de uma grandeza expressa em forma qualitativa, como por exemplo, um mapa de vegetao. Dados cadastrais permitem a associao de atributos com elementos
22
grficos em formato vetorial. Os dados de redes denotam informaes referentes a servios de utilidade pblica (gua, luz, telefone, etc), redes de drenagem, malhas virias (rodovias, ruas). Os tipos de dados numricos aplicam-se representao quantitativa de grandezas que variam continuamente no espao. So utilizados comumente para altimetria. Os dados armazenados em imagens so normalmente informaes obtidas via aerofotogrametria ou satlites e so armazenadas em formato matricial (ASSAD & SANO, 1998).
No geoprocessamento, o espao geogrfico dividido em dois modelos: campos e objetos. Desse modo, a informao geogrfica pode ser classificada em geo-campo, geoobjeto e dado no espacial. O modelo de campos define o espao como uma superfcie contnua em que variam os fenmenos. Um geo-campo , portanto, uma varivel que possui valores em todos os pontos pertencentes a uma regio geogrfica num dado perodo de tempo. O modelo de objetos trata de objetos de variao discreta. Um geo-objeto , ento, um
23
elemento nico e identificvel e que possui atributos no espaciais. Para um geo-objeto, a localizao um atributo fundamental (RIBEIRO, 2001).
Figura 5 - Notao grfica para as classes do modelo Geo-OMT (DAVIS; BORGES, 2004, p. 20).
O Geo-OMT divide as entidades modeladas em duas classes: georreferenciadas e convencionais (Figura 5). Atravs dessas duas classes possvel representar, de maneira integrada, os grupos de fenmenos que ocorrem no geoprocessamento: geo-campos (Figura
24
O GeoFrame um framework conceitual que fornece um diagrama de classes bsicas para modelagem de dados para SIG.
O uso conjunto do diagrama de classes da UML e o GeoFrame permite a soluo da maioria dos requisitos de modelagem de aplicaes de SIG. Um esquema conceitual de dados geogrficos construdo com base no modelo UML-GeoFrame inclui, por exemplo, a modelagem dos aspectos espaciais da informao geogrfica e a diferenciao entre objetos convencionais e objetos/campos geogrficos. (LISBOA e PEREIRA, 2002, p. 148)
O modelo UML-GeoFrame especifica um conjunto de esteretipos para a especificao de elementos de modelagem, como pode ser visto na Figura 8.
25
Na abordagem empregada por Lisboa, Iochpe e Borges (2001), cada via de locomoo deve possuir um cdigo de identificao e um nome, alm de estar, normalmente, dividida em diversos trechos (Figura 9). Um trecho de logradouro corresponde ao segmento de via compreendido entre duas conexes, sem seqncia, deste com outros logradouros que o cruzam ou interceptam. O conjunto entre trechos de logradouros e conexes constitui a malha
26
viria urbana. Os autores definem ainda um padro para rede de circulao viria urbana. A abordagem utilizada por Lisboa, Iochpe e Borges (2001) separa a estrutura viria urbana de itinerrios e rotas de circulao.
Figura 9 - Diagrama de classes do padro "Malha Viria Urbana" (LISBOA; IOCHPE; BORGES, 2001, p. 110)
27
IV.
Um grafo G=(V, E) um conjunto de objetos chamados de ns (ou vrtices) V={v1, v2,...} e um conjunto de arestas E={e1, e2,...}, tal que cada aresta ei pertencente a E est associado a dois ns vp e vq pertencentes a V. Desse modo, uma aresta ei=(vp, vq) identificado pelo par de ns a eles associados. De maneira simplificada, um grafo um conjunto de pontos (vrtices) conectados por linhas (arestas). Dependendo da aplicao, as arestas de um grafo podem ter direo, sendo chamadas de arcos. Pode ser tambm que os vrtices ou as arestas possuam um peso associado. Um grafo com arestas orientadas chamado de grafo orientado ou dgrafo. Quando h pesos associados o grafo diz-se ponderado. A Figura 10 mostra alguns exemplos de grafos.
Existem diversos problemas computacionais relacionados a grafos. Entidades que podem ser representadas por um grafo esto em toda parte. Muitos problemas prticos podem ser modelados em grafos. O problema do caminho mnimo um dos seus clssicos problemas
28
(CORMEN, 2001). Alm disso, outros problemas de roteamento (alm do caminho mnimo), problemas com fluxo de redes e o caixeiro viajante, por exemplo, fazem parte da vasta gama de problemas relacionados teoria de grafos.
O problema do clculo do caminho mnimo consiste na busca do caminho de menor custo entre dois vrtices de um grafo. O custo, nesse caso, a soma dos valores de impedncia existentes no caminho entre os dois vrtices. De maneira genrica, impedncia o custo do percurso entre dois ns de um grafo. Algumas aplicaes utilizam um peso equivalente para todos os vrtices do grafo. Outras utilizam apenas valores de distncia, por exemplo. Em redes virias, como afirma Freitas (2004): as impedncias podem ser representadas pelas mais variadas grandezas, seja pela distncia linear dos arcos, ou at mesmo por valores especficos relacionados aos atributos de
29
cada trecho em particular. Pode-se associar ao termo atributos, um fator de condio de uso da via (presena de buracos, por exemplo), quantidade de faixas, variao do fluxo, etc.
fcil compreender as inmeras aplicaes possveis utilizando a cincia dos grafos na soluo de problemas complexos envolvendo modelos de redes. No entanto, para usarmos esta metodologia, faz-se necessrio um aprimoramento metodolgico, trazendo o modelo para o mais prximo possvel da realidade espacial. Por mais que se estudem as relaes matemticas presentes e possveis nos ambientes de rede, o fenmeno, quando constatado na prtica, sofre influncia de vrios outros fatores presentes, e que respondem de maneira irregular s interaes entre estes elementos. (FREITAS, 2004, p. 18).
Freitas (2004) alerta para a complexidade inevitvel que se enfrenta na tentativa de modelar a realidade. A sada, para esses casos, definir o mais precisamente possvel o domnio que o problema requer para ser solucionado. Em seu trabalho, Freitas (2004) apresenta um mtodo para clculos de impedncias baseado em fatores ambientais e logsticos. Utiliza como estudo de caso o centro urbano da cidade de Ouro Preto. Nesse contexto, dificilmente as variveis analisadas em seu estudo seriam totalmente aplicveis para a cidade de Dourados. A estrutura diferenciada das vias e o relevo predominante na regio em que se situa cada cidade, entre outros fatores, obrigam a aplicao de uma outra abordagem na definio das variveis de impedncia. Isso fica mais evidente se considerarmos que a estrutura viria de centros antigos no condiz com as atividades praticadas atualmente. Cidades mais novas tm suas malhas planejadas para as condies de trfego contemporneas.
30
Foram implementados trs algoritmos de grafos que resolvem o problema da busca pelo caminho mais curto. Dois de busca desinformada (Dijkstra e Bellman-Ford) e um de busca informada (IDA*). Algoritmos de busca desinformada so os que no levam em considerao nenhuma informao pr-adquirida, ou seja, no h a aplicao de heursticas3. Outros algoritmos, utilizados na rea de Inteligncia Artificial, utilizam heursticas para economizar processamento ou memria. Com a busca informada, esses mtodos conseguem aperfeioar as solues no sentido de ignorar os caminhos que no interessam para a soluo final. 4.2.1 Algoritmo de Dijkstra Baseado no algoritmo da busca em largura, o algoritmo de Dijkstra uma soluo para o problema de caminhos mais curtos de nica origem. Selecionado um vrtice como raiz da busca, o algoritmo calcula o custo mnimo deste vrtice aos demais vrtices do grafo. O algoritmo de Dijkstra bastante simples e possui um bom tempo de execuo. Ele no garante, entretanto, a exatido da soluo caso haja a presena de arcos com valores negativos. Seu funcionamento parte de uma estimativa inicial para o custo mnimo e vai sucessivamente ajustando esta estimativa. O algoritmo de Dijkstra pode ser visto na Figura 12.
Heurstica uma aproximao de uma soluo, ou seja, uma informao estimada. Uma heurstica auxilia na busca de um objetivo. Porm, o problema de caminho mnimo informado sempre permite encontrar uma soluo tima.
31
Para cada vrtice v pertencente a V, mantm-se um atributo d[v] , que um limite superior sobre o peso de um caminho mais curto desde a origem s at v. Esses atributos so chamados por Cormen (2002) de estimativas de caminho mais curto e so inicializados com o algoritmo da Figura 13.
Figura 13 - Algoritmo de inicializao dos atributos de estimativa de caminho mais curto O algoritmo de Dijkstra mantm um conjunto S de vrtices cujos pesos finais de caminhos mais curtos desde a origem s j foram determinados. O algoritmo seleciona repetidamente o vrtice u V - S com a estimativa mnima de caminhos mais curtos, adiciona u a s e relaxa todas as arestas que saem de u. Na implementao a seguir, manteremos uma fila de prioridade mnima Q de vrtices, tendo como chaves seus valores de d. (CORMEN, 2002, p. 471)
Esse algoritmo utiliza a tcnica de relaxamento (Figura 14). Segundo Cormen (2002, p. 463): O processo de relaxamento de uma aresta (u, v) consiste em testar se podemos melhorar o caminho mais curto para v encontrado at agora pela passagem de u.
Cormen (2002) explica o funcionamento do algoritmo da seguinte forma: A linha 1 executa a inicializao habitual dos valores de d e , e a linha 2 inicializa o conjunto S como o conjunto vazio. O algoritmo mantm o invariante de que Q = V- S no incio de cada iterao da estrutura de repetio das linhas 4 a 8. A linha 3 inicializa a fila de prioridade mnima Q para conter todos os vrtices em V; tendo em vista que s = nesse momento, o invariante verdadeiro aps a linha 3. Em cada passagem pelo lao while das linhas 4 a 8, um vrtice u extrado de Q = V - S e inserido no conjunto s, mantendo assim o invariante. (Na primeira passagem por esse loop, u = s.) Ento, o vrtice u tem a menor estimativa de caminhos mais curtos em comparao cora qualquer vrtice em V-S. Em seguida, as linhas 7 c 8 relaxam cada
32
aresta (u, v) que saem de u, atualizando assim a estimativa d[v] e o predecessor [v] se o caminho mais curto at v pode ser melhorado mediante a passagem por u. Observe que os vrtices nunca so inseridos em Q aps a linha 3, e que cada vrtice extrado de Q e inserido em S exatamente uma vez, de modo que o lao while das linhas 4 a 8 interage exatamente | V | vezes. 4.2.2 Algoritmo de Bellman-Ford Apesar de ser um algoritmo mais lento que o de Dijkstra, Bellman-Ford resolve o problema de caminhos mais curtos para arestas com pesos negativos, ou seja, no caso mais geral. Seja um grafo orientado ponderado G = (V, E) com origem s e funo peso w : E R,
o algoritmo de Bellman-Ford (Figura 15) retorna um valor booleano indicando se existe ou no um ciclo de peso negativo acessvel a partir da origem. Se existe tal ciclo, o algoritmo indica que no existe nenhuma soluo.
O algoritmo produz os caminhos mais curtos e seus pesos se no existir ciclos de peso negativo. Assim como o Dijkstra, este algoritmo tambm usa o relaxamento. A corretude do algoritmo de Bellman-Ford pode ser verificada em Cormen (2001). A complexidade do algoritmo de O(V E). A inicializao na linha 1 demora o tempo (V), cada uma das |V| - 1 passagens sobre as arestas nas linhas 2 a 4 demora o tempo (E), e o loop for das linhas 5 a 7 demora o tempo (E).
33
4.3.3 Algoritmo IDA* (Iterative Deepening A*) O algoritmo IDA* um algoritmo de busca informada utilizado pela rea de Inteligncia Artificial para resolver o problema de caminhos mais curtos. Antes de entrar em detalhes sobre o seu funcionamento, interessante comentar a existncia de outros algoritmos de busca informada com o mesmo propsito. O algoritmo IDA* uma variao do A*. Russel e Norvig (2004) referem-se busca A* como a mais amplamente conhecida para a busca pela melhor escolha. Ela avalia os ns combinando o custo para alcanar cada n com o custo para ido do n at o objetivo. Desse modo tem-se: f(n) = g(n) + h(n) Assim, f(n) o custo estimado entre o destino e a origem em cada iterao. Ele obtido pela soma do custo real gasto entre a origem e o estado atual (g(n)) com a heurstica (normalmente a distncia em linha reta) do estado atual at o destino. A idia do A* para encontrar a soluo de custo mais baixo experimentar primeiro o n com o menor valor de g(n) + h(n). Segundo Russel e Norvig (2004), a soluo proposta por essa estratgia mais que apenas razovel, ao mesmo tempo completa e tima, desde que a funo heurstica h(n) satisfaa a certas condies: h(n) = 0, n o n objetivo; h(n) > 0, a soluo est em outro n; h(n) tem valor infinito se impossvel atingir o estado final;
Existem diversas variaes do A*. O IDA* uma delas e, portanto funciona de modo semelhante, mas ao contrrio de aplicar um limite na profundidade, impe limites sucessivos (contornos) no custo das solues que se pode calcular. De maneira simplificada, o que difere ambos que o IDA* limita a memria utilizada na busca da soluo alocando o mnimo de
34
ns possvel. Ao invs de alocar todos os ns da fronteira de verificao ele armazenar apenas o que est sendo trabalhado no momento e realiza uma recurso na rvore de deciso quando precisa recuperar uma posio percorrida anteriormente. Na prtica, o IDA* torna-se um algoritmo lento por prezar a economia de memria. Sua complexidade exponencial (O(bd)), onde b a largura da rvore de expanso e d a altura. A soluo equivalente ele para a economia de processamento o SMA* (RUSSEL e NORVIG, 2004). No IDA*, o limite comea atribuindo o valor de f para o n inicial. Nas iteraes posteriores, o limite ter sempre o menor valor de f dos ns que ficaram por expandir na iterao anterior. O trmino da busca ocorre quando encontrada uma soluo cujo custo menor ou igual ao limite da iterao atual. A Figura 16 ilustra o funcionamento do algoritmo IDA*, foi extrada de Pfahringer (2006).
Como pode ser observado no pseudo-algoritmo da Figura 16, a maior parte do trabalho de execuo fica por parte da funo DFS-CONTOUR, que responsvel pelo clculo do contorno representada pela varivel f-limit. Esse contorno um valor inteiro que limita a verificao dos ns queles que estiverem com heursticas menor ou igual ao valor do contorno. O algoritmo DFS-CONTOUR executado at que uma soluo seja encontrada. Seu
35
funcionamento acontece da seguinte maneira: a varivel f-COST denota o custo do percurso at o n representado pelo parmetro node. As variveis next-f e new-f so auxiliares e representam o prximo limite calculado e o valor calculado pelos sucessores de node. Dessa forma, cada chamada a DFS-CONTOUR corresponde verificao de uma subrvore de deciso.
O exemplo a seguir ilustra o funcionamento do algoritmo IDA*. Considera-se o grafo da Figura 18 e a respectiva tabela de heursticas baseadas em distncias (Figura 19). Deseja-se encontrar o caminho mnimo entre as cidades de Curitiba e Cascavel. A tabela de heursticas registra ento, as distncias de todas as cidades at Cascavel.
36
Figura 18 - Grafo das rodovias que ligam algumas cidades do estado do Paran
O limite sempre o menor valor de f(n) vrtices que esto nas folhas da rvore de deciso. Diferentemente de outros algoritmos com o mesmo propsito, o IDA*, como foi dito, no armazena as folhas e para saber qual o novo vrtice a ser expandido deve percorrer toda a rvore. Na Figura 20 (a), temos o estado correspondente a Curitiba. Expandimos Curitiba por ser a nica folha (limite = 424). O algoritmo DFS-COUNTOUR percorre toda a rvore identificando qual n possui um
37
f(n) menor que o atual limite. Como no encontrou nenhuma e o destino tambm no foi encontrado, o limite atualizado para o menor valor encontrado (limite = 442) e expandimos Ponta Grossa. Na Figura 9 (d), DFS-COUNTOUR, expande So Matheus do Sul (limite = 482). Em (e), finalmente o algoritmo encontra Cascavel, porm o caminho encontrado no declarado como soluo at que as outras folhas da rvore sejam visitadas afinal, s percorrendo todas, o algoritmo garante que no existe nenhum outro caminho melhor do que o encontrado. A Figura 21 mostra o resultado final.
38
39
Figura 21 - Resultado encontrado pelo algoritmo IDA* para o exemplo das vias do Estado do Paran
40
V. IMPLEMENTAO E RESULTADOS
41
(dados de redes) utilizou-se o software Spring. O processo de digitalizao dos eixos no Spring consiste em trabalhar com o mapa de lotes da prefeitura (imagem) em segundo plano e criar sobre ele as linhas correspondentes s vias (Figura 23). Ao importar o mapa para o software, deve-se fornecer alguns pontos conhecidamente georreferenciados e o modelo de projeo aplicado (Captulo II). Esses parmetros so necessrios para manter o georreferenciamento e evitar distores provocadas por erros de projeo. O prximo passo , ento, desenhar a malha viria, como pode ser visto na Figura 24. Aps a criao da malha viria, o Spring permite a exportao dos dados para diversos formatos de arquivos possibilitando assim, a utilizao deles em outras aplicaes. A Figura 25 mostra a malha viria de Dourados completa. A Figura 26 permite uma comparao com os dados originais da Figura 22.
42
43
44
45
logradouro possua referncia para dois cruzamentos, e que um cruzamento referencie a n logradouros.
Apesar de uma malha viria ser visivelmente reconhecida como um grafo, onde os seus vrtices so os cruzamentos e as arestas so os trechos de logradouro, outras estruturas possuem a mesma concepo. Por esse motivo, foi conveniente criar uma nova classe que generalizasse essas caractersticas: a CompostoVirio. Desse modo, a malha viria um composto, ou seja, um grafo com atributos geogrficos referentes aos logradouros e seus cruzamentos. Os caminhos (ou itinerrios) e os bairros tambm so considerados compostos.
46
Bellman-Ford). possvel ainda simular atributos de impedncia. Sua integrao com o Google Earth permite uma maior associao com as entidades do espao geogrfico. A Figura 28 e a Figura 29 exibem a interface grfica do aplicativo e como o mesmo deve ser utilizado.
A Figura 28 demonstra onde esto e como alterar os atributos de simulao de impedncia do aplicativo. A Figura 29 indica onde so definidos os pontos de origem e destino do caminho, onde selecionar o algoritmo desejado e como ger-lo. H tambm um boto que possibilita a visualizao da rede viria completa. A barra de ttulos indica ainda qual base de dados est sendo utilizada: a completa ou a limitada pelas vias principais. A execuo do sistema consiste em ler os dados da base, obter os parmetros fornecidos pelo usurio via interface grfica, processar o caminho mnimo e carregar o Google Earth para visualizar a soluo encontrada. Na Figura 30 possvel verificar como o funcionamento do programa e a sua arquitetura.
47
48
A interface grfica do YBY corresponde aos componentes de controle do sistema. O modelo corresponde s estruturas de dados de grafos e a toda lgica de negcios (nesse caso os algoritmos de caminhos mnimos). A viso realizada com uma chamada externa ao Google Earth. Desse modo, os eventos gerados so tratados e o modelo da aplicao alterado de acordo com os dados definidos pelo usurio. Os dados do modelo so obtidos dos arquivos SPR e MVU (sero explicados posteriormente) Quando o modelo alterado, a viso atualizada com o envio do arquivo KML correspondente para o Google Earth.
utilizada, datum, etc; Uma seqncia de coordenadas geogrficas que definem as linhas (arestas) da
uma linha do grafo. atravs dessa referncia que sabe-se qual logradouro uma determinada linha pertence. Por exemplo, como saber se a linha demonstrada na Figura 31 pertence ou no
49
Avenida Marcelino Pires? Para saber isso, deve-se verificar se h alguma coordenada de referncia que indique um ponto pertencente a essa linha e que esteja relacionado ao nome Marcelino Pires; O arquivo permite a insero de outras informaes que para o caso aqui tratado especificamente no so interessantes. Porm, o que mais chama a ateno no formato do arquivo descrito acima que ao mesmo tempo em que sua simplicidade ajuda a entender como esto dispostas as informaes ela cria outro problema. Um grafo deve conter uma srie de relacionamentos que referenciam os seus componentes. Deve ser possvel, por exemplo, que atravs de uma aresta se identifique os vrtices que a compe. Sendo assim, o algoritmo criado para fazer a montagem da estrutura do grafo partir de um arquivo desse formato tem de fazer uma quantidade muito grande de comparaes, o que o torna bastante lento. O algoritmo funciona da seguinte maneira: a cada leitura de uma aresta de um arquivo (longitude1, latitude1, longitude2 e latitude2) ele monta um objeto TrechoLogradouro e o insere no grafo. Antes de inserir, no entanto, verifica-se se os seus vrtices j existem no grafo. Se existirem, devem ser devidamente referenciados. Aps a montagem do grafo que representa a malha viria ainda deve-se referenciar todos os trechos (arestas) com os seus respectivos nomes de ruas. Para se ter uma noo do quanto esse processo lento, interessante observar a sua complexidade. Seja E o nmero de arestas e V o nmero de vrtices, considerando que em mdia um vrtice novo adicionado por aresta (no caso de Dourados) e o custo para referenciar os trechos com os logradouros, o algoritmo possui o tempo igual a O(V E) + O(E), ou seja, O(V E). A malha viria de Dourados possui mais de 9000 arestas ou trechos de logradouro. Podem ser considerados, portanto em torno de 81 milhes de comparaes. Nos testes realizados, a montagem do grafo no demorou menos que 20 minutos para ser realizada.
50
Para evitar que o software demore esse tempo para ser utilizado sempre que requisitado, optou-se por converter toda a base de dados para um formato prprio (.mvu) que armazenasse as referncias entre os componentes do grafo e fosse executado no melhor tempo possvel (O(n)). Com essa modificao, at mesmo os dados da malha viria completa da cidade de Dourados so carregados em menos de 1 minuto nos testes realizados. A princpio, a melhor alternativa parecia ser o armazenamento do grafo como objeto atravs do processo de serializao do Java, por sua facilidade e praticidade. A serializao consiste na converso de um objeto em um vetor de bytes. Porm, devido a grande quantidade de informaes a serem armazenadas, ocorreram problemas de estouro de pilha, ou seja, o sistema no conseguia carregar o stream de memria inteiro do objeto serializado. importante lembrar que a serializao grava no s os atributos de um objeto mas inclusive o seu cdigo e uma cpia de todos os objetos que o mesmo referencia. A soluo poderia ser, tambm, gravar os dados em arquivos baseados em XML. Porm, no h interesse em que os arquivos de dados sejam editveis manualmente, alm dos arquivos XML tenderem a possuir tamanhos maiores que dados em formato ASCII simples e terem que ser parseados de maneira especfica. A soluo assumida foi um formato ASCII prprio que grava as arestas, as referncias e os nomes dos logradouros em trs arquivos diferentes. Cada entidade possui um valor identificador que utilizado para o referenciamento. 5.4.2 Entrada/Sada de arquivos KML Para que o software pudesse ser integrado e utilizar os recursos grficos do Google Earth, foi preciso conhecer o padro de arquivos aceito por ele como entrada, o KML (Google, 2006). Sendo assim, foram criadas classes para leitura e gravao de arquivos nesse formato. Foi usada a API DOM, que especfica para o tratamento de arquivos XML.
51
5.4.3 Base de Dados Completa e para Demonstrao Como a quantidade de informao contida na base de dados bastante grande, para demonstrao, o software permite que sejam carregadas apenas as vias principais cadastradas (para ser mais especfico, as que possuem nome referenciado).
52
aplicativo seria gerada uma seqncia de valores diferentes e a distribuio de impedncia na malha seria sempre diferente, dificultando a simulao de uma mesma malha em momentos distintos. 5.5.2 Clculo de Endereos e Aproximao por coordenadas geogrficas Para que um algoritmo de busca de melhor caminho seja executado pelo aplicativo necessrio o fornecimento do ponto de origem e do ponto destino. Isso pode ser feito de duas formas: coordenadas geogrficas em graus decimais (-54.80696075 e 22.22695483, por exemplo) ou endereos (nome do logradouro e nmero). Os pontos de origem e destino devem pertencer ao grafo para que os devidos algoritmos sejam executados. Porm, no necessrio que o usurio saiba quais pontos fazem parte do grafo. Quando uma coordenada fornecida, feita uma busca e o vrtice do grafo mais prximo selecionado (Figura 32). O mtodo utilizado para encontrar os vrtices origem e destino o da metragem. Na cidade de Dourados, as casas so numeradas partir da sua distncia (em metros) at o incio de um logradouro. Os clculos no fornecem solues exatas, afinal o correto seria um levantamento completo e armazenamento de endereos na base de dados. Entretanto, esse mtodo fornece uma estimativa satisfatria para diversas aplicaes. Como a base no possui informaes referentes ao incio exato das vias, padronizou-se que todas tenha o sentido do norte para o sul e do leste para o oeste. Como os trechos de logradouro no so inseridos na seqncia correta na base de dados (do incio para o fim do logradouro) eles devem ser ordenados para que depois se percorra a lista comparando o nmero com a metragem somada do percurso do incio do logradouro at o nmero que se procura. A Figura 33 exemplifica como feito o clculo de estimativa de endereo. Outro problema que pode ocorrer no caso em que o logradouro no formado por uma linha reta (caso comum em cidades litorneas ou vias marginais). Isso atrapalharia a
53
ordenao dos trechos que leva em considerao a posio geogrfica dos vrtices da extremidade.
5.6. Testes
Foram realizados testes visando comparar os algoritmos para busca de melhor caminho e verificar a eficcia dos mtodos de definio dos pontos origem e destino (aproximao de coordenadas e estimativa de endereos). Alm disso, foram realizadas simulaes impedncias aleatrias. Sendo assim, os quatro primeiros testes apresentados a seguir foram selecionados para comparar os algoritmos de caminho mnimo utilizando apenas a distncia como impedncia. Os testes foram realizados em uma mquina com processador Pentium 4 com 3.2 GHz, 512 MB de memria RAM e Disco Rgido de 40 GB.
54
5.6.1 Testes de tempo de execuo dos algoritmos Dijkstra, Bellman-Ford e IDA* Teste 1 - Caminho entre a Rua Indai n 45 e a Rua Coronel Ponciano n 2500 O tamanho do caminho criado de 8991,44 metros (Figura 34). O tempo de execuo para cada algoritmo foi: Dijkstra: 42,313 segundos Bellman-Ford: 792,625 segundos IDA*: mais de 1 hora.
Teste 2 - Caminho entre a rua Joaquim Teixeira Alves n 1700 e a Avenida Weimar Gonalves Torres n 2000
55
O tamanho do caminho criado de 524,285 metros. O nmero de ns gerados da soluo foi 6. O tempo de execuo para cada algoritmo foi: Dijkstra: 0,484 segundos Bellman-Ford: 2.422 segundos IDA*: 0,625 segundos Teste 3 - Caminho entre a rua Joaquim Teixeira Alves n 1600 e a Avenida Weimar Gonalves Torres n 2100 O tamanho do caminho criado de 780.76 metros. O nmero de ns gerados da soluo foi 8. O tempo de execuo para cada algoritmo foi: Dijkstra: 0,516 segundos Bellman-Ford: 2.906 segundos IDA*: 2.422 segundos
Teste 4 - Caminho entre a Rua Joaquim Teixeira Alves n 1500 e a Avenida Weimar Gonalves Torres n 2200 O tamanho do caminho criado de 1040.19 metros. O nmero de ns gerados da soluo foi 10. O tempo de execuo para cada algoritmo foi: Dijkstra: 0.596 segundos Bellman-Ford: 3.203 segundos IDA*: 155,008 segundos
Percebeu-se nitidamente atravs dos testes realizados que o desempenho do algoritmo de Dijkstra realmente superior ao dos demais implementados nesse trabalho. medida que a entrada do problema aumenta, (ou seja, a distncia e o nmero de vrtices a serem analisados), o tempo de processamento para encontrar o caminho aumenta muito mais rapidamente no algoritmo de Bellman-Ford do que no Dijkstra. interessante ressaltar que o algoritmo de Bellman-Ford sacrifica desempenho para poder analisar impedncias negativas.
56
Dos trs, o que apresentou o pior tempo de processamento foi o IDA*. Isso pode ser facilmente entendido considerando-se que o foco desse algoritmo de busca informada a economia de memria e no ganho de processamento. Ainda assim, para encontrar solues entre vrtices prximos, o IDA* mostrou-se melhor que o Bellman-Ford. Com relao aos caminhos encontrados, todos os algoritmos trazem sempre a mesma soluo. Outros testes, realizados em uma mquina com desempenho inferior (Pentium III, 1.0 GHz, 192 MB de memria RAM), foram coletados os dados da Figura 35. Esses testes possibilitaram comparar com mais facilidade os tempos de processamento dos algoritmos.
Figura 35 - Testes "curtos" realizados em um Pentium III 1.0 GHz com 192 MB
No grfico da criado partir dos dados da , possvel verificar que o algoritmo de busca informada (IDA*) melhor quando o processamento trabalha com uma pequena quantidade de ns. medida que a quantidade de ns processados aumenta o seu tempo de execuo aumenta consideravelmente. Isso se deve ao seu tempo de execuo exponencial. Do mesmo modo, o comportamento do algoritmo de Dijkstra e de Bellman-Ford mantm o comportamento estipulado por suas complexidades.
57
5.6.2 Teste do mtodo de Aproximao de Coordenadas para Vrtices O clculo de aproximao de coordenadas deve fazer com que uma coordenada geogrfica qualquer fornecida como origem ou destino do caminho a ser criado seja ajustada para o vrtice mais prximo do grafo da rede viria urbana. Para realizar o teste foram fornecidos os pontos centrais do campo de futebol do estdio Dourado5 e da quadra de esportes do Parque dos Ips. A Figura 37 mostra como qual foi o caminho gerado. Na Figura 38 e Figura 39 possvel verificar qual foi a aproximao realizada.
58
59
60
5.6.3 Teste do mtodo de Estimativa de Endereos A estimativa de endereo consistem em obter uma esquina (vrtice) do logradouro utilizando a metragem aplicada na numerao dos terrenos. A Figura 40 mostra o caminho realizado entre a Rua Tiet, n 429 e a Rua Monte Castelo, n 1513. Cabe lembrar que esse mtodo oferece apenas uma noo do endereo correto.
Figura 40 - Vrtices dos grafos estimados para os endereos: Rua Tiet, n 429 e Monte Castelo, n 1513
5.6.3 Teste com simulao de impedncias Para testar a execuo do programa para impedncias que no fossem somente a distncia, foram gerados valores aleatrios acrescidos distncia. A Figura 41 ilustra a malha viria de Dourados com as impedncias dos trechos de logradouro alterados. As cores variam do amarelo-claro ao preto, passando pelo vermelho. As cores mais claras simbolizam
61
impedncias menores e as mais altas maiores, consequentemente. Percebe-se pela imagem que as ruas principais possuem tonalidade mais clara. Na simulao, considerou-se que essas ruas normalmente so preferenciais no cruzamento com outras e tambm possuem mais faixas.
Para testar, foi executado o programa para calcular o caminho entre a Avenida Weimar Gonalves Torres, n 2200 e Rua Joaquim Teixeira Alves n 1500 com e sem impedncias simuladas. A Figura 42 mostra o caminho escolhido pelo algoritmo de Dijkstra para a impedncia igual distncia somente. A Figura 43 mostra outro caminho para o mesmo par origem/destino, porm com os valores de impedncias distorcidos. Isso ocorreu por que as impedncias no caminho encontrado para a soluo no simulada possuem (aps a gerao dos nmeros aleatrios) valores maiores. Para se ter uma idia, o maior valor de impedncia
62
do primeiro caminho uma distoro de aproximadamente 47,78 metros enquanto o maior da segunda foi de 32,035 metros. A segunda ilustra a maior impedncia do segundo caminho gerado.
Figura 42 - Caminho gerado entre a Av. Weimar Torres, n 2200 e Rua Joaquim Teixeira Alves n 1500 com impedncias no simuladas
Figura 43 - Caminho gerado entre a Av. Weimar Torres, n 2200 e Rua Joaquim Teixeira Alves n 1500 com impedncias simuladas
63
O trabalho aqui demonstrado contempla os objetivos que foram propostos. A resoluo do mesmo possibilita ainda responder na prtica seguinte questo: Qual a importncia de georreferenciar dados? Essa pergunta respondida observando-se a integrao do Yby (ver pgina 45) com o Google Earth. Sendo assim, a grande vantagem em se trabalhar com dados georreferenciados o poder que se tem em integrar informaes entre aplicativos e bases distintas. Afinal, georreferenciar significa assumir um padro para as entidades geogrficas. O resultado dessa integrao que torna possvel ao Yby utilizar a base de dados de fotos de satlite do Google como complemento aos caminhos gerados e visualizao da rede viria da cidade de Dourados como um todo. Alis, dentre as ferramentas de visualizao pesquisadas o Google Earth foi escolhido justamente pela base de fotos. Ao mesmo tempo em que os benefcios trazidos pelo trabalho com dados referenciados geograficamente so um incentivo (em alguns casos necessidade) para a criao de SIGs, o abordagem diferenciada dos mtodos de manipulao desses dados torna o trabalho mais difcil. Esse fato define inclusive uma certa proporcionalidade entre os resultados que se quer obter e a quantidade de dados de entrada. Isso significa dizer que quanto mais preciso o resultado, maior a quantidade de informao que ele precisou para ser processado. Essas dificuldades surgem desde a captura dos dados at o seu processamento.
64
Incluso nesse trabalho, est a pesquisa de metodologias e ferramentas para manipulao informao geogrfica. Dessa forma, alm do software, tem-se atravs dessas pesquisas uma boa fonte de referncia para outros trabalhos que necessitem georreferenciar ou modelar dados geogrficos. Do ponto de vista de implementao, todos os algoritmos implementados produzem solues esperadas, ou seja, o melhor caminho. Porm, como era de se esperar (devido s complexidades de tempo), constatou-se a superioridade do algoritmo de Dijkstra. O software possui grande aplicabilidade na gesto de transporte urbano. Permitindo simulaes, possvel criar diversas situaes teis para verificar os impactos que uma rua de grande fluxo, por exemplo, pode causar se estiver muito danificada. Essa aplicabilidade pode ser ampliada se houver integrao com um banco de dados com dados verdicos. Se a base for confivel e completa no que se refere aos dados utilizados para computar caminhos mnimos, o programa pode ser aplicado para calcular impedncias reais. Obviamente, necessrio criar um mtodo para avaliar o quanto cada atributo (nmero de lombadas, falta de pavimento, entre outros) afeta no deslocamento, como fez Freitas (2004).
carregamento e sobrecarga de memria e processamento. A dificuldade desse item est diretamente relacionada com a quantidade de informao que se deseja armazenar. Como foi demonstrado a captura de dados georreferenciados costuma ser bastante trabalhosa; Implementar o algoritmo de busca informada A* e outros algoritmos. Outros
65
uma implementao do Dijkstra, porm utilizando heursticas. Para os casos em que se trabalha apenas com a distncia como impedncia, a implementao do mesmo poderia ser bastante til.; Pesquisar novos mtodos para o clculo de endereos. Os clculos de endereo
implementados so apenas estimativos. Para resultados mais precisos, seria interessante a utilizao de outros mtodos. O ideal que os endereos estivessem disponveis na base de dados; Inserir pontos intermedirios no grafo para que no sejam selecionadas apenas
esquinas na gerao das rotas. Esse item aumentaria a preciso dos clculos uma vez que calcularia uma distncia final mais condizente a do percurso real. Tratar de clusters para melhorar a velocidade de processamento. O sistema
trabalha com todo o grafo da malha viria urbana disponvel ao executar um algoritmo de busca de caminho mnimo. Isso poderia ser melhorado se o processo fosse dividido em duas ou mais etapas. As primeiras etapas consistiriam em analisar a malha como um conjunto menor de vrtices. Isso poderia ser feito atribuindo um super-vrtice a cada bairro e algumas arestas pr-estabelecidas entre cada bairro, que equivaleriam s ruas principais da cidade, por exemplo. A idia consiste em tratar um cluster (bloco) de arestas e vrtices como um nico vrtice para diminuir o nmero de variveis analisadas na busca. Desse modo, quando fosse realizada uma consulta, o sistema primeiramente encontraria o melhor caminho entre os bairros e depois disso analisariam os vrtices destino e origem fornecidos pelo usurio.
66
VII. REFERNCIAS
ALOV. ALOV Map. Disponvel em: < http://www.alov.org/index.html >. Acessado em: 10 de Dezembro de 2006. ASSAD, E. D.; SANO, E. E. Sistema de informaes geogrficas: aplicaes na agricultura. Braslia, DF: EMBRAPA, 2 edio, 1998. BORGES, K. A. V. Modelagem de Dados Geogrficos: Uma Extenso do Modelo OMT para Aplicaes Geogrficas. Dissertao de Mestrado. Fundao Pinheiro, Belo Horizonte, 1997. CMARA, G.; MONTEIRO, A. M. V. Conceitos Bsicos em Cincia da Geoinformao. So Jos dos Campos, SP: Instituto Nacional de Pesquisas Espaciais/INPE, 2004. COMUNELLO, .. Onde Estou? Centro de Pesquisa Agropecuria do Oeste (CEPAO), Empresa Brasileira de Pesquisa Agropecuria (Embrapa). Disponvel em: < www.cpao.embrapa.br/Noticias/artigos/artigo11.html>. Acessado em: 20 de Agosto de 2006. CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; STEIN, C. . Introduction to Algorithms. Second Edition, 1184 pages. The MIT Press, Cabridge, MA, USA, 2001. DANA, Peter. Global Positioning System Overview. Department of Geography, University of Texas at Austin, 1994. Disponvel em: <http://www.colorado.edu/ geography/gcraft/notes/gps/gps_f.html>. Acessado em: 20 de Agosto de 2006. DATE, C. J. Introduo a Sistemas de Banco de Dados. Editora Campos, 896 pginas, So Paulo, SP, 2005. DAVIS Jr.; C, BORGES, K. A. V. Modelagem De Dados Geogrficos. So Jos dos Campos, SP: Instituto Nacional de Pesquisas Espaciais/INPE, 2004. DEPARTAMENTO DE PROCESSAMENTO DE IMAGENS (DPI/INPE). Spring. Instituto Nacional de Pesquisas Espaciais/INPE, 2004. Disponvel em: < http://www.dpi.inpe.br/spring/ >. Acessado em: 20 de Agosto de 2006. FERREIRA, K. R.; CASANOVA, M. A.; QUEIROZ, G. R.; OLIVEIRA, O. F. Banco de Dados geogrficos. Curitiba, Editora MundoGEO, 2005.
67
FREITAS, C. R. Construo e Aplicao de Modelo de Rede em Ouro Preto: Utilizao de Fatores Ambientais e Logsticos no Clculo de Impedncias. Departamento de Cartografia, Instituto de Geocincias,UFMG, Belo Horizonte, 2004. GOMES, J.; VELHO, L. Abstraction Paradigms for Computer Graphics. The Visual. Computer , v. 11, n.5, p. 227-239, 1995. GOOGLE. Google Earth Home. Disponvel em: < http://earth.google.com/ >.Acessado em: 01 de Dezembro de 2006. HORSTMANN, C. S. CORNELL, G. Core Java 2 Volume I (Fundamentos). Editora Makron Books, 2001. INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS (INPE). Tutorial: Banco de Dados Geogrficos. So Jos dos Campos, SP, 2004. LARMAN, C. Utilizando UML e Padres. Bookman, 608 pginas, 2002, 2 Edio, Porto Alegre, RS. LISBOA, J.; PEREIRA, M. Desenvolvimento de uma ferramenta CASE para o Modelo UML-GeoFrame com Suporte para Padres de Anlise. Geoinfo 2002: IV Simpsio Brasileiro de Geoinformtica, Caxambu, Minas Gerais, Brasil. LISBOA, J.; IOCHPE, C.; BORGES, K. A. V. Reutilizao de Esquema de Banco de Dados em Aplicaes de Gesto Urbana. I Latin American Conference on Pattern Languages of Programming (Sugar LoafPLOP), Rio de Janeiro, 2001. LISBOA, J.; IOCHPE, C. Um estudo sobre modelos conceituais de dados para projeto de bancos de dados geogrficos. Informtica Pblica, 1(2), 1999. MOURA, M., RIBEIRO C., TIBIRI A. e SOARES, V. Criao da Rede e Base de Dados para o Sistema Virio de Viosa - MG, Utilizando SIG. Tese de Mestrado, Universidade Federal de Viosa, MG, Brasil, 2002. OPEN GEOSPATIAL CONSORTIUM (OPENGIS). GML - the Geography Markup Language. Disponvel em: <www.opengis.net/gml >. Acessado em: 20 de Agosto de 2006. ORACLE. Oracle Spatial & Oracle Locator: Location Features for Oracle Database 10g. Disponvel em: < http://www.oracle.com/technology/products/spatial/ index.html >. Acessado em: 20 de Agosto de 2006. PFAHRINGER, B. Extra material: informed memory-bounded search. Disponvel em: <http://www.cs.waikato.ac.nz/~bernhard/316/slides/Chapter04-extra.pdf>.Acessado em: 01 de Dezembro de 2006. PREFEITURA MUNICIPAL DE DOURADOS (PMD). Mapas Dourados. Disponvel em: <http://www.dourados.gov.br/mapas>. Acessado em: 21 de Agosto de 2006. REFRACTIONS RESEARCH. What is Postgis?. <http://postgis.refractions.net/>. Acessado em: 20 de Agosto de 2006. Disponvel em:
68
RIBEIRO, M. F. S. Modelagem de SIG para o Plano Diretor de Drenagem Urbana de Belo Horizonte. Monografia de Especializao da Universidade Federal de Minas Gerais, Belo Horizonte, 2001. RUSSELL, S.; NORVIG, P. Artificial Intelligence: A Modern Approach. Prentice Hall, 1132 pages, 2002. UNIVERSIDADE FEDERAL DE VIOSA (UFV). UML-Geoframe. Disponvel em: <http://www.ufv.br/geoframe>. Acessado em: 21 de Agosto de 2006. UNIVERSITY OF MINNESOTA. Mapserver. Disponvel em: <http://mapserver.gis.umn. edu/>. Acessado em: 10 de Dezembro de 2006. VIVID SOLUTIONS. JUMP Unified Mapping Platform. Disponvel <http://www.vividsolutions.com/JUMP/>. Acessado em: 10 de Dezembro de 2006. em:
WORLD WIDE WEB CONSORTIUM (W3C). Scalable Vector Graphics (SVG). 2006. Disponvel em: <http://www.w3.org/ Graphics/SVG >.Acessado em: 20 de Agosto de 2006.