• Nenhum resultado encontrado

DESCOBRINDO ROTAS GEOGRÁFICAS SUB-ÓTIMAS DISCOVERING SUB-OPTIMAL GEOGRAPHIC ROUTES

N/A
N/A
Protected

Academic year: 2021

Share "DESCOBRINDO ROTAS GEOGRÁFICAS SUB-ÓTIMAS DISCOVERING SUB-OPTIMAL GEOGRAPHIC ROUTES"

Copied!
6
0
0

Texto

(1)

DESCOBRINDO ROTAS GEOGRÁFICAS SUB-ÓTIMAS

CRUZ FONSECA, M. A.

1

; MATOS, L. N.²; SILVA, M. A. S.³

RESUMO: Este trabalho apresenta uma solução heurística para uma variação do clássico problema

computacional do Caixeiro Viajante. Adotaremos a seguinte definição para o problema: “Dado um

conjunto de localidades no espaço geográfico, encontrar o menor caminho baseado nas coordenadas

das mesmas”. Devido à natureza dos dados processados (coordenadas geográficas) e ao grande esforço

computacional exigido para a descoberta de rotas, esse trabalho procurou uma resposta sub-ótima à

variação do problema chamada de Euclidiana, com baixo esforço computacional usando Mapas Auto

Organizáveis (SOM, do inglês). No método heurístico aplicado a base teórica foi o SOM e a

implementação consistiu em funcionalidades acrescentadas à biblioteca SOMCode. Os resultados

alcançados, apesar de classificarem a solução proposta como satisfatória, apontaram para várias áreas

a serem exploradas no futuro com o objetivo de aumentar a eficiência da solução proposta.

PALAVRAS-CHAVE: problema do caixeiro viajante; redes neurais artificiais; mapas auto

organizáveis.

DISCOVERING SUB-OPTIMAL GEOGRAPHIC ROUTES

ABSTRACT: This work shows a heuristic solution for the classic computing problem of the

Traveling Salesman (TSP). We will adopt the following definition for the problem: “Given a set of

localities in the geographic space, to find the shortest path based on the coordinates of the same ones”.

Due to nature of the processed data (geographic coordinates) and to the great demanded computational

effort for the discovery of routes, this work looked for a sub-optimal answer to the problem’s variety

called Euclidian, with low computing effort using Self-organizing Maps (SOM). In the heuristical

method applied the theoretical base was the SOM and the implementation consisted of functionalities

added to the SOMCode library. The reached results, although to classify the proposed solution as

satisfactory, had pointed some areas to be explored in the future with the objective to increase the

efficiency of the proposed heuristic.

KEYWORDS: traveling salesman problem; artificial neural networks; self-organizing maps

1

Marco Aurélio Cruz Fonseca, Graduando em Ciência da Computação, Estudante Estagiário, Universidade Federal de Sergipe - UFS, Rua Maruim 323, Centro CEP: 49010-160, marco_ufs@yahoo.com.br, telefone 3224-6099.

2Dr. Leonardo Nogueira Matos, Doutor em Ciência da Computação, Professor, Universidade Federal de Sergipe - UFS. 3Marcos Aurélio Santos da Silva, Mestre em Computação Aplicada, Analista de Sistemas, Embrapa Tabuleiros Costeiros.

(2)

INTRODUÇÃO: O Problema do Caixeiro Viajante pode ser assim definido: “Dado um conjunto de

cidades, onde cada par de cidades é ligado por um caminho de determinado tamanho, encontrar um

percurso tal que o caixeiro viajante parta de uma cidade origem, visite todas as outras cidades e retorne

à origem percorrendo a menor distância possível”. Ainda não existe algoritmo que resolva

eficientemente este problema para todos os casos (quanto maior o número de cidades no conjunto,

mais difícil é encontrar o percurso).

Este problema tem a seguinte variação: “Dado um conjunto de pontos dispostos num plano

bidimensional (euclidiano), encontrar o polígono de menor perímetro formado por estes pontos”. Essa

variação onde as cidades são representadas pelos pontos e o polígono corresponde ao percurso do

caixeiro viajante é chamada de Problema do Caixeiro Viajante Euclidiano [1]. O presente trabalho

focou justamente essa variação.

MATERIAL E MÉTODOS: O método computacional trabalhado para resolver esse problema é

baseado no em um modelo especial de Redes Neurais Artificiais e é conhecido por SOM [2]. Este tipo

de rede é formado por duas camadas: uma camada (I) de entrada de dados e uma camada (U) de saída

constituída por uma rede de neurônios (Figura 1).

O treinamento da rede é medido em épocas, onde em cada uma é aplicado o processo de

aprendizagem, dividido em três fases [3]:

Competitiva: para cada vetor de entrada K é buscado o BMU (Best Match Unit), que

corresponde ao neurônio mais próximo a K;

Cooperativa: conhecido o BMU, é determinada sua vizinhança (neurônios vizinhos);

Adaptativa: as coordenadas (pesos) do BMU e de seus vizinhos são atualizadas segundo a taxa

