Upload
hermannclayalmeida
View
68
Download
0
Embed Size (px)
Citation preview
INSTITUTO DE ENSINO SUPERIOR DA PARAÍBA
CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO
HERMANN CLAY DE ALMEIDA LEITE
OTIMIZAÇÃO DE ROTAS EM DISTRIBUIDORA DE ENERGIA ELÉTRICA
UTILIZANDO MAPAS E METAHEURÍSTICA BASEADA NO COMPORTAMENTO
DE COLÔNIA DE FORMIGAS
JOÃO PESSOA
2010
HERMANN CLAY DE ALMEIDA LEITE
OTIMIZAÇÃO DE ROTAS EM DISTRIBUIDORA DE ENERGIA ELÉTRICA
UTILIZANDO MAPAS E METAHEURÍSTICA BASEADA NO COMPORTAMENTO
DE COLÔNIA DE FORMIGAS
Trabalho de conclusão de curso apresentado
como requisito parcial para a obtenção do
título de bacharel em Sistemas de
Informação do Instituto de Ensino Superior
da Paraíba - IESP orientado pelo prof.
Gustavo Wagner Diniz Mendes.
JOÃO PESSOA
2010
Hermann Clay de Almeida Leite
OTIMIZAÇÃO DE ROTAS EM DISTRIBUIDORA DE ENERGIA ELÉTRICA
UTILIZANDO MAPAS E METAHEURÍSTICA BASEADA NO COMPORTAMENTO
DE COLÔNIA DE FORMIGAS
Trabalho de conclusão de curso
apresentado como requisito parcial para a
obtenção do título de bacharel em Sistemas
de Informação do Instituto de Ensino
Superior da Paraíba IESP orientado pelo
prof. Gustavo Wagner Diniz Mendes.
Aprovada em ____ de __________ de _______.
BANCA EXAMINADORA
__________________________________________
Prof. Gustavo Wagner Diniz Mendes (Orientador) Instituto de Educação Superior da Paraíba
__________________________________________
Prof. André Bronzeado Guedes Instituto de Educação Superior da Paraíba
__________________________________________
Prof(a). Roberta Brito Nunes Diniz Instituto de Educação Superior da Paraíba
Dedico este trabalho a todos
aqueles que acreditaram e
contribuíram para sua realização, em
especial ao meu Pai (in memorian),
minha Esposa e filho, família e
amigos.
AGRADECIMENTOS
Agradeço primeiramente a Deus, por ser meu ponto de apoio nos momentos
mais difíceis de minha vida e por me dar a fé necessária para a conclusão de uma
etapa tão importante para mim.
Ao meu Pai, Francisco (in memorian), minha grande inspiração na busca de
ser uma pessoa melhor a cada dia. Meu grande ídolo. Que saudades.
À minha Família, por todos os ensinamentos, amor, paciência e sacrifícios
incondicionais.
À minha esposa Callyandra e meu Filho Gabriel, pelo carinho sempre na hora
certa. Pela compreensão sempre que tiveram que dividir minha atenção com o
desenvolvimento deste trabalho. E por me desviar do meu trabalho sempre nas
horas necessárias.
A Manoel Messias e Crestana da Energisa, por confiar em minha capacidade,
pelo apoio e reconhecimento nos momentos de entusiasmo.
Ao meu professor e orientador Gustavo Wagner, pela paciência, incentivo e
apoio para que este trabalho se concretizasse.
A todos os meus amigo pelo incentivo nos momentos de cansaço e desânimo,
pelo apoio.
“Julgue seu sucesso pelas coisas que
você teve que renunciar para conseguir”.
Dalai Lama
RESUMO
Este trabalho propõe a criação de um sistema para otimização de rotas de
veículos visando auxiliar o despacho de ordens de serviço emergenciais, comerciais
e técnicas da ENERGISA, empresa que atua no segmento de distribuição e
fornecimento de energia elétrica. Empresas distribuidoras de energia elétrica
realizam muitos atendimentos de ordens de serviço. As rotas a serem seguidas
pelos veículos normalmente são definidas em curto prazo pelos operadores que nem
sempre conseguem tomar a melhor decisão devido às informações imprecisas. A
otimização de rotas é um problema bastante complexo pelas inúmeras combinações
possíveis que resultariam em diversas soluções. Escolhas de rotas erradas resultam
num gasto excessivo de combustível e tempo, causando custos desnecessários
para a empresa e insatisfação por parte do cliente. Utilizando aplicação de meta-
heurística dada a sua eficiência na resolução de problemas combinatórios e mapas
para problema de roteirização de veículos, esse sistema tem como objetivo principal
auxiliar a gestão operacional referente a despacho de ordens de serviço para as
equipes e agilizar as visitas, minimizando a distância percorrida entre cada
atendimento, reduzindo tempo e custos operacionais. Foi utilizado o algoritmo ACO
de otimização baseado no comportamento de colônia de formigas. ACO, do inglês
Ant Colony Otimization, é uma metaheurística recente para solução de problemas
combinatórios. É baseada na construção de soluções e foi inspirada na observação
do comportamento das formigas em busca de alimentos. Foram realizados testes
considerando lotes de ordens de serviços que foram preparados com diferentes
graus de dificuldades de acordo com a quantidade de ordem de serviços. Após
simulações de alguns cenários de teste e de análise de seus resultados foi possível
concluir que a aplicação da metaheurística ACO aplicada a roteirização é realmente
capaz de chegar a uma solução próxima da ótima.
Palavras-chave: roteirização, metaheurística, ACO, ant colony, mapas, ordens de
serviço
ABSTRACT
This document proposes the creation of a system for optimization of vehicle
routing in order to assist in the delivery of emergency service orders, commercial and
technical of the ENERGISA Company. It operates in the distribution and supply of
electricity. Electricity distribution companies execute a lot of service orders. The
routes of vehicles are often defined by traders on short-term who can not always
make the best decision due to inaccurate information. The route optimization is a
very complex problem due to many possible combinations that result in various
solutions. Wrong choices of routes result in excessive waste of fuel and time, causing
unnecessary costs to business and customer dissatisfaction. Using the application of
meta-heuristics due to their efficiency in solving combinatorial problems and maps for
vehicle routing problem, this system has as main purpose to assist the operational
management regarding the delivery of service orders for the teams and expedite
requests, minimizing the distance between each call, reducing time and operational
costs. We used the ACO optimization algorithm based on the behavior of ant colony.
ACO, Ant Colony Otimization in English, is a recent metaheuristic for solving
combinatorial problems. It is based on elaboration solutions and was inspired by
observing the behavior of ants looking for food. There was done tests considering
lots of service orders that were prepared with different degrees of difficulty according
to amount of service orders. After some simulations of test scenarios and analyzing
their results, there was concluded the application of ACO metaheuristic applied to the
routing is actually able to reach a solution close to optimal.
Key-words: routing, metaheuristic, ACO, ant colony , maps, service orders
LISTA DE GRÁFICOS
Gráfico 1: Comparativo de Resultados de Instâncias de testes ................................ 41
Gráfico 2: Comparativo do ganho com ACO x distância média entre ordens de
serviço ....................................................................................................................... 42
Gráfico 3: Comparativo da duração do cálculo pelo método de obtenção da
distância. ................................................................................................................... 44
LISTA DE FIGURAS
Figura 1: Exemplo de roteirização ruim e boa (BALLOU, 2001)................................ 17
Figura 2: Cenário de um Problema de Roteamento de Veículos Dinâmico. ............. 20
Figura 3: Comportamento das formigas na busca de alimento ................................. 26
Figura 4: Pseudo-código do Ant Colony System ....................................................... 33
Figura 5: Fluxo de Comunicação entre o veículo e o centro de despacho ................ 36
Figura 6: Arquitetura em Camadas utilizada no projeto ............................................ 37
Figura 7: Pseudo-código do algoritmo Ant Colony System implementado na solução
.................................................................................................................................. 38
Figura 8: Exemplo de problema na roteirização por serviço de mapa desatualizado 43
Figura 9: Modelo de arquitetura sistêmica sugerida .................................................. 46
Figura 10: Interface do Software implementado ........................................................ 47
LISTA DE SIGLAS
3G - Third generation
ACO - Ant Colony Optimization
ACS – Ant Colony System
API - Application Programming Interface
AS – Ant System
CAD - Computer-Aided design
DLL - Dynamic-link library
EDGE - Enhanced Data Rates for GSM Evolution
ETL - Extract Transform Load
GPRS - General Packet Radio Service
GPS - Global Positioning System
PRV – Problema de Roteirização de Veículo
PRVDJT – Problema de roteirização de Veiculo Dinâmica com Janela de Tempo
PRVJT – Problema de Roteirização de Veiculo com Janela de Tempo
SGBD – Sistema Gerenciador de Banco de Dados
SQL - Structured Query Language
TSP - Traveling Salesman Problem
UI – User Interface
WAN - Wide Area Network
WPF - Windows Presentation Foundation
XAML - Extensible Application Markup Language
SUMÁRIO
1 INTRODUÇÃO ................................................................................................... 12
1.1 OBJETIVO GERAL ......................................................................................... 13
2 JUSTIFICATIVA ................................................................................................ 13
3 METODOLOGIA ................................................................................................ 15
4 FUNDAMENTAÇÃO TEÓRICA ......................................................................... 16
4.1 O PROBLEMA DE DESPACHO DE ORDENS DE SERVIÇO ........................ 16
4.2 O PROBLEMA DE ROTEIRIZAÇÃO DE VEÍCULOS ..................................... 18
5 METAHEURÍSTICA ANT COLONY OTIMIZATION .......................................... 24
5.1 INTRODUÇÃO ............................................................................................... 24
5.2 ANT COLONY OTIMIZATION ........................................................................ 24
5.3 INSPIRAÇÃO BIOLÓGICA ............................................................................. 25
5.4 ANT SYSTEM - AS ......................................................................................... 29
5.5 ANT COLONY SYSTEM - ACS ...................................................................... 31
6 MODELAGEM DO PROBLEMA ........................................................................ 33
6.1 INFORMAÇÕES GEOGRÁFICAS .................................................................. 34
6.2 COMUNICAÇÃO E POSICIONAMENTO ....................................................... 35
7 DESENVOLVIMENTO DA SOLUÇÃO .............................................................. 36
7.1 ARQUITETURA DA SOLUÇÃO ..................................................................... 36
7.2 IMPLEMENTAÇÃO DA SOLUÇÃO ................................................................ 37
8 RESULTADOS .................................................................................................. 39
8.1 DESCRIÇÃO DOS CENÁRIOS DE TESTE ................................................... 39
9 CONCLUSÃO .................................................................................................... 48
9.1 TRABALHOS FUTUROS ................................................................................ 49
REFERÊNCIAS ......................................................................................................... 50
12
1 INTRODUÇÃO
Em empresas que atuam no segmento de distribuição e fornecimento de
energia elétrica, os atendimentos das ordens de serviços emergenciais, comerciais e
técnicos representam um grande desafio quando se observa a necessidade de
manter a produtividade das equipes em padrões aceitáveis e com baixo custo
operacional.
Isso porque as incidências das ocorrências e solicitações de serviços por
consumidores são distribuídas aleatoriamente em tempo e espaço, dificultando o
processo de despacho de equipes e atendimento dentro de um prazo desejado.
A natureza dinâmica destas ocorrências no decorrer do dia gera alterações de
rotas não planejadas previamente, provocando aumento significativo no tempo de
atendimento, devido à distância dos trajetos e consequentemente aumento de
custos operacionais como combustíveis e manutenção do veículo.
Além disso, muitas empresas ficam a mercê da experiência de seus
funcionários e motoristas, que nem sempre conhecem o melhor caminho ou trajeto
no deslocamento entre um determinado local a outro da rota, além de desconhecer a
situação atual das vias de trânsito, que podem estar obstruídas por manutenção,
bloqueadas por algum acidente ou engarrafadas, comprometendo assim o tempo de
atendimento planejado.
O presente trabalho propõe a criação de um sistema dinâmico de
gerenciamento das rotas para auxílio e otimização de despacho de ordens de
serviço emergenciais, comerciais e técnicas de acordo com as melhores rotas de
atendimento, considerando critérios tais como prioridade, prazo, localização, tipo de
equipe e disponibilidade, utilizando metaheurística devido à sua eficiência na
resolução de problemas combinatórios e mapas geográficos para problema de
roteirização de veículos.
13
A organização deste trabalho é dividida nas seguintes seções. Na seção 2,
inicia-se com o objetivo geral e a justificativa para o problema o proposto a ser
resolvido, delimitando os seus parâmetros. As seções que se sucedem demonstram:
a metodologia utilizada na solução do problema; a fundamentação teórica; a
modelagem do problema e os resultados obtidos nas simulações expondo os pontos
propostos positivos, como também os negativos, e serão expostas as conclusões.
1.1 OBJETIVO GERAL
Este trabalho tem como objetivo geral apresentar uma proposta
computacional utilizando metaheurística e mapas para otimização de rotas em
distribuidora de energia elétrica visando aumentar a produtividade das equipes com
a redução do tempo de deslocamento, maior disponibilidade e consequentemente
reduzir os custos operacionais.
2 JUSTIFICATIVA
Segundo (BALLOU, 1998) a logística participa de pelo menos um terço total
das despesas de uma empresa, e estes custos podem variar de acordo com o
tempo de viagem entre o atendimento de um cliente e outro, ou o atendimento de
uma nova demanda inesperada. Na Energisa estes custos, estão relacionados ao
deslocamento para o atendimento de ocorrências e/ou solicitações de serviço pelos
clientes. Uma eficiente operação logística tem impacto relevante no resultado da
empresa. Essa eficiência é obtida através da determinação de boas rotas para uma
frota de veículos.
14
Desta forma, o aumento da produtividade na roteirização de veículos é
fundamental para redução de custos e aumento da produtividade na execução dos
serviços em empresas distribuidoras de energia elétrica.
Segundo Araújo (2008) a maioria dos problemas de roteirização de veículos
encontrados apresenta dificuldades na resolução por métodos exatos. Eles são
resolvidos por processos heurísticos, que buscam melhores respostas em tempos
computacionais viáveis.
O Problema de Roteirização de Veículos (PRV) consiste basicamente em
definir um conjunto de pontos a serem percorrido por um ou mais veículos, para
atender um determinado conjunto de clientes geograficamente dispersos, com
distâncias e custos diferentes associados a suas conexões. Estes clientes estão
conectados entre si através de trajetos ou rotas, para cada par de clientes há um ou
mais trajetos que os ligam. O problema consiste, então, em encontrar o menor
caminho para percorrer todos os clientes em uma única vez. O Conjunto de todos os
caminhos possíveis a serem percorrido, define o espaço da busca para este
problema. Quando o conjunto é pequeno se torna fácil de resolver, testando todas
as possibilidades. Mas em conjuntos maiores a dificuldade cresce exponencialmente
devido as inúmeras possibilidades combinatórias. Daí a necessidade de estratégias
computacionais de baixo custo, mais que possam encontrar soluções ótimas ou
próximas delas para este tipo de problema.
Os Algoritmos Genéticos descrito por Holland (1975), inspirados pela biologia
evolutiva, que se baseia na observação da evolução das espécies, são muito
utilizados na resolução de problemas do tipo caixeiro-viajante e de roteirização de
veículos com janela de tempo. Porém, para problemas de roteirização em veículos
sem janelas de tempo, os algoritmos genéticos não vinham apresentando bons
resultados se comparados com algoritmos baseados em meta-heurística
(TAILLARD, 1994).
Atualmente, existem vários estudos publicados que propõem a resolução de
diferentes tipos de PRV, dentre eles, os modelos definidos por Dorigo e Colorni
(1996) que utilizam metaheurística baseadas na observação de fenômenos físicos e
15
biológicos e de inteligência artificial que tem apresentado melhores resultados
quando aplicados em problemas reais.
Propõe-se neste trabalho a construção de uma solução sistêmica utilizando
meta-heurística e mapas para gerenciamento de rotas dinâmicas, otimizando o
despacho de ordens de serviços que dependam de uma roteirização de veículos
eficiente.
3 METODOLOGIA
A princípio foi realizado um levantamento teórico acerca do tema através de
livros, artigos científicos e sites da internet, com a finalidade de obter informações
sobre os estudos existentes na área e fundamentar o presente trabalho.
Para a realização do estudo, foi implementado um protótipo de um sistema
que se comunica com o sistema de controle de Ordens de Serviço da
concessionária de energia elétrica ENERGISA. O sistema computacional foi
desenvolvido utilizando linguagem de programação C#.NET para cálculo da menor
distância. Para armazenamento das informações de rotas foi utilizado sistema
gerenciador de banco de dados SQL Server.
A linguagem de programação C# foi escolhida por ser orientado a objetos,
possuir frameworks ágeis para desenvolvimento de aplicações para diversas
plataformas, possuir grande conectividade com os principais SGBDs (Sistema
Gerenciador de Banco de Dados) e ser utilizado em outras aplicações da empresa.
Foi implementado um protótipo da aplicação de modo compacto, ou seja, sem
contemplar todos os requisitos funcionais que serão descritos neste projeto, mas
que servirão para verificação dos benefícios obtidos com a roteirização.
Para representação gráfica dos Mapas, foi utilizada uma biblioteca DLL Open
Source chamada GMap.NET. Com ela é possível conectar os principais Mapas
16
disponíveis atualmente no mercado como: Google Maps, Yahoo Maps, Bing Maps,
OpenStreetMap entre outros. Essa biblioteca implementa as principais funções das
APIs (Application Programming Interface) dos mapas. Porém o termo de serviço de
utilização da API do Google Maps, utilizada neste trabalho, exige que a aplicação
implementada com o mapa seja de livre acesso. Caso o uso do sistema seja restrito,
deve-se utilizar a API Premier.
O sistema foi desenvolvido utilizando componente do Microsoft. NET
Framework 3.5 chamado WPF (Windows Presentation Foundation), que usa uma
linguagem de marcação conhecida como XAML (Extensible Application Markup
Language). Considerado a próxima geração de UI (User Interface), que permite a
criação de aplicações com um grau de personalização extremamente elevado.
4 FUNDAMENTAÇÃO TEÓRICA
4.1 O PROBLEMA DE DESPACHO DE ORDENS DE SERVIÇO
O problema de despacho de ordens de serviço tem como objetivo cumprir um
determinado conjunto de tarefas em um determinado prazo. Este conjunto de tarefas
é dividido em subconjuntos a serem distribuídos para um determinado número de
equipes disponíveis, de acordo com a classificação do tipo de serviço que cada
equipe está apta a executar e sua posição inicial.
Cada tarefa possui características e atributos própria tais como: tipo da tarefa,
localização, prioridade, tempo de atendimento, material necessário, entre outros. Já
a equipe, por sua vez, tem atributos que se referem a sua disponibilidade,
localização, tipo de serviços aptos a executarem, tipo de veículo, material disponível,
velocidade média de deslocamento entre outros. Além disso, deve-se considerar a
área de atuação da equipe.
17
As ordens de serviço devem ser agrupadas de modo a manter as tarefas mais
próximas do centróide (ponto que define o centro geométrico de um objeto) de
agrupamento, reduzindo assim a distância de deslocamento da equipe de um
determinado agrupamento de tarefas.
Na Energisa, o despacho de ordens de serviços, seja ela do tipo Comercial ou
Técnica, é realizado de forma centralizada, através do Centro de Operações de
Serviços. A partir de um conjunto de ordens de serviços disponíveis, o despachante
seleciona uma combinação de tarefas para atender a um determinado conjunto de
clientes, onde o custo seja o menor possível (normalmente distância percorrida ou
tempo de deslocamento). Este conjunto de ordens de serviços agrupadas é
denominado Lote. Ao realizar o despacho do lote de tarefas, atualmente, o sistema
da Energisa transfere os dados para dispositivo móvel do tipo Smartfone (aparelho
celular com sistema operacional e funcionalidades avançadas) da equipe através de
rede de dados wireless (quando a equipe encontra-se na garagem ou sede da
empresa) ou por conexão GPRS/EDGE/3G (quando a equipe encontra-se em
operação). As ordens de serviços transferidas para o dispositivo móvel não seguem
qualquer tipo de ordenação; a seqüência e priorização são realizadas pelo
despachante durante as atividades do dia-a-dia através de rádio, podendo ocorrer
cruzamentos de trajetos conforme ilustrado na Figura 1 abaixo.
Roteirização ruimOs trajetos se cruzam
Roteirização boaNão há cruzamento entre
trajetos
Figura 1: Exemplo de roteirização ruim e boa (BALLOU, 2001).
18
Durante o decorrer do dia, novas demandas são geradas devido às
incidências de ocorrências ou solicitações de clientes, gerando alterações de rotas
previamente não planejadas e a necessidade de reprogramação das equipes em
operação. Atualmente na ENERGISA, a escolha da equipe para execução da nova
tarefa é baseada apenas em visualização gráfica através de ferramenta CAD (do
inglês, Computer-aided design) e/ou conhecimento de agente de despacho, ou seja,
sem qualquer análise computacional da equipe ideal para atendimento baseado em
tipo da equipe, localização, inter-relações entre as tarefas, e da complexidade
associada a cada uma delas (prioridade, indicadores, prazos etc). Segundo Ballou
(2001) utilizar o raciocínio humano para determinar roteiros já trás resultados
positivos, como por exemplo, evitar que as rotas se cruzem. Entretanto, o aumento
da complexidade como o número de tarefas, restrições de velocidade, sentido das
vias e tempo de parada, passa a exigir modelos computacionais como ferramenta
para aumento da eficácia.
4.2 O PROBLEMA DE ROTEIRIZAÇÃO DE VEÍCULOS
A otimização de rotas em problema de roteirização de veículos é algo
bastante complexo, devido a inúmeras possibilidades de combinações que podem
resultar em diversas soluções. O objetivo é determinar um conjunto de rotas ideais,
para uma determinada frota de veículos, de menor custo, que atenda a um conjunto
de tarefas, respeitando as restrições operacionais definidas para cada problema, tais
como tipo do serviço, material, localização, prioridade, prazo, tipo de equipe e
transporte.
O termo roteirização (equivalente ao inglês, “routing”), apesar de não
encontrado em todos os dicionários de língua portuguesa, é definido como o
processo para a determinação de um ou mais roteiros ou seqüências de paradas a
serem cumpridos, com o objetivo de visitar um conjunto de pontos distintos
geograficamente e pré-determinados (CUNHA, 2000).
19
A roteirização segundo Assad (1988) apud Cunha:
“consiste em uma das histórias de grande sucesso da Pesquisa
Operacional nas últimas décadas, que pode ser medido pelo expressivo
número de artigos que vêm sendo publicados ao longo dos anos na
literatura especializada, incluindo os anais de congressos da ANPET
(Associação Nacional de Pesquisa e Ensino em Transportes)”. (p2)
O primeiro problema de roteirização a ser estudado foi o problema do caixeiro
viajante (no inglês “Travel Salesman Problem” ou TSP), que consiste em estabelecer
qual a melhor rota ou sequência de cidades a ser feita por um vendedor, onde o
mesmo deve percorrer a menor distância possível e assegurando que cada cidade
seja visitada exatamente uma única vez.
Desde então, restrições vem sendo adicionadas ao problema do caixeiro
viajante, com o objetivo de representar os diferentes tipos de problemas que
envolvem a definição de roteiros para pessoas e veículos. Muitas vezes problemas
do tipo caixeiro viajante podem ser vistos como problemas de múltiplos caixeiros
viajantes, com restrições adicionais de capacidade e outras restrições que depende
de cada aplicação (CUNHA, 2006).
O problema de roteirização de veículos pode ser classificado basicamente em
dois tipos: Estáticos e Dinâmicos. No problema estático, conhecido como Problema
de Roteamento de Veículos com Janelas de Tempo (PRVJT), todos os dados
relativo aos clientes são conhecido antes das rotas serem construídas e nenhuma
mudança é realizada após a fase de roteamento dos veículos.
O desenvolvimento de novas tecnologias de informações e o avanço nas
telecomunicações vem exigindo que as empresas revisem os seus modelos de
distribuição. Recentes avanços na comunicação permitem que novas tarefas sejam
processadas em tempo real, geralmente enquanto as rotas já estão sendo
executadas, e novas informações podem ser obtidas durante a operação das
equipes como: tempo de parada, veículo quebrado ou atrasado, situação das vias
etc.
20
Com isso, uma classe de problema não muito explorada vem crescendo,
conhecida como Problemas de Roteamento de Veículos Dinâmico com Janelas de
Tempo (PRVDJT). No problema Dinâmico as rotas previamente planejadas podem
ser alteradas durante a operação dos veículos mediante o surgimento de novas
tarefas. De certa forma, pode ser visto como um conjunto de problemas estáticos a
serem resolvidos durante a operação dos veículos (PSARAFTIS, 1995).
4.2.1 Problema de Roteamento Dinâmico
No PRVDJT, os veículos em operação podem sofrer uma reprogramação em
tempo real, para atender a um novo conjunto de tarefas com suas respectivas
características, de tal modo que o custo seja o menor possível (geralmente a
distância percorrida ou tempo de deslocamento). Além disso, algumas requisições
dos clientes podem ser conhecidas previamente, por exemplo, antes da saída dos
veículos da garagem. (RIBEIRO; LORENA, 2005, p2)
A natureza dinâmica das novas solicitações de serviços que surgem no
decorrer do dia faz-se necessário que seja realizada a reprogramação dos veículos
que estão em operação. No momento da reprogramação das rotas, esse problema
pode ser visto como um problema estático (PRVJT) a ser resolvido.
Garagem
Rota 1 Rota 2
Posição Atual do Veículo
Rota Planejada
Novo segmento de rota
Requisição programada
Nova requisição
Requisição atendida
Figura 2: Cenário de um Problema de Roteamento de Veículos Dinâmico (RIBEIRO; LORENA, 2005)
21
A Figura 2 mostra um problema simples de roteirização dinâmica de veículos.
No exemplo, dois veículos partem para atender um conjunto de rotas previamente
existentes no qual cada um inicia na posição atual do veículo e ao término retornam
para a garagem. Considera-se no exemplo que os veículos estão capacitados para
atender tanto as requisições programadas quanto novas requisições. As requisições
previamente solicitadas e programadas são representadas pelos círculos negros,
enquanto as novas requisições são representadas pelos círculos brancos.
As linhas sólidas representam as duas rotas que o despachante planejou para
os veículos. A linha sólida de espessura mais grossa representa a posição atual do
veículo no momento que novas requisições são recebidas.
No problema tratado neste trabalho, parte das ordens de serviço é conhecida
previamente, os quais são utilizados para roteirização de um determinado conjunto
de rotas definidas inicialmente. No decorrer do dia, novas ordens de serviço que
entram no sistema são atribuídas a equipes que estão em operação, desta forma as
rotas podem sofrer reprogramação em tempo real, para atender um novo conjunto
de ordens de serviço, de tal modo que o custo baseado na menor distância
percorrida ou tempo de viajem seja o menor possível.
Para que as tarefas não programadas possam ser atendidas no mesmo dia
da solicitação, é necessário definir um tempo limite de entrada de novas solicitações
para a janela atual de operação, para que as ordens de serviços geradas após o
tempo limite sejam colocadas para o próximo dia de operação. Ou seja, os veículos
que já se encontram em operação têm conhecimento prévio sobre a localização das
novas tarefas (MONTEMANNI; GAMBARDELLA; DONATI, 2003).
Considerou-se que os veículos que já estão em operação não precisam
retornar a Garagem da ENERGISA para processar novas requisições. Após a
reprogramação das rotas, o sistema de despacho de ordens de serviço deverá se
comunicar com o dispositivo móvel instalado no veículo e atualizar a sequência dos
serviços que deverão ser atendidos. Este dispositivo móvel, por sua vez, está
equipado com sistema GPS e conexão de dados móvel (GSM/GPRS/HSPDA/3G).
22
Embora um problema de roteirização de veículos tenha como objetivo final
minimizar os custos, seus atributos possuem a capacidade de assumir diferentes
características. Assad (1988) apud Cunha sugere um conjunto de elementos para a
caracterização de problemas de roteirização, que podem servir de base para
aquisição ou implementação de um software de roteirização. Como exemplo tem-se:
Natureza e características do atendimento:
- somente coletas, somente entregas ou coletas e entregas;
- único produto ou múltiplos produtos;
- atendimento parcial ou total;
- demanda homogênea ou heterogênea , conhecida a priori ou
de forma dinâmica;
- necessidade de programação das visitas;
Frota de veículos:
- diferentes capacidades (frota heterogênea) ou mesma
capacidade (frota homogênea);
- restrições quanto ao limite de capacidade (peso ou volume);
- vinculo entre o veículo e a sua garagem;
- compatibilidade entre o veículo e os produtos;
- podem retornar ou não para o reabastecimento;
- frota fixa ou frota variável;
Requisitos de pessoal:
- duração da jornada de trabalho;
- opção e número de horas extras permitidas;
- numero fixo ou variável de equipes;
- locais e horários de inicio e término das jornadas de trabalho
das equipes;
- tempo de intervalo para refeições e outros tipos de parada
(abastecimento, descanso, por exemplo);
- possibilidade de viagens com duração superior a jornada de
trabalho;
Foram consideradas neste trabalho algumas variantes para o problema de
roteirização de veículos. Elas foram classificadas em quatro categorias, conforme
23
notação adotada por Silva (2007): função e objetivo, restrições, variáveis de decisão
e hipóteses/recursos, e/ou características do problema.
Diante da grande diversidade de fatores e condicionantes que aparecem em
problemas de roteirização, são necessárias estratégias matemáticas eficazes e
robustas o suficiente para serem aplicadas nos mais diferentes problemas, para que
possam ser atingidas soluções de qualidade, e para que sejam supridas as
demandas particulares de cada problema originado de situações reais.
Segundo Cunha (2000, p. 13), um fato importante a ser destacado é que,
embora a maioria dos modelos matemáticos que se propõem a otimização de
roteiros, na prática nem sempre conseguem levar em consideração todos os custos
operacionais, que compreende não só os custos variáveis como a distância
percorrida, mas também os custos fixos dos veículos e os custos de horários com as
equipes.
De acordo com Laporte (1992), as estratégias de solução de problemas de
roteirização de veículos podem ser divididas em algoritmos exatos e soluções
heurísticas. De acordo com Cunha (2006), citado por Araújo (2008, p. 20) “as meta-
heurísticas podem ser definidas como as estratégias e técnicas mais recentes e
avançadas, que guiam outras heurísticas a fim de encontrar soluções melhores,
ultrapassando o ponto de parada das heurísticas tradicionais.”
Muitas pesquisas estão sendo realizadas utilizando metaheurística na
resolução do PRVDJT. Propõe-se neste trabalho uma solução utilizando meta-
heurística baseada no comportamento de colônia de formigas, que empregam um
processo adaptativo e paralelo de busca de soluções em problemas complexos, o
que o torna uma técnica muito útil em problemas de otimização.
24
5 METAHEURÍSTICA ANT COLONY OTIMIZATION
5.1 INTRODUÇÃO
A palavra heurística, de origem da língua grega “heurisken”, significa procurar
algo, descobrir, encontrar; enquanto “meta” significa além de, em um nível superior.
De forma genérica, metaheurística pode ser definida como um processo inteligente
na busca por melhores soluções. A idéia principal por trás das metaheurísticas é a
exploração do espaço da busca de maneira eficiente, encontrando ótimas soluções
sem ter de explorar excessivamente o espaço da busca. Utilizam combinações de
escolhas aleatórias e informações históricas dos resultados anteriores para se
guiarem e realizar suas buscas.
Pesquisadores de diferentes áreas têm sido inspirados na observação da
natureza e a evolução das espécies para desenvolver e aperfeiçoar métodos
heurísticos de otimização. Muitas pesquisas vêm sendo realizada baseada no
comportamento de colônia de insetos. Esta nova área de pesquisa conhecida como
Inteligência Coletiva ou Swarm Intelligence baseia-se na aplicação do conhecimento
adquirido acerca de como as colônias de insetos realizam atividades coletivas no
desenvolvimento de novos algoritmos de simulação e otimização (BONABEAU;
DORIGO; THERAULAZ, 1999).
5.2 ANT COLONY OTIMIZATION
Neste trabalho foi utilizado um algoritmo de otimização baseado no
comportamento de colônia de formigas (ACO, do inglês ant colony otimization). O
ACO (do inglês Ant Colony Otimization) foi desenvolvido por Dorigo (1991), é uma
25
meta-heurística recente para solução de problemas combinatórios. É baseada na
construção de soluções e foi inspirada na observação do comportamento das
formigas em busca de alimentos.
5.3 INSPIRAÇÃO BIOLÓGICA
As formigas são capazes de criar caminhos otimizados entre a sua colônia e
uma fonte de alimento sem utilizar elementos visuais. Elas utilizam uma forma de
comunicação indireta, onde um indivíduo da colônia modifica de alguma forma o
ambiente ao ser redor, e algum tempo depois, outro indivíduo responde a esta
modificação. Esta comunicação indireta entre dois indivíduos permite que seja
encontrado o menor caminho.
Enquanto as formigas se movimentam da colônia até o alimento, elas
depositam no solo uma substância química que produzem chamada de feromônio.
Em cada caminho é formada uma trilha de feromônios. Desta forma, num primeiro
instante, várias trilhas podem ser geradas. Outras formigas percebem a presença
desta substância no solo e de um modo simplificado, a tendência é a formiga
escolher a trilha com maior concentração de feromônios. Com o tempo, o feromônio
depositado no solo passa a evaporar, assim, quanto maior o tempo que uma formiga
fica sem passar em um ponto, menor será a quantidade de feromônio no mesmo.
As primeiras formigas a saírem da colônia se movimentam de forma aleatória.
As que saem posteriormente têm sua escolha de rota a seguir influenciada pelas
diferentes quantidades de feromônios depositados previamente. As rotas com maior
quantidade de feromônios possuem maior probabilidade de serem escolhidas. Desta
forma, as rotas são reforçadas com mais quantidade de feromônios e mais formigas
seguem este caminho.
26
Na Figura 3 é demonstrado um exemplo do comportamento das formigas à
procura de uma fonte de alimento.
Figura 3: Comportamento das formigas na busca de alimento (OLIVEIRA, 2007).
Inicialmente (Figura 3(a)), as formigas se movimentam em linha reta seguindo
a trilha de feromônio que liga o ninho a uma fonte de alimento. Na Figura 3(b) é
demonstrado o surgimento de um obstáculo que interrompe o trajeto anterior das
formigas e cria dois caminhos distintos, um maior que o outro até a fonte de
alimento. O grupo de formigas que primeiro chega ao obstáculo e não consegue
seguir a trilha de feromônio não sabe que caminho seguir e escolhe aleatoriamente
ir pela esquerda ou pela direita (Figura 3(c)). Desta forma, é possível prever que
50% das formigas escolheram ir pela direita e 50% pela esquerda.
As formigas que escolheram o caminho mais curto para contornar o obstáculo
e chegar à fonte de alimento retornam para o seu ninho mais rápido (Figura 3(d)).
Desta forma a trilha que acumula uma maior concentração de feromônio influencia
outras formigas a seguir esta trilha. Assim, as formigas deixam de escolher as trilhas
aleatoriamente e a concentração de feromônio torna-se o parâmetro principal na
decisão da escolha da trilha a seguir.
27
De acordo com Dorigo (1999), os algoritmos baseados no comportamento de
colônia de formigas possuem algumas características que devem ser considerados,
tais como:
Uma colônia de formigas é formada por um conjunto de indivíduos
cooperativos;
As formigas optam por percorrer caminhos com alta concentração de
feromônio;
Cada formiga da colônia deve ser capaz de encontrar uma solução;
Nos caminhos menores (solução de menor custo) existe uma elevada
concentração de feromônio;
Cada formiga utiliza-se apenas de suas próprias informações, além das
informações locais sobre o ponto que visita;
As formigas se comunicam de forma indireta, medida pela trilha de
feromônio;
Ainda segundo Dorigo (1999) as formigas da colônia possuem algumas
características. Cada formiga procura por uma solução possível de realizar e de
menor custo, de acordo com a função de avaliação instituída. Possuem uma
memória que utiliza para armazenar informações sobre o caminho percorrido até o
momento. Esta memória pode ser utilizada para avaliar uma solução encontrada,
refazer o caminho de trás para frente e construir soluções factíveis. Além disso, cada
formiga pode-se deslocar a partir de um determinado nó i para qualquer nó j em sua
vizinhança. Uma formiga k localizada em um nó i pode-se deslocar para um nó j
escolhido, desde que este não tenha sido visitado ainda por nenhuma das demais
formigas. O movimento da formiga é selecionado de acordo com uma regra
probabilística que se baseia em:
i. valores armazenados na estrutura do nó de forma local, definida como
tabela de roteamento da formiga, obtida através da relação entre a
quantidade de feromônio presente em um nó e valores heurísticos;
ii. memória da formiga, que armazena suas decisões passadas;
iii. restrições do problema;
28
Quando as formigas se movem do nó i para o nó j, elas podem atualizar a
quantidade de feromônio presente no arco (i, j). Isto é conhecido como atualização
online passo-a-passo do feromônio. Uma vez que a solução seja construída, a
formiga pode percorrer o mesmo caminho de trás para frente, atualizando os índices
de feromônio nos arcos atravessados. Isto é denominado como atualização online
atrasada do feromônio. Após a formiga ter concluído a construção da solução e
atualizado os índices de feromônio, ela morre, liberando recursos.
Como já foi dito, a metaheurística ACO baseia-se em um processo de
construção de soluções. É também baseada em população, quando ocorre a
cooperação entre as formigas. Os métodos de busca populacionais se caracterizam
por armazenar um conjunto de boas soluções, que são combinadas de diferentes
formas. Estas combinações têm como objetivo, agrupar os bons atributos presentes
na melhor solução e gerar uma nova, possivelmente melhor que as demais. Umas
das principais inovações do ACO é a utilização de formigas artificiais, que a cada
caminho percorrido, depositam certa quantidade de feromônio que irá influenciar na
decisão das formigas que vierem em seguida. Baseado na influencia deste
feromônio o ACO busca obter a construção de soluções, com efeito, tanto de
diversificação quanto de intensificação.
O processo de construção de uma solução ACO é realizado levando em
consideração informações heurísticas e informações de feromônio, que é alterada
dinamicamente para refletir a experiência da formiga. Inicialmente, as formigas
artificiais são colocadas em pontos aleatoriamente. Quando a formiga dá um passo
na construção da solução, ela faz um cálculo probabilístico baseada na quantidade
de feromônio depositada nas arestas que ligam a sua posição atual até posições
ainda não visitadas e na informação heurística relacionada a estas arestas.
Existem algumas variações do ACO, a principal diferença entre elas é a forma
de como fazem o incremento do feromônio. Neste trabalho será utilizado o ACS (Ant
Colony System), que consiste num melhoramento do Ant System (AS), que é o
primeiro exemplo de algoritmo ACO, desenvolvido por Marco Dorigo, Vitorio
Maniezzo e Alberto Colorni em 1996 que serviu como ponto de partida na
implementação de diversos outros algoritmos inspirados no comportamento de
formigas.
29
5.4 ANT SYSTEM - AS
No Ant System – AS, durante uma iteração do algoritmo, cada formiga
artificial k em um conjunto de m formigas constrói um caminho percorrendo n = N
passos, onde n representa o número do nó atual (um cliente por exemplo) e N o total
de nós (total de clientes) a visitar. As iterações são representadas por t, onde t
pertence ao intervalo entre 1 e o número máximo de iterações, tmax, definido pelo
usuário. Para cada formiga k, a escolha de movimento do nó i para o nó j na iteração
t é baseada em uma função probabilística que depende de três fatores:
i. se o nó j já foi visitado pela formiga k. Para que não ocorram
movimentos inválidos, a formiga tem uma memória (denominada lista
tabu) que armazena os nós visitados por ela. É representada pelo
conjunto kiJ . Esse conjunto contém todos os nós que a formiga k,
estando no nó i, ainda tem de visitar. Inicialmente, kiJ contém todos os
nós, exceto o nó de partida que a formiga k inicia sua rota. Quando um
nó i é visitado pela formiga k, ele é retirado do conjunto kiJ para evitar
uma nova visita. Desta forma, quando a formiga constrói uma solução,
ela é forçada a evitar que um mesmo nó (um cliente, por exemplo) seja
visitado duas ou mais vezes até que a solução esteja completa;
ii. atratividade ij ou parâmetro visibilidade, definido neste problema
como o inverso da distância. Expressa o desejo a priori de se
movimentar do nó j, a partir do nó i;
iii. rastro de feromônio (t)ijτ presente nos caminhos (arestas) que
conectam os nós. As formigas artificiais, assim como as reais, optam
na maioria dos casos, pela escolha determinística do trajeto, a partir da
maior concentração de feromônio e maior atratividade. A trilha de
feromônio é atualizada a cada iteração. Quando a formiga percorre
todo um caminho (nós), ela incrementa a taxa de feromônio em cada
aresta (i,j) que ela visitou. A probabilidade de escolha de um caminho é
30
proporcional ao rastro e à atratividade do feromônio. O rastro de
feromônio pode ser vista como um indicador da aprendizagem ao se
escolher um nó j, a partir do nó i.
A escolha do caminho a ser seguido pela formiga artificial é feita de acordo
com a seguinte expressão:
kiJj se
kiJj se
t
t
tp kiJu iuiu
ijij
k
ij
,0
,)(
)(
)(
(1)
Essa expressão é apresentada em Dorigo (1991). Onde:
α e β: são parâmetros ajustáveis que controlam a intensidade do rastro
de feromônio τij(t) e a atratividade, ij . Estão situados na faixa [0, 1] e
definidos de acordo com as particularidades do usuário.
kijp : probabilidade da formiga k mover-se no nó i para o nó j ;
τij : é a quantidade de feromônio associado ao arco ij;
kiJ : memória da formiga k (lista tabu);
u : nó sucessível de ser escolhido pela formiga k;
Ao término de cada iteração, uma taxa de evaporação é associada ao
feromônio. Esta ação é responsável por reduzir a quantidade de feromônio em cada
arco. Este procedimento busca evitar que as formigas venham a se vincular em
ótimos locais (estagnação), diminuindo, assim, a probabilidade de escolha de arcos
que foram utilizados recentemente. A expressão de atualização do feromônio no
algoritmo Ant System apresentada em (Dorigo, 1991) e é dada por:
ijijij tt )()1()( (2)
31
Nesta expressão, tem-se que:
ρ : é o coeficiente de redução da quantidade de feromônio no caminho.
Seus valores estão no intervalo de [0,1];
(t)ijτ : quantidade de feromônio associado ao arco (i,j) na interação t;
ijΔτ : variação da intensidade do feromônio no arco (i,j) da interação t;
5.5 ANT COLONY SYSTEM - ACS
No Ant Colony System - ACS os feromônios são atualizados a cada interação
da fase de construção da solução. Esta ação é conhecida como atualização local de
feromônios. Além da atualização local, o ACS realiza uma atualização global de
feromônio, a qual é executada a cada fase de atualização, e é feita somente pela
formiga que construiu a melhor solução até o momento. Além disso, ACS utiliza
critério de seleção de soluções mais agressivo, foi proposto para competir com
outros algoritmos populacionais e problemas envolvendo mais de um objetivo
(CARVALHO; RAMOS, 2007).
No ACS foi introduzido um parâmetro adicional q0, responsável por controlar a
construção das soluções, definindo a probabilidade de ser utilizada uma nova
fórmula para a decisão de qual aresta cada formiga deve seguir na fase de
construção conforme expressão abaixo:
contrário caso 1, expressão
qq setps
ijij
k
ij 0,)( (3)
Um número aleatório q é gerado a cada interação e comparado a um
parâmetro q0. Se o valor de q for menor que o parâmetro q0, o algoritmo funcionará
de forma gulosa, ou seja, de acordo com a menor distância. Caso contrário, se o
32
valor de q for maior que q0, a geração da solução será feita de forma probabilística,
utilizando a mesma regra de decisão do algoritmo AS segundo expressão (1).
Outra diferença do ACS em relação ao AS, é que no AS a atualização do
feromônio só é feita após a conclusão da etapa de construção da solução, já no ACS
o processo de deposito e evaporação do feromônio foi modificado, de modo que a
matriz de feromônio seja atualizada de forma global e local. A cada interação da fase
de construção da solução as formigas atualizam o feromônio da aresta da qual
acabaram de atravessar. Conhecida como atualização local, esta foi inserida no
algoritmo para contrabalancear a regra de decisão um tanto quanto gulosa
mencionada acima.
Além da atualização local, o ACS inclui uma atualização global de feromônio
para privilegiar apenas os caminhos pertencentes à melhor solução global, ou seja,
a cada iteração, após todas as formigas terem gerado suas soluções, apenas a
formiga que gerou a melhor solução desde o início do algoritmo irá depositar
feromônio. Segundo Dorigo e Gambardella (1997), a atualização global do ACS evita
a lenta tendência dos resultados, centralizando as buscas na vizinhança da melhor
solução. A atualização global do feromônio é feita pela expressão:
bestsolbestcost
ijijij ,)1(
(4)
onde:
- ijτ : quantidade de feromônio associada ao arco (i,j);
- : taxa de evaporação de feromônio. Valores no intervalo de [0,1];
- bestcost: menor distância percorrida, calculada desde o inicio da aplicação do
algoritmo;
- bestsol: melhor solução calculada desde o inicio da aplicação do algoritmo;
Uma etapa adicional denominado de Daemon Actions pode ser utilizada, de
forma opcional, com o objetivo de auxiliar o processo de tomada de decisões do
ACS em ocasiões como a de ativar um procedimento de busca local ao final de cada
33
iteração ou de depositar uma quantidade extra de feromônio sobre a melhor solução.
Esses são exemplos de decisões que não podem ser tomadas pelas formigas
individualmente. Como caracterizado por Dorigo (1991), a Figura 4 mostra o pseudo-
código do algoritmo Ant Colony System aplicado ao PRV clássico.
Figura 4: Pseudo-código do Ant Colony System
Os algoritmos ACO, em especial o ACS, por sua definição, são capazes de
obter excelentes resultados quando de sua aplicação a Problemas de Roteamento
de Veículos Dinâmicos, mostrando um bom comportamento em relação a variáveis
geradas aleatoriamente. (DORIGO, M.; BIRATTARI, M. e STÜTZLE, T., 2006)
6 MODELAGEM DO PROBLEMA
A otimização de rotas é um problema bastante complexo pelas inúmeras
combinações possíveis que resultariam em diversas soluções. Para
desenvolvimento deste trabalho foi considerado uma única variável de decisão para
otimização de uma rota: a distância. Outros elementos como prioridade, tipo de
serviço, equipe, veículo e carga não foram considerados. A implementação destes
34
elementos possui algumas características e precisarão ser vistas com mais detalhes
em trabalhos futuros.
A solução proposta deste trabalho considera que um veículo parte de um
ponto inicial (garagem) e segue executando ordens de serviços em diferentes pontos
de uma rota, e que, por fim, retorna ao ponto de origem (garagem). O objetivo é
encontrar o melhor caminho possível (menor distância), de forma que todos os
pontos marcados da rota sejam visitados.
Em rotas urbanas a quantidade de combinações possíveis para levar um
veículo de um ponto a outro é muito grande. Dados os inúmeros trajetos possíveis a
serem seguidos, todos levam ao mesmo destino, porém nem todos têm o melhor
custo. Isto porque algumas características do trajeto podem levar a um melhor ou
pior caminho tais como: classificação da via (rodovia, urbana, transição e coletora),
parâmetros de tráfego, limite de velocidade, pedágios, condições das vias etc.
6.1 INFORMAÇÕES GEOGRÁFICAS
Com o avanço dos mapas geográficos online nos últimos anos, muitas dessas
características já se encontram disponíveis. O googlemaps, serviço de mapa online
escolhido para ser utilizado neste trabalho, já contempla informações tais como
sentido da vias, classificação viária, nome das ruas, pontos de interesse entre
outros. Porém, não foram identificadas informações quanto a cronograma de
atualizações destas informações, o que pode acarretar em uma falha na roteirização
de uma rota pelo fato dos dados estarem desatualizadas. Como exemplo dessa
desatualização podemos citar a mudança no sentido de uma via anteriormente dupla
que passou a ser de sentido único. Além deste fator, é fundamental que o serviço de
mapa escolhido seja capaz de processar de forma rápida grande quantidade de
informações geográficas, principalmente para resolver problemas em tempo real.
35
6.2 COMUNICAÇÃO E POSICIONAMENTO
Para um sistema de roteirização, além de equipamentos de posicionamento
como GPS (Global Positioning System) para determinar a posição atual dos
veículos, a comunicação entre o veículo e o centro de despacho de serviços é
essencial para a tomada de decisões e acompanhamento em tempo real das
atividades. O GPS é uma constelação de 24 satélites orbitando a Terra que enviam
constantemente sinais dando as suas posições. A comunicação entre o centro de
despacho de serviço hoje pode ser realizado através de telefonia móvel ou rádio. A
principal diferença entre estas tecnologias é o custo. Um sistema de comunicações
de telefonia móvel é relativamente caro, mas tem baixo custo inicial, porque a
tecnologia de base é fornecida por empresas de telefonia GSM (Global System for
Mobile) que hoje oferece uma área de cobertura quase que total.
Já os custos iniciais em um sistema de comunicação por rádio são
extremamente elevados, porque os equipamentos de transmissão são relativamente
caros e precisam ser instalados em todos os veículos. Além disso, o sistema de
rádio não oferece a mesma flexibilidade em relação ao sistema de comunicações de
telefonia móvel. (LARSEN, 2000).
A Figura 5 abaixo ilustra o fluxo da troca de informação entre o veículo e o
centro de despacho de serviços. Através deste sistema de comunicação o centro de
despacho acompanha a posição real e status do veículo de acordo com informações
de posicionamento atualizadas e transmitidas em um determinado intervalo de
tempo.
36
coordenadas
Posição atual, status, etc
Atualização de rota, novas ordens de serviço.
Comunicação Móvel(GSM/Rádio/Wi-Fi)
GPS Satélite
Centro de Despacho
Despachante
Atualização de rota, novas ordens de serviço.
Posição, status, etc
Veículo em Operação
Figura 5: Fluxo de Comunicação entre o veículo e o centro de despacho
Desta forma, é possível que o centro de despacho envie atualizações de rotas
e acompanhe a execução das ordens de serviço. Um fato que deve ser considerado
para estudos futuros é como o sistema se comportará quando houver falha na
comunicação de um veículo com o centro de despacho ocasionado, por exemplo,
por algum fator meteorológico, falha de sinal ou pelo veículo estar fora da área de
cobertura do sinal móvel.
7 DESENVOLVIMENTO DA SOLUÇÃO
7.1 ARQUITETURA DA SOLUÇÃO
A Arquitetura de uma Solução é a forma como as várias partes do software
são integradas para formar um total coeso. Ou seja, devem-se definir os módulos do
37
software e suas interligações. A solução proposta foi implementada utilizando
arquitetura distribuída em multicamadas, conforme ilustrada na Figura 6 abaixo.
Figura 6: Arquitetura em Camadas utilizada no projeto
Este modelo de arquitetura traz diversos benefícios como a prática do
conceito de “dividir para conquistar”. Este tipo de arquitetura tem como uma
característica importante a independência das camadas, facilitando a substituição de
qualquer uma delas em caso da necessidade de uma reengenharia. Por exemplo, se
a camada de negócio tivesse de ser trocada por outra, não seria necessário
nenhuma modificação nas camadas acima, desde que a nova camada de negócio
que viria a substituir a antiga implementa-se a interface definida.
Compatibilizado a uma arquitetura de quatro camadas bem definidas, foi
utilizado na implementação da solução, padrões de projeto (em inglês: Design
Patterns), visando facilitar a reutilização de código em futuras implementações.
7.2 IMPLEMENTAÇÃO DA SOLUÇÃO
O algoritmos ACS foi implementado utilizando linguagem C#. Foi utilizada uma
matriz N × N para representar o grafo com os valores das distâncias entre uma
ordem de serviço e outra e uma segunda matriz N × N para representar o grafo com
os valores das taxas de feromônio depositado em cada aresta, isto é, entre o
38
caminho de uma ordem de serviço e outra. Cada formiga artificial é uma estrutura de
dados com dois vetores de tamanho N e uma variável numérica. Um vetor é usado
para guardar a solução em construção o e o segundo para marcar as ordens de
serviço ainda não visitadas pela formiga. A variável numérica guarda o custo da
solução construída pela formiga.
Foi implementado uma interface de protótipo para utilização no cenário de
testes. Esta interface não se comunica com os sistemas corporativos de despacho
de ordens de serviço da Energisa. Foi criado um banco de dados específico para o
cenário de teste, e as informações foram copiadas do banco de dados corporativo
através de processo de Extração Transformação Carga – ETL (do inglês, Extract
Transform Load).
No protótipo do cenário de teste, a primeira ordem de serviço executada foi
considerada como o ponto de origem e o ponto final, já que não foi possível verificar
os horários de saída dos veículos da garagem da Energisa. Neste cenário não
haverá reprogramação de rotas, ou seja, todas as ordens de serviço serão
conhecidas previamente. A Figura 7 apresenta o pseudo-código do ACS utilizado na
arquitetura proposta.
Figura 7: Pseudo-código do algoritmo Ant Colony System implementado na solução
Três variaveis condicionais foram utilizadas como condição de parada para
interroper execução do algoritmo ACS. Estas, por sua vez, podem ser
39
parametrizadas para alcançar melhores resultados computacionais de acordo com a
necessidade do usuário, são elas:
“OptimalACO” – Solução Ótima (distância considerada ótima);
“MaxInteration” – Numero máximo de interações permitidas no
algoritmo ACO na busca pela solução ótima;
“MaxDuration” – Tempo maximo permitido para resolução do problema.
Para cada interação realizada no algoritmo ACO na busca da solução do
problema, estas condicionais são verificadas. Caso alguma das condicionais seja
alcançada de acordo com a sua parametrização, o algoritmo é finalizado retornando
a melhor solução encontrada naquele instante.
8 RESULTADOS
Nesta seção serão descritos os experimentos executados para avaliação de
desempenho do algoritmo heurístico ACO (Ant Collony Otimization) que simula o
comportamento das formigas entre a colônia e a fonte de alimento. Como forma de
avaliar o resultado do algoritmo, foi preparado um conjunto de instâncias de testes
contendo lotes de ordens de serviços com diferente grau de dificuldades, através da
variação de quantidade e disposição geográfica.
8.1 DESCRIÇÃO DOS CENÁRIOS DE TESTE
Foi considerado um único veículo para o atendimento das ordens de serviço e
os dados foram comparados com informações em baseline de serviços executados
entre Janeiro à Junho de 2010. Foi considerado que o veículo em operação na rota
40
tem capacidade suficiente para atender a todas as Ordens de Serviço, independente
do seu tipo e características.
As instâncias de teste consideraram cadastro de ordens de serviços do tipo
Comercial executadas na ENERGISA de janeiro a junho de 2010. Devido ao grande
volume de dados, foi realizado um filtro para diminuir o tamanho da amostragem
através de seleção randômica. Foram utilizadas cinco instâncias de teste. Para cada
instância de teste, foram selecionados, de forma aleatória, 10 lotes de ordens de
serviços executadas na localidade de João Pessoa-PB. Cada lote possui uma
determinada quantidade de ordem de serviço definida na instância de teste.
Inicialmente, os parâmetros do ACS foram configurados. Os valores de
parâmetros utilizados foram sugeridos por Dorigo (2004) baseados em seus
experimentos. =0.5, α=1, β=1, m=n. Em seguida, foram definidos os parâmetros
condicionais de interrupção do algoritmo ACS baseados em valores que se
mostraram mais eficazes encontrados na literatura. O primeiro parâmetro é o de
número máximo de interações. Foi definido como 200 (duzentos), números elevados
de iterações aumentam a probabilidade de se chegar a melhores soluções em
função de um maior tempo computacional, porém pode levar a demora
computacional do algoritmo. Neste sentido, o segundo parâmetro, tempo máximo
para duração da solução, foi definido como 60 (sessenta) segundos.
Com o objetivo de validar o funcionamento do protótipo implementado e a
eficiência do algoritmo de otimização de rotas utilizando meta-heurística ACO,
proposto neste trabalho, foram verificados os resultados obtidos após execução de
dez lotes de ordem de serviços para cada instância de teste. Os nomes das
instâncias de testes foram assim definidos: R(n), onde n é o número de ordens de
serviços por lote. Logo, a instância R5, por exemplo, é composta por 10 lotes de 5
ordens de serviços.
No Gráfico 1 abaixo, percebe-se que houve um ganho referente à distância
percorrida entre a rota normal, forma atual utilizada na Energisa para roteirização
dos veículos no atendimento de ordens de serviço e a rota ACO, após a aplicação
do algoritmo de otimização. A média de ganho das cinco instâncias de teste em
41
relação à distância percorrida após a otimização com ACO é de 16% em relação ao
modo normal.
Gráfico 1: Comparativo de Resultados de Instâncias de testes
A principio, analisando os resultados de forma sintética, observou-se que os
melhores resultados médios obtidos estavam em instância de testes com maior
número de ordens de serviços por lote. Isso poderia levar a conclusão que as
melhores soluções dependeriam da quantidade de ordens de serviço. Porém, após
análise dos valores segmentada por lote de ordens de serviço, foi possível verificar
que o desempenho não depende só do número de ordens de serviço, mas da
posição geográfica de cada um deles.
De acordo com Larsen (2000), distribuição espacial da localização geográfica
dos clientes é um dos parâmetros mais importantes no problema de otimização de
roteiros, seja ele estático ou dinâmico. Isto porque à medida que a distância entre
um determinado cliente atendido em direção ao próximo cliente cresce, diminui-se a
atratividade relacionada à distância.
O Gráfico 2 apresenta um comparativo entre o ganho médio % da diferença
entre a distância normal, ou seja, sem aplicação do algoritmo ACO, em relação a
42
distância das soluções encontrada utilizando algoritmo ACO versus a distância
média (km) entre as Ordens de Serviço. É possível verificar que à medida em que a
distância entre as ordens de serviço cresce , o ganho diminui.
Gráfico 2: Comparativo do ganho com ACO x distância média entre ordens de serviço
Neste trabalho, para se obter a distância entre as ordens de serviço foram
realizados inicialmente testes utilizando a distância real do trajeto, obtida através do
serviço de mapa utilizado. Esta distância considera todo o trajeto como: curvas,
desvios, retornos etc. Uma premissa importante neste caso é a necessidade de
atualizações constantes dos mapas no que se refere a sentidos de vias. Mudanças
nos sentidos das vias ou a abertura de novas vias de acesso acontecem com certa
freqüência em grandes centros urbanos, e caso o sistema de mapas não esteja
alinhado a estas mudanças o algoritmo poderia levar a erros periódicos baseados
em informações incoerentes.
A Figura 8 abaixo, ilustra um exemplo de problema que poderia ocorrer por
motivo de serviço de mapa desatualizado. No exemplo, foi solicitado ao serviço de
mapa utilizado (GoogleMaps) a distância e a rota do ponto A, situado a Av. Min.
José Américo de Almeida, na cidade de João Pessoa-PB para o ponto B, situado as
43
margens da BR 230 (coordenadas -7.125775,-34.845363). O trajeto sugerido pelo
serviço de mapa está traçado na Figura 8 na cor azul. A distância retornada pelo
servidor de mapa foi de 7km. Porém, é possível verificar in-loco que existe um
acesso criado interligando estas vias, ilustrado na Figura 8 através da linha de cor
vermelha cuja distância verificada é de apenas 1.2km.
Figura 8: Exemplo de problema na roteirização por serviço de mapa desatualizado
Além de eventos desta natureza que podem levar a tomadas de decisões
erradas pelo algoritmo, um parâmetro importante no problema de otimização é a
duração do cálculo para se obter a melhor solução, já que problemas combinatórios
possuem inúmeras probabilidades a serem verificadas e isto requer recursos de
processamento e tráfego de dados.
Neste cenário observou-se que a duração do cálculo do algoritmo tinha
desempenho afetado devido à necessidade de aguardar reposta do servidor de
mapa através de conexão com a internet. Além disso, dependendo do problema e
da quantidade de itens, observou-se uma grande quantidade de requisições para o
servidor de mapa e tráfego de dados, o que poderia onerar os custos de
comunicação. O Gráfico 3 abaixo demonstra o comparativo dos resultados do tempo
computacionais (em milisegundos) para resolução dos problemas considerando a
44
distância real e linear das rotas obtidas pelo serviço de mapas utilizado versus a
quantidade de ordens de serviço de cada lote testado.
Gráfico 3: Comparativo da duração do cálculo pelo método de obtenção da distância.
É possível observar que no Gráfico 3 que a duração do cálculo pela distância
real (linha vermelha) varia independente do número de ordens de serviço. Esta
variação pode ser devido à falha de conexões com o servidor de mapas com
inúmeros pedidos de requisições ou instabilidade da camada de rede WAN.
Em seguida, foram realizados novos testes do algoritmo ACO, levando em
consideração a distância linear entre dois pontos. Neste caso, a distância é obtida
sem a necessidade de conexão com o servidor de mapa. Ela é obtida através das
coordenadas geográficas dos dois pontos (Latitude e Longitude), porém não
corresponde a distância real do trajeto, pois não considera curvas, desvios, retornos
e obstáculos. Neste cenário o algoritmo ACO apresentar melhor desempenho
computacional conforme demonstrado no Gráfico 3 o resultado que considera o
cenário onde a distância é obtida de forma linear (linha azul).
45
É possivel observar no Gráfico 3 que a duração do cálculo pela distância
linear cresce na medida que a quantidade de ordens de serviço se eleva. Além da
quantidade de ordens de serviço, este resultado também depende da arquitetura
fisica utilizada. Para a verificação dos resultados desta abordagem, os testes foram
executados em um computador com as seguintes configurações: Processador: Inter
Core 2 duo 2.4GHz, com 2 GB de memória RAM e sistema operacional Windows XP
SP3.
A duração do cálculo da solução é um parâmetro importante em soluções que
requer uma resposta em um determinado limite de tempo. Em casos mais
complexos, com grande quantidades de ordens de serviço, o algoritmo poderia levar
um tempo elevado para encontrar a melhor solução devido ao número de
combinações possíveis. Neste caso, o resultado do desempenho do algoritmo
dependerá dos parâmetros fornecidos.
Neste trabalho, optou-se pela utilização da distância linear entre os pontos de
destino pela melhor eficiência no tempo de cálculo das soluções, Porém, este
método pode levar o algoritmo ACO a soluções pouco eficientes, por não considerar
a distância real dos trajetos.
Na maioria das fontes pesquisadas para este trabalho foi possível constatar
que as soluções propostas pelos autores para a otimização de rotas, são baseadas
principalmente em roteirização entre cidades e não em rotas urbanas. Em rotas
urbanas existem inúmeros trajetos possíveis para um mesmo destino dado a
elevada probabilidade de combinações entre as interseções das vias e seus
sentidos, o que já ocasionaria um número ainda mais elevado de probabilidades a
serem verificadas pelo algoritmo ACO para se chegar ao melhor roteiro, e reduzindo
o desempenho da metaheurística. Uma possível solução para este problema seria
dividir as etapas de roteirização entre o centro de despacho e o computador portátil
do veículo.
A Figura 9 abaixo, demonstra a arquitetura proposta de implementação futura
para o sistema, onde parte da roteirização seria executada pelo back-end e parte
pelo front-end. O algoritmo de roteirização do back-end ficaria responsável pela
roteirização utilizando o método de obtenção de distância linear pelo seu melhor
46
desempenho referente ao tempo de cálculo computacional apresentado. Neste
processo as rotas seriam processadas para a obtenção dos melhores agrupamento
de ordens de serviço por equipe baseada na localização geográfica das mesmas e
suas distâncias lineares.
Figura 9: Modelo de arquitetura sistêmica sugerida
Já o algoritmo de roteirização alocado no front-end do computador portátil
instalado nos veículos, ficariam responsáveis pela definição do melhor caminho a
seguir, definidas as ordens de serviços selecionadas na etapa anterior. Este
roteirização funcionaria semelhante ao que se existe hoje em equipamentos de GPS
veicular, que mostrar um determinado roteiro a ser seguido entre uma origem e
destino.
A princípio este trabalho tratou apenas da primeira etapa. Na Figura 10, é
apresentada a interface do software desenvolvido e utilizada no o cenário de teste
do projeto.
47
Figura 10: Interface do Software implementado
A figura mostra o comparativo de um lote de ordens de serviços executadas,
no lado esquerdo, a rota atual percorrida pela empresa, no lado direito a rota
otimizada após aplicação do ACO. Algumas informações como duração,
distância, velocidade média e custo são exibidas para comparações entre os dois
métodos.
Os resultados obtidos com a implementação da arquitetura proposta e da
aplicação da metaheurística apresentada na seção 6 foram submetidos a inúmeros
testes. Variou-se o grau de dificuldade do problema através do número de ordens de
serviço, e após a realização dos testes, foi feita uma avaliação e uma comparação
dos resultados. Os resultados computacionais comprovam a viabilidade da
metodologia proposta.
48
9 CONCLUSÃO
Este trabalho apresentou uma proposta de sistema para otimização de rotas
utilizando mapas e metaheurística ACO baseada no comportamento das formigas.
Os resultados obtidos em cenários de testes mostraram eficiência do algoritmo de
metaheurística. Para todas as instâncias testadas, o algoritmo sempre encontrou
resultado melhor ou igual se comparados com soluções que já foram executadas em
situações reais, gerando percentuais de ganho significativos. A qualidade das
soluções obtidas e tempo gasto mostram que a sua utilização, na prática, trará
grandes benefícios há empresas que prestam serviço de atendimento a clientes
como distribuidoras de Energia Elétrica, uma vez que reduzirá o tempo gasto para
atendimento dos clientes envolvidos de forma factível.
Em rotas urbanas existem diversos fatores que podem influenciar na escolha
do melhor caminho, como por exemplo: tempo, tráfego, sentido das vias, entre
outros. Fatores como estes devem ser implementado no aplicativo demonstrado,
tornando-o assim mais flexível. Sendo que estes fatores podem ser utilizados como
parâmetros de influência na escolha de uma rota pelo algoritmo ACO.
Algumas simplificações que foram adotadas nesse trabalho, como por
exemplo: a de desconsiderar a prioridade da ordem de serviço e o seu prazo pode
tornar o problema em certos casos distante da realidade, porém, trariam dificuldades
computacionais significativas que, em outro momento, deverão ser consideradas.
Com a evolução da tecnologia e a crescente oferta de soluções, tem-se uma
grande disponibilidade de recursos que podem ser integrados aos sistemas
corporativos das empresas, ferramentas fundamentais na busca pela melhoria da
qualidade do atendimento e eficiência nos serviços prestados aos clientes. E
ferramentas de roteirização de veículos se mostram cada vez mais necessárias no
auxílio à decisão ou descoberta das melhores rotas em empresas como a
ENERGISA.
49
9.1 TRABALHOS FUTUROS
Como trabalhos futuros propõem-se a realização de testes mais efetivos
utilizando dados dinâmicos para realização de reprogramações de rotas (Problema
Dinâmico), uma vez que foram testados apenas dados já efetivados com o objetivo
de validar o funcionamento da arquitetura. Outra proposição refere-se à ampliação
da arquitetura conforme sugerido na Figura 9 com o objetivo de melhorar o tempo de
cálculo computacional mantendo a principal característica proposta de encontrar
soluções factíveis e sem penalidades.
Além disso, propõem-se a adaptação do algoritmo ACO utilizado para a
adição de algumas características a ser utilizadas como parâmetros de influência na
decisão das rotas.
A prioridade da Ordem de Serviço é um fator importante para Energisa, uma
vez que, alguns tipos de ordens de serviço oferecem risco de vida a pessoas, e ser
motivo de grande influência na decisão do algoritmo ACO.
Os prazos para o cumprimento do serviço também é um fator importante, pois
a empresa pode ser penalizada com aplicação de multas não execução de serviços
dentro do prazo estabelecido pela ANEEL (Agência Nacional de Energia Elétrica).
Por fim, após a realização de todas as etapas propostas e a verificação de
seus resultados, será recomendado a implantação do trabalho proposto na Energisa.
50
REFERÊNCIAS
Afinal, o que é um Smartfone e um pocket PC?? Disponível em:< http://mobilidades.net/2007/07/30/afinal-o-que-e-um-smartphone-e-um-pocket-pc> Acesso: 01 dez. 2010. ARAUJO, C. Algoritmo Genético Hibrido sem delimitadores de rotas para problemas de roteirização de veículos.Dissertação de mestrado em Engenharia.
Escola Politécnica da Universidade de São Paulo. São Paulo, 2008. BALLOU, R. Gerenciamento da cadeia de suprimentos: planejamento, organização e logística empresarial. Porto Alegre: Bookmann 4ª ed, 2001. Bing Maps. Disponível em: < http://www.bing.com/maps/ > Acesso: 01 dez. 2010. BONABEAU, E.; DORIGO, M.; THERAULAZ, G. Swarm intellligence: from natural to artificial systems. Oxford University Press, 1999. CARVALHO, E. ; RAMOS, G. Otimização por Colônia de Formigas (AntColony Optimization - ACO), 11 de Junho de 2007. CDMA, GSM, TDMA, GPRS: saiba o que essas siglas significam. Disponível em: < http://tecnologia.uol.com.br/ultnot/2006/11/24/ult2870u201.jhtm> Acesso: 12 out. 2010. DORIGO, M. G. Ant colony system: A cooperative learning approach to the traveling salesman problem. IEEE Transactions on Evolutionary Computation,
Vol.1 , pp. 1-24, 1997. DORIGO, M. S. Ant Colony Optimization. Massachusetts: Bradford Books, 2004. DORIGO, M. The ant system: an autocatalytic optimization process. Technical Report Revised. Dipartimento di Elettronica, Politecnico di Milano, Itália, 1991. DORIGO, M.; BIRATTARI, M.; STÜTZLE, T. Ant colony optimization theory: artificial ants as a computational intelligence technique. IEEE Computational Intelligence Magazine, v. 6, , pp. p. 28–39, 2006.
51
DORIGO, M.; CARO, G. Di ; GAMBARDELLA, L. M. Ant algorithms for discrete optimization. Artificial Life, v. 5, n. 2, , pp. p. 137–172, MIT Press Cambridge, Massachusetts, 1999. DORIGO, M.; MANIEZZO, V.; COLORNI, A. Ant system: optimization by colony of cooperating agents. IEEE Transactions on systems, man and cybernetics , pp. p. 29–41, 1996. ENERGISA. Disponível em: < http://www.energisa.com.br > Acesso: 01 out. 2010. GMap.NET - Great Maps for Windows Forms & Presentation. Disponível em: < http://greatmaps.codeplex.com> Acesso: 01 dez. 2010. GoogleMaps. Disponível em: < http://maps.google.com.br/> Acesso: 01 dez. 2010. GPS (Sistema de Posicionamento Global). Disponível em: < http://www.infoescola.com/cartografia/gps-sistema-de-posicionamento-global/> Acesso em: 12 out. 2010. LAPORTE, G. The Vehicle Routing Problem: An Overview of Exact and Approximate Algorithms. Society for Industrial and Applied Mathematics Philadelphia. Estados Unidos, 2001. LARSEN, A. The Dynamic Vehicle Routing Problem. Ph.D. thesis at the Department of MathematicalModelling (IMM) at the Technical University of Denmark (DTU). Lyngby, 2000. MONTEMANNI, R.; GAMBARDELLA, L. M.; DONATI, A. E. New Algorithm for a Dynamic Veiche Routing problem based on Ant Colony System . Istituto Dalle Molle Di Studi Sull Intelligenza Artificiale, 2003 OLIVEIRA, S. Metaheuristica Ant Colony System aplicada à uma proposta de uma arquitetura para resolução de problemas de roteamento de veículos com demanda dinâmica e janela de tempo. Dissertação em Matemática. Centro Federal de Educação Tecnológica de Minas Gerais. Belo Horizonte-MG, 2007. OpenStreetMap. Disponível em: < http://www.openstreetmap.org > Acesso: 01 dez. 2010. RIBEIRO, G.;LORENA, L. .Roteamento de Veículos Dinâmico usando algoritmos genéticos. XIX ANPET. Recife – PE, 2005.
52
TAILLARD, E. Parallel Iterative Search Methods for Vehicle-Routing Problems. pp. Volume 23, p. 661-673., dezembro 1993. Windows Presentation Foundation. Disponível em: < http://msdn.microsoft.com/en-us/library/aa970268.aspx> Acesso: 12 out. 2010. XAML Overview. Disponível em: < http://msdn.microsoft.com/en-us/library/cc189036(v=VS.95).aspx> Acesso: 21 set. 2010. Yahoo! Maps, Driving Directions, and Traffic. Disponível em: < http://maps.yahoo.com > Acesso: 01 dez. 2010.