Sei sulla pagina 1di 58

UNIVERSIDADE FEDERAL

DE

PERNAMBUCO

GRADUAO EM CINCIA DA COMPUTAO CENTRO DE INFORMTICA

2011.2

ANLISE COMPARATIVA DE ALGORITMOS DE OTIMIZAO PARA O PROBLEMA DE ROTEAMENTO DE VECULOS (VRP) TRABALHO DE GRADUAO

Aluno Orientador

Joo Carlos Procpio Florncio Tsang Ing Ren

{jcpf@cin.ufpe.br} {tir@cin.ufpe.br}

Universidade Federal de Pernambuco Centro de Informtica Joo Carlos Procpio Florncio ANLISE COMPARATIVA DE ALGORITMOS DE OTIMIZAO PARA O PROBLEMA DE ROTEAMENTO DE VECULOS (VRP)

This work is an approach to a known Combinatorial Optimization problem that have many practical applications to logistics and Operation Research in general. The main objective of this work is to present the state of art in relation to Combinatorial Optimization techniques used to solve the VRP and its variations. This study must include an implementation of some algorithms to solve VRP and with its results make a comparative analisys when submitted to the main benchmarks available in the field.

Este trabalho de graduao deve abordar um problema conhecido de Otimizao Combinatorial que tem muitos fins prticos na rea de logstica e Operation Research. O objetivo deste trabalho , ento, apresentar o estado da arte no que se diz respeito s tcnicas de Otimizao Combinatorial utilizadas para resolver o VRP e suas variaes. Este estudo deve incluir a implementao dos alguns algoritmos para resolver o VRP e em cima deles fazer uma anlise comparativa dos resultados quando submetidos aos principais benchmarks disponveis da rea.

Aos meus pais, Clovis Pires Florncio e Maria Aparecida Procpio Florncio.
4

Agradecimentos Neste perodo de concluso do curso, este trabalho vem selar o fim de mais um ciclo importante da formao para qualquer estudante de Universidade. Agradeo a Deus, ao apoio incondicional dos meus pais em todo meu perodo de minha formao e ajuda indispensvel do orientador deste meu trabalho, Tsang Ing Ren. Agradeo tambm aos colegas de faculdade que juntos formaram uma sinergia de trabalho para todos concluirmos esse curso com xito!

ndice de Tabelas

Tabela 1 - Custos de deslocamento ............................................................................................ 28 Tabela 2 - Demanda dos Clientes ................................................................................................ 28 Tabela 3 - Custos de juno de rotas .......................................................................................... 29 Tabela 4 - Melhores resultados encontrados para a classe de problemas R1 ............................ 49 Tabela 5 - Melhores resultados encontrados para a classe de problemas R2 ............................ 50 Tabela 6 - Melhores resultados encontrados para a classe de problemas C1 ............................ 50 Tabela 7 - Melhores resultados encontrados para a classe de problemas C2 ............................ 50 Tabela 8 - Melhores resultados encontrados para a classe de problemas RC1.......................... 51 Tabela 9 - Melhores resultados encontrados para a classe de problemas RC2.......................... 51

ndice de Figuras

Figura 1 - Caminhando pelo espao de solues ........................................................................ 12 Figura 2 - Espao de solues com mltiplos mnimos locais ..................................................... 13 Figura 3 - Regio vivel em um PL ............................................................................................... 14 Figura 4 - Curva de Pareto ........................................................................................................... 15 Figura 5 - Problema do VRP......................................................................................................... 15 Figura 6 - Decomposio do espao de solues pelo B&B ........................................................ 19 Figura 7 - Amadurecimento por otimalidade .............................................................................. 20 Figura 8 - Amadurecimento por Limitante .................................................................................. 21 Figura 9 - Amadurecimento por Inviabilidade ............................................................................ 21 Figura 10 - Processo de Cutting-plane ........................................................................................ 23 Figura 11 - Juno de duas rotas ................................................................................................. 26 Figura 12 - Agrupamento dos clientes ........................................................................................ 32 Figura 13 - Conceito de Colnia de Formigas .............................................................................. 36 Figura 14 - Algoritmo ACS-TIME .................................................................................................. 41 Figura 15 - Algoritmo ACS-VEI ..................................................................................................... 42 Figura 16 - Replicao do depsito ............................................................................................. 43 Figura 17 - Algoritmo new_active_ant ........................................................................................ 45 Figura 18 - Operao de CROSS-EXCHANGE ............................................................................... 47 Figura 19 - Instncia R101, com o algoritmo NN_Gambardella alcanou o custo de 2015,21. .. 52 Figura 20 - Instncia R101, com o algoritmo CROSS-EXCHANGE alcanou o custo de 1949,92. 52 Figura 21 - Instncia R101, com o algoritmo MACS-VRPTW alcanou o custo de 1172,03. ....... 53 Figura 22 - Instncia C101 (reduzido para 25), com o algoritmo NN_Gambardella alcanou o custo de 257.92. .......................................................................................................................... 53 Figura 23 - Instncia C101 (reduzido para 25), com o algoritmo CROSS-EXCHANGE alcanou o custo de 196.87. .......................................................................................................................... 54 Figura 24 - Instncia C101 (reduzido para 25), com o algoritmo MACS-VRPTW alcanou o custo de 191,81..................................................................................................................................... 54

Contedo
1 Introduo ............................................................................................................................ 9 1.1 1.2 2 3 Contexto e Motivao ................................................................................................ 9 Problemas de Otimizao Matemtica ................................................................. 10

Descrio do Problema ................................................................................................... 15 Estado da Arte .................................................................................................................. 17 3.1 3.2 Histrico ..................................................................................................................... 18 Algoritmos Exatos..................................................................................................... 19 Branch-and-Bound ........................................................................................... 19 Branch-and-Cut................................................................................................. 22

3.2.1 3.2.2 3.3

Heursticas ................................................................................................................. 23 Mtodos Contrutivos ........................................................................................ 24 Algoritmos de Duas Fases .............................................................................. 30

3.3.1 3.3.2 3.4

Meta-heursticas ....................................................................................................... 32 Simulated Annealing ........................................................................................ 33 Tabu-Search ...................................................................................................... 34 Algoritmos Genticos ....................................................................................... 35

3.4.1 3.4.2 3.4.3 4 5

Sistema de Colnias de Formigas (ACS) ..................................................................... 36 MACS-VRPTW.................................................................................................................. 39 5.1 5.2 5.3 Colnias ACS-TIME e ACS-VEI ............................................................................. 40 Modelo da Soluo................................................................................................... 43 Procedimento da Soluo construtiva ................................................................... 43 Procedimento da Insero .............................................................................. 46 Procedimento de Busca Local: CROSS-EXCHANGE ................................ 47

5.3.1 5.3.2 5.4 6 7

Resultados ................................................................................................................. 48

Concluso .......................................................................................................................... 55 Referncias ....................................................................................................................... 57

1 1.1

Introduo Contexto e Motivao Sabe-se que no contexto de mundo atual, toda empresa que deseja

sobreviver em um mercado competitivo deve procurar novas formas de se diferenciar, seja tanto no aspecto do atendimento ao cliente, na melhoria da qualidade do produto ou na minimizao dos custos de produo. Em qualquer aspecto que se analise, a forma que vem se mostrando mais eficiente, em termos de prover maiores ganhos e de se destacar em relao concorrncia, a de aplicao de novas tecnologias que venham a atuar diretamente nos pontos citados. Nesse contexto, este trabalho pretende abordar o problema da otimizao de logstica no sentido de se minimizar os custos com transporte advindo das necessidades da empresa em deslocar para atender seus clientes. Problema este que ainda est longe de se alcanar solues timas e, por isso, a motivao do trabalho em enxergar o estado da arte no que se refere ao problema proposto. A melhoria nesse sentido alm trazer economia de custos, tambm traz melhoria no servio de atendimento ao cliente. Empresas que tem que se deslocar por uma cidade diariamente para atender seus clientes sofrem do Problema do Roteamento de Veculos conhecido por sua sigla em ingls VRP (Vehicle Routing Problem) e que est mais bem descrito na seo de Descrio do Problema. Quando a demanda de visitas requisitadas pelos clientes aumenta neste tipo de empresa comum vermos aplicaes de tcnicas pouco eficientes e que geralmente, alm de no gerar rotas de baixo custo, so passveis de muitos erros tcnicos como atendimento fora do horrio disponvel do cliente, prazos de atendimento previstos em contrato extrapolados e ordem de preferncia de atendimentos entre clientes no seguindo os reais critrios da empresa. Com a utilizao das tcnicas apropriadas possvel eliminar os riscos de erros na soluo e reduzir custos operacionais relativos ao transporte muitas vezes superiores a 20%[4] quando comparado com um soluo dada por um indivduo especialista. E por que este problema trata-se de um desafio para a rea da computao?
9

Muitas empresas alocam pessoas comuns resoluo de um problema de roteamento de veculos no dia-a-dia. Isso pode levar alguns a pensar que se trata de um problema simples e sem grandes complicaes. No entanto, apesar de no parecer desafiador, ele , na verdade, um problema de grande complexidade computacional, estando na classe de problemas no s de NPCompleto como tambm de NP-Difcil [4] e, portanto, com custo de tempo exponencial para encontrar a soluo tima. Sem a utilizao de tcnicas de otimizao combinatria, mesmo um computador pode no chegar a uma soluo satisfatria em tempo razovel. Tendo isso em vista, iremos abordar neste trabalho o assunto primeiramente descrevendo com detalhes no captulo 2 todos os aspectos que o problema envolve. Entendido o problema, partiremos para entender como o VRP ganhou destaque nas pesquisas cientficas e quais as principais abordagens que o problema vem sendo atacado, sempre apresentando as vantagens e desvantagens de cada tipo. Para irmos mais a fundo no problema selecionamos a tcnica de MACS-VRPTW, uma das tcnicas mais bem sucedidas para VRP utilizando a analogia de otimizao de Colnia de formigas, para mostrar com nvel superior de detalhes as metodologias utilizadas na resoluo. Junto com a tcnica mostraremos os resultados que conseguimos com a implementao da tcnica. Ao fim apresentaremos as concluses sobre tudo que foi visto neste trabalho. 1.2 Problemas de Otimizao Matemtica Todo problema de otimizao caracteriza-se basicamente por ter uma funo objetivo, que pode se chamar funo custo quando se deseja minimizla ou funo utilidade quando se deseja maximiz-la, e um conjunto de restries que delimitam o espao de solues viveis, ou seja, a regio onde esto as solues que podem ser aceitas. A funo objetivo contm um conjunto de variveis as quais valores devem ser atribudos de forma sistemtica de modo a caminhar pelo espao de busca e encontrar aquela que otimize o resultado que se busca, no caso de um problema maximizao encontrar o maior valor possvel enquanto em um de minimizao encontrar o menor valor. Em ambos os casos a soluo deve satisfazer o conjunto de
10

