dissertacao carlos eduardo v13

Upload: jjtex

Post on 02-Mar-2016

26 views

Category:

Documents


0 download

TRANSCRIPT

  • CARLOS EDUARDO DI GIACOMO ARAJO

    ALGORITMOS GENTICOS HBRIDOS SEM DELIMITADORES DE ROTAS PARA PROBLEMAS DE

    ROTEIRIZAO DE VECULOS

    Dissertao apresentada Escola Politcnica da Universidade de So Paulo para obteno do Ttulo de Mestre em Engenharia.

    So Paulo 2008

  • CARLOS EDUARDO DI GIACOMO ARAJO

    ALGORITMOS GENTICOS HBRIDOS SEM DELIMITADORES DE ROTAS PARA PROBLEMAS DE

    ROTEIRIZAO DE VECULOS

    Dissertao apresentada Escola Politcnica da Universidade de So Paulo para obteno do Ttulo de Mestre em Engenharia.

    rea de Concentrao: Engenharia de Sistemas Logsticos

    Orientador: Prof. Dr. Cludio Barbieri da Cunha

    So Paulo 2008

  • FICHA CATALOGRFICA

    Arajo, Carlos Eduardo Di Giacomo Algoritmos genticos hbridos sem delimitadores de rotas

    para problemas de roteirizao de veculos / C.E.Di G. Arajo. -- ed.rev. -- So Paulo, 2007.

    89 p.

    Dissertao (Mestrado) - Escola Politcnica da Universidade de So Paulo. Departamento de Engenharia de Transportes. Sistemas Logsticos.

    1.Heurstica 2.Algoritmos genticos 3.Roteirizao de ve- culos I.Universidade de So Paulo. Escola Politcnica. Depar-tamento de Engenharia de Transportes II.t.

    Este trabalho foi revisado e alterado em relao verso original, sob responsabilidade nica do autor e com a anuncia de seu orientador.

    So Paulo, 16 de janeiro de 2008.

    Assinatura do autor _____________________________

    Assinatura do orientador ________________________

  • A minha esposa Thais e ao colega Alexandre Ges.

  • AGRADECIMENTOS

    Em primeiro lugar, ao professor Cludio Barbieri da Cunha, que alm de ter em muito ajudado no desenvolvimento desta dissertao com seu conhecimento, sempre que precisei me incentivou e mostrou o caminho a ser seguido.

    Aos professores Marco Brinati e Miguel Cezar Santoro pelos conselhos dados no exame de qualificao.

    Aos professores Nicolau Gualda e Rui Botter pelos conhecimentos transmitidos em sala de aula.

    Ao professor Hugo Yoshizaki por ter despertado em mim o gosto pela logstica.

    Aos meus pais e meu irmo pelo apoio que sempre me deram em minhas atividades acadmicas e ao meu amigo Guilherme Maciel pelo importante auxlio prestado.

    Thais, por sua compreenso e apoio durante todo esse tempo em que teve que dividir minha ateno com o desenvolvimento deste trabalho.

  • RESUMO

    Apesar de serem utilizados com sucesso em problemas de roteirizao clssicos como o do caixeiro-viajante e o de roteirizao de veculos com janelas de tempo, os algoritmos genticos no apresentavam bons resultados nos problemas de roteirizao de veculos sem janelas de tempo.

    Utilizando-se de uma tendncia recente de hibridizao de algoritmos genticos, Prins (2004) elaborou um algoritmo para o problema de roteirizao de veculos sem janelas de tempo, monoperodo, e que obrigatoriamente atenda a todos os clientes cujos resultados, quando aplicado a instncias de Christofides et al. (1979) e de Golden et al. (1998), so comparveis aos melhores cdigos elaborados com base na busca tabu.

    Diferentemente da maioria dos algoritmos genticos apresentados para soluo de problemas de roteirizao de veculos, no mtodo desenvolvido por Prins (2004) o cromossomo composto apenas pelos pontos a serem atendidos, no contendo delimitadores de rotas. Estas so definidas a partir de um mtodo de particionamento do cromossomo.

    Este trabalho implementa o algoritmo descrito por Prins (2004) e prope a este melhorias em diversas de suas etapas, como inicializao, operao de crossover, operao de mutao, reinicializao e particionamento do cromossomo. As alteraes implantadas so aplicadas s instncias de Christofides et al. (1979) e comparadas com o algoritmo inicial em termos de qualidade de soluo e tempo de processamento. Finalmente, elaborado um algoritmo gentico que contempla as alteraes que obtiveram resultados positivos.

  • ABSTRACT

    In the Vehicle Routing Problem (VRP) we seek for a set of minimum-cost vehicle routes for a fleet of identical vehicles, each starting and ending at a depot, such that each customer is visited exactly once and the total demand of any route does not exceed the vehicle capacity. Several families of heuristics have been proposed for the VRP. They can be broadly classified into two main classes: classical heuristics developed between 1960 and 1990, and, more recently, metaheuristics. Among them, tabu search plays an key role, being acknowledged by most authors as the most successful approach for the VRP. In the literature some successful implementations of metaheuristic Genetic Algorithm (GA) can be found for classic routing problems such as the traveling salesman and vehicle routing problems with time windows. However, until recently, the same did not apply for the VRP.

    In this thesis we develop a genetic algorithm without trip delimiters, and hybridized with a local search procedure, for the solving the VRP, which is based on the work of Prins (2004). At any time, a chromosome can be converted into an optimal VRP solution (subject to chromosome sequence) by means of a splitting procedure, in which the chromosome sequence, representing a giant tour, is partitioned into feasible routes in terms of vehicle capacities.

    Starting with the procedure originally proposed Prins (2004), we then introduce new improvements in terms of the different components of the GA, aiming to obtain improved solutions. These include how we determine the initial population, different partitioning approaches, alternative reproduction (crossover) processes, a granular tabu mechanism similar to the one proposed by Toth and Vigo (2003 and, finally, in changes in the reinitialization process, aiming to reestablish diversity.

    Computational experiments are presented, based on the 14 classical Christofides instances for the VRP. The results show that the proposed improved versions of the GA allow us to obtain better solutions when compared to the original approach by Prins (2004).

  • SUMRIO Lista de Figuras

    Lista de Tabelas

    Lista de Quadros

    1 INTRODUO 1 1.1 APRESENTAO 1 1.2 RELEVNCIA DO PROBLEMA 2 1.3 DELINEAMENTO DO TRABALHO 4

    2 REVISO DA LITERATURA 5 2.1 O PROBLEMA DE ROTEIRIZAO DE VECULOS 5 2.2 ESTRATGIAS DE SOLUO PARA PROBLEMAS DE ROTEIRIZAO DE VECULOS 6 2.2.1 METAHEURSTICAS APLICADAS A PROBLEMA DE ROTEIRIZAO DE VECULOS 10 2.3 ALGORITMOS GENTICOS PARA O PROBLEMA DE ROTEIRIZAO DE VECULOS 15 2.3.1 PRINCIPAIS TRABALHOS NA LITERATURA ENVOLVENDO ALGORITMOS GENTICOS PARA O PROBLEMA DE ROTEIRIZAO DE VECULOS 15 2.3.2 CROSSOVER OX 18 2.3.3 PARTICIONAMENTO DO ROTEIRO GIGANTE 23 2.3.4 ALGORITMO DE DIJKSTRA 24 2.3.5 PARTICIONAMENTO MLTIPLO DO ROTEIRO GIGANTE 28 2.3.6 DIFERENA ENTRE PARTICIONAMENTO DE PRINS (2004) E SCHMITT (1995) 28 2.4 TRABALHOS DESENVOLVIDOS NO MBITO DA ESCOLA POLITCNICA DA USP 30 2.5 CONSIDERAES FINAIS DO CAPTULO 33

    3 CARACTERIZAO DO PROBLEMA 34 3.1 DESCRIO DO PROBLEMA 34 3.2 FORMULAO MATEMTICA 35

    4 ESTRATGIA DE SOLUO 38 4.1 ALGORITMO APRINS 39

  • 4.1.1 GERAO DA POPULAO INICIAL 39 4.1.2 AVALIAO DA APTIDO DOS CROMOSSOMOS 40 4.1.3 SELEO DOS INDIVDUOS (CROMOSSOMOS) PARA O CROSSOVER 41 4.1.4 CROSSOVER 41

    4.1.5 BUSCA LOCAL 41 4.1.6 ATUALIZAO DA POPULAO 44 4.1.7 REINICIALIZAO 45 4.2 ALGORITMOS PROPOSTOS 46 4.2.1 ALTERAES PROPOSTAS NA GERAO DA POPULAO INICIAL 46 4.2.2 ALTERAES PROPOSTAS NO PARTICIONAMENTO DO CROMOSSOMO 49 4.2.3 ALTERAES PROPOSTAS NA SELEO DO FILHO GERADO NO CROSSOVER 50 4.2.4 ALTERAES PROPOSTAS NA BUSCA LOCAL 51 4.2.5 ALTERAES PROPOSTAS NA REINICIALIZAO DO ALGORITMO 52 4.3 CONSIDERAES FINAIS DO CAPTULO 53

    5 EXPERIMENTOS COMPUTACIONAIS 54

    5.1 INSTNCIAS-TESTE DE CHRISTOFIDES 54 5.2 AVALIAO DOS ALGORITMOS PROPOSTOS 55 5.2.1 ALGORITMOS COM ALTERAES NO PARTICIONAMENTO DO CROMOSSOMO 57 5.2.2 ALGORITMOS COM ALTERAES NA GERAO DA POPULAO INICIAL 58 5.2.3 ALGORITMOS COM ALTERAES NA SELEO DO FILHO GERADO NO CROSSOVER 59 5.2.4 ALGORITMOS COM ALTERAES NA BUSCA LOCAL 60 5.2.5 ALGORITMOS COM ALTERAES NA REINICIALIZAO DO ALGORITMO 62 5.3 ALGORITMO AMELHO 63 5.4 CONSIDERAES FINAIS DO CAPTULO 66

    6 CONSIDERAES FINAIS 67 6.1 CONCLUSES 67 6.2 RECOMENDAES E PRXIMOS PASSOS 68

    7 BIBLIOGRAFIA 70

  • LISTA DE FIGURAS

    Figura 2.1: Esquema de funcionamento do algoritmo gentico 11

    Figura 2.2: Crossover OX em cromossomo sem delimitadores de rotas 21

    Figura 2.3: Crossover OX em cromossomo com delimitadores de rotas 22

    Figura 2.4: Grafo que representa o roteiro gigante 24

    Figura 2.5: Algoritmo de Dijkstra: passo-a-passo 27

    Figura 2.6: Rotas formadas por Schmitt 29

    Figura 2.7: Rotas formadas pelo mtodo de particionamento simples do roteiro gigante 29

    Figura 4.1: Esquema de funcionamento do algoritmo gentico hbrido de Prins (2004) 39

    Figura 4.2: Fluxo de insero de cromossomo na populao 45

  • LISTA DE TABELAS

    Tabela 2.1: Coordenadas dos ns do roteiro gigante 24

    Tabela 4.1: Algoritmos com alteraes na gerao da populao inicial 47

    Tabela 4.2: Algoritmos propostos 53

    Tabela 5.1: Instncias de Christofides et al. (1979) 54

    Tabela 5.2: Algoritmos com alteraes no particionamento do cromossomo 57

    Tabela 5.3: Algoritmos com alteraes na gerao da populao inicial 58

    Tabela 5.4: Algoritmos com alteraes na seleo do filho gerado no crossover 59

    Tabela 5.5: Algoritmos com alteraes na busca local 60

    Tabela 5.6: Algoritmos com alteraes na etapa de reinicializao do algoritmo 62

    Tabela 5.7: Algoritmos que iro compor algoritmo AMELHO 63

    Tabela 5.8: Quantidade de vezes em que cada algoritmo proposto obteve o melhor resultado 64

    Tabela 5.9: Detalhamento dos resultados dos algoritmos propostos 65

  • LISTA DE QUADROS

    Quadro 2.1: Taxonomia dos problemas de roteirizao de veculos 7

  • 1

    1 INTRODUO

    1.1 Apresentao

    Este trabalho trata o problema de roteirizao de veculos sem janelas de tempo e com frota uniforme e infinita.

    A partir de uma relao de locais que devem ser atendidos, desde uma base onde est localizada a frota, a soluo do problema consiste em definir o roteiro de cada veculo, tendo como objetivo obter o custo total mnimo das rotas. Os veculos tm restries de capacidade e de durao total da rota e pode ou no haver tempo de servio no ponto a ser atendido. Todos os pontos devem ser atendidos.

    Nesta dissertao proposta e implementada uma estratgia de soluo baseada em algoritmos genticos para a soluo de problemas de roteirizao de veculos, com base na implementao apresentada por Prins (2004), que tem como principal caracterstica o cromossomo sem delimitadores de rotas.

    Buscou-se tambm desenvolver verses aprimoradas do algoritmo de Prins (2004), resultantes de alteraes nas seguintes etapas: gerao de solues iniciais, crossover, busca local, particionamento do cromossomo para gerao das rotas e reinicializao.

    Os algoritmos propostos so aplicados s instncias de Christofides et al. (1979) e os resultados em termos de qualidade da soluo e custo computacional so comparados com o algoritmo de Prins (2004) aqui implementado.

  • 2

    1.2 Relevncia do problema

    A elevada competio entre as empresas em um mundo globalizado exige que estas trabalhem com um alto grau de eficincia em todas as suas reas.

    A constatao de Ballou (1998), de que a logstica participa de pelo menos um tero do total de despesas da maioria das empresas, mostra a impacto que uma eficiente operao logstica tem no resultado de uma empresa.

    Dentro das operaes logsticas, o transporte rodovirio tem participao muito importante no custo de uma empresa que precise distribuir seus produtos, coletar matrias-primas ou que atue diretamente no mercado de transportes. A incerteza relacionada aos preos do petrleo torna ainda mais preocupante o futuro das despesas com transporte rodovirio.

    Assim, um aumento de produtividade na roteirizao de veculos fundamental para a competitividade de empresas que dependam do transporte rodovirio. Conseqncia desta necessidade o grande nmero de trabalhos publicados nessa rea (Assad, 1998).

    Como aponta Cunha (2000), desta maneira surgem inmeras oportunidades de desenvolvimento e aplicao de modelos matemticos a problemas reais em sistemas logsticos de transportes, como o problema de roteirizao de veculos.

    Como a grande maioria dos problemas de roteirizao de veculos encontrados na prtica apresenta dificuldades na resoluo por mtodos exatos, eles so resolvidos por processos heursticos, que buscam respostas timas em tempos computacionais viveis.

    Atualmente, segundo Cunha (2006), muitos dos pacotes de roteirizao de veculos disponveis no mercado ainda tm como base heursticas antigas, como a heurstica de economias de Clarke e Wright (1964) ou de varredura de Wren e Holiday (1972) e de Gillet e Miller (1974).

  • 3

    Dentre as classes de modelos que vm sendo desenvolvidos para soluo de problemas de roteirizao de veculos, as metaheursticas - definidas por Corloni (1996) como heursticas derivadas da observao de fenmenos fsicos e biolgicos e de inteligncia artificial - tm apresentado resultados muito bons, por muitas vezes timos, mesmo quando aplicadas a problemas reais em que mtodos otimizantes no so viveis.

    Proposto por Holland (1975), o algoritmo gentico uma metaheurstica derivada da observao da evoluo das espcies e vem sendo aplicado com sucesso em problemas de roteirizao de veculos com janelas de tempo e em problemas do caixeiro-viajante.

    No entanto, os algoritmos genticos aplicados a problemas de roteirizao de veculos sem janelas de tempo no vinham sendo competitivos quando comparados com algoritmos baseados na metaheurstica busca tabu, como os de Taillard (1993) e de Xu e Kelly (1996).

    Prins (2004), com sua proposta de algoritmo gentico com cromossomos sem delimitadores de rotas e com uma busca local intensa, chegou a resultados (em termos de qualidade de soluo e de custo computacional) muito prximos aos obtidos com a busca tabu, inserindo os algoritmos genticos no grupo das melhores heursticas para soluo de problemas de roteirizao de veculos para as instncias de Christofides et al. (1979).

    Este trabalho, portanto, tem como objetivo propor um algoritmo para a soluo de um problema fundamental para a competitividade de empresas que dependam de uma roteirizao de veculos eficiente.

  • 4

    1.3 Delineamento do trabalho

    O captulo 2 contm uma reviso da literatura, onde so apresentados modelos de soluo para problemas de roteirizao de veculos. dado um detalhamento maior aos mtodos baseados em algoritmos genticos.

    No captulo 3 o problema de roteirizao de veculos caracterizado e matematicamente formulado.

    O capitulo 4 descreve em detalhes o algoritmo gentico publicado por Prins (2004), apresentando tambm os algoritmos propostos neste trabalho.

    Os resultados computacionais dos algoritmos propostos aplicados nas instncias de Christofides et al. (1979) so apresentados e analisados no captulo 5.

    Finalmente, no captulo 6 so apresentadas as concluses desta pesquisa e recomendaes para trabalhos futuros.

  • 5

    2 REVISO DA LITERATURA

    Este captulo inicia-se com um breve histrico do problema de roteirizao de veculos. Em seguida, na seo 2.2, so apresentadas as estratgias para soluo do problema, com nfase nas estratgias metaheursticas, que correspondem s estratgias mais recentes e com melhores resultados. Na seo 2.3 so descritos os principais trabalhos que envolvem algoritmos genticos para soluo de problemas de roteirizao de veculos j publicados na literatura. As duas principais caractersticas do algoritmo gentico de Prins (2004), utilizao de cromossomos sem delimitadores de rotas e formao das rotas a partir do mtodo do particionamento do roteiro gigante tambm esto na seo 2.3. Os principais trabalhos desenvolvidos no mbito da Escola Politcnica da Universidade de So Paulo so relacionados na seo 2.4, seguindo-se as consideraes finais.

    2.1 O Problema de roteirizao de veculos

    O problema de roteirizao de veculos (VRP Vehicle Routing Problem) consiste basicamente em determinar um conjunto de rotas a serem executadas por uma frota de veculos estabelecida em dado depsito central, para atender (coletar, entregar ou visitar) um conjunto de clientes geograficamente dispersos, que tm custos e distncias associados a suas ligaes.

    O objetivo determinar o conjunto de rotas de menor custo que atenda a todos os clientes, respeitando-se as restries operacionais definidas para cada problema, como a capacidade dos veculos (sendo que a frota pode ser homognea ou heterognea), durao das rotas, janelas de tempo para atendimento dos clientes, entre outras.

    O primeiro problema estudado envolvendo roteirizao foi o problema do caixeiro-viajante (do ingls TSP traveling salesman problem), que segundo Cook (2005) foi introduzido pelo economista Karl Menger em Viena, na dcada de 20. Seu objetivo estabelecer a melhor rota ou seqncia de cidades a serem visitadas pelo

  • 6

    vendedor, a fim de que este percorra a menor distncia possvel, visitando cada cidade exatamente uma vez.

    Restries operacionais foram sendo adicionadas ao problema do caixeiro-viajante com a finalidade de representar com mais fidelidade os diferentes tipos de problemas que envolvem a definio de roteiros para pessoas e veculos. De acordo com Cunha (2006), os problemas de roteirizao podem ser vistos como problemas de mltiplos caixeiros viajantes com restries de capacidade e outras restries que dependem de cada aplicao.

    Assim, desde sua formulao original, proposta por Dantzig e Ramser (1959), o problema de roteirizao de veculos tem sido abordado de maneiras variadas e apresentado em diferentes formulaes, aplicaes e estratgias de soluo.

    As diversas caractersticas para taxonomia aplicveis a problemas de roteirizao de veculos, conforme definidas por Bodin et al. (1983), so apresentadas no Quadro 2.1.

    2.2 Estratgias de soluo para problemas de roteirizao de veculos

    Diante da grande diversidade de fatores e condicionantes que aparecem em problemas de roteirizao, como ilustrado no Quadro 2.1, para que possam ser atingidas solues de qualidade e para que sejam supridas as demandas particulares de cada problema originado de situaes reais, so necessrias estratgias matemticas eficazes e robustas o suficiente para serem aplicadas nos mais diferentes problemas.

    Para Laporte et al. (1992), as estratgias de soluo de problemas de roteirizao e programao de veculos podem ser divididas em algoritmos exatos e solues heursticas.

  • 7

    Quadro 2.1:Taxonomia dos problemas de roteirizao de veculos

    Fonte: Bodin et al. (1983)

  • 8

    Os autores ainda enumeram algumas metaheursticas, ou heursticas modernas, j aplicadas a problemas de roteirizao: algoritmos genticos, colnias de formigas, busca tabu, redes neurais, GRASP, simulated annealing e deterministic annealing.

    O termo metaheurstica, introduzido pela primeira vez por Glover (1986), a unio de duas palavras gregas: heurstica, derivada do verbo heuriskein, que significa encontrar, e o sufixo meta, que significa alm, acima (no sentido de superior).

    De acordo com Cunha (2006), as metaheursticas podem ser definidas como as estratgias e tcnicas mais recentes e avanadas, que guiam outras heursticas a fim de se encontrar solues melhores, ultrapassando o ponto de parada das heursticas tradicionais.

    Segundo Osman (2002), uma metaheurstica pode ser definida como um procedimento mestre iterativo que guia e modifica a seqncia de operaes de heursticas subordinadas, a fim de produzir solues de alta qualidade de maneira eficiente. Pode combinar inteligentemente diferentes idias para explorar o espao de soluo usando estratgias adaptativas com aprendizado durante o processo. Busca-se evitar ficar preso em um timo local (para problemas que apresentam mltiplos timos locais) e/ou reduzir o espao de busca de maneira inteligente.

    As metaheursticas, inspiradas em processos no relacionados otimizao, tem sido foco de extensivas pesquisas, em particular na ltima dcada, e seu sucesso pode ser explicado por sua aplicabilidade genrica, flexibilidade para incorporar condicionantes reais, referncia a processos observados na natureza e ao excelente trade-off entre qualidade da soluo, tempo computacional e facilidade de implementao (Pirlot, 1996).

    Ainda segundo Laporte (2000), a tendncia de evoluo para estes mtodos de soluo seria a de resolver instncias de maior porte, com reduo do tempo de processamento.

  • 9

    Os mtodos exatos possibilitam a obteno da soluo exata e tima para o problema, enquanto mtodos heursticos no garantem que a resposta tima ser obtida. No entanto, seu custo computacional bem menor.

    Segundo Cunha (2006), sob a tica de otimizao, os problemas de roteirizao de veculos pertencem categoria conhecida como NP-difcil (do ingls NP-hard), ou seja, possuem ordem de complexidade exponencial. Em outras palavras, o esforo computacional de soluo cresce exponencialmente com o tamanho do problema (dado pelo nmero de pontos a serem atendidos). Em termos prticos, isto significa que geralmente no possvel resolver at a otimalidade, por mtodos exatos, problemas de certo porte pertencentes classe NP-difcil. Nem mesmo o mais avanado computador existente no mercado poderia resolv-los em tempo de processamento aceitvel.

    Assim, ainda segundo Cunha (2006), a maioria dos artigos encontrados na literatura para soluo de problemas de roteirizao de veculos descreve mtodos de solues heursticos. Essas estratgias de soluo baseiam-se em abordagens intuitivas, de modo que a estrutura particular do problema possa ser considerada e explorada de forma inteligente (Cunha, 1997). Esta caracterstica das heursticas, no entanto, faz com que muitas vezes elas caream de robustez quando aplicadas aos diferentes problemas de roteirizao de veculos, conforme mostrado por Hall e Partyka (1997).

    Laporte et al. (2000) apresentam uma reviso dos mtodos heursticos desenvolvidos para problemas de roteirizao, e os classificam em heursticas clssicas e heursticas modernas.

    No mesmo trabalho, heursticas clssicas so subdivididas em heursticas de construo, que constroem solues otimizadas para o custo, sem qualquer fase destacada de melhoria; heursticas de melhoria, que buscam melhorias da soluo atravs de trocas de segmentos intra e inter rotas; e heursticas de duas fases, que agrupam vrtices em rotas possveis e constroem rotas com trocas de informaes entre si. Entre os principais mtodos apontados para estes tipos de heursticas destacam-se, respectivamente, o do vizinho mais prximo, a heurstica das

  • 10

    economias de Clarke e Wright (1964), e a heurstica de varredura de Gillet e Miller (1974). to e quantidade de parmetros, ainda que com discreto prejuzo na qualidade das solues, a fim de tornar possvel a implantao destas metodologias em pacotes comerciais de roteirizao.

    2.2.1 Metaheursticas aplicadas a problema de roteirizao de veculos

    Nesta seo sero apresentadas sucintamente as principais metaheursticas aplicadas a problemas de roteirizao de veculos encontradas na literatura.

    Algoritmo Gentico O algoritmo gentico uma metaheurstica proposta por John Holland (1975) que se inspira na teoria de evoluo darwiniana, que considera que quanto melhor um indivduo se adapta ao seu meio ambiente, maior ser sua chance de sobreviver e gerar descendentes.

    Em linhas gerais, os algoritmos genticos trabalham com um grupo (ou populao) de solues. Cada indivduo representado por um cromossomo, que armazena as informaes genticas. Os cromossomos so compostos por genes, os quais so responsveis pelas caractersticas dos seres e so trocados ou transmitidos durante o processo de reproduo.

    A cada iterao, indivduos da populao so selecionados para reproduo, sendo os mais aptos com maior probabilidade de serem transmitidos para a gerao seguinte, e os demais menos aptos com maior probabilidade de serem eliminados de acordo com o princpio darwiniano de seleo natural e sobrevivncia do mais forte.

  • 11

    A Figura 2.1 ilustra o esquema geral de funcionamento do algoritmo gentico:

    Figura 2.1: Esquema de funcionamento do algoritmo gentico

    Entre os algoritmos genticos para soluo de problemas de roteirizao de veculos propostos, temos o de Shmitt (1995) e o de Van Breedam (1996), com resultados pouco animadores. Berger e Barkaoui (2003) e Prins (2004), apresentaram algoritmos genticos hbridos com resultados promissores. A seo 2.3 detalha estes algoritmos.

  • 12

    Busca Tabu Proposta por Glover (1986) para um trabalho mais recente, ver Glover e Laguna (1997) a metaheurstica busca tabu uma busca em vizinhana que procura no percorrer regies do espao de solues j visitadas e que no sejam promissoras.

    Para evitar que a busca v para tais regies, criada implcita ou explicitamente uma lista de movimentos tabu, ou seja, movimentos proibidos que, se realizados, poderiam levar a busca a essas regies.

    A mais importante associao com o uso tradicional da palavra tabu vem do fato de que proibies so transmitidas por meio de uma memria social, sujeita a modificaes no tempo; ou seja, o que proibido no momento corrente pode no ser proibido em um momento futuro, e vice-versa. Isso cria a ligao fundamental do sentido do termo tabu na busca tabu. O conjunto de elementos proibidos da busca tabu faz parte de uma memria evolutiva, o que possibilita sua alterao de acordo com o tempo e a circunstncia (Cunha, 2006).

    Partindo-se de uma soluo inicial, essa heurstica de busca local baseia-se na explorao da vizinhana de uma soluo, vizinhana essa definida pelos movimentos considerados em cada implementao especfica. Em problemas de roteirizao, por exemplo, pode-se imaginar um movimento de troca de dois clientes que pertencem a rotas diferentes, ou ainda realocao de um cliente, que troca sua posio dentro da prpria rota, ou movimentado para uma determinada posio em outra rota. Cada movimento transforma uma soluo intermediria em outra, e a cada iterao um movimento da vizinhana selecionado, sendo o processo repetido at se atingir um critrio de parada (Cunha, 2006).

    Pode-se citar os trabalhos de Gendreau et al. (1994), Taillard (1993), Taillard (1999), Gendreau et al. (1999) e Wassan e Osman (2002) como exemplos bem sucedidos de aplicaes de busca tabu a problemas de roteirizao de veculos. Das quatorze instncias de teste apresentadas em Christofides et al. (1979), o trabalho de Taillard (1993) atingiu cinco das melhores solues conhecidas e apresenta em mdia um desvio de 0,86% das melhores solues.

  • 13

    GRASP Proposta por Feo e Resende (1989, 1995), GRASP (Greedy Randomized Adaptative Search Procedure, ou procedimento de busca adaptativo randomizado guloso) uma metaheurstica iterativa em que cada iterao composta por duas etapas: construo e busca local. Na etapa de construo, determina-se uma soluo vivel, enquanto na busca local, a vizinhana desta soluo explorada at que se encontre um ponto de timo local.

    Na fase de construo, a soluo vivel formada por seguidas iteraes que adicionam um novo elemento por vez soluo em construo. Em um problema de roteirizao de veculos, esse novo elemento um cliente a ser atendido.

    O elemento que ser adicionado soluo em construo selecionado a partir de uma lista restrita de candidatos (LRC), composta pelos elementos que menos incrementem o custo da soluo em construo, segundo uma funo de avaliao gulosa (greedy). Definida a lista restrita de candidatos, o novo elemento escolhido aleatoriamente (randomized). Antes da adio do prximo elemento soluo em construo, os custos incrementais de todos os elementos so recalculados, o que d a caracterstica adaptativa ao GRASP.

    Construda a soluo vivel, o GRASP entra na fase de busca local, em que a soluo corrente substituda por uma soluo melhor de sua vizinhana, at o timo local ser obtido. Nesta fase, diversos mtodos de busca em vizinhana (inclusive metaheursticas) podem ser aplicados.

    As aplicaes de GRASP a problemas de roteirizao de veculos tm ocorrido principalmente na forma de algoritmos hbridos. Como exemplo, temos o GRASP aplicado em conjunto com busca tabu (Tortelly e Occhi 2006, Ho e Haugland, 2004) e em conjunto com mtodos de aprendizagem (Atkinson, 1998).

  • 14

    Simulated Annealing Simulated Annealing, tambm conhecida como tmpera (ou recozimento) simulada, uma metaheurstica proposta por Kirkpatrick et al. (1983), inspirada no processo trmico de resfriamento de um material, com a virtude de permitir escapar de um timo local atravs da aceitao de movimentos que pioram a soluo corrente. O termo simulated annealing deve-se analogia com a termodinmica, mais especificamente um processo fsico, denominado recozimento (annealing), no qual um material aquecido at atingir o estado lquido e em seguida, resfriado. Em altas temperaturas, os tomos tm liberdade de se moverem livremente. A medida que a temperatura diminui, os tomos tendem a se cristalizar num slido. Se a temperatura reduzida muito rapidamente, o slido cristalizado no apresenta forma. Se o resfriamento ocorre vagarosamente, maiores so as chances de se formar um cristal perfeito, ou seja, numa estrutura cristalina de energia mnima global. Para apresentar bons resultados, um resfriamento depende de uma temperatura inicial alta e de um resfriamento lento, a fim de evitar uma estrutura irregular e fraca, com alta energia em decorrncia do esforo interno despendido (Cunha, 2000).

    O algoritmo inicia-se com a definio de uma soluo inicial vivel S0, de uma temperatura T0 e de uma funo de reduo de temperatura .

    A partir de S0, o algoritmo gera aleatoriamente uma soluo vizinha S. Se S melhor do que S0, ela aceita como soluo corrente. Caso contrrio, a soluo tem uma probabilidade p(T) de ser aceita, e quanto maior a temperatura T, maior a chance de ela ser aceita.

    A temperatura T resfriada razo , reduzindo-se, assim, a probabilidade de se aceitar uma soluo pior.

    Usualmente a temperatura deve decrescer at zero, sendo esse o critrio de parada usual do SA. Entretanto, tal critrio pode levar a tempos de processamento muito elevados; na prtica, basta reduzir a temperatura at um nvel que a seja virtualmente impossvel aceitar um movimento de piora (Cunha, 2006).

  • 15

    Bent e Hentenryck (2004) propuseram uma heurstica hbrida, baseada em simulated annealing e busca local em vizinhana de grande porte para o problema de roteirizao de veculos com janelas de tempo em que se busca primeiramente minimizar o nmero de veculos necessrios e posteriormente a distncia total percorrida. Nesse trabalho foram obtidos os melhores resultados da literatura para o problema de roteirizao de veculos com janelas de tempo.

    2.3 Algoritmos genticos para o problema de roteirizao de veculos

    Esta seo inicia-se com uma breve descrio de algoritmos genticos para problemas de roteirizao de veculos publicados, abordando com maior profundidade, nas sees 2.3.2 e 2.3.3, dois fatores fundamentais para o sucesso do algoritmo de Prins (2004): codificao do cromossomo sem delimitadores de rotas, o que permite a utilizao do operador de crossover do tipo OX, e o mtodo de particionamento do roteiro gigante.

    2.3.1 Principais trabalhos na literatura envolvendo algoritmos genticos para o problema de roteirizao de veculos

    Segundo Gendreau et al. (1998) e Golden et al. (1998), a metaheurstica que apresenta os melhores resultados para soluo de problemas de roteirizao de veculos sem restries temporais a busca tabu, com resultados bem superiores queles obtidos por outras metaheursticas, como simulated annealing e algoritmos genticos.

    No que tange aos algoritmos genticos, esta constatao no bvia, uma vez que, para outros problemas de roteirizao de veculos, eles tm alcanado resultados muito bons, como os obtidos por Potvin (1996) para o problema do caixeiro-viajante e por Potvin e Bengio (1996) e Tangiah (1993) para problemas de roteirizao de veculos com janela de tempo.

  • 16

    Van Breedam (1996), por exemplo, construiu um algoritmo com delimitadores de rotas, ou seja, os cromossomos eram formados pelos pontos a serem atendidos e entre o final de uma rota e o incio de outra havia um gene ocupado pelo depsito. Assim, as operaes de crossover acabavam produzindo solues inviveis (ver seo 2.3.2) que eram rejeitadas, reduzindo a eficincia do algoritmo.

    O objetivo de Van Breedam (1996) era o de estudar o impacto de diversos parmetros em mtodos para soluo de problemas de roteirizao de veculos baseadas em algoritmos genticos e em simulated annealing, comparando seus resultados com os obtidos por um mtodo baseado em busca tabu. Assim, apesar de resultados semelhantes para as trs metaheursticas, no possvel medir a qualidade de seus algoritmos, j que ele no utilizou instncias da literatura nem comparou os resultados com aqueles disponveis na literatura.

    O que talvez explique o fato de modelos baseados em algoritmos genticos no terem obtido bons resultados nas tentativas iniciais seja o modo de construo dos cromossomos. As primeiras tentativas foram baseadas em cromossomos com delimitadores de rotas, o que obrigava o algoritmo a executar procedimentos de reparo para transformar as solues inviveis obtidas nos crossovers em solues viveis.

    Para corrigir tais distores dos cromossomos com delimitadores de rotas, preciso utilizar algoritmos que corrigem os cromossomos gerados, o que eleva o custo computacional do crossover e prejudica a transmisso de bons trechos de rotas para as geraes seguintes (Prins 2004).

    Tais procedimentos so conhecidos por enfraquecer a transmisso da informao gentica dos pais para os filhos, apesar de haver alguns algoritmos reparadores promissores, como o apresentado por Mitchell et al. (2003), que segundo os autores tais algoritmos geram boas solues quando aplicado a problemas com menos de 1000 pontos de atendimento.

  • 17

    Para no utilizar procedimentos de correo de cromossomos, Schmitt (1995) elaborou um algoritmo gentico com cromossomos sem delimitadores de rotas, em que as rotas so criadas pela ordem dos genes do cromossomo. Uma nova rota iniciada no gene que no pde ser includo na rota anterior por ter afetado restries de carga ou de distncia percorrida.

    Schmitt (1995) aplicou seu algoritmo nas 14 instncias propostas por Christofides et al. (1979) com resultados pouco animadores. Apesar de seus resultados terem superado aqueles de mtodos heursticos mais simples, como o de Clarke e Wright (1964), eles so bem inferiores queles atingidos com heursticas um pouco mais elaboradas.

    Para atenuar os pontos fracos dos algoritmos genticos, como longos tempos de processamento e convergncia prematura para um timo local, recentemente vm sendo desenvolvidos algoritmos genticos hbridos.

    Nos algoritmos genticos hbridos, o algoritmo gentico em si utilizado para uma explorao global do espao de solues, enquanto outras heursticas so utilizadas para realizar uma explorao local.

    Berger e Barkaoui (2003), por exemplo, apresentaram um algoritmo gentico hibrido em que so criadas duas populaes que periodicamente trocam os seus indivduos. Os resultados para as instncias de Christofides et al. (1979) so muito bons, mas inferiores aos obtidos por Prins (2004) tanto em termos de custo computacional quanto de qualidade das solues.

    Prins (2004) apresentou um algoritmo gentico hbrido que se mostrou superior a todos os outros algoritmos genticos publicados, quando aplicados s instncias de Christofides et al. (1979) e Golden et al. (1998). Segundo ele, so dois os fatores responsveis pelo sucesso de seu mtodo:

    a) codificao de seu cromossomo sem delimitadores de rotas, o que permite a utilizao do operador de crossover OX (order crossover), que o mtodo de

  • 18

    cruzamento utilizado com mais sucesso nos algoritmos genticos aplicados a problemas do tipo caixeiro-viajante e de roteirizao de veculos (Prins, 2004);

    b) formao das rotas pelo mtodo de particionamento do roteiro gigante (Prins (2004) adota o nome de split procedure) o que garante que, para a seqncia de clientes determinada pelo cromossomo, seja obtido a roteiro timo.

    Assim, o algoritmo gentico de Prins (2004) pode ser classificado com um algoritmo do tipo route-first, cluster-second, em que os cromossomos so melhorados a cada gerao pelo paralelismo do algoritmo gentico, com a utilizao de um crossover de sucesso (OX). Em seguida, o mtodo de particionamento simples do roteiro gigante, produz rotas timas, respeitando a ordem dos pontos no cromossomo.

    2.3.2 Crossover OX

    Entre as principais maneiras de se representar um cromossomo, esto as descritas abaixo (Michalewicz 1996):

    Representao ordinal Nesta forma de codificao, cada soluo representada como uma lista de n cidades, onde o i-simo elemento da lista um nmero entre 1 e n i +1. Existe uma lista ordenada de cidades que serve como referencia para construir a representao. A lista ordenada l, varia de 1 a n cidades. O cromossomo um vetor de posicionamento da cidade na lista. Por exemplo, seja o cromossomo p = (1, 1, 2, 3, 1, 1) e a lista l = (1, 2, 3, 4, 5, 6).

    O primeiro elemento do cromossomo p 1. Ele corresponde ao primeiro elemento da lista l que o 1 (Rota: 1). O prximo elemento do cromossomo p 1. Ele corresponde ao primeiro elemento da lista l atualizada (aps remoo do 1) que o 2 (Rota: 1 2). O prximo nmero do cromossomo p 2. Tal nmero corresponde ao segundo elemento da lista l atualizada (sem o 1 e o 2) que o 4 (Rota: 1 2 4). O prximo elemento do cromossomo 3, correspondendo ao 6 na lista l atualizada

  • 19

    (Rota: 1 2 4 6). Seguindo este raciocnio, chega-se rota final: 1 2 4 6 3 5. Essa a soluo representada por este cromossomo.

    Representao por adjacncia Cada cromossomo representado como uma lista de n cidades. A cidade j da rota listada na posio i se, e somente se, a rota vai da cidade i a cidade j. Por exemplo, um cromossomo p = (3, 1, 5, 6, 4, 2) apresenta os seguintes arcos em uma rota associado a p: 1 3; 2 1; 3 5; 4 6; 5 4; 6 2. Assim, o cromossomo representa a seguinte soluo: 1 3 5 4 6 2.

    Representao por permutao (ou caminho) O cromossomo formado pela seqncia dos ns na soluo. Por exemplo, o cromossomo p = (1, 4, 2, 3, 6, 5) representa diretamente a soluo 1 4 2 3 6 5.

    A representao de cromossomos mais utilizada em problemas de roteirizao de veculos e do caixeiro-viajante a representao por permutao (Michalewicz 1996). No entanto, os operadores de crossover usualmente utilizados nos algoritmos genticos no so aplicveis a problemas cujo cromossomo seja representado por permutao. Isso decorre do fato de que tais operadores, nesses casos, podem gerar indivduos inconsistentes (Cunha 2006).

    Para ilustrar o fato como os operadores de crossover comuns geram solues inviveis, tome-se, por exemplo, o problema do caixeiro-viajante, em que o cromossomo de soluo representado por uma seqncia ordenada de cidades a serem visitadas. Sejam A e B dois pais selecionados para cruzamento, tal que:

    A= 3 5 7 1 2 4 8 6 9 B= 1 9 2 3 4 6 8 7 5

    Em outras palavras, o cromossomo A corresponde seguinte seqncia de cidades: 3-5-7-1-2 4-8-6-9-3.

  • 20

    Suponha que seja aplicado um operador de cruzamento em dois pontos, aps a 2 e 6 posies, gerando os seguintes filhos:

    3 5 | 2 3 4 6 | 8 6 9 1 9 | 7 1 2 4 | 8 7 5

    Ambas as solues acima no representam roteiros vlidos para o problema do caixeiro-viajante, uma vez que algumas cidades aparecem duas vezes, enquanto outras cidades no so visitadas (por exemplo, as cidades 3 e 6 aparecem duas vezes no primeiro filho, enquanto as cidades 1 e 7 no fazem parte do roteiro).

    A fim de evitar esse tipo de problema, existem operadores especficos para tratar cromossomos que representam uma permutao.

    O operador OX um exemplo de operador que permite tal tratamento. Para tanto, escolhem-se aleatoriamente dois pontos de corte que iro determinar uma sub-rota; um pr-filho ento criado, copiando-se a sub-rota na posio correspondente do pai 1; os elementos da sub-rota so excludos do pai 2; a partir do segundo ponto de corte, so preenchidas as posies vazias com os elementos no excludos do pai 2; quando o fim do cromossomo foi atingido, continua-se a partir da primeira posio deste; finalmente, o segundo filho construdo, seguindo-se o mesmo procedimento.

    Alm do operador especial OX, existem tambm os operadores CX e PMX (Cunha 2006).

  • 21

    O exemplo da Figura 2.2 mostra como o crossover OX gera dois filhos F1 e F2 a partir dos pais P1 e P2:

    Figura 2.2: Crossover OX em cromossomo sem delimitadores de rotas

    Os cromossomos da Figura 2.3, que so do mesmo tipo proposto por Prins (2004), so compostos apenas pelos pontos a serem atendidos, sendo as rotas obtidas pelo mtodo de particionamento do roteiro gigante (que no caso o prprio cromossomo), apresentado ainda nesta seo.

    Faz-se necessria, neste ponto, a apresentao do conceito de delimitadores de rotas no contexto da roteirizao de veculos. Trata-se de um gene (neste trabalho,

    Passo 1) Sejam os cromossomos pais P1 e P2:

    Passo 2) So escolhidos dois pontos de corte i e j. No exemplo, i =4 e j=7 :

    Passo 3) Os pontos de P1 entre i e j so passados para o filho F1 :

    Passo 4) O filho F1 completado com os pontos de P2 a partir de j, tomando-se o cuidado de no inserir duas vezes o mesmo ponto :

    Passo 5) O mesmo processo realizado para obteno de F2 :

  • 22

    o gene 0) a ser inserido no cromossomo com o objetivo de sinalizar o final de uma rota e incio de outra.

    Diferentemente do cromossomo da Figura 2.2, o exemplo da Figura 2.3 mostra as dificuldades de se aplicar o crossover OX em cromossomos com delimitadores de rotas:

    Figura 2.3: Crossover OX em cromossomo com delimitadores de rotas

    Analisando-se os filhos F1 e F2 gerados no exemplo da Figura 2.3, percebe-se que os cromossomos com delimitadores de rotas:

    Passo 1) Sejam os cromossomos pais P1 e P2:

    Passo 2) So escolhidos dois pontos de corte i e j. No exemplo, i =4 e j=7 :

    Passo 3) Os pontos de P1 entre i e j so passados para o filho F1 :

    Passo 4) O filho F1 completado com os pontos de P2 a partir de j, tomando-se o cuidado de no inserir duas vezes o mesmo ponto :

    Passo 5) O mesmo processo realizado para obteno de F2 :

  • 23

    - podem gerar solues inviveis (no h certeza que as restries de custo e capacidade das rotas criadas so respeitadas)

    - ou podem gerar solues com uma qualidade ruim (a primeira rota do filho F2, por exemplo, uma rota que provavelmente prejudica a qualidade da soluo, j que atende apenas um ponto).

    2.3.3 Particionamento do roteiro gigante

    justamente o particionamento eficiente do cromossomo sem delimitadores de rotas aplicado por Prins (2004), o que diferencia seu algoritmo gentico dos anteriores desenvolvidos para problemas de roteirizao de veculos.

    Para obter as rotas a partir do de um cromossomo, Prins (2004) utiliza o mtodo de particionamento simples do roteiro gigante proposto por Golden et al. (1982).

    Este mtodo executado sobre um grafo orientado em que: - cada n representa um cliente a ser atendido; - os custos dos arcos que conectam cada n i, j o custo da rota que atende todos os clientes entre i e j (inclusive i e j).

    Como exemplo, a Tabela 2.1 apresenta as coordenadas dos clientes A, B, C, D, E, enquanto a Figura 2.4 mostra o grafo associado ao roteiro gigante A->B->C->D->E. Os valores apontados nos arcos que ligam os ns i , j correspondem ao custo da rota que atende todos os clientes entre i e j (inclusive i e j).

    Por exemplo, o valor do arco (A,D)=5 o custo das viagens entre A->B (2), B->C (1) e C->D (2).

  • 24

    Tabela 2.1: Coordenadas dos ns do roteiro gigante

    Figura 2.4: Grafo que representa o roteiro gigante

    Caso os veculos disponveis no tenham capacidade para atender todos os clientes entre i e j, o custo do arco entre i e j infinito.

    Definidos os custos dos arcos, deve-se obter o caminho de menor custo entre o primeiro e o ltimo n do grafo. Para isso, diversos algoritmos podem ser utilizados, como os de Dijkstra (Ahuja et al., 1993), Bellman (Ahuja et al., 1993) e Ulusoy (1985). Cada arco que compe o caminho de menor custo uma rota do roteirizao final, que a tima para a seqncia de pontos do cromossomo.

    2.3.4 Algoritmo de Dijkstra

    O algoritmo de Dijkstra (Ahuja et al., 1993) um dos algoritmos que calcula o caminho de custo mnimo entre vrtices de um grafo e ser detalhado nesta seo. muito semelhante ao algoritmo de Ulusoy (1985) e menos genrico do que o de

  • 25

    Bellman (Ahuja et al., 1993), j que este pode ser aplicado a problemas com custos negativos, o que no o caso do problema tratado nesta dissertao. O algoritmo de Dijkstra bastante simples e com um bom nvel de desempenho.

    No algoritmo de Dijkstra, escolhido um n como raiz da busca, calculado o custo mnimo deste n para todos os demais ns do grafo.

    Este algoritmo parte de uma estimativa inicial para o custo mnimo e vai sucessivamente ajustando esta estimativa. Ele considera que um n estar fechado quando j tiver sido obtido um caminho de custo mnimo do n tomado como raiz da busca at ele. Caso contrrio ele dito estar aberto.

    Seja G(V,A) um grafo orientado e s um n de G:

    1. Atribua valor zero estimativa do custo mnimo do n s (a raiz da busca) e infinito s demais estimativas;

    2. Atribua um valor qualquer aos precedentes (o precedente de um n t o n que precede t no caminho de custo mnimo de s para t);

    3. Enquanto houver n aberto: o seja k um n ainda aberto cuja estimativa seja a menor dentre todos os

    ns abertos; o feche o n k; o Para todo n j ainda aberto que seja sucessor de k faa:

    some a estimativa de custos do n k com o custo do arco que une k a j;

    caso esta soma seja melhor que a estimativa anterior para o n j, substitua-a e anote k como precedente de j.

    Quando todos os ns tiverem sido fechados, os valores obtidos sero os custos mnimos dos caminhos que partem do n tomado como raiz da busca at os demais ns do grafo. O caminho propriamente dito obtido a partir dos ns chamados acima de precedentes.

  • 26

    A seqncia da figura 2.5 ilustra o funcionamento do Algoritmo de Dijkstra:

    Inicialmente todos os ns tm um custo infinito, exceto s (a raiz da busca) que tem valor 0:

    Ns s u v x y

    estimativas 0

    precedentes - - - - -

    selecione s (n aberto de estimativa mnima) feche s recalcule as estimativas de u e x

    Ns s u v x y

    estimativas 0 10 5

    precedentes s s - s -

    selecione x (n aberto de estimativa mnima) feche x recalcule as estimativas de u,v e y

    Ns s u v x y

    estimativas 0 8 14 5555 7

    precedentes s x x s x

    selecione y (n aberto de estimativa mnima) feche y recalcule a estimativa de v

    Ns s u v x y

    estimativas 0 8 13 5555 7777

    precedentes s x y s x

  • 27

    selecione u (n aberto de estimativa mnima) feche u recalcule a estimativa de v

    ns S u v x y

    estimativas 0 8888 9 5555 7777

    precedentes s x u s x

    selecione v (n aberto de estimativa mnima) feche v

    ns s u v x y

    estimativas 0 8888 9999 5555 7777

    precedentes s x u s x

    Figura 2.5: Algoritmo de Dijkstra: passo-a-passo

    Quando todos os ns tiverem sido fechados, os valores obtidos sero os custos mnimos dos caminhos que partem do n tomado como raiz da busca at os demais ns do grafo. O caminho propriamente dito obtido a partir dos ns chamados acima de precedentes.

    Para exemplificar, considere o caminho de custo mnimo que vai de s at v, cujo custo mnimo 9. O n precedente de v na ltima das tabelas acima u. Sendo assim, o caminho : s ... u v

    Por sua vez, o precedente de u x. Portanto, o caminho : s ... x u v

    Por ltimo, o precedente de x o prprio n s. Logo, o caminho de custo mnimo : s x u v

  • 28

    2.3.5 Particionamento mltiplo do roteiro gigante

    O caminho mnimo de um roteiro gigante obtido pelo algoritmo de Dijkstra depende da definio do primeiro n do roteiro gigante, que aquele em que se iniciar a primeira viagem da primeira rota.

    Para melhorar a qualidade da soluo obtida, Golden et al. (1982) props o mtodo de particionamento mltiplo do roteiro gigante, cuja idia variar o primeiro n do roteiro gigante visando obteno de solues diferentes para o mesmo roteiro gigante.

    Aps a obteno de um particionamento do roteiro gigante, o processo de particionamento dever ser iniciado pelo n seguinte quele em que o processo anterior foi iniciado. O procedimento dever ser repetido M vezes, onde M calculado segundo a equao abaixo:

    < MM

    diCvdi1

    1

    1

    onde:

    id demanda no ponto i

    vC a capacidade do maior veculo.

    A melhor soluo para o roteiro gigante aquela com menor custo entre todas as M solues obtidas.

    2.3.6 Diferena entre particionamento de Prins (2004) e Schmitt (1995)

    Conforme explicado, no algoritmo de particionamento simples do roteiro gigante, a ordem dos genes (ou dos pontos de entrega) no cromossomo respeitada, mas um gene, mesmo que possa ser inserido na rota do gene anterior, pode iniciar uma nova rota, caso isto reduza o custo total.

  • 29

    O exemplo a seguir mostra a diferena no funcionamento do mtodo de particionamento proposto por Prins (2004) com o de Schmitt (1995) (ver seo 2.3.1) para o algoritmo gentico aplicado ao problema de roteirizao de veculos, diferena esta que contribua para explicar a melhor qualidade dos resultados obtidos por Prins (2004).

    Dado um depsito (retngulo em verde) e cinco pontos a serem atendidos, suponhamos que:

    - os veculos que esto no depsito possam atender no mximo trs pontos em um dia

    - o cromossomo tem os genes na ordem 1-2-3-4-5

    O algoritmo de Schmitt (1995) formaria uma rota com os pontos 1,2 e 3 e uma segunda rota com os pontos 4 e 5, conforme mostra a Figura 2.4.

    O algoritmo de particionamento simples do roteiro gigante no incluiria o ponto 3 na primeira rota, j que este est localizado mais prximo dos pontos 4 e 5. Assim, teria como resultado a soluo tima para o cromossomo 1-2-3-4-5, como mostra a Figura 2.5.

    Figura 2.6: Rotas formadas por Schmitt Figura 2.7: Rotas formadas pelo mtodo de particionamento simples do roteiro gigante

    Nota-se que o mtodo de particionamento simples do roteiro gigante construiu roteiros mais econmicos do que Schmitt (1995).

  • 30

    Vale dizer que um processo similar ao mtodo do particionamento simples do roteiro gigante j havia sido utilizado por Beasley (1983) como a segunda fase de uma heurstica route-first cluster-second. A primeira fase consistia na soluo de um problema do caixeiro-viajante gigante passando por todos os pontos de entrega. No entanto, os resultados de Beasley (1983) nunca superaram os das mais tradicionais heursticas para o problema de roteirizao de veculos.

    Analisando a soluo de Beasley (1983), observa-se que o mtodo do particionamento simples do roteiro gigante certamente teria resultados melhores se, ao invs de ser executado apenas uma vez como fase seguinte a um problema do caixeiro-viajante (como fez Beasley (1993), ele fosse aplicado em um algoritmo gentico. Isto porque certo que existe um cromossomo cuja seqncia de genes resulta na soluo tima para o problema se aplicado o particionamento simples do roteiro gigante. Fica a cargo do paralelismo do algoritmo gentico encontrar tal cromossomo timo.

    2.4 Trabalhos desenvolvidos no mbito da Escola Politcnica da USP

    O presente trabalho pretende integrar a produo cientfica das reas de Logstica e Engenharia de Transportes da Escola Politcnica da USP para o desenvolvimento e implementao computacional de novos algoritmos e heursticas de soluo de problemas de roteirizao e programao de veculos, juntamente com o que ser relacionado a seguir.

    Cunha (1997) utilizou-se da relaxao lagrangeana para um modelo de problema de roteirizao de veculos com restries operacionais de janela de tempo e durao mxima da jornada, desenvolvendo duas heursticas para frota homognea e uma outra para frota heterognea.

  • 31

    Brejon (1998) aborda um problema de programao de transporte de suprimentos para unidades martimas de explorao de petrleo, visando a garantia de que os suprimentos necessrios estejam na unidade martima solicitante na quantia correta e dentro dos horrios solicitados. analisado como um problema de roteirizao e programao de veculos com restrio de janelas de tempo. A estratgia de soluo utilizada se baseia na heurstica de insero I1, proposta por Solomon (1987), modificada para se adequar s restries do problema estudado. A alocao dos clientes s rotas segue um critrio de primeiro inserir em uma rota os clientes mais distantes e depois os clientes no alocados que tm menor valor de fim de janela de tempo, obviamente a insero feita juntamente com um estudo de viabilidade de insero, que est relacionado a limites de capacidade, distncia e tempo.

    Souza (1999) tratou do problema de transporte do tipo Carga nica Coleta e Entrega (Full Truck Load and Delivery), com duas etapas obedecendo a janelas de tempo. A primeira seria para gerao dos roteiros viveis que atendessem s requisies dentro do perodo de programao, e a segunda para seleo, dentre estes, dos melhores roteiros, com custo total mnimo, a partir de um problema de programao linear do tipo particionamento de conjunto (set partitioning).

    Znamensky (2000) props uma estratgia de soluo para o problema de roteirizao e programao de veculos para transporte porta-a-porta de idosos e portadores de necessidades especiais, por meio de veculos de pequena capacidade, do tipo peruas ou vans um problema de porte real. A formulao utilizada foi de mltiplas bases e utilizou a heurstica de insero paralela, obtendo solues de excelente qualidade, com reduo de frota e custos operacionais, com agilidade computacional.

    Teixeira (2001) desenvolveu heursticas baseadas no algoritmo out-of-kilter para solucionar o problema de dimensionamento e roteirizao de frota heterognea, elaborando e combinando rotas para circulao com custo mnimo.

    Fonseca (2002) utilizou-se dos conceitos da heurstica de insero de Solomon (1987) para propor uma estratgia de soluo, com minimizao de tempos e

  • 32

    custos, para rotas de coleta e entrega de mercadorias porta-a-porta por empresas de remessa expressa em grandes centros urbanos, associando, porm, alocao seqencial dos atendimentos e insero paralela em cada rota do conjunto.

    Feriancic (2005) estudou o problema de distribuio de combustveis com caminhes tanque para postos de abastecimento. O caminho tanque compartimentado, sendo que cada compartimento tem que estar sempre completamente cheio ou vazio. A estratgia de soluo proposta baseia-se em definir a alocao tima dos pedidos aos veculos e a seqncia de entrega de cada veculo. A heurstica proposta baseia-se no GRASP, a fim de promover vrios reincios da heurstica de alocao seqencial, realocando apenas alguns clientes escolhidos aleatoriamente.

    Mourad (2005) tratou o problema de roteirizao de carga completa com janelas de tempo, incorporando algumas caractersticas do mercado de transportes brasileiro, como a possibilidade de utilizao de uma frota spot como complemento de uma frota dedicada. Foram propostas quatro diferentes heursticas, todas baseadas em busca tabu, que se diferenciam na estrutura de controle da busca, como tipos de proibio e perodo tabu. O trabalho demonstrou que a utilizao de busca tabu para solucionar problemas de roteirizao com janelas de tempo permite obter bons resultados.

    Bonasser (2005) estudou o problema de roteirizao de veculos com mltiplos depsitos e frota heterognea fixa. Sua estratgia de soluo se baseia em heursticas de economias, busca tabu, colnia de formigas e uma metaheurstica hbrida (mtodo Routing AnTS), desenvolvida especialmente para a soluo do problema em questo. Alguns resultados obtidos por Bonasser (2005) superam os encontrados na literatura.

    Abraho (2006) atacou o problema de programao de manuteno preventiva de veculos, um tipo de problema considerado bastante complexo, em que poucos mtodos de soluo so estudados para otimizar este tipo de programao. O autor prope uma estratgia de soluo baseada na metaheurstica de colnia de formigas, combinada com mecanismos de intensificao e busca local.

  • 33

    Belfiore (2006) estudou a implementao da metaheurstica scatter search (ou procura em disperso) em um problema real de roteirizao de veculos com frota heterognea, janelas de tempo e entregas fracionadas. No problema de roteirizao de veculos com entregas fracionadas, cada cliente pode ser abastecido por mais de um veculo. Os modelos foram aplicados em um dos maiores grupos varejistas brasileiros, que abastece 519 clientes distribudos em 12 estados brasileiros. Os resultados mostraram melhorias para a empresa, reduzindo em at 8% o custo total da operao.

    Wu (2007) abordou o problema de roteirizao peridica de veculos, que pode ser considerado como uma generalizao do problema clssico de roteirizao devido a duas caractersticas prprias: um perodo de planejamento maior que um dia, em que os veculos fazem diversas rotas, e freqncias de visitas associadas a pontos a serem servidos. Foram propostos trs procedimentos diferentes para a alocao dos clientes aos dias de visitas: uma heurstica de insero seqencial que visa equilibrar os esforos dos diferentes dias do perodo de planejamento, uma heurstica de insero atravs de um sorteio aleatrio que tem seus fundamentos no GRASP e uma heurstica baseada em algoritmos genticos.

    2.5 Consideraes finais do captulo

    A publicao do trabalho de Prins (2004) com algoritmos genticos sem delimitadores de rotas e com particionamento eficiente do cromossomo inseriu esta heurstica entra as que produzem os melhores resultados para problemas de roteirizao de veculos sem restries temporais

    O fato de o algoritmo gentico Berger e Barkaoui (2003) tambm ter apresentado bons resultados indica a importncia, nesta metaheurstica, da aplicao uma intensa busca local em problemas de roteirizao de veculos sem janelas de tempo.

  • 34

    3 CARACTERIZAO DO PROBLEMA

    Este captulo descreve e formula matematicamente o problema de roteirizao de veculos tratado por este trabalho.

    3.1 Descrio do problema

    Os algoritmos gerados neste trabalho tm as caractersticas listadas a seguir, segundo a classificao de Bodin et al. (1993). Tais caractersticas so requeridas para a utilizao das instncias de Christofides et al. (1979), nas quais eles sero aplicados:

    Tamanho da frota disponvel: infinita Tipo de frota disponvel: homognea Localizao da frota disponvel: uma nica garagem Natureza da demanda: demanda determinstica, sem permisso de falta Localizao das demandas: nos ns Restries temporais da demanda: no existentes Rede subjacente: rede euclidiana Restries de capacidade do veculo: iguais para todos os veculos Restries de durao mxima da rota: iguais para todas as rotas Operao: somente entregas (ou somente coletas) Custos: somente custos variveis em funo do tempo de rota e de

    carga/descarga Objetivo: minimizar total de custos variveis

    As hipteses relacionadas acima caracterizam um problema de roteirizao bsico. No entanto, os algoritmos elaborados neste trabalho so flexveis o suficiente para serem aplicados em problemas em que a funo objetivo seja reduzir o nmero de veculos ou em situaes em que os veculos possuam custos fixos e variveis.

  • 35

    Dentre as caractersticas listadas, importante dizer que o custo das rotas varia em funo do tempo em que os veculos esto em rota, tempo este que a soma do tempo consumido entre os pontos servidos e o tempo de carga, descarga ou espera.

    O tempo consumido nas rotas proporcional distncia entre os pontos, cujas localizaes so dadas em coordenadas euclidianas. Esta caracterstica do problema pode gerar dificuldades em sua aplicao em problemas reais, j que a distncia entre dois pontos depende da malha rodoviria, e no simplesmente de suas coordenadas euclidianas.

    No entanto, obter a distncia real entre dois pontos em problemas de roteirizao nos quais os pontos de entrega variam diariamente (por exemplo, os clientes de uma loja on-line) uma tarefa muito difcil. Assim, como afirma Cunha (2006), alguns softwares de roteirizao permitem o cadastramento de barreiras geogrficas, atravs de linhas ou polgonos, representando rios, lagos, parques e montanhas por onde os veculos no possam transitar.

    3.2 Formulao matemtica

    A partir das hipteses e caractersticas descritas na seo anterior, o problema aqui formulado matematicamente.

    Seja o grafo { }AVG ,= , onde ( )nvvvV ,...,, 10= um conjunto de n pontos e ( )( )jivvA ji .:,= um conjunto de arcos entre os vrtices em V .

    O ponto 0v o depsito onde esto os veculos. Os pontos ,iv ni 1 so os

    pontos a serem atendidos, cada um com uma demanda iq .

    A cada arco ( )ji vv , ( )Vji , , est associado um valor no-negativo ijc , que representa o tempo de viagem (ou custo) entre os pontos de entrega.

    As restries dos veculos da frota (homognea) so as seguintes:

  • 36

    - capacidade mxima dada por Q - tempo mximo de rota dado por D

    O tempo consumido na viagem entre os pontos iv e jv dado por ijt e o tempo de

    parada do veculo k no ponto iv kit .

    A funo objetivo a ser minimizada neste problema de roteirizao de veculos o custo total das rotas:

    Minimizar i j k

    ijkij xc

    onde ijkx uma varivel binria que, se igual a 1 indica que o veculo k viaja do ponto i ao ponto j.

    As restries do problema so as seguintes:

    =i k

    ijkx 1, para todo j (1)

    =j k

    ijkx 1, para todo i (2)

    0=j

    pjki

    ipk xx , para todo p, k (3)

    Qxqj

    ijki

    i

    , para todo k (4)

    Dxtxti j

    ijkijj

    ijki

    ik +

    , para todo j (5)

    11

    0 =

    n

    jjkx , para todo i (6)

    11

    0 =

    n

    ikix , para todo j (7)

    ( )1,0ijkx (8)

  • 37

    { }nSSxSji

    ijk ,....,21,

    , para todo k (9)

    As restries 1 e 2 garantem que um, e apenas um veculo, far a viagem entre dois pontos.

    A restrio 3 assegura que o veculo que atende um ponto sair deste para fazer outra viagem.

    As restries 4 e 5 no permitem que a capacidade do veculo e o tempo de rota sejam excedidos.

    As restries 6 e 7 garantem que cada veculo s sair do depsito e retornar a ele uma nica vez.

    A restrio 8 garante que as variveis ijkx sejam binrias.

    As condies de continuidade e de realizao de uma nica rota no garantem por si s que o conjunto de solues represente rotas vlidas.

    Solues invlidas so aquelas que foram as chamadas sub-rotas (subtours) e a impossibilidade de ocorrncia de sub-rotas no contendo o depsito assegurada pela restrio 9, sendo S qualquer subconjunto de pontos alocados a um veculo, excluindo-se o depsito, que no se repetem e que fazem parte de um mesmo roteiro. O nmero mximo de arcos que podem existir nesse roteiro no pode ser maior que o nmero de pontos menos uma unidade, evitando, assim, fechar o ciclo entre os pontos.

    Outras opes para formao do conjunto S podem ser pesquisadas em Bodin et al. (1983).

  • 38

    4 ESTRATGIA DE SOLUO

    Neste captulo ser detalhada a estratgia de soluo proposta neste trabalho para o problema de roteirizao de veculos, que baseada no algoritmo gentico proposto por Prins (2004).

    Inicialmente, buscou-se implementar o algoritmo gentico exatamente como proposto por Prins (2004), conforme descrito no artigo que o descreve. A partir desta verso, denominada APRINS, foram propostas algumas alteraes no sentido de aprimorar seu desempenho.

    O algoritmo APRINS est descrito na seo 4.1, enquanto que na seo 4.2 esto detalhados as variantes do APRINS propostas neste trabalho com a finalidade de alcanar melhores resultados.

    Tanto o algoritmo APRINS como os propostos foram testados com as instncias de Christofides et al. (1979), tambm utilizada por Prins (2004). A avaliao dos algoritmos dada pelos critrios de qualidade da soluo e custo computacional e est detalhada no captulo 5.

  • 39

    4.1 Algoritmo APRINS

    O algoritmo APRINS segue o esquema bsico de funcionamento do algoritmo gentico conforme ilustrado na Figura 4.1.

    Figura 4.1: Esquema de funcionamento do algoritmo gentico hbrido de Prins (2004)

    Cada uma das etapas mostradas acima detalhada nas subsees a seguir.

    4.1.1 Gerao da populao inicial

    A escolha de cromossomos de qualidade na soluo inicial importante para permitir que o algoritmo gentico normalmente leva o algoritmo a convergir mais rapidamente para uma boa soluo (Grefenstette, 1987).

  • 40

    Uma boa populao inicial deve ter cromossomos com boas aptides e ao mesmo tempo bastante diversificados. Isto porque cromossomos ruins podem levar o algoritmo a um elevado custo computacional sem encontrar uma boa soluo, enquanto que cromossomos muito semelhantes tendem a fazer com que o algoritmo gentico convirja prematuramente para uma soluo tima local.

    O algoritmo APRINS, conforme proposto por Prins (2004) constitudo de uma populao inicial com 30 indivduos, sendo que: - uma gerada pela heurstica de varredura de Gillet e Miller (1974), ou GM; - uma gerada pelo algoritmo de Mole e Jameson (1976), ou MJ; - uma gerada pela heurstica de economias de Clarke e Wright (1964), seguido da

    heurstica 3- opt, ou CW. - 27 so geradas aleatoriamente

    Tanto nas solues iniciais quando no processamento do algoritmo, caso seja gerado um cromossomo clone de outro que j esteja na soluo, ele descartado e gerado um outro cromossomo aleatoriamente.

    Uma maneira de se identificar se dois cromossomos so considerados clones (ou idnticos) verificar se a diferena, em termos absolutos,entre seus custos menor do que uma constante =0,5. Segundo Prins (2004), essa maneira simplificada de deteco de clones, que no precisa, pois pode haver duas solues distintas com o mesmo custo, justifica-se pelo fato de que uma deteco atravs de uma mtodo de comparao mais preciso acarreta um custo computacional muito alto para pouco benefcio.

    4.1.2 Avaliao da aptido dos cromossomos

    No algoritmo APRINS, a aptido do cromossomo corresponde ao custo total das rotas que ele representa. O custo total composto pelo tempo de viagem dos veculos (funo da distncia percorrida) e, em algumas instncias-teste, pelo tempo total de servio (ou atendimento) do veculo, dado pela soma de todos os tempos de atendimento.

  • 41

    O clculo da aptido do cromossomo sem delimitadores de rotas feito a partir do mtodo de particionamento do cromossomo, que o mesmo processo que gera o roteiro timo do cromossomo respeitando, nas rotas formadas, a seqncia de pontos do cromossomo. Conforme explicado anteriormente na seo 2.3.3, para particionar o cromossomo, Prins (2004) aplica o algoritmo de particionamento simples do roteiro gigante.

    4.1.3 Seleo dos indivduos (cromossomos) para o crossover

    Em APRINS, os pais submetidos ao crossover so selecionados atravs do mtodo do torneio binrio. Neste mtodo, so selecionados aleatoriamente dois cromossomos da soluo vigente. Aquele que apresentar melhor aptido designado pai. Para gerar os dois pais do crossover, o processo de seleo aplicado duas vezes.

    4.1.4 Crossover

    O operador de crossover aplicado o crossover OX, conforme explicado na seo 2.3.2.

    4.1.5 Busca local

    Uma busca local com a finalidade de melhorar cada um dos novos indivduos gerados de uma populao no faz parte dos componentes do de algoritmo gentico, conforme proposto por Holland (1975). Existe um operador de mutao, cuja finalidade manter a variedade gentica das populaes geradas (Cunha, 2006). A idia que cada gene dos descendentes gerados pode sofrer mutao com uma pequena probabilidade, de modo a evitar que o processo de busca torne-se puramente aleatrio. Busca-se, dessa forma, recuperar boas caractersticas eventualmente perdidas nos processos de seleo e cruzamento, e tambm evitar

  • 42

    ficar presos em determinadas regies do espao de busca, ou em pontos de timo locais.

    Prins (2004), no entanto, relata ter obtido bons resultados substituindo o operador de mutao por uma busca local composta de trocas do tipo 2-opt e 3-opt,. Devido a esta substituio, o algoritmo de Prins (2004) pode ser classificado com algoritmo gentico hbrido ou algoritmo memtico (Moscato, 1989), embora nem todos os autores faam essa distino de nomenclatura (Beasley e Chu, 1996; Chu e Beasley, 1997).

    Dado que o trabalho de Berger e Barkaoui (2003) - um algoritmo gentico em que o operador de mutao tambm foi substitudo por uma intensa busca local - obteve excelentes resultados, parece realmente ser produtiva essa troca.

    No algoritmo APRINS, para decidir se haver busca local na iterao em andamento, gerado um nmero aleatrio entre 0 e 1. Se o nmero gerado for menor do que uma probabilidade mp realizado o processo de busca local. Na fase

    inicial, 05,0=mp . Nas reinicializaes, 10,0=mp . Identifica-se o filho resultado da

    busca local com a letra M. Na busca local, para cada par de pontos (u,v) selecionado, so testados os seguintes movimentos, em que x e y so sucessores de u e v em suas respectivas rotas e T(u) a rota que visita u:

    Movimento M1. Se u um n ponto de demanda, remover u de T(u) e inseri-lo aps v em T(v).

    Movimento M2. Se u e x forem pontos de entrega, remover ambos e inserir (u,x) aps v em T(v).

    Movimento M3. Se u e x forem pontos de entrega, remover ambos e inserir (x,u) aps v em T(v).

    Movimento M4. Se u e v forem pontos de entrega, trocar as posies de u e v.

  • 43

    Movimento M5. Se u, x e v forem pontos de entrega, trocar as posies de (u, x) e v.

    Movimento M6. Se u, x, v e y forem pontos de entrega, trocar as posies de (u, x) e (v,y).

    Movimento M7. Se T(u) = T(v), substituir (u,x) e (v,y) por (u,v) e (x,y).

    Movimento M8. Se T(u) T(v), substituir (u,x) e (v,y) por (u,v) e (x,y).

    Movimento M9. Se T(u) T(v), substituir (u,x) e (v,y) por (u,y) e (x,y).

    O movimento M7 corresponde ao mtodo 2-opt tradicional e os movimentos M8 e M9 aplicam o 2-opt em rotas diferentes.

    Para cada movimento Mx efetuado, o custo das rotas geradas pelo cromossomo calculado, sempre aps a execuo do mtodo de particionamento do roteiro gigante. Caso o custo tenha sido reduzido, fixa-se o novo cromossomo (com as alteraes propostas no movimento) e o processo de busca local reiniciado, ou seja, u=0 e v=1.

    Cada iterao de busca local s termina quando um cromossmo (original ou j alterado) tem todos os movimentos examinados para todos os pares, sem que ocorra nenhuma melhora.

    A busca local feita entre todos os pares de pontos de demanda, o que resulta no elevado custo computacional desta etapa. Assim, em seu trabalho, Prins (2004), afirmou que h espaos para evoluo na eficincia da etapa de busca local, que consome mais de 95% do tempo total do processamento do algoritmo.

    Como regra geral, quanto maior a vizinhana, melhores so os resultados obtidos, mas a um custo computacional maior. Uma vizinhana mais restrita produz solues inferiores a um custo computacional menor.

  • 44

    Definir uma vizinhana que gere boas solues a custos computacionais melhores o grande desafio em qualquer tipo de busca local.

    4.1.6 Atualizao da populao

    Conforme explicado anteriormente na seo 2.3.2, o crossover OX gera dois filhos (F1 e F2), sendo que um deles selecionado aleatoriamente para a seqncia do processo. Este, por sua vez, tem uma probabilidade pm de entrar no processo de busca local. Caso seja aplicado no cromossomo o processo de busca local e o cromossomo alterado no for clone, ele inserido na populao. Caso o cromossomo alterado j exista na populao (ou seja, clone), a busca local desconsiderada e a anlise volta para o cromossomo original (filho F1).

    Se o cromossomo original no passar pela busca local e no for clone, ele inserido na populao. Caso contrrio, a populao no muda e a iterao considerada no produtiva.

    Caso uma iterao no gere filho para entrar na populao, ela considerada uma iterao no produtiva. Caso contrrio, o filho entrar na populao substituindo um indivduo selecionado aleatoriamente entre os indivduos da metade de baixo do ranking de aptido. Este mtodo de gerenciamento incremental da populao permite que as melhores solues continuem na populao e faz com que uma boa criana a se reproduza rapidamente.

  • 45

    Para facilitar o entendimento desta etapa, o fluxo da Figura 4.2 mostra como se d a insero na populao do cromossomo gerado no crossover segundo o algoritmo APRINS:

    Figura 4.2: Fluxo de insero de cromossomo na populao

    4.1.7 Reinicializao

    O loop do algoritmo executado 11 vezes. A fase principal, mais longa, seguida de 10 reinicializaes mais rpidas.

    O algoritmo reinicializado quando: - atinge max iteraes produtivas (isto , iteraes que gerem novos indivduos e que no resultem em clones) ou

    - atinge max iteraes sem melhoria da melhor soluo encontrada.

    Na fase principal, Prins (2004) consderou 30000max = e 10000max = . Nas reinicializaes, 2000max = e 2000max = .

  • 46

    Quando o critrio de parada satisfeito, o algoritmo poder ser reinicializado. Ele s no ser reinicializado caso o nmero mximo de reinicializaes tenha sido atingido.

    O objetivo da reinicializao introduzir cromossomos diferentes na populao, a fim de restaurar a diversidade gentica da populao, buscando-se obter, assim, a uma soluo ainda melhor.

    No algoritmo APRINS, para definir os cromossomos que entram na soluo, criada uma populao de 8= cromossomos, gerados aleatoriamente e bem

    espaados. Cada cromossomo k comparado com o pior cromossomo da

    populao vigente . Se sua aptido for superior, ele entra na populao substituindo seu pior cromossomo. Caso contrrio, feito um crossover entre k e

    cada um dos cromossomos da populao U . Se o melhor filho obtido nesses crossovers for melhor do que o pior filho da populao , ocorre a substituio.

    Na prtica, segundo Prins (2004), diversas populaes devem ser geradas para se obter cromossomos. Limitou-se em 5 tentativas a obteno dos cromossomos, mesmo que a quantidade no tenha sido atingida.

    Segundo Prins (2004), comparado com uma substituio cega e total, esta reposio parcial preserva as melhores solues e no piora o pior custo.

    4.2 Algoritmos propostos

    4.2.1 Alteraes propostas na gerao da populao inicial

    Com o intuito de aumentar a quantidade de solues viveis e de boa qualidade na populao inicial, so propostas trs variantes do algoritmo bsico APRINS em que so geradas solues aleatrias iniciais do que o algoritmo APRINS, conforme indicado na Tabela 4.1.

  • 47

    Tabela 4.1: Algoritmos com alteraes na gerao da populao inicial

    A seguir ser explicada a maneira em que so geradas mais de uma soluo inicial distinta utilizando as heursticas de Clarke e Wright (1964) e Gillet e Miller (1974). A heurstica de Mole e Jameson (1976) no ser descrita, pois foi implementada sem alteraes e gera apenas uma soluo inicial vivel.

    Heurstica de economias de Clarke e Wright A heurstica de economias de Clarke e Wright (1964) em sua forma bsica cria apenas uma soluo para um problema. Para que ele possa gerar diversas solues, como proposto neste item, ser inserido um parmetro na funo que calcula a economia que a criao de uma viagem entre os pontos i-j traz para o problema.

    Assim, a funo que calcula a economia ijs referente incluso da rota entre os

    pontos i-j incorpora um fator de forma e dada pela seguinte expresso: ijOjiOij cccs *+=

    onde:

    ijc o custo da rota entre os pontos i , j O a origem (garagem)

    25.0

  • 48

    De resto, o algoritmo de Clarke e Wright (1964) utilizado neste trabalho ser idntico ao bsico:

    1. Calcular as economias ijs para todos os pares i , j ( )OjOiji ,, 2. Classificar em ordem decrescente as economias ijs

    3. Para todo par i , j , na ordem definida no item 3, verificar se i e j esto ou no includos em um roteiro j existente. i. Se i e j no estiverem includos em nenhum dos roteiros j

    abertos, ento, se as restries (distncia percorrida pelo veculo, capacidade do veculo) forem respeitadas, criar um novo roteiro com os ns i e j .

    ii. Se exatamente um dos pontos i ou j j pertence a um roteiro pr-estabelecido, verificar se esse ponto o primeiro ou o ltimo do roteiro. Em caso afirmativo, se todas as restries forem respeitadas, acrescentar o arco i , j a esse roteiro. Caso contrrio, ir para o prximo par.

    iii. Se os ns i e j j pertencerem a dois roteiros (diferentes) pr-estabelecidos, verificar se ambos so extremos dos respectivos roteiros. Se verdadeiro e se as restries forem respeitadas, fundir os dois roteiros em um s. Caso contrrio, ir para o prximo par.

    iv. Se ambos os ns i e j pertencerem a um mesmo roteiro, ir para o prximo par.

    4. Caso algum ponto no tenha includo em nenhuma rota, so formados roteiros individualizados, ligando o depsito a cada ponto e retornando base.

    Heurstica de Varredura de Gillet e Miller Para que o algoritmo da varredura de Gillet e Miller (1974) possa gerar solues diferentes, neste trabalho o ngulo a partir do qual a varredura de pontos iniciada ser definido de maneira aleatria, entre 0 e 2pi, tendo como referncia o depsito.

  • 49

    De resto, o algoritmo de varredura mantido tal qual o proposto por Gillet e Miller (1974):

    1. Define-se a coordenada polar em que se iniciar a varredura. 2. Seleciona-se um ponto i, o primeiro ponto no alocado cuja

    coordenada polar maior ou igual definida no item 1. Caso todos os pontos estejam alocados a alguma rota, o algoritmo encerrado.

    3. Se i respeita as restries de capacidade/distncia percorrida do veculo, ele ser inserido na rota r .

    4. Seleciona-se ponto j, o primeiro ponto no alocado cuja coordenada polar maior ou igual definida no item 1.

    5. Se a insero de j na rota r respeita a restrio de capacidade do veculo, testado o ponto da rota em que sua insero resulta na rota mais econmica. Se a insero de j no respeita a restrio de capacidade do veculo, a rota r finalizada e inicia-se uma nova rota, voltando-se ao passo 2.

    6. Se a insero de j no ponto selecionado em 5 respeita a restrio de distncia percorrida pelo veculo, ele inserido na rota r. Caso contrrio, a rota r finalizada e inicia-se uma nova rota, voltando-se ao passo 2.

    4.2.2 Alteraes propostas no particionamento do cromossomo

    O fato de um cromossomo ter uma boa aptido, ou seja, de gerar boas rotas, significa que a ordem de visita dos pontos que o compem de boa qualidade.

    Partindo desta premissa, possvel que, mantida a ordem do cromossomo, mas iniciando seu particionamento de um outro ponto, outras solues de boa qualidade - possivelmente melhores - possam ser obtidas. O mesmo pode ocorrer se tambm invertermos a ordem dos pontos do cromossomo. So essas 2 alteraes que so propostas relacionadas ao particionamento do cromossomo.

  • 50

    O cromossomo codificado por Prins (2004), sem delimitadores de rotas, pode ser tratado como um roteiro gigante, sendo suas rotas geradas pelo mtodo de particionamento simples do roteiro gigante.

    Assim, para alterar o ponto em que iniciado o particionamento do cromossomo, ser utilizado o mtodo de particionamento mltiplo do roteiro gigante, descrito anteriormente na seo 2.3.5.

    Foram implementados dois tipos diferentes de algoritmos que, ao invs de aplicarem apenas o mtodo de particionamento simples do roteiro gigante (como em APRINS) nos cromossomos gerados, dependendo da qualidade da soluo gerada, podem aplicar tambm o mtodo de particionamento mltiplo do roteiro gigante. So eles:

    APAM03, em que o mtodo de particionamento mltiplo ser aplicado no cromossomo, caso a soluo obtida pelo particionamento simples seja uma das 3 melhores classificadas at aquele estgio;

    APIN03, em que o mtodo de particionamento mltiplo ser aplicado duas vezes: no cromossomo em sua ordem normal e no cromossomo invertido, caso a soluo obtida pelo particionamento simples seja uma das 3 melhores classificadas.

    4.2.3 Alteraes propostas na seleo do filho gerado no crossover

    O presente trabalho prope dois algoritmos, com alteraes na maneira em que o filho resultado do crossover escolhido:

    ACRF1, que se baseia na afirmao de Prins (2004) de que a melhor maneira de se escolher o cromossomo que entrar na soluo aleatoriamente, ou seja, indiferente se o cromossomo escolhido F1 ou F2. Assim, para reduzir o custo computacional do algoritmo, gerado apenas o filho F1. Espera-se que, gerando apenas um cromossomo, haja ganho no custo computacional do algoritmo sem prejuzo para a qualidade da soluo.

  • 51

    ACRME, em que se seleciona o melhor entre os filhos F1 e F2. Espera-se com isso melhorias na qualidade das solues.

    4.2.4 Alteraes propostas na busca local

    A seguir, sero apresentados 2 algoritmos propostos em que a etapa de busca local alterada, com o objetivo de reduzir o custo computacional do algoritmo, sem prejuzo para as solues obtidas.

    ABLAM: Este algoritmo se baseia na hiptese de que pode haver alguma relao entre a qualidade do cromossomo que entra no processo de busca local e a qualidade do cromossomo que dela resulta. A idia do algoritmo ABLAM estabelecer uma aptido mnima (ou seja, um custo mximo) a partir da qual o cromossomo estivesse habilitado a participar do processo de busca local. O valor desta aptido mnima ser obtido pela multiplicao entre um fator z =1,20 (estabelecido a partir de testes de calibrao preliminares) e a melhor aptido.

    ABLRE: A premissa deste algoritmo de que a probabilidade de se melhorar uma soluo trocando pares de pontos de lugar (processo que realizado nos 9 tipos de movimento) funo da distncia entre eles. Quanto maior a distncia entre dois pontos, menor a chance de a soluo ser melhorada. Esta idia foi adotada com sucesso na heurstica busca tabu granular, proposta por Toth e Vigo (2003) para problemas de roteirizao de veculos. Nela, os arcos de maior custo - aqueles que ultrapassarem um limite de granularidade - so eliminados do grafo associado ao problema, j que a probabilidade de pertencerem a uma soluo de boa qualidade baixa. No entanto, a aplicao desta premissa requer algumas precaues, pois pode trazer prejuzos ao algoritmo, fazendo com que ele convirja para uma soluo tima local.

    Para reduzir o tamanho da vizinhana na etapa de busca local do algoritmo de Prins (2004) proposto um mtodo em que o tamanho da vizinhana diferente em cada

  • 52

    estgio da busca. No incio, para aumentar a explorao do espao de solues, a vizinhana maior, e medida que a busca avana, ela vai se restringindo.

    Os pares de pontos i, j que podem ser trocados na busca local so aqueles cuja distncia ijd menor do que max* d , onde:

    - maxd a distncia mxima entre dois pontos do grafo

    - 10 < o fator de reduo da vizinhana.

    So propostos 10 valores de diferentes, cada um deles sendo utilizado por um

    mesmo nmero de iteraes 10N

    n = , onde N o total de iteraes do algoritmo

    original. No incio, 1= (explorao mxima) e se reduz frao de um dcimo.

    4.2.5 Alteraes propostas na reinicializao do algoritmo

    Para garantir que a populao reinicializada seja diversificada e tambm para garantir que solues de qualidade sejam inseridas na populao, o presente trabalho prope dois algoritmos com alteraes na reinicializao. A diversificao garantida com a entrada de cromossomos gerados aleatoriamente, e a incluso de novas solues de qualidade ser garantida a partir das heursticas CW e MJ, descritas na seo 4.2.1. Os melhores cromossomos da populao vigente (solues de elite) so mantidos na populao reinicializada.

    Os algoritmos propostos so os seguintes:

    AREI10, em que a populao reinicializada ser composta por cromossomos gerados de 3 diferentes maneiras, sendo: 10 cromossomos de elite, 10 cromossomos aleatrios e 10 cromossomos gerados a partir de heursticas, sendo 5 CW (com 25.0

  • 53

    cromossomos aleatrios e 4 cromossomos gerados a partir de heursticas, sendo 2 CW (com 25.0

  • 54

    5 EXPERIMENTOS COMPUTACIONAIS

    Neste captulo so avaliados os algoritmos propostos no captulo 4 para resolver o problema de roteirizao de veculos.

    A seo 5.1 descreve os problemas nos quais os algoritmos so aplicados. Na seo 5.2 so apresentados e analisados os resultados dos algoritmos, sempre os comparando com o algoritmo original APRINS. A seo 5.3 prope e analisa os resultados do novo algoritmo AMELHO, que ter caractersticas combinadas dos algoritmos melhores avaliados na seo 5.2. As anlises e consideraes finais do captulo esto na seo 5.4.

    5.1 Instncias-teste de Christofides

    A fim de se avaliar o desempenho dos algoritmos propostos, eles sero testados nas instncias de Christofides et al. (1979), detalhadas na Tabela 5.1.

    Tabela 5.1: Instncias de Christofides et al. (1979)

    O custo dos roteiros varivel em funo da distncia percorrida pelo veculo e do tempo de carga do veculo nos pontos atendidos, que se aplica nas instncias vrp6, vrp7, vrp8, vrp9, vrp10, vrp13 e vrp14.

  • 55

    As melhores solues conhecidas para as instncias vrp1 e vrp12 so comprovadamente as solues timas destas (Prins, 2004).

    Os algoritmos foram implementados em linguagem C no Microsoft Visual Studio 2005. Os testes foram realizados em um PC Athlon 64 3200+ equipado com 512 MB de memria RAM.

    5.2 Avaliao dos algoritmos propostos

    Nesta seo so apresentados e analisados os resultados dos algoritmos propostos neste trabalho. A comparao feita entre os algoritmos que propem alteraes na mesma etapa, sempre comparados com o algoritmo original APRINS.

    Para cada algoritmo, cada instncia-teste ser executada 5 vezes e o resultado apresentado depender do objetivo para o qual o algoritmo proposto fora construdo: - se o objetivo do algoritmo proposto for o de melhorar a qualidade da soluo, o resultado apresentado para a instncia ser aquele que gerar a melhor soluo em termos de qualidade. Isto porque, como os algoritmos gerados neste trabalho dependem, em diversos momentos, de nmeros gerados aleatoriamente, os resultados podem variar nos processamentos. Alm disso, se aplicado a problemas reais, a orientao seria a de executar o algoritmo mais de uma vez, utilizando o que resultasse na melhor soluo entre todos os processamentos.

    - se o objetivo do algoritmo proposto for o de reduzir o tempo de processamento, o resultado apresentado para cada instncia ser a mdia dos 5 processamentos. No seria correto utilizar o menor tempo de processamento, pois quando aplicado a problemas reais, a orientao seria de executar o algoritmo mais de uma vez. Logo, o importante em termos de tempo de processamento seria a mdia de cada execuo, e no o tempo da melhor delas.

    A comparao entre os algoritmos propostos, j tendo os resultados das diversas instncias-teste (conforme descrito acima), tambm depender do objetivo para o qual o algoritmo tiver sido desenvolvido.

  • 56

    Caso tenha sido construdo para melhorar a qualidade das solues, o algoritmo analisado por dois critrios, sendo o segundo utilizado apenas em caso de empate no pr