tÉcnicas de busca heurÍstica no desenvolvimento de um sistemade mapas viÁrios e busca de rotas

78
CENTRO UNIVERSITARIO DE BARRA MANSA PRÓ-REITORIA ACADÊMICA NUCLEO PEDAGÓGICO TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMA DE MAPAS VIÁRIOS E BUSCA DE ROTAS Afonso França de Oliveira Bernardo Silva Pinto

Upload: afonsofranca

Post on 12-Aug-2015

104 views

Category:

Documents


10 download

DESCRIPTION

Este trabalho apresenta um protótipo onde foi implementada a busca heurística, maisespecificamente o algoritmo A*, como forma de solução ao problema de rotas otimizadas num espaçode vias urbanas. Ele é composto por uma ferramenta web de navegação de mapas e por scripts querodam em um servidor que fazem a busca heurística. Também é feita uma breve revisão bibliográficade engenharia de tráfego e mapas viários, que são bases para o desenvolvimento prático do trabalho.Por fim também é demonstrado que as técnicas de Inteligência Artificial, especificamente o A* comalgumas alterações, podem ser usados para auxilio da engenharia de tráfego e que alguns dosproblemas dessa área podem ser resolvidos ou mesmo amenizados através dessa ferramenta.

TRANSCRIPT

Page 1: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

CENTRO UNIVERSITARIO DE BARRA MANSAPRÓ-REITORIA ACADÊMICA

NUCLEO PEDAGÓGICO

TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMA DE MAPAS VIÁRIOS E BUSCA DE ROTAS

Afonso França de OliveiraBernardo Silva Pinto

Barra Mansa2006

Page 2: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

CENTRO UNIVERSITARIO DE BARRA MANSAPRÓ-REITORIA ACADÊMICA

NUCLEO PEDAGÓGICO

TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMA DE MAPAS VIÁRIOS E BUSCA DE ROTAS

Afonso França de OliveiraBernardo Silva Pinto

Barra Mansa2006

Monografia apresentada ao Curso de Ciência da Computação do Centro Universitário de Barra Mansa, como requisito parcial para a obtenção do título de Bacharel em Ciências da Computação, sob orientação do professor

Page 3: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMA DE MAPAS VIÁRIOS E BUSCA DE ROTAS

Afonso França de OliveiraBernardo Silva Pinto

___________________________________Wiliam Hiroshi Hisatugu

___________________________________José Nilton Cantarino Gil

___________________________________Marcelo Arantes de Oliveira

Barra Mansa2006

Monografia apresentada ao Curso de Ciências da Computação do Centro Universitário de Barra Mansa, submetida à aprovação da Banca Examinadora composta pelos seguintes membros:

Page 4: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

A todos nossos colegas de turma que sempre nos apoiaram ao longo do curso

Page 5: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Agradecemos aos nossos pais e amigos que acreditaram em nós e nos apoiaram todos nossos problemas e de todas as formas possíveis. Gostaríamos de agradecer também ao professor, orientador e amigo professor Wiliam Hiroshi Hisatugu, que nos orientou e ensinou a melhorar o trabalho. Mesmo estando ocupado, dedicando seu tempo livre para ler, estudar e discutir todos os possíveis detalhes de nosso projeto.

Page 6: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

"O bater de asas de uma simples

borboleta poderia influenciar o curso

natural das coisas, e assim, talvez

provocar um tufão do outro lado do

mundo”.

Edward Lorenz

Page 7: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Resumo

Este trabalho apresenta um protótipo onde foi implementada a busca heurística, mais especificamente o algoritmo A*, como forma de solução ao problema de rotas otimizadas num espaço de vias urbanas. Ele é composto por uma ferramenta web de navegação de mapas e por scripts que rodam em um servidor que fazem a busca heurística. Também é feita uma breve revisão bibliográfica de engenharia de tráfego e mapas viários, que são bases para o desenvolvimento prático do trabalho. Por fim também é demonstrado que as técnicas de Inteligência Artificial, especificamente o A* com algumas alterações, podem ser usados para auxilio da engenharia de tráfego e que alguns dos problemas dessa área podem ser resolvidos ou mesmo amenizados através dessa ferramenta.

Page 8: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Abstract

This work presents an archetype where the heuristical search was implemented, more specifically the A* algorithm, as form of solution to the problem of routes optimized in a space of urban ways. It is composed by a tool web of navigation of maps and for scripts that they run in a server that makes the heuristical search. Also was made one brief bibliographical revision of traffic engineering and road maps, which are bases for the practical development of the work. Finally also he is demonstrated that the techniques of Artificial Intelligence, specifically the A* with some alterations, can be used for assist of the traffic engineering and that some of the problems of this area can be decided or exactly brightened up through this tool.

Page 9: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Lista de Ilustrações

Figura 2.1: Tabela de Impactos na segurança...........................................................................20Figura 3.1: Mapa Mundi Antigo..................................................................................................21Figura 3.2: Tela do Software Google Earth................................................................................23Figura 4.1: Elementos de um problema de busca......................................................................26Figura 4.2: Busca em Largura: Os números representam a ordem de expansão enquanto o duplo círculo representa o estado final no espaço de estados............................................................29Figura 4.3: Busca em Profundidade: Os números representam a ordem de expansão enquanto o duplo círculo representa o estado final no espaço de estados...................................................30Figura 4.4: Busca Gulosa: Os números representam a ordem de expansão enquanto o duplo círculo representa o estado final no espaço de estados........................................................................32Figura 4.5: Função Heurística da Busca A*................................................................................34Figura 4.6: Busca A*: Os números representam a ordem de expansão enquanto o duplo círculo representa o estado final no espaço de estados........................................................................34Figura 4.7: Versão Simplificada do Algoritmo A*........................................................................35Figura 5.1: Exemplo de grafos em um sistema viário simples....................................................37Figura 5.2: Cálculo de W(n)........................................................................................................39Figura 5.3: Cálculo da heurística F(n)........................................................................................39Figura 5.4: Tabela de tipos de vias e seus respectivos pesos nominais....................................40Figura 6.1: Módulos do Sistema.................................................................................................43Figura 6.2: Diagrama de Entidade Relacionamento...................................................................45Figura 6.3: Fórmula de cálculo da escala...................................................................................46Figura 6.4: Tabelas de níveis de aproximação x tamanho do mapa..........................................46Figura 6.5: Tabelas de níveis de aproximação x segmentos do mapa.......................................47Figura 6.6: Representação gráfica do mapa inicial: dados fictícios............................................50Figura 6.7: Representação gráfica da cidade de Barra Mansa no menor nível de zoom...........50

Page 10: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Lista de Abreviaturas e Siglas

3D Três Dimensõesa.C. Antes de CristoAIA* Aprofundamento Iterativo A*Art. ArtigoBRPM Busca Recursiva Pelo MelhorCEP Código de endereçamento postalCONTRAN Conselho Nacional de TrânsitoCSS Cascading Style SheetsDENATRAN Departamento Nacional de TrânsitoDER Diagrama de Entidade RelacionamentoDER Departamento de Estrada de RodagemDETRAN Departamento Estadual de TrânsitoDOM Document Object Model FIFO First In First OutFILO First In Last OutGPS Global Positioning SystemHTML HyperText Markup LanguagePHP PHP: Hypertext PreprocessorPDA Personal Digital AssistantPNG Portable Graphics NetworkRAM Random Access MemoryW3C World Wide Web Consortium

Page 11: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Sumário

1. Introdução.............................................................................................................................. 131.1 Delimitação do Tema.......................................................................................................131.2 Problema.......................................................................................................................... 131.3 Enunciado das Hipóteses................................................................................................141.4 Objetivos.......................................................................................................................... 141.5 Justificativa....................................................................................................................... 14

2. Rotas Urbanas....................................................................................................................... 152.1 Conceitos e Princípios Básicos:.......................................................................................15

2.1.1 Código Brasileiro de Trânsito....................................................................................152.2 Competências Institucionais.............................................................................................16

2.2.1 Política Nacional de Transito....................................................................................172.2.2 Programa Nacional de Trânsito................................................................................17

2.3 Engenharia de Gestão de Tráfego...................................................................................172.3.1 Elementos do sistema de Trafego.................................................................................182.4 Conflitos Viários...............................................................................................................192.5 Segurança Viária..............................................................................................................20

3. Mapas Viários......................................................................................................................... 213.1 Histórico........................................................................................................................... 213.2 Tratamento de Imagens...................................................................................................233.3 Vetorização...................................................................................................................... 23

3.3.1 Tipos de Vetorização................................................................................................233.4 Rasterização.................................................................................................................... 24

3.4.1 Arquivo Raster..........................................................................................................243.4.2 Representação matricial...........................................................................................24

4. Inteligência Artificial................................................................................................................254.1 Resolução de Problemas através de Algoritmos de Busca..............................................254.2 Estratégias de Busca não-informada:..............................................................................28

4.2.1 Busca em Largura.....................................................................................................284.2.2 Busca em Profundidade............................................................................................29

4.3 Estratégias de Busca Informada:.....................................................................................314.3.1 Busca Gulosa...........................................................................................................324.3.3 Busca A*................................................................................................................... 33

5. Aplicação de busca heurística para auxílio ao problema de rotas..........................................375.1 Definindo o sentido da via urbana....................................................................................375.2 Fatores externos que influenciam na busca de rotas viárias............................................38

5.2.1 Tipos da via..............................................................................................................395.2.2 Outros Fatores..........................................................................................................40

5.3 Problemas de Redução de Velocidade do Algoritmo.......................................................406. Proposta................................................................................................................................. 42

6.1 Obtenção dos Dados.......................................................................................................426.1.1 Obtenção das coordenadas do mapa.......................................................................436.1.2 Associação dos Nós com os nomes das vias...........................................................446.1.3 Obtenção dos dados de funcionalidade e sentido das vias......................................44

6.2 Módulo de Busca de Rotas..............................................................................................446.3. Módulo Renderizador de Mapas.....................................................................................45

6.3.1 Adaptação do mapa às escalas de zoom.................................................................456.3.2 Geração das Imagens através da biblioteca GD.......................................................466.3.3 Segmentação do Mapa.............................................................................................476.3.4 Renderização da Rota..............................................................................................48

6.4. Módulo de Busca de Vias................................................................................................486.4.1 Localizar vias pelo nome..........................................................................................486.4.2 Localizar ruas pelo CEP...........................................................................................48

6.5. Módulo da Aplicação Web...............................................................................................486.5.1 Navegador do Mapa.................................................................................................486.5.2 Níveis de Aproximação.............................................................................................496.5.3 Escala do Mapa........................................................................................................496.5.4 Busca de Rota..........................................................................................................496.6. Validação do Protótipo................................................................................................496.6.1 Problema de velocidade de execução do algoritmo..................................................50