de aprendizagem;

Dentro da divisão das RNA proposta por Kohonen, SOM é classificada como uma Rede de

Aprendizado Competitivo [4]. Das características apresentadas por esse tipo de rede, citamos como as

mais importantes para o nosso trabalho o processo competitivo de aprendizado e o treinamento

não-supervisionado da rede.

(3)

A implementação do SOM utilizada ao longo do trabalho foi o SOMCode [5], uma biblioteca

C++ de código aberto que provê ferramentas necessárias para trabalharmos com Mapas

Auto-Organizáveis.

A solução avaliada não teve foco em encontrar o percurso de caixeiro viajante para o Problema

do Caixeiro Viajante Euclidiano (nesse caso seria gerada uma solução ótima), mas encontrar o menor

percurso possível dentro do baixo esforço computacional aplicado. Essa estratégia de encontrar

soluções sub-ótimas (que resolvem dentro do contexto trabalhado) para problemas que ainda não tem

(caso existam) algoritmos implementáveis é conhecida como Heurística.

A solução heurística aplicada tem três pontos chave: inclusão no SOMCode da possibilidade

de trabalhar com redes de neurônios unidimensionais dispostos no formato toroidal [6], incluir no

SOMCode a inicialização dessa rede em janela [6](onde no inicio do treinamento os neurônios

encontrar-se-iam dispostos em retângulo ao redor dos pontos) e da aplicação da aprendizagem em lote

na rede. Ao final do treinamento (após um número relativamente baixo de épocas) os neurônios

estariam dispostos entre os pontos, sendo ainda necessário interpretar qual o percurso apontado pela

posição final da rede. Para isso aplicamos uma função que tem como entradas as posições dos

neurônios no final do treinamento e as coordenadas dos pontos usadas durante o treinamento, e que

tem como saída uma seqüência das coordenadas dos pontos que representa o percurso encontrado.

RESULTADOS E DISCUSSÃO: Realizamos os testes trabalhando com um conjunto de exemplos de

TSP (Travelling Salesman Problem – Problema do Caixeiro Viajante) Euclidianos obtidos através do

repositório de testes TSPLIB [7]. De cada exemplo é conhecida a quantidade de cidades e o

comprimento de seu percurso ótimo. Após cada teste era gerado o percurso e calculado o seu

comprimento. Os parâmetros padronizados para todos os testes foram a inicialização dos neurônios em

janela, aprendizagem em lote, raio de vizinhança de 0,25(ou seja, inicialmente cada neurônio é

considerado vizinho aos n outros mais próximos que compõem 25% do total de neurônios da rede),

200 épocas e quantidade de neurônios da rede próxima à quantidade de cidades do exemplo (sempre

que possível igual).

Para cada exemplo foram gerados dois resultados, sendo o primeiro a configuração final

(conjunto de coordenadas) da rede neural e o segundo o percurso gerado por ela com seu respectivo

comprimento. Desses resultados foram geradas imagens para sua melhor análise (Figura 2).

(4)

Abaixo apresentamos uma tabela com os resultados obtidos:

Exemplo

ETSP

Número de

cidades

Número de

Neurônios

Percurso

Ótimo (PO)

Percurso Encontrado

(PE)

Percentual de Aumento

((PE/PO) - 1)x100

bier127

127

130

118282

137870

16,56042339

eil51

51

51

426

457,55

7,406103286

eil76

76

76

538

643,5

19,60966543

kroA200

200

200

29368

34819,77

18,5636407

lin105

105

105

14379

17277,19

20,15571319

pcb432

432

500

50778

69651,3

37,16826185

pr107

107

110

44303

66381,21

49,83457102

pr136

136

140

96772

118822,72

22,78626049

pr152

152

160

73682

89639,52

21,657284

rat195

195

200

2323

2857,57

23,01205338

rd100

100

100

7910

9752,93

23,29873578

st70

70

70

675

739,6

9,57037037

CONCLUSÃO: Considerando o baixo esforço computacional aplicado e a abordagem inovadora de

combinar a aprendizagem em lote e a inicialização em janela ao TSP Euclidiano, com os exemplos

testados conseguimos percursos que são em média 22,5% maiores que os respectivos percursos

ótimos, o que classificamos como sendo um resultado satisfatório.

Das análises das imagens geradas levantamos algumas questões que, se abordadas mais a

fundo, poderiam melhorar os resultados desse trabalho numa futura continuação. Essas questões têm

impacto direto na qualidade do percurso gerado e no uso da solução proposta, e por isso evidenciamos

que seriam os principais pontos a serem atacados numa possível continuação do trabalho.

A primeira questão levantada é a ocorrência de laços durante o treinamento da rede neural,

onde o caminho cruza o próprio trajeto. Da literatura do problema do caixeiro viajante é sabido que se

um percurso apresenta laço(s) sempre existe um percurso menor correspondente, sendo que a solução

(5)

proposta deveria apresentar esse como resultado. Caso se consiga evitar a ocorrência dos laços