restries impostas para ser aceita. A formatao de um problema de otimizao matematicamente se d da seguinte forma:

( )

( )

( )

( )

Onde

o conjunto de solues viveis que a funo

pode gerar.

Podemos interpretar o espao de solues como sendo um subconjunto do espao euclidiano . Cada varivel uma dimenso do espao. Para uma

funo com duas variveis possvel formar em um espao bidimensional e com a adio de uma terceira dimenso para o resultado da funo com x e y como entrada possvel observar o comportamento da funo medida que o x e o y da funo sofrem variao. Na figura 1 abaixo mostramos um grfico bidimensional em que a variao do valor da funo provoca alteraes na escala de cinza. Para valores maiores obtemos um cinza mais escuro e para valores menores um cinza mais claro. Com isso, podemos observar o espao de solues de forma panormica no espao bidimensional e vemos que medida que se aproxima do centro a funo gera valores menores. Nela possvel perceber tambm que as marcas em forma de x, que representam as solues encontradas, variam em direo ao mnimo local que se encontra no meio do espao de busca. A heurstica utilizada para a busca da soluo tima, neste caso, foi a de procurar solues vizinhas que minimizassem o custo da funo da mesma forma que uma esfera que rola sobre um plano inclinado se estabiliza no momento que alcana um vale que seria o mnimo local da funo. No entanto essa heurstica nem sempre a mais adequada, como veremos mais a frente.

11

Figura 1 - Caminhando pelo espao de solues

Otimizao Combinatria A heurstica de busca mostrada na seo anterior funciona apenas para um nmero limitado de casos. Funes com espaos de busca mais complexos e com mltiplas restries dificultam o processo de busca e, por isso, a estratgia com que esse espao vai ser varrido tem de ser feita de forma mais elaborada. Na figura 2 mostramos no espao euclidiano uma funo objetivo onde a simples busca por um mnimo local no funcionaria. Em alguns casos a natureza do problema proporciona um atalho para a soluo tima, e quando isso possvel, encontra-se a soluo de forma objetiva em tempo polinomial. Para os casos onde esse atalho no facilmente identificvel, a busca por fora bruta pela melhor soluo se torna necessria. Para esse subconjunto de problemas, onde a aplicao de fora bruta necessria, podemos classific-los como problemas Otimizao

Combinatria. nesta classe de problema que se encontra o VRP (Vehicle Routing Problem), o problema que ser tratado nesse trabalho. Para problemas desse tipo, muitos algoritmos foram sugeridos com o objetivo de determinar uma estratgia de busca inteligente de forma a percorrer o espao de solues da forma mais eficiente possvel. Esses algoritmos so aplicao geral, pois se adaptam a qualquer problema que envolva busca em

12

um espao de solues. Os mais conhecidos so: algoritmos genticos, Tabu Search, Simulated Annealing, Particle Swarm, etc.

Figura 2 - Espao de solues com mltiplos mnimos locais

Programao Linear Em casos onde a funo objetivo linear e o conjunto de restries fecha o espao de busca em forma de um politopo definimos esse tipo de problema de otimizao como de programao linear. O problema pode ser descrito na forma cannica da seguinte forma:

Onde x representa as variveis a serem determinadas, C e b so vetores de coeficientes conhecidos e A uma matriz de coeficientes. A primeira linha descreve a funo objetivo que se deseja maximizar ou minimizar, na segunda linha o conjunto de restries que determina o politopo convexo onde as solues viveis se encontram e na terceira uma regra geral que determina que todas as variveis da funo devem ser sempre positivas. Esta ltima restrio determinada porque todos os problemas de programao linear no fazem sentido para valores negativos e por isso essa restrio j prdeterminada.

13

Em programao linear, mesmo sem nenhum atalho gerado pela natureza do problema possvel encontrar na maioria dos casos a soluo tima de forma relativamente rpida. Isso deve ao fato da funo ser linear e no possuir mltiplos mnimos locais. O algoritmo mais bem sucedido para resolver programao linear o Simplex proposto por Dantzig em 1947. Na soluo proposta por ele, o espao varrido somente pelos vrtices do politopo at que se encontre um vrtice cuja soluo seja superior em relao a todos os vrtices vizinhos.

Figura 3 - Regio vivel em um PL

Otimizao Multi-objetivo Apesar de um problema tpico de otimizao conter somente uma funo objetivo existem casos em que o problema composto por mais de um objetivo e estes so conflitantes entre si. Quando isso acontece, ele chamado de Otimizao Multi-objetivo. No caso de uma definio de um projeto estrutural, por exemplo, possvel que o engenheiro queira por um lado uma estrutura rgida e da mesma forma querer que ela seja leve. Sabe-se, no entanto, que estes dois objetivos so conflitantes. Caminhos que levem a uma estrutura mais rgida provavelmente vo distanciar a estrutura do objetivo de ela ser leve e vice-versa. O conjunto de trade-offs do projeto que no possam ser melhorados sem que um critrio quebre outro critrio chamado de conjunto de Pareto. E ele pode ser descrito em uma curva que gera a chamada Fronteira de Pareto. Uma soluo conhecida como Pareto Optimal ou Pareto Efficient caso ela no seja dominada por nenhum dos objetivos,

14

ficando, assim, em um meio termo. A figura abaixo mostra uma curva de pareto.

Figura 4 - Curva de Pareto

Descrio do Problema

Figura 5 - Problema do VRP

O problema de roteamento de veculos (em ingls: Vehicle Routing Problem - VRP), assim como o prprio nome j diz, consiste em buscar a melhor rota que uma dada frota de veculos deve percorrer de modo a atender/visitar um conjunto de clientes distribudos geograficamente em uma regio. Quando se fala em "melhor rota", podemos entender como aquela que deve minimizar os custos envolvidos no transporte sem, contudo, violar as restries impostas
15

pelo problema. Estas restries variam bastante dependendo do contexto em que se encontra. Podemos citar como exemplo de restrio: a janelas de tempo disponveis de atendimento a um determinado cliente. Pois caso algum veculo seja alocado para atender um cliente em um horrio que ele no esteja disponvel, a empresa, ao invs de economizar, ter prejuzo ao realizar uma viagem sem ter condies de prestar o atendimento previsto. a partir de restries como esta que surgem as variaes do VRP. Abaixo podemos citar as principais, tais como roteamento de veculos com:

Janelas de tempo (VRP with Time Window) Limita os veculos a visitarem os clientes dentro de suas respectivas janelas de tempo que devem representar o horrio de funcionamento do estabelecimento. Da mesma forma, os prprios veculos podem ter janelas de tempo que os impea de atender clientes em determinados de horrios, estas janelas representariam o seu horrio de trabalho, por exemplo: das 8:00 s 12:00, uma pausa para o almoo e das 14:00 s 18:00.

Capacidade de carga (Capacited VRP) Limita o veculo em sua capacidade de armazenar as cargas demandadas pelo cliente. Dessa forma, os veculos ficam restritos a atender apenas um conjunto clientes no qual a soma das cargas demandadas no exceda a sua capacidade de armazenamento. Neste tipo de problema, comum o veculo volte recorrentemente a fim empresa para fazer novos carregamentos e, consequentemente, poder atender mais clientes.

Mltiplos depsitos (Multiple Depots VRP) o caso onde existem mltiplos depsitos distribudos pela cidade e deseja-se minimizar os custos encontrando a melhor distribuio dos veculos da empresa pelos depsitos disponveis. Esse tipo de considerao importante ser levado em conta quando os clientes no esto agrupados ao redor dos depsitos. Caso contrrio, seria melhor resolver o problema

solucionando um VRP para cada depsito.

Atendimento em mltiplos dias (Period VRP) Quando a quantidade de clientes a serem atendidos excede o espao de tempo de um dia, o agendamento dos atendimentos passam a ser feitos para mltiplos dias. Essa nova considerao implica algumas conseqncias. Quando se
16

transfere uma atividade de um dia para o outro, essa mudana pode gerar custos relacionados a multas de contratos, interrupo de atividades e insatisfao do cliente que se no forem considerados impactam no resultado final da soluo.

Entrega e recolhimento (Pick-up and Delivery VRP) Existem casos em que o problema no se limita a entregar pedidos aos clientes, alm disso, o veculo pode tambm realizar recolhimentos que deve impactar na sua capacidade de armazenamento. Por isso, o algoritmo deve considerar essa nova varivel ao calcular sua disponibilidade de armazenamento ao longo da viagem;

Roteamento dinmico (Dynamic VRP) uma restrio existente em quase todo caso real de roteamento de veculos. Quando se despacha um veculo para visitar um conjunto de clientes, podem ocorrer ao longo do dia mudanas que no eram previstas no momento de sua sada. Visitas podem ser canceladas e outras inseridas na rota do veculo. No entanto, a rota no pode ser modificada arbitrariamente, correndo o risco de deixar a soluo ineficiente. Para isso, o roteamento dinmico deve modificar as rotas ao longo do dia sem, contundo, encarecer desnecessariamente a soluo.

Muitas outras variaes podem ser formuladas ou combinadas entre si de forma que atenda s restries onde a soluo deva ser aplicada. Neste trabalho trataremos da variao mais geral e comum no mundo real, que a combinao das restries de janela de tempo (VRPTW) com restrio de cargas (CVRP) para os veculos. 3 Estado da Arte Nesta seo sero tratados tpicos que ajudem o leitor a perceber as abordagens que o problema de roteamento de veculos tem sido tratado ao longo do tempo. Primeiramente, ser apresentado um breve histrico do problema, mostrando como o problema surgiu, as primeiras abordagens para resolv-lo e como evoluiu essa rea de pesquisa. A partir da, sero apresentadas trs formas que o problema pode ser atacado: com algoritmos exatos, que so lentos, mas sempre apresentam solues timas, as
17