Page 12: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

6.6.2 Problemas de nós reabertos.....................................................................................51Conclusão.................................................................................................................................. 52Bibliografia.................................................................................................................................. 53Glossário.................................................................................................................................... 54

Page 13: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

1. Introdução

O ser humano sempre procurou se localizar e representar o mundo real

através de mapas. Com as descobertas tecnológicas, as mídias de representação

desses mapas mudaram e hoje em dia, com um aparelho de GPS é possível se

localizar em qualquer parte do mundo.

Diariamente, muitas pessoas se locomovem para lugares que nunca

estiveram antes. E mesmo com os avanços tecnológicos e a sinalização nas vias,

muitas delas se perdem e demoram um bom tempo para encontrar o local

procurado.

Algumas pessoas por já terem conhecimento, no entanto seguem um

caminho rotineiro simplesmente por costume e se esquecem que rotas alternativas

podem ser mais curtas, ou mesmo, mais rápidas mesmo que sejam mais longas.

Entretanto uma avaliação humana de uma rota pode ser errônea, uma vez que são

muitos os fatores, que fazem uma determinada rota mais rápida que outra.

Muitos desses fatores se modificam num espaço de tempo muito curto, como

por exemplo, o tráfego de uma via que numa manhã pode estar livre e em instantes

formar-se um congestionamento na hora do almoço.

Esse trabalho pretende estudar esses fatores e propor um sistema web que

crie rotas otimizadas através de busca heurística. Esse tipo de busca é

constantemente utilizado para encontrar menor caminho em jogos de videogame,

então faremos uso desta técnica em engenharia de tráfego.

É proposto também a implementação de um sistema de mapas, para que o

usuário tenha um acesso visual à malha viária e possa tirar suas conclusões, além

do encontrado pela busca.

1.1 Delimitação do Tema

Técnicas de busca heurística no desenvolvimento de um sistema de mapas

rodoviários e busca de rotas

Page 14: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

1.2 Problema

Pessoas gastam mais tempo que o necessário na locomoção entre as vias de

um sistema de transito.

1.3 Enunciado das Hipóteses

Os problemas no trânsito, como engarrafamentos e acidentes seriam

reduzidos com a implementação desse sistema?

Rotas otimizadas levariam as pessoas ao seu destino de maneira mais

rápida?

1.4 Objetivos

Geral: Estudar os problemas de transito e propor uma ferramenta para auxiliar

na engenharia de tráfego, utilizando técnicas de Inteligência Artificial e Computação

Gráfica.

Específicos:

Expor o problema de engenharia de tráfego;

Criar uma ferramenta Web de Mapas e Busca de Rota;

Mostrar a aplicação de Inteligência Artificial em engenharia de tráfego;

1.5 Justificativa

Este projeto se respalda na quantidade de combustível gasta

desnecessariamente, nos congestionamentos e acidentes existentes em grandes

cidades e aos atrasos dos serviços de emergência, como polícia, bombeiros e

ambulâncias.

Page 15: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

2. Rotas Urbanas

Neste Capítulo será descrito o domínio de aplicação do problema abordado

neste trabalho, detalhando todos os conceitos e princípios básicos referentes ao

tráfego em vias urbanas. Para tanto é feito um levantamento de toda uma

terminologia da área de engenharia de tráfego, desde suas definições básicas, tipo

das vias para que assim os assuntos que serão discutidos posteriormente possam

estar embasados nesses conceitos.

2.1 Conceitos e Princípios Básicos

Os problemas nos sistemas de circulação de transportes, como acidentes e

congestionamentos, vêm afetando a qualidade de vida dos cidadãos e degradando o

ambiente nos últimos tempos. A causa desses problemas são fatores sociais,

políticos e econômicos, bem como a falta de incentivo ao transporte público e

preservação do meio ambiente.

A cultura do automóvel trás consigo várias conseqüências, como a

necessidade de implantação de novas vias, o encarecimento dos serviços públicos

como água, esgoto e eletricidade e o aumento de tráfego em vias locais.

Como paliativo para esses problemas, os governos implantam sistemas

eletrônicos de gestão de tráfego, mas essa medida não pode ser considerada uma

solução, visto que não age na origem do problema.

2.1.1 Código Brasileiro de Trânsito

O novo código entrou em vigor em 1998 trazendo várias inovações

importantes, como a velocidade máxima permitida nas vias. Ele estabelece que o

tráfego nas vias expressas não deva ultrapassar a 80 Km/h. Já nas vias arteriais o

tráfego deve ser de 60 Km/h, seguido de 40 Km/h para as vias coletoras e 20 Km/h

para as vias locais.

Esse código reconhece que os graves problemas encontrados no transito

devem ser combatidos com vigor, para melhorar a qualidade de vida e a economia

do país.

Page 16: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

As políticas de transporte são geralmente individualizadas por município,

cabendo ao prefeito gerenciar as atividades de pavimentação, sinalização e

transporte público.

2.2 Competências Institucionais

A responsabilidade institucional sobre as questões de trânsito e transporte no

Brasil está dividida entre os três níveis de governo (DENATRAN 2003):

Federal: Responsável por aeroportos, portos, ferrovias e rodovias federais e

pelo transporte interestadual, rodoviário e ferroviário.

Estadual: Responsável por rodovias e ferrovias estaduais e de sistema de

ônibus intermunicipal e pelo transporte metropolitano.

Municipal: Responsável pelo trânsito e transporte público dentro dos seus

limites geográficos.

A união tem o poder legislativo, e cabe ao governo a sua regulamentação

através do DETRAN, do DER, da Polícia Militar e dos órgãos municipais.

O Conselho Nacional de Trânsito (CONTRAN) é um órgão normativo

composto por seis ministérios: Ciência e Tecnologia, Educação, Exército, Meio

Ambiente, Transportes e Saúde. Cabe a esse órgão, regulamentar as normas do

Código de Trânsito Brasileiro.

Cabe ao Departamento Nacional de Trânsito (DENATRAN), órgão

subordinado ao Ministério da Justiça, fazer cumprir a legislação.

Cabe ao Departamento Estadual de Trânsito (DETRAN) o registro e controle

dos veículos.

Page 17: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

2.2.1 Política Nacional de Transito

Tendo em vista o contexto já apresentado, tornam-se necessárias à

formulação e implementação de ações que visem à melhoria das condições de

tráfego no Brasil. Isso deve acontecer de forma que os três níveis de governo

estejam coordenados juntamente com a sociedade, caracterizando a vontade

pública de mudança das condições não favoráveis do trânsito, de forma a alcançar

algumas diretrizes:

Objetivos Estratégicos: Preservar a vida, preservar a saúde, melhorar a

qualidade do ambiente urbano, aumentar a eficiência na circulação dos cidadãos.

Público Alvo: Sociedade, Profissionais da Área e entidades ligadas ao trânsito

e transporte.

Problemas a enfrentar: Crescimento desordenado das cidades, degradação

da qualidade de vida urbana.

Princípios a Adotar: Discussão transparente e ampla de soluções;

Planejamento e atribuições do transito cabem ao poder público; Acesso aos meios

de transporte distribuídos democraticamente.

Grandes desafios do trânsito: Redução de Acidentes, respeito à democracia,

às leis e cidadania, integração do sistema nacional de transito, implantação da

política do programa nacional de trânsito, municipalização do transito, reduzir a

poluição atmosférica, melhorar a qualidade de vida nas cidades.

2.2.2 Programa Nacional de Trânsito

Procura estabelecer metas para medir os progressos. Dentre elas estão a

segurança na circulação, qualidade na circulação e qualidade gerencial.

2.3 Engenharia de Gestão de Tráfego

Engenharia de tráfego é uma atividade técnica, no sentido de utilizar

procedimentos racionais de base matemático-físico e política, no sentido de dirigir a

aplicação destas técnicas segundo os interesses (conflitantes) dos vários usuários

Page 18: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

que realizam a circulação nas cidades. Classicamente os sistemas viários são

baseados em três pilares: Engenharia, Fiscalização e Educação.

2.3.1 Elementos do sistema de Trafego

O código de transito Brasileiro, no Art. 1°, § 1°, assim define “transito”:

“Considera se transito a utilização de vias por pessoas, veículos e animais, isolados ou em grupos, conduzidos ou não, para fins de circulação, paradas, estacionamento e operações de carga e descarga.”

O Art. 2° complementa o conceito ao definir que:

“São vias terrestres urbanas e rurais as ruas, as avenidas, os logradouros, os caminhos, as passagens e as rodovias, que terão seu uso regulamentado pelo órgão ou entidade com circuncisão sobre elas de acordo com as peculiaridades locais e circunstancias especiais”.

Tradicionalmente, a literatura relativa à engenharia de trafego define três

elementos componentes dos sistemas: usuários, vias e veículos.

a) Usuários: Ocupantes de qualquer tipo de veículo, guiando-os ou não e os

pedestres principalmente. Uma abordagem mais ampla possibilitaria acrescentar

também as pessoas que de alguma forma são afetadas pela operação do trafego.

b) Veículos: são automóveis, ônibus, caminhões, Motocicletas, triciclos,

bicicletas, carroças, bondes e etc.

c) Via: é o espaço destinado à circulação, O conjunto estruturado de vias que

servem a uma determinada região é conhecido como sistema viário e tem como

funções básicas assegurar a mobilidade e acessibilidade dos usuários.

Page 19: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

O sistema viário urbano é formado basicamente por dois grupos: os nós e as

ligações. As ligações são trechos ou segmentos que interligam os nós (ou

interseções passagens de nível etc.) cujas características físicas não são

necessariamente homogêneas ao longo de sua extensão.

Neste contexto as viagens (deslocamentos) se baseiam em um ponto de

origem e um ponto de destino tornando mais apropriadas à escolha de vias com um

nível mínimo de serviço de modo a possibilitar um deslocamento rápido, seguro e

eficiente. Sistemas viários podem ser classificados em:

Quanto ao ambiente: Urbano e rural;

Quanto à esfera administrativa: Federal, estadual e municipal;

Quanto à operacionalidade: Relacionado à intensidade da fluência de veículos

na via;

Quanto à funcionalidade: Vias expressas, arteriais, coletoras, locais.

a) Vias expressas: Possibilitam Ligações com rapidez entre localidades

distantes de uma região, normalmente com grande volume de tráfego. Velocidade

de operação de 80 km/h.

b) Vias arteriais: São as ligações entre as vias expressas e as vias coletoras

ou então distribuem o trafego da via expressa pela região. Velocidade máxima 60

km/h.

c) Vias Coletoras: Realiza a ligação entre as vias arteriais penetrando nas