conseguiremos percursos mais próximos aos ideais (mais curtos), melhorando assim os resultados

obtidos e consequentemente as rotas geográficas descobertas.

A segunda questão levantada é uma melhor análise da função de geração do percurso a partir

da posição final da rede. Como a posição final da rede neural após o treinamento está em “estado

bruto”, ou seja, não apresenta explicitamente o percurso produzido, é necessário fazer a interpretação

da disposição dos neurônios em relação aos pontos. É justamente essa interpretação que a função de

geração do percurso implementa. Qualquer melhoria no algoritmo, ou até mesmo a descoberta de

outro mais eficiente tem impacto direto no resultado obtido.

A terceira questão levantada durante a análise das imagens é de natureza mais geral, se refere à

melhoria da ferramenta utilizada, o SOMCode. A otimização das funções e comandos escritos em

linguagem C++ são um campo promissor para a melhoria da eficiência da ferramenta, pois terão

impacto direto no esforço computacional aplicado para executar os serviços oferecidos pela

ferramenta. Tais benefícios atingiriam tanto a área de Redes Neurais quanto a área de

Geoprocessamento, que normalmente demanda o processamento de um grande montante de dados.

Uma última questão abordada leva em conta a utilização prática da solução proposta. O

processamento de coordenadas geográficas e geração de percursos (rotas) que realmente interessem a

usuários finais (geógrafos, pesquisadores, etc.) dependem fortemente da inserção dessa solução em seu

ambiente de trabalho. Em termos operacionais essa inserção significa disponibilizar a solução proposta

numa ferramenta que trabalhe com dados dessa natureza (geográficos). Um Sistema de Informações

Geográficas (SIG) se enquadra perfeitamente nesse caso, visto que a solução entraria no contexto da

análise de dados processados num SIG (geográficos, espaciais, demográficos). Sendo assim, mesmo

após o refinamento da solução (aprofundamento das questões anteriormente abordadas), não devemos

esquecer que o sucesso final do trabalho aqui iniciado reside em levar os avanços obtidos ao

profissional que deles tirará proveito. Atingido esse objetivo estaremos contribuindo não somente para

a área de Computação, mas também para a área de Geoprocessamento.

REFERÊNCIAS BIBLIOGRÁFICAS

[1] LEUNG, Kwong-Sak; JIN, Hui-Dong; XU, Zong-Ben. An expanding self-organizing neural

network for the traveling salesman problem. Neurocomputing, p. 268, fev. 2004.

[2] KOHONEN, Teuvo. Self-Organizing Maps. Springer, 2001. Third Edition.

[3] SILVA, Marcos Aurélio Silva. SOMCode: Design Patterns and Generic Programming in the

(6)

[4] CARVALHO, Marcio Ribeiro. Otimização de Algoritmos do SOMCode. São Cristóvão.

Relatório de Estagio – Departamento de Ciência da Computação e Estatística, Universidade Federal de

Sergipe, São Cristóvão, 2004.

[5] SILVA, Marcos Aurélio Silva. SOMCode: Self-Organizing Map Code Project. Aracaju, 2004.

Disponível em : <http://somcode.cpatc.embrapa.br> Acesso em nov. 2005.

[6] VIEIRA, Frederico Carvalho.; NETO, Adrião Duarte Dória; COSTA, José Alfredo Ferreira. An

efficient approach to the traveling salesman problem using Self-Organizing Maps. International

Journal of Neural Systems, v. 13, p. 59-66, 2003.

[7] REINELT, Gerhard. TSPLIB: Symemetric traveling salesman problem (TSP). Heidelberg, 2004.

Disponível em: <http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/> Acesso em

fev. 2006.

Referências

Documentos relacionados

A relevância do presente trabalho está no fato de estudar uma das políticas públicas mais duradouras do país e que ao longo dos anos se solidificou como

Sobrevivente do campo de concentração nazista, passou a se dedicar à escrita após o fim da Segunda Guerra Mun- dial, utilizando seu testemunho com o objetivo de externalizar

Buscando propor novas alternativas de fármacos que combate esta doença um grupo de sul coreanos sintetizaram e testaram in vitro e in vivo os derivados análogos da

A análise de PCA indica que para a molécula se tornar mais ativa precisa ter os valores numéricos de carga no átomo 15 aumentado, ou seja, a densidade eletrônica sobre

Embora a redução da RLA pelos SF em relação aos SM se tivesse mantido, obteve-se uma maior taxa de morte cardíaca não fatal em pacientes tratados com SF, comparativamente

Sendo assim, o Grupo A foi composto com as crianças que realizaram procedimento cirúrgico para tratamento de catarata até 06 meses de idade consideradas, em nosso estudo, de

foram realizadas: Centro Cirúrgico, Unidade de Tratamento In -. tensivo e Berçário, mostrando, de certa forma, pacientes

No Capítulo 2 são apresentados conceitos de processamento de imagens e visão computacional, operações básicas e filtros utilizados no pré-processamento a fim de melhorar a imagem