heursticas que so rpidas, mas possuem uma eficcia limitada no resultado e as metas-heursticas que tem eficcia ampla e alcana resultados prximos do ideal em tempo razovel. 3.1 Histrico O problema de roteamento de veculos um dos mais estudados em otimizao combinatorial. Ele foi introduzido inicialmente por Dantzig e Ramser em 1959 e foi descrito inicialmente em cima de um problema do mundo real que era o de otimizar a entrega de gasolina em diversas estaes de servio pr-determinadas. O resultado deste trabalho foi o de desenvolver a primeira formulao do problema com programao matemtica e a primeira abordagem algortmica. Em 1964 Clarke e Wright propuseram uma heurstica gulosa que melhorava os resultados em relao ao algoritmo de Dantzig-ramser. A partir da, vrios novos artigos foram publicados abordando o problema de vrias outras formas e encontrando solues otimizadas para vrios tipos de VRP com diferentes tamanhos de instncias. Hoje, o problema roteamento de veculos atacado principalmente em trs frentes: algoritmos exatos, heursticas e meta-heursticas. Em relao aos algoritmos extatos, por buscarem apenas a soluo tima, ele tm dificuldades em resolver problemas com instncias maiores. As maiores instncia que podem ser resolvidas, hoje, com algoritmos exatos em tempo razovel so de at 50 clientes. Instncias maiores podem ser resolvidas otimamente apenas em casos particulares. J resoluo do problema com abordagem heurstica consegue resultados bastante otimizados quando aplicados em problemas de naturezas especficas, de modo que explorarando essas caractersticas venha a encontrar o caminho da soluo boa mais rapidamente. No entanto, heursticas no podem ser usadas amplamente e aplicadas para diferentes contextos de problemas. Normalmente so usadas em conjunto com outras tcnicas de heursticas e principalmente meta-heursticas com o intuito de realizar um busca local. Em relao meta-heurstica, ela tem se apresentado como a abordagem com maior grau de sucesso. Suas tcnicas baseadas na
18

evoluo da soluo atravs da conjugao de busca local com busca global tm alcanado bons resultados em tempos relativamente curtos. Embora no garanta a soluo tima, a aplicao dessa classe de algoritmos tm produzido resultados satisfatrios para o mercado e hoje usado vastamente em muitas aplicaes do mundo real. 3.2 Algoritmos Exatos Nesta seo sero apresentados os principais algoritmos exatos usados para resolver o VRP. Quando se fala em algoritmos exatos entende-se como as tcnicas de otimizao que do como resultado a soluo tima do problema. 3.2.1 Branch-and-Bound uma tcnica que resolve problemas de otimizao devolvendo uma soluo tima. A funo objetivo * +. A idia est em gerar

uma rvore onde de todas as possveis solues estejam nas folhas. No entanto, sabe-se que varrer todas as solues de forma bruta inviabilizaria grande parte dos problemas j que o espao de solues cresce exponencialmente medida que aumenta a entrada. Para resolver isso, ao longo da varredura ocorrem com podas sistemticas na rvore de forma que evite que o algoritmo percorra regies da rvore onde presumvel que a soluo tima no esteja.

Figura 6 - Decomposio do espao de solues pelo B&B

O algoritmo baseado no paradigma do dividir para conquistar. Dado um conjunto S de possveis solues para o problema, ele dividido em vrios
19

subconjuntos de solues

. Busca-se solucionar as instncias

menores para no fim se obter a soluo do problema inteiro. No entanto, ao executar o algoritmo em um computador sabe-se que no possvel gerar toda a rvore para comear a varrer o espao de solues. Ao invs disso, enumera-se a rvore de forma implcita. Isso possvel graas ao uso de limitantes que permitem identificar os possveis ramos sem que seja necessrio realmente construir a rvore. Cada n da rvore tem seu limitante superior e seu limitante inferior . No geral o algoritmo funciona como o prprio nome j diz: so feita operaes de branch que se entende por ramificar um n e operaes de bound que identificar os limitantes da ramificao e decidir se vai varrer o ramo ou se vai amadurec-lo, ou seja no ramific-lo mais, caso idenfique que a soluo tima no se encontra nela. Esse estado, onde sabe-se que o ramo no possui a soluo tima, tambm conhecido como um ramo fruitless. possvel identificar que um ramo fruitless a partir de trs casos: Otimalidade Ocorre quando encontra a soluo tima do ramo, ou seja, o valor correspondente ao limitante superior do espao de solues. No exemplo abaixo, em conhecida uma soluo de custo

20, e ela tima uma vez que o custo de qualquer soluo de ( ). Logo deve ser amadurecido.

Figura 7 - Amadurecimento por otimalidade

Limitante Ocorre quando o limitante superior menor do que o limitante inferior de outro ramo. No exemplo abaixo a soluo de maior

20

custo em

tem custo limitado a 20 ( ). Logo

), mas em

j conhecida