áreas residenciais. Velocidade Máxima 40 Km/h.

d) Vias Locais: São vias de áreas residenciais em condomínios dentro de

empresas etc. Velocidade máxima 20 Km/h.

Page 20: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

2.4 Conflitos Viários

Os conflitos urbanos são classificados em:

a) Físicos: dois corpos não podem ocupar o mesmo lugar no espaço;

b) Sociais: pedestres x motoristas, transporte público x automóvel, etc;

c) Derivados: Degradação do ambiente e qualidade de vida como

conseqüência da locomoção.

Natureza das colisões: Uma situação de conflito pode ser proveniente de

vários motivos como numero de “ligações” na via, a mão da via, a quantidade de

trafego de veículos e a quantidade de trafego de pedestres na conexão. Um ponto a

ser considerado também seriam os “pólos geradores de trafego” como shoppings e

colégios

2.5 Segurança Viária

Existem várias medidas a serem tomadas para que a segurança na

locomoção seja aumentada.

Situação / Fator

Pré-Impacto Impacto Pós-Impacto

Humano

TreinamentoConhecimentoHabilidadeMotivações e Atitudes

Dispositivos de Proteção (Capacete, Cinto de segurança e Air-bag).

Serviços de Primeiros Socorros

Veículo

Projeto de Sistema de ControleProjeto dos Sistemas de ConfortoProjeto do Sistema de InformaçãoLeis e Policiamento

Sistema de Proteção ao OcupanteProjeto de Sistema de Controle

Meio-ambiente

GeometriaPoliciamentoSistema de ControleClima e LuminosidadeCondições da SuperfícieApelo Informativo

Geometria e Dispositivos de absorção de energia

Geometria para facilitar o acesso de emergênciaLimpeza dos Estilhaços e partes dos veículos acidentadosEsquemas de tráfego e reabertura da via.

Figura 2.1: Tabela de Impactos na segurança

Page 21: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

3. Mapas Viários

3.1 Histórico

Buisseret (1992) diz que os mapas mais antigos encontrados datam cerca de

6.200 a.C. estando pintados numa parede.

Com o passar do tempo os mapas eram traçados em diferentes materiais

como a cerâmica, o papel, o bronze, as cascas de coco, a pedra, a pele dos

animais, etc. O mapa mais antigo do mundo foi elaborado num pedaço de cerâmica

produzido pelos babilônios entre os Séculos XXV e XXIII A.C.

Com a invenção do papel, eles passaram a ser desenhados em folhas. Um

dos grandes passos na evolução dos mapas é dado na época dos Descobrimentos,

quando as áreas representadas eram bem maiores que anteriormente e havia a

necessidade de obter bons níveis precisão posicional para conseguir navegar com

relativa segurança.

Figura 3.1: Mapa Mundi Antigo

A cartografia sofreu uma verdadeira revolução com a aplicação dos Sistemas

de Informação Geográfica e do Sistema de Posicionamento Global a partir do final

Page 22: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

do século XX. E esta revolução opera-se não apenas em nível da produção, mas

também da circulação, manipulação e utilização de informação espacial.

Os objetos que são representados num mapa dependem do tipo de uso para

o qual este é elaborado. Por exemplo, um mapa viário dará importância à rede viária

ao representar os vários tipos de vias, os cruzamentos e as distâncias entre cidades.

Um mapa geológico caracterizará do ponto de vista da geologia o solo numa dada

região. Um mapa político mostrará as fronteiras ou outras divisões administrativas.

Um mapa para navegação marítima dará prioridade à localização de faróis, portos e

relevo submarino.

Outro elemento fundamental dos mapas modernos é a presença de uma

escala, que permite determinar as dimensões reais dos objetos cartográficos e medir

distâncias (a escala é um quociente entre a medida no mapa e a medida real

correspondente). Quanto maior é a escala, maior o detalhe.

Atualmente todos os mapas do mundo já estão ao alcance do usuário através

da Internet. Sistemas como Google Maps, Google Earth, MSN Local e Yahoo Maps

dentre outros já disponibilizam imagens de todas as partes do mundo. Ferramentas

como o GPS (Global Positioning System) permite que se saibam as coordenadas

exatas de onde se estiver em qualquer lugar do mundo via satélite.

O Google Earth é como um navegador que você pode visualizar todo o

planeta. As imagens são capturadas por meio de satélites, com uma qualidade

excelente. O Google Earth é integrado com uma ferramenta de busca. Basta digitar

o nome de uma cidade para que ele a localize.

Page 23: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Figura 3.2: Tela do Software Google Earth

3.2 Tratamento de Imagens

Neste caso, o sistema vai gerar mapas viários em formato digital para a

representação da rota obtida pela busca heurística. Esses mapas serão gerados

através da digitalização de mapas impressos e convertidos para o formato vetorial

(vetorização), para que assim seja possível fazer cálculos com suas coordenadas e

representá-lo em várias escalas diferentes para o usuário através da rasterização

dos vetores.

3.3 Vetorização

Conforme Azevedo e Conci (2003), vetorização é a transformação de uma

imagem baseada em pixels em uma imagem baseada em vetores. Existem vários

softwares capazes de fazer essa transformação, tanto de forma automática quanto

de forma manual, como o Freehand ou Illustrator da Adobe, por exemplo.

Arquivos vetoriais são constituídos por vetores. Vetores são entidades

definidas matematicamente como uma série de pontos unidos por linhas. Cada vetor

é uma entidade independente com propriedades como cor, forma, contorno,

tamanho e posição na tela, incluídas na sua definição. Visto que cada vetor é uma

Page 24: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

entidade independente, é possível mover e alterar suas propriedades repetidas

vezes e manter a sua nitidez e resolução original, sem afetar os demais

componentes do desenho o que faz esse formato muito utilizado para sistemas 3D

como, por exemplo, o Auto Cad que trabalha com arquivos vetorizados.

3.3.1 Tipos de Vetorização

Existem duas técnicas de vetorização, a vetorização automática e a

vetorização manual. No caso da vetorização automática o ganho de tempo é grande,

porém nem sempre se obtém o resultado esperado, pois a vetorização automática

também procede com qualquer outro elemento em uma imagem, ou seja, ruídos,

podendo criar vértices inexistentes, outra desvantagem é a quantidade de nós que é

muito maior do que em uma vetorização manual. Na vetorização manual o tempo

gasto é muito maior, porém a quantidade de nós e conexões são muito menores.

3.4 Rasterização

Conforme Fonseca, Quintanilha e Iwai (2002), rasterização é o processo de

transformação, via software, de uma imagem vetorial em uma nova imagem

matricial. Refere-se à operação onde dados codificados na representação vetorial

são transformados numa representação baseada numa malha regular, geralmente

quadrada e conhecida como bitmap.

3.4.1 Arquivo Raster

Arquivos raster são formados de pontos individuais que são denominados de

pixels. Pixels são dispostos e coloridos de maneiras diferentes para formar um

padrão. Se for utilizado alto nível de zoom sobre uma imagem rasterizada será

possível ver os quadrados individuais que formam a totalidade da imagem.

A rasterização tem dois passos básicos que são:

O processo de determinar em quais pixels de uma tela o objeto é projetado,

determina para cada pixel (em ordem de varredura) quais superfícies dos objetos

serão projetadas nesse pixel.

Totalização (cor do pixel)

Arquivos rasterizados são comumente encontrados quando se escaneia uma

imagem normalmente ela vem em formado de raster.

Page 25: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

3.4.2 Representação matricial

As referências espaciais são dadas pelas posições de células, em geral

quadradas, sobre as quais incidem os pontos, linhas e áreas. A essas células

corresponderão os pixels da imagem matricial.

Page 26: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

4. Inteligência Artificial

Segundo Harmon e King (1988), a Inteligência Artificial é uma subdivisão da

área de ciência da computação criada pelos pesquisadores na busca tanto do

processamento simbólico como das soluções de problemas formulados pelo homem.

Neste sentido, os pesquisadores de Inteligência Artificial preocupam-se em

desenvolver sistemas de computador que produzam resultados que normalmente se

associam à inteligência humana.

O problema de rotas viárias se enquadra nesse contexto, pois é um problema

formulado pelo homem. Conforme será visto posteriormente, é possível então aplicar

técnicas de Inteligência Artificial para resolver esse problema dentro de um espaço

de estados bem definidos.

Mas os benefícios da Inteligência Artificial se aplicam às diversas outras áreas

como auxílio de tomada de decisão, logística, sistema de apoio a especialistas,

robótica, psicologia e neurobiologia, jogos e etc. Da mesma forma, muitas outras

disciplinas podem interagir com a Inteligência Artificial como matemática, filosofia,

sociologia, lingüística, psicologia, genética, dentre outras.

Será tratado com mais ênfase nesse trabalho da resolução de problemas por

meio de busca. Na próxima seção, serão estudados alguns dos métodos de busca

que podem ser aplicados no roteamento de veículos e na busca de rotas urbanas

em geral.

4.1 Resolução de Problemas através de Algoritmos de Busca

Conforme o site Wikipedia (2006), Um algoritmo de busca, em termos gerais,

é um algoritmo que toma um problema como entrada e retorna a solução para o

problema, geralmente após resolver um número possível de soluções. A maioria dos

algoritmos estudados por cientistas da computação que resolvem problemas são

algoritmos de busca. O conjunto de todas as soluções possíveis para um problema é

chamado de espaço de busca.

De acordo com Russel e Norvig (1995), o problema de busca pode ser

definido formalmente por quatro componentes:

Page 27: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Estado Inicial: É o estado em que o agente começa;

Função Sucessor: É uma descrição das ações possíveis que estão

disponíveis para o agente. Juntos o estado inicial e a função sucessora definem

implicitamente o espaço de estados do programa – o conjunto de todos os estados

acessíveis a partir do estado inicial, formando um grafo que os nós são estados e os

arcos entre os nós são ações. Um caminho no espaço de estados é uma seqüência

de estados conectados por uma seqüência de ações.

Teste de Objetivos: É uma função que determina se um dado estado é um

estado objetivo. Às vezes existe um conjunto explicito de estados objetivos possíveis

e o teste simplesmente verifica se o estado dado é um deles, outras vezes o objetivo

é especificado por uma propriedade abstrata e não por um conjunto de estados

explicitamente enumerado.

Custo de Caminho: É uma função que atribui um custo numérico a cada

caminho que reflete no desempenho do agente. O custo de passo é o valor

diretamente atribuído para ir de um estado ao outro vizinho.

A figura 4.1 exemplifica os quatro componentes citados acima:

?

Função Sucessor

Estado Inicial

Teste de Objetivo

3 Custo de caminho

2

Figura 4.1: Elementos de um problema de busca

De posse desses quatro componentes é possível então formular o problema

de rotas, conforme será feito no capítulo cinco. Mas para definir o espaço de estados

possíveis, precisa-se levar em consideração que nem todos os aspectos do mundo

Page 28: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

real podem ser representados numa busca. Russel (1995) define esse conceito

como abstração:

...uma viagem real cruzando o país, onde o estado do mundo inclui muitos itens: os companheiros de viagem, o que toca no rádio, a paisagem vista da janela, a existência ou não de policiais nas proximidades, a distância até a próxima parada para descanso, as condições da estrada, o tempo e assim por diante. Todas essas considerações são omitidas de nossas descrições de estados, porque são irrelevantes para o problema encontrar uma rota...

Após formular o problema é preciso resolvê-los. Nas seções seguintes, serão

vistas estratégias de busca informadas e não-informadas. Que tentam fazer a

resolução e suas vantagens e desvantagens. Mas antes que se possam avaliar

esses algoritmos, dois conceitos importantes precisam ser abordados, que é o de

busca ótima e busca completa:

Busca Ótima: Quando a busca encontra uma solução que, de acordo com as

definições do problema, seja a que tenha o menor custo. Assim nenhuma outra

solução terá um custo menor que o de uma solução ótima. A otimalidade de uma

busca é representada por uma * (estrela).

Busca Completa: Esse conceito é usado quando o algoritmo fornece uma

garantia de que uma solução vai ser encontrada se ela existir.

A busca de rotas viárias tem que ser tanto ótima quanto completa, de forma a

obter sempre o caminho mais curto se ele existir e é o que será analisado na

escolha do método de busca para a implementação proposta.

Formalmente, podem-se dividir as estratégias de busca conhecidas em dois

grupos. As estratégias do tipo não informadas e as do tipo informadas.

4.2 Estratégias de Busca não-informada:

São buscas que não utilizam nenhuma informação adicional sobre os

estados, além daquelas do próprio problema. Esse tipo de busca, também

conhecido como busca cega, percorre exaustivamente o espaço de estados até

encontrar uma solução ou até que todos os estados tenham sido visitados. As

Page 29: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

buscas cegas em geral são simplórias, algumas são completas e poucas são ótimas.

Será visto nas seções seguintes os dois métodos mais conhecidos de busca cega:

4.2.1 Busca em Largura

Conforme Wikipedia (2006) uma busca em largura é um método de busca

não-informada que expande e examina sistematicamente todos os nós do espaço de

busca, em busca de uma solução. Em outras palavras, pode-se dizer que seu

algoritmo realiza uma busca exaustiva em todo espaço, sem considerar o seu alvo

de busca, até que ele o encontre. Ele não utiliza uma heurística.

De acordo com Russel e Norvig (1995) do ponto de vista do algoritmo, todos

os nós filhos obtidos pela expansão de um nó são adicionados a uma fila (FIFO). Em

implementações típicas, nós que ainda não foram examinados por seus vizinhos são

colocados num container (como por exemplo, uma fila ou lista ligada) que é

chamado de “aberto”. Uma vez examinados, são colocados num container

“fechado”.

Em uma busca em largura a partir de um vértice, espera-se que todos os

vizinhos do vértice sejam visitados antes de continuar a busca mais profundamente.

1

2 3

4 5 6Figura 4.2: Busca em Largura: Os números representam a ordem de expansão enquanto o duplo círculo representa o estado final no espaço de estados

A busca em largura é completa apenas se a árvore pesquisada tem um

número finito de ramos. O algoritmo irá encontrar o alvo da busca caso ele exista, ou

Page 30: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

seja, ele alcança todos os nós de uma árvore por mais que isso possa ocasionar em

um exponencial tempo de execução.

A busca em largura é ótima se o custo dos passos for idêntico – o algoritmo

encontrará a solução mais “rasa” de uma árvore de busca, não necessariamente a

melhor. No caso em que os passos possuem custos diferentes, a solução mais

“rasa” não é necessariamente a melhor.

A busca em largura tem complexidade linear espacial do tamanho (arestas

somadas a vértices) da árvore ou grafo pesquisado, já que ela precisa armazenar

todos os nós expandidos na memória.

Como foi visto, a busca em largura só é ótima se o custo dos passos for

idêntico (busca de custo uniforme), mas num espaço de vias, dificilmente isso

aconteceria (exceções para quarteirões em que suas vias têm extensão uniforme).

De posse dessa premissa, levando ainda em consideração que o tempo e memória

gastos nesse tipo de busca são muito grandes, não é possível utilizar esse método

para resolução do problema de rotas.

4.2.2 Busca em Profundidade

Nessa estratégia de busca um dos nós do nível mais profundo da árvore de

busca sempre é expandido. Somente quando a busca atinge um nó cujos filhos

possuem estados que já foram expandidos outrora é que a busca expandirá algum

dos nós pertencentes aos níveis acima deste. Uma forma de garantir esta ordem de

expansão é adicionar os nós filhos que serão expandidos em uma pilha (FILO), onde

o primeiro nó removido será o primeiro filho gerado de onde a busca continua

aprofundando-se até não mais ser possível ou retirar da pilha um nó cujo estado

seja correspondente ao estado objetivo.

Page 31: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

1

2 5

3 4 6

Figura 4.3: Busca em Profundidade: Os números representam a ordem de expansão enquanto o duplo círculo representa o estado final no espaço de estados

Diferente da estratégia de busca em largura, a busca em profundidade utiliza

menor quantidade de memória para armazenar os nós expandidos do que a busca

anterior uma vez que armazena somente um único caminho do nó raiz até um nó

folha mantendo os demais nós não expandidos enquanto aprofunda pelo caminho.

Se cada nó expandido gera b nós e a árvore de busca possui profundidade máxima

m então a busca em profundidade requer que estejam armazenados bm nós na

memória fornecendo uma complexidade de espaço da ordem de O (bm).

A complexidade de tempo é da ordem de O (bm) criando um grande contraste

com a complexidade de tempo de O (bd) dado pela busca em largura.

Para problemas que possuem muitas soluções a busca em profundidade

tende a encontrar uma solução mais rápido que a busca em largura devido à

possibilidade de procurar uma solução explorando apenas uma pequena parte do

espaço de estados. Porém, como sempre aprofunda em um determinado ramo da

árvore de busca, pode ocorrer de existir uma melhor solução nos ramos que

possuem menor profundidade na árvore de busca e que dificilmente serão

explorados, fazendo com que as soluções encontradas pela busca em profundidade

não sejam na maioria das vezes soluções ótimas. Outro problema consiste na

possibilidade do método de busca fazer uma escolha não muito boa de forma que a

busca continue sempre aprofundando sem retornar para os ramos de menor

profundidade mesmo que uma solução exista em outra região do espaço de estados

levando a uma busca infinita.

Page 32: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

A busca em profundidade mantém na memória o caminho que está sendo

expandido no momento, e os nós irmãos dos nós no caminho (para possibilitar o

backtracking). Necessita-se armazenar apenas bm nós para um espaço de estados

com fator de expansão b e profundidade m, onde m pode ser maior que d.

As características anteriormente citadas fazem com que a busca em

profundidade seja um método mais econômico em termos de requerimento de tempo

e memória, porém não se trata de uma estratégia ótima ou completa podendo

encontrar soluções de custo elevado ou simplesmente não encontrar solução,

mesmo se existir alguma. Então não é viável utilizá-la na resolução do problema de

rotas, pois mesmo com um custo inferior de memória e com o espaço finito de

estados viários, dificilmente essa estratégia encontraria uma solução ótima para o

problema.

4.3 Estratégias de Busca Informada:

Como foi visto anteriormente os métodos de busca não-informados encontram

a solução do problema sem levar em consideração nenhum conhecimento

específico do problema. Agora será visto algumas estratégias de buscas heurísticas.

Esse tipo de estratégia é, na maioria dos casos, mais eficiente que as buscas

não-informadas, pois, conforme Russel e Norvig (1995), estratégias de busca

heurística utilizam os conhecimentos específicos do problema, além da definição do

próprio problema – Pode encontrar soluções de forma mais eficiente que uma

estratégia sem informação.

Conforme Polya (1945), heurística é conhecimento sobre o domínio que ajuda

a guiar a busca e a raciocinar sobre ele.

Assim a heurística vai guiando a busca, de forma que os estados que estejam

mais próximos à solução sejam explorados antes dos demais, reduzindo então o

tempo de busca por não expandir inicialmente nós com custos heurísticos grandes.

De acordo com Luger (2002) os solucionadores de problemas de IA

empregam heurísticas basicamente em duas situações:

Page 33: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Quando um problema pode não ter uma solução exata por causa de

ambigüidades inerentes na formulação do problema ou pela disponibilidade dos

dados como, por exemplo, o diagnostico médico. Determinado conjunto de sintomas

pode ter várias causas possíveis; os médicos usam heurísticas para escolher o

diagnostico mais provável ou para formar um plano de tratamento. (...)

Quando um problema pode ter uma solução exata, mas o custo

computacional de encontrá-la pode ser proibitivo. E muitos problemas (como o jogo

de xadrez), o crescimento do espaço de estados é explosivo, com o número de

estados possíveis aumentando exponencialmente ou fatorialmente, com a

profundidade da busca. Nestes casos, técnicas de busca por força bruta, exaustivas

como a busca em largura ou profundidade podem não conseguir encontrar a solução

dentro de um tempo pratico.

Vão ser utilizadas então, estratégias de busca heurísticas para resolver o

problema de encontrar a rota mais curta e a mais rápida, uma vez que estratégias de

busca não informada não encontrariam uma solução ótima dentro do tempo prático.

4.3.1 Busca Gulosa

De acordo com Russel e Norvig (1995), a busca gulosa pela melhor escolha

tenta expandir o nó mais próximo à meta, na suposição de que isso provavelmente

levará a uma solução rápida. Desse modo, ela avalia o nós usando apenas a função

heurística f(n) = h(n). Tenta expandir o nó mais próximo do nó final com base na

estimativa feita pela função heurística h.

Geralmente, a função heurística h é determinada pela distância em linha reta

do nó atual até o nó destino. Mas em alguns casos ela pode ser reavaliada.

Page 34: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

1

2

4

h=5h=3

h=33h=0

Figura 4.4: Busca Gulosa: Os números representam a ordem de expansão enquanto o duplo círculo representa o estado final no espaço de estados

De acordo com Freitas (2001) a estratégia de busca gulosa possui os

mesmos defeitos de uma busca em profundidade padrão. Ela não é ótima, pois leva

em consideração apenas a informação da estimativa de um nó e não o custo ou

profundidade que este possui, e também não é completa, pois pode aprofundar-se

em um caminho e nunca retornar para tentar outras possibilidades. A complexidade

de tempo do pior caso para a busca gulosa é da ordem de O (bm) onde m é a

profundidade máxima do espaço de busca. Sua complexidade de espaço também é

da ordem de O (bm), pois retêm todos os nós expandidos na memória. O termo

“gulosa” significa que o método procura reduzir o custo imediato para alcançar o

objetivo na expansão de cada nó, porém sem se preocupar com o custo total do

caminho.

Dessa forma, a busca gulosa nunca recua para reconsiderar escolhas

prévias.

Segundo Freitas ainda diz que este tipo de abordagem gulosa torna o

desempenho do algoritmo, no que se refere ao tempo de processamento, muito

rápido, uma vez que a inserção de condições é feita de forma incremental, ou seja,

uma condição por vez. Entretanto, esta vantagem torna-se uma desvantagem, pois a

adição incremental de uma condição caracteriza uma busca local. A cada passo, a

melhor condição separada é adicionada à regra. Porém em algumas situações o

algoritmo pode julgar segundo uma função de avaliação, que uma condição em

separado é irrelevante. Todavia, em conjunto com outras condições esta mesma

Page 35: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

condição poderia se tornar relevante. Esta falta de interação entre os atributos, neste

tipo de abordagem, pode fazer com que um algoritmo deixe de encontrar uma

solução correspondente a um ótimo global.

Levando em consideração todas as particularidades da busca gulosa, pode-

se programá-la com um mecanismo de identificação de estados repetidos e obter

assim uma busca completa e que em alguns casos encontraria uma solução ótima.

Porém é preciso de um algoritmo que traga a melhor solução em 100% dos casos,

desvalidando assim a possibilidade de implementação da busca gulosa.

4.3.3 Busca A*

De acordo com Borges (2003), A* (A estrela) é um algoritmo de busca

baseado na estratégia primeiro melhor (best first) que faz uso de uma função

heurística para avaliação dos estados. Devido a esta última característica, diz-se

que A* é uma busca informada. Quando a função heurística é admissível, A* é

ótimo, completo e eficiente, ou seja, sempre encontra o caminho mais curto em

tempo finito e nenhum outro algoritmo ótimo visita menos estados que A*. São essas

excelentes características que tornam A* muito popular e ferramenta indispensável

em problemas que envolvem buscas.

O funcionamento do A* se dá passo a passo, e Borges (2003) ainda descreve

que ele expande os estados do problema, de maneira ordenada, semelhante a uma

busca de custo uniforme, até que as condições de parada se estabeleçam.

Diferentemente, A* ordena os estados através da seguinte função heurística:

F(n) = G(n) + H(n)

Figura 4.5: Função Heurística da Busca A*

G(n) é o custo real entre o nó inicial e o nó n e H(n) é o valor da função

heurística, que retorna o valor estimado entre n e o nó destino. Em outras palavras,

F contém o "custo total passando por n" em termos da soma "custo do início até n" +

"custo de n até o destino".

Page 36: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

1

2

4

h=5g=3f=8

h=3g=4f=7

3

h=3g=9f=12

h=0g=8f=8

Figura 4.6: Busca A*: Os números representam a ordem de expansão enquanto o duplo círculo representa o estado final no espaço de estados

Abaixo segue uma versão simplificada do algoritmo A*:

1. Coloca os vizinhos do nó origem na fila de Abertos 2. Calcula a função heurística de cada nó aberto3. Se houverem nós na fila de AbertosFecha o nó aberto com o menor custoSenãoRetorna erroFimSe4. Se o nó fechado for o nó destinoRetorna a soluçãoSenãoColoca os vizinhos do último nó fechado na fila de AbertosVai para (3)FimSe

Figura 4.7: Versão Simplificada do Algoritmo A*

Conforme já foi visto, o A* é uma estratégia de busca ótima se a sua

heurística for admissível. Russel (1995) diz que heurística admissível é uma função

de avaliação que nunca superestima o custo real do problema para alcançar o

objetivo.

Na prática as duas funções que formam a heurística do A* são então

admissíveis porque a função H é uma função que equivale à distância em linha reta

do ponto atual ao ponto objetivo. E Russel (1995) diz que o caminho mais curto

entre dois pontos quaisquer é uma linha reta. Desta forma a heurística H nunca vai

superestimar o custo real do problema para alcançar o objetivo.

Page 37: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

A função G também é considerada uma heurística admissível uma vez que

fornece o custo de caminho mais baixo desde o nó inicial até o próximo nó a ser

expandido.

Porém, Russel e Norvig ainda dizem que o fato da busca A* ser considerada

completa, ótima e otimamente eficiente entre todos esses algoritmos é bastante

interessante. Infelizmente, isso não significa que A* seja a resposta para todas as

nossas necessidades de busca. Na verdade, para a maioria dos problemas, o

número de nós dentro do espaço de busca do contorno de meta ainda é exponencial

em relação ao comprimento da solução.

Ainda mais, o tempo de computação não é a principal desvantagem de

A*. Pelo fato de manter todos os nós gerados em memória, ele esgota a memória

bem antes de esgotar o tempo. Por essa razão, A* não é pratico para muitos

problemas de grande escala com o espaço de estado muito grande.

Especificamente para o nosso problema de rotas, o A* atende até certo ponto, pois

quando uma área maior for abordada, seria preciso programar uma variável do A*

que consuma menos memória e outras técnicas para reduzir o tempo de busca. Isso

será abordado com mais ênfase no capítulo cinco.

No entanto teoricamente, o A* atende os requisitos de otimalidade e

completeza descritos no início do capítulo, tornando-se, dentre todos os algoritmos

vistos a melhor opção para implementação.

Page 38: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

5. Aplicação de busca heurística para auxílio ao problema de rotas

Araújo e Lima (2005) dizem que o controle de trânsito em vias urbanas é hoje

um dos principais problemas das grandes cidades, dado ao crescimento não

planejado das mesmas, no número de vias, semáforos e de veículos.

Conjuntamente aos engarrafamentos, o problema do controle de trânsito traz muitas

outras conseqüências, como elevados tempos de espera, aumentos nas taxas de

emissão de poluentes e índices de acidentes, bem como altos custos sociais e

econômicos.

Esses problemas são causados devido à falta de orientação das pessoas e a

falta de sinalização nas vias. De acordo com Rangel (2006), uma das uma das

medidas para reduzir estes índices é manter as indicações das vias em condições

adequadas de visibilidade:

“A falta de sinalização compromete a fluidez e a segurança de motoristas, motociclistas e pedestres, mas é importante que se respeitem as condições necessárias para a correta aplicação do material e zele por sua qualidade, utilizando o dinheiro público com responsabilidade”.

É possível então aplicar técnicas de Inteligência Artificial para resolver parte

desses problemas como forma de sinalização on-line. Especificamente será usado o

método de busca heurística A* para encontrar rotas otimizadas em um conjunto de

vias, juntamente com sistema de mapas para representar graficamente esse

conjunto.

Esse conjunto de vias será representado na forma de grafo, na qual as

conexões entre as vias serão os chamados vértices, ou nós e as vias

especificamente serão as linhas ou vértices da estrutura de grafos.

Page 39: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

vérticesnós

Figura 5.1: Exemplo de grafos em um sistema viário simples

5.1 Definindo o sentido da via urbana

Um fator importante a ser considerado na obtenção da rota em vias urbanas é

o sentido da via. De acordo com o transporte utilizado, algumas ruas não são

acessíveis, outras podem, no entanto ser acessíveis apenas em um sentido,

enquanto outras podem ser acessíveis em ambos os sentidos. Essas últimas são as

vias conhecidas como vias de mão dupla.

Dessa forma, para representar essa estrutura é necessário utilizar-se de

grafos do tipo direcionado, em que as arestas podem ter direções.

O Site Wikipedia (2006) diz que dependendo da aplicação, a arestas podem

ou não ter direção, (...). Se as arestas têm uma direção associada (indicada por uma

seta na representação gráfica) tem-se um grafo direcionado, ou dígrafo. Dessa

forma, os vértices do grafo das vias poderão ser passáveis em apenas um sentido

ou em dois sentidos, de acordo com a situação real da via.

5.2 Fatores externos que influenciam na busca de rotas viárias

O algoritmo A* controla somente uma variável do sistema de tráfego: A

distância. Logo, para uma implementação real de um roteamento de vias é

necessário considerar outros aspectos importantes que farão parte de estimação da

heurística, como a condição da via, sentido, sinalização, tráfego, etc.

É o caso proposto por Lester (2004), programador de jogos:

“O terreno só pode ser de dois tipos: passável ou não passável. Mas, e se você tem terreno que é passável, porém a um custo de movimento mais alto? Pântanos, colinas, degraus em um calabouço, etc. Estes são exemplos de terreno que são passáveis, mas a um custo mais alto do que

Page 40: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

chão plano, aberto, sem obstáculos. Semelhantemente, uma estrada poderia ter um custo de movimento mais baixo do que o terreno circunvizinho.”

Os jogos utilizam frequentemente os algoritmos de busca de caminho em seu

contexto. Lester propõe que seja atribuído um custo de transição de estados no

grafo, e que este custo seja somado à heurística G(n) de forma a se obter uma

penalidade por vias mais custosas. Por exemplo, uma via local e obter uma

vantagem em vias menos custosas, como por exemplo, uma via de acesso rápido ou

uma rodovia.

Stout (1997) diz que os campos da teoria dos grafos e da Inteligência Artificial

convencional têm diversos algoritmos que podem ser usados para pontuar

obstáculos difíceis e regiões de peso maiores. Na literatura, muitos destes

algoritmos são tratados durante a mudança entre estados, ou quando se atravessa

um nós de um grafo.

Dessa forma, será calculado então um peso para ser somado à heurística

G(n) durante a transição de estados do grafo. Esse peso será referenciado como w

e seu cálculo se dará da seguinte forma:

W(n) = distância (n’, n) * peso_nominal (n’, n)

Figura 5.2: Cálculo de W(n)

O peso nominal de uma transição de estados é estipulado de acordo com a

característica da via, conforme veremos na próxima seção. Esse peso é multiplicado

pela distância entre o nó atual (n’) e o próximo nó (n). Assim obtém-se W(n) que

será usado para cálculo da função heurística F(n):

F(n) =[G(n) + W(n)] + H(n)

Figura 5.3: Cálculo da heurística F(n)

Page 41: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Essa nova definição de F(n), que se difere da original vista no capítulo 4

continua sendo admissível, pois H(n) não superestima o custo real da busca e G(n),

apesar de ser incrementado por W(n) também não superestima, pois o valor de W(n)

é acrescentado também no custo real da busca. Desta forma, ela será usada para o

cálculo da rota mais rápida e a heurística F(n) original será usada para o cálculo da

rota mais curta.

5.2.1 Tipos da via

O tipo da via influencia diretamente na velocidade de locomoção dos veículos,

influenciando também na obtenção da rota mais rápida. Adotando a via arterial como

padrão de velocidade média, define-se o fator w(n) igual a 1 (peso nominal nulo).

Assim, a atribuição dos outros tipos de vias existentes de acordo com as

velocidades estabelecidas pelo Código Brasileiro de Trânsito, ocorre

proporcionalmente da seguinte forma:

Tipo de via Velocidade permitida Peso nominalRodovias 110 Km/h 0,54

Expressa 80 Km/h 0,66

Arteriais 60 Km/h 1

Coletoras 40 Km/h 1,5

Locais 20 Km/h 3

Figura 5.4: Tabela de tipos de vias e seus respectivos pesos nominais

5.2.2 Outros Fatores

O nível de abstração definido pelo presente trabalho permite considerar

apenas um fator externo: o tipo da via. No entanto muitos outros fatores podem ser

considerados em trabalhos futuros como pavimentação da via, sinalização da via e

estatísticas de tráfego. Eles simplesmente poderiam ser utilizados para o cálculo de

W(n) na heurística F(n).

5.3 Problemas de Redução de Velocidade do Algoritmo

Quando o espaço de busca se torna muito grande o algoritmo A* tende

a ocupar muita memória com a lista de abertos e aumentar exponencialmente o

tempo de processamento.

Page 42: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Nestes casos, outras soluções podem ser utilizadas. Existe uma gama de

algoritmos de busca que são igualmente ótimos e completos como o A* e ocupam

menos memória e menos processamento que ele. Como o AIA*, que aplica o

conceito de aprofundamento iterativo ao A*, e o BPRM que busca recursivamente

pelo melhor.

Porém Lester (2004) propõe algumas medidas externas podem ser tomadas

para limitar o espaço de busca antes de fornecê-lo para o algoritmo, aumentando

assim a sua velocidade. Algumas delas serão vistas abaixo:

Pré-identificação de becos sem saída: Em um ambiente de vias urbanas

podem-se considerar os nós que não conduzem em lugar algum como becos sem

saída. Só parando para considerar nós em uma área de beco sem saída se o local

do começo ou destino acontecerem de estar na área de beco sem saída particular

em questão.

Rotas predefinidas: Para caminhos longos podem-se utilizar caminhos pré-

calculados, como por exemplo, a conexão entre duas cidades ou dois estados.

Pré-identificação de áreas inacessíveis: Pode se pré-processar o mapa para

descobrir áreas inacessíveis do resto do mapa. É o caso de ilhas ou áreas

acessíveis apenas por meios de transportes irrelevantes na coleção de estados. Isso

evita que o A* gaste processamento explorando todos os nós do mapa para

encontrar um caminho.

Page 43: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

6. Proposta

Dentre as várias técnicas de busca por uma possível solução, foi

implementada neste protótipo a busca A*, devido a sua busca ser ótima e completa.

Este protótipo foi desenvolvido de forma a fornecer ao usuário dois tipos de

rotas:

Rota ótima curta: Essa busca utiliza o A* em sua forma original e retorna a

rota com a menor extensão, mas utiliza-se de dados de direcionamento da via, para

evitar que vias sejam tomadas em contramão.

Rota ótima rápida: Essa busca utiliza o A* juntamente com o fator w obtido

das vias. E retorna a rota em que teoricamente se alcançaria o destino de forma

mais rápida.

Foi escolhida a interface web devido à portabilidade dessa plataforma. Assim

um usuário com um navegador no padrão W3C e acesso a Internet pode navegar no

mapa e obter uma rota em qualquer lugar, ou seja, num desktop com qualquer

sistema operacional, num notebook, num PDA ou celular com acesso a Internet.

Uma característica importante é que a aplicação não precisar ser instalada no

dispositivo.

Por se tratar de um sistema web, foi escolhida a linguagem de marcação

HTML e linguagem de scripts Javascript para implementação da Interface e a

linguagem PHP para rodar do lado do servidor web, juntamente com o Banco de

Dados MySQL para armazenar as informações das vias.

O Protótipo desenvolvido é composto por quatro módulos principais, mais dois

dispositivos de armazenamento de dados, conforme a figura 6.1:

6.1 Obtenção dos Dados

O município de Barra Mansa foi selecionado para o estudo de caso deste

trabalho, sendo inicialmente foi feito a validação num mapa criado com dados

fictícios.

Page 44: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Aplicação W eb

interface com o usuário

M otor AJ AX

Servidor W eb

Repositóriode I magens

Banco de dadosdo mapa

Busca de vias Busca de rotas Renderizador

chamadasJ avascript dados htm l

nome da via

via

vias origeme destino rota

mapa/ rotaimagens

Figura 6.1: Módulos do Sistema

6.1.1 Obtenção das coordenadas do mapa

Para obter os dados vetoriais do mapa, foi obtido o mapa da cidade impresso

no tamanho A2 (420 x 594 mm) e o mesmo foi seccionado de forma que se

obtiveram quatro partes equivalentes ao tamanho A4 (210 x 297 mm).

A digitalização foi efetuada individualmente nesses pedaços através de um

scanner de mesa com a resolução de 100dpi (100 pixels por polegada). Assim o

resultado foram quatro imagens de 826 x 1169 pixels, que através de um editor de

imagens foram agrupadas, gerando uma só imagem de 1152 x 2338 pixels.

Em seguida, foi feita a vetorização manual dessa imagem, pois após várias

tentativas de uma vetorização automática, foi percebido que deste modo a imagem

conteria muito detalhes, aumentando a quantidade de nós cerca de 15.000.

Como o objetivo é minimizar a quantidade de nós com o intuito de aumentar a

velocidade de execução do algoritmo, a vetorização automática não foi considerada

viável. Na vetorização manual, que se faz traçando manualmente cada linha da

imagem até que toda a malha esteja completa, foi obtido um resultado satisfatório,

cerca de 5000 nós. Esses nós foram exportados, juntamente com os seus vértices

Page 45: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

para um formato conhecido pelo banco de dados MySQL e em seguida importado

para o banco. Como resultado dessa importação obteve duas tabelas: Nó e Vértice

(figura 6.2).

6.1.2 Associação dos Nós com os nomes das vias

Através do banco de dados dos correios, contendo os dados das ruas de

Barra Mansa com cerca de 1400 nomes de ruas juntamente com os dados de CEP e

bairro, foram geradas duas tabelas: Via e Bairro (figura 6.2).

Entretanto, devido ao curto período disponível para este projeto, a associação

desses nomes junto aos seus vértices não pode ser feita por completa. Dessa forma,

o presente trabalho se restringiu em associar apenas as vias do centro da cidade

para o estudo de caso. A associação foi feita de forma manual Inserindo o

identificador de cada via em seus respectivos vértices.

6.1.3 Obtenção dos dados de funcionalidade e sentido das vias

Para os dados do tipo funcional e o sentido das vias também foi imposto o

centro da cidade como limite. Esses dados das vias foram colhidos numa pesquisa

de campo e inseridos na tabela Via.

6.2 Módulo de Busca de Rotas

O núcleo da implementação desse módulo é a função pegarRota() que recebe

como parâmetro o identificador do estado inicial, o identificador do estado final e um

parâmetro booleano que recebe falso se a busca vai ser pela rota mais curta (A*

original) ou recebe verdadeiro se a busca vai ser pela rota mais rápida (A* com a

heurística modificada).

Nesta função foi implementado o algoritmo A* descrito no Capítulo 4. Depois

de encontrar a rota ele retorna um vetor com o identificador de todos os pontos que

a rota incorpora.

Page 46: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Figura 6.2: Diagrama de Entidade Relacionamento

6.3. Módulo Renderizador de Mapas

O Mapa das vias foi pré-renderizado, uma vez que este é um processo que

consome muito tempo de processamento. A biblioteca GD do PHP que é capaz de

gerar imagens através de linhas de comando foi utilizada para isso.

6.3.1 Adaptação do mapa às escalas de zoom

Antes de iniciar o processo de rasterização, foi necessário adaptar a unidade

de medida do banco de dados de nós à unidade de medida do mundo real, de forma

que o mapa fosse representado com uma régua de escala equivalente de acordo

com o nível de aproximação.

Assim, foi utilizada uma régua existente no mapa real para adaptar as escala

existente no banco de dados. Foi detectado que a área da cidade media

aproximadamente 14000 x 10000 metros. Ajustando-o para 1/1 (um metro por pixel),

obteve-se uma imagem de 14000 x 10000 pixels e foi detectado que essa medida

deveria ser a escala do maior nível de zoom do mapa, uma vez que uma

aproximação maior que essa seria desnecessária para o propósito. Porém, a área

de abrangência foi mudada para 16384 x 16384 metros por essa medida ser uma

potência de dois e assim facilitar os demais cálculos existentes na renderização. O

Page 47: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

espaço sobressalente de aproximadamente 2.000 metros na largura do mapa e

6.000 metros na altura foi deixado como sobra sem comprometer o mapa.

Testes identificaram que seis níveis de aproximação precisariam ser gerados

com a função de equivalência abaixo, pois no maior nível de aproximação obtém-se

uma imagem de 16384 x 16384 pixels. Esta medida é suficiente para exibir todos os

detalhes relevantes e no menor nível de aproximação obtém-se uma imagem de 512

x 512 pixels que faria o mapa inteiro visível na tela da maioria dos usuários:

x’ = x ● Sx y’ = y ● Sy

Sx = Sy = 1 / (2 zoom - 1)

Figura 6.3: Fórmula de cálculo da escala

Onde: x’ e y’ são o tamanho da imagem com aproximação

x e y são o tamanho da imagem sem a aproximação

Sx e Sy são os fatores de escala.

De posse da fórmula acima, o tamanho das imagens nos seis níveis de

aproximação puderam ser calculados de acordo com a tabela abaixo:

Nível de Aproximação Tamanho do Mapa (pixels) Quantidade de metros / pixel1 16834 x 16834 12 8192 x 8192 23 4096 x 4096 44 2048 x 2048 85 1024 x 1024 166 512 x 512 32

Figura 6.4: Tabelas de níveis de aproximação x tamanho do mapa

6.3.2 Geração das Imagens através da biblioteca GD

Para a geração das imagens foi utilizada a função imageline(). Ela tem a

função de desenhar um vetor qualquer em numa determinada área da imagem e

recebe os seguintes parâmetros: a) imagem onde vai ser desenhado o vetor, b) a

coordenada X do primeiro nó do vetor, c) a coordenada Y do primeiro nó do vetor, d)

a coordenada X do segundo nó do vetor, e) a coordenada Y do segundo nó do vetor,

f) a cor do vetor.

Page 48: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Essa função foi chamada dentro de uma iteração que percorreu toda a tabela

de vetores, de forma que, ao fim dessa iteração todas as vias haviam sido

renderizadas e salvas em um arquivo de imagem para cada nível de zoom.

O tipo de imagem escolhido foi o PNG uma vez que todos os navegadores

implementados seguindo o padrão W3C oferecem suporte a esse tipo de imagem.

Nesses estão incluídos os navegadores Internet Explorer, da Microsoft e o Firefox da

Mozilla.

6.3.3 Segmentação do Mapa

O tamanho da imagem do mapa se tornou um grande problema para a

usabilidade do sistema, uma vez que no maior nível de aproximação (100%) ele

tinha 3,2 megabytes. É totalmente inviável para um usuário de Internet discada

aguardar o tempo para carregar um arquivo e mesmo usuários de Internet rápida

não é esperado que aguardem o tempo de carga para obter a imagem do mapa.

Assim foi resolvido segmentá-lo em várias imagens menores de 256 por 256 pixels.

Essas imagens seriam carregadas dinamicamente, de acordo com que o usuário

navegasse no mapa.

O resultado dessa segmentação foi pequenas imagens com a média de 2

kilobytes no seu tamanho de arquivo. Assim, numa tela de 1024 x 768 pixel,

resolução utilizada por 53% dos usuários de Internet de acordo com estatísticas

colhidas pelo [W3Schools 2006], seriam carregadas 12 imagens por vez, totalizando

24 kilobytes. Numa conexão de Internet discada, isso seria carregado em 6

segundos, o que é considerável para uma aplicação Web.

Abaixo segue uma tabela com o resultado obtido com essa segmentação:

Nível de Zoom

Quantidade de Segmentos de Imagem (Linha x Coluna)

Total de Segmentos

1 64 x 64 40962 32 x 32 10243 16 x 16 2564 8 x 8 645 4 x 4 166 2 x 2 4

Figura 6.5: Tabelas de níveis de aproximação x segmentos do mapa

Page 49: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

6.3.4 Renderização da Rota

Conforme o visto na seção 6.2, o retorno da função pegarRota() é um vetor

com o identificador de cada ponto da rota. Para renderizar a rota, percorre-se esse

vetor gerando um vértice através da função imageline() para cada um dos valores. É

importante ressaltar que os padrões de escala usados para gerar o mapa também

precisam ser usados para gerar a rota para que a mesma se encaixe perfeitamente

no mapa. Em seguida esse fluxo de bytes de imagem é enviado ao usuário que fez a

requisição da rota

6.4. Módulo de Busca de Vias

6.4.1 Localizar vias pelo nome

De acordo com o já mencionado, a função pegarRota() recebe dois de seus

parâmetros dos identificadores da via de origem e de destino, respectivamente.

Porém seria desagradável se o usuário precisasse saber o identificador da via que

ele deseja encontrar a rota. Então, tornou-se necessário fazer uma interface de

busca em ele digite a via de origem e destino e o sistema fizesse a localização

desses vértices através dos nomes das vias. De posse do identificador desses

vértices, a busca de Rota pode ser feita normalmente.

Com a ajuda da função LIKE do MySQL, a busca de vias pode ser feita sem

que caracteres de acentuação fossem considerados, facilitando a localização e

tornando a busca mais genérica.

6.4.2 Localizar ruas pelo CEP

A Busca pelo CEP ocorre de forma semelhante à busca de vias por nome, no

entanto a localização do vértice é feita através do número de CEP da via.

6.5. Módulo da Aplicação Web

6.5.1 Navegador do Mapa

A navegação do mapa foi implementada através da linguagem

Javascript assistida por folhas de estilos CSS. Conforme o usuário clica e arrasta

com o mouse sobre o mapa, os segmentos de imagem (descrito na seção 6.3.3) vão

sendo carregados e exibidos de forma assíncrona à navegação do usuário. Isso

Page 50: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

permite que ele continue navegando mesmo que as imagens ainda não estejam

completamente carregadas.

6.5.2 Níveis de Aproximação

O usuário pode desejar em certo momento obter mais ou menos detalhes de

uma determinada parte do mapa. Ele dispõe de dois botões de navegação para isso.

O botão “mais zoom” aproxima o mapa duplicando o seu tamanho e o botão “menos

zoom” distancia o mapa tornando-o a metade do seu tamanho anterior. No total o

mapa dispõe de seis níveis de zoom de acordo com as figuras 6.4 e 6.5.

A implementação é feita da seguinte maneira:

Quando o usuário clicar no botão mais zoom ou menos zoom:

Obtém-se a quantidade de imagens no nível de zoom determinado;

Através da posição atual do mapa escolhem-se as imagens que serão carregadas

para aquele nível de zoom, de forma que toda a tela esteja preenchida.

Cria as imagens através do comando document.createElement() do DOM Javascript.

6.5.3 Escala do Mapa

Para que o usuário tenha noção de espaço no mapa, tornou-se necessário

implementar um visualizador de escala. Assim, juntamente com o carregamento das

imagens para um determinado nível de zoom, uma imagem com a escala (figura 6.4)

também é carregada.

6.5.4 Busca de Rota

Para buscar uma rota, o usuário toma os seguintes procedimentos:

Insere o nome da vias de origem e destino; Escolhe se a busca vai ser pela rota mais curta ou pela rota mais rápida; Clica no botão encontrar rota;

Assim que esse botão é clicado uma requisição é feita ao servidor web

pedindo a rota de acordo com os dados inseridos pelo usuário. Após o

processamento do servidor, uma imagem com a rota é retornada e posicionada

Page 51: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

segundo suas coordenadas no mapa. Em seguida o zoom é reajustado de forma

que toda a imagem da rota seja exibida na tela.

6.6. Validação do Protótipo

O processo de validação do sistema foi realizado em duas fases distintas. O

primeiro, de verificação dos erros semânticos de programação e o comportamento

do algoritmo de busca. O processamento foi realizado com dados simulados de uma

pequena cidade fictícia de tal forma a atender a maioria das configurações de

malhas de vias existentes:

Figura 6.6: Representação gráfica do mapa inicial: dados fictícios

A segunda fase de validação, dessa vez com dados reais, a região da cidade

de Barra Mansa foi utilizada para testar o protótipo da busca de caminho mais curto

e a região central da mesma para testar a busca de caminho mais rápido.

Page 52: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Figura 6.7: Representação gráfica da cidade de Barra Mansa no menor nível de zoom

6.6.1 Problema de velocidade de execução do algoritmo

Os testes da função pegarRota() foram executados num computador com a

seguinte configuração: 500Mhz, 256 megabytes de memória RAM. Foi usado um

grafo de 500 nós, obtendo sempre resultados corretos e rápidos, com tempos de

resposta menores que 0,5 segundos. Porém quando o grafo real foi inserido no

contexto, foi obtido um aumento significativo do tempo. Agora para rotas de

profundidades mais rasas, eram gastos 7 segundos e para rotas mais longas mais

de 5 minutos.

Foi detectado então que o tempo de requisição ao banco de dados era

culpado pela maior parte desse tempo gasto. Por isto, foi substituída a utilização do

banco de dados por um grande vetor com todos os nós e vértices no próprio

contexto da linguagem PHP.

Essa medida trouxe um ganho de tempo mais que significativo, pois a função

passou a devolver rotas, por maiores que elas fossem, em menos de 3 segundos.

Assim foi constatado que o algoritmo A* num espaço de até 5000 nós é uma ótima

opção, mas provavelmente se esse espaço aumentar, será necessário utilizar uma

Page 53: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

variante do A* que gaste menos tempo ou então utilizar um método de busca sub-

ótimo para realizar a busca.

6.6.2 Problemas de nós reabertos

Durante os testes aconteceu um problema em que a busca se desviava da

rota mais curta em certo ponto e depois retornava novamente. Deste modo a rota

retornada não era a de menor custo. Após fazer uma análise no algoritmo e testar

algumas entradas, foi verificado que esse problema acontecia devido à reabertura

de nós que já estavam abertos.

Quando um nó N é aberto, ele é inserido na fila de abertos e fica lá até que

seja fechado. O problema acontece quando um outro nó qualquer abre esse mesmo

nó e o seu custo heurístico é maior que o que já estava guardado anteriormente.

Assim esse nó é sobrescrito e seu custo se torna maior que o já armazenado.

A Solução para isso só sobrescrever esse nó se o seu novo custo heurístico

for menor que o gravado anteriormente.

Após a implementação dessa condição, o algoritmo foi ótimo em 100% dos

casos avaliados.

Page 54: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Conclusão

Com os resultados obtidos pelo presente trabalho, é possível acreditar que os

algoritmos de busca heurística podem completar a área de engenharia de tráfego e

trazer muitos benefícios para a população e para aplicações de apoio à logística de

locomoção. Entre estas aplicações pode-se considerar: Controle da posição de

veículos (muito interessante em caso de segurança de frotas rodoviárias,

atendimento médico emergencial).

Com uma implementação em escala de produção dos conceitos abordados e

com a inserção de outras variáveis no cálculo de custo de transição de estados, em

especial o volume do tráfego. Seria possível reduzir consideravelmente o tempo de

locomoção dos automóveis, assim como os problemas de trânsito. Por outro lado,

com o protótipo construído já se pode observar que de forma individual, sem levar

em consideração os outros fatores externos, é possível obter uma rota considerada

mais rápida dentre as outras.

Acredita-se que para posteriores aperfeiçoamentos nesse sistema e também

para trabalhos futuros, possam-se explorar essas outras variáveis do sistema de

tráfego urbano, principalmente o volume e estatísticas de tráfego. Podendo se

utilizar de técnicas de mineração de dados, que influenciaria na constante mudança

no custo de transição de estados do sistema viário.

Outras técnicas de Inteligência Artificial poderiam também ser usadas, como

Redes Neurais para determinar uma rota textual ou métodos de busca sub-ótimos,

como algoritmos genéticos, por exemplo, para atender um grande espaço de

estados.

Page 55: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Bibliografia

AZEVEDO Eduardo.; CONCI, Aura. Computação Gráfica – Teoria e Prática, Campus, 2003

BORGES, Daniel.; BLUM, Gabriel. Sistema de Navegação em Grafos Gerados em Ambientes Virtuais 3D; Instituto de Matemática da Universidade Federal do Rio de Janeiro, 2003.

BUISSERET David., Ministers and Maps: The Emergence of Cartography as a Tool of Government in Early Modern Europe, University of Chicago, 1992

FONSECA, Edvaldo.; QUINTANILHA, José.; IWAI, Olga. Cartografia, 2002. Disponível em: <http://www.ptr.poli.usp.br/ptr/Cursos/SensoriamentoRemoto/Cartografia/home.htm>

HARMON P.; KING; D. Artificial Intelligence in Business, Paperback, 1985.

LESTER, Patrick. A* Pathfinding for Beginners. GameDev.net. Disponível em:<http://www.gamedev.net/reference/articles/article2003.asp>. Acesso em 18 de março de 2006.

LIMA, Cleiton.; ARAÚJO, Aloísio. Otimização de Trânsito – Uma Abordagem Utilizando Algoritmos Genéticos, UNIVERSIDADE FEDERAL DE PERNAMBUCO, 2005.

LUGER, George F. Inteligência Artificial: estruturas e estratégias para a solução de problemas complexos. - 4.ed. - Porto Alegre: Bookmann, 2004.

POLYA, George. How to Solve it, Princeton University Press, 1945. RANGEL, Áurea. Segurança - Sinalização pode salvar vidas: Revista Eletrônica O Carreteiro, 2006, Disponível em: < http://www.revistaocarreteiro.com.br/modules/revista.php?recid=262&edid=25 > Acesso em 16 de Agosto de 2006.

RUSSEL, Stuart J.; NORVIG, Peter. Artificial Intelligence: A Modern Approach, Hardcover, 1995.

STOUT, Brian. Smart Moves: Intelligent Path finding. Gamasutra, 1997. Disponível em:< http://www.gamasutra.com/features/19970801/pathfinding.htm>. Acesso em 24 de julho de 2006.

WENZEL, Flávio. Informatiquês – Dicionário de Termos de Informática: Tecnologias na Educação. 2003. Disponível em <http://www.flaviowenzel.hpg.ig.com.br/informatiques/h.html> Acesso em: 16 de Agosto de 2006.

SILVA, D. M.; FREITAS, V. M.; FERNANDES JR. G. M.; UCHÔA, J. Q.; SCHNEIDER, B. O. Implementação de uma Biblioteca para Busca Informada e Não-Informada em Espaço de Estados, Universidade Federal de Lavras. 2005 Disponível em <http://www.dcc.ufla.br/infocomp/artigos/v3.1/art09.pdf> Acesso em 20 de Maio de 2006.

W3Schools. Browser Statistics 2006. Disponível em <http://www.w3schools.com/browsers/browsers_stats.asp> Acesso em 05 de Setembro de 2006.

WIKIPEDIA. Algoritmo de Busca, 2006, Disponível em <http://pt.wikipedia.org/wiki/Algoritmo_de_busca> Acesso em 14 de Fevereiro de 2006.

WIKIPEDIA. Busca em Largura, 2006, Disponível em <http://pt.wikipedia.org/wiki/Busca em Largura> Acesso em 17 de Fevereiro de 2006.

Page 56: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

Glossário3D Tridimensional. Qualquer figura que tenha altura, largura e profundidade.

Uma ilustração normalmente é bidimensional, porque lhe falta a profundidade que é a terceira dimensão.

a.C. A abreviatura a.C. serve para marcar os anos anteriores ao ano um do calendário que é utilizado no Ocidente

Adobe Freehand

Programa de ilustração profissional para computadores. Produz imagens baseadas em objetos

Adobe Ilustrator

Programa de ilustração profissional para computadores. Produz imagens baseadas em objetos

Auto Cad Software do tipo CAD, criado e comercializado pela Autodesk, Inc. em 1982. É utilizado para desenho técnico em duas dimensões e, limitadamente, para modelagem de objetos em três dimensões. Utilizado em arquitetura, engenharia mecânica e em alguns outros ramos da indústria.

bitmap É um padrão de representação de imagens formado por uma grade geralmente retangular de pontos de cor, ou pixels (do Inglês, picture element) em um monitor de computador, papel ou outro dispositivo, ou mesmo em meios não visuais, como por exemplo, na memória RAM de um computador ou em disco magnético, sob a forma de arquivos.

CEP Código postal ou Código de Endereçamento Postal (CEP) é um código desenvolvido pelas administrações postais e criado no sentido de facilitar o encaminhamento e a entrega das correspondências.

CONTRAN Órgão normativo e consultivo máximo, responsável pela regulamentação do Código e pela permanente das Leis de Transito.

CSS São estilos para páginas web e envolvem um conceito inovador: possibilitam a mudança da aparência simultânea de todas as páginas relacionadas com o mesmo estilo.

DENATRAN Órgão executivo  que integra a estrutura do Ministério da Justiça, com autonomia administrativa e técnica, com jurisdição sobre todo o território nacional.

DER Modelo de descreve a atuação de um sistema com alto nível de abstração, isto é, é planejado tudo que um sistema deseja ter e fazer, todas as suas dependências entre área de funcionamento de uma empresa.

DER Órgão responsável pelas rodovias estaduaisDesktop Tela do computador que funciona como uma mesa, sobre ela você pode

colocar as ferramentas que mais usa.DETRAN Órgão executivo que, entre outras atribuições, administra a documentação

dos veículos e condutores, emite, suspende ou cassa a CNH.DOM Especificação desenvolvida pelo W3C que permite criar e modificar páginas

HTML e documentos XML como objetos de programas completos com todos os recursos e características próprias de um objeto, cada um tendo um conjunto de propriedades e métodos.

Download O processo de se transferir uma cópia de um arquivo em um computador remoto para outro computador através da rede; o arquivo recebido é gravado em disco no computador local.

FIFO Estrutura de dados do tipo fila, onde o primeiro elemento que entra é o primeiro que sai.

FILO Estrutura de dados do tipo pilha, onde o primeiro elemento que entra é o último que sai.

GD, biblioteca

Biblioteca feita por Thomas Boutell e outros para manipular imagens dinamicamente. É programado em linguagem ANSI C, mas tem interface para muitas outras linguagens de programação, permitindo criar imagens nos formatos GIF's, JPEG's, PNG's e WBMP's.

Google Earth

O Google Earth é um programa que permite a visualização de imagens reais capturadas por satélite de praticamente qualquer lugar do mundo.

Google Maps

É um serviço de mapas on-line gratuito provido pelo Google. Ele oferece um mapa arrastável do mundo inteiro e um planejador de rotas para os Estados Unidos, Canadá, Reino Unido e Irlanda (somente centro das cidades). Atualmente ele está em teste beta.

GPS O Sistema de Posicionamento Global é um sistema de posicionamento por

Page 57: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

satélite, por vezes incorretamente designado de sistema de navegação, utilizado para determinação da posição na superfície da Terra ou em órbita. É constituído por uma constelação de 24 satélites.

Grafo Em matemática e ciência da computação, grafo é o objeto básico de estudo da teoria dos grafos. Tipicamente, um grafo é representado como um conjunto de pontos (vértices) ligados por retas (as arestas). Dependendo da aplicação, as arestas podem ser direcionadas, e são representadas por "setas".

HTML A sigla HTML deriva da expressão Hyper Text Markup Language. Trata-se de uma linguagem de marcação utilizada para produzir páginas na Internet. Esses códigos podem ser interpretados pelos navegadores para exibir as páginas da World Wide Web.

Internet Rede de redes em escala mundial de milhões de computadores. Ao contrário do que se pensa comumente, Internet não é sinônimo de World Wide Web. Esta é parte daquela, sendo a World Wide Web, que utiliza hipermídia em sua formação básica, um dos muitos serviços oferecidos na Internet. A Web é um sistema de informação muito mais recente que emprega a Internet como meio de transmissão.

Javascript Linguagem de criação de scripts ligeiramente relacionada à Java, desenvolvida pela Netscape. Não é totalmente orientada a objetos e não precisa ser compilada. Permite a construção de recursos avançados em páginas Web em conjunto com a linguagem HTML

Kilobytes Corresponde a 1024 bytes ou 2 elevado à potência 10. A palavra quilo vem do grego khilioi, que significa mil.

Megabytes Corresponde a 1048576 bytes, ou 2 elevado a potencia 20. O termo mega teve origem no grego megas, grande.

Mozilla Firefox

Navegador livre e multi-plataforma desenvolvido pela Mozilla Foundation com ajuda de centenas de colaboradores.

MSN Local Serviço de mapas on-line provido pela MicrosoftMySQL Sistema de gerenciamento de banco de dados relacionais baseado em

comandos SQL (Structured Query Language - Linguagem Estruturada para Pesquisas) que vem ganhando grande popularidade, sendo atualmente um dos bancos de dados mais populares, com mais de 4 milhões de instalações.

Notebook Computador portátil, leve, que pode ser levado a qualquer lugar.PDA Computador de dimensões reduzidas, dotado de grande capacidade

computacional, cumprindo as funções de agenda e sistema informático de escritório elementar, com possibilidade de interconexão com um computador pessoal e uma rede informática sem fios - Wi-fi - para acesso a correio eletrônico e Internet.

PHP Linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na Web.

Pixel Menor elemento em um dispositivo de exibição, ao qual é possível atribuir-se uma cor. De uma forma mais simples, um pixel é o menor ponto que forma uma imagem digital, sendo que o conjunto de milhares de pixels formam a imagem inteira.

PNG Formato de dados utilizado para imagens, que surgiu em 1996 como substituto para o formato GIF, devido ao fato de este último usar algoritmos patenteados.

RAM É a memória disponível para uso das aplicações e processamentos. Seu conteúdo volátil é perdido sempre que o computador é desligado. A quantidade de RAM, cujo limite é determinado pelo sistema operacional, é um dos componentes que contribuem para a capacidade de processamento de um computador.

Scanner Equipamento eletrônico responsável por digitalizar imagens, fotos e textos para o computador.

Script São mini programas, baseados numa determinada linguagem, que executam determinadas operações.

SQL Linguagem de pesquisa declarativa para banco de dados relacional (bases de dados relacionais). Muitas das características originais do SQL foram inspiradas em cálculo de tuplas.

W3C Órgão criado em 1994 para levar a Web para o seu potencial máximo,

Page 58: TÉCNICAS DE BUSCA HEURÍSTICA NO DESENVOLVIMENTO DE UM SISTEMADE MAPAS VIÁRIOS E BUSCA DE ROTAS

através do desenvolvimento de protocolos comuns e fóruns abertos que promovem sua evolução e asseguram a sua interoperabilidade. O W3C desenvolve tecnologias, denominadas Web Standards (ou Padrões Web) para a criação e a interpretação dos conteúdos para Web.

Yahoo Maps Serviço de mapas on-line provido pelo Yahoo