soluo de custo 21 (

deve ser amadurecido.

Figura 8 - Amadurecimento por Limitante

Inviabilidade Quando possvel identificar que um subconjunto de solues contm somente solues inviveis. No caso abaixo o n representa o subconjunto de todas as solues que contm o item 1 e o item 2. Mas este subconjunto vazio j que a soma dos pesos destes itens ultrapassa a capacidade da mochila. Logo amadurecido.

Figura 9 - Amadurecimento por Inviabilidade

Portanto, no possvel amadurecer um ramo i da rvore onde . Alm disso, devem-se considerar as estratgias de B&B (Branch-andBound) que devem ser tomadas. Sabe-se que, por exemplo que calcular os limitantes de forma forte, ou seja, conseguir um alto grau de limitao, envolve um certo custo computacional, mas permite amadurecer os ramos mais
21

rapidamente. Em contrapartida, limitantes fracos, apesar de serem calculados mais facilmente, fora que a rvore seja explorada mais profundamente percorrendo ramos onde no se encontra a soluo tima. Outra estratgia se refere a quantidade de ramos que um n pode gerar e se essa decomposio de ns vai ser fixa, gerando um nmero pr-determinado de ramos, ou varivel. E por fim decidir como vai percorrer a rvore, podendo ser por profundidade, largura ou escolhendo o n com melhor limitante dual. 3.2.2 Branch-and-Cut Usa-se Branch-and-Cut para resolver modelos de MIPs (Mixed Integer Program). Este procedimento gerencia uma rvore de busca que consiste de ns. Cada n representa um Programa Linear (LP) ou subproblema QP para ser processado; isso , para ser resolvido, para ser verificada sua integralidade, e talvez ser melhor analisado. Ns so chamados ativios se eles ainda no foram processados, ou seja, aps um n ter sido processado, ele se torna inativo. Branch-and-Cut processa os ns ativos at que no hajam mais ou algum limite seja alcanado. Como falado no tpico anterior, um branch a criao de novos ns a partir do n pai. Tipicamente, um branch ocorre quando os limites em uma varivel so modificados, com os novos limites permanecendo em vigor para esse novo n e para qualquer um dos seus descendentes. Por exemplo, se um branch ocorre em uma varivel binria, ou seja, com um limitante inferior de 0 e um limitante superior de um, ento o resultado vo ser dois novos ns, um n com o limitante superior modificado de 0, e o outro n com um limitante inferior modificado de 1. Os dois ns vo, conquentemente, ter domnios de solues completamente diferentes. O procedimento de cut uma restrio adicionada ao modelo. O

propsito de adicionar um corte para limitar o tamanho do domnio da soluo para problemas de LP contnuos ou QP representados nos ns, enquanto no elimina solues inteiras legais. O resultado , portanto, reduzir o nmero de branches requeridos para resolver o MIP (Mixed Integer Programming). A ttulo de visualizao, mostramos uma figura que apresenta um corte feito no
22

domnio de solues de um LP pelo Branch-and-cut. Sabemos que solues no-inteira no so aceitas em MIPs. Como mostra na figura o ponto timo da relaxao linear (azul) do polgono verde, no possuem coordenadas inteiras. Assim, no uma soluo vlida para o problema. A idia utilizar retas que cortem o ponto fora. Essa reta (ou hiperplano em dimenses maiores), chamada de plano de corte, nada mais do que uma desigualdade que satisfeita por todos os pontos viveis (vermelhos) e no satisfeita pelo ponto que queremos remover (azul). s vezes, decidir se uma desigualdade representa um plano de corte NP-difcil! Na prtica, usam-se heursticas.

Figura 10 - Processo de Cutting-plane

Dessa forma o algoritmo realiza decomposies do domnio de solues com o branch e em seguida corte nesses sub-domnios a fim de cortar regies quem no possuam solues viveis e inteiras. 3.3 Heursticas Essa classe de tcnicas procura resolver os problemas de otimizao atravs da observao da natureza do problema. possvel alcanar solues de boa qualidade caminhando por uma regio onde se tenha uma maior densidade de boas solues baseado na forma que o problema est disposto. Logicamente, essa regio no garante que nela esteja includa a soluo tima. No entanto, varrendo essa regio menor possvel em um curto espao de tempo encontrar uma soluo satisfatria. Porm Heursticas normalmente apresentam aplicabilidade muito restrita, uma modelagem que serve bem para resolver um tipo de entrada, por exemplo: entradas cujo conjunto de clientes a serem atendidos possui
23

predominantemente janelas de tempo largas ou esto sempre cluserizados geograficamente, podem obter pssimos resultados quando submetidos a outros tipos de entrada. Por isso, a modelagem da heurstica deve ter como foco a aplicao final do algoritmo estando sempre atento para os tipos de entrada que ela deve resolver. Em razo dessas particularidades dos algoritmos heursticos, as tcnicas apresentadas nesta seo, diferente das outras, so de aplicao exclusiva do VRP, j que se utiliza das caractersticas do VRP determinar os procedimentos que devem ser seguidos para alcanar uma soluo. Nas outras tcnicas pequenas adaptaes permitem que se resolva outros problemas de otimizao. 3.3.1 Mtodos Construtivos Nos mtodos construtivos, o algoritmo deve construir gradativamente uma soluo vivel medida que observa o custo da soluo. Apresentamos nesta seo os algoritmos: Nearest Neigbhor de Gambardella e Savings Method de Clark e Wright. Nearest Neigbhor Heuristic Esta seja talvez a heurstica mais intuitiva para as pessoas em geral. Sua idia bsica concentra-se no fato de que existe uma probilidade de que escolher o prximo cliente mais prximo para visitar ir gerar uma economia de percurso por minimizando o tempo de deslocamento a cada cliente que se visita. Sabe-se no entanto que essa heurstica nem sempre vlida, mas que pode trazer bons resultados dependendo da topologia do problema. Casos em que os clientes apresentem grande disparidade de distncia entre seus vizinhos provavelmente seria bem solucionado pela heurstica do Vizinho mais Prximo. Existem vrias verses desse algoritmo, mas neste trabalho

apresentaremos a abordagem de Gambardella de 1999 que usou no seu artigo do MACS-VRPTW para construir uma soluo inicial que pudesse ser otimizada pelo seu algoritmo de Colnia de Formigas.
24

No algoritmo, o veculo comea de um ponto inicial, que no caso do VRP o depsito, e a partir deste momento inicia sua heurstica iterativamente. A cada ponto que o veculo visitava, o algoritmo observaria os vizinhos do ponto atual e em busca do vizinho mais prximo e vivel. O clculo de proximidade no leva em conta somente a distncia entre os clientes. Neste algoritmo de Gambardella que leva em considerao a janela de tempo que os clientes podem ser atendidos o clculo da distncia feito da seguinte forma: ( Onde a distncia do ponto i ao j, ) o momento de incio da janela de momento que o veculo est

tempo escolhida para atender o cliente e

pronto para percorrer um novo caminho em direo ao prximo cliente. Vale ressaltar que essa distncia s vlida caso o cliente seja vivel. Quando se fala em vizinho vivel, entende-se que ele no viole nenhuma restrio imposta pelo problema. As duas restries mais comuns so de janela de tempo e capacidade do veculo. Caso exista restrio de carga deve-se verificar se a soma total das demandas dos clientes j visitados mais o possvel novo cliente excede a capacidade do veculo. Caso exceda ele deve escolher outro cliente para visitar e se no haja mais nenhum cliente que possa ser visitado sem que exceda a capacidade de carga o veculo deve voltar para o depsito. A partir do momento que o veculo volta para o depsito, o algoritmo considera como se estivesse adicionando um novo veculo ao problema, por conta disso, no momento que ele for visitar um novo cliente saindo do depsito sua carga est zerada assim como seu tempo de percurso. J se houver restrio de Janela de tempo para os clientes, deve-se observar se existe algum momento que o veculo pode chegar ao cliente dentro de uma janela de tempo. Isso s possvel caso exista pelo menos uma janela que no tenha terminado no momento que ele chegar ao cliente. Por isso, caso chegue um momento que no exista nenhum cliente que seja mais possvel visitar por conta de inviabilidade de janela de tempo o veculo deve voltar para o depsito. E da mesma forma que aconteceu com o veculo que voltou por conta do limite de sua capacidade, ele tem a sua carga e tempo de percurso zerado, de tal forma que torna possvel a visita a qualquer outro cliente uma
25

vez que no momento zero qualquer janela de tempo deve estar aberta ou deve abrir em algum momento. Esse processo de escolha do prximo cliente realizado at que no exista mais nenhum cliente para ser visitado. O nmero de rotas, ento, vai corresponder a quantidade de vezes que o algoritmo saiu do depsito. Savings: Clark and Wright Foi o primeiro algoritmo proposto para resolver o problema de roteamento de veculos. Seu conceito bsico gerar economia de custos juntos duas rotas em uma como ilustrado na figura 11, onde o ponto 0 representa o depsito. Essa juno deve atender as restries do problema, como: janela de tempo e capacidade do veculo.

Figura 11 - Juno de duas rotas

Para avaliar a melhoria em relao economia de custo causada por uma fuso de rotas realizamos os seguintes clculos. Denotando o custo de transporte entre dois pontos dados i e j por figura 11 (a) : , o custo total de transporte na

De forma equivalente, o custo de transporte

na figura 11(b) :

Combinando as duas rotas obtemos a economia de custos

Quanto maior for o

mais atrativa essa mudana for, maior a probabilidade

dela ser escolhida pra sofrer a mudana.


26

O primeiro passo para o algoritmo construir uma rota para cada cliente, ou seja, n veculos sero deslocados para atender n clientes. Logicamente esta a soluo mais simples possvel e que ao mesmo tempo j garante se o problema possui uma soluo vivel ou no. A seguir o processo de fuso de rotas iniciado de acordo com os clculos de economia de custos mostrados acima. Todas as possveis fuses so enumeradas e ordenadas de acordo com o grau de melhoria que elas gerariam no resultado final. Cada fuso representada por um par de pontos i-j. Do topo da lista ordenada o algoritmo considera um par de pontos por vez. Quando um par de pontos i-j considerado, duas rotas que visitam i e j so combinadas somente se essa fuso puder ser feita sem deletar a conexo direta estabelecida entre os dois clientes (pontos), e se o total de demanda da rota resultante no exceder a capacidade do veculo. A partir de ento existem duas verses que podem ser utilizadas, uma seqencial e outra paralela. A primeira construir uma rota rota por vez, enquanto a segunda verso constri vrias rotas ao mesmo tempo. Na verso seqencial deve-se voltar para o comeo da lista ordenada toda vez que uma nova conexo realizada, uma vez que as combinaes que no eram viveis pode ter se tornado vivel com a mudana feita. Podemos ilustrar um exemplo da resoluo do algoritmo com um exemplo prtico. Considere um problema com 5 clientes. O custo de transporte so mostrados na tabela 1, onde o ponto zero corresponde ao depstico e os custos so simtricos, ou seja, o valor que gasto para ir de a para b o mesmo de ir de b para a e, por isso, a tabela est preenchida somente em sua metade superior.

27

Tabela 1 - Custos de deslocamento

Considere tambm as seguintes demandas necessrias para abastecer cada cliente na tabela 2. A capacidade do veculo de 100 unidades.

Tabela 2 - Demanda dos Clientes

As economias

so calculados para valores localizados na tabela 3.

Como inicialmente existe uma rota para cada cliente, cada par representa o custo de juntar dois clientes em uma mesma rota.

28

Tabela 3 - Custos de juno de rotas

Dessa forma possvel ranquear os valores em ordem descendente em relao s economias geradas. Isso gera a seguinte lista de pares: [1-5; 1-2; 2-4; 4-5; 2-5; 1-4; 3-5; 1-3; 3-4; 2-3] A partir de agora o algoritmo mostrado na verso sequencial e em seguida apresentaremos a verso paralela. Primeiramente, consideramos o primeiro par da lista (1-5), eles podem ser fundidos na mesma rota desde que a restrio de capacidade do veculo no seja ultrapassada. Como o cliente 1 demanda 37 unidades e o cliente 5 demanda 32 a soma de seus valores (69) no excede a capacidade do veculo de 100 unidades. Ento estabelecemos a conexo dos pontos 1-5, e por isso, esse par passaro a ser vizinhos de rota na soluo final. Em seguida consideramos o par 1-2. Caso essa conexo seja feita, isso geraria uma rota com a seqncia 2-1-5 (ou 5-1-2), porque j estabelecemos que o cliente 1 e 5 so vizinhos. Em razo disso a demanda total dessa rota passaria a extrapolar a capacidade do veculo em 4 unidades. Por isso, 1 e 2 no podem ser conectados. J se os pontos 2 e 4 fossem, que o prximo par dar lista, estaramos gerando mais de um rota no mesmo estgio (1-5 e 2-4). J que a verso seqencial do algoritmo limitado a fazer apenas uma rota por vez, desconsideramos esse par por enquanto.
29

A combinao do prximo par, 4 e 5, resulta na rota 1-5-4 (ou 4-5-1) com uma demanda total de 94, ou seja, uma conexo vivel. Com isso, conclumos que no possvel adicionar mais nenhum novo cliente a rota uma vez que sua capacidade no suporta mais nenhuma carga de um novo possvel cliente. A partir de ento, fechamos a rota 0-1-5-4-0 e passamos a considerar uma nova rota. Como o par seguinte 2-3 e essa conexo vivel pois no excede a capacidade do veculo realizamos essa conexo e terminamos o processo de fuses de rotas j que nenhum par de rotas podem ser conectados. O algoritmo seqencial gerou, ento, uma soluo com duas rotas. O custo de transporte para cada rota foi de 98 para 0-1-5-4-0 e 89 para 0-2-3-0. Totalizando um custo de 187. Na verso paralela, da mesma forma que na verso seqencial, o par 1 e 5 so conectados j que so viveis. No entanto o algoritmo paralelo considera a criao de mais de uma rota por vez e, por isso, os pontos 2 e 4 so tambm combinados. Finalmente, os pontos 3 e 5 so combinados. Dessa forma o algoritmo gera duas rotas 0-1-5-3-0 e -2-4-0 com custo de transporte total de 171. Vale notar que o nmero de rotas pode ser reduzido durante o processo do algoritmo paralelo. Duas rotas 0-1-2-0 e 0-3-4-0 sero combinados em uma rota se a conexo 2 e 3 for estabelecida; neste caso a rota resultante seria 0-12-3-4-0. Por isso, o algoritmo paralelo pode muitas vezes gerar resultados melhores que o algoritmo seqencial. No entanto, ele requer um cuidado muito maior no gerenciamento de muitas rotas em paralelo e por conta disso, devem ser considerados o fator de tempo e qualidade de resposta na hora de decidir a verso mais apropriada para a aplicao. 3.3.2 Algoritmos de Duas Fases um conjunto de algoritmos que resolve o problema do VRP divindo-o em dois problemas distintos:

30

1. Agrupamento Processo que agrupa o conjunto de clientes que demandam atendimento por critrio normalmente de localizao geogrfica sem que esses grupos gerem automaticamente solues inviveis. Por exemplo: gerar um agrupamento onde o veculo que vai percorr-lo no tenha condies de atender em tempo hbil todos os clientes dentro de suas respectivas janelas de tempo ou que estoure sua capacidade de carga; 2. Roteamento Processo de gerar uma rota, ou seja, um

seqenciamento de visitas que o veculo vai realizar para atender um conjunto de clientes; Existem abordagens Cluster-first Route-second que realiza primeiro o agrupamento dos clientes e em seguida realiza o seqenciamento dos atendimentos previstos de cada agrupamento e alocando a cada grupo um veculo. Neste tipo de algoritmo vrias verses foram desenvolvidas e que geraram bons resultados para algumas instncias do VRP, podemos citar: Fisher e Jaikumar (1981), The petal Algorithm, The sweep algorithm e Taillard. Esse nmero de trabalhos em cima desta abordagem mostrou que ela pode ser bem competitiva em relao a outras tcnicas para determinados tipos de instncia. O ato de agrupar um conjunto de clientes que compartilhem de localizaes geogrficas semelhantes limita o espao de busca drasticamente a um subconjunto de solues de boa qualidade. Isso torna o algoritmo muito mais eficiente e permite que resolva sub-problemas muito mais simples. No entanto, h perigo de gerar um agrupamento invivel, ou seja, que viole uma restrio o que mais limita os algoritmos de duas fases de ser bem sucedido para vrios tipos de instncias do problema. Restries fortes de capacidade de carga, janelas de tempo ou restrio de tipo de veculo permitido a atender determinados clientes atrapalha a formao de bons agrupamentos e o torna pouco eficiente entradas fortemente restritas.

31

Figura 12 - Agrupamento dos clientes

Existe a subclasse de algoritmos Route-first Cluster-second. Sua idia bsica primeiramente fazer um roteamento completo do grafo de clientes como se fosse somente um veculo, sem se preocupar com as restries do problema, e da decomp-lo em rotas de veculos viveis. Essa abordagem melhor se adqua a problemas com quantidade livre de veculos. Beasley foi que observou que essa segunda fase do algoritmo um Shortest Path Problem e pode ser resolvido com custo de tempo de ( ). No entanto continua com a

dificuldade de resolver um TSP grande na primeira fase. Talvez por conta disso, no seja conhecido nenhuma experincia computacional que tenha demonstrado resultados competitivos dessa classe de algoritmos em relao aos algoritmos mais bem sucedidos. 3.4 Meta-heursticas Meta-heursticas so mtodos heursticos de uso geral para problemas de otimizao onde no se sabe um algoritmo que encontre a soluo tima de forma eficiente (problemas NP-Completo). Atravs de combinaes aleatrias e do histrico de navegao pelo espao de busca, eles realizam operaes de busca local e global de forma a percorrer o espao de busca forma eficiente. Neste tpico sero apresentadas as principais meta-heursticas usadas para o problema de roteamento de veculos. No entanto, no abordaremos agora a tcnica de colnia de formigas. Este ser visto no prximo captulo,

32

uma vez que se trata da tcnica que entraremos em mais detalhes a fim de explicar o algoritmo desenvolvido MACS-VRPTW. 3.4.1 Simulated Annealing uma tcnica inspirada na Termodinmica. Para entender o que acontece, interessante apresentar uma anlise fsica. Vamos dividir o processo em duas fases: na primeira a temperatura do slido aumentada para um valor grande o suficiente no qual ele se funde; na segunda um resfriamento deve ser realizado lentamente at que o material se solidifique, sendo acompanhado e controlado esse arrefecimento. Nesta segunda fase, executada lentamente, os tomos que compem o material organizam-se numa estrutura uniforme com energia mnima. Isto faz com que os tomos desse material ganhem energia para se movimentarem livremente e, ao arrefecer de forma controlada, este movimento gradativamente inibido e os tomos se organizam numa configurao com menor energia interna, para ter, como resultado prtico, uma reduo dos defeitos do material. De forma anloga, o Simulated Annealing encontra uma soluo de baixo custo por se tratar daquela que tem baixo nvel energia interna. A tcnica se resume a substituir a soluo atual por uma soluo prxima, ou seja, na sua vizinhana no espao de solues, escolhida de acordo com uma funo objetivo e com um parmetro to, a temperatura. Quanto maior to, maior a componente aleatria que ser includa na prxima soluo escolhida. medida que o algoritmo avana, o valor de to decrementado, e o algoritmo comea a convergir para uma soluo tima local. Uma das principais vantagens deste algoritmo permitir testar solues mais distantes da soluo atual e dar mais independncia do ponto inicial da pesquisa. Isto importante pois se iniciarmos com a entrada de solues boas, poderia ser que o algoritmo no evolusse e aceitasse a soluo atual como a melhor. Como vemos, no o caso do Simulated Annealing. A cada gerao de um novo vizinho s de s, testada a variao do valor da funo objetivo, isto , = f (s) f (s), onde temos as seguintes situaes:
33

< 0: H uma reduo de energia, que implica que a nova soluo melhor que a anterior. O mtodo aceita a soluo e s passa a ser a nova soluo atual.

= 0: Caso de estabilidade, no havendo reduo de energia. Na verdade, situao pouco provvel de acontecer na prtica. A aceitao da soluo , portanto, indiferente.

0: Houve um aumento do estado de energia. A aceitao desse tipo de soluo mais provvel a altas temperaturas e bastante improvvel a temperaturas reduzidas. Para reproduzir essas caractersticas, geralmente usa-se uma funo

conhecida por fator de Boltzmann, que dada por e(-/t), onde a temperatura regula a probabilidade de solues com pior custo. 3.4.2 Tabu-Search A tcnica Tabu Search tambm um mtodo de busca local. No entanto, ela possui mecanismos que permitem contornar o problema das solues locais, visando obter a soluo global (tima) atravs do uso de estruturas que tentam imitar a memria dos seres humanos. Tais estruturas de memria permitem uma anlise sistemtica do espao das solues atravs do registro do percurso realizado nas ltimas iteraes do algoritmo. Naturalmente, apresenta uma complexidade maior em relao ao Simulated Annealing j que utiliza um mtodo de busca dinmica na vizinhana de uma soluo. Em geral, trs pontos so muito importantes nesta tcnica: O Tabu Search permite analisar as solues na vizinhana da soluo atual. As solues obtidas em cada iterao so tambm analisadas, tentando extrair caractersticas que possam ser comuns a boas solues e, desse modo, definir as direes de busca que podem conduzir s melhores solues; possvel desenvolver mtodos que incentivam a explorao de boas solues (cuja qualidade tambm analisada) e afastam a busca das direes que levam a solues mais fracas;

34

Sendo estruturas flexveis, o uso das memrias permite obter informaes sobre a influncia dos movimentos de uma soluo na estrutura e qualidade da soluo seguinte. Nem sempre o resultado de uma iterao uma soluo melhor que a

anterior (por exemplo, ao no ser respeitada uma restrio inicialmente imposta). Este aparente recuo poder conduzir explorao de outras zonas e, deste modo, superar a limitao de um mnimo local. A ao da memria determinante para evitar o aparecimento de ciclos, ou que solues j conhecidas sejam novamente alcanadas. O que acontece que algumas solues so marcadas como Tabu, de forma que sejam evitadas. Naturalmente, a existncia de um conjunto de solues Tabu poder impedir a obteno de solues ainda desconhecidas, eventualmente melhores do que as que so conhecidas. Para superar esta limitao, torna-se necessria a insero de relaxaes nos movimentos tabu. Assim, definida uma funo f(i,s) que tem como parmetros a iterao i e a soluo atual s e retorna a tendncia de se contrariar um determinado Tabu. 3.4.3 Algoritmos Genticos Um Algoritmo Gentico (AG) segue passos inspirados no processo biolgico de evoluo natural segundo a teoria de Darwin. Seguem a idia de sobrevivncia do mais forte (as solues com maiores aptides de cada gerao). um algoritmo estocstico (no determinstico) que trabalha com uma populao de solues simultaneamente e utiliza apenas informaes de custo e recompensa. No requer nenhuma outra informao auxiliar (como por exemplo o gradiente). Normalmente, eles so fceis de serem implementados e se adaptam bem a computadores paralelos. So facilmente hibridizados com outras tcnicas e funcionam com parmetros contnuos ou discretos. Os Algoritmos Genticos manipulam uma populao de indivduos (possveis solues). Os indivduos so combinados (cross-over) uns com os outros, produzindo filhos que podem sofrer ou no mutao (normalmente com
35

uma baixa probabilidade). As populaes evoluem atravs de sucessivas geraes at encontrar a soluo tima. 4 Sistema de Colnias de Formigas (ACS) O Sistemas de Colnia de Formigas (Ant Colony System - ACS) mais uma meta-heurstica inspirada em fenmenos da natureza. A idia est baseada no fato das colnias de formigas serem capazes de otimizar naturalmente seus caminhos em busca do alimento atravs de rastros de feromnios deixados por elas mesmas.

Figura 13 - Conceito de Colnia de Formigas

A regra bsica em torno de um sistema de colnia de formigas que toda vez que uma formiga acha uma rota para o alimento, em seu caminho de volta para o formigueiro ela libera seu feromnio. Ao longo do tempo, vrias formigas vo encontrando a prpria rota para o alimento. Estas tambm vo deixar seus rastros, que vo se sobrepondo e formando n caminhos com diferentes nveis de feromnio. As formigas que percorrem posteriormente o caminho para o alimento usam a informao dos rastros pr-existentes junto com um fator de aleatoriedade para decidir os seus prximos passos. O resultado quando o processo est amadurecido que um caminho de feromnio prevalecer e esse ser um caminho vivel (alcance o objetivo de chegar ao alimento) e de baixo custo (tenha o menor percurso).
36

Esse fenmeno existente nas colnias de formigas pode ser aplicado computacionalmente e resolver de forma eficiente problemas do TSP (Traveling Salesman Problem) e os problemas que derivam dele, tais quais: mTSP e VRP. Diferente das outras tcnicas j analisadas, o ACS tem um bom nvel de compatibilidade com problemas de roteirizao, e por isso, apresentam facilidade na adequao do algoritmo ao problema. Alm disso, ele contm os elementos bsicos de toda meta-heurstica: Intensificao A melhor rota recebe valorizada e novas rotas so incentivadas a manter esse caminho; Diversificao Rotas alternativas so abertas ao longo do tempo a fim de encontrar novos vales no espao de solues; Na modelagem de um algoritmo de otimizao comum que alguns conceitos sejam ajustados a fim de se adaptar ao problema que se deseja resolver. No caso do ACS, ao contrrio de uma colnia de formigas comum que deseja ir de um ponto a outro, o objetivo realizar um tour em cima de um grafo de modo que todos os vrtices sejam cobertos. Neste grafo, cada aresta contm um peso proporcional ao custo de deslocamento do ponto . Sobre este grafo ao e

um nvel de feromnio associado

formigas devem

realizar um tour sobre todos os pontos do grafo. A maneira como realiza seu tour determinada n a n. A cada vrtice do grafo que uma formiga cobre,

ela deve realizar a deciso sobre qual prximo vrtice ela deve percorrer dentre um conjunto de ns viveis com probabilidade . Para isso, uma regra probabilstica usada: [ ], escolhido (intensificao). escolhido com uma

o n com maior

Enquanto que com probabilidade ( probabilidade proporcional a [ [ { ], ] [ ]

) o n

(diversificao):

( )

Onde

so parmetros: (

o peso relativo dado importncia do valor ) determina a importncia relativa da

heurstico, enquanto

37

diversificao versus intensificao: quanto menor usar a regra probabilstica descrita na equao 1. Uma vez que as

maior a probabilidade de

formigas realizaram seu tour, realizado um

procedimento de busca local que deve varrer todas as solues vizinhas com intuito de se certificar de que a soluo encontra-se de fato em um mnimo local. Em seguida a melhor soluo encontrada usada para atualizar o rastro de feromnio. A partir da, o ciclo mais uma vez inciado at que se alcance um critrio de parada que deve ser: um nmero fixo de solues foram geradas, um tempo fixo de CPU foi gasto, ou nenhuma melhora na soluo foi alcanada durante um dado nmero de iteraes. No ACS, existem dois tipos de atualizao do feromnio: a atualizao local e a atualizao global. Enquanto a atualizao global atua na intensificao de busca prximo a melhor soluo encontrada, a atualizao local busca diversificar a soluo desmotivando a construo de rotas sobre a melhor j encontrada. Esses efeitos so alcanados atravs da aplicao dos seguintes artifcios: Toda vez que termina um ciclo do ACS a melhor rota usada para atualizar as trilhas de fermonio pelo grafo; Em contrapartida durante os tours feitos pelas formigas, cada vez que uma aresta usada o seu fermonio degradado de forma a tornar aquele caminho menos atrativo para as futuras formigas que passarem por ns vizinhos; No ACS, apenas a melhor soluo encontrada usada para fazer a atualizao global do feromnio. Na estratgia de atualizao proposta por Dorigo, Maniezzo e Colorni em 1991 com o Ant System (AS) todas as rotas eram usadas para atualizar a matriz de feromnio. Foi provado, no entanto, que a melhor estratgia a proposta por Gambardella e Dorigo que usada em ACS. A lgica que uma rota preferida memorizada na matriz de feromnio e futuras formigas usaro esta informao para gerar novas solues na vizinhana da rota preferida. O atualizado como segue:

38

( )

Onde

um parmetro e

o comprimento de

, o menor caminho

gerado pelas formigas desde o comeo da computao. Esta atualizao aplicada ao fim de cada ciclo, ou seja, cada vez que a fase construtiva termina. Para a atualizao local, toda vez que uma formiga se move do n para o n , o nvel de feromnio na aresta (i,j) diminudo de acordo com a seguinte regra: ( Onde ) ( ) ( ) um bom

o valor inicial das trilhas. Foi descoberto que

valor para este parmetro onde

o comprimento da soluo incial produzida o nmero de ns.

pela heurstica do vizinho mais prximo (Flood, 1956) e 5 MACS-VRPTW

MACS-VRPTW um algoritmo especfico de meta-heurstica que se baseia no Sistema de Colnia de Formigas para resolver o problema de roteamento de veculos com capacidade de carga limitada para os veculos e janelas de tempo para os clientes. Sua sigla significa Multi Ant Colony System for VRPTW e tem esse nome porque o algoritmo roda mais de um ACS de forma simultnea. Ao contrrio de outros algoritmos que buscam minimizar somente o caminho total percorrido pelos veculos, o MACS-VRPTW tem dois objetivos simultneos: 1. Minimizar a quantidade total de veculos; 2. Minimizar o caminho total percorrido pelos veculos; Sendo o primeiro objetivo levado com maior prioridade em relao ao segundo, ou seja, se foi alcanado uma soluo que consiga realizar o percurso com uma quantidade menor de veculos, essa soluo vai ser aceita mesmo que o custo, em termos de caminho total percorrido, seja maior. No algoritmo, duas ACS so usadas:
39

ACS-TIME Busca minimizar, com uma frota de

veculos, o

deslocamento total que dever ser realizado para atenda todos os clientes dentro dos critrios pr-estabelecidos de janela de tempo e capacidade; ACS-VEI Busca encontrar um soluo vivel, que atenda todos os clientes corretamente, com uma frota de veculos ;

Quando o algoritmo iniciado, uma soluo inicial vivel computada usando a heurstica do vizinho mais prximo. Esta soluo inicial usada para determinar a melhor soluo e a quantidade inicial de veculos . A partir

da, duas threads sero ativadas, uma para o ACS-TIME que vai minimizar a soluo com com veculos e outra para o ACS-VEI que vai minimizar a soluo

veculos. Aguarda-se at ou o ACS-TIME retorne uma soluo com

um custo total de deslocamento menor ou o ACS-VEI retorne soluo vivel com um veculo a menos. No momento que alguma delas retornar uma nova soluo, o atualizado. Caso esta nova soluo tenha uma quantidade de , as threads do ACS-TIME e do ACS-VEI sero

veculos menor do que

encerradas e as duas threads so reiniciadas, sendo que agora com decrementado em uma unidade. Esse lao ser perpetuado at que seja alcanado um critrio de parada. 5.1 Colnias ACS-TIME e ACS-VEI O ACS-TIME um procedimento muito parecido com o ACS usado para construir solues do TSP (Traveling Salesman Problem). Esse procedimento recebe como entrada uma soluo incial para uma frota de veculos. Com

essa entrada, possvel inicializar as trilhas de feromnio do grafo correspondente regio de atuao. A partir de ento sero geradas formigas que sero ativadas pelo procedimento active_ant com o modo de busca local ativado. Cada formiga ir gerar uma soluo, e ao fim desse processo, caso a melhor soluo encontrada seja vivel e tenha um custo menor do que a melhor soluo atual, ela ser guardada em como a nova

melhor soluo e usada como parmetro para realizar a atualizao global de

40

feromnio do grafo. Este procedimento se repetir at alcanar um critrio de parada.

Figura 14 - Algoritmo ACS-TIME

Em relao ao ACS-VEI, diferente do ACS-TIME, o objetivo de encontrar uma soluo vivel com a quantidade de veculos passada por parmetro. Para isso, ele retira da soluo atual um veculo, e as atividades que passarem a ficar desalocadas devero sofrer tentativas de insero ao longo do procedimento. A nova soluo invivel gerada com a retirada do veculo deve ser utilizada para inicializar o grafo do feromnio. Um vetor com nome IN gerado, cada clula do vetor deve corresponder quantidade de vezes foi gerada uma soluo pelo ACS sem que determinado cliente fosse visitado.

41

Figura 15 - Algoritmo ACS-VEI

No ciclo principal, a tentativa de se gerar uma soluo vivel se d de forma parecida com o ACS-TIME, formigas so geradas e ativadas pelo

active_ant, porm desta vez a o procedimento de busca local vai desativado, j que no faz sentido fazer busca local em cima de uma soluo invivel e o vetor IN passado como parmetro. Aps a ativao da formiga a soluo gerada analisada e o vetor IN atualizado atravs da incrementao de uma unidade nas clulas em que o cliente correspondente no foi visitado. Esse vetor usado no procedimento active_ant para dar prioridade queles clientes que esto tendo dificuldades em entrar em na soluo. Uma vez que todas as formigas foram ativadas, verificado se a quantidade de clientes que foram visitados pelas solues geradas sofreu alguma melhora, em caso positivo a
42

melhor soluo guardada em

e o vetor IN reinicializado, e caso

ainda a nova soluo seja vivel ela enviada para o MACS-VRPTW como a nova melhor soluo encontrada . Caso uma nova soluo vivel no seja

encontrada, o feromnio atualizado globalmente e o processo refeito. 5.2 Modelo da Soluo

Figura 16 - Replicao do depsito

Para entender bem o algoritmo importante entender o tipo de soluo que ele gera. No MACS-VRPTW a soluo gerada foi adaptada para que se transformasse na soluo do TSP, ou seja, um caminho que passe por todos os pontos do grafo. Para realizar essa adaptao, preciso replicar o depsito a quantidade de vezes necessrias para que tenha a mesma quantidade veculos. Esses depsitos devem ser idnticos em termos de localizao e de conexo com os outros pontos. Na soluo, o caminho deve sair de um dos depsitos e partir para percorrer todos os pontos. Logicamente em algum momento ele passar pelos depsitos replicados, e cada vez que passar isso corresponder a um novo veculo saindo do depsito no horrio inicial de sada. Essa abordagem tem a vantagem de que as trilhas em direo ao depsito no ficam mais atrativas com o aumento da quantidade de veculos. Isso afeta positivamente a qualidade das solues produzidas pelo

procedimento construtivo. 5.3 Procedimento da Soluo construtiva

43

ACS-TIME e ACS-VEI usam o mesmo procedimento construtivo chamado active_ant. Ele similar ao usado no procedimento construtivo da ACS para o TSP. Seu objetivo construir uma soluo para o VRP utilizando o modelo de soluo descrito na seo anterior. Ento a formiga deve escolher um dos depsitos replicados para iniciar sua rota e em seguida escolher

sucessivamente o prximo cliente a visitar dentre aqueles que so viveis usando o mecanismo de intensificao e diversificao como foi descrito na equao 1. Neste mecanismo, o processo da escolha da formiga vai ser determinado probabilisticamente pelo nvel de atratividade de cada vrtice possvel. Esta atratividade vai ser determinada pelo resultado da combinao dos fatores: Percepo local de melhor caminho (heurstica do vizinho mais prximo); Atratividade provocada pela trilha de feromnio; E nos casos do active_ant chamado pelo ACS-VEI o (quando

chamado por ACS-TIME IN no usado e tem valor padro de zero) que determina a quantidade de vezes que o vrtice no foi inserido na soluo em tentativas anteriores; Esse processo de escolha se repetir at o momento que a formiga no encontre mais nenhum vrtice vivel do grafo para visitar. Para ser um vrtice vivel no MACS-VRPTW ele deve obedecer a regra da janela de tempo e da capacidade de carga do veculo.

44

Figura 17 - Algoritmo new_active_ant

No processo de construo da soluo, a cada iterao em que a formiga percorre uma aresta do grafo, uma atualizao local realizada para decrementar o nvel de feromnio da aresta usada e com isso diminuir seu nvel de atratividade como descrito na equao 3. comum, no entanto, a formiga percorrer todos os vrtices viveis e, mesmo assim, ainda restarem vrtices que ainda no foram visitados. Como o objetivo deste procedimento gerar uma soluo vivel e completa para o
45

MACS-VRPTW foi introduzido um procedimento de insero que tenta na fora bruta inserir todos os vrtices que ainda no entraram na soluo em algum ponto da rota da formiga. Como na construo do caminho pela formiga sobram poucos vrtices no visitados, o procedimento da insero se mostra eficiente no seu objetivo de completar a soluo. Por fim, um procedimento de busca local realizado com a finalidade de explorar de forma mais objetiva as solues vizinhas a fim de atingir o mnimo local da regio de explorao atual. O procedimento usado no MACS-VRPTW o CROSS Exchange, ele realiza diversas trocas de segmento de rotas entre os veculos. Para cada par de veculos so testadas todas as combinaes de troca de rotas e a melhor troca encontrada escolhida. Alm desse procedimento possvel tambm adicionar o procedimento de busca local INTRA Exchange que ao invs de trocar parte da rota e depois voltar para ela mesma, a troca realizada e dessa vez termina a rota no depsito replicado do par vizinho. 5.3.1 Procedimento da Insero No tpico anterior foi descrito que o MACS-VRPTW usa um procedimento de insero para completar rotas incompletas geradas pelo mtodo active_ant. Esse procedimento recebe uma soluo parcial do VRP e um conjunto de clientes (vrtices do grafo) que devem ser includos na soluo. O procedimento consiste basicamente em percorrer todas as rotas da soluo buscando por folgas entre os atendimentos dos veculos que possa ser inserido uma das atividades desalocadas sem que quebre nenhuma restrio imposta pelo problema. Essa iterao feita at que no exista mais nenhum cliente para ser inserido ou que no seja encontrada nenhuma brecha vivel para inserir os clientes restantes. Note que este procedimento visa somente completar a soluo sem se preocupar com sua qualidade da soluo que est sendo alterada. Por isso, essa tcnica recomendada apenas para inserir poucos clientes que estejam faltando, uma vez que a tendncia que esse procedimento deteriore a

46

soluo at ento gerada. Caso o procedimento seja aplicado para inserir muitos clientes, a soluo no ter qualidade alguma. 5.3.2 Procedimento de Busca Local: CROSS-EXCHANGE um procedimento que realiza busca por solues vizinhas visando alcanar o mnimo local da regio de busca onde se encontra. No MACSVRPTW ele aplicado toda vez que acha uma nova soluo pelo procedimento active_ant. O objetivo que uma vez que a colnia de formigas achou uma soluo de boa qualidade explorar seus vizinhos de modo fechar o espao de busca pela regio e, dessa forma, melhorar em relao a soluo j encontrada. A idia do procedimento realizar trocas de segmentos de rotas entre os veculos. Essas trocas no podem violar o conjunto de restries do problema e devem sempre apresentar uma melhora em relao resposta anterior. O procedimento pode ser descrito da seguinte forma: 1. Para cada par de rotas (r1 e r2) existente na soluo faa: 1.1. Gere todos os possveis subconjuntos das rotas r1 e r2; 1.2. Simule troca de cada possvel par de segmentos de rotas entre r1 e r2; 1.3. Para cada simulao que apresentar um resultado melhor em relao a atual melhor soluo realize a troca como mostra a figura 18 e continue o procedimento;

Figura 18 - Operao de CROSS-EXCHANGE

47

5.4

Resultados O algoritmo MACS-VRPTW foi baseado no artigo de Gambardella de 1999

[5]. Os resultados obtidos pela implementao dele so mostrados nessa seo. Alm disso, ser feita uma anlise dos resultados alcanados. A implementao possui algumas diferenas em relao ao algoritmo

implemntado por [16]. Podemos listar as seguintes diferenas: O critrio de parada definido pela quantidade de ciclos que o resultado no evoluiu. Na implementao proposta pelo artigo posto um tempo fixo de parada; O algoritmo implementado no considera a capacidade do veculo; Na implementao original, foi adicionado ao algoritmo o procedimento de busca local INTRA-EXCHANGE alm do CROSS-EXCHANGE. Neste trabalho a busca local realizada apenas com CROSS-EXCHANGE; Existem diferenas implcitas no idenficadas que afetaram a qualidade do resultado em relao ao que foi apresentado no artigo; O algoritmo foi testado em cima dos problemas de benchmark de Solomon [6] (Solomon, 1987) composto por 6 tipos de problemas diferentes (C1, C2, R1, R2, RC1, RC2). Cada conjunto de problemas tem entre 8 e 12 problemas de tamanho de 100 ns. Os nomes dos seis problemas tm os seguintes significados: C significa que so problemas cujos ns esto agrupados (clusters). O R significa que os ns esto espalhados de forma randmica. E RC significa que so os ns espalhados de forma hbrida, parte dos ns esto agrupados e parte esto espalhados randomicamente. Em relao numerao os problemas que comeam com 1 tm janelas de tempo estreitas e pequena capacidade de carga do veculo. Enquanto os que comeam com 2 tm largas janelas de tempo e alta capacidade de carga. Por isso, vai ser possvel notar nos resultados que problemas do tipo 2 tm bem menos rotas e, conseqentemente, cada veculo atende muito mais clientes. Vale salientar que a verso do algoritmo apresentado neste trabalho no considera a capacidade do veculo, portanto, apenas as janelas de tempo so consideradas.

48

Os experimentos foram feitos, executando 3 vezes para cada entrada diferente, e o critrio de parada do algoritmo foi de encerrar o procedimento aps 10 iteraes sem melhoria na soluo. A implementao do cdigo foi feita em C#. Os experimentos foram feitos com os seguintes parmetros: ; ; = 10 formigas; ;

Abaixo so os resultados so mostrados. Na primeira coluna identificada a instncia do problema. Nas colunas seguintes possvel observar os resultados mais avanados at o momento, com a referncia devida ao artigo, em seguida os resultados do artigo para a tcnica do MACS-VRPTW, e por fim os resultados deste trabalho.
Outros artigos Vehicles Distance 20 1642.88 18 1472.62 14 1213.62 11 13 13 11 10 13 12 12 10 976.61 1360.78 1239.37 1073.34 948.57 1101.84 1072.41 1053.50 953.63 MACS-VRPTW Vehicles Distance 19 1652.47 17 1677.01 13 1383.26 10 14 13 11 10 12 11 11 10 1038.39 1414.54 1358.63 1188.28 1087.19 1284.76 1198.72 1250.95 1088.97 Este trabalho Vehicles Distance 20 1772.03 18 1646.11 15 1416.22 13 16 14 13 12 13 13 12 11 1481.22 1662.39 1448.62 1359.27 1388.94 1411.10 1413.94 1413.78 1333.95

Instance R101 R102 R103 R104 R105 R106 R107 R108 R109 R110 R111 R112

Artigo Jung and Moon [13] Alvarenga et al. [3] Rochat and Taillard [18] Jung and Moon [13] Jung and Moon [13] Ribas et al. [14] Jung and Moon [13] Alvarenga [2] Jung and Moon [13] Jung and Moon [13] Jung and Moon [13] Rochat and Taillard [18]

Tabela 4 - Melhores resultados encontrados para a classe de problemas R1

49

Instance R201 R202 R203 R204 R205 R206 R207 R208 R209 R210 R211

Other works Vehicles Distance 8 1147.80 8 6 5 5 5 4 4 5 5 4 1034.35 874.87 735.80 954.16 879.89 797.99 705.45 859.39 910.70 755.82

Work
Oliveira and Vasconcelos [12]

MACS-VRPTW Vehicles Distance 4 1434.60 3 3 3 3 3 3 3 3 3 3 1349.58 1168.08 1131.28 1141.01 1192.97 1284.06 1176.35 1027.71 1451.83 1146.55

Este trabalho Vehicles Distance 5 1470.15 4 4 3 4 3 3 3 3 4 3 1362.93 1335.71 1038.55 1389.70 1429.56 1353.94 1158.35 1412.48 1337.53 1272.09

Jung and Moon [13] Jung and Moon [13]


Oliveira and Vasconcelos [12] Oliveira and Vasconcelos [12]

Jung and Moon [13]


Oliveira and Vasconcelos [12]

Jung and Moon [13] Jung and Moon [13] Jung and Moon [13]

Oliveira and Vasconcelos [12] Tabela 5 - Melhores resultados encontrados para a classe de problemas R2

Instance C101 C102 C103 C104 C105 C106 C107 C108 C109

Other works Vehicles Distance 10 828.94 10 828.94 10 828.06 10 824.78 10 828.94 10 828.94 10 828.94 10 828.94 10 828.94

Work Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18]

MACS-VRPTW Vehicles Distance 10 828.94 10 828.94 10 970.13 10 1284.59 10 828.94 10 828.94 10 828.94 10 1115.55 10 1539.70

Este trabalho Vehicles Distance 10 838.02 10 1211.21 10 1149.74 10 1157.64 10 937.50 10 971.54 10 929.14 10 1062.90 10 979.01

Tabela 6 - Melhores resultados encontrados para a classe de problemas C1

Instance C201 C202 C203 C204 C205 C206 C207 C208

Other works Vehicles Distance 3 591.56 3 591.56 3 591.17 3 590.60 3 588.88 3 588.49 3 588.29 3 588.32

Work Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18] Rochat and Taillard [18]

MACS-VRPTW Vehicles Distance 3 591.56 3 591.56 3 736.85 3 744.96 3 588.88 3 588.49 3 588.29 3 588.49

Este trabalho Vehicles Distance 3 591.56 4 1016.01 4 1212.97 4 1124.27 3 627.92 3 631.06 4 754.77 3 642.66

Tabela 7 - Melhores resultados encontrados para a classe de problemas C2

50

Instance RC101 RC102 RC103 RC104 RC105 RC106 RC107 RC108

Other works Vehicles Distance 15 1623.58 14 11 10 16 13 12 11 1461.23 1249.86 1135.48 1518.58 1377,35 1212.83 1117.53

Work Rochat and Taillard [18] Jung and Moon [13] Jung and Moon [13] Cordeau et al. [19] Jung and Moon [13] Alvarenga et al. [3] Jung and Moon [13] Jung and Moon [13]

MACS-VRPTW Vehicles Distance 15 1657.63 13 11 11 14 12 12 11 1515.84 1475.51 1252.09 1626.88 1429.61 1480.11 1352.92

Este trabalho Vehicles Distance 16 1866.16 14 13 12 16 14 14 12 1763.73 1554.99 1449.14 1897.60 1715.06 1597.89 1328.70

Tabela 8 - Melhores resultados encontrados para a classe de problemas RC1

Instance RC201 RC202 RC203

Other works Vehicles Distance


9 8 5 1265.56 1095.64 926.89

Work

MACS-VRPTW Vehicles Distance


1487.85 1358.45 1329.36 1167.13 1509.41 1317.78 1171.31 1095.12

Jung and Moon [13] 4 Jung and Moon [13] 4 Oliveira and Vasconcelos 3 [12] 4 786.38 Jung and Moon [13] 3 RC204 7 1157.55 Jung and Moon [13] 4 RC205 7 1054.61 Jung and Moon [13] 3 RC206 6 966.08 Jung and Moon [13] 3 RC207 4 778.93 Oliveira and Vasconcelos 3 RC208 [12] Tabela 9 - Melhores resultados encontrados para a classe de problemas RC2

Este trabalho Vehicles Distance 5 1711.00 4 1636.74 4 1496.92


3 5 4 4 3

1440.49 1765.14 1576.57 1529.20 1362.52

Os resultados alcanados nesta implementao, apesar de no ter alcanado os nveis reais dos algoritmos, se mostraram eficientes melhorar o resultado. Nas imagens abaixo comparamos os resultados gerados pela heurstica de Nearest Neighbor de Gambardella, pelo procedimento de busca local CROSS-EXCHANGE (usa Nearest Neighbor como base) e pelo MACSVRPTW, e notamos que h uma melhora substancial entre um algoritmo e outro. No primeiro exemplo, o resultado saiu de 2015,21 com NN (Nearest Neighbor), passou para 1949,92 com o CROSS-EXCHANGE e alcanou 1772,03 com o algoritmo de Meta-heurstica que mais avanado. No segundo exemplo, o resultado comeou com 257,92 com NN, passou para 196.87 com CROSS-EXCHANGE e foi para o resultado timo com MACS-VRPTW de 191,81.

51

Figura 19 - Instncia R101, com o algoritmo NN_Gambardella alcanou o custo de 2015,21.

Figura 20 - Instncia R101, com o algoritmo CROSS-EXCHANGE alcanou o custo de 1949,92.

52

Figura 21 - Instncia R101, com o algoritmo MACS-VRPTW alcanou o custo de 1172,03.

Figura 22 - Instncia C101 (reduzido para 25), com o algoritmo NN_Gambardella alcanou o custo de 257.92.

53

Figura 23 - Instncia C101 (reduzido para 25), com o algoritmo CROSS-EXCHANGE alcanou o custo de 196.87.

Figura 24 - Instncia C101 (reduzido para 25), com o algoritmo MACS-VRPTW alcanou o custo de 191,81.

54

Concluso Neste trabalho vimos a importncia de se resolver um problema de

roteamento de veculos e as vrias abordagens que podem ser utilizadas para alcanar resultados satisfatrios. Sabe-se, agora, que no existe uma tcnica definitiva para a resoluo desse problema. Podemos dizer que se queremos resolver o VRP para pequenas entradas o uso de algoritmos exatos o mais recomendvel, pois acha solues timas em um tempo aceitvel. E para entradas maiores podemos optar por heursticas e meta-heursticas. O primeiro mais recomendado para um uso restrito, onde se conhea os tipos de entrada que devem ser submetidos ao algoritmo que devem ser compatvel heurstica usada, enquanto o segundo resolve para entradas mais gerais, em tempo relativamente curto alcanando solues prximas das ideais. Esta ltima talvez seja a aboragem mais usada no mercado em geral. Com isso, toda essa explorao do estado da arte permite ao leitor hoje escolher a tcnica mais adequada para o seu problema. Na parte de estudo do MACS-VRPTW pudemos verificar que ele tem boa facilidade de encontrar solues viveis rapidamente. No caso dos algoritmos genticos, por exemplo, eles podem gerar novas solues inviveis, o que s vezes pode ser um problema, pois para espaos de solues muito restritos a busca se tornaria muito ineficiente. J em relao tcnicas que usam colnias de formigas, sua gerao de solues retorna sempre uma soluo vivel. No entanto, mesmo com essa vantagem, vimos na seo de resultados que o MACS-VRPTW j no possui mais os melhores resultados em termos de custo da soluo. Sabe-se, porm, que os melhores resultados alcanados nestes artigos provem de tcnicas de meta-heursticas sejam elas puras ou hbridas, o que indica que o caminho para melhoria dos resultados devem estar nessa classe tcnicas. O algoritmo implementado no alcanou os resultados atingidos pelo artigo. Isso se deve, dentre outros fatores, falta de clareza do artigo na explicao de algumas sub-tcnicas que o algoritmo usava e de alguns procedimentos que no foram bem explicitados. Pretende-se, a partir de agora, trabalhar nesses resultados para alcanar os nveis alcanados pelo artigo,
55

pesquisando formas alternativas de idenficar onde ocorreram os desvios da tcnica. Feito isso, pretende-se partir para buscar formas de melhorar o algoritmo usando a mesma tcnica-base de colnia de formigas. A insero de algumas heursticas dentro o algoritmo podem levar a melhorias de resultados em menor tempo de processamento. A partir dessas tentativas, pretende-se dar continuidade ao estudo com a finalidade de gerar melhores resultados para o benchmark de Solomon e, com isso, avanar cientificamente nesta rea da otimizao.

56

7 [1] [2]

Referncias Bernab Dorronsoro Daz. VRP Web; Disponvel http://neo.lcc.uma.es/radi-aeb/WebVRP/. 13/12/2011. em:

Alvarenga, G.B. Um algoritmo hbrido para os problemas de roteamento de veculos esttico e dinmico com janela de tempo. Tese de Doutorado do Programa de Ps-Graduao em Cincia da Computao, Universidade Federal de Minas Gerais, 2005. Alvarenga, G., Mateus, G. & de Tomi, G. A genetic and set partitioning two-phase approach for the vehicle routing problem with time windows. Computers & Operations Research, 2007, Vol. 34, pp. 1561-1584. Ant colony Optimization for vehicle routing problems: from theory to applications; For, Y., Routing, V., With, P., & Windows, T. (1999). MACS-VRPTW: A MULTIPLE ANT COLONY SYSTEM FOR VEHICLE ROUTING PROBLEMS WITH TIME WINDOWS In D . Corne , M . Dorigo and F. Glover , editors New Ideas in Optimization Chapter 5 MACS-VRPTW: A MULTIPLE ANT COLONY SYSTEM FOR. Optimization, 1-17. Solomon. Best Know Solutions Identified by Heuristics. Disponvel em: http://web.cba.neu.edu/~msolomon/heuristi.htm. 13/12/2011. Paolo Toth, Daniele Vigo. The Vehicle Routing Problem. Editora SIAM. Humberto Brando, Germano Crispim. A hybrid search method for vehicle Routing Problem with time windows. Springer Science, 19/12/2008. Bruce L. Golden, Subramanian Raghavan, Edward A. Wasil. Vehicle Routing Problem: Lastest advances and new challenges. Editora Springer. Cid Carvalho de Souza, Apresentao em slides:Branch-and-Bound. Jens Lysgaard, Clarke & Wright's Savings Algorithm. September 1997. Oliveira, H. C. B. & Vasconcelos, G. A hybrid search method for the vehicle routing problem with time windows. Annals of Operations Research, Springer Netherlands, 2010, 180, 125-144. Jung, S. & Moon, B.R. A Hybrid Genetic Algorithm for the Vehicle Routing Problem with Time Windows. Genetic and Evolutionary Computation Conference (GECCO). Morgan Kaufmann, 2002, pp. 13091316 Siebn.de, Applet: Simulao da aplicao do algoritmo Tabu Search. Disponvel em: http://siebn.de/other/tabusearch/. 13/12/2011. Clarke, G. & Wright, J.W.: "Scheduling of Vehicles from a Central Depot to a Number of Delivery Points", Operations Research, Vol. 12, 1964, pp. 568-581. Aplicao de VRP para plataforma http://vrp.sourceforge.net/. 13/12/2011. Windows. Disponvel em:

[3]

[4] [5]

[6] [7] [8]

[9]

[10] [11] [12]

[13]

[14] [15]

[16]

57

[17]

Kunigami, Algoritmo de Branch and Cut. Disponvel em: http://kuniga.wordpress.com/2010/10/15/algoritmo-de-branch-and-cut/. 13/12/2011. Rochat, Y. & Taillard, R.D. Probabilistic diversification and intensification in local search for vehicle routing. Journal of Heuristics, 1995, Vol. 1, pp. 147-167. Cordeau, J. F. Laporte, G. & Mercier, A. A unified Tabu Search heuristic for vehicle routing problems with time windows. Journal of the Operational Research Society, 2001, Vol. 52, pp. 928-936.

[18]

[19]

58

Potrebbero piacerti